


A deck-building layer for ROUNDS inspired by trading card games. Build custom card pools before a match, set one as your active deck, and only draft from it during pick phases — no more rolling the dice on the full card library every time.
Create and manage named decks from any cards in the game. Each deck is:
BepInEx/config/RoundsTheGathering/decks.json)Deck limits per card:
Replaces the vanilla Toggle Cards menu with a full deck management UI:
During card picks, the active deck becomes your draw pool. Cards are drawn randomly from your deck and shrink as you pick — just like a real deck. The remaining count displays in a HUD at the bottom of the screen.
When all cards in your deck have been picked, the pool resets and you draw from the full deck again.
If no custom deck is set (or a bot is picking), the full vanilla card pool is used as normal.
A persistent overlay during pick phases shows:
Shields_Test — 20 cards
Red text when 5 or fewer cards remain.
RoundsTheGathering exposes a public API for other mods to declare tiered card unlock chains:
CardPrerequisiteRegistry.RegisterPrerequisite("Upgrade Shield Health II", "Upgrade Shield Health I");
A card with a prerequisite only appears in draft picks once the player already owns the required card — evaluated per-player, per-pick, from their current hand. No fragile global enable/disable required.
Other mods can register prerequisites via direct reference or via reflection (see the Modder API section below).
To go back to vanilla drafting, set the Default Deck as active.
| Mod | Status | Notes |
|---|---|---|
| UnboundLib | Required | Card registration and menu integration |
| ModdingUtils | Required | Card framework |
| ShieldsMod | Optional | Shield upgrade cards use the prerequisite API to gate tier II–V behind earlier tiers |
| Info Overhaul | Optional | Shows remaining deck count and card delta previews during picks |
| Card Delete Mod | Optional | Deleting a card from your hand mid-match correctly rebuilds the remaining deck pool |
From another mod, register a prerequisite chain so that a card only appears in picks once the player already owns an earlier tier:
Direct reference (if you have a compile dependency on RoundsTheGathering):
CardPrerequisiteRegistry.RegisterPrerequisite("My Card Tier II", "My Card Tier I");
Via reflection (soft dependency — your mod still loads if RTG isn't installed):
Assembly asm = AppDomain.CurrentDomain.GetAssemblies()
.FirstOrDefault(a => a.GetName().Name == "RoundsTheGathering");
Type registry = asm?.GetType("RoundsTheGathering.CardPrerequisiteRegistry");
MethodInfo method = registry?.GetMethod("RegisterPrerequisite",
BindingFlags.Public | BindingFlags.Static);
method?.Invoke(null, new object[] { "My Card II", "My Card I" });
Prerequisites are evaluated from the player's live hand each pick — so if a player acquires tier I mid-match, tier II immediately becomes available on their next turn.
Decks are saved to:
%AppData%\r2modmanPlus-local\ROUNDS\profiles\<Profile>\BepInEx\config\RoundsTheGathering\decks.json