How to Mod Game Mechanics and Config Settings - Inidar1/Switch-Pokemon-Modding-Tutorials GitHub Wiki
Introduction
Want to make changes to the game's config files? This tutorial is for you.
With this converter, you will be able to easily change game mechanics by modifying the BIN files that Scarlet and Violet use to store their settings and config.
Link to Tool: Flatbuffers BIN Converter
Don't want to make mods from scratch and just want to use existing mods?
How to Use Mods for Pokemon Scarlet or Violet
Video Tutorial: How to Combine Mods for Pokemon Scarlet and VioletWant more help or just want to chat?
Find me on Discord at Inidar Academy.
TL;DR
First, extract the tool zip into a new working folder and add flatc.exe to the folder root. Second, put the .bin or JSON you want to convert and it's corresponding .fbs or .bfbs schema into the Input folder. Finally, run the appropriate .bat file to complete the conversion.
Need more details? Read on!
Full Usage Instructions
1. Preparing the Converters
Make a new folder and extract Flatbuffers_BIN_Converter.zip inside it. All files and folders extracted from Flatbuffers_BIN_Converter.zip must be contained together in this single working folder.
***Warning***
Do not use these scripts anywhere except your working folder.
That means don't run them loose on your desktop, in a downloads folder, or alongside any other important files.
They will never delete any files and would most likely do nothing at all, but they are designed to modify certain files in the same directory as themselves. So just to be safe, stick to best practice and use a working folder when running the scripts.
DO NOT SKIP THIS STEP.
2. Acquiring flatc.exe
Visit this link and download the latest Windows.flatc.binary.zip from Google.
Unzip, then drag flatc.exe into the root of the folder you created in step 1.
3. Finding Config Files
If you already know what you want to modify, you can skip to step 4. If you need ideas, read on.
To find interesting files to mod, one option is to download pkNX, open your SV romfs, then use the 'Master Dump' option. In particular, be sure to extract the romfs/world/data folder to find many config files. If you don't know how to use pkNX, please see my Pokemon Legends tutorials.
This will give you a huge amount of files to go through and get ideas, but do not use the .bins or JSONS from pkNX to make mods. Extract and convert everything yourself instead to avoid issues.
To find and extract game files yourself, use nxdump tool or an emulator. Again, be sure to get romfs/world/data.
4. Running the Converters
You will need 2 files to complete the conversion: a .bin file and a .bfbs.
The .bin file will contain the game config you want to change, and .bfbs is a schema that can be used to translate it. These 2 files are stored together in the same folder within your romfs, so if there is no .bfbs file beside the .bin you want to modify, you need to make or find your own schema (which is well beyond the scope of this tutorial). Note: .fbs files are also accepted, and bulk conversion is allowed if all appropriate BIN and schema files are present.
To begin the conversion:
Put the .bin file and it's corresponding .bfbs or .fbs file in the Input folder.
Your folder directory should now look like this:
Input --> something.bin, something.bfbs
Output
Convert_To_BIN.bat
Convert_To_JSON.bat
flatc.exe
Finally, run Convert_To_JSON.bat.
Your JSON file will then appear in the Output folder. You can now modify this file, then convert it back to .bin to create your very own Game Mechanics mod using Trinity Mod Loader.
To convert from JSON back to .bin, it's the same process: put your JSON and its corresponding .bfbs file in the Input folder, then run Convert_To_BIN.bat.
Remember: Each .bin file will have it's own .bfbs schema, so make sure you are using the correct one.
5. Final Notes
This tutorial barely scratches the surface of flatbuffers.
If you are willing and able to improve the scripts or add more functionality, send me a message and I'll make an update.
Feedback & Acknowledgments
Huge thank you to Duckdoom5 for taking my terrible tiny scripts and making them 1000x more useful and user-friendly, and thanks again mv_oripoke and CraftyBoss for all your help learning about this.
To see more of Duckdoom5's work, click here to check out his github
And a huge thank you to Jamorhi, VulgrPixel, itskurtly, Omegatron3423, TheSnorlaxBoi, H3roDude, Ænigma, TTiN, Ph30n1xFl4r3, SaintSolo, and Quill for your support -- Legends, all of you.
All my mods are always free, but if you want to support my work and get your own shoutout, check out my Patreon or buy me a coffee below:)
Click here for Patreon
Click here for Ko-Fi