Making PC Mods
Currently, all mods are made using the BSIPA (Beat Saber Illusion Plugin Architecture) to inject plugins into the game. It makes the process of executing code in game much easier, and provides many useful tools, some of which will be covered in this section of the wiki.
List of contents
- Getting a setup ready for creating PC mods
- Useful launch arguments
- Using Runtime Unity Editor
- Inspecting the game code with a decompiler
- Harmony patching
- Creating user interfaces with BeatSaberMarkupLanguage
- The essentials of Zenject through SiraUtil
- Writing a functioning mod step-by-step
- Other links
Getting Started
If you are interested in creating a Beat Saber mod, but do not have a template or Visual Studio template set up, follow the setup guide to get your project all set up.
If you have any questions at any point, the best place to ask is in the #pc-mod-dev
channel on the BSMG Discord, another modder may be able to help you solve your problem.
Launch args
Listed in the table below are numerous helpful launch arguments that will make modding / debugging easier.
If you are using Steam, you can enter these by right-clicking the game in Steam, then Properties...
, then General
.
If you are using BSManager, you can enter these by opening the Advanced launch
option on the game launch section. BSManager also already provides FPFC and Debug modes, which correspond to fpfc
and --verbose
respectively.
Argument | Description |
---|---|
--verbose | Enables the output log window for IPA. This will show the debug console that mods use. This is a must-have for all modders. |
--debug | Enables 'debug' level logs to show up in the log output window. These would otherwise normally only show up in log files. |
--trace | Enables 'trace' level logs to show up in the log output window. These are typically reserved for overly-detailed logs. |
fpfc | The "First Person Flying Controller" is a base-game feature that allows you to use WASD and mouse to control the camera without VR. This makes for easy testing. |
--auto_play | A base-game feature since version 1.37.1, it enables a basic auto player. This is useful for testing gameplay without playing yourself. |
-vrmode oculus | Only works on versions 1.29.1 and older. Allows you to play without SteamVR when playing the game from Steam. |
Other Links
Notable links mentioned in the PC modding wiki: