Was once based on Kylemc1413's NjsFixer but has grown to much more.
I wanted a stripped down mod that focused only on JD modification to fix floaty maps without NJS/BPM modification since I don't use those features. I felt there was a gap between Njsfixer and Leveltweaks that isn't filled for JD-focused players and this is my interpretation for meeting those needs.
Supports CustomCampaigns, Tournament Assistant, all flavors of Multiplayer, OST / DLC / Base Campaign. Score posting is unaffected. For Beat Saber 1.17.1+.
/UserData/JDFixer.json
)Automated Preferences
to ReactionTime
and click Configure RT Preferences
Automated Preferences
to JumpDistance
or ReactionTime
will override the JD and RT slidersBypass Preferences if map is closer
, you must set base game settings to Dynamic Default
Bypass Preferences if NJS is
equal to, less, or greater than Lower
and Upper Thresholds
in Mod Settings (or /UserData/JDFixer.json
in ≤v5.x.x)Snap JD and RT to beat fraction
, go to Mod Settings and toggle on Separate JD and RT sliders
and set the fraction's denominator (eg. 1/3rd, 1/4th, 1/64th etc) using the sliderUnlink JD and RT sliders
(for ≤v5.x.x, change legacy_ui_enabled
in /UserData/JDFixer.json
to "true"). Scroll to the bottom of the JDFixer's tab to swap between JD and RTShow map Reaction Times
(for ≤v5.x.x, change rt_display_enabled
in /UserData/JDFixer.json
to "false")/UserData/JDFixer.json
Above Left: Show map Reaction Times is ON. Above Right is OFF.
Suppose your Jump Distance Preferences contain these NJS-JD pairs: 22-18, 21-16, 18-15.
Example 1: Your selected map's NJS is 22 and JD is 20. The map will run at 18 JD because there is an exact match for 22 NJS
Example 2: Your selected map's NJS is 21.5 and JD is 20. The map will run at 16 JD because 21 NJS is the closest lower match.
Example 3:
Your selected map's NJS is 21.5 and JD is 14 and Bypass Preferences if map is closer
is toggled ON.
The map will run at its original 14 JD because it is lower than your matching preference (21-16).
Example 4:
Your selected map's NJS is 23 and JD is 20 and your Upper Threshold
is set to 23 NJS.
The map will run at its original 20 JD because it triggered the threhold.
Example 5: To run every map at a constant JD regardless of its NJS, create a single preference with 0 NJS and your desired JD (e.g. 0 NJS - 18 JD)
Automated Preferences
is set to JumpDistance
but no Preferences are set, the map will run at JD and RT slider valueBypass Preferences if map is closer
heuristic, you must set base game settings to Dynamic Default
. Failing to do so give you inconsistent results.Reaction Time Preferences: This works exactly the same as JD Preferences. The five examples above apply, except in Reaction Time. Reaction Time is a function of the map's original NJS and Jump Distance. This means that RT Preferences automatically sets the map's JD to give your preferred RT for its given NJS.
To use this feature, toggle on Separate JD and RT sliders
, Snap JD and RT to fractions of a beat
and set the Beat Fraction (1/n)
in Mod Settings. Enabling Automated Preferences overrides the snapped value. The snap display consists of four values (A, B) JD RT.
Given the current JD or RT slider value:
By base game behavior, maps maintain their JD when played at different song speeds (e.g. when playing with Modifiers or 200% on Practice Mode). This is so logically, higher song speed settings make maps "play faster" and increases the difficulty by lowering the player's reaction time.
JDFixer can change this. Choose one of the options:
JD_Settings: If you prefer the base game behavior or you prefer to always have a known JD (meaning you want to play at the JD you set, at any song speed). This behaves the same as JDFixer v6.0.0 and below and is the default option.
RT_Settings: If you prefer to always have a known reaction time (and would prefer the JD to be auto-adjusted depending on the song speed to give the RT you set). This means when the map is run at a higher song speed, the JD will be pushed back to give the same RT as if the map is being played at normal speed. Likewise, playing the map at lower song speed will bring the JD closer.
JD_RT_Respectively: If you prefer to have both of options, depending on whether you are using the JD or RT sliders and Automated Preferencences. This means when the JD slider is active or JD Automated Preferences is enabled, it will behave like the JD_Settings
option, and when the RT slider is active or RT Automated Preferences is enabled, it will behave like the RT_Settings
option.
Copyright © 2021 - 2024 Zephyr | www.xephai.com
This is my first time writing a mod. I made it for my own needs but friends thought it useful so I think it would be beneficial to share it. I hope others find this useful.
❤️ Love JDFixer and want to show your support? Donate on Patreon or buy a me a ☕ and get your name featured in the Supporters panel in-game!❤️
Thanks @Shurdoof for autoupdate! Thanks Kyle for the original NjsFixer and thanks to the cool peeps in BSMG for the help and advice when I first started out :)