About this mod
A launcher with a 4GB patcher for Steam and GOG, as well as a patcher to merge the preload files for mods. Source available on GitHub.
- Requirements
- Permissions and credits
- Changelogs
- Donations
- Patches both the Steam and GOG exe files to allow your game to use 4GB of memory.
- Autodetects Steam exe install path.
- Allows better compatibility between mods by merging the on_running.txt and on_start.txt for all mods.
- Source code available on GitHub, final zip is built from GitHub Actions with a verifiable hash.
- Does not work on modified exe files (The plan is to support all official exes from 1.5.0.15 onwards)
Hopefully more in the future (specifically mod list management is something I'm working on)
Users
- Unzip the file anywhere on your computer except your Battle Brothers data folder.
- Run the msu-launcher.exe
- If you have a steam install, the game's location should be autodetected, otherwise use set game location to locate your BattleBrothers.exe file
- Click download steamless to enable the 4GB patcher
- Click Run 4GB patcher
- Launch game from within the launcher (this will also always automatically run the preload patcher)
FAQ
Q: Why can't I launch the game from the exe anymore?
A: For some reason using steamless disables being able to run the game directly from the exe, so you have to use either steam or the launch to launch once you've applied the patch on a steam exe.
Q: How do I revert the patch?
A: You can either verify your files or use one of the created backup files in the same folder as the BattleBrothers exe.
Q: What is Steamless?
A: Steamless is an external tool available here which removes Steam's basic DRM so that the 4GB patch can be applied without steam complaining. The launcher will automatically download it and put it in the right location for it to be used.
Modders
What is on_start.txt/on_running.txt
These files allow for your brushes to be held in memory, on_start is loaded before the main menu is shown and on_running is loaded after. Not doing this can cause missing brushes and even potential crashes if your brushes are used on the world map, therefore if you have such brushes you should split them up into a separate file and include them in an on_running.txt.
The launcher collects the preload/on_start.txt and preload/on_running.txt for all mods in the data directory, and creates a mod which contains a merged version of these files.
The generated mod is registered with modern hooks (so you can require it as a dependency) and it exposes 3 functions for you to validate that your files have been loaded.
::MSULauncher.hasResourceOnStart(_resourceName)
::MSULauncher.hasResourceOnRunning(_resourceName)
::MSULauncher.hasResource(_resourceName)
Each should be fairly self explanatory, pass the full path of the resource you put in on_running.txt or on_start.txt and the function will return true/false if it has been loaded into memory.
Example Mod:
Our mods adds a world sprite and it is in the gfx/mods/mod_my_mod/world_entity.png file.
local mod = ::Hooks.register("mod_my_mod", "1.0.0", "My Mod!");
mod.require("mod_msu_launcher")
mod.queue(">mod_msu_launcher", function() {
if (!::MSULauncher.hasResourceOnRunning("gfx/mods/mod_my_mod/world_entity.png")) {
throw "gfx/mods/mod_my_mod/world_entity.png not loaded, please use the MSU Launcher to launch your game";
}
});