zachh-CommandChests icon

CommandChests

Artifact: vanilla chests offer a 3-item pick from their tier instead of a random drop.

By zachh
Last updated 12 hours ago
Total downloads 37
Total rating 0 
Categories Mods Tweaks AI Generated
Dependency string zachh-CommandChests-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

bbepis-BepInExPack-5.4.2113 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2113
RiskofThunder-HookGenPatcher-1.2.3 icon
RiskofThunder-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.3
RiskofThunder-RoR2BepInExPack-1.43.0 icon
RiskofThunder-RoR2BepInExPack

Simplify the modding ecosystem of Risk of Rain 2, making it easier for modders to create and maintain their mods while preventing harmful bugs.

Preferred version: 1.43.0
RiskofThunder-R2API_Core-5.1.0 icon
RiskofThunder-R2API_Core

Core R2API module

Preferred version: 5.1.0
RiskofThunder-R2API_ContentManagement-1.0.5 icon
RiskofThunder-R2API_ContentManagement

API for adding content to the game

Preferred version: 1.0.5
RiskofThunder-R2API_Language-1.1.0 icon
RiskofThunder-R2API_Language

API for modifying the language localisation of the game

Preferred version: 1.1.0
RiskofThunder-R2API_ArtifactCode-1.0.1 icon
RiskofThunder-R2API_ArtifactCode

API for making Artifact Codes

Preferred version: 1.0.1

README

CommandChests

A Risk of Rain 2 mod that adds an Artifact of Choice. While enabled, two things happen:

  1. 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.)
  2. 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)

  1. Install the dependencies in your mod manager (r2modman or Thunderstore Mod Manager):
    • BepInExPack
    • HookGenPatcher
    • RoR2BepInExPack
    • R2API.Core, R2API.ContentManagement, R2API.Language, R2API.ArtifactCode
  2. Drop CommandChests.dll into BepInEx/plugins/ of your profile.
  3. 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 .csproj is gitignored on purpose because HintPaths reference your specific install. Edit the RoR2Path and BepInExProfilePath properties at the top of CommandChests.csproj if 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/.