Introduction
ManipFactor is an Etterna addon that estimates the amount of manipulation based on replay data, introducing a new metric for play accuracy, helping you understand your play style and areas for improvement.
You can use ManipFactor both in-game and on the EtternaOnline site. It is compatible with the Rebirth and Til Death themes
Guide
The full setup instructions for ManipFactorEtterna can be found on our GitHub repository, but for convenience, I’ll duplicate them here so you can get started quickly. Follow these steps to install it:
Caution: Before editing any files, make sure to create a backup of them. Don’t leave the backup files in the same directory.
Til Death
-
Move manipfactor.lua to the following directory inside your Etterna game folder:
Themes\Til Death\BGAnimations\ScreenEvaluation decorations
-
Open
default.lua
from the same folder and before the last line:
return t
add the following line:
t[#t + 1] = LoadActor("manipfactor")
- Open
scoreboard.lua
from the same folder and after the second occurrence of the line:
self:GetParent():GetParent():GetParent():GetChild("OffsetPlot"):playcommand("SetFromScore", {score = hsTable[index]})
add the following line:
MESSAGEMAN:Broadcast("GetScore", {score = hsTable[index]})
Rebirth
-
Move manipfactor.lua to the following directory inside your Etterna game folder:
Themes\Rebirth\BGAnimations\ScreenEvaluation decorations
-
open
mainDisplay.lua
from the same folder and before the last line:
return t
add the following line:
t[#t + 1] = LoadActor("manipfactor")
- In the same file, find the block of code that starts with:
JudgeWindowChangedMessageCommand = function(self)
and above the end,
line, add the following line:
MESSAGEMAN:Broadcast("GetScore", {score = params.score})
EtternaOnline
- Install the Tampermonkey browser extension.
- Copy the script from this repository: manipfactor.etternaonline.js.
- Paste the script to Tampermonkey:
- Click on the Tampermonkey icon in your browser’s toolbar.
- Click the + icon or select “Create a new script” to open a new script editor.
- Paste the copied script into the editor and save it.
How it works
The number Manip Factor (or MF) gets bigger the more a player hits one-hand misaligned notes (like trills or streams), as if they were a single aligned pattern (like jumps). The assumption is that when a player abuses this kind of playstyle, the hit errors (offsets) for consecutive different columns notes will be negatively correlated—meaning if one note is hit late, the next one tends to be hit early, making the difference between the errors larger than if the notes were hit as expected.
To measure the degree of such abuse from the replay data, we collect pairs of all misaligned one-hand notes and calculate the difference between their error values: |error_B - error_A|. Then we normalize this by using half the average time interval between notes on a single column and average the number across all pairs. The bigger the final number gets the more the player’s technique leans toward manip play.
The MF is different from MA, PA, SD, and other metrics because it doesn’t scale with rates. In other words, it’s easier to achieve better MA, PA, and accuracy when mashing notes at higher rates, but this does not apply to MF.
Outro
If you encounter any issues, have questions, or wish to contribute to the development of ManipFactor, please visit our GitHub page or use the GitHub issue form to report any problems or provide feedback. The addon will be updated periodically, and Tampermonkey should automatically update it for you. However, you can also manually check for new versions on the GitHub page if needed.
List of contributors:
- U1wknUzeU6
- OpakyL
- karatovv