CardCraft
Adds a post-pick crafting phase to ROUNDS with deterministic recipes, multiplayer validation, class-card support and a recipe browser.
By FGANG
| Date uploaded | a week ago |
| Version | 0.7.0 |
| Download link | FGANG-CardCraft-0.7.0.zip |
| Downloads | 11 |
| Dependency string | FGANG-CardCraft-0.7.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_ROUNDS
BepInEx pack for ROUNDS. Preconfigured and ready to use.
Preferred version: 5.4.1900willis81808-UnboundLib
This is a helpful utility for ROUNDS modders aimed at simplifying common tasks.
Preferred version: 3.2.14README
CardCraft
CardCraft adds an optional crafting phase after the normal card-pick phase in ROUNDS.
Features
- Runs after normal and additional Pick phases using UnboundLib's final PickEnd hook.
- Shows up to 5 craftable recipes, ranked by Score and selected from the top 10.
- Validates the recipe again immediately before crafting.
- Host-authoritative multiplayer crafting using a stable recipe key.
- Ingredients are removed through the card utility API so card effects are removed correctly.
- Recipe browser (
F2) with mod filter and readiness groups. - Static embedded recipe database for fast startup.
- Lightweight runtime supplement for cards missing from the embedded database.
- Classes Manager Reborn integration is optional. If CMR is installed, CardCraft respects its class tree and Entry rules; without CMR, CardCraft continues to work normally.
- Curses and obvious junk/test cards are excluded.
- Literal
+characters in card names are escaped in the recipe database, so names such asGemini+are parsed correctly.
Required dependency
- UnboundLib 3.2.14 or compatible newer release.
Optional integrations
- Classes Manager Reborn
- ModdingUtils
- WillsWackyManagers
- Pick N Cards / PickPhaseImprovements / MorePicksPatch / Rounds With Friends / Rounds With Bots
CardCraft does not require these optional mods.
Configuration
CardCraft creates its configuration under BepInEx/config/CardCraft.cfg and editable database overrides under BepInEx/config/CardCraft/.
The recipe browser is opened with F2 by default.
Source / development
The source archive contains the local reference assemblies under libs/ and can be built with:
dotnet build CardCraft.csproj -c Release
The resulting DLL is bin/Release/netstandard2.0/CardCraft.dll.
CHANGELOG
CardCraft Changelog
1.0.516 — Thunderstore release
- Expanded the embedded static recipe database to 10,000 recipes.
- Prioritized CardCraft-exclusive results while building the static recipe pool.
- Added two deterministic recipe opportunities per eligible result where recipe guards allow them, then filled the remaining database with additional valid recipes.
- Removed recipe entries containing
(Clone). - Disabled runtime/dynamic recipe synthesis for the release build.
- Reduced hot-path informational logging compared with diagnostic transaction builds.
- Kept CardCraft on
PickStart, before the normal card-pick phase. - Kept host-authoritative multiplayer validation and transaction handling.
- Kept the per-player craft flow so a player without a craftable recipe does not block other players' normal Pick phase.
- Updated Thunderstore requirements to explicitly declare BepInExPack ROUNDS, MMHook, and UnboundLib.
1.0.5.14
- Remote accepted Craft decisions wait for an explicit host transaction result before releasing that player's local PickStart flow.
- Added bounded state polling around ingredient removal and result addition to reduce races with asynchronous card-list rebuilds.
- No global Craft Pick barrier for players who are not crafting.
1.0.5.11
- Improved transaction handling around ModdingUtils card-list rebuilds.
- Added authoritative card-state checks after ingredient removal and result addition.
- Added transaction completion barriers and fail-safe timeout handling.
1.0.5.8
- Improved multiplayer PickStart synchronization around host-confirmed craft completion.
- Retained the transaction instance-API fix for ModdingUtils.
1.0.5.6–1.0.5.7
- Fixed discovery and invocation of the ModdingUtils
Cards.instancecard mutation API. - Added safer overload selection for adding and removing cards.
- Avoided binding to unrelated third-party mutation helpers.