Skip to content

Contribution

SaltySyrup edited this page Jul 16, 2026 · 2 revisions

Building from source

Clone the repository

// TODO

Collect your project references.

You will need to subscribe to the following mods, as they are referenced as a soft dependency:

Then you can either use the provided shell script to automatically copy the references or move them manually. With the dlls in bin/References, the project will then automatically import them.

To use the shell script, open the bin folder in your terminal and run references.sh, passing the path to your Steam copy of Rain World in as an argument (If you have stored your RW directory in the PATH variable RainWorldDir, you can skip the argument).

It will look something like this:

./references.sh "C:/Program Files (x86)/Steam/steamapps/common/Rain World/"

If done correctly, all the .dll files you need should now be in bin/References. This script does not create symlinks to the files, so you may need to re-run this if there is a game update.

To move the files manually, find all of the following files in your steamapps directory and copy / symlink them to bin/References.

steamapps/common/Rain World/BepInEx/core/BepInEx.dll
steamapps/common/Rain World/BepInEx/core/Mono.Cecil.dll
steamapps/common/Rain World/BepInEx/utils/PUBLIC-Assembly-CSharp.dll
steamapps/common/Rain World/BepInEx/plugins/HOOKS-Assembly-CSharp.dll
steamapps/common/Rain World/RainWorld_Data/Managed/MonoMod.RuntimeDetour.dll
steamapps/common/Rain World/RainWorld_Data/Managed/MonoMod.Utils.dll
steamapps/common/Rain World/RainWorld_Data/Managed/UnityEngine.dll
steamapps/common/Rain World/RainWorld_Data/Managed/UnityEngine.CoreModule.dll
steamapps/common/Rain World/RainWorld_Data/Managed/UnityEngine.AssetBundleModule.dll
steamapps/common/Rain World/RainWorld_Data/Managed/UnityEngine.InputLegacyModule.dll

steamapps/workshop/content/312520/2920439476/plugins/RegionKit.dll
steamapps/workshop/content/312520/3126910221/plugins/ImprovedCollectiblesTracker.dll
steamapps/workshop/content/312520/3244633122/plugins/ExtendedCollectiblesTracker.dll

Build the project

With references set up you should be able to load RainWorldRandomizer.csproj in your IDE of choice, and pressing build should Just Work. To load the mod in game, you will need to copy over the mod files.

Copy ModFiles into Rain World/RainWorld_Data/StreamingAssets/mods/, and rename it to rwrandomizer (Technically, renaming the folder isn't necessary). Open the copied folder and create a folder within it named plugins. Copy the following files from your build output (should be bin/Debug) into the new plugins folder:

RainWorldRandomizer.dll
RainWorldRandomizer.pdb
Archipelago.MultiClient.Net.dll
Archipelago.MultiClient.Net.pdb
Newtonsoft.Json.dll

You can now run the game and see your locally built version of the mod in the Remix menu. If you're subscribed to the mod on Steam, you will need to disable, restart, and re-enable the mod for it to use the local version. Keep in mind that a manually installed version of the mod will always take precedent over the Steam version, so you will need to remove it in order to use the Steam version again.

When building the mod again, you will need to copy the new dlls into the plugins folder again. You can automate this with a script or symlink the files if you'd like. The project is set up to call bin/postbuild.sh after building, but this script is not provided as I haven't been able to make it generic yet.

Clone this wiki locally