-
Notifications
You must be signed in to change notification settings - Fork 0
JSON Beatmap File Output
You can output a generated map to a JSON beatmap file. This file will contain all standard and all generated features including 360 rotation events, arcs, chains, lighting events, walls, and auto njs njo values. (It attempts to retain all customData but this is not fully tested). The output file can be in v2, v3, or v4 format (no matter what the starting format was). The output file(s) will be placed in the same folder as the original beatmap and will NOT OVERWRITE any files. The generator will also output a Info.AutoBS.dat that will point to the generated files. To use the new generated difficulty, you can rename the original 'Info.dat' to something like 'Info.dat.bak' and then rename the new 'Info.AutoBS.dat' to 'Info.dat'. Currently original v3 beatmaps with GLS lighting can generate a new v3 output and retain the GLS lightshow as well, but the GLS lightshow portion will not be preserved if output to v2 or v4. (If you need that, I believe you can convert the v3 lightshow to v4 using Beat Saber's built-in map editor.)
NOTE: v2 maps will not have arcs, chains or Mapping Extensions walls added. Outputs beatmapV2 and 'Info.AutoBS.dat' files.
NOTE: v3 360 maps may need some minor cleanup due to some vision blocking walls around arcs if the arc mode is NOT set to Force Zero. Outputs beatmapV3 and 'Info.AutoBS.dat' files.
NOTE: v4 will be the most exact match to the in-game generated map. Outputs beatmapV4, lightshow, audioData and 'Info.AutoBS.dat' files. v4 doesn't really support customData so all customData will be lost (for Noodle etc). Mapping Extensions precision placement does still function.
NOTE: If you have Mapping Extensions installed and walls are generated, then of course Mapping Extensions walls will be added to the beatmap. If you prefer not to have them, then uninstall Mapping Extensions before outputting the JSON file.
To enable JSON file output, edit the Beat Saber/UserData/AutoBS.json config file in Notepad or other text editor. The last 5 settings in the config file are the ones to edit.
Set:
OutputV2JsonToSongFolder_NoArcsNoChainsNoMapExtWalls and/or
OutputV3JsonToSongFolder and/or
OutputV4JsonToSongFolder
to true.
Start Beat Saber and simply begin to play any map difficulty and the file(s) will be generated automatically. No need to finish playing the map.
By default, the TurnOffJSONDatOutputAfterOneMapPlay config setting is set to true. This means all the output settings will revert to false after one play. You can set this to false if you want to generate multiple files in one session every time you play a difficulty. After quitting Beat Saber, this will revert back to true and all outputs to false. This makes sure you don't accidentally leave this on. If you generate consecutive maps for the same song, it will overwrite the 'Info.AutoBS.dat' file each time. You will need to edit 'Info.AutoBS.dat' to replace the original beatmap file names with the generated file names.
For all output versions, you must also set the OutputJsonSongSampleRate config setting. This is the sample rate of the audio file for the song. It will default to 44100. The map will be out-of-sync if this is not correct. Most songs are 44100 or 48000. (In Windows, right click the song (.egg, .ogg, .mp3, or .wav file), choose PROPERTIES>DETAILS to see the sample rate.)