You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Anairkoen Schno 30cb531c31 Added more indirection around Harmony at injection, as well as some debug printing during reference lookup 5 years ago
BSIPA-Meta Updated target framework for meta project 5 years ago
BSIPA-ModList Fixed ModList/Assembly-CSharp 5 years ago
BuildTools@275c55c559 Fixed some of the list for new uupdate 5 years ago
Doorstop Added Doorstop BuildUtils that weren't there for some reason 5 years ago
IPA Added a level of indirection in the injector for safety loading shipped libraries 5 years ago
IPA.Injector Added more indirection around Harmony at injection, as well as some debug printing during reference lookup 5 years ago
IPA.Loader Added more indirection around Harmony at injection, as well as some debug printing during reference lookup 5 years ago
IPA.Tests Finished migration to new locations 6 years ago
Libs Re-refactor for better MSBuild behavior 5 years ago
Net3-Proxy Finished backport to Net3 5 years ago
Refs Fixed ModList/Assembly-CSharp 5 years ago
TMP Exporter Moved some stuff around so that VS behaves 5 years ago
docs Fixed title for index of documentation 5 years ago
.gitignore Added Net3 meta project to solution 5 years ago
.gitmodules Removed Doorstop from submodules 5 years ago
BSIPA.sln Added most of the Net3 proxy 5 years ago
BSIPA.sln.DotSettings Finished Features implimentation 5 years ago
LICENSE Updated license to include exclusion of Refs dir 5 years ago
README.md Added new BSIPA iconography 5 years ago
appveyor.yml Updated version numbers 5 years ago

README.md

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

Arguments

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.

REGEDIT4
[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
"winhttp"="native,builtin"

For steam there's a per-game wine prefix under compatdata. In this case SteamLibrary/steamapps/compatdata/620980/pfx/user.reg. Changes to this file will likely be ovewritten when beatsaber updates or if local files are validated through steam.

Building

Prerequisites

  • Microsoft Visual Studio 2019 or later (2017 may work, no guarantees)
  • Tools for C/C++ (MSVC) v141
  • .NET 4.6.1 SDK and .NET 4.7.2 SDK

Building

  1. Clone with git clone https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded.git --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/
    
  3. Open BSIPA.sln in Visual Studio.

  4. Choose the configuration x64-Net4

  5. Rebuild all.

    When you make a change somewhere in BSIPA itself, right click on BSIPA-Meta and click Build or Rebuild. This sets up the output in path/to/solution/BSIPA-Meta/bin/<Configuration> to be what should be copied to the game directory.

    When making a change to the Mod List, you only need to build the mod list. Install by copying everything in path/to/solution/BSIPA-ModList/bin/<Configuration> to your game directory.

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/