The verified runtime is Rain World v1.11.8, Steam app 312520, Steam build 22785462. global::RainWorld.GAME_VERSION_STRING supplies the game version. The Unity executable identifies Unity 2020.3.45f1 (660cd1701bd5). The managed assembly file version 0.0.0.0 is not the Rain World release number.

Source identifiers

Use these hashes when comparing a report or example with this baseline. Game claims name the relevant symbol and refer to this table rather than a local path or a decompiler line.

ComponentVersion or roleSHA-256
Assembly-CSharp.dllRain World game codeB6BE1D4E18CE219D21091B51564CB6A11C1E4106B41DE903EB8E58849CB16FDB
Assembly-CSharp-firstpass.dllFirst-pass managed code7180DA54E10BCFF9E068D04FC067F5A5225029D147120DF24814DAB909B442DB
HOOKS-Assembly-CSharp.dllOn.* hook surface233BF3687919F125D248C75909C6795D82CBFE8E823DFAF1205EBC84473351EF
BepInEx.dllBepInEx 5.4.17.0DC1CB6B58B962BDA5AAA1D6B5F9AE14EC174F61836A1A1F96C1A040C7E8381F7
BepInEx.MultiFolderLoader.dllMod plugin directory discovery, version 1.3.1.0C0D96BD8B815044FF91CFC9072DB11A7A9B137C7638137EDBEB1DF16658B69BB

The game assembly was inspected statically before accounting for changes made by other installed plugins. Hook signatures used by the examples were also checked by compilation.

Bundled module manifests

The installation contained known bundled module manifests at their expected module IDs:

Module IDManifest versionDeclared requirements
devtoolsabsentnone
expeditionabsentnone
jollycoopabsentnone
moreslugcats1.11.0rwremix
rwremix1.9.15bnone
watcher1.5none

File presence and manifest identity do not establish ownership, enablement, or unchanged Steam content. These versions are module versions rather than six separate DLC purchase claims. The tutorials use base content unless they name an additional dependency.

Runtime lifecycle and data readers

AreaFull symbolVerified behavior
Plugin creationBepInEx.Bootstrap.Chainloader.Start()Adds plugin types as Unity components. See First plugin.
Mod finalizationglobal::ProcessManager.Update(System.Single)Runs the wrapped disable and initialization sequence during a process transition.
Initializationglobal::RainWorld.PreModsInit(), global::RainWorld.OnModsInit(), global::RainWorld.PostModsInit()Initializes configuration connection, enum and module extensions, then starts user data and config loading. See Hook lifecycle.
Abstract registrationglobal::AbstractRoom.AddEntity(global::AbstractWorldEntity)Adds abstract world membership and separately tracks abstract creatures.
Object placementglobal::AbstractPhysicalObject.RealizeInRoom()Realizes and places an eligible physical object in a prepared room. See Abstract and realized objects.
Realized registrationglobal::Room.AddObject(global::UpdatableAndDeletable)Adds updates, room ownership, collision layer membership, and drawable handling.
Room lookupglobal::WorldLoader.FindRoomFile(System.String,System.Boolean,System.String,System.Boolean)Resolves region rooms first, then defined fallback locations.
World graph readerglobal::WorldLoader.MappingRooms()Reads room connection entries from the world file.
Region list readerglobal::Region.LoadAllRegions(global::SlugcatStats.Timeline, global::RainWorldGame)Reads the resolved region list for a timeline.
Room settings readerglobal::RoomSettings.Load(global::SlugcatStats.Timeline)Reads room settings and timeline variants.
Room settings writerglobal::RoomSettings.Save(global::SlugcatStats.Timeline)Writes settings through the resolved destination.
Map writerglobal::DevInterface.MapPage.SaveMapConfig()Writes map positions and room attraction data.
Map image writerglobal::DevInterface.MapRenderOutput.Signal(global::DevInterface.DevUISignalType, global::DevInterface.DevUINode, System.String)Writes the map texture and image rectangle metadata.
Asset resolutionglobal::AssetManager.ResolveFilePath(System.String,System.Boolean,System.Boolean)Checks merged output, active mods, and applicable content paths. See Rooms and regions.

The nearby rock example hooks global::Player.Update(System.Boolean), scans global::Room.physicalObjects, checks global::Room.VisualContact(UnityEngine.Vector2,UnityEngine.Vector2), and adds a global::Spark through global::Room.AddObject(global::UpdatableAndDeletable). Object interaction gives the bounded algorithm and compilation command.

Compilation baseline

The public examples listed in the example build instructions compiled from their repository source with .NET SDK 10.0.400, Roslyn 5.9.0-1.26379.115, and C# language version 7.3. The build script references the installed Mono framework, Assembly-CSharp.dll, Assembly-CSharp-firstpass.dll, Unity assemblies, BepInEx, and the hook assembly. It performs no restore and no deployment.

Compilation establishes syntax, metadata references, and hook signatures for this installed baseline. It does not show that the loader discovered the DLL or that the hook behaved correctly in a running game.

Verification limits

No game session was launched for these articles. Plugin loading, Remix toggling, visual output, room transitions, cooperative play, online compatibility, save behavior, and interaction with other plugins remain runtime tests. Room export destinations, exit numbering, shelter geometry, gate traversal, campaign access, display name loading, and placed objects tied to a DLC also remain unverified.

Static behavior can change when another plugin detours the same method. The hook chain has local orig ordering, but the installed evidence did not establish a global order across mods. Abstract persistence through room unloading does not by itself establish save file persistence. Dev Tools writes through resolved paths, so authors should inspect outputs before packaging and keep authored files outside generated mergedmods content.

To compare another installation with this baseline, hash its managed DLLs and inspect only the needed symbols with ILSpy. A different hash means the behavior should be verified again for that installation. Do not redistribute game source or game assets.

Sources