An immersive and feature-rich Minecraft mod (Fabric & NeoForge) that introduces the ultimate Trading Card Game to the Cobblemon universe!
Collect, trade, grade, and proudly display your favorite Pokémon on gorgeous 3D cards complete with animated holographic shaders.
This prepared release targets Minecraft 1.21.1, Java 21, and Cobblemon 1.8.2 on Fabric and NeoForge.
- New optional rewards: type-matched Rad Gyms rewards and RCT trainer victory loot, with independent server settings. Parting Gifts support is pending an upstream compatibility fix.
- Trainer bonuses: cards can carry an additional Experience, Catch Rate, or Shiny Chance bonus while keeping their primary stat.
- Card Restorer: higher target grades take longer; restoration continues after closing the GUI and saves its progress.
- Readable configuration: seven MidnightLib tabs with section headings, individual stat multipliers, and English/French tooltips.
- Spawn weighting: equipped cards influence eligible Pokémon spawns while respecting Cobblemon's biome and spawn-bucket rules.
- Updated dependencies: both loaders use Accessories for equipped binders, with matching owo-lib and Kotlin runtimes.
Read the V2 guide · Custom Fakemon sprites · Full changelog
Release 2.1.0 is prepared for validation. Automated builds and targeted tests are recorded in the compatibility guide; player-driven addon rewards, multiplayer, upgrades of existing worlds and large-collection performance still need playtesting before publication.
- Over 20 distinct booster packs to open using an interactive custom opening interface.
- Generations 1 to 9: Focus your collection on specific regions and generations!
- Type-Themed Boosters: Target your search with elemental packs containing only specific types (Fire, Water, Grass, Electric, Ghost, etc.).
- God Pack Ticket: A legendary item that guarantees your next booster pack will be an ultra-rare "God Pack"!
- Multiple Rarity Tiers: Common, Uncommon, Rare, Epic, Legendary, and Mythic.
- Visual Variants: Normal cards and full-art Shiny (Chromatiques) variants with custom visual models.
- Special Forms: Complete integration of Regional variants (Alola, Galar, Hisui) and Mega Evolutions.
- Fakemon Integration: Add card drops, booster eligibility, and normal/shiny sprites for addon species with the included datapack and resource-pack template.
Witness over 20 unique procedural holographic effects powered by custom shaders that glisten and shift as you look around:
- Foil Stars, Rainbow Prism, Plasma, Cosmic Constellation, Cyber Dust, Magical Wind...
- Custom special-form effects like Mega Vortex, Alolan Shore, Galarian Steam, Paldean Terastal, Distortion Rift, Time Gears, Spatial Crack, and Prism Stars...
- Tiered Binders: Craft Leather, Iron, Gold, Diamond, Netherite, and the ultimate Master Album.
- RPG Stats & Passive Bonuses: Equip your binders in your Accessories slot! Slotted cards grant passive stat boosts (Mining Speed, Movement Speed, Attack Damage, Luck, Armor, Max Health, and custom wild spawn rate multipliers).
- Card Cabinet: A beautiful piece of furniture storing up to 12,000 cards featuring built-in search, sorting, and filter controls.
Equip a binder in the binder accessory slot to apply the bonuses of the cards it contains. Trainer bonuses affect Pokémon experience gains, catch rates, and wild shiny chances. Cosmetic cards grant no bonuses, and the Master Album grants none unless masterAlbumGivesStats is enabled.
Grading increases card stat values by 3% per grade, up to 30% at grade 10. By default, reaching grade 9 or higher during grading—or crossing that threshold during restoration—gives a 50% chance of adding a trainer bonus. Newly generated Legendary, Mythic, or Shiny cards also have a 5% chance of carrying one. These bonuses preserve the primary stat and use trainerStatLuckyValueMultiplier (default 0.25) to scale their value.
A +600% Shiny Chance bonus means 7× the base chance. With Cobblemon's shinyRate set to 8192, that is about 1 shiny per 1,170 new Pokémon, not a guarantee. The default maxShinyBoostDivisor = 10 caps the multiplier at 10×. Spawn-type bonuses change relative spawn weights rather than the number of Pokémon spawned.
- Grading Station: Grade an ungraded card from 1 to 10. Each grade adds 3% to its stat values; high grades can unlock an additional trainer bonus.
- Card Restorer: Improve an already graded card to a higher target grade using Cobblecard Dust. The default duration rises from 3 seconds at target grade 2 to 27 seconds at target grade 10.
- Persistent processing: Restoration continues with the GUI closed while the chunk is loaded. Progress is saved and resumes after reloading the world or chunk. Dust is spent once, at completion.
- Card Recycler: Recycle duplicate or unwanted cards into Cobblecard Dust, also used by the grading station and structure disks.
- Instant-Dex Scanner: A handheld utility tool to scan wild Pokémon in the wild.
- Card Structure Disks: Load them with card dust, lock in a target species, scan them in the wild, and print a physical card once compilation hits 100%!
- Showcase your trophy cards in your base using regular and advanced Holo Projectors.
- 6 Display Modes: Continuous Rotation, Face Player, Dynamic (Spin & Face), Fixed, Flat, and Simple Bobbing.
- The advanced projector lets you slot in and sequence a moving gallery of up to 27 cards!
⚙️ Click to expand configuration options
Use MidnightLib's configuration screen or edit config/cobblemon-cards.json while the game/server is stopped. Mod Menu provides access to the configuration screen on Fabric. In multiplayer, gameplay values are read from the server's configuration; editing only the client's file does not change server gameplay.
The menu groups settings into seven tabs: General, Player, Spawning, Trainer, Machines, Binders, and Compatibility. Colored section headings and English/French tooltips explain related options. Existing configuration keys and values are preserved.
These are the main settings; the in-game screen also exposes per-stat multipliers and binder capacities.
| Config Option | Default Value | Range / Type | Description |
|---|---|---|---|
enableCardStats |
true |
Boolean | Master switch for passive card bonuses. |
globalStatMultiplier |
10.0 |
0.0–100.0 |
Global multiplier for passive bonuses. |
enableTrainerStats |
true |
Boolean | Apply Experience, Catch Rate, and Shiny Chance bonuses. |
trainerStatMultiplier |
1.0 |
0.0–100.0 |
Additional multiplier for trainer bonuses. |
maxExpBoostMultiplier |
5.0 |
1.0–100.0 |
Maximum experience multiplier. |
maxCatchBoostMultiplier |
5.0 |
1.0–100.0 |
Maximum catch-rate multiplier. |
maxShinyBoostDivisor |
10.0 |
1.0–100.0 |
Maximum multiplier of the base shiny chance. |
maxSpawnBoostMultiplier |
100.0 |
0.0–10000.0 |
Cap for spawn-weight multipliers. |
enableEggGroupStats |
false |
Boolean | Enable egg-group spawn bonuses. |
enableEvYieldStats |
false |
Boolean | Enable EV-yield spawn bonuses. |
recyclerProcessTime |
40 |
1–1200 |
Recycling duration in ticks. |
gradingStationProcessTime |
100 |
1–12000 |
Grading duration in ticks. |
gradingStationDustCost |
5 |
0–64 |
Dust used to grade a card. |
restorerBaseCost |
5 |
1–1000 |
Base factor for the restoration dust cost. |
restorerBaseProcessTime |
60 |
1–72000 |
Restoration ticks for target grade 2. |
restorerProcessTimePerGrade |
60 |
0–72000 |
Extra ticks per target grade above 2; 0 gives a fixed duration. |
masterAlbumGivesStats |
false |
Boolean | Allow the Master Album to grant passive bonuses. |
godPackTicketChance |
1.0 |
0.0–100.0 |
Ticket drop chance when opening a booster (%). |
cardDropChance |
1.0 |
0.0–100.0 |
Card drop chance from defeated/captured Pokémon (%). |
enableBoosterChestSpawn |
true |
Boolean | Add classic or generation boosters to eligible structure container loot tables. |
boosterChestSpawnChance |
2.0 |
0.0–100.0 |
Chance per eligible structure container loot table generation (%). |
additionalBoosterLootTables |
[] |
List of namespaced IDs | Allow verified custom structure container loot tables. |
excludedBoosterLootTables |
[] |
List of namespaced IDs | Exclude tables, including automatically detected or explicitly allowed tables. |
debugBoosterLootTables |
false |
Boolean | Log inspected table IDs, eligibility reasons, and pool injection. |
Restoration duration uses the server settings: restorerBaseProcessTime + (targetGrade - 2) × restorerProcessTimePerGrade. At 20 ticks per second, the defaults give 3 seconds for grade 2, 12 seconds for grade 5, and 27 seconds for grade 10. Duration depends on the target grade. New timing settings apply to new operations; an active restoration keeps its original duration and dust cost.
Removing or replacing the card cancels restoration. Removing required dust pauses progress until enough dust is available again. The GUI shows the remaining time when reopened; unloaded chunks do not process restorations.
Booster packs naturally appear in eligible vanilla and modded structure containers, including chests and barrels. The default chance remains 2%, controlled by enableBoosterChestSpawn and boosterChestSpawnChance. Each injected pool makes one roll and keeps the existing selection weights: classic booster 10, each generation 1–9 booster 3. Compatibility settings do not add extra rolls to the same table or change these weights.
Eligibility follows the loot table, so a barrel using an eligible table works too. Vanilla dungeon chests use minecraft:chests/simple_dungeon. Trial Chambers already include eligible tables such as minecraft:chests/trial_chambers/entrance (including sticks and honeycomb), minecraft:chests/trial_chambers/corridor (barrels, including honeycomb), minecraft:chests/trial_chambers/intersection_barrel, and minecraft:chests/trial_chambers/supply. A container with preset Items and no LootTable does not run a loot table, so this feature cannot add a booster to it.
Two additional verified natural container tables receive automatic support by exact ID: minecraft:dispensers/trial_chambers/corridor and minecraft:dispensers/trial_chambers/chamber. The registered minecraft:dispensers/trial_chambers/water table has no verified natural caller and is not selected automatically. Single-slot decorated pots are excluded because an extra stack could displace the original loot. The shared minecraft:chests/trial_chambers/reward table keeps one pool for natural chests; its six reward helpers and ominous reward root are protected against injection, and generation at vanilla vaults or trial spawners is blocked.
Cobblemon also nests its own loot helpers inside vanilla structure tables. Its 17 verified injection helpers, such as cobblemon:injection/chests/simple_dungeon, are protected against a second booster pool. The parent minecraft:chests/simple_dungeon remains eligible, and Cobblemon's existing item pools are preserved. This prevents nested helper calls from increasing the booster chance.
At 2%, 98% of eligible rolls contain no booster. Even after 50 independent eligible rolls, the chance of finding none is about 36.4%; after 100 it is about 13.3%. One booster per 50 rolls is an average, not a guarantee. Finding ordinary items or opening several containers without a booster does not establish that injection failed.
Automatic matching recognizes IDs whose path starts with chests/ or contains /chests/, such as minecraft:chests/ancient_city, Repurposed Structures' repurposed_structures:chests/dungeons/badlands, or YUNG's Better Dungeons' betterdungeons:skeleton_dungeon/chests/common, plus the two exact dispenser exceptions above. Block, entity, fishing, gameplay and spawner paths, known protected tables, and incompatible loot table types are rejected. Placing and breaking normal, trapped, or Ender Chests does not produce boosters through this system, even if their block loot tables are added to the allowlist.
A table's name and declared type cannot prove that it is used by a naturally generated structure. Some mods use other paths, reuse tables across several reward sources, or generate container contents without a loot table. CobblemonCards deliberately does not match arbitrary occurrences of chest, loot, treasure, reward, or dungeon.
For a verified custom structure container table, edit these entries in the server's config/cobblemon-cards.json while the server is stopped, then restart it. This is a partial example; merge the entries into the existing JSON object:
{
"additionalBoosterLootTables": [
"bca:general/attic",
"bca:general/kitchen"
],
"excludedBoosterLootTables": [
"examplemod:chests/special_reward"
],
"debugBoosterLootTables": false
}The bca:general/attic and bca:general/kitchen entries were verified in the official Cobbleverse 1.7.42 release; they are opt-in examples, not defaults or a guarantee for other pack versions. The exclusion ID is a placeholder. Both lists default to empty. Use exact lowercase namespace:path IDs, without a .json extension. Invalid entries are ignored with warnings; missing tables do not crash loading. An exclusion overrides automatic detection and the allowlist; protected loot sources remain blocked regardless of configuration. Duplicate entries do not inject another pool. If a structure's table calls another table, configure only the intended reward table and exclude any eligible parent or child as needed to avoid separate rolls from distinct tables.
Set debugBoosterLootTables to true to log all inspected IDs, why they qualify, exclusions, the configured chancePercent, and whether a booster pool was added. An injected=true result with chancePercent=2.0 confirms installation of a 2% pool; it does not report a successful player roll. It does not log individual player rolls. A logged ID proves that a table was loaded, not that a structure uses it. With operator permissions, inspect an unopened generated container using /data get block <x> <y> <z> LootTable; once loot is generated, that field may be gone. Also inspect the mod or datapack's data/<namespace>/loot_table/<path>.json files (singular loot_table in Minecraft 1.21.1), structure NBT, or source code to verify its uses before allowing it.
The same matching rules run on Fabric and NeoForge. /reload reapplies the currently loaded settings to reloaded loot tables; it does not reread file edits. Existing worlds need no conversion. Containers whose loot has already been generated keep their items; unopened containers use the active table when their contents are generated. There is no separate CobblemonCards datapack allowlist in this patch. See the structure loot compatibility notes for API limits and verified research.
With the supported optional addon installed, booster packs are added automatically to Rustling Spots interactions, Raid Dens' Raid Pouches, CobbledGacha v.3 capsules, Cobblemon Fishing Loot's Poke Rod item catches, Rad Gyms reward bags, and RCT trainer victory loot. Normal reward processing is preserved, and each integration can be disabled independently in CobblemonCards' server configuration. None of these addons is required to use CobblemonCards.
Defaults are 10% per consumed Rustling Spot interaction, 5-50% by raid tier, 1-5% by capsule rarity, and independent fishing chances of 3% for Water boosters and 1% for classic boosters. New defaults are 10% for Rad Gyms and 5% for RCT. Battle Tower, Expeditions, CobbleDollars and PokeLoot are investigated but currently unsupported automatically. See the compatibility guide for exact investigated versions, table IDs, configuration, limitations and the runtime testing checklist.
Parting Gifts 3.0.2 and 3.0.3 are incompatible with Cobblemon 1.8.2 on both loaders: the addon calls a removed ElementalType constructor during startup. Remove these addon JARs before upgrading; CobblemonCards rejects these versions with an incompatibility message. Its optional 1% reward integration is preserved pending an upstream fix. Disabling the integration cannot make these addon versions compatible.
Note
Designed for Modpacks: Cobblemon Cards can be used as a standalone Cobblemon addon or integrated into a modpack. Configurable drop rates, machine costs, and passive bonuses let pack authors fit card collection into quests and progression systems.
Optional addons also require their own libraries. For the Cobblemon 1.8.2 setup, use GeckoLib 4.9.3 for CobbledGacha/Raid Dens, RCT API 0.16.2-beta for Rad Gyms/RCT, and Forge Config API Port 21.1.6 for RCT on Fabric. RCT API 0.16.2-beta includes the Iron Ball compatibility fix for Cobblemon 1.8.2; replace older 0.16.1-beta installations. These libraries remain optional for CobblemonCards. See the compatibility guide for loader-specific downloads and validation results.
To run Cobblemon Cards, use Minecraft 1.21.1, Java 21, and Cobblemon 1.8.2. Install the dependencies for your loader; Fabric and NeoForge JARs are separate downloads.
| Mod | Version | Purpose |
|---|---|---|
| Fabric Loader | 0.19.5 |
Mod loader |
| Fabric API | 0.116.17+1.21.1 |
Core Fabric library |
| Fabric Language Kotlin | 1.14.1+kotlin.2.4.20 |
Kotlin runtime |
| Cobblemon | 1.8.2+1.21.1 |
Core Pokémon mod |
| Architectury API | 13.0.11 |
Cross-platform compatibility library |
| Cloth Config | 15.0.140 |
Configuration UI dependency |
| Accessories | 1.1.0-beta.53+1.21.1 |
Accessory slots for binders and passive bonuses |
| owo-lib | 0.12.15.4+1.21 |
Runtime library required by Accessories |
| MidnightLib | 1.9.3 (bundled) |
Categorized configuration screen; no separate download needed |
| Mod | Version | Purpose |
|---|---|---|
| NeoForge | 21.1.255 |
Mod loader |
| Kotlin for Forge | 5.12.0 |
Kotlin runtime for Cobblemon |
| Cobblemon | 1.8.2+1.21.1 |
Core Pokémon mod |
| Architectury API | 13.0.11 |
Cross-platform compatibility library |
| Cloth Config | 15.0.140 |
Configuration UI dependency |
| Accessories | 1.1.0-beta.53+1.21.1 |
Accessory slots for binders and passive bonuses |
| owo-lib | 0.12.15.5-beta.1+1.21 |
Runtime library required by Accessories (includes its helper libraries) |
| MidnightLib | 1.9.3+1.21.1-neoforge |
Categorized configuration screen |
These are the dependency versions used by this prepared release, centralized in gradle.properties. Binders use Accessories on both loaders; Trinkets and Cardinal Components are not required by this addon.
Tip
Optional recipe viewers: JEI 19.51.0.418, REI 16.0.799, and EMI 1.1.24+1.21.1 have integrations for the Card Recycler. Install a viewer for your loader if you want to browse its recycling recipes in-game.
NeoForge plugin discovery is registered for REI and EMI. Their client interfaces still require in-game validation with this release.
- Install Java 21 and Fabric Loader 0.19.5 or NeoForge 21.1.255 for Minecraft
1.21.1. - Grab the dependencies listed above and place them into your
.minecraft/modsfolder. - Download or compile the Cobblemon Cards
.jarfile and drop it into themodsfolder. - Launch the game and start your collection!
- Keep a backup of your existing world and configuration before upgrading.
- Replace the old Cobblemon Cards JAR with one
2.1.0JAR for your loader, and update Cobblemon and the dependencies listed above. Other Cobblemon addons must also support Cobblemon 1.8.2. - Keep
config/cobblemon-cards.json: existing values are retained, including settings that disable bonuses. Newly added settings are written during startup. - Existing cards keep their stored stats. Older cards without an additional trainer stat and binders using the legacy container component remain readable. Opening a world does not reroll its cards.
If you want to modify the source code or build the mod manually:
-
Clone this repository:
git clone https://github.com/Howlite-UI/CobblemonCards.git cd CobblemonCards -
Use Java 21. The Gradle wrapper uses Gradle 9.5.1, and the Java/Kotlin toolchains target Java 21. Gradle can download a matching JDK through Foojay if necessary.
-
Build both loader versions:
./gradlew :fabric:build :neoforge:build
On Windows, use
gradlew.batinstead of./gradlew. The installable JARs for 2.1.0 are:fabric/build/libs/cobblemon-cards-fabric-2.1.0.jarneoforge/build/libs/cobblemon-cards-neoforge-2.1.0.jar
Use the JAR matching your loader. Common, dev, and sources JARs are development artifacts.
-
Launch a development client with
./gradlew :fabric:runClientor./gradlew :neoforge:runClient. Both use Java 21.
Fabric development runs explicitly include the GraalJS, ICU, and MongoDB libraries bundled by Cobblemon. Their versions match the official Cobblemon addon template; NeoForge discovers these libraries from Cobblemon's nested JARs. Player installations receive them through Cobblemon itself.
The prepared-release baseline passed both loader builds against Cobblemon 1.8.2 and 47 automated tests. Additional structure container checks are recorded in the structure loot compatibility notes; see the compatibility guide for separate startup results with optional addons. Earlier Cobblemon 1.8.1 validation initialized both loaders and Showdown, loaded a NeoForge test world with all 1,025 species, and passed targeted headless checks for restoration (38 checks) and the shiny event (15 checks). Those historical checks have not been repeated as gameplay tests on 1.8.2. Player-driven rewards, client recipe viewers, multiplayer, existing-world upgrades and large-collection performance still require playtesting before publication.
🔍 Click here to reveal the mod's secrets! (Spoilers)
- Using the Instant-Dex Scanner on another player while having a Card Structure Disk in your inventory will instantly consume the disk and print a Mythic Grade 10 Cosmetic Card featuring that player's Minecraft skin!
- Note: Player cards are purely cosmetic and do not grant passive stat boosts.
- If you scan Pokémon during a Full Moon at night while affected by the Darkness effect, the fabric of reality glitches!
- You will hear a haunting glitch scream and receive the legendary Mythic Grade 10 MissingNo. card, featuring a custom glitched pixel art texture and special stats!
- Scan Gastly, Haunter, Gengar, Cubone, or Marowak near midnight (world time ticks 16000 to 20000) while standing on Soul Sand or Soul Soil.
- Yields a Mythic Grade 10 Cosmetic Card featuring the spooky Lavender Town Ghost!
- Scan a wild Bidoof while holding a Golden Apple or an Enchanted Golden Apple in your off-hand.
- Yields the legendary Mythic Grade 10 Cosmetic Card of Divine Bidoof!
- Scan a wild Onix while holding an Amethyst Shard in your off-hand.
- Yields a Mythic Grade 10 Cosmetic Card featuring the stunning Crystal Onix!
- Scan a wild Lugia during a Thunderstorm while affected by the Wither status effect.
- Yields a Mythic Grade 10 Cosmetic Card featuring the corrupted Shadow Lugia!
- Scan a wild Sylveon while holding Pink Dye, Light Blue Dye, or White Dye (the colors of the Trans pride flag) in your off-hand.
- Yields a Mythic Grade 10 Cosmetic Card of Pride Sylveon!
- Scan a wild Mew while carrying a custom Player Card (obtained from scanning another player) in your inventory.
- Consumes both the Player Card and the structure disk, and yields the ultimate Mythic Grade 10 Cosmetic Card representing you and Mew!
- Placing a Holo Projector or Advanced Holo Projector directly on top of a Jukebox and slotting in a card will trigger custom Pokémon music tracks!
- The track played adapts dynamically based on the card's rarity, shiny status, or stats:
- Mythic: Soul Heart
- Legendary & Shiny: Battle! Necrozma
- Legendary: Cynthia
- Other Shiny: Battle! Zinnia
- Fire or Attack stats: Battle! Team Plasma
- Water or Speed stats: Route 209
- Grass or Health stats: Littleroot Town
- Ice or Armor stats: Snowpoint City
This project is licensed under the CC0 1.0 Universal License - see the LICENSE file for details.
Made with ❤️ by Pokemon card enthusiasts in Minecraft.

