ModsBeforeFriday is a modding tool for Beat Saber on Quest that works entirely within the browser, using WebUSB to interact with the quest. The aim is to make installing mods as easy as possible, with no need to download special tools or hunt around for core mods.
MBF has some query parameters which can be passed with the URL. These are useful for mod developers when testing core mods before they are officially released.
?dev=true
: This will override the normal version check, and always prompt the user to patch the currently installed Beat Saber game. NOTE: If you are not a mod developer, this will not help you. All it does is allows the modloader to be installed, it does not magically make the new version support mods and using this will only prevent you from downgrading Beat Saber. This is not "get mods only".?setcores=prompt
: This will prompt the user to enter an alternative core mods URL to use to test that the core mod JSON is ready for release. This URL will then be stored in the query parameter for future page refreshes../mbf-agent
contains the agent, which is an executable written in Rust that is executed by the frontend via ADB. This agent does pretty much all the work, including installing mods and patching the game.
./mbf-site
contains the frontend, which communicates with the agent via JSON. (Written in typescript with React).
Install the aarch64-linux-android target:
$ rustup target add aarch64-linux-android
ANDROID_NDK_HOME
to the folder containing your Android NDK.CC_aarch64-linux-android
to $NDK_PATH/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android31-clang.cmd
where $NDK_PATH
is your Android NDK root path.AR_aarch64-linux-android
to $NDK_PATH/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-ar.exe
.(if on another OS, the paths may be slightly different. Please update the paths as necessary!)
Create a new file with path ~/.cargo/config.toml
. Add the following contents, replacing the <contents of...>
with the relevant environment variable.
[target.aarch64-linux-android]
linker = "<contents OF CC_aarch64-linux-android environment variable>"
ar = "<contents OF AR_aarch64-linux-android environment variable>"
public
directory so that it can be used by the site, navigate to ./mbf-agent
and run ./build.ps1
../run_android
script can be used to automatically copy the agent to the correct location on the Quest if you want to invoke it manually in adb shell
. The site will do this automatically otherwise../reset_bs
will reinstall vanilla Beat Saber. (The paths in this file reflect the directory structure of Lauriethefish's computer and will need updating with the path of your APK/OBB.)To serve the site for testing, navigate to ./mbf-site
and run yarn start
.
(you may need to yarn install
first).