# Making Mods

# Injecting Mods

Beat Saber does not have built in mod support.

Instead, most mods within the mod installer rely on BSIPA (Beat Saber Illusion Plugin Architecture) to inject plugins into the game, as well as providing some useful tools for us modders.

Previously, we used IPA (Illusion Plugin Architecture). Some plugins still use this, and is temporarily supported by BSIPA. We still use IPA for the mod tutorial, however it is recommended to use BSIPA for any future modding endeavors.

For those of you who prefer BepInEx over either of these options, Bepis has created a loader for BSIPA plugins, available here. As for developing Beat Saber plugins with the BepInEx plugin API, a generic guide exists on their documentation site, but other than that you're kinda on your own.

# Project Setup

If you are interested in creating a Beat Saber mod, but do not have a template or Visual Studio template set up, follow the Intro guide to get your project all set up.

# Ready to go?

Check out the links below for documentation relating to Unity and related tooling. If you have any questions, the best place to ask is in the #pc-mod-dev channel on the BSMG Discord

# Launch args

Helpful launch arguments that will make modding / debugging easier.

Argument               Description
--verbose Enables the output log window for IPA. This will show the debug console that mods use.
fpfc "First Person Flying Controller"

This allows you to use WASD and the mouse to navigate around the menu in game. This makes testing much easier, because you don't have to put on your headset!
-vrmode oculus If you are running Beat Saber through Steam, this allows you to play the game on an Oculus headset.