Card Collector is a personal experiment in large-scale generated game content: a complete trading-card collection loop (in the spirit of the classic ’90s card craze) built inside Starfield. Booster packs drop from exploration and vendors, opening one rolls rarity tables card by card, and a binder tracks collection progress across every set.
Why it exists
I wanted to know how far Starfield’s Creation Engine could be pushed with a fully generated content pipeline: not hand-placing records in an editor, but describing an entire collectible economy in data and having a builder emit every item, model, script binding, and loot hook automatically. A trading-card game is the perfect stress test: hundreds of near-identical items that each need to be individually collectible.
Highlights
- 600+ cards from one manifest. A C# builder reads a card manifest and generates every card item, booster pack, rarity table, vendor entry, and loot-list placement; the entire mod is reproducible from data.
- A real collection loop. Packs open with per-card rarity rolls (including a graceful fallback when a set lacks its rarest tier), report new-versus-duplicate pulls, and feed a binder that shows progress by set and overall.
- Cards in the wild. Packs surface through vendor stock and leveled-list injection into exploration loot (points of interest, ships, containers) so collecting happens while playing, not just at a shop.
- Trade-up crafting. Duplicate cards convert upward through trade-up recipes, giving dead pulls an economy.
- Validation before every build. A pre-build gate checks rarity integrity, duplicate editor IDs, referenced assets, pack pools, and that every generated card is actually reachable in-game; a stale manifest fails the build instead of shipping.
- Hash-cached asset generation. The 3D card and pack assets regenerate only when their inputs change; a warm rebuild touches over 600 assets and regenerates none.
Technical approach
The pipeline is a C# record builder, Papyrus runtime scripts for pack opening and collection tracking, and Python/PowerShell tooling for asset generation and validation. Runtime behaviors ride on native engine record types (consumables for packs, readable items for the binder) chosen specifically so the collection loop works through Starfield’s normal inventory surfaces.


