Sound mod Guide - RedBrumbler/BMBFCustomSabers GitHub Wiki
Guide to Making A sound mod for BMBF
@RedBrumbler#6295 ‘s (or u/RedBrumbler) Guide to making A sound mod for the BMBF Asset replacement mod
if anything does not work be sure to tell me on discord (read the disclaimer as well)
DISCLAIMER: Making custom sabers / getting custom sabers to work may require you to reset your assets (thus making you sort your songs again) multiple times, so losing all your song data is not uncommon, I am not responsible for you needing to reset your assets so don't complain about it to me
Required Programs and Files for Making a Sound Mod:
- Unity version 2018.3.10f1(any lower or higher and BeatSaber will crash)
- audacity
- UnityAssetBundleExtractor (UABE) NOT my program, be careful when downloading programs from the internet! Source: here
- The Sound Mod Guide files zip
Get Your Sound
To start you need to select the sound you'll be using, this is something you'll have to decide for yourself and I will not cover good sounds in this guide :)
For this guide I will be using these sounds, the drum-slidertick.wav will be my hitsound, menuclick.wav will be the menuclick in beat saber, and normal-sliderwhistle.wav will be my miss sound.
Convert your sound to .ogg
to get these sounds into beat saber you'll have to first convert them to an .ogg file, any sound file can be converted to .ogg (I believe) by using audacity, do this one by one.
Now that you have your sound in audacity you want to go to file -> export -> export as OGG
A good idea here is to name the file as what you want to import it as, this will also make the rest of the mod easier too.
You should then get this for file names:
Just to make sure it will sound right, try to get the GoodHit sound to have about 0.2 seconds of silence before the actual sound
Convert to text dump
Next you want to drag your sound files into unity (Make a new project), and make sure they are also in your scene.
Now you can use the key combination CTRL + SHIFT + B
to build your scene, make sure it's on pc, max & Linux and then click build. After this a window will pop up where you can select where you want to save your build.
Now that you have built the project, you want to make a text dump of the sounds. to do this, open UABE and go to file -> open, and open sharedassets0.assets from your build folder.
now that you have opened the file, select your sounds from the list on the left, and click on export dump, and save it with a recognizable name.
Edit text dump
now these steps are done for each type of sound:
first you want to right click on the sound file, and look for the size on disk
now that you know your Size on Disk, you can open the corresponding sound's text dump, and edit the values in there.
For m_channels you want to set it to 1
, the length should remain the same. m_Source should be changes to be ../Mods/MODID/Sound.ogg
, where MODID is the mod id of your mod (for me here it is OSUSoundsV1), and sound.ogg is the name of the file of your sound (for me here it is BadHit.ogg). lastly m_Offset should be 0, m_Size should be the size on disk you found earlier, and m_CompressionFormat should be 0.
making the .dat files
Now that you have edited your text dump(s), you want to import them back into the .assets file I have provided in the guide files zip (it may look different from the provided image, but don't mind that). after importing you can click ok and then save the assets file.
You then want to name the assets file to something recognizable, I named it whatever.
Open this file back up again, and find your sound in the list, and click on Export Raw.
Bundle it together for a mod
Now that you have your raw .dat files you are ready to bundle it into a mod! get the bmbfmod.json from the guide files zip and edit it, this is what it should be:
"id": "ModID",
"name": "Mod name",
"author": "YourName",
"description": ["Mod Description"],
"gameVersion": "1.6.0",
"version": "1.0.0.",
"platform": "Quest",
"category": "Other",
"coverImageFilename": "Cover.png",
"components":
for my mod I changed it to this:
"id": "OSUSoundsV1", --Unique mod ID, this makes sure that when you release an update it won't install the mod again, but overwrite the old one
"name": "OSU game sounds V1", --The name displayed within BMBF
"author": "RedBrumbler", --Your name here, so people know who made that saber
"description": ["Play with an inferior game's gamesounds"], --description, can be used to credit others whose work you worked off of, or a great place to make meta jokes
"gameVersion": "1.6.0",
"version": "1.0.0", --Version of the mod, I reccommend to bump the last number up for small changes, but for larger redesigns use the second number
"platform": "Quest",
"category": "Other",
"coverImageFilename": "Cover.png", --it's easier to just name the cover image to Cover.png than to keep editing this one IMO -Redbrumbler
"components":
Special cases for json edits
You may just want to make a hitsound mod, you can do that with this guide as well! just edit the json and take out the entries for stepnumbers 21, 22, 23, 24 and 25 (take out the entire thing, not just the stepnumber itself!) for the InstallAction and UninstallAction and you should be left with just a hitsound mod, this also means you do not need to make the other sounds into mod files.
this also goes for if you want to make just a menu sound mod, then you can remove stepnumbers 1-24 and be done, and of course if you want to make just a miss sound mod, you can remove stepnumbers 1-20 and 25!
mixing and matching is also possible! just make sure to test your mods before you go and upload them somewhere.
Now that everything is ready you can zip it up! make sure that for each .dat file the sound file is included in the .zip file!
select them all and make the zip file.
A .rar file won't work! It has to be .zip!
Now you should be ready to upload to BMBF!
If you get "invalid mod", you likely are missing an argument in the info part I just listed, make sure all of it is there! another possibility is that a file is missing.
If it doesn’t work you might have to reset your assets (will lose all loaded songs, be careful!) but pressing reload songs will load back most of them but lose playlists, if it says invalid mod file you might miss some files or made an incomplete json
If you are testing and it does not make any sound you probably messed something up when editing the text dump of the mod.
Add Your mods to the Repo
I also support adding your mods to the repository here! (explanation adapted from @Yuuki#0802 from BSMG, and by that I mean mostly blatantly copied)
- Make a Github account if you haven't already
- Click the "fork" button in the top right of this repository
- Download github desktop
- Go to your forked repo (so, yourname/BMBFCustomSabers) and click "Clone or Download", Copy that link
- Go to Github Desktop: File -> Clone repository -> URL and paste the link, then click clone (keep note of the local path you put the repo in)
- Head to where you saved the repo in your file explorer (C:\User\GitHub\BMBFCustomSabers)
- Go to the "HitSoundMods" folder for hitsounds, and "SoundMods" folder for other sound mods.
- Create a new folder for your mod (ex. "LaBandit915's Soundmods")
- Drag your zip file in this folder
- Head back to Github desktop
- Add a summary for your commit at the bottom left (ex. "Added {modName} by LaBandit915")
- Press commit
- Press push
- Go back to your forked repo and press "Create pull request" and submit!
Once I or Yuuki accepts your pull request your mod will be added here!
Please test your mods before submitting. Make sure they have correct JSON formatting and appear correctly on the BMBF mod screen.