EFD Trading Card Mod - Custom Foundry VTT trading card system
Go to file
Cal Corum 8c7a131869 Add disassembly support for storage items
- Add DisassemblyHelper class for runtime disassembly formula management
- Binder Sheet disassembles into 2x Polyethylene Sheet
- Card Binder disassembles into 4x Polyethylene Sheet
- Cards and packs intentionally have no disassembly (collectibles)
- Document disassembly pattern in CLAUDE.md (struct boxing for reflection)
- Fix .claude/settings.json permission patterns

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 08:58:07 -06:00
.claude Add disassembly support for storage items 2025-12-29 08:58:07 -06:00
assets Release Candidate 2 for v1.0.0 2025-12-06 23:23:59 -06:00
src Add disassembly support for storage items 2025-12-29 08:58:07 -06:00
tests Add unit tests for pack system 2025-11-19 22:12:54 -06:00
.gitignore Add sprite padding, updated values, and deploy improvements 2025-11-19 23:02:17 -06:00
CLAUDE.md Add disassembly support for storage items 2025-12-29 08:58:07 -06:00
deploy.sh Release Candidate 2 for v1.0.0 2025-12-06 23:23:59 -06:00
info.ini Initial commit: Trading Card Mod scaffold for Escape from Duckov 2025-11-18 18:55:04 -06:00
preview.png Release Candidate 2 for v1.0.0 2025-12-06 23:23:59 -06:00
README.md Add hierarchical storage system, card set exclusion, and weight adjustments 2025-11-22 23:22:43 -06:00
remove.sh Implement Phase 2: Core card framework with clone + reflection 2025-11-19 16:56:04 -06:00
TradingCardMod.csproj Fix storage slot filtering with parent tag system and add F10 spawn window 2025-11-23 00:03:18 -06:00
TradingCardMod.Tests.csproj Add unit tests for pack system 2025-11-19 22:12:54 -06:00
VERSION Release Candidate 1 for v1.0.0 2025-11-21 00:41:03 -06:00

Trading Card Mod for Escape from Duckov

A customizable trading card system that lets you add your own card sets to the game.

Features

  • Custom Card Sets - Create your own trading cards with custom artwork and stats
  • Card Packs - Open randomized card packs with gacha-style rarity distribution
  • Hierarchical Storage System - Organize your collection with:
    • Binder Sheets (9 slots, lightweight) - Hold individual cards
    • Card Binders (12 slots) - Hold cards OR binder sheets for nested storage
  • Card Set Management - Disable card sets by prefixing folder names with _
  • User-Friendly Format - Define cards using simple pipe-separated text files
  • ModConfig Integration - Enhanced card info display and mod statistics (optional)
  • No Programming Required - Add new card sets without writing any code

Requirements

Required Mod Dependency:

This mod requires the HarmonyLoadMod to be installed. It provides the Harmony library that many mods share to avoid version conflicts.

Optional Mod Dependency:

ModConfig is optional but recommended. When installed, it:

  • Adds card set information (set name, card number, rarity) to item descriptions in your inventory
  • Displays mod statistics including total cards loaded, packs available, and disabled card sets

Installation

  1. Subscribe to HarmonyLib on Steam Workshop
  2. (Optional) Subscribe to ModConfig for enhanced card descriptions
  3. Build the mod (see Development section)
  4. Copy the TradingCardMod folder to your game's Duckov_Data/Mods directory
  5. Launch the game and enable the mods in the Mods menu (HarmonyLib is required, ModConfig is optional)

Adding Card Sets

Creating a New Card Set

  1. Create a new folder in CardSets/ with your set name (e.g., CardSets/MyCards/)
  2. Create a cards.txt file in your folder
  3. Create an images/ subfolder for card artwork

Card Definition Format

Cards are defined in cards.txt using pipe-separated values:

CardName | SetName | SetNumber | ImageFile | Rarity | Weight | Value | Description (optional)

Example:

Blue Dragon | Fantasy Set | 001 | blue_dragon.png | Ultra Rare | 0.05 | 500| A majestic dragon with scales of sapphire blue.
Fire Sprite | Fantasy Set | 002 | fire_sprite.png | Rare | 0.05 | 100

Field Descriptions

Field Description Example
CardName Display name of the card "Blue Dragon"
SetName Name of the collection "Fantasy Set"
SetNumber Number for sorting (as integer) 001
ImageFile Image filename in images/ folder "blue_dragon.png"
Rarity Card rarity tier Common, Uncommon, Rare, Ultra Rare
Weight Physical weight in game units 0.05
Value In-game currency value 500
Description Optional flavor text for the card "A majestic dragon..."

Image Requirements

  • Place images in your cardset's images/ subfolder
  • Recommended format: PNG

Comments

Lines starting with # are treated as comments and ignored:

# This is a comment
# CardName | SetName | SetNumber | ImageFile | Rarity | Weight | Value
Blue Dragon | Fantasy Set | 001 | blue_dragon.png | Ultra Rare | 0.01 | 500

Disabling Card Sets

To temporarily disable a card set without deleting it, prefix the folder name with an underscore _:

CardSets/
├── MyActiveSet/          # This set will load
├── _MyTestSet/           # This set will be skipped
└── _SeasonalCards/       # This set will be skipped

Disabled sets are:

  • Skipped during mod initialization
  • Logged in the game console for reference
  • Counted and displayed in ModConfig (if installed)

This is useful for:

  • Work-in-progress card sets
  • Seasonal or event-specific content
  • Testing different configurations

Folder Structure

TradingCardMod/
├── TradingCardMod.dll
├── info.ini
├── preview.png
├── CardSets/
│   ├── ExampleSet/
│   │   ├── cards.txt
│   │   └── images/
│   │       └── (card images here)
│   └── YourCustomSet/
│       ├── cards.txt
│       └── images/
└── README.md

Development

Requirements

  • .NET SDK (for .NET Standard 2.1)
  • Escape from Duckov installed

Building

  1. Update DuckovPath in TradingCardMod.csproj to point to your game installation
  2. Build the project:
    dotnet build
    
  3. The compiled DLL will be in bin/Debug/netstandard2.1/

Linux Steam Paths

Common Steam library locations on Linux:

  • ~/.steam/steam/steamapps/common/Escape from Duckov
  • ~/.local/share/Steam/steamapps/common/Escape from Duckov

Testing

  1. Copy the build output to Duckov_Data/Mods/TradingCardMod/
  2. Launch the game through Steam
  3. Enable the mod in the Mods menu
  4. Check the game's log for [TradingCardMod] messages

Troubleshooting

"CardSets directory not found"

The mod will create this directory automatically. Add your card sets there.

Cards not appearing

  • Check that cards.txt follows the exact format (7 pipe-separated fields)
  • Ensure image files exist in the images/ subfolder
  • Check the game log for parsing errors

Build errors

  • Verify DuckovPath in the .csproj points to your actual game installation
  • Ensure you have .NET SDK installed with dotnet --version

License

This mod is provided as-is for personal use. Do not distribute copyrighted card artwork.

Credits

Built using the official Duckov modding framework and building on the awesome work of the AdditionalCollectibles mod.