
Last updated | 4 hours ago |
Total downloads | 34 |
Total rating | 0 |
Categories | Mods Audio |
Dependency string | Recessive-UltraBeat-0.0.1 |
Dependants | 0 other packages depend on this package |
This mod requires the following mods to function

BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
UltraBeat
🎵 A mod that syncs various events in ULTRAKILL to the beat without requiring you to actually do anything to the beat. It handles the timing for you :)
If the mod comes across a song it doesn't have a map for the game will go back to default behaviour
Features
- Default revolver reloads in sync to the beat (you'll quickly realise why the alt revolver doesn't)
- Freeze-frame unfreezes in sync with the beat
- Splits freeze frames into long and short
- Short freeze frame waits for minor beats
- Long freeze frame (fully charged jackhammer) waits for major beats
Installing
Install r2modman and install the plugin through there
Manual install
Place UltraBeat
in ULTRAKILL/BepInEx/plugins
.
Adding new beat maps
Currently mapped songs can be found here: https://github.com/Recessive/UltraBeat/tree/master/maps. When the mod runs for the first time it will automatically download all maps found in that directory.
If you would like to add your own song mappings, simply add a new json
file to ULTRAKILL/BepInEx/config/UltraBeat
. The json
file should be the exact name of the song you are mapping.
Mapping tutorial
UltraBeat expects the name of a song mapping to be exactly the same as the name of the song in game. For example, Maganeko - The Cyber Grind is split into two songs:
- The Cyber Grind - Final Version 1 (Intro only)
- The Cyber Grind - Final Version 1 (seamless loop without intro)
So to fully map this song, you would have to create two different json
files for each of these songs.
Json Format:
Below is an example json
file:
{
"offset": 0,
"bpm": 120,
"maps": {
"base": [1,1,1,1,1,1,1,1,1],
"freeze_short": [1,0,1,0,1,0,1,0,1],
"freeze_long": [1,0,0,0,1,0,0,0,1],
"fast": [1,0,1,0,0,0,1,0,1]
}
}
This would definitely be too short for a full length song. To know how many beats you need, multiply the length of the song (in minutes) by the bpm. So a 3 minute song would need: 3*120=360
beats.
If you want higher precision, multiply the bpm by some multiple. To map half notes, the bpm needs to be at least twice the base bpm. To map quarter notes, it needs to be at least four times the base and so on.
I have mapping software that handles all this for you. Message Recessive on discord and I'll send it over