Cobblemon MiniGames

Bring a Game Corner arcade casino to Cobblemon! Play Gacha, Roulette, Slot Machine, Flappy Bird, Block Stacker, Snake, Derby & Voltorb Flip. Earn coins, hit jackpots, and redeem rare items & Pokémon. Fully configurable rewards, odds & shop.

logo

Turn your Cobblemon world into a place players want to visit between adventures.

Cobblemon MiniGames adds a fully playable arcade: eight coin-paying minigames, four Pinball tables, four Gacha machines, Arcade Coins, a Coin Case and a reward shop. Win coins at Roulette, Slot Machine, Flappy Bird, Block Stacker, Snake, Derby, Voltorb Flip, Blackjack and Pinball, then spend them on configurable rewards or on Pokemon from the Gacha machines.

Home image

Features

  • Arcade games inspired by the Pokemon Emerald Game Corner, each with its own themed look.
  • Pinball: four tables (Meowth, Diglett, Seel and Gengar), each with its own goal and prize.
  • Machines: play everything from the MiniGames Machine, or place a dedicated cabinet for each game.
  • Gacha: four machines that give out Pokemon (or items you choose) by rarity.
  • Arcade Coins, a Coin Case and a reward shop.
  • Easy to set up on servers: games, prices, prizes and recipes can all be adjusted.

Minigames

Roulette

Roulette image

Inspired by the Pokemon Emerald roulette table. Pick a table, bet on a Pokemon column, a color row or an exact square, and spin. Winning pays wager * multiplier.

Bet Payout
Pokemon column x6, x4 or x3, depending on how many balls in that column are already occupied
Color row x4 or x3, depending on how many balls in that row are already occupied
Exact square x12
When the player enters, they pick a table first: the red left table uses the normal low wager, the green right table uses a higher wager, and every seventh Minecraft day the right table becomes the service-day table with its own configured wager. A spin consumes the table wager and drops one ball onto the wheel. The round keeps the landed balls until six balls have been placed or no valid squares remain. When the board is cleared, the next entry returns to table selection. If the player leaves mid-round and comes back later, the active roulette round is resumed.

Slot Machine

Slot Machine image

Inspired by the Pokemon Emerald slot machine. Insert one to three bet units, start the reels and stop each one with the action button. One unit activates the middle line, two units activate top, middle and bottom, and three units activate all five lines including the diagonals.

Symbol Payout
Cherry 2 coins on the middle line, or 4 coins on top/bottom cherry lines
Lotad 6 coins
Azurill 12 coins
Power 3 coins and adds Pika Power
Mixed 7 90 coins
Red 7 300 coins
Blue 7 300 coins and marks the next Reel Time as lucky
Replay Counts as a match but pays no coins
Each bet unit costs the configured `slotmachine.coinToPlay`. `Bet Max` inserts up to three bet units and starts the spin when all three have been accepted. Replay and power matches count as wins for the machine flow, but replay pays zero coins and power builds Pika Power. Pika Power can trigger Reel Time, which gives a short special sequence and may grant slower bonus spins.

Flappy Bird

Flappy Bird image

Flap Butterfree through the obstacle gaps. Each cleared obstacle gives one point and speeds the game up. On crash, the run pays score * multiplier Arcade Coins.

Flappy Bird spends the configured entry cost, then starts a countdown. The speed starts at the configured base speed, increases by the configured step for each cleared obstacle, and is capped at the configured max speed.

Block Stacker

Block Stacker image

Stop the moving blocks row by row. Missing every block ends the run. By default, reaching row 6 offers a 50-coin cash-out, row 7 offers 250 coins, and row 8 pays the 1000-coin top prize. At each cash-out prompt, take the current reward or keep going.

Block Stacker spends the configured entry cost when the run starts. The prize amounts, shown next to their rows, and the movement speed of those rows can be tuned in the config.

Snake

Snake image

Guide Onix around the field. Every berry adds one point and grows the snake. Hitting a wall or the snake body ends the run and pays score * multiplier Arcade Coins.

Derby

Derby image

Six racers, one bet. Choose a racer and place a bet in 10-coin steps, up to the Arcade Coins you currently have. Your racer must finish first to win, and the payout depends on the odds shown on the bet slip.

Odds Multiplier A 10-coin bet returns
Payout 1 x1.1 11
Payout 2 x1.2 12
Payout 3 x1.3 13
Payout 4 x1.5 15
Payout 5 x2 20
Payout 6 x3 30

Voltorb Flip

Voltorb Flip

A risk-and-reward puzzle inspired by Voltorb Flip Rogue. Reveal every 2 and 3 card on a 5x5 board without hitting a Voltorb, then cash out or push on to the next, more dangerous level. Boards are saved if you leave mid-run.

Starting a run spends the configured entry cost, then shows a 5x5 board of hidden cards. Each card is either a Voltorb, a 1, a 2, or a 3. The clues on the right and bottom edges show the total card value and the number of Voltorb cards in each row or column. Revealing a 1 is safe, but it does not increase the payout. Revealing a 2 or 3 multiplies the current board value. Players can switch between reveal mode and note mode, then mark hidden cards with notes for 1, 2, 3, or Voltorb while solving the board. Completing a board adds that board's value to the run bank and offers a choice: cash out or continue to the next level. Higher levels have larger possible payouts, but also more Voltorbs. If the player cashes out, the banked Arcade Coins are paid to the player. If the player reveals a Voltorb, the run bank is lost and the payout is 0. Unlike the original Game Corner game, this version lets players leave during an active board. The board state is preserved, so they can come back later and continue the same run. Leaving does not pay out the current bank; the player must cash out from a completed-board prompt to receive the stored winnings.

Blackjack

Blackjack image

Bet in steps of 10 Arcade Coins and play against the dealer: reach 21, or get closer to 21 than the dealer, without going over. Insurance and Double are available, and a bet in progress is saved if you leave.

Result Returns
Win 2x the bet
Blackjack 2.5x the bet
Tie The original bet
Loss or over 21 Nothing
A panel next to the table shows the minimum bet, your current bet and whose turn it is. During the player's turn they can draw another card or stand. The dealer draws until reaching at least 17. Insurance appears when the dealer's visible card is an Ace and the player has enough Arcade Coins. It costs half of the current bet. If the dealer has Blackjack, the insurance returns the value of the original bet; otherwise, the insurance is lost and the hand continues normally. Double appears when the player's first two cards have a total of 9, 10, or 11 and the player has enough Arcade Coins to match the current bet. Choosing it doubles the bet, deals exactly one more card, and ends the player's turn.

Pinball

Pinball image

Four Pinball tables based on the pinball of the Pokemon Emerald GameCorner Expansion. Each table has its own machine, and all four can also be played from the MiniGames Machine.

Press Enter, Space, or click the table to start and launch the ball. Use A/Z for the left flipper and D/X for the right one. The round ends when time runs out, when you clear the table, or when you lose Diglett's only ball, and then you get your prize.

Table Objective Default time Prize
Meowth Hit Meowth to make him drop jewels, then collect them. Consecutive jewels are worth more. Reach 20 points. 60 s 3 coins per point
Diglett One ball: hit all 31 Diglett, then Dugtrio three times. 120 s 3 per Diglett, 100 for clearing the Diglett, 150 for defeating Dugtrio
Seel Hit Seel when it surfaces. Consecutive hits are worth more. Reach 20 points. 90 s 4 coins per point
Gengar Hit Gastly 10 times, Haunter 10 times, then Gengar 5 times. 90 s 3 per Gastly plus 7 per Haunter, 250 for completing the table
If you close the table in the middle of a round, it is paused and you can finish it later without paying again. On Meowth and Seel, losing the ball costs four points and a new ball is launched. Meowth's jewels don't last forever: they blink before disappearing.

Gacha

Gacha image

Gacha is opened directly from one of four dedicated machine blocks. Each machine uses a progressively wider set of rarities, and a higher wager raises the chance of getting a species you don't own yet.

Machine Color Rarities
Basic Pink common
Great Blue common, uncommon
Ultra Yellow common, uncommon, rare
Master Purple common, uncommon, rare, ultra-rare
By default, the available Pokemon are generated exclusively from the Cobblemon world spawn pool. Server owners can configure any machine to use a manual species list instead, or to hand out configured items instead of Pokemon. Each player receives a personalized pool based on the species currently registered in their party and PC. Increasing the wager does not change the machine's rarity probabilities, shiny chance, or aspect chance. Instead, it progressively increases the chance that the selected Pokemon is a species the player does not already own. At the maximum wager, a selected rarity guarantees a new species when that rarity still contains at least one missing Pokemon. The result may independently be shiny or use an eligible non-standard form. Mega, Gigantamax, and Dynamax forms are excluded from random aspect selection. The Pokemon is only delivered after its reveal animation finishes.

Machines

MiniGames Machine and dedicated cabinets

The MiniGames Machine opens the Home screen, where the player picks any enabled game, including the four Pinball tables.

Each game also has its own dedicated cabinet that opens that game directly. Every cabinet has themed side art featuring the game's Pokemon:

Machine Game Pokemon
Snake Machine Snake Onix
Flappy Bird Machine Flappy Bird Butterfree
Block Stacker Machine Block Stacker Rhydon
Blackjack Machine Blackjack Sableye
Derby Machine Derby Ponyta
Voltorb Flip Machine Voltorb Flip Voltorb
Slot Machine Slot Machine Pikachu
Roulette Machine Roulette Wynaut

Pinball tables

Pinball Meowth, Pinball Diglett, Pinball Seel and Pinball Gengar each have their own themed table and a marquee with animated lights. Right-click the machine to play.

Coin Case

The Coin Case stores virtual Arcade Coins in the item data. If the player has a Coin Case in their inventory, game payouts go into it first. Players can also use the Coin Case screen to deposit physical coins from the inventory or withdraw stored coins back into item stacks.

Coin Case details: - The shared coin cap is 99999999. - Payouts are stored in the Coin Case first when one is present. - Withdrawals only create as many physical coins as the inventory can hold.

Recipes

MiniGames Coin Case

coin case recipe

1 Cobblemon Relic Coin and 4 Leather.

MiniGames Coin

coin recipe

1 Cobblemon Relic Coin and 4 Iron Nuggets.

MiniGames Machine

machine recipe

4 any Planks, 2 Gold Ingots, 2 Iron Ingots and 1 Emerald.

Dedicated cabinets

All eight cabinets use the same shape: 4 any Planks, 1 Glass, 2 Iron Ingots, 1 Redstone and 1 dye that picks the game.

snake machine recipe flappy bird machine recipe block stacker machine recipe blackjack machine recipe derby machine recipe voltorb flip machine recipe slot machine recipe roulette machine recipe

Dye Machine
Lime Dye Snake Machine
Light Blue Dye Flappy Bird Machine
Gray Dye Block Stacker Machine
Purple Dye Blackjack Machine
Orange Dye Derby Machine
Red Dye Voltorb Flip Machine
Yellow Dye Slot Machine
Cyan Dye Roulette Machine

Pinball tables

All four tables use the same shape: 2 Glass, 4 Iron Ingots, 1 Redstone and 1 dye that picks the table.

meowth pinball recipe diglett pinball recipe seel pinball recipe gengar pinball recipe

Dye Table
Yellow Dye Pinball Meowth
Brown Dye Pinball Diglett
Light Blue Dye Pinball Seel
Purple Dye Pinball Gengar

Gacha machines

All four Gacha machines use the same shape: 3 Glass, 4 Iron Ingots, 1 Redstone and 1 dye that picks the tier.

gacha basic recipe gacha great recipe gacha ultra recipe gacha master recipe

Dye Machine
Pink Dye Basic Gacha Machine
Blue Dye Great Gacha Machine
Yellow Dye Ultra Gacha Machine
Purple Dye Master Gacha Machine

Configuration

Server configuration (config.yml)

Server configuration lives in config/cobblemonminigames/config.yml. Existing config.yml files receive newly introduced missing keys automatically without overwriting values already configured by the server owner.

The enabled setting of each game controls access from Home, from its dedicated cabinet and from commands. Recipe settings only control crafting: existing machines and commands keep working.

Every coinToPlay setting accepts 0, which makes that game free without changing its rewards. Changing coinToPlay never scales any reward.

Default config.yml

pinball:
  meowth:
    enabled: true
    time: 60
    coinToPlay: 1
  diglett:
    enabled: true
    time: 120
    coinToPlay: 1
  seel:
    enabled: true
    time: 90
    coinToPlay: 1
  gengar:
    enabled: true
    time: 90
    coinToPlay: 1
snake:
  enabled: true
  coinToPlay: 1
  multiplier: 2.0
flappybird:
  enabled: true
  coinToPlay: 1
  multiplier: 2.0
  speedBase: 2.0
  speedStep: 0.05
  speedMax: 7.0
slotmachine:
  enabled: true
  coinToPlay: 1
blockstacker:
  enabled: true
  coinToPlay: 1
  row6Prize: 50
  row7Prize: 250
  row8Prize: 1000
  row6SpeedFrames: 4
  row7SpeedFrames: 3
  row8SpeedFrames: 2
derby:
  enabled: true
voltorbflip:
  enabled: true
  coinToPlay: 10
blackjack:
  enabled: true
roulette:
  enabled: true
  leftTableBet: 1
  rightTableBet: 3
  serviceDayBet: 6
gacha:
  basic:
    enabled: true
    usePokemonList: false
    useItemList: false
    minWager: 50
    maxWager: 9999
    shinyChancePercent: 0.01220703125
    aspectChancePercent: 5.0
    rarities:
      common: 100.0
  great:
    enabled: true
    usePokemonList: false
    useItemList: false
    minWager: 250
    maxWager: 9999
    shinyChancePercent: 0.01220703125
    aspectChancePercent: 5.0
    rarities:
      common: 70.0
      uncommon: 30.0
  ultra:
    enabled: true
    usePokemonList: false
    useItemList: false
    minWager: 1000
    maxWager: 9999
    shinyChancePercent: 0.01220703125
    aspectChancePercent: 5.0
    rarities:
      common: 45.0
      uncommon: 35.0
      rare: 20.0
  master:
    enabled: true
    usePokemonList: false
    useItemList: false
    minWager: 4500
    maxWager: 9999
    shinyChancePercent: 0.01220703125
    aspectChancePercent: 5.0
    rarities:
      common: 35.0
      uncommon: 30.0
      rare: 25.0
      ultra-rare: 10.0
recipes:
  arcadeCoinCrafting: true
  arcadeMachineCrafting: true
  basicGachaMachineCrafting: true
  greatGachaMachineCrafting: true
  ultraGachaMachineCrafting: true
  masterGachaMachineCrafting: true
  snakeMachineCrafting: true
  flappyBirdMachineCrafting: true
  blockStackerMachineCrafting: true
  blackjackMachineCrafting: true
  derbyMachineCrafting: true
  voltorbFlipMachineCrafting: true
  slotMachineCrafting: true
  rouletteMachineCrafting: true
  meowthPinballMachineCrafting: true
  diglettPinballMachineCrafting: true
  seelPinballMachineCrafting: true
  gengarPinballMachineCrafting: true
When upgrading from a version without the individual Gacha recipe settings, each missing setting inherits the existing `arcadeMachineCrafting` value once. After that, every machine recipe can be configured independently.

Config keys

Every key in config.yml, grouped by game, with its default value and what it does: **Pinball** (`` is `meowth`, `diglett`, `seel` or `gengar`) - `pinball.
.enabled` (default `true`): Shows that Pinball table on the Home screen and allows it to be played from its machine and by command. - `pinball.
.time` (default `60` / `120` / `90` / `90`): Round time in seconds for Meowth, Diglett, Seel and Gengar. Values are clamped from `1` to `86400`. The next round uses the new time. - `pinball.
.coinToPlay` (default `1`): Arcade Coins consumed when a round starts on that table. `0` makes it free. Values are clamped from `0` to `99999999`. **Snake** - `snake.enabled` (default `true`): Shows Snake on the Home screen and allows the server to open and process the game. - `snake.coinToPlay` (default `1`): Arcade Coins consumed when a Snake run starts. - `snake.multiplier` (default `2.0`): Multiplies the Snake score for its reward. Decimal results are rounded to the nearest integer. **Flappy Bird** - `flappybird.enabled` (default `true`): Shows Flappy Bird on the Home screen and allows the server to open and process the game. - `flappybird.coinToPlay` (default `1`): Arcade Coins consumed when a Flappy Bird run starts. - `flappybird.multiplier` (default `2.0`): Multiplies the Flappy Bird score for its reward. Decimal results are rounded to the nearest integer. - `flappybird.speedBase` (default `2.0`): Starting Flappy Bird speed multiplier. Values are clamped from `0.01` to `20.0`. - `flappybird.speedStep` (default `0.05`): Speed multiplier added for each cleared obstacle. Use `0` to keep a fixed speed. Values are clamped from `0` to `20.0`. - `flappybird.speedMax` (default `7.0`): Maximum Flappy Bird speed multiplier. Values are clamped from `speedBase` to `20.0`. **Slot Machine** - `slotmachine.enabled` (default `true`): Shows Slot Machine on the Home screen and allows the server to open and process the game. - `slotmachine.coinToPlay` (default `1`): Arcade Coins consumed for each Slot Machine bet unit. **Block Stacker** - `blockstacker.enabled` (default `true`): Shows Block Stacker on the Home screen and allows the server to open and process the game. - `blockstacker.coinToPlay` (default `1`): Arcade Coins consumed when a Block Stacker run starts. - `blockstacker.row6Prize` (default `50`): Arcade Coins offered as a cash-out when row 6 is cleared. Values are clamped from `1` to `99999999`. - `blockstacker.row7Prize` (default `250`): Arcade Coins offered as a cash-out when row 7 is cleared. Values are clamped from `1` to `99999999`. - `blockstacker.row8Prize` (default `1000`): Arcade Coins paid as the top prize when row 8 is cleared. Values are clamped from `1` to `99999999`. - `blockstacker.row6SpeedFrames` (default `4`): Movement delay on row 6, the first prize row. Lower values are faster. Values are clamped from `1` to `5`. - `blockstacker.row7SpeedFrames` (default `3`): Movement delay on row 7, the second prize row. Lower values are faster. Values are clamped from `1` to `5`. - `blockstacker.row8SpeedFrames` (default `2`): Movement delay on row 8, the top prize row. Lower values are faster. Values are clamped from `1` to `5`. **Derby, Voltorb Flip, Blackjack and Roulette** - `derby.enabled` (default `true`): Shows Derby on the Home screen and allows the server to open and process the game. - `voltorbflip.enabled` (default `true`): Shows Voltorb Flip on the Home screen and allows the server to open and process the game. - `voltorbflip.coinToPlay` (default `10`): Arcade Coins consumed when a Voltorb Flip run starts. - `blackjack.enabled` (default `true`): Shows Blackjack on the Home screen and allows the server to open and process the game. - `roulette.enabled` (default `true`): Shows Roulette on the Home screen and allows the server to open and process the game. - `roulette.leftTableBet` (default `1`): Wager used by the normal left roulette table. - `roulette.rightTableBet` (default `3`): Wager used by the normal right roulette table. - `roulette.serviceDayBet` (default `6`): Wager used by the right roulette table every seventh Minecraft day. **Recipes** (all default `true`; changes require restarting the server or singleplayer world) - `recipes.arcadeCoinCrafting`: Enables the MiniGames Coin crafting recipe. Set to `false` to disable it. - `recipes.arcadeMachineCrafting`: Enables the MiniGames Machine crafting recipe. - `recipes.<tier>GachaMachineCrafting`: Enables the Basic, Great, Ultra or Master Gacha Machine crafting recipe. - `recipes.<game>MachineCrafting`: Enables a dedicated cabinet recipe: `snake`, `flappyBird`, `blockStacker`, `blackjack`, `derby`, `voltorbFlip`, `slot` and `roulette`. - `recipes.
PinballMachineCrafting`: Enables a Pinball table recipe: `meowth`, `diglett`, `seel` and `gengar`. **Free games** With `coinToPlay: 0`, Slot Machine and Block Stacker still award their normal fixed prizes, Snake and Flappy Bird still pay `score * multiplier`, Voltorb Flip still pays the accumulated board winnings, and Pinball still pays its table prize.

Gacha settings

Each machine uses the same settings under gacha.basic, gacha.great, gacha.ultra, or gacha.master. The set of accepted rarity keys is fixed by the machine tier:

Machine Default minimum Default rarity weights
basic 50 common: 100
great 250 common: 70, uncommon: 30
ultra 1000 common: 45, uncommon: 35, rare: 20
master 4500 common: 35, uncommon: 30, rare: 25, ultra-rare: 10
Every setting available for each Gacha machine, with its allowed values: - `gacha.<machine>.enabled` (`true` / `false`): Allows that machine block to be opened. - `gacha.<machine>.usePokemonList` (`true` / `false`): Uses the machine's manual Pokemon list instead of building its pool from rarity settings. Defaults to `false`. - `gacha.<machine>.useItemList` (`true` / `false`): Hands out items from the machine's manual item list instead of Pokemon. Defaults to `false`. Only one of `usePokemonList` and `useItemList` may be `true`: if both are, a warning is logged and the machine cannot be played until one is set to `false`. - `gacha.<machine>.minWager` (`0` to `9999`): Minimum selectable wager and the point where the new-species bonus begins at its natural spawn-weight chance. With an item list, items follow their configured weights at this wager. - `gacha.<machine>.maxWager` (`minWager` to `9999`): Maximum selectable wager and the point where the progressive new-species bonus reaches its maximum. With an item list, every item of the chosen rarity is equally likely at this wager. Ignored for item lists whose items all share one weight per rarity, which are fixed at `minWager`. - `gacha.<machine>.shinyChancePercent` (`0` to `100`): Independent percentage chance for the awarded Pokemon to be shiny. - `gacha.<machine>.aspectChancePercent` (`0` to `100`): Independent percentage chance to select an eligible non-standard form for the awarded species. - `gacha.<machine>.rarities.<rarity>` (`0` or greater): Relative selection weight for that rarity. The active rarity weights are normalized into probabilities. Setting a rarity weight to `0` disables that rarity for the machine. At least one available rarity must have a positive weight; otherwise, that machine's default weights are restored. Adding a rarity key that does not belong to the machine tier does not expand its pool. Gacha wagers are different from `coinToPlay`: the selected amount changes the progressive chance of receiving a species the player does not own (or, with an item list, of receiving a low-weight item), but never changes rarity, shiny, or aspect probabilities. A `minWager` of `0` allows free pulls at the minimum wager.

Gacha manual Pokemon and item lists

The mod creates one manual list file for each machine: config/cobblemonminigames/gacha/basic.yml, great.yml, ultra.yml and master.yml. Each one can hold a pokemons list and an items list, both empty by default.

Manual Pokemon lists

Add each Pokemon as an object with `id` and `weight`:
pokemons:
  - id: pikachu
    weight: 10.0
  - id: eevee
    weight: 5.0
  - id: cobblemon:bulbasaur
    weight: 1.0
Set that machine's `usePokemonList` value to `true` in `config.yml` to activate the list. Higher weights make an entry more likely relative to other eligible entries. For example, weights `10.0` and `1.0` produce base probabilities of `10/11` and `1/11`. The new-species bonus still separates new and owned species before applying their relative weights. Manual lists can include species outside the machine's normal rarities. Each weight must be greater than `0` and finite. Invalid entries or species are skipped and logged. If the list has no valid species, the machine displays an empty-pool message and consumes no Arcade Coins.

Manual item lists

Add each item as an object with `id`, `rarity`, `quantity`, and an optional `weight`:
items:
  - id: minecraft:iron_ingot
    rarity: common
    quantity: 8
    weight: 10.0
  - id: minecraft:diamond
    rarity: common
    quantity: 1
    weight: 0.1
  - id: cobblemon:rare_candy
    rarity: uncommon
    quantity: 1
Set that machine's `useItemList` value to `true` in `config.yml` to activate the list. Each pull first picks a rarity using the machine's `rarities` weights, then one of that rarity's items by `weight`, and gives its full `quantity`. Items that do not fit in the inventory are dropped at the player's feet. Like the new-species bonus for Pokemon, the wager never changes the rarity probabilities; it changes which item of the chosen rarity is awarded. At `minWager`, items follow their weights, so in the example above the diamond is 100 times less likely than the iron. Raising the wager evens those odds out progressively, making low-weight items more likely, until at `maxWager` every item of the chosen rarity is equally likely. If all items of a rarity share the same weight, the wager does not change the result for that rarity. When that is true for every rarity the machine uses (for example when no item sets a `weight`), the wager is fixed at `minWager` and cannot be raised, so players never pay more for the same odds. Setting different weights restores the full `minWager`–`maxWager` range. - `rarity` must be `common`, `uncommon`, `rare`, or `ultra-rare`, and must be one of the machine tier's rarities. For example, a `rare` item in `basic.yml` is skipped. - `quantity` must be at least `1` and defaults to `1` when omitted. Values above `64` are reduced to `64`. - `weight` must be greater than `0` and finite, and defaults to `1.0` when omitted. Lower weights make an item rarer. - Invalid entries, unknown item ids, and rarities the machine does not use are skipped and logged. If the list has no usable items, the machine displays a no-items message and consumes no Arcade Coins.

Shop

Shop configuration lives in config/cobblemonminigames/shop/. Every .yml or .yaml file in this directory is an independent catalog. Every shop file contains categories, each category contains subcategories, and each subcategory contains purchasable rewards. Item rewards use type: item; Pokemon rewards use type: pokemon.

Example catalog

catalog-id: cobblemon_shop
requires-mods:
  - cobblemon
categories:
  - id: supplies
    name: Supplies
    icon: minecraft:chest
    subcategories:
      - name: Pokeballs
        items:
          - type: item
            id: cobblemon:poke_ball
            quantity: 1
            price: 10
      - name: Starters
        items:
          - type: pokemon
            id: cobblemon:bulbasaur
            level: 5
            shiny: false
            aspect: ""
            rarity: uncommon
            price: 300
When `catalog-id` and `requires-mods` are present, the filename is only for organization. Legacy files may omit them and fall back to filename-based behavior. `requires-mods` accepts more than one dependency:
catalog-id: crossover_shop
requires-mods:
  - cobblemon
  - another_mod
A catalog can contain registered item ids from several namespaces. `catalog-id` is singular because it identifies the catalog itself; it does not restrict the namespaces used by its rewards.

Shop catalog fields

Fields used at the top level of a shop file and inside its categories and subcategories: - `catalog-id` (recommended): Unique catalog identifier. It prefixes every category id, producing ids such as `cobblemon_shop:supplies`. If omitted, the filename without `.yml` or `.yaml` is used. - `requires-mods` (recommended): A mod id or list of mod ids required by the complete catalog. The file is skipped if any listed mod is missing. An empty list makes the catalog unconditional. If omitted, legacy behavior treats the filename as a required mod id, except for `cobblemon.yml`. - `categories` (required): List of category objects contained in the catalog. - `categories[].id` (required): Category id unique within its `catalog-id`. - `categories[].name` (optional): Visible category name. Defaults to its `id`. - `categories[].icon` (required): Registered item id used by the category tab. An invalid icon causes the category to be skipped. - `categories[].subcategories` (required): List of subcategory objects. - `subcategories[].name` (required): Visible subcategory name. - `subcategories[].items` (required): List of item or Pokemon rewards.

Shop reward fields

Fields used by each reward inside a subcategory. Item rewards and Pokemon rewards accept different fields: - `type` (item, pokemon): Must be `item` or `pokemon`. - `id` (item, pokemon): Registered namespaced item id or Cobblemon species id. Unknown entries are skipped. - `price` (item, pokemon): Arcade Coin price from `1` to `999999999999`. Entries above the maximum are logged as errors and skipped. - `rarity` (item, pokemon): `common`, `uncommon`, `rare`, or `ultra-rare`. Defaults to `common` and controls the purchase notification style. - `quantity` (item only): Item quantity. Defaults to `1` and is clamped to at least `1`. - `level` (pokemon only): Pokemon level from `1` to `100`. Defaults to `5`. - `shiny` (pokemon only): Whether the Pokemon is shiny. Defaults to `false`. - `aspect` (pokemon only): Cobblemon aspect/form applied through `forcedAspects`. Defaults to no forced aspect.

Reloading configuration

/cobblemonminigames reload reloads gameplay values and shop catalogs. Recipe changes require a complete restart.

Gameplay values, including game `enabled` flags, Pinball times and prices, speed settings, Gacha settings, manual Pokemon and item lists, and shop catalogs, are reloaded by `/cobblemonminigames reload`. Disabled Home games are hidden and their server action packets are ignored. A disabled Gacha machine remains placed but cannot be opened. An active or paused Pinball round keeps its time limit; the next round uses the new one. The recipe settings are read when the server or singleplayer world starts, so recipe enable/disable changes require a complete restart.

Client settings

Client settings live in config/cobblemonminigames/client.yml, generated the first time the game starts. /cobblemonminigames reloadclient re-reads this file without restarting the game.

volume: 1.0
channel: master
Key Allowed values Description
volume 0.0 to 1.0 Volume every sound the mod plays is multiplied by, so the arcade can be turned down without lowering Minecraft's volume. Use 0.0 to mute the mod.
channel master, music, record, block, hostile, neutral, player, ambient, voice, weather Which of Minecraft's volume sliders the mod sound effects answer to. Defaults to master. Background music always uses music.
These are per-player settings and apply on top of Minecraft's own volume sliders. Pointing `channel` at a slider other than `master` gives the mod its own in-game volume control: for example `channel: record` puts the arcade on the Jukebox/Note Blocks slider, which can then be lowered without affecting anything else. Beware that a slider the player has already set to zero silences the mod.

Client keybinds

Client keybinds live in config/cobblemonminigames/keybinds.yml, generated with every action as a list of keys. /cobblemonminigames reloadkeybind reloads them without restarting the game.

An action may keep several keys (a list) or be a single key written inline, e.g. up: KEY_W. For convenience, KEY_W, GLFW_KEY_W, and W all resolve to the same key.

Key type Examples Description
Printable keys KEY_A, KEY_1, KEY_SPACE, KEY_MINUS, KEY_EQUAL Normal keyboard keys.
Function keys KEY_F1 to KEY_F25 Function keys.
Navigation keys KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_HOME, KEY_END Movement and navigation keys.
Editing keys KEY_ENTER, KEY_TAB, KEY_BACKSPACE, KEY_DELETE, KEY_INSERT Common menu/editing keys.
Keypad keys KEY_KP_0 to KEY_KP_9, KEY_KP_ADD, KEY_KP_SUBTRACT Numeric keypad keys.
Modifier keys KEY_LEFT_SHIFT, KEY_RIGHT_CONTROL, KEY_LEFT_ALT Modifier keys if a server pack wants them as direct actions.

Example keybinds.yml

pinball:
  start:
  - KEY_SPACE
  - KEY_ENTER
  left_flipper:
  - KEY_A
  - KEY_Z
  right_flipper:
  - KEY_D
  - KEY_X
  quit:
  - KEY_ESCAPE
roulette:
  confirm:
  - KEY_SPACE
  - KEY_ENTER
  - KEY_A
  quit:
  - KEY_ESCAPE
  up:
  - KEY_UP
  down:
  - KEY_DOWN
  left:
  - KEY_LEFT
  right:
  - KEY_RIGHT
  bet_up:
  - KEY_KP_ADD
  - KEY_EQUAL
  bet_down:
  - KEY_KP_SUBTRACT
  - KEY_MINUS

Keybind actions

Every action that can be rebound in keybinds.yml, grouped by game, with its default keys: **Pinball** - `pinball.start` (`KEY_SPACE`, `KEY_ENTER`): Pay the entry cost and launch the ball from the start screen. Clicking the playfield does the same. - `pinball.left_flipper` (`KEY_A`, `KEY_Z`): Left flipper. - `pinball.right_flipper` (`KEY_D`, `KEY_X`): Right flipper. - `pinball.quit` (`KEY_ESCAPE`): Close the table. The round is paused and resumes when reopened. **Roulette** - `roulette.confirm` (`KEY_SPACE`, `KEY_ENTER`, `KEY_A`): Confirm table, place bet, or continue after a result. - `roulette.quit` (`KEY_ESCAPE`): Leave the roulette screen. Active rounds are preserved. - `roulette.up` / `down` / `left` / `right` (`KEY_UP`, `KEY_DOWN`, `KEY_LEFT`, `KEY_RIGHT`): Move roulette selection. - `roulette.bet_up` (`KEY_KP_ADD`, `KEY_EQUAL`): Move to the next available roulette table wager before entering the table. - `roulette.bet_down` (`KEY_KP_SUBTRACT`, `KEY_MINUS`): Move to the previous available roulette table wager before entering the table. **Slot Machine** - `slotmachine.primary` (`KEY_A`, `KEY_SPACE`, `KEY_ENTER`): Start reels, stop the current reel, or repeat a winning bet. - `slotmachine.bet` (`KEY_DOWN`): Insert one coin. - `slotmachine.max_bet` (`KEY_UP`): Insert up to three coins and start when max bet is reached. - `slotmachine.info` (`KEY_I`): Open or close the slot info screen. - `slotmachine.quit` (`KEY_ESCAPE`): Leave the slot machine, or close info/Reel Time when that overlay is active. **Flappy Bird** - `flappybird.flap` (`KEY_SPACE`, `KEY_A`, `KEY_UP`, `KEY_ENTER`): Start from ready/game-over states, or flap while playing. - `flappybird.quit` (`KEY_ESCAPE`): Leave the Flappy Bird screen. **Block Stacker** - `blockstacker.primary` (`KEY_SPACE`, `KEY_ENTER`, `KEY_A`): Start, drop blocks, or confirm the Keep Going prompt. - `blockstacker.left` (`KEY_LEFT`): Select Yes at the Keep Going prompt. - `blockstacker.right` (`KEY_RIGHT`): Select No at the Keep Going prompt. - `blockstacker.back` (`KEY_B`): Cash out at the Keep Going prompt, or leave from regular states. - `blockstacker.quit` (`KEY_ESCAPE`): Leave the Block Stacker screen. **Snake** - `snake.start` (`KEY_SPACE`, `KEY_ENTER`, `KEY_A`): Start a Snake run from ready/game-over states. - `snake.quit` (`KEY_ESCAPE`): Leave the Snake screen. - `snake.up` / `down` / `left` / `right` (`KEY_UP`, `KEY_DOWN`, `KEY_LEFT`, `KEY_RIGHT`): Turn in that direction. **Derby** - `derby.confirm` (`KEY_SPACE`, `KEY_ENTER`, `KEY_A`): Pick racer, start race, or continue after a result. - `derby.back` (`KEY_B`, `KEY_BACKSPACE`): Go back from betting to racer select, or leave from racer select. - `derby.quit` (`KEY_ESCAPE`): Leave Derby. - `derby.up` (`KEY_UP`): Increase Derby bet by 10 coins. - `derby.down` (`KEY_DOWN`): Decrease Derby bet by 10 coins. - `derby.left` (`KEY_LEFT`): Previous racer. - `derby.right` (`KEY_RIGHT`): Next racer. **Voltorb Flip** - `voltorbflip.confirm` (`KEY_SPACE`, `KEY_ENTER`, `KEY_A`): Start a run, reveal or mark the selected card, or continue after completing a board. - `voltorbflip.back` (`KEY_B`, `KEY_BACKSPACE`): Toggle note mode while playing, cash out after completing a board, or leave from the ready screen. - `voltorbflip.quit` (`KEY_ESCAPE`): Leave Voltorb Flip. Active boards are preserved. - `voltorbflip.up` / `down` / `left` / `right` (`KEY_UP`, `KEY_DOWN`, `KEY_LEFT`, `KEY_RIGHT`): Move the cursor. - `voltorbflip.note_prev` (`KEY_Q`, `KEY_LEFT_BRACKET`): Select the previous note value. - `voltorbflip.note_next` (`KEY_E`, `KEY_RIGHT_BRACKET`): Select the next note value. **Blackjack** - `blackjack.confirm` (`KEY_A`, `KEY_SPACE`, `KEY_ENTER`): Confirm the selected option. - `blackjack.quit` (`KEY_B`, `KEY_ESCAPE`): Leave Blackjack. Active bets are preserved. - `blackjack.up` (`KEY_UP`): Move to the previous option. - `blackjack.down` (`KEY_DOWN`): Move to the next option. **Gacha** - `gacha.confirm` (`KEY_SPACE`, `KEY_ENTER`, `KEY_KP_ENTER`, `KEY_A`): Pull the machine from its ready state. The pull area can also be clicked. - `gacha.quit` (`KEY_ESCAPE`): Leave the machine. An active reveal is paused and resumes when a Gacha machine is opened again; from the completed result it returns to the main Gacha screen. - `gacha.up` (`KEY_UP`): Increase the currently selected wager digit. - `gacha.down` (`KEY_DOWN`): Decrease the currently selected wager digit. - `gacha.left` (`KEY_LEFT`): Select the wager digit to the left. - `gacha.right` (`KEY_RIGHT`): Select the wager digit to the right.

Commands and server notes

Command Description
/cobblemonminigames reload Reloads gameplay and shop server configs.
/cobblemonminigames givecoins <quantity> <user> Gives Arcade Coins to an online player.
/cobblemonminigames <screen> [targets] Opens a game screen for the given players, or for yourself.

All three require permission level 2.

More details about the commands and how the server handles coins, the shop and Gacha pools: - `/cobblemonminigames reload`: Recipe crafting toggles under `recipes` require restarting the server or singleplayer world. - `/cobblemonminigames givecoins`: Coin Cases are filled first, followed by inventory stacks. If the full amount does not fit, the operation is cancelled without delivering any coins and both the player and server log are notified. - `/cobblemonminigames <screen> [targets]`: Screens are `home`, `shop`, `roulette`, `slotmachine`, `blockstacker`, `snake`, `flappybird`, `derby`, `voltorbflip`, `blackjack`, `gacha <basic|great|ultra|master>`, and the Pinball tables `pinballmeowth`, `pinballdiglett`, `pinballseel`, `pinballgengar` (also available as `pinball <meowth|diglett|seel|gengar>`). This lets server owners wire games to custom blocks, NPCs, or command blocks (for example `/cobblemonminigames snake @p` or `/cobblemonminigames pinballgengar @p`). Disabled games and unavailable Gacha machines are not opened. - Game payouts are Arcade Coins. Shop contents and prices are controlled through the shop YAML files. - Each Coin Case stores up to `999999999` Arcade Coins. If a player has several, payouts fill them in inventory order before using physical inventory stacks. - Shop prices, the Coin Case total, and game balance panels use compact notation. - By default, Gacha pools are rebuilt exclusively from Cobblemon's loaded world spawn pool. Manual Pokemon lists replace this behavior for machines with `usePokemonList: true`, and manual item lists for machines with `useItemList: true`. - A paused Pinball round is lost if the player disconnects.

Credits

Cobblemon MiniGames Team

profile avatar
Owner
  • 3
    Projects
  • 48.1K
    Downloads
Donate

More from xBarto_