DRG contracts, module choices, and dangerous events in real Risk of Rain 2.
Risk of Rain 2 × Deep Rock Galactic. A real RoR2 mod: original Molly, minerals, a pickaxe, resupply, and a DRG drop pod appear on regular maps. Content and mineral density are read at launch from your own installed copy of Deep Rock Galactic, through memory and an anonymous pipe. Files from the other game are not copied into RoR2 or this archive.
Contracts rotate on regular RoR2 maps. The first stage is “Deep Recon”: 150 Morkite. Next is “Lost Cargo”: 100 Morkite and three cargo containers, each restored by holding F for three seconds. Then “Deposit Clearing”: 120 Morkite and three drill sites, each requiring 16 seconds of work; living enemies within eight meters block progress. Starting a repair attracts a swarm. After the third contract, the cycle repeats while RoR2’s regular difficulty continues to increase.
Each stage has a random optional bonus objective: 18 kills, 50 extra Morkite, or 120 Nitra deposited. Nitra counts before resupply costs. Completing the objective awards a green item and a bonus. You can evacuate as soon as the main objective is complete or take a risk for an extra reward.
Events change your tactics: a meteor front first marks red zones, then deals actual damage after 4.5 seconds; a rich vein doubles mining yield for 25 seconds, generating more noise; an ore guardian summons an empowered RoR2 golem, and defeating it awards a green item. No new events start during evacuation, and any pending meteor warnings are cleared.
After a successful evacuation, press 1 / 2 / 3 to choose one of three offered modules. You can also make your choice on the next stage. Modules stack up to four levels, persist between stages, and reset when you start a new run:
Your personal stats for completed expeditions, ore mined, victories, and best streak are saved locally. Test runs don’t change them. Upgrades don’t carry over between runs; choosing a new build is part of the experience.
Tab shows the eight nearest veins. Z throws a flare (four charges by default, which recharge over time). X plays the original “Rock and Stone!” H opens the help screen. WASD, mouse, and combat work as they do in RoR2. The main additional keybinds can be remapped in the BepInEx configuration. Choose modules with 1 / 2 / 3 or the numeric keypad.
Waves of actual RoR2 enemies grow stronger and arrive more often during evacuation. An expedition objective takes the place of the teleporter objective. Molly and resupply have physical boundaries, and large pods choose landing areas with enough room. Regular maps, enemies, survivors, and items are all from RoR2. Co-op, dwarf classes, DRG caves, and fully destructible terrain aren’t included in this version. The final map has no teleporter and uses RoR2’s regular ending.
You’ll need your own Steam copies of Risk of Rain 2 and Deep Rock Galactic, installed on Windows x64. You don’t need to launch DRG separately.
Melty: Click Play on the Rock and Rain page. The app checks for both games, installs BepInEx 5.4.23.5 and the mod, and passes along the DRG folder. An expedition button will appear in RoR2’s main menu. Reading the installed content pack takes a few seconds the first time. The .NET runtime needed by the reader is already included in the package.
Portable local version: Extract the entire RockAndRain-1.1.0-portable.zip into a folder and run RockAndRain.exe. The Profile and Runtime folders must stay next to it. The launcher finds games in your Steam libraries and launches RoR2 through Steam with a separate BepInEx profile. If the game is missing a loader proxy, it adds the official winhttp.dll and a Doorstop configuration that’s disabled by default. It won’t overwrite existing proxies or configuration. Regular launches continue using your previous mod profile.
Tested on RoR2 1.5.0#1210 / Steam build 25475991, Unity 2021.3.45f2; DRG Steam build 25433570, UE4.27. The mod set was tested separately. Compatibility with other mission or teleporter replacements is not guaranteed.
Close RoR2 if it’s already open before launching the launcher. Make sure both games are installed and Steam is running. If DRG is missing, the mod will show the reason in the main menu. For Melty, the log is at BepInEx/LogOutput.log in the RoR2 folder; for the portable version, it’s at Profile/BepInEx/LogOutput.log. Game log: LocalLow/Hopoo Games, LLC/Risk of Rain 2/Player.log. Don’t copy DRG assets manually.
To uninstall through Melty, click Remove on the mod page. For the portable version, delete its folder and shortcut. If the launcher added a proxy to a clean game, you can remove winhttp.dll and doorstop_config.ini after checking that no other mod uses them. Game saves aren’t included.
Concept and direction: mamay. Programming and testing: Codex (GPT-6), commissioned by the author. Original code, tables, and icon: MIT; remixes are allowed with notices preserved. Screenshots were captured in the actual game. No paid asset generators were used.
Risk of Rain 2 and its content belong to their respective rights holders, Hopoo Games / Gearbox. Deep Rock Galactic and its content belong to Ghost Ship Games / Coffee Stain. MIT applies only to the project’s original code, not game assets. Each player reads assets from their own copy. Game DLLs, packs, models, textures, and sounds are not included in the distributed archive.
Used: BepInEx 5 (BepInEx Team, LGPL-2.1), HarmonyX (MIT), CUE4Parse (FabianFG and contributors, Apache-2.0), NVorbis (Andrew Ward, MIT), Newtonsoft.Json (James Newton-King, MIT), and .NET runtime (Microsoft/.NET Foundation, MIT). The full list and license texts are in licenses/. CUE4Parse is used from commit 6452daa88c1d8c00dfafcaada81245bbe545ef5b with an explicit Microsoft.Bcl.Memory 10.0.4 dependency.
Source files are in RockAndRain-1.1.0-source.zip. Build.ps1 finds RoR2, validates the tables, gets the pinned CUE4Parse version, and builds the reader and mod. .NET SDK 10, Python 3, and Git are required; players don’t need development tools.
The JSON tables in sheets/ are the source of gameplay parameters. preflight.py validates every populated cell and its references, then creates a separate class for each row in Plugin/GeneratedDesign.cs. The bridge passes geometry, textures, sound, and mineral data exclusively through an anonymous pipe. Unity objects are created on the main thread.
Automated testing is enabled only with the --rock-and-rain-test argument. It runs through a real mission using the same mining, depositing, resupply, and evacuation methods, checks stage progression and defeat, compares 315 table cells against the executable build, and saves qa-results.json, qa-design-cells.json, and checks.txt. A regular launch does not enable invulnerability, teleportation, or auto-completion. A successful build by itself does not count as a gameplay test.