This repo has been abandoned. However, the contents still apply, it just won't ever be expanded by me.
repo containing resources to learn splatoon 3 hacking/modding
if at any point you feel stuck or need help, feel free to join the splatoon modding discord server
most of this stuff is old so join the server above to get help if you still need any
This will not teach you to use mods/hacks online as that is unsafe. There might be a section to using camera hacks in battle replays later but thats it DO NOT USE ANY OF THIS ONLINE. MAKE SURE TO SET UP YOUR HACKED SWITCH PROPERLY
- Getting Started
- Essentials/Requirements
- Dumping RomFS
- Exporting, Editing, and Importing Save Files
- How to use/install mods
- File Types. Just for future reference
- Your First Mod (Tutorial)
This section originally contained links to setting up a hacked switch and emulator but both have been removed due to piracy. Neither of them are hard to find though
These are things you need get to help you on your hacking journey. These are all for game modding and NOT for hacking your switch and setting up custom firmware (CFW). For a guide on setting up your switch with CFW, see above section.
- Flexlion Mod Menu
- Splatoon 3 Save Editor (from flexlion)
- Switch Toolbox
- 7-Zip I would highly reccomend that you set 7-Zip as your main archiving app so it will open .zip files by default
- A Full Splatoon 3 Save (you can skip this if your save already has everything you want AND you know how to export the save as a file using EdiZon) if you cant get to the file, you need to join the Ryujinx discord server to get it even if you arent using Ryujinx. It will work on both an emulator and the switch.
Below are sub-sections for programs that are specific to replacing certain aspects of the game. This is not a list of everything you can mod. Just a list of what mods require other programs.
- Hex Editor. Any hex editor will do. Personally, I use HxD
- Image Editor (Duh)
- Blender to check how the texture looks on the model
- Image Editor (still, duh)
- Blender to check how the texture looks on the model
- Blender or some other 3D Editor and good knowledge of how to use it. Model replacement is for people who know how to use the program. basically, 3d model experience required
- Kuriimu or Kuriimu 2 Kuriimu 2 is a more permanant, install while Kuriimu is a lighter, portable solution.
- Looping Audio Converter
- Citric Composer
- Automatic BARS Patcher or Online BARS Patcher
- Foobar2000 + VGMStream
- Audio Editor. I use Audacity
(Make sure you have any updates/DLC you want installed as an NSP) Right click the game and click "Dump RomFS" Make sure to remember where you dumped these files or put them in a place you will remember.
you need Lockpick RCM and Nxdumptool
im not allowed to link LockpickRCM but you can find it so many places here on github. just search it and download te .bin file
then watch this video on how to use it
once you finish that, download Nxdumptool nro file
then watch this video on how to use that
only reason i dont explain myself is because this guide is focused on how to mod the game rather than the setup
First ya gotta obtain a save file. you can get your own save file to hack OR download the one in the essential downloads
If you're going to use your own save file download the EdiZon NRO file
Once you download, visit this tutorial for a full setup process
Go to The Splatoon 3 Save Editor to change (almost) anything about your save and then redownload it (rename the new save file back to save.dat if it was changed)
To import it back to splatoon 3, refer to the second part of the tutorial above
Before you create your first mod, you need to learn how to actually install them. Open the root of your SD card (for emulators go to the root of your virtual sd card)
Open the atmosphere folder. Create a folder called contents this folder will be where we store our mods. Atmosphere has a built in tool called LayeredFS that replaces game files when booting up the game.
To start, inside the contents folder, make a folder called 0100C2500FC20000 this is the game ID for splatoon 3. If you have mods for other games, you would make more folders with those game IDs.
Now open the game ID folder and make a folder called romfs if you havent caught on already, we are remaking the directory for the game. However when we install mods, we only re-create directories that are realitive to the mod files. Most of the time this is already done for you. For now lets set up flexlion and some other mod that replaces a texture or something. Go back the the SD card root and open the flexlion rar file and drag both folders to the root of the sd card from 7-Zip. This will automatically put all the files where they need to be.
Flexlion is now fully installed! Now lets get a mod to go with it
Head over to Splatoon 3 Mods on Gamebanana to get some mods.
Here is not only a shameless self promotion but also a good starting mod
Download the file titled Comet Range Blaster and ignore the download called Source. Source just includes the source files i used to make the mod and decided to upload as well. They are not usually submitted with the mod but i figured they migght be useful to someone? idk
Inside the zip file, go to the romfs folder inside the Comet Range Blaster folder. Now go to your Splatoon 3 game ID folder on your SD card and drag the romfs folder from the 7-Zip window on to the romfs folder in your SD card.
Again, this will do all the replacing automatically even if you already have other mods in there. It wont overwrite anything unless you have another range blaster mod installed
Now just eject the SD card, put it into your switch, and launch into Atmosphere CFW again. Refer to this guide if you forgot how to do that
Looks good! Now that you know how to install mods, lets look at how to make them now. I'm going to walk you thorugh making a basic UI image replacement mod
You might be wondering why splatoon 3 only uses .zs files inside the romfs folder. ZS is actually short for ZSTD Compression and all that does (that we care about) is add .zs to the end of files so the real file type is always behind that. Below are all the other file formats that you can find in the files. Some files are not documented here yet because i dont have the knowledge about them
-
.zsZSTD compression used throughout the game files. -
.bfres3D model file containing Models, Textures, Animations, Materials and more. as of now, the encryption keeps us from being able to replace everything besides textures. -
.packQuite literally a package containing many other files. There is really only 1 .pack file that we will go through because it controls most of everything. but that's for later. Usually contains game parameters -
.sarcmost .sarc files are the language files located in /Mals. Usually contains Message Binary Text files (.msbt).msbtContains text that the game uses for each language file. Can be opened in toolbox but needs another program like Kuriimu to be able to edit and save
-
.bfarcFile containing font files located in /Font (they can be ripped and installed like normal fonts too) -
.bgyml,.gyml,.byml, Types of YAML files. Usually contain defining properties. -
.bntxContains an image(s). Most are found in /UI/Icon. -
.blarcLayout file that tells the game how to display UI elements (contains a .bntx file for textures)..bflytPart of the layout that tells the game how and where to place/animate UI images on screen.bflanAnimation file for layout file
-
.barsFile containing game audio. Not usable in switch toolbox but still editable with other programs but we will get to that later..bwavBinary WAV file. Usually nest inside a .bars file but can also be found in /Sound/Resource/Stream.
Please ignore the inconsistency of the OS in the screenshots. Some of this was made on my school laptop that administration refuses to upgrade to windows 11
Go to wherever your romfs dump is. Open the UI folder and the Icon folder. you should now see a lot of folders. Here is an outline of them
Lets make a badge and a banner mod. To start, lets find the ones we want to replace starting with the badge folder
This may look impossible to search through but its quite easy. Once you get more familliar with everything you'll be able to actually read these names and figure out what it is without even opening it. For now, lets just export all of them as png files so we can decide which one we want to editit
- Open Switch Toolbox
- Go to Tools > Batch Export Textures (All Supported Formats)
- Navigate to your romfs directory and then navigate back to
UI/Icon/Badgeall from the pop up window. Ctrl+Ato select all the files- Press Enter
- Now navigate to an easy to find directory and make a new folder. What this is telling the program to do is to export all the textures we selected previously into wherever your easy to find directory is that you chose. For me, I just made a new folder inside my Documents folder to store all the images.
- Press Enter
- Select Portable Graphics Network if it isnt selected by default.
- Uncheck the top 3 options but keep the bottom one checked
Click Ok and wait for it to finish. Its going to look like its having a seizure but thats just it opening and closing a progress bar window for every single texture it exports.
Now go to the place you exported them to. You should see all the badge icons in the game. For this tutorial, we're going to select Badge_Mission_Lv00 because im pretty sure everybody has that badge
- Open the badge image in a photo editing program of your choice. I'm using Adobe Photoshop 2023. The reason we cant just replace it with any other image is because the image needs to be the exact same pixel size.
- Make any edits you want or fit an image of your choice in that space. You can literally do anything as long as you dont change the image dimensions. You can even replace it with an image of another badge you want. Or you can go here to get some custom badges from this website if you know how to get the images from the website page source
- Save your finished image as a png.
- Find the name of the badge you replaced in the badge folder in your romfs dump.
- Open the badge file in Switch Toolbox by dragging and dropping it.
- Open the album icon by clicking the
+next to it (if there is no plus next to it the double click) - Click the image that appears
- Right click the image in the heriarchy and select
Replace
- Navigate to where you saved the custom badge and select it.
- In the new options window, change the format to
B8_G8_R8_A8_UNORMI would reccomend alternating between all the formats to see which one fits best. In my case, this format gives a softer edge as well as an alpha channel and good colors. Select the format box and use the arrow keys to quickly alternate. - Click Ok
- Hover over
Use SRGBon the right and click the dropdown to change it from false to true
- Click the save icon in the top left
- Click yes to the windows that says "Compress file with ZSTD?"
The file has now replaced the one you originally opened in toolbox. Go back to the badge folder in your romfs dump and find the file you just replaced
TIP: You can actually see where the file saved via the notification that pops up when you perform a successful file save
-
Copy the file and go to the game ID folder on the sd card (SD/atmosphere/contents)
-
Enter the romfs folder
-
Make a folder called
UI -
Inside that folder, make a folder called
Icon -
Inside that folder, make a folder called
Badge -
Paste the file inside the
Badgefolder
You just made a mod to replace that badge! As you can see, LayeredFS replaces only the files given to it meaning you need to recreate the directory for any files you want to replace in romfs. If you're up for a challenge, try to make a mod that replaces a banner. It's the same process but different folders and images. Remember tha banner folder is called Npl
I feel like leaving this method in might be useful to someone but now, its outdated. for the in-date tutorial, check here
Lets do one more harmless mod before we get into the fun stuff.
- Go into /Model and search for "Wmn". this will filter all results to only show you model files for main weapons
However, these arent images so we cant use our previous method for trying to figure out which is which although soon enough you'll have all the main, sub, and special internal names memorized. For now here is a list on which is which. This is also the order they should appear in your files
- Choose your favorite weapon and drag it into toolbox
- Open the file dropdown and the textures dropdown
For now, lets just modify the base image texture Alb. If you wanna learn about all the maps, I've made a list below this. I wouldent reccomend trying to mess with these textures yet so this is another list thats just here for future reference. Just skip to below the list if you dont care right now.
- Open the
Modelsfolder and export the model as a .dae (if there are multiple models, export all of them as .dae)
- Navigate to a directory you will remember. Make a new folder there to place the files in. Save inside that folder
if you're here from the updated texture tutorial, follow along until step 25
- Open Blender and import the .dae (after deleting the default scene objects
- Adjust the edges of the editors to your liking. Then change the outliner editor to a shader editor
- Set the
Specularvalue of the principled BSDF node to0.5
- For each of these image textures that your model came with, drag and drop them into the shader editor one by one.
Alb,Mtl,Nrm,Rgh. these are just the bare basics to give us a preview
- Use
Shift+Aand type in "nm" or "normal map' into the text box to make a Normal Map node
- This isnt a Blender tutorial so just make sure your node setup looks like this. the only things you need to look for are the things circled and the node connections
- turn on material preview mode
- Your model may have multiple objects and materials. If so, here is how to assign them correctly (If you dont have multiple materials then skip to step 15)
- Your model has multiple materials if you see more than 1 prefix in your image texture files. this screenshot shows image texture files with a total of 3 prefixes
- For each prefix you have, there should also be a material. The material for each prefix should be on its respective object. To view all the objects, pull up the timeline window hiding at the bottom of the screen and change the clock icon to be the one labaled outliner.
- Press
Shift+Ato expand everything and locate everything reperesented by a triangle icon. those are your objects. Click on an object and go to the material properties
- Select the material and drag in the image textures which prefixes match the material name. Then repeat above process for each
- Your model could also have multiple models that actually use the same texture but it has a different material. If your image textures only have 1 prefix but some part of your model is still white, then assign the white model(s) the same material as the other model
- Change the properties editor to a UV Editor
- Open the image you want to edit. In this case, we are only editing the Alb image
- Back in the viewport, select the model, press
Tabto switch to edit mode, and pressAto select all vertecies. Your UV editor should be filled with orange dots and lines
- In the UV editor, click the UV pannel and select Export UV Layout. You may need to scroll down the menu to see it.
-
For organizational purposes, export the png file to the same place as all your image textures. Make sure to name it something that stands out
-
Open your photo editing program. Import the Alb texture and place the exported UV layout image on top of it. Now we can see how the model displays the texture.
-
Now go crazy. put anything you want on it. Remember not to change the size of the image though.
TIP: Remember to repeat the above process to get the UV layout for ALL of the objects that use the same material and put that UV map over the first one. You'll know if multiple objects are using the same material if there is some detail that looks like it should be covered by a UV layout.
-
Once done, hide the UV layout images so they dont appear in the final product. Export it in the same place as the original Alb image to replace it. we wont need it anymore
-
Back in the shader editor, click on the Alb node. then hit
Nto bring up a panel. Go to theNodesection on that panel. Click the refresh button to refresh the image texture and make sure its to your liking
- Once ready, go back to toolbox and replace the Alb image on the model. The default settings in the window that pops up should be fine
**If you're following along with the new tutorial, return back to that section using this link. if you're using this tutoairl because that method diddnt work, ignore this message.
- Right click the
Texturesfolder and click export
-
Save it as
textures.bntxto where your model and textures are -
In toolbox, go to Tools > Compression > ZSTD > Decompress
-
Find your model in the models forlder and open it
-
Remove the
.zs.decin the name so the file extension becomes.bfres
-
Save it to where you originally exported the model
-
Open your hex editor. I'm using HxD
-
Drag the
.bfresfile into the hex editor to open it. You should now see a bunch of random characters
-
Do the same for
textures.bntxit should open in a new tab -
Go to the
textures.bntxtab and copy all of it (Ctrl+AthenCtrl+C) -
Go back to the Wmn_Weapon_Name
.bfresand hitCtrl+F -
Type in "bntx"
-
Click "Search All"
-
We want the line that has "BNTX" in all caps. That should always be the second line
-
Click it to go to it.
-
Click Right before the highlighted portion (42 4E 54 58) right click and click "Paste Write." You should now see a lot of red text.
-
Hit
Ctrl+Sto save it. The text should be normal now. You can close the hex editor. (A.bakfile might have been created. Ignore it) -
Lets check if it worked. Drag the
.bfresfile into toolbox. If everything worked, you should see your textures on it now. -
Go to Tools > Compression > ZSTD > Compress
-
Navigate to your folder with the
.bfresfile you just opened and select it. -
Delete the "td" at the end of
zstdon the file. it should now read Model_Name.bfres.zs -
Now navigate to your
romfsfolder for your SD card where you keep mods for the game. Inside yourromfslocation, make a folder called "Model" if it isnt there already.
ignore the 485348974563 mods I have in there its not important
-
Save the
.bfres.zsinside the model folder -
Boot up the game
Awesome! You just finished your own weapon reskin.
This method is still experimental. if it fails, please refer to the above texture replacement guide in order to replace textures as it is much more reliable but takes a bit longer
let's make a mod that changes the base texture of your favorite weapon.
- Start by going into romfs/Model and searching for
Wmnthis will filter results so we only get main weapon models.
if you wanna do a peice of gear instead there are lists for all gear codenames with pictures up until 3.0.0 for now made by my friend John#1878 on discord
Blaster_Coop Grizzco Blaster
Blaster_Light Rapid Blaster + Rapid Blaster Pro
Blaster_Light_Cstm01 Rapid Blaster Deco
Blaster_Light_Cstm11 Rapid Blaster Pro Deco
Blaster_LightShort Clash Blaster
Blaster_LightShort_Cstm01 Clash Blaster Neo
Blaster_Long Range Blaster
Blaster_Middle Blaster
Blaster_Precision S-Blast 92
Blaster_Short Luna Blaster
Blaster_Short_Cstm01 Luna Blaster Neo
Brush_Heavy Painbrush
Brush_Mini Inkbrush
Brush_Mini_Cstm01 Inkbrush Nouveau
Brush_Normal Octobrush
Charger_Coop Grizzco Charger
Charger_Keeper Goo Tuber
Changer_Light Bamboozler 14 Mk I (my beloved)
Charger_Long E-Liter + E-Liter Scoped
Charger_LongB Splatoon 2 E-Liter (For Amiibo)
Charger_NormalT Splat Charger
Charger_NormalT_Cstm01 Zekkofin Charger
Charger_Pencil Snipewriter 5H
Charger_Quick Squiffer
Maneuver_Dual Dualie Squelchers
Maneuver_Dual_Cstm01 Custom Dualie Squelchers
Maneuver_Gallon Glooga Dualies
Maneuver_NormalT Splat Dualies
Maneuver_Short Dapple Dualies
Maneuver_Short_Cstm01 Dapple Dualies Nouveau
Maneuver_Stepper Dark Tetra Dualies
Maneuver_Stepper_Cstm01 Light Tetra Dualies
Roller_BrushNormal Splatoon 2 Octobrush (For Amiibo)
Roller_Compact Carbon Roller
Roller_Compact_Cstm01 Carbon Roller Deco
Roller_Heavy Dynamo Roller
Roller_Heavy_Cstm01 Gold Dynamo Roller (Not Released)
Roller_Hunter Flingza Roller
Roller_NormalT Splat Roller
Roller_NormalT_Cstm01 Krak-On Splat Roller
Roller_Wide Big Swig Roller
Roller_Wide_Cstm01 Big Swig Roller Express
Saber_Coop Grizzco Splatana
Saber_Light Splatana Wiper (Wiper can also be seen in other places named Saber_Lite instead)
Saber_Light_Cstm01 Splatana Wiper Deco
Saber_Normal Splatana Stamper
Shelter_Compact Undercover Brella
Shelter_Coop Grizzco Brella
Shelter_Normal Splat Brella
Shelter_Wide Tenta Brella
Shelter_Wide_Cstm01 Sorella Tenta Brella
Shooter_Blaze Aerospray MG
Shooter_Blaze_Cstm01 Aerospray RG
Shooter_Expert Splattershot Pro
Shooter_Expert_Cstm01 Forge Splattershot Pro
Shooter_First Splattershot Jr.
Shooter_FirstCstm01 Custom Splattershot Jr.
Shooter_Flash Squeezer
Shooter_Gravity .52 Gal
Shooter_Heavy .96 Gal
Shooter_Heavy_Cstm01 .96 Gal Deco
Shooter_Long Jet Squelcher
Shooter_Long_Cstm01 Custom Jet Squelcher
Shooter_Msn0Lv0 Hero Shot (All 3 Phases)
Shooter_Normal Splatoon 1 Splattershot (For Amiibo)
Shooter_NormalB Splatoon 2 Splattershot (For Amiibo)
Shooter_NormalT Splattershot
Shooter_NormalT_Cstm01 Tentatek Splattershot
Shooter_QuickLong Splattershot Nova
Shooter_QuickLong_Cstm01 Anakai Splattershot Nova
Shooter_Quickmiddle N-Zap 85
Shooter_QuickMiddle_Cstm01 N-Zap 89
Shooter_RvLv0 Rival Octolong Octoshot (Hero Mode)
Shooter_Short Sploosh-o-Matic + Splash-o-Matic
Shooter_Short_Cstm01 Sploosh-o-Matic Neo
Shooter_Short_Cstm11 Splash-o-Matic Neo
Shooter_Triple L-3 Nozzlenose
Shooter_Triple_Cstm01 L-3 Nozzlenose D
Shooter_TripleMiddle H-3 Nozzlenose
Shooter_TripleMiddle_Cstm01 H-3 Nozzlenose D
Slosher_Bathtub Bloblobber
Slosher_Coop Grizzco Slosher
Slosher_Diffusion Tri-Slosher
Slosher_Diffusion_Cstm01 Tri-Slosher Nouveau
Slosher_LauncherSloshing Machine
Slosher_StrongT Slosher
Slosher_StrongT_Cstm Slosher Deco
Slosher_Washtub Explosher
Spinner_Downpour Ballpoint Splatling
Spinner_HyperT Hydra Splatling
Spinner_QuickT Mini Splatling
Spinner_QuickT_Cstm01 Zink Mini Splatling
Spinner_Serein Nautilus 47
Spinner_StandardT Heavy Splatling
Spinner_StandardT_Cstm01 Heavy Splatling Deco
Stringer_Coop Grizzco Stringer
Stringer_Normal Tri-Stringer
Stringer_Short REEFLUX-450
Would you believe me if I said that took 45 minutes to type out
For now, lets just modify the base image texture Alb. If you wanna learn about all the maps, I've made a list below this. I wouldent reccomend trying to mess with these textures yet so this is another list thats just here for future reference. Just skip to below the list if you dont care right now.
Alb - Albedo Base image texture. Can also be called Diffuse, Diff, or Dif
Mlt Also a base image texture Not to be confused with Mtl textures
Tcl - Team Color An image mask that tells specific parts of the model to be the ink color of the team and how much. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Ao - Ambient Occlusion Adds detail/shadows to base textures Not to be confused with the purpose and functionality of Nrm textures
Mtl - Metalness An image mask that tells specific parts of the model to be matalic and how much. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Rgh - Roughness An image mask that tells specific parts of the model to have a specified roughness value. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Nrm - Normal Map Adds details to a model's surcace using vectors extracted from the image for very fine details without adding model geometry. They also look very pretty
2cl - Ink Damage Effect This is used to tell the game where on the model to display the enemy ink material when damage is taken. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Mfk - Secondary Normal Map A very rare map to see paired with a model. This acts as even finer details to the model and very annoying to work with.
Opa - Opacity Used to set opacity values to specific parts of the model. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Emm - Emission An image mask that tells what parts of the model need to have light emission and how strong. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Trm - Transmission Used to emulate a subsurface scattering effect on a model. usually best to not mess with these
Thc - Thickness Helps make the transmission look better. Always paired with a Trm texture. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Hlt / Mac - Highlight Used to make something very shiny. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Rft - Lightwarp Emulates a Frensel Effect as well as the color of it
Fxm - Effect Mask Used to mask various material specific effects. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Hlm - Lightwarp Effect Mask Used to mask a lightwarp texture. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Mlta / Mltb - Special Effects Can be used for anything. Nothing specific
Mai - Skin Mask Image mask usually used to define what part of the model is skin and what is not. Black means 0 intensity, grey means anywhere from 0-1 intensity depending on how dark or bright it is, and white means 1 intensity
Source : PastaOwO's Squidnodes Materials and Textures Wiki
- decompress the file using Tools > Compression > ZSTD > Decompress and save it to a place you can find it.
- drag the
.bfresfile you just decompressed into toolbox - click on the model folder.
- right click on the model that uses the texture(s) you want to modify
- export it as
.daeto the same folder your.bfresis in. - check
Use Old Exporterand uncheckUse Texture Channel Swaps - refer to this section of the old method because i cant be bothered to explain again.
- Recompress the file using Tools > Compression > ZSTD > Compress and compress the bfres file
- remove the "td" at the end of
zstdto make it just say 'zs' and then save that file to the model folder of your sd card romfs directory.
TIP : You can combine these 2 modding tecniques that you've learned so far to create custom icons and badges for your reskin just like my Comet Range Blaster mod! To learn how to make 2D icons from 3D models, here is a link to a small tutorial inside the repo. (TO BE MADE)
This is how i made my Google Translate Mod. Hours of copying text from the game and putting it through translate a million times. Cant believe im gonna do the same thing for side order
Anyways enough of my crippling anxiety, lets start by downloading the required editor
I would reccomend setting Kuriimu as your default .msbt editing program so you dont need to drag the file in the program to open it every time.
- In your romfs dump, open the Mals folder. i'm assuming youre language is english so we want this file right here
- Drag the file into toolbox to open it. there are a ton of .msbt files in here so here is a small list of where important ones are as well as important prefixes
any files starting with msn or mission or any files located inside the LogicMsg folder or any files in CommonMsg/Mission relate to hero mode
any files starting with vs or versus or lobby relate to multiplayer
you can find the splashtag titles files in CommonMsg/Byname
weapon names are in CommonMsg/Weapon
try looking at the glossary file in CommonMsg/Glossary.msbt if you want to find names of characters
gear names can be found at CommonMsg/Gear
text relating to salmon run is any file that has Coop or LobbyCoop in the name
if you want to edit what Deep Cut says on the news, search for any files starting with News
Toolbox cant edit the msbt files so we need to export them to edit them.
- Find any
.msbtfiles you want. right click on them and click Export Raw Data
-
Save the file to a place you will remember
-
open Kuriimu then open the .msbt file with Kuriimu by dragging it over
-
click yes to keep a backup. this is very helpful for multiple reasons then just if you need to revert
- Click this icon here to get a preview inside the text entries
Dont worry if the entry names are gibberish. We never need to worry about names
remember you can always use these 2 options to find something(s) specific (first one) or find and replace something(s) specific (second one)
-
Once you edit everything you want to edit, do
Ctrl+Sto save the file. -
back in toolbox, right click the file you just exported but now click Replace Raw Data
-
Navigate to the
.msbtfile you edited with Kuriimu. You should also see a.bakfile there. ignore it -
select the
.msbtfile -
back in toolbox, double click the file you just replaced to open a preview of it to make sure it has your edits. toolbox can preview msbt files but it cant edit them.
- Close the pop up window and save the file
- Click Yes to the promt
-
Copy the
.sarcfile we just edited and navigate to your SD card romfs directory. Make a new folder called Mals and paste the file in there -
Boot up the game
NOTE: You will need to
Text editing is one of the simplest but most effective ways of modding in my opinion. I really enjoy making characters just say the dumbest things.
Not started yet but you can use when ive already taught you to edit the files in the Layout folder
This is completely optional. If you wanna learn how to actually get into the hacking part of this then skip to the next section. Otherwise follow this tutorial
cant be bothered to write out my own right now. might do this last. for now, refer to this tutorial
Time for your first game hack. Weapon kits are stored in romfs/RSDB/WeaponInfoMain.Product.GAME_VERSION.rstbl.byml.zs
Before we get started, here is a list of all the subs and specials that can go on weapons
SpBlower Ink Vac
SpCastle Kraken
SpChariot Crab Tank
SpEnergyStand Tacticooler
SpFirework Super Chump
SpGachihoko Rainmaker
SpGreatBarrier Big Bubbler
SpInkStorm InkStorm
SpJetpack Inkjet
SpMicroLaser Killer Wail 5.1
SpMultiMissile Tenta Missiles
SpNiceBall Booyah Bomb
SpShockSonar Wavebreaker
SpSkewer Reefslider
SpSuperHook Zipcaster
SpSuperLanding Splashdown (yes really)
SpTripleTornado Tristrike
SpUltraShot Trizooka
SpUltraStamp Ultra Stamp
Sub Weapons, if there are parenthesis next to a name, that tells you its second name that can be seen in the files on occasion. The second names arent too important i just put them there so you would know.
Beacon Beacon (Flag)
Bomb_Curling Curling Bomb
Bomb_Fizzy Fizzy Bomb (Bomb_Piyo)
Bomb_Quick Burst Bomb (Bomb_Handy)
Bomb_Robot Autobomb (Bomb_Robo)
Bomb_Splash Splat Bomb
Bomb_Suction Suction Bomb (Bomb_Hold)
Bomb_Torpedo Torpedo (Bomb_Tako)
LineMarker Line Marker (LinMarker)
PointSensor Point Sensor (MarkingBall)
PoisonMist Toxic Mist (DevillBall)
SalmonBuddy Lil' Buddy - Needs to be modified if you want to use it on a weapon
Shield Splash Wall
Sprinkler Take a guess
Trap Ink Mine
Alright. Now we can get to editing kits.
-
Open switch toolbox and go to Tools > Compression > ZSTD > Decompress
-
Go to your romfs dump and go inside RSDB. Select
WeaponInfoMain.Product.GAME_VERSION.rstbl.byml.zs -
Delete the ".zs.dec" at the end of the file name so you're left with ".bfres" as the extension
-
save the file in a place so it will be easy to find.
-
go to where you saved the file and drag it into toolbox
-
Use this list again to find your weapon.
-
switch to text editor and hit "Decompile." hit
Ctr+Fand type in the weapon codename. dont use any underscores -
Find the paragraph that looks like this relating to your weapon
- The only notable things you can change in this file are:
-
Weapon kits
-
Weapon Special Points
-
What badges you get from getting 4 and 5 star on that weapon
-
Weapon UI Values (a.e the game showing you how much range the weapon has)
-
Weapon ID. This is a bit more complicated and is explained what it is and how to do later in the guide.
- Right now, we will only need to look at these 3 lines
Note that this isnt the correct kit for Bamboozler because i have already messed with it. Dosent change the process for changing any weapon kit though
- Lets replace the special first. Copy the special codename you want from the list above and replace the original special
This is the only part of the line that needs to be fully replaced with your special
- Now do the same thing for the sub weapon. Again this is the only part that should be replaced
- If you feel like it, edit the required amount of special points for the weapon. Setting it to 0 will automatically fill the special meter again after you use it
Dont worry about the !l thats just telling the game that its a Int32 value meaning it can store values up to 2,147,483,647
- compile it by clicking "Compile" near the top of the window
- Now save it with the save icon
Finally, we need to recompress it
-
go to Tools > Compression > ZSTD > Compress
-
select the .byml you just saved
-
delete the "td" at the end of the file name so the end of the file reads
.rstbl.byml.zs -
navigate to the romfs folder on your sd card. Make a folder called RSDB and place the file in there
-
Boot up the game
Have fun with your new kit but be sure to take a little break if all that code overwhelmed you because the next tutorial will involve a lot of code as well.
This might be the most anticipated part for you. At the end of this walkthough you will be able to change almost anything about any main, sub, and special weapon.
Right now i will just show you how to modify some very basic parameters. After this tutorial though is where everything gets more specific and i show you literally everything i know
Lets change the range, damage, RNG, and fire rate of the Splattershot Nova
This tutorial will have less pictures and less descriptive text for things we've already done multiple times in previous tutotials.
-
Inside toolbox, lets decompress another file with ZSTD compression. You should know how to decompress and compress with ZSTD by now
-
go to your romfs dump and open the Pack folder. Then select
Params.pack.zs
This file contains all main, sub, special weapon parameters as well as stage parameters
-
save it as
Params.packto a location you can find easily -
open the newly saved
Params.packin toolbox
We are going to search for the code name of a weapon we want to modify. If you want to modify its functionality specifically for salmon run or hero mode, add _Msn for hero mode or _Coop for salmon run to the end of the search.
- Hit the search button and search for ShooterQuickLong. To find splattershot nova. however this brings up 2 files
We always want the one that dosent have "Coop" in the name. Coop means Co-op which means salmon run. any file in Params.pack with Coop in the name only changes specific parts of the weapon in salmon run so we dont care about it.
-
Click the file without Coop in the name to locate it in the file view. Close the search window now
-
double click the highlighted file.
-
switch to text editor and hit "Decompile"
Lets start by giving it 100 damage just for the hell of it.
-
Locate the line that says DamageParam. Should be at line 15
-
ValueMax and ValueMin are the only values we care about
-
240 and 120 are the damage numbers multiplied by 10. the extra zero is in case a decimal value is needed. so lets set the Max and Min damage to 1000 to make it do 100 damage no matter what.
-
Lets also give nova perfect RNG. To do this, scroll down to the bottom section
WeaponParam
- RNG is under the 2 variables that contain
DegSwerveJump_DegSwerve is jump RNG and Stand_DegSwerve is ground RNG. set them both to 0
-
now on to fire rate. the
RepeatFramevariable. Set it to 1 to make it fire every frame. i dont know what setting it to 0 will do and im too scared to try -
Finally, range. scroll up to the line called
MoveParam(should be line 18) and find the variable calledSpawnSpeed. this is the range. but because its so small, just adding 1 or 2 will make it shoot across the map. although you can set this as high or as low as you want. Set the highlighted value on this line to a larger number
-
click Compile at the top
-
once you save that file, make sure to save the Params.pack file too
- compress the saved file with ZSTD. and put your newly created
Params.pack.zsinside the Pack folder in your SD card romfs directory
- Boot up the game
Nova is finally a functioning weapon.
This section will have sub sections that all focus on telling you where and how to modify more specific weapon functionality. general functions of a class will not be covered as they are either unimportant or easy to understand yourself. If you dont see a specific variable in the wepon you're editing, try adding that variable. For example, dualies dodge number is based on the RepeatCnt variable. However, that variable only shows up on tetras. This is because it's left at the default value (2) for all other dualies. All you need to do in this case is add that variable in the same place and in the same way you see it on tetras.
This section will not cover everything you can do. Just some interesting things you can start with
Down in the WeaponParam section for your weapon you will find a variable called InkConsume this variable tells the game how much ink to remove from the tank per shot.
find a section called PaintParam these give you a ton of customization for how much paint the weapon does. Multiplying all the values by 10 gives you some really fun results.
Down in the WeaponParam section for your weapon you will find multiple variables that start with Jump_DegBias and Stand_DegBias. The Int values relate to how quickly (in frames) the RNG takes effect and the float values relate to how much RNG the weapon has in what situation (Jump or Stand)
At around line 18 where MoveParam is, find the variable called SpawnSpeed. While it might not look like it, this is range. The number represents range based on the weapon meaning something like inkbrush and
E-Liter will have similar values for this. Try not to think about it too hard.
Everything in DamageParam aside from ReduceEndFrame and ReduceStartFrame
Down in WeaponParam find the variable called RepeatFrame this tells the game to shoot a bullet every X frames
Up in CollisionParam, edit every variable that contains the word "Radius" to be maybe 50X larger. Also make sure that all of those values are the same. This increases the radius of your bullet's hitbox making it easier to hit targets as well as objects blocking the way.
Stage editing is pretty complex but right now, its not even possible with most of the stages. toolbox kinda dosent compile some of the byml files correctly so until thats fixed, dont worry about it


























