An Etterna addon that estimates the amount of manip based on replay data, introducing a new metric for play accuracy. Offers both an In-Game version and a browser-based version for EtternaOnline. Hover the cursor to see left and right hands separately.
Follow the instructions below for installation:
- Move
manipfactor.lua
to the following directory inside your Etterna game folder:
Themes\Til Death\BGAnimations\ScreenEvaluation decorations
or
Themes\reimuboobs-theme-main\BGAnimations\ScreenEvaluation decorations
depending on your theme.
- 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]})
- 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})
- 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.
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.
I understand that this metric is not perfect and that there is significant room for improving its accuracy. If you'd like to contribute, feel free to contact me on Discord at u1wkn. Although the primary purpose of the metric is to guide your skill development in a direction orthogonal to manip, I can also see potential for implementing a score nerf system based on this factor, converting it into an MSD scaler, for example, using this kind of function: example.