
Cobblemon Economy
Mod for adding Economy and Shops fully customisable to a Cobblemon Modpack
Cobblemon Economy
Cobblemon Economy is the all-in-one economy core for Cobblemon servers. It gives you modern NPC shops, dual currencies, a full Quest NPC progression layer, and a compatibility bridge so you can keep mod compatibility while still using CobEco as your main economy.
Why Cobblemon Economy
- One economy core for your server instead of fragmented balances.
- Bridge support for CobbleDollars and Impactor, so many existing economy-dependent mods keep working.
- Main-currency switch with per-world config (
cobeco,cobbledollars,impactor). - PvE progression rewards (capture, battle, raid dens, battle tower) plus rotating quest boards.
- Production-friendly: JSON config, hot reload tools, SQLite persistence.
Discord (Support)
Join here: https://discord.gg/zxZXcaTHwe
What You Get
- PokeDollars + PCO currencies
- Buy and sell NPC shops with pagination
- Quest NPCs with configurable mission boards
- Command-based shop items (sell commands, not only items)
- Capture/discovery/battle rewards + multipliers
- Raid Dens reward compatibility
- Battle Tower PCO rewards + completion bonus
- Cross-economy bridge + API sync support
- Switchable main backend:
cobeco,cobbledollars,impactor(per world)
Quest NPC System (0.0.16)
- One NPC entity, two roles:
SHOPorQUEST(no duplicate entity type). - Per-world quest files with full data-driven behavior:
quests.json: objectives, rewards, repeatability, cooldowns, prerequisites.quest_npcs.json: NPC pool, max active quests, visible board size, rotation strategy.
- Quest objective coverage includes:
- Capture filters (
species,type,ball,dimension/dimensions, shiny, labels). - Progression events (
battle_win,raid_win,tower_win,fossil_revive).
- Capture filters (
- Reward model supports:
- Currency rewards (
pokedollars,pco) and optional command rewards per quest. - Prerequisite chains, repeat policies, time limits, and cooldown lockouts.
- Currency rewards (
- Custom quest board UX:
- Up to 4 missions visible by default (configurable per NPC).
- Detailed objective text (species/type/ball/location/shiny/labels).
- Time remaining, cooldown remaining, and clear action states.
- Rotation system:
- Shared board for all players or per-player board (configurable via
sharedRotation). - Rotation mode is exactly
MIDNIGHTorHOURS(rotationMode). MIDNIGHT: rotates on next local server midnight.HOURS: rotates everyrotationHoursblock (minimum 1).- Cancelled/expired quests can be blocked until next rotation.
- Shared board for all players or per-player board (configurable via
How To Set A Quest NPC (Summon + Bind)
- Spawn a shopkeeper NPC:
- Use the spawn egg
cobblemon-economy:shopkeeper_spawn_egg, or - Run
/summon cobblemon-economy:shopkeeper.
- Use the spawn egg
- Check available quest NPC profiles with
/eco questnpc list. - Get a Quest NPC setter item with
/eco questnpc get <id>. - Right-click the spawned shopkeeper with that setter to switch it to
QUESTrole and bindquestNpcId. - Optional: switch the same NPC back to a normal shop with
/eco shop get <shopId>then right-click.
Minimal quest_npcs.json Example
{
"quest_npcs": {
"safari_guide": {
"displayName": "Safari Guide",
"skin": "shopkeeper",
"maxActive": 2,
"visibleQuests": 4,
"sharedRotation": true,
"rotationMode": "MIDNIGHT",
"rotationHours": 24,
"questPool": ["safari_water_10", "safari_bug_12"]
}
}
}
Configuration Warning
- Configuration support is limited.
- No hand-holding for custom config troubleshooting: test changes incrementally on a staging world/server.
- If a custom setup fails, validate JSON syntax, quest IDs, npc IDs, and objective keys first.
Installation
- Put
cobblemon-economy-0.0.16.jarinmods/. - Start the server once.
- Edit
world/config/cobblemon-economy/config.json. - Restart server (or
/eco reloadfor config-only edits).
File Layout (Per World)
world/config/cobblemon-economy/config.jsonworld/config/cobblemon-economy/shops.jsonworld/config/cobblemon-economy/quests.jsonworld/config/cobblemon-economy/quest_npcs.jsonworld/config/cobblemon-economy/milestone.jsonworld/config/cobblemon-economy/economy.dbworld/config/cobblemon-economy/quests.dbworld/config/cobblemon-economy/skins/*.png
main_currency is also per-world because it lives in this world config folder.
How Each Config Works
config.json- Global economy behavior (currencies, rewards, multipliers, profiling).
- Does not need to contain shops anymore.
shops.json- All shop definitions (
title,currency,items, limits, linked shops, etc.). - Backward compatibility: if this file is missing, the mod loads legacy
config.json.shopsand auto-createsshops.json.
- All shop definitions (
quests.json- Quest definitions and objectives.
- Supports capture filters (species, type, ball,
dimensionordimensions, shiny, labels). - Supports event objectives:
battle_win,raid_win,tower_win,fossil_revive. - Per-quest control:
repeatable,repeatPolicy,cooldownMinutes,timeLimitMinutes,requiresCompleted. - Supports rewards (
pokedollars,pco, optional command list).
quest_npcs.json- Quest NPC definitions (display name, skin, dialogue lines, quest pool, max active quests).
- Board/rotation control:
visibleQuests,sharedRotation,rotationMode(MIDNIGHT/HOURS),rotationHours. - One NPC can offer a list of multiple quests via
questPool.
milestone.json- Unique-capture milestone rewards.
Quick Start (5 Minutes)
- Start server once to generate defaults.
- Open
config.jsonand set:
{
"main_currency": "cobeco"
}
- Add one test item to any shop.
- Join server and run
/bal. - Buy/sell to confirm economy flow.
Commands
Player
/balor/balance/pco/pay <player> <amount>
Admin
/eco reload/eco shop list/eco shop get <id>/eco quest list/eco questnpc list/eco questnpc get <id>/eco skin <name>/eco item/balance <player> <add|remove|set> <amount>/pco <player> <add|remove|set> <amount>
Main Currency Modes
Configure in config.json:
{
"main_currency": "cobeco"
}
Valid values:
cobeco(default)cobbledollarsimpactor
Behavior:
cobeco: CobEco DB is authoritative; balances are mirrored to CobbleDollars and Impactor when present, and bridge hooks keep external transactions synced back into CobEco.cobbledollars: CobEco balance operations route to CobbleDollars.impactor: CobEco balance operations route to Impactor primary currency.
In practice: you can choose CobEco as your main economy and still keep broad compatibility with mods that expect CobbleDollars/Impactor-style flows.
Rewards
Main reward keys:
battleVictoryRewardraidDenVictoryRewardcaptureRewardnewDiscoveryRewardbattleVictoryPcoRewardbattleTowerCompletionPcoBonus
Multipliers:
shinyMultiplierradiantMultiplierlegendaryMultiplierparadoxMultiplier
Milestones
File: world/config/cobblemon-economy/milestone.json
Example:
{ "10": 300, "50": 700, "100": 1500, "200": 3000 }
Shop Item Types
Standard item
{ "id": "minecraft:diamond", "name": "Diamond", "price": 1000 }
Component item
{
"id": "academy:booster_pack",
"name": "Booster Pack",
"price": 200,
"components": {
"academy:booster_pack": "\"base\""
}
}
Command item
{
"type": "command",
"command": "crate key give vote 1 %player%",
"price": 100,
"displayItem": {
"material": "supplementaries:key",
"displayname": "Vote Crate Key",
"enchantEffect": true
}
}
Integrations
- CobbleDollars (bridge + conversion, transaction sync support)
- Impactor (bridge + conversion, transaction sync support)
- Cobblemon Raid Dens (raid win rewards)
- Cobblemon Battle Tower (PCO rewards on tower wins + completion bonus)
- Star Academy (optional)
- Placeholder API (optional)
- YAWP (optional)
Placeholder API
Recommended namespace: cobeco
cobeco:balancecobeco:balance_symbolcobeco:pcocobeco:pco_symbol
Troubleshooting
- Command missing after update: restart server fully (not only
/eco reload). - Economy bridge not active: verify target mod is loaded and version-compatible.
- Wrong backend behavior: check
main_currencyin world config. - Existing world does not show new default quest pools: your
quests.json/quest_npcs.jsonalready exists; merge manually or regenerate after backup.
Need Help?
Discord support: https://discord.gg/zxZXcaTHwe
Acknowledgements
Thanks to Rikunji for their contributions to the project.
