Skip to content
The official BSIPA code repository
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
BSIPA-ModList Added restart button for when mods are installed after an update Apr 23, 2019
BuildTools @ 77fbb34 Updated BuildTools to point to BSMG Repo Apr 19, 2019
Doorstop @ 0f76cf2 Made BSIPA game agnostic Apr 20, 2019
IPA.Injector Added some error checking Apr 21, 2019
IPA.Loader Fixed loader error printer for standard IPA mods Apr 24, 2019
IPA.Tests Finished migration to new locations Sep 2, 2018
IPA Version bump Apr 23, 2019
Refs Added support for updating legacy mods if they are formatted properly Apr 23, 2019
.gitignore Added a rate limiter of sorts to StandardLogger Jan 26, 2019
.gitmodules Updated BuildTools to point to BSMG Repo Apr 19, 2019
BSIPA.sln Removed 'Any CPU' build target that doesn't work anyway Apr 22, 2019
BSIPA.sln.DotSettings Finished Features implimentation Jan 29, 2019
LICENSE Update LICENSE Mar 15, 2019 Added note to README, per #9 Apr 20, 2019
appveyor.yml Version bump Apr 23, 2019

BSIPA Build status

Beat Saber IPA - The mod injector tailored for Beat Saber

How To Install

  1. Download a release (
  2. Extract the contents into the game folder
  3. Run IPA.exe
  4. Start the game as usual

A console window should open before the game starts if the installation was successful.

To disable this console window, pass --no-console to the game.

How To Uninstall

  1. Drag & drop the game exe onto IPA.exe while holding Alt
    • Or run ipa -rn in a command window


IPA.exe file-to-patch [arguments]

  • --launch: Launch the game after patching
  • --revert: Revert changes made by IPA (= unpatch the game)
  • --nowait: Never keep the console open
  • See -h or --help for more options.

Unconsumed arguments will be passed on to the game in case of --launch.

How To Develop

  1. Create a new Class Library C# project (.NET 4.6)
  2. Download a release and add IPA.Loader.dll to your references
  3. Implement IBeatSaberPlugin or IEnhancedBeatSaberPlugin
  4. Build the project and copy the DLL into the Plugins folder of the game.

See Developing for more information.

How To Keep The Game Patched

BSIPA will automatically repatch the game when it updates, as long as winhttp.dll is present in the install directory.

Notes for running under Wine

For some reason, by default, Wine does not load DLLs in quite the same way that Windows does, causing issues with the injection. To make the injection work with Wine, winhttp has to have a DLL override set to native,builtin. This can be set either through Protontricks, or with the following .reg file.




  • Microsoft Visual Studio 2019 or later
  • Tools for C/C++ (MSVC) v141
  • .NET 4.6.1 SDK and .NET 4.7.2 SDK


  1. Clone with git clone --recursive
  2. Create a file, bsinstalldir.txt in the solution root. Do NOT create this in Visual Studio; VS adds a BOM at the begginning of the file that the tools used cannot read. It should contain the path to your Beat Saber installation, using forward slashes with a trailing slash. e.g.
C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/
  1. Open BSIPA.sln in Visual Studio.
  2. Choose the configuration x64
  3. Rebuild all. Any time you make a change, ALWAYS Rebuild All.

When building a Debug build, all referenced assemblies from Beat Saber will be copied from the install directory provided in bsinstalldir.txt into Refs/. Any new references should reference the copy in there. When building for Release, it just uses the files already in Refs/

You can’t perform that action at this time.