CommandChests
Artifact: vanilla chests offer a 3-item pick from their tier instead of a random drop.CommandChests
A Risk of Rain 2 mod that adds an Artifact of Choice. While enabled, two things happen:
- Chests are replaced with multishop terminals at scene-spawn time. Wherever the director would have placed a chest, you instead get a 3-terminal multishop. (Equipment barrels become equipment multishops.)
- Each terminal rolls its tier independently. Vanilla multishops show three terminals of the same rarity; with this artifact on, a single multishop can offer e.g. white + green + red side-by-side.
The combined effect: every "chest moment" in the run becomes a small choice between three independently-rolled items, and you can occasionally get a red where a white would have been.
Coverage (v0.1)
Replacements:
| Vanilla card | Becomes |
|---|---|
iscChest1, iscChest1Stealthed (small chests) |
small multishop |
iscChest2 (large chest) |
large multishop |
iscGoldChest (gold chest) |
large multishop |
iscCategoryChestDamage / Healing / Utility (adaptive chests) |
large multishop |
iscEquipmentBarrel |
equipment multishop |
Per-terminal tier reroll fires on every multishop while the artifact is on (whether we placed it or it was already in the scene). Only non-equipment multishops are affected; the per-terminal rule is skipped on equipment multishops since equipment doesn't have a tier ladder.
Tier weights per terminal, derived from the multishop's "host" tier:
| Multishop type | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Small (host of replaced white chests) | 80% | 18% | 2% |
| Large (host of replaced green / gold / adaptive chests) | 20% | 70% | 10% |
Other multishop tiers (red multishops, void) and equipment multishops are left as vanilla.
Deferred to v0.2:
- Scavenger backpacks
- Lunar pods, void cradles, halcyonite shrines
- Cauldrons (already pickers — design call needed)
Multiplayer is server-authoritative. The card swap and the per-terminal tier
rerolls all run server-side; clients see the spawned multishops + their
chosen pickups via the standard ShopTerminalBehavior SyncVars.
Install (friends)
- Install the dependencies in your mod manager (r2modman or Thunderstore Mod Manager):
- BepInExPack
- HookGenPatcher
- RoR2BepInExPack
- R2API.Core, R2API.ContentManagement, R2API.Language, R2API.ArtifactCode
- Drop
CommandChests.dllintoBepInEx/plugins/of your profile. - Launch the game. The artifact will appear in the artifact list as "Artifact of Choice", available to enable from the lobby.
Build (developers)
Requirements:
- .NET SDK 8.x
- A local RoR2 install + a BepInEx profile with the dependencies above already
resolved by your mod manager. The
.csprojis gitignored on purpose becauseHintPaths reference your specific install. Edit theRoR2PathandBepInExProfilePathproperties at the top ofCommandChests.csprojif your paths differ from mine.
dotnet build -c Release
The output DLL lands in bin/Release/CommandChests.dll.
To produce a shareable Thunderstore-format zip:
pwsh tools/package-share.ps1
This writes dist/CommandChests-<version>-zhait.zip containing the DLL,
README, generated icon.png, and manifest.json. The zip can be installed by
dragging it onto r2modman or by extracting it under
BepInEx/plugins/CommandChests/.
