promotional bannermobile promotional banner

CobbleMarket

CobbleMarket is a player-to-player trading market mod for Cobblemon (Fabric&NeoForge).
Back to Files

cobblemarket-1.3.0-fabric+1.21.1.jar

File namecobblemarket-fabric-1.3.0+1.21.1.jar
Uploader
Shu_ShengAShu_ShengA
Uploaded
Oct 22, 2026
Downloads
213
Size
9.0 MB
Mod Loaders
Fabric
File ID
9287649
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:cobblemarket-1656620:9287649"

Learn more about Curse Maven

What's new

New Feature

RP (premium currency)

  • RP runs alongside the main currency: when listing a Pokemon or an item, or creating an auction or a buy order, you pick which currency to price it in — the listing screens have a currency toggle next to the price box (main currency <-> RP icon), the listing fee is charged in the same currency, and RP fee rates are configured separately by the owner (free by default). RP cannot be exchanged or transferred, and takes no part in the finance system — card fees and discounts only ever apply to the main currency
  • Where RP comes from is entirely up to the owner: it is simply a premium currency running alongside the main one and is not tied to any particular source — hand it out as a quest / event reward (via redeem codes), sell it as a top-up currency (see In-game top-up below), do both, or skip top-ups entirely
  • In-game top-up (optional): configure top-up tiers and a payment QR under Server Config -> RP Config (a personal payment QR is enough — no merchant account needed); players pick a tier, scan the code, pay, and tap "I have paid" — the owner checks their own statement and grants the RP with one click. QR and coupon images go into config/cobblemarket/qr/ and config/cobblemarket/icons/ (PNG only, max 512KB and 2048x2048 each); a tier can have its OWN "fixed amount" QR code or its own coupon image. Every order gets a 6-character order number (with a check digit against typos), and the player pays exactly the tier price; ⚠ fee-charging providers (PayPal / Stripe) reduce the amount that actually arrives, so match by order number there
  • Orders are visible on both sides: the admin panel has "Top-up Orders" (badged while orders await confirmation) with Pending / Finished tabs, search by player name or order number, and a confirmation dialog before granting or voiding, while the online owner gets a chat notice the moment a player submits an order; players have "My Orders" with their full history (granted and voided included), order number, amount, status (awaiting payment / awaiting confirmation / granted / cancelled / expired / voided by an admin) and creation time
  • RP balance is visible: RP shows on the line below the main balance (with green/red floating deltas when it changes), sharing the same background box and the same display switch as the main currency (both rows show and hide together); the entry screen shows a line of RP below the balance as well. Both hide when the server has RP turned off
  • The player overview supports sorting by RP balance: the sort field list includes RP, shown with the currency icon instead of the text "RP"; rows and the hover card show the value with the RP icon. The field is hidden when the server has RP turned off
  • Audit and order ledgers: every RP change is written to CSV under config/cobblemarket/points/ — grants, reclaims, redemptions, top-up grants, and player-to-player sales settled in RP (market, auction and buy orders; both sides get their own row, with fees written into the details — auction and buy-order funds are taken when a bid / order is placed, so those two are recorded at settlement); top-up orders get their own ledger covering every step (created / claimed paid / granted / voided)
  • RP is always shown as an icon: chat messages, command feedback, screen titles, buttons and tooltips all use the icon, so the text "RP" never appears in the UI; all of them share the balance HUD's image — swap that image and every one changes with it
  • Player-to-player RP trading switch: a second valve on top of the RP master switch, off by default; while it is off the currency buttons in the listing and market screens are greyed out (clicking explains why) and the server refuses RP listings outright; with the RP master switch off those buttons are not shown at all
  • Markets are viewed one currency at a time: the Pokemon and item markets (including both admin market screens) get a currency button to the left of Back, switching between main-currency and RP listings — prices in the two currencies are not comparable, so mixing them would break price sorting and filtering; switching returns you to page one. ⚠ The currency follows you between these screens: clicking Sell on the RP page opens the listing screen already on RP, and coming back from a listing lands you back on the RP page
  • Auctions and buy orders can take RP too: pick the currency with the button next to the price when creating either, and the auction house, buy order list and admin screens switch the same way; fees use an independent RP rate (free by default), and card discounts / overdue doubling do not apply to RP. When an RP buy order is fulfilled the seller is paid immediately (RP never goes through the pending-balance ledger, same as RP auctions)
  • The transaction ledger carries a currency column: the daily CSVs under config/cobblemarket/history/ end with a Currency column (PRIMARY / POINTS), so RP entries can never be mistaken for main-currency ones; the Chinese and English README files in that folder are updated too, and the ledger of the day you upgrade is archived as a _legacy_ backup
  • Redeem codes: how RP actually gets handed out: a plain text code that a player pastes into the redeem box on the RP Shop screen (or /market points redeem <code>) and the RP lands in their balance instantly, leaving a redemption record. Codes can be generated in game (to hand out as quest or event rewards), or let your own website / a code shop issue them automatically — with externally signed codes, a player pays on your site and receives a code automatically, then redeems it in game. The website and the MC server are fully decoupled: no open ports, no tunnelling, and the site going down does not affect the game; the server only does one thing — verify signatures — and any platform that can compute an HMAC can sign (PHP / Node / Python / Java). Protocol, config keys and test vectors are on the website's "RP External Signed Codes" page
  • Redeem codes are managed in game, and players can review theirs: the entry sits at the bottom of the admin panel (gated by the "Redeem Codes" node), so creating, browsing and voiding all happen in the UI. The list shows only a code's prefix (a code is money — one screenshot of a full list hands out a batch), and the Copy button on each row puts the full code on your clipboard; creating 10 or fewer lists them in the dialog, more than that is written to a file under config/cobblemarket/points/ with the path shown. Players can open "History" in the RP Shop screen to see every code they have redeemed, with time, amount and the balance it left them with; the last 50 entries are kept per player
  • RP listings cannot be financed: RP and the main currency are not of equal value (where RP comes from is up to the owner — it may be bought with real money or handed out as a reward), so the Meowth instalment entry is hidden for RP purchases (and the server refuses them anyway)
  • RP Shop — the owner's own store: the middle of the RP Shop screen has 8 columns × 4 rows, 32 slots; click any slot to list a Pokemon or an item, and players buy it with RP. Offers are recipes, not physical stock: the Pokemon sold is generated from the spec on the spot, its Original Trainer is the buyer by default (an operator can set a distribution name instead — see below). Stock is per slot: leave it empty for unlimited (the default), or type a number to limit how many are sold; prices are set by the owner and are not subject to price limits, blacklists or fees
  • Pokemon offers are highly configurable: species (searchable by localized name), form, shiny (never / always / by chance), level, gender, nature, ability, ball, size, Alpha, Tera type, Gmax, Dmax level, held item, tradeable, minimum perfect IVs (how many stats are guaranteed to be 31), plus four move slots — every move the species or form can learn is selectable (not limited to what that individual already knows), filterable by source (level-up / TM / egg / tutor / evolution / form), so tutor and form-exclusive moves are right there; any slot left empty is filled at random on generation
  • Variant as its own field: listing a Pokemon has a Variant button below Form, for species features on their own — Arbok's 22 face patterns, Pikachu's caps, Alcremie's creams and decorations, Spinda's five sets of spots. Each dimension is picked independently (choosing a pattern does not touch the cap), only the ones that species actually has models for are listed, and the preview on the right updates as you pick
  • A listed Pokemon can be given an Original Trainer (distribution style): an OT input box sits to the right of "Min IVs" — type a name (e.g. "Satoshi") and every Pokemon bought from that slot is generated with that name as its Original Trainer, exactly like an official event distribution, instead of the buyer. Leave it empty and it stays the buyer. The buy window shows which OT the Pokemon will come with, so customers see it before paying; names are capped at 16 characters
  • Item offers copy the exact item in your hand: the hand button next to the search box captures every component of the held item — enchantments, damage and custom names, plus mod-specific components such as plugin / upgrade data — so buyers receive exactly what the operator held. ⚠ To sell a brand-new item instead, pick it from the search box
  • Listing a form that needs a prerequisite warns you first: the Pokemon listing window has an always-present red warning sign (⚠) just left of its Add button — clicking it opens a screen about the forms that need a condition met to transform (Mega / Primal / Zen Mode and the like: holding a specific item, knowing a certain move, or reaching a level). ⚠ Spotting them relies on a fixed list, and new forms added by your own datapack or an add-on are not on it — so the entry point stays put and the call is yours; it turns red when the form you picked is one of those. The shop creates the Pokemon already in that form with the condition never met — the form's item pairing is broken (a Mega with no Mega Stone), a held-item slot is freed up for a second item, and add-ons treat "it already is that form" as fact, so it cannot be undone. ⚠ A warning only — the server does not block it
  • You can mark a listed Pokemon as Illegal: the Pokemon listing window has an always-present Illegal toggle just left of Add (Pokemon listings only). Turn it on and every Pokemon bought from that slot carries the cobblemarket:illegal tag — the tag is written onto the Pokemon itself (a Cobblemon Pokemon property), so it travels with the Pokemon: if the buyer resells it, the tag goes with it, and any tool that reads Pokemon data can see it. Whether to turn it on is your call; the mod never judges for you (the form warning above is a heads-up, not a requirement): switch it on for Mega collectibles, event prizes and the like, leave it off for ordinary Pokemon. Tagged slots show a red mark in their top-left corner, and the buy window shows it too. ⚠ It marks whether a Pokemon is "off", not where it came from; it is a different thing from the automatic shop tag — every Pokemon bought from the RP shop automatically carries cobblemarket:shop ("came from the shop", not a sign of being illegal). Both tags are saved with the Pokemon and cannot be removed by players; datapack / modpack authors can write "cobblemarket:illegal" themselves to mark illegal Pokemon of their own — see the website for the syntax
  • Listing can unlock the ability and move pools: the Pokemon listing window has an unlock toggle at the top right, just left of Snapshots (a padlock; it flips to an open padlock when on) — turn it on and the ability and moves you pick are no longer limited to what that species or form can have: you can pick from every ability and move in Cobblemon. ⚠ Turning it on also marks the Pokemon as Illegal; conversely, turning Illegal off switches this back off too, clearing any out-of-pool ability / move back to random
  • The Illegal tag can be removed: /market tag remove <player> <slot> <tag> (server owner only) — strips the given tag off the Pokemon in that player's party slot (Illegal is currently the only removable tag). ⚠ This is the only way to undo it: once tagged it cannot be washed off (/pokeedit cannot do it, and the shop toggle only affects newly created Pokemon); ⚠ party only — for one sitting in the PC, have the player move it to their party first
  • Everything is picked while looking at the Pokemon: form / variant / nature / ability / Tera and the rest all open as a list on the left with the large preview on the right, so it no longer feels like a separate screen; the Variant and Marks buttons also got hover popups for what does not fit
  • Item offers are searched right in the window: type an item name in the listing window itself to find it (item ID, localized name, enchantment or move all work) and enchantments and custom names come along; the hand button to the left of the search box instead takes the item you are holding. A large item preview sits on the right — enchantments and custom names are visible at a glance
  • RP admin rights come as four nodes: the RP management permissions are split into four nodes the owner can hand out individually — Check Balance (read-only, handy for support staff), Redeem Codes (create / void — this mints RP), Top-up Orders (verify payments, confirm / void orders) and RP Shop (list / edit / remove shop offers). ⚠ OP means nothing for RP: RP Shop listings, redeem-code creation and RP config read/write all check a permission node or the server owner list — in RP, operators and regular players are treated exactly the same. The two commands that hand out or claw back RP are owner-only (the server console still works, so FTB quest rewards keep working)
  • Shop purchases are recognisable in the history: RP Shop sales show "[icon] Shop" (gold, the same colour as the RP Shop title) in the seller column of both the personal history and the all-transactions history, instead of the admin who listed the offer — so "bought from the owner's shop" and "bought from a player" are told apart at a glance. When it does not fit, the row truncates to "…" (hover the row for the full text). ⚠ The transaction ledger CSV gains a Source column (market / shop) at the end
  • The balance follows the page: switching to the RP page in the market / auctions / buy orders also switches the balance in the top-left corner to the RP balance (icon) instead of the main currency. ⚠ The RP page hides "pending" and the Collect button — RP from a sale goes straight into your balance, there is no "money waiting to be collected", and showing it would imply otherwise
  • RP as a quest reward (optional): the RP config screen has a "delegate give/take" switch (off by default; turning it on opens a confirmation dialog with a 5-second cooldown on the confirm button). When on, player-ops (permission level 2+) can also grant/take RP with /market points give|take — so quest mods such as FTB can hand RP to a player automatically the moment they finish a quest (write /market points give @s N as the reward). ⚠ Turning it on accepts that any player-op can grant RP (/op is transferable); keep it off if RP is a top-up currency you hand out yourself. ⚠ The switch only affects the grant/take commands — permission grants, bad-debt cancellations and everything else still require you
  • Players earn RP by playing, with the rules written in a datapack: describe rules like "catching this Pokemon pays N RP", "anything from this mod's namespace pays N", "legendaries / shinies / Alphas pay N". When a player triggers one, the RP arrives automatically with a brief "Reward +N" line above the hotbar (rewards within one second are merged into a single line), with the RP gain sound at the same moment. Five triggers are supported — catch, hatch, battle win, fossil revival and evolution (battle wins count only wild / NPC battles; player-vs-player does not, to stop farming) — and conditions can be freely combined from species / mod namespace / form / variant / species labels / shiny / Alpha / hyper-trained / perfect IV count / level, with the first matching rule from the top winning. Anti-farming defaults to "pay once per species"; you can also use a decay table (100 for the first, 50 for the second, …down to 0), and set a per-player daily RP cap; ⭐ rules can also exclude things ("legendaries pay 2000, but not the Corrupted / Shadow variants") — modded Pokemon often inherit the base species' labels, so without exclusions you could not give a variant its own reward. Battle-win rules can additionally use "target": "opponent" to match the defeated opponent ("defeat a Rayquaza"), "battleType": "wild" / "npc" to count only wild / only NPC battles, or "target": "npc" + "npc": ["yourpack:elite_four_member"] to judge by the defeated NPC once per battle regardless of its team, with "daily_count": 5 capping payouts per player per day. ⚠ This feature is off by default — enable it in the RP config screen (the switch opens a confirmation dialog with a 5-second cooldown), and a modpack shipping its own reward rules does not change that; if you sell RP for real money, enabling it hands RP out automatically, so be sure before you turn it on. ⚠ /market points rewards species lists every species and rewards labels every available label; how to write the rules is documented on the website's "RP Reward Rules" page, which includes a ready-to-copy example datapack
  • Reward progress can be reset separately: /market points rewards reset all (or reset <player>, offline players included; reset event capture all|<player> resets one event type only) clears only the times-paid counters and today's daily-cap totals — no one's RP balance is touched. Progress lives in its own cobblemarket_points_rewards.dat, so deleting that file (with the server stopped) only resets progress, too
  • The balance ranking can be exported for your own tools: every few minutes the mod writes every player's balance into cobblemarket_points/ inside the save folder (ranking.json is the whole-server ranking, players/<uuid>.json is a single player's balance), for your own holograms / signs / website to read — the mod itself displays nothing, how you show it is up to you. It only writes when a balance actually changed; the interval defaults to 5 minutes and is configurable, and /market points update refreshes immediately (command block on a clock). The file format is documented in README_en_us.txt inside that folder. Separately, /market points top [page] lists every player with a balance, highest first, 10 per page with page buttons. ⚠ Owner-only — server-wide balances are sensitive; to show a ranking to everyone, build one from the exported files above

Interface

  • List scrollbars are draggable now: every screen with a scrollbar (RP shop option lists, transaction history, recharge orders, the Meowth Bank holder boards, all the config screens…) — those bars used to be display only, leaving the mouse wheel as the only way to scroll. Now you can drag the handle and click an empty spot on the track to jump there (much faster on long lists). The mouse wheel keeps working. ⚠ The bars were also unified in looks (1px track + 3px handle); a few screens used to draw two equal-width thin lines.

  • Blacklists and price limits can target variants: Pokemon rules gained a Variant column, multi-select — patterns / cosmetics / caps each ticked on their own (a Pokemon can be blocked for both a classic and a dark pattern at once). Together with Form it forms three tiers: All (form and variant together; the other two buttons grey out), Form only, and Variant only — the Form list gained an Any entry (form takes no part in matching) so that the "variant only" tier is actually expressible. ⚠ When a blacklist or price limit blocks a trade, the message now carries the conditions of the rule that matched, e.g. "This Pokemon is blacklisted from trading (Form: Any · Variant: Rage Candy Bar)" — without it players assume the whole Pokemon is banned when only one variant may be

Fixes

  • Lists said "nothing here" before the data had even arrived: the auction house, buy orders, pending returns, transaction history, loan history, blacklists, price limits, bans, permissions, RP redeem codes, top-up orders, the Meowth Bank holder boards and other list screens showed their empty message the instant they opened, before the first packet came back — which reads as data loss. They now show "Loading…" until the first response, and only then the real empty state (the item market already worked this way)
  • Opening certain RP screens in single-player paused the whole world: five screens — Top-up Orders, RP Shop, RP Config, RP top-up, and the balance HUD position editor — froze time, crops and furnaces when opened in a single-player save, just like pressing ESC. They now behave like the other screens. Only affects single-player saves; dedicated servers are unaffected
  • "Gigantamax" is no longer listed as a form option: the form buttons in Blacklist / Price Limits / Buy Orders no longer offer it — Gmax is battle-only and players cannot normally obtain such a Pokémon, so the entry only ever produced rules that could never match
  • Rapid clicks no longer do "nothing at all": buying, bidding, listing and cancelling used to share a half-second cooldown, and clicks landing inside that window were silently dropped — the dialog closed, nothing was charged, and not a word was shown, which looked like a broken screen. You now get a clear "Too fast — please wait a moment" notice and a failure sound. (Background list refreshes are unaffected — those retry themselves, and a notice there would only be noise.)
  • Switching to an older build and back silently reset your config: after running an older build once (even if you only changed some unrelated setting), coming back to the newer build silently restored any setting that older build did not know about — e.g. the RP Shop turned itself off, and the external redeem-code secret was wiped (invalidating every code already issued on your website). Saving the config now keeps the parts the current build does not recognise, so switching builds back and forth no longer loses anything
  • Item previews in chat: the tooltip panel was cut off and slid under the item art: with a long name or lore the panel went underneath the preview, lost its left edge, and the rest of the line was trimmed to an ellipsis. Long lines now wrap and the panel no longer overlaps the art, so the whole panel is readable

This mod has no additional files