All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Cobblemon Picnic

Cobblemon Picnic

by shiero • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

🧺 Cobblemon Picnic

Stop roaming. Bring the spawns to you.

Put down a picnic table, right-click it, and the wild Pokémon around you are swept away and replaced with a fresh batch. Hunt a shiny, hunt a species, hunt from a chair — without walking a thousand blocks to reset the neighbourhood.

Then sit down. A full table doubles your shiny odds.

✨ What you get

  • 🔄 Spawn re-roll on demand — right-click the table. Every re-roll eats bread, so keep its basket stocked — or a picnic basket nearby — and the table stays fed. A short cooldown keeps it from being spammed. Your own Pokémon are never touched.
  • ✨ Shiny aura — every occupied seat raises the odds; a full table doubles them.
  • 🪑 Six tables — Basic, Advanced and Expert, plus Diving, Hot and Strange for underwater, the Nether and the End. Each one carries its home with it, and makes everywhere else regret it.
  • 🎨 Your table, your table — built from 176 cloth-and-wood combinations, a bench per seat, and its own basket. Dye the cloth in place. No two picnics look alike.
  • 🧽 Care for your team — wash them, play fetch, earn friendship. The tools are crafted once and last forever.
  • ⚔️ Battle Seeker — drop one in an Expert table and the re-roll summons a trainer instead.
  • 📊 Statistics — every re-roll logged, every shiny counted.

Everything is configurable in game, and the re-roll has a master switch for servers that want the picnic without the spawn manipulation.

🧩 Requirements

  • Cobblemon (CurseForge) for Minecraft 1.21.1.
  • Fabric: Fabric API + Fabric Language Kotlin.
  • NeoForge: Architectury API + Kotlin For Forge.

Plays nicely with Handcrafted (CurseForge) and CobbleFurnies (CurseForge) — their furniture works in the recipe, and the duplicates quietly step aside.

📖 Everything else

Settings, commands and the full feature reference live on the wiki.

Found a bug or have an idea? The Discord picks reports up automatically and replies in your thread when the fix ships.

The mod is free and stays free — you can sponsor the author if it makes your hunts comfier.

License: "If you make money, I make money" — free to use and redistribute for free; commercial use needs a revenue-sharing agreement. Full terms.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Neoforge
9d ago 1
1.21.1
Fabric
9d ago 1
1.21.1
Neoforge
1mo ago 1
1.21.1
Fabric
1mo ago 1
1.21.1
Neoforge
1mo ago 1
1.21.1
Fabric
1mo ago 1
1.21.1
Neoforge
1mo ago 1
1.21.1
Fabric
1mo ago 1
1.21.1
Neoforge
2mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Neoforge
2mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Neoforge
3mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.1
Neoforge
3mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.1
Fabric
5mo ago 1
1.21.1
Fabric
5mo ago 1
Your table fills flat ground again on Cobblemon 1.8.2, and its screen now looks like Cobblemon's. 🧺

### Re-rolls

  • A re-roll spawns on flat ground again with Cobblemon 1.8.2.** Cobblemon 1.8.2 changed how it
places the area a re-roll searches, and on flat ground — a grass platform over the ocean, a plain —
that area ended up just above the grass, so the table said there was nowhere to spawn while wild
Pokémon spawned there on their own. Each search now checks with Cobblemon where its area will land
and keeps the ground inside it.
  • A re-roll no longer comes back empty where only rare Pokémon live.** Cobblemon picks a rarity
first and only then looks for a Pokémon of that rarity, so where only rare ones live almost every
try came up empty. When the rarity it picks has nothing here, the re-roll now tries the others,
keeping Cobblemon's odds between them.
  • Nothing spawns on top of the table anymore.** On a small platform the re-roll searches right
around the table, and a whole group could come out standing on the food. Picnic blocks are now
off-limits, and so is a small clearance around you (2 blocks by default, set in the config).
  • Flying Pokémon spawn already in the air.** They used to appear on the ground and then jump up in
front of you; now the first place you see them is mid-flight. Which Pokémon spawn is unchanged.
  • Every re-roll is written to latest.log.** One line says what the table cleared and spawned, and
one more per Pokémon gives its species, level and position, so a bug report already carries what
happened. It can be turned off in the config.

### The table screen

  • The table screen is redrawn in Cobblemon's style.** A charcoal frame with grey panels, the same
look as Cobblemon's own screens, above the familiar light inventory.
  • Each table shows its tier in the header.** Three stripes in the top corner take the table's
colour: red for Basic, green for Advanced, gold for Expert, blue for Diving, orange for Hot and
purple for Strange.
  • The count buttons light up on hover and grey out when they would do nothing.** At zero the two
lowering buttons are dimmed, and at the table's cap the two raising ones are; a bar under the number
shows how close you are to that cap.
  • Each slot is labelled on its own side.** "Bread" sits to the left of the bread slot and "Seeker"
to the right of the seeker slot, so the two no longer read as one phrase. On a table that cannot
take a Battle Seeker, its slot shows a padlock.

### Bug reports

  • Bug reports from Discord get exactly one reply when they are closed.** An old workflow that
was meant to answer and lock the report's thread had stopped matching any report filed through
the current bot, while still running every six hours. It is gone; the intake bot posts the
closing message on its own, and the thread is no longer locked.
Your table fills flat ground again on Cobblemon 1.8.2, and its screen now looks like Cobblemon's. 🧺

### Re-rolls

  • A re-roll spawns on flat ground again with Cobblemon 1.8.2.** Cobblemon 1.8.2 changed how it
places the area a re-roll searches, and on flat ground — a grass platform over the ocean, a plain —
that area ended up just above the grass, so the table said there was nowhere to spawn while wild
Pokémon spawned there on their own. Each search now checks with Cobblemon where its area will land
and keeps the ground inside it.
  • A re-roll no longer comes back empty where only rare Pokémon live.** Cobblemon picks a rarity
first and only then looks for a Pokémon of that rarity, so where only rare ones live almost every
try came up empty. When the rarity it picks has nothing here, the re-roll now tries the others,
keeping Cobblemon's odds between them.
  • Nothing spawns on top of the table anymore.** On a small platform the re-roll searches right
around the table, and a whole group could come out standing on the food. Picnic blocks are now
off-limits, and so is a small clearance around you (2 blocks by default, set in the config).
  • Flying Pokémon spawn already in the air.** They used to appear on the ground and then jump up in
front of you; now the first place you see them is mid-flight. Which Pokémon spawn is unchanged.
  • Every re-roll is written to latest.log.** One line says what the table cleared and spawned, and
one more per Pokémon gives its species, level and position, so a bug report already carries what
happened. It can be turned off in the config.

### The table screen

  • The table screen is redrawn in Cobblemon's style.** A charcoal frame with grey panels, the same
look as Cobblemon's own screens, above the familiar light inventory.
  • Each table shows its tier in the header.** Three stripes in the top corner take the table's
colour: red for Basic, green for Advanced, gold for Expert, blue for Diving, orange for Hot and
purple for Strange.
  • The count buttons light up on hover and grey out when they would do nothing.** At zero the two
lowering buttons are dimmed, and at the table's cap the two raising ones are; a bar under the number
shows how close you are to that cap.
  • Each slot is labelled on its own side.** "Bread" sits to the left of the bread slot and "Seeker"
to the right of the seeker slot, so the two no longer read as one phrase. On a table that cannot
take a Battle Seeker, its slot shows a padlock.

### Bug reports

  • Bug reports from Discord get exactly one reply when they are closed.** An old workflow that
was meant to answer and lock the report's thread had stopped matching any report filed through
the current bot, while still running every six hours. It is gone; the intake bot posts the
closing message on its own, and the thread is no longer locked.
Build a platform anywhere — a mountain top, a tower, an island in the sky — and your table will fill
it with wild Pokémon. 🧺

  • A table on a flat, built-up platform now fills it.** Put a table on a platform you built and the
re-roll cleared the area and then spawned nothing at all, every time — while Pokémon appeared around
it on their own without trouble. The table was looking for somewhere to put them in a way that only
ever worked on natural, uneven ground: on a flat surface there was nowhere it would accept. It now
looks where you are standing, and a platform in the sky populates like any other ground.
  • Re-rolls stay at the table's height.** High above the world, the Pokémon used to appear on the
terrain far below instead of up on the platform with you — and since a table only clears the area
around itself, nothing ever cleared them away again. A re-roll now keeps to your own altitude.
  • No more Pokémon statues.** A re-roll could leave a frozen model standing where a Pokémon used to
be, and it stayed until you rejoined. It happened when the re-roll cleared a Pokémon that had only
just appeared. Nothing is left standing now.
  • A well-stocked table no longer crashes the game.** An Advanced table holds three stacks of bread
and an Expert one holds five, but the game can only write 99 items into a saved slot — so past that
the table brought the game down the moment the world saved. The bread is stored as a count now, the
way a loose picnic basket has always stored its own, and your existing tables carry theirs over
untouched. Bread renamed on an anvil goes back to being ordinary bread.
  • The re-roll area is yours to set.** How far a table reaches was the one per-tier number that could
not be changed in game. /picnic config reroll radius expert 96 widens an Expert table, each rung is
set on its own, and default puts it back to 32 / 48 / 64. It moves both halves of a re-roll: the
area that clears and the area that repopulates.
  • The table tells you when the ground is the problem.** A re-roll that found nothing always said
there was nowhere around here to spawn, even when the real reason was the floor: wild Pokémon will
not spawn on built blocks — planks, bricks, quartz, concrete, glass, wool — and a platform made of
them can never hold any. The table now says so, and names what does work: grass, dirt, stone or
sand.
  • Built for Cobblemon 1.8.** The mod is now compiled against the Cobblemon you are running.
Build a platform anywhere — a mountain top, a tower, an island in the sky — and your table will fill
it with wild Pokémon. 🧺

  • A table on a flat, built-up platform now fills it.** Put a table on a platform you built and the
re-roll cleared the area and then spawned nothing at all, every time — while Pokémon appeared around
it on their own without trouble. The table was looking for somewhere to put them in a way that only
ever worked on natural, uneven ground: on a flat surface there was nowhere it would accept. It now
looks where you are standing, and a platform in the sky populates like any other ground.
  • Re-rolls stay at the table's height.** High above the world, the Pokémon used to appear on the
terrain far below instead of up on the platform with you — and since a table only clears the area
around itself, nothing ever cleared them away again. A re-roll now keeps to your own altitude.
  • No more Pokémon statues.** A re-roll could leave a frozen model standing where a Pokémon used to
be, and it stayed until you rejoined. It happened when the re-roll cleared a Pokémon that had only
just appeared. Nothing is left standing now.
  • A well-stocked table no longer crashes the game.** An Advanced table holds three stacks of bread
and an Expert one holds five, but the game can only write 99 items into a saved slot — so past that
the table brought the game down the moment the world saved. The bread is stored as a count now, the
way a loose picnic basket has always stored its own, and your existing tables carry theirs over
untouched. Bread renamed on an anvil goes back to being ordinary bread.
  • The re-roll area is yours to set.** How far a table reaches was the one per-tier number that could
not be changed in game. /picnic config reroll radius expert 96 widens an Expert table, each rung is
set on its own, and default puts it back to 32 / 48 / 64. It moves both halves of a re-roll: the
area that clears and the area that repopulates.
  • The table tells you when the ground is the problem.** A re-roll that found nothing always said
there was nowhere around here to spawn, even when the real reason was the floor: wild Pokémon will
not spawn on built blocks — planks, bricks, quartz, concrete, glass, wool — and a platform made of
them can never hold any. The table now says so, and names what does work: grass, dirt, stone or
sand.
  • Built for Cobblemon 1.8.** The mod is now compiled against the Cobblemon you are running.
Every feature, one switch each, all from one command. ⚙️

> **Heads up — the command changed.** Settings live under /picnic config <feature> <setting> now.
> /picnic reroll false is /picnic config reroll enabled false, and /picnic spawncap expert 16 is
> /picnic config reroll spawncap expert 16. Type /picnic config to see every feature with its
> settings. /picnic, /picnic stats, reload and reset are unchanged.

  • Turn off any feature, and tune every one.** /picnic config covers the re-roll, the shiny aura,
party deploy, the peaceful picnic, snack bias, TM teaching, washing, playing fetch, the Battle Seeker,
dimension hazards and the table itself. Every setting takes default, and
/picnic config <feature> reset puts a whole feature back.
  • Five new switches.** Washing, playing fetch, the Battle Seeker, party TM teaching and dimension
hazards can each be turned off — from the command or from Mod Menu. Switching off hazards stops a
table burning in the Nether, the Hot table scorching, the Diving table spilling and the End moving
a table. Switching off the Battle Seeker locks its slot, and chests stop holding one after the next
/reload.
  • The interaction wheel follows the server.** Wash and Play used to show or hide based on your own
game's settings, even on a server set up differently. They follow the server's settings now, including
when the server has switched them off.
  • The settings screen tells you when it isn't the one in charge.** On a server, the Mod Menu screen
only changes your own game's copy of the settings. The server keeps its own, and that is what every
table reads — so a fuel cost changed there never showed up on the table. The screen now says so at
the top. Operators change the server's settings with /picnic.
  • A config file the mod can't read is no longer quietly replaced.** If
config/cobblemon_picnic.json has a typo, the mod says so — in the log, at the top of the settings
screen, and when you run /picnic reload — and leaves the file alone until you fix it. Before, it ran
on the defaults and wrote them over your values the next time any setting changed.
  • Pokémon no longer take damage around a picnic table.** The table's parts are solid blocks, and
the game treated them like a wall you can get stuck in, so a Pokémon that ended up with its head
inside one took damage every moment it stayed there. The table is still solid to walk on and bump
into. It just can't hurt anything anymore.
  • The store page says what a re-roll costs.** It presented the re-roll as a free button. It now
says every re-roll eats bread, that a stocked basket keeps the table fed, and that a short cooldown
stops spam.
Every feature, one switch each, all from one command. ⚙️

> **Heads up — the command changed.** Settings live under /picnic config <feature> <setting> now.
> /picnic reroll false is /picnic config reroll enabled false, and /picnic spawncap expert 16 is
> /picnic config reroll spawncap expert 16. Type /picnic config to see every feature with its
> settings. /picnic, /picnic stats, reload and reset are unchanged.

  • Turn off any feature, and tune every one.** /picnic config covers the re-roll, the shiny aura,
party deploy, the peaceful picnic, snack bias, TM teaching, washing, playing fetch, the Battle Seeker,
dimension hazards and the table itself. Every setting takes default, and
/picnic config <feature> reset puts a whole feature back.
  • Five new switches.** Washing, playing fetch, the Battle Seeker, party TM teaching and dimension
hazards can each be turned off — from the command or from Mod Menu. Switching off hazards stops a
table burning in the Nether, the Hot table scorching, the Diving table spilling and the End moving
a table. Switching off the Battle Seeker locks its slot, and chests stop holding one after the next
/reload.
  • The interaction wheel follows the server.** Wash and Play used to show or hide based on your own
game's settings, even on a server set up differently. They follow the server's settings now, including
when the server has switched them off.
  • The settings screen tells you when it isn't the one in charge.** On a server, the Mod Menu screen
only changes your own game's copy of the settings. The server keeps its own, and that is what every
table reads — so a fuel cost changed there never showed up on the table. The screen now says so at
the top. Operators change the server's settings with /picnic.
  • A config file the mod can't read is no longer quietly replaced.** If
config/cobblemon_picnic.json has a typo, the mod says so — in the log, at the top of the settings
screen, and when you run /picnic reload — and leaves the file alone until you fix it. Before, it ran
on the defaults and wrote them over your values the next time any setting changed.
  • Pokémon no longer take damage around a picnic table.** The table's parts are solid blocks, and
the game treated them like a wall you can get stuck in, so a Pokémon that ended up with its head
inside one took damage every moment it stayed there. The table is still solid to walk on and bump
into. It just can't hurt anything anymore.
  • The store page says what a re-roll costs.** It presented the re-roll as a free button. It now
says every re-roll eats bread, that a stocked basket keeps the table fed, and that a short cooldown
stops spam.
  • Picnic tables are no longer pitch black on NeoForge.** Each table has an invisible block under the
one you see, and it has to sit on the see-through render layer. In 2.4.0 only Fabric put it there, so
on NeoForge that block drew as a solid black cube over the whole table.
  • Picnic tables are no longer pitch black on NeoForge.** Each table has an invisible block under the
one you see, and it has to sit on the see-through render layer. In 2.4.0 only Fabric put it there, so
on NeoForge that block drew as a solid black cube over the whole table.
The picnic table, rebuilt: its own basket beside it, one click per job, a screen you can read, and an
icon that shows the table you actually built. 🧺

> **Heads up — break and re-place your tables.** A picnic table is a **3x3** structure now, one cell
> wider and one deeper than before, because the basket has a cell of its own at the end of it. Tables
> already in your world keep working but were built to the old shape, so they have no basket.
>
> **The controls moved too.** Left-clicking a table used to re-roll; it mines the table now, like any
> other block. **Right-click the table to re-roll** — whatever you are holding — and **right-click the
> basket to open the screen**. The screen no longer opens from the table itself.

### Added
  • 🧺 **The table carries its own basket**, standing beside it on a cell of its own, drawn from the very
basket you crafted it with. A table built with a red basket and one built with a blue basket
look different, and the basket lands in the same place whichever way you place the table.
  • 🎨 **Dye the cloth with sneak + right-click.** A picnic table is two tables side by side and the dye
paints the one you clicked, so a table can be red on one half and blue on the other. The same
works on the table's basket and on a loose one, which keeps the bread inside. Wood never takes a dye,
and neither does a bench.
  • 🪵 **A table's inventory icon is the table you built** — its cloth, its wood, a bench per seat and its
basket, drawn as the structure it would place. Two tables made of different materials no longer
share one flat icon.
  • ⛏️ **Tables can be mined.** Better ones take longer: Basic, Advanced, then Expert — and the Diving,
Hot and Strange tables mine like the Expert they are a variant of.

### Changed
  • Two slots instead of one**: bread on the left, Battle Seeker on the right. They shared a
slot before, so loading a seeker cost you your fuel. A re-roll spends the table's own bread first and
then any loose basket within five blocks.
  • 🍞 **A better table is a bigger pantry.** The bread slot holds **one stack on a Basic table, three on
an Advanced one and five on an Expert** — more than a slot normally takes — so a good table can be
loaded once and left alone. The Diving, Hot and Strange tables hold five, like the Expert they are a
variant of.
  • The screen was redrawn**: taller, its controls on a dark panel, every label on it white. The old
dark-on-grey text was unreadable, and the controls were crammed against the inventory.
  • One click, one job.** The table re-rolls, the basket opens the screen, a bench seats you. Nothing is
decided by which face you hit or by what you happen to be holding.
  • 🧺 **All seven picnic baskets redrawn**. The wicker body is the same on every one, the way real
wicker is; the checked cloth over the lid is what carries the colour — and the lid is the face you see
with the basket sitting beside a table.

### Fixed
  • With LumyMon installed, our Battle Seeker no longer appears in the creative tab or in treasure chests,
so you stop finding two identical items. LumyMon's works in the slot exactly as ours did — it
always has — and a seeker you already owned keeps working.
  • Re-rolling no longer fights with mining: it moved off the left click entirely, which is what had
made a table cell impossible to break at all.
  • The "not enough space" message quoted the wrong footprint.

### Internal
  • The table's drawing was pulled out of the block-entity renderer so the inventory icon can reuse it,
with the resolved structure cached per distinct table. Dead code and a deprecated render-layer call
removed, and stale comments corrected — including a config tooltip and a startup log line that still
told players to left-click.
The picnic table, rebuilt: its own basket beside it, one click per job, a screen you can read, and an
icon that shows the table you actually built. 🧺

> **Heads up — break and re-place your tables.** A picnic table is a **3x3** structure now, one cell
> wider and one deeper than before, because the basket has a cell of its own at the end of it. Tables
> already in your world keep working but were built to the old shape, so they have no basket.
>
> **The controls moved too.** Left-clicking a table used to re-roll; it mines the table now, like any
> other block. **Right-click the table to re-roll** — whatever you are holding — and **right-click the
> basket to open the screen**. The screen no longer opens from the table itself.

### Added
  • 🧺 **The table carries its own basket**, standing beside it on a cell of its own, drawn from the very
basket you crafted it with. A table built with a red basket and one built with a blue basket
look different, and the basket lands in the same place whichever way you place the table.
  • 🎨 **Dye the cloth with sneak + right-click.** A picnic table is two tables side by side and the dye
paints the one you clicked, so a table can be red on one half and blue on the other. The same
works on the table's basket and on a loose one, which keeps the bread inside. Wood never takes a dye,
and neither does a bench.
  • 🪵 **A table's inventory icon is the table you built** — its cloth, its wood, a bench per seat and its
basket, drawn as the structure it would place. Two tables made of different materials no longer
share one flat icon.
  • ⛏️ **Tables can be mined.** Better ones take longer: Basic, Advanced, then Expert — and the Diving,
Hot and Strange tables mine like the Expert they are a variant of.

### Changed
  • Two slots instead of one**: bread on the left, Battle Seeker on the right. They shared a
slot before, so loading a seeker cost you your fuel. A re-roll spends the table's own bread first and
then any loose basket within five blocks.
  • 🍞 **A better table is a bigger pantry.** The bread slot holds **one stack on a Basic table, three on
an Advanced one and five on an Expert** — more than a slot normally takes — so a good table can be
loaded once and left alone. The Diving, Hot and Strange tables hold five, like the Expert they are a
variant of.
  • The screen was redrawn**: taller, its controls on a dark panel, every label on it white. The old
dark-on-grey text was unreadable, and the controls were crammed against the inventory.
  • One click, one job.** The table re-rolls, the basket opens the screen, a bench seats you. Nothing is
decided by which face you hit or by what you happen to be holding.
  • 🧺 **All seven picnic baskets redrawn**. The wicker body is the same on every one, the way real
wicker is; the checked cloth over the lid is what carries the colour — and the lid is the face you see
with the basket sitting beside a table.

### Fixed
  • With LumyMon installed, our Battle Seeker no longer appears in the creative tab or in treasure chests,
so you stop finding two identical items. LumyMon's works in the slot exactly as ours did — it
always has — and a seeker you already owned keeps working.
  • Re-rolling no longer fights with mining: it moved off the left click entirely, which is what had
made a table cell impossible to break at all.
  • The "not enough space" message quoted the wrong footprint.

### Internal
  • The table's drawing was pulled out of the block-entity renderer so the inventory icon can reuse it,
with the resolved structure cached per distinct table. Dead code and a deprecated render-layer call
removed, and stale comments corrected — including a config tooltip and a startup log line that still
told players to left-click.
Your picnic table is built out of exactly what you built it from, the three themed tables carry
their home with them, and the fetchball is something you can just throw. 🪵

> **Heads up:** a Hot table outside the Nether now sets fire to the ground around it and burns
> whatever stands near it, your own party included. It was harmless anywhere but the Nether before.
> The Strange table moves off on you everywhere except the End, and the Diving table no longer needs
> water to be placed — it brings its own.

### Added
  • 🪵 **Tables come in 11 woods.** A table is crafted from wool and planks, so now it is that wool
  • and* that wood: Spruce Red Table, Cherry Black Table, 176 in all. The oak ones keep the names
they always had, and every table already in your world is one of them.
  • 🍽️ **The picnic table is drawn from the very items you built it with** — the cloth and the wood of
the table you put in, right down to the rim of the tabletop, and **a separate bench per seat**.
Two benches of different woods come out as two different seats.
  • 🪑 **The bench you spend on an upgrade becomes the seat it adds.** Going Basic → Advanced → Expert
adds a third and a fourth seat, each in the wood of the bench you handed over.
  • 🔍 **Hold Shift on a picnic table** to read what it is made of: its table, basket, pot, campfire and
the bench at every seat. Two tables in a chest can be told apart without placing them.
  • 🧽 **Right-click a Pokémon with the poke-sponge** to wash it there and then, without opening the
interaction wheel. The wheel still works exactly as it did.
  • 🎾 **Throw the fetchball whenever you like.** No Pokémon to pick first, no table to stand at: it
flies where you are looking and **stays where it lands**. Walk over and pick it up and that is
that — but let one of your Pokémon fetch it and they bring it back to your hand, and that is worth
friendship. It waits on the ground indefinitely, so it still counts if you send someone out after
the throw. Water is no obstacle; lava is, and a Pokémon that would have to reach into it turns
around and goes back where it was standing.
  • 🔥 **The Hot table brings the Nether with it.** Away from the Nether it sets the ground alight
around itself and burns everything within 3 blocks, once a second — anyone sitting at it included.
It is fireproof wherever it stands, and it can be sunk into lava.
  • 🌊 **The Diving table brings the water with it.** Placed on dry land it fills the ring of blocks
around itself with water and lets it run; placed underwater it simply sits there. In the Nether it
goes up in flames on the spot.
  • 🪑 **Dining benches and tables are furniture again.** You can **sit on a bench**, and a row of
benches or a row of tables **joins up** into one long piece as you place them, instead of standing
there as separate blocks. Benches also waterlog properly.

### Changed
  • 🍳 **Nothing extra to gather.** The recipe is what it always was: basket, vivichoke, two tables,
campfire pot, two benches, campfire. The woods come from the tables and benches you already bring.
  • 🤝 **Handcrafted and CobbleFurnies furniture works in the recipe**, all of it: every CobbleFurnies
table including the dark variants, and Handcrafted's tables, dining benches and benches. The table
is drawn in whichever wood and cloth the one you used is made of.
  • 🧹 **With those mods installed, the duplicates step aside.** Handcrafted provides the dining
benches, so ours leave the creative tab; CobbleFurnies provides the coloured tables, so our oak
ones do too. The 160 wood-and-colour combinations stay, because nothing else provides them, and
nothing you already built ever disappears.
  • 🌌 **A table is restless wherever it does not belong.** The End moves any table that is not the
Strange one — the Diving and Hot tables included — and the Strange table is the one that will not
stay put anywhere else.
  • 🛋️ **A table from an older world keeps working.** It renders in oak with one bench for every seat,
which is exactly how it was drawn before.

### Fixed
  • 🔥 **Fire on a burning table sits on top of it** instead of clinging to its sides and edges. A
flame lit over a bench had nothing solid beneath it, and the game answers that by pasting the
flame onto whatever is next to it.
  • 🎨 **The item icons say which table they are.** They used to differ only by the tablecloth colour,
which stopped meaning anything once you got to pick the cloth — a red icon for a black table. The
three rungs now carry 1, 2 or 3 notches on the basket's handle, and the cloth in the icon is
neutral because it was never yours to promise.
  • 💬 **Two refusals printed their own message id** instead of a sentence, when washing or playing
without a good enough table nearby. They also now say what is actually wrong: those need an
  • Advanced** table, and standing next to a Basic one was never going to work.
Your picnic table is built out of exactly what you built it from, the three themed tables carry
their home with them, and the fetchball is something you can just throw. 🪵

> **Heads up:** a Hot table outside the Nether now sets fire to the ground around it and burns
> whatever stands near it, your own party included. It was harmless anywhere but the Nether before.
> The Strange table moves off on you everywhere except the End, and the Diving table no longer needs
> water to be placed — it brings its own.

### Added
  • 🪵 **Tables come in 11 woods.** A table is crafted from wool and planks, so now it is that wool
  • and* that wood: Spruce Red Table, Cherry Black Table, 176 in all. The oak ones keep the names
they always had, and every table already in your world is one of them.
  • 🍽️ **The picnic table is drawn from the very items you built it with** — the cloth and the wood of
the table you put in, right down to the rim of the tabletop, and **a separate bench per seat**.
Two benches of different woods come out as two different seats.
  • 🪑 **The bench you spend on an upgrade becomes the seat it adds.** Going Basic → Advanced → Expert
adds a third and a fourth seat, each in the wood of the bench you handed over.
  • 🔍 **Hold Shift on a picnic table** to read what it is made of: its table, basket, pot, campfire and
the bench at every seat. Two tables in a chest can be told apart without placing them.
  • 🧽 **Right-click a Pokémon with the poke-sponge** to wash it there and then, without opening the
interaction wheel. The wheel still works exactly as it did.
  • 🎾 **Throw the fetchball whenever you like.** No Pokémon to pick first, no table to stand at: it
flies where you are looking and **stays where it lands**. Walk over and pick it up and that is
that — but let one of your Pokémon fetch it and they bring it back to your hand, and that is worth
friendship. It waits on the ground indefinitely, so it still counts if you send someone out after
the throw. Water is no obstacle; lava is, and a Pokémon that would have to reach into it turns
around and goes back where it was standing.
  • 🔥 **The Hot table brings the Nether with it.** Away from the Nether it sets the ground alight
around itself and burns everything within 3 blocks, once a second — anyone sitting at it included.
It is fireproof wherever it stands, and it can be sunk into lava.
  • 🌊 **The Diving table brings the water with it.** Placed on dry land it fills the ring of blocks
around itself with water and lets it run; placed underwater it simply sits there. In the Nether it
goes up in flames on the spot.
  • 🪑 **Dining benches and tables are furniture again.** You can **sit on a bench**, and a row of
benches or a row of tables **joins up** into one long piece as you place them, instead of standing
there as separate blocks. Benches also waterlog properly.

### Changed
  • 🍳 **Nothing extra to gather.** The recipe is what it always was: basket, vivichoke, two tables,
campfire pot, two benches, campfire. The woods come from the tables and benches you already bring.
  • 🤝 **Handcrafted and CobbleFurnies furniture works in the recipe**, all of it: every CobbleFurnies
table including the dark variants, and Handcrafted's tables, dining benches and benches. The table
is drawn in whichever wood and cloth the one you used is made of.
  • 🧹 **With those mods installed, the duplicates step aside.** Handcrafted provides the dining
benches, so ours leave the creative tab; CobbleFurnies provides the coloured tables, so our oak
ones do too. The 160 wood-and-colour combinations stay, because nothing else provides them, and
nothing you already built ever disappears.
  • 🌌 **A table is restless wherever it does not belong.** The End moves any table that is not the
Strange one — the Diving and Hot tables included — and the Strange table is the one that will not
stay put anywhere else.
  • 🛋️ **A table from an older world keeps working.** It renders in oak with one bench for every seat,
which is exactly how it was drawn before.

### Fixed
  • 🔥 **Fire on a burning table sits on top of it** instead of clinging to its sides and edges. A
flame lit over a bench had nothing solid beneath it, and the game answers that by pasting the
flame onto whatever is next to it.
  • 🎨 **The item icons say which table they are.** They used to differ only by the tablecloth colour,
which stopped meaning anything once you got to pick the cloth — a red icon for a black table. The
three rungs now carry 1, 2 or 3 notches on the basket's handle, and the cloth in the icon is
neutral because it was never yours to promise.
  • 💬 **Two refusals printed their own message id** instead of a sentence, when washing or playing
without a good enough table nearby. They also now say what is actually wrong: those need an
  • Advanced** table, and standing next to a Basic one was never going to work.
Two new toys, two new dimensions to picnic in, a table that finally does what you click on, and a
re-roll that works on a mountain. 🏔️

### Added
  • 🔥 **Hot Picnic Table** — a picnic table that can live in the Nether, and the only one that can: it
never catches fire. A sideways upgrade off the Glamping table with a **netherite ingot**, and it can
be placed **only in the Nether**.
  • 🌌 **Strange Picnic Table** — the same step sideways with an **eye of ender**, placeable **only in the
End**, which no other table may enter at all. Same numbers as the Diving table: 12 Pokémon per
re-roll, a 64-block radius, 4 seats, 3 bread.
  • 🎾 **Fetchball** — a slime ball wrapped in leather and string. Use it for the "Play" interaction and
your Pokémon fetches it back **every single time**: it never splatters and it is never spent. Crafted
with string in the four corners, leather on the four sides and a slime ball in the middle. The plain
slime ball still works exactly as before, splatter chance and all.
  • 🧽 **Poke-sponge** — a permanent bath sponge. Use it for the "Wash" interaction and it is **never
consumed**, so one sponge washes a whole team forever. Crafted with water buckets in two opposite
corners, string in the other two, sponge (**wet or dry**) on the four sides and a slime ball in the
middle. The wet sponge still works and is still used up.
  • ⚙️ **Party deploy distance is configurable** — /picnic deploydistance <min> <max>, and in
  • Mod Menu → General**. Defaults to 4–7 blocks.
  • 🕊️ **Re-rolled Pokémon that can fly come out flying** — genuinely in flight, holding their altitude
for a few seconds before their own nature takes them wherever it wants. They appear 3 to 12 blocks
up, and a flier that spawned on ground **below you climbs to your own altitude**, so on a peak they
circle the table instead of sitting somewhere down the mountainside. Clear air always has the final
say, so nothing is parked inside the terrain. Tune it with /picnic flyingspawnlift <blocks> (0
keeps them grounded). This only moves what already spawned: **which** Pokémon a re-roll produces is
still Cobblemon's call alone, so natural rates, biome conditions and poke_snack bias are untouched.
  • 🔎 **/picnic stats takes filters** — player <name>, dimension <id>, species <name> and
shiny. Each replays the re-roll log and reports that slice on its own: how many re-rolls, what
came out of them, the shiny rate, and for shinies the species, level and coordinates of each one.
Open to everyone, like the plain summary.
  • ⏱️ **Wash and Play have cooldowns**, 3 seconds each by default and **counted per Pokémon** — look after
one and you can turn straight to the next, but you can't farm friendship off a single Pokémon.
/picnic washcooldown <seconds> and /picnic playcooldown <seconds>.

### Changed
  • 🖱️ **The picnic table's controls were split by mouse button**. **Right-click a table cell always
opens the GUI** now, whatever you are holding — no more shift-clicking for it, and no more accidental
re-rolls while you are just trying to load bread. **Left-click a table cell re-rolls.** Benches are
untouched: right-click to sit. To break the structure, hit a **bench** — table cells no longer take
mining damage, so a table can't be destroyed by the button that re-rolls it.
  • 🌄 **The re-roll now spawns around your table**. It used to hand the job to Cobblemon's own
player spawner, which drops its search box 16–64 blocks away in a random direction at **your own
altitude** — on a mountain top that box is thin air in nearly every direction, so the re-roll found
nowhere to spawn and gave up on its first empty pass. The search box is now placed **inside the
table's radius** (6 blocks out to the tier's own 32/48/64), and its **base corner is set down on the
ground** of the column it picked — the corner being exactly the point Cobblemon tests for solid
footing before it will use a box at all. A peak, a ledge and a slope all work now.
The search also **prefers ground close to your own altitude**, so standing on a summit fills the
summit rather than the valley 60 blocks below, and only settles for lower ground when there is
nothing else within reach. Underground and underwater re-rolls keep using your own altitude, so
caves and diving tables are unaffected.
  • 🐾 **Sitting down gives your party more room.** Party members now come out 4–7 blocks from the table
at scattered angles and land on solid ground, instead of a tight 2.5-block ring that boxed you in.
  • 🎾 **Play looks like a game of fetch.** The Pokémon **sprints** after the ball, re-aiming as it
bounces and rolls so it chases where the ball actually went, and only **walks back at a normal pace**
once it has it. It used to run to a fixed spot guessed at throw time and jog home at the same speed
either way.
  • 🧽 **Wash and Play only appear on the wheel when you're at a picnic.** The options are hidden unless a
table is in range, instead of being offered and then refused. Turning washrequirestable or
slimeballrequirestable off brings them back everywhere, as before.
  • 🔥 **An ordinary picnic table left in the Nether catches fire.** Every second it has a 30% chance of a
flame taking hold on one of its cells; from there it burns under the normal fire rules, so it can
still be put out. The Hot Picnic Table is immune, and is the way to hold a picnic down there.
  • 🌌 **No table may be placed in the End** except the Strange Picnic Table. The game says which table
you want instead of just refusing.

### Fixed
  • 🔁 **A re-roll no longer gives up after one unlucky pass**. A single empty search box ended the
whole attempt; it now keeps drawing new spots until it fills the order or exhausts its budget, and
tells you plainly when a spot genuinely has nowhere to spawn.
  • 📊 Re-roll statistics no longer miss Pokémon that spawned on ground well below the table.
Two new toys, two new dimensions to picnic in, a table that finally does what you click on, and a
re-roll that works on a mountain. 🏔️

### Added
  • 🔥 **Hot Picnic Table** — a picnic table that can live in the Nether, and the only one that can: it
never catches fire. A sideways upgrade off the Glamping table with a **netherite ingot**, and it can
be placed **only in the Nether**.
  • 🌌 **Strange Picnic Table** — the same step sideways with an **eye of ender**, placeable **only in the
End**, which no other table may enter at all. Same numbers as the Diving table: 12 Pokémon per
re-roll, a 64-block radius, 4 seats, 3 bread.
  • 🎾 **Fetchball** — a slime ball wrapped in leather and string. Use it for the "Play" interaction and
your Pokémon fetches it back **every single time**: it never splatters and it is never spent. Crafted
with string in the four corners, leather on the four sides and a slime ball in the middle. The plain
slime ball still works exactly as before, splatter chance and all.
  • 🧽 **Poke-sponge** — a permanent bath sponge. Use it for the "Wash" interaction and it is **never
consumed**, so one sponge washes a whole team forever. Crafted with water buckets in two opposite
corners, string in the other two, sponge (**wet or dry**) on the four sides and a slime ball in the
middle. The wet sponge still works and is still used up.
  • ⚙️ **Party deploy distance is configurable** — /picnic deploydistance <min> <max>, and in
  • Mod Menu → General**. Defaults to 4–7 blocks.
  • 🕊️ **Re-rolled Pokémon that can fly come out flying** — genuinely in flight, holding their altitude
for a few seconds before their own nature takes them wherever it wants. They appear 3 to 12 blocks
up, and a flier that spawned on ground **below you climbs to your own altitude**, so on a peak they
circle the table instead of sitting somewhere down the mountainside. Clear air always has the final
say, so nothing is parked inside the terrain. Tune it with /picnic flyingspawnlift <blocks> (0
keeps them grounded). This only moves what already spawned: **which** Pokémon a re-roll produces is
still Cobblemon's call alone, so natural rates, biome conditions and poke_snack bias are untouched.
  • 🔎 **/picnic stats takes filters** — player <name>, dimension <id>, species <name> and
shiny. Each replays the re-roll log and reports that slice on its own: how many re-rolls, what
came out of them, the shiny rate, and for shinies the species, level and coordinates of each one.
Open to everyone, like the plain summary.
  • ⏱️ **Wash and Play have cooldowns**, 3 seconds each by default and **counted per Pokémon** — look after
one and you can turn straight to the next, but you can't farm friendship off a single Pokémon.
/picnic washcooldown <seconds> and /picnic playcooldown <seconds>.

### Changed
  • 🖱️ **The picnic table's controls were split by mouse button**. **Right-click a table cell always
opens the GUI** now, whatever you are holding — no more shift-clicking for it, and no more accidental
re-rolls while you are just trying to load bread. **Left-click a table cell re-rolls.** Benches are
untouched: right-click to sit. To break the structure, hit a **bench** — table cells no longer take
mining damage, so a table can't be destroyed by the button that re-rolls it.
  • 🌄 **The re-roll now spawns around your table**. It used to hand the job to Cobblemon's own
player spawner, which drops its search box 16–64 blocks away in a random direction at **your own
altitude** — on a mountain top that box is thin air in nearly every direction, so the re-roll found
nowhere to spawn and gave up on its first empty pass. The search box is now placed **inside the
table's radius** (6 blocks out to the tier's own 32/48/64), and its **base corner is set down on the
ground** of the column it picked — the corner being exactly the point Cobblemon tests for solid
footing before it will use a box at all. A peak, a ledge and a slope all work now.
The search also **prefers ground close to your own altitude**, so standing on a summit fills the
summit rather than the valley 60 blocks below, and only settles for lower ground when there is
nothing else within reach. Underground and underwater re-rolls keep using your own altitude, so
caves and diving tables are unaffected.
  • 🐾 **Sitting down gives your party more room.** Party members now come out 4–7 blocks from the table
at scattered angles and land on solid ground, instead of a tight 2.5-block ring that boxed you in.
  • 🎾 **Play looks like a game of fetch.** The Pokémon **sprints** after the ball, re-aiming as it
bounces and rolls so it chases where the ball actually went, and only **walks back at a normal pace**
once it has it. It used to run to a fixed spot guessed at throw time and jog home at the same speed
either way.
  • 🧽 **Wash and Play only appear on the wheel when you're at a picnic.** The options are hidden unless a
table is in range, instead of being offered and then refused. Turning washrequirestable or
slimeballrequirestable off brings them back everywhere, as before.
  • 🔥 **An ordinary picnic table left in the Nether catches fire.** Every second it has a 30% chance of a
flame taking hold on one of its cells; from there it burns under the normal fire rules, so it can
still be put out. The Hot Picnic Table is immune, and is the way to hold a picnic down there.
  • 🌌 **No table may be placed in the End** except the Strange Picnic Table. The game says which table
you want instead of just refusing.

### Fixed
  • 🔁 **A re-roll no longer gives up after one unlucky pass**. A single empty search box ended the
whole attempt; it now keeps drawing new spots until it fills the order or exhausts its budget, and
tells you plainly when a spot genuinely has nowhere to spawn.
  • 📊 Re-roll statistics no longer miss Pokémon that spawned on ground well below the table.
The Shiny Aura finally tells you what it's doing. ✦

### Added
  • 🔁 **A master switch for the spawn re-roll.** Turn it off and right-clicking a table never despawns
or spawns anything, and costs no bread — while seats, the shiny aura, baskets, the Battle Seeker and
the care interactions all keep working. Handy for servers that want the picnic furniture and the
social side without the spawn manipulation. In **Mod Menu → General → "Spawn re-roll enabled"**, or
/picnic reroll <true|false>.

### Fixed
  • 🪑 **Placed dining benches are bench-height again.** They had no collision box of their own, so the
game treated them as a full cube: standing on one — or sending a Pokémon onto it — left you hovering
a whole block above the seat. They now use the model's real shape (seat top at 9/16).

### Changed
  • ⌨️ **One short command: /picnic.** /cobblemonpicnicconfig and /cobblemonpicnicstats are
  • gone** (no aliases — update any command blocks, macros or server scripts), and the set keyword
went with them:

``
/picnic # every setting — open to everyone now
/picnic light 12 # was /cobblemonpicnicconfig set light 12
/picnic light default # NEW: put one setting back the way it shipped
/picnic spawncap glamping 16
/picnic stats # was /cobblemonpicnicstats
/picnic reload /picnic reset
`

  • default works on every attribute**, so you never have to look up a shipped value. Reading the
settings no longer needs operator rank — the numbers you're playing under aren't a secret.
  • ✦ **The Shiny Aura is now a plain multiplier on your shiny odds.** A **full table doubles them**
(×2.00), and every seat is worth an equal share of that bonus, so a 4-seat table goes
  • ×1.25 → ×1.50 → ×1.75 → ×2.00** as people sit down. It multiplies whatever odds you already
have — server shiny rate, Shiny Charm — instead of overriding them, and it can never lower them.
Tables with fewer seats simply stop earlier (a Basic table tops out at ×1.50).
  • ✦ **You can see it.** The HUD readout now reads **"Shiny Aura ✦ ×1.50 odds"** with
  • "2/4 seated · 1 in 5461"** under it — the real server-side numbers, pushed to your client, not a
guess from your own config file. Sitting down (or a friend joining you) also prints one line in
chat telling you the new multiplier and what it works out to.

### Removed
  • ⚠️ **aurabase and auramax are gone**, replaced by the single setting **auramultiplier**
(/picnicconfig set auramultiplier 2.0, or the **"Shiny odds at a full table (×)"** field
in Mod Menu, which draws the whole ladder under it). Those two options set an *absolute* shiny
probability that replaced your odds outright — impossible to reason about, and it quietly ignored
every other shiny bonus you had. **Existing configs pick up the new default (×2.00) on first load.**
Setting the multiplier to
1.0 turns the aura off just like shinyaura false`.
The Shiny Aura finally tells you what it's doing. ✦

### Added
  • 🔁 **A master switch for the spawn re-roll.** Turn it off and right-clicking a table never despawns
or spawns anything, and costs no bread — while seats, the shiny aura, baskets, the Battle Seeker and
the care interactions all keep working. Handy for servers that want the picnic furniture and the
social side without the spawn manipulation. In **Mod Menu → General → "Spawn re-roll enabled"**, or
/picnic reroll <true|false>.

### Fixed
  • 🪑 **Placed dining benches are bench-height again.** They had no collision box of their own, so the
game treated them as a full cube: standing on one — or sending a Pokémon onto it — left you hovering
a whole block above the seat. They now use the model's real shape (seat top at 9/16).

### Changed
  • ⌨️ **One short command: /picnic.** /cobblemonpicnicconfig and /cobblemonpicnicstats are
  • gone** (no aliases — update any command blocks, macros or server scripts), and the set keyword
went with them:

``
/picnic # every setting — open to everyone now
/picnic light 12 # was /cobblemonpicnicconfig set light 12
/picnic light default # NEW: put one setting back the way it shipped
/picnic spawncap glamping 16
/picnic stats # was /cobblemonpicnicstats
/picnic reload /picnic reset
`

  • default works on every attribute**, so you never have to look up a shipped value. Reading the
settings no longer needs operator rank — the numbers you're playing under aren't a secret.
  • ✦ **The Shiny Aura is now a plain multiplier on your shiny odds.** A **full table doubles them**
(×2.00), and every seat is worth an equal share of that bonus, so a 4-seat table goes
  • ×1.25 → ×1.50 → ×1.75 → ×2.00** as people sit down. It multiplies whatever odds you already
have — server shiny rate, Shiny Charm — instead of overriding them, and it can never lower them.
Tables with fewer seats simply stop earlier (a Basic table tops out at ×1.50).
  • ✦ **You can see it.** The HUD readout now reads **"Shiny Aura ✦ ×1.50 odds"** with
  • "2/4 seated · 1 in 5461"** under it — the real server-side numbers, pushed to your client, not a
guess from your own config file. Sitting down (or a friend joining you) also prints one line in
chat telling you the new multiplier and what it works out to.

### Removed
  • ⚠️ **aurabase and auramax are gone**, replaced by the single setting **auramultiplier**
(/picnicconfig set auramultiplier 2.0, or the **"Shiny odds at a full table (×)"** field
in Mod Menu, which draws the whole ladder under it). Those two options set an *absolute* shiny
probability that replaced your odds outright — impossible to reason about, and it quietly ignored
every other shiny bonus you had. **Existing configs pick up the new default (×2.00) on first load.**
Setting the multiplier to
1.0 turns the aura off just like shinyaura false`.
Picnics just got a glow-up — lunchtime move lessons, a calmer table, and fresh bread prices. 🧺✨

### Added
  • 🎓 **Picnic move lessons** — every reroll now has a small chance (**5%**) that two of your party
Pokémon bond over lunch and one teaches the other a move. It's always a move that Pokémon can
actually learn — never an illegal one — so it's a fun little surprise, not a cheat.
New setting: tmteachchance <0..1> (set to 0 to switch it off).
  • ⏲️ **Reroll cooldown** — the table takes a short breather (**5 seconds** by default) between rerolls,
so it can't be spammed. Ask too soon and it politely tells you how long to wait — and no bread is
wasted. Slipping over to another table won't dodge the wait either.
New setting: rerollcooldown <seconds> (set to 0 to remove the wait).

### Changed
  • 🍞 **New bread prices** — a reroll now costs **7 / 5 / 3 / 3** bread (Basic / Camping / Glamping /
Diving): the fancier the table, the cheaper the reroll. Already have a config saved? Run
/cobblemonpicnicconfig reset to pick up the new prices.
Picnics just got a glow-up — lunchtime move lessons, a calmer table, and fresh bread prices. 🧺✨

### Added
  • 🎓 **Picnic move lessons** — every reroll now has a small chance (**5%**) that two of your party
Pokémon bond over lunch and one teaches the other a move. It's always a move that Pokémon can
actually learn — never an illegal one — so it's a fun little surprise, not a cheat.
New setting: tmteachchance <0..1> (set to 0 to switch it off).
  • ⏲️ **Reroll cooldown** — the table takes a short breather (**5 seconds** by default) between rerolls,
so it can't be spammed. Ask too soon and it politely tells you how long to wait — and no bread is
wasted. Slipping over to another table won't dodge the wait either.
New setting: rerollcooldown <seconds> (set to 0 to remove the wait).

### Changed
  • 🍞 **New bread prices** — a reroll now costs **7 / 5 / 3 / 3** bread (Basic / Camping / Glamping /
Diving): the fancier the table, the cheaper the reroll. Already have a config saved? Run
/cobblemonpicnicconfig reset to pick up the new prices.
### Fixed
  • Fabric: using a Picnic Table no longer crashes the server** (NoSuchMethodError: PokemonEntity.getId()). The multiloader Fabric jar wasn't remapping the vanilla methods Cobblemon types inherit (getId/discard), so the re-roll's despawn step crashed instantly. (NeoForge was unaffected.) This is the first working Fabric build to also carry the **1.25.1** recall-keybind fix. *(Reported on Discord.)*
### Fixed
  • Fabric: using a Picnic Table no longer crashes the server** (NoSuchMethodError: PokemonEntity.getId()). The multiloader Fabric jar wasn't remapping the vanilla methods Cobblemon types inherit (getId/discard), so the re-roll's despawn step crashed instantly. (NeoForge was unaffected.) This is the first working Fabric build to also carry the **1.25.1** recall-keybind fix. *(Reported on Discord.)*
### Fixed
  • The "Recall Party" keybind no longer clashes with Cobblemon's controls.** It defaulted to **R** - Cobblemon's own send-out/recall key - so pressing R (e.g. when entering a battle) recalled your whole party, and on the client it only removed the models, leaving battles running with invisible Pokemon. The keybind is now **unbound by default** (assign one in Controls if you want it), and the party recall **never touches a Pokemon that's in a battle**. *(Reported on Discord.)*
  • NeoForge build of 1.25.0** — same features as the Fabric build.

### Added
  • Config: protect rare wild Pokémon from the re-roll despawn** — four independent, **opt-in**
(default off) toggles so a re-roll keeps valuable wild Pokémon: protectShiny, protectLegendary,
protectMythical, protectUltraBeast (/cobblemonpicnicconfig set protect… <true|false>).
  • Peaceful picnic (disableSeatedAggro, default ON)** — while someone is seated at a picnic table,
hostile mobs within a configurable radius (seatedRepelRadius, default 30 blocks) lose their target
and **flee** the table, like a creeper bolting from a cat. Both are editable via the command **and**
the Mod Menu screen (every command option now has a matching Mod Menu entry).

### Fixed
  • Bundled furniture no longer renders as purple/magenta blocks.** Two causes, both fixed:
(a) the colored tables, benches and baskets weren't on the cutout render layer, so transparent texture
pixels showed as opaque magenta; (b) the **bench models failed to load entirely** — their imported
source used ±5° element rotations, which vanilla rejects (only ±45/±22.5/0 are allowed), so they fell
back to the missing-texture. Registered the furniture on cutout and snapped the bench rotations to 0.
  • Picnic basket break particles now match the basket's color.** The shared model hard-coded the red
basket texture as the particle, so every basket spat red particles.
  • Picnic basket names display correctly** instead of the raw block.cobblemon_picnic.… key (the
block translation keys were missing — only item keys existed, but baskets are blocks).
  • Recall Party no longer crashes when the keybind is pressed.** The empty recall_party packet was
encoded with StreamCodec.unit against a throwaway template instance, so the client failed to
  • encode* the packet (IllegalStateException: Can't encode RecallPartyPayload) and died with a
"Packet handling error" the instant the keybind was pressed. The payload now compares equal across
instances so it encodes correctly. (The server-side recall is also guarded defensively.)
  • Re-rolls no longer leave behind frozen "ghost" Pokémon.** Despawned wild Pokémon are removed
server-side, but on a mass despawn with culling mods (EntityCulling / MoreCulling / Sodium) clients
could keep a frozen model on screen until a restart. The re-roll now also sends an explicit
remove-entities packet to nearby players so they vanish immediately.

### Changed
  • Picnic baskets now store unlimited bread** (the 64-bread cap is gone).
### Added
  • Config: protect rare wild Pokémon from the re-roll despawn** — four independent, **opt-in**
(default off) toggles so a re-roll keeps valuable wild Pokémon: protectShiny, protectLegendary,
protectMythical, protectUltraBeast (/cobblemonpicnicconfig set protect… <true|false>).
  • Peaceful picnic (disableSeatedAggro, default ON)** — while someone is seated at a picnic table,
hostile mobs within a configurable radius (seatedRepelRadius, default 30 blocks) lose their target
and **flee** the table, like a creeper bolting from a cat. Both are editable via the command **and**
the Mod Menu screen (every command option now has a matching Mod Menu entry).

### Fixed
  • Bundled furniture no longer renders as purple/magenta blocks.** Two causes, both fixed:
(a) the colored tables, benches and baskets weren't on the cutout render layer, so transparent texture
pixels showed as opaque magenta; (b) the **bench models failed to load entirely** — their imported
source used ±5° element rotations, which vanilla rejects (only ±45/±22.5/0 are allowed), so they fell
back to the missing-texture. Registered the furniture on cutout and snapped the bench rotations to 0.
  • Picnic basket break particles now match the basket's color.** The shared model hard-coded the red
basket texture as the particle, so every basket spat red particles.
  • Picnic basket names display correctly** instead of the raw block.cobblemon_picnic.… key (the
block translation keys were missing — only item keys existed, but baskets are blocks).
  • Recall Party no longer crashes when the keybind is pressed.** The empty recall_party packet was
encoded with StreamCodec.unit against a throwaway template instance, so the client failed to
  • encode* the packet (IllegalStateException: Can't encode RecallPartyPayload) and died with a
"Packet handling error" the instant the keybind was pressed. The payload now compares equal across
instances so it encodes correctly. (The server-side recall is also guarded defensively.)
  • Re-rolls no longer leave behind frozen "ghost" Pokémon.** Despawned wild Pokémon are removed
server-side, but on a mass despawn with culling mods (EntityCulling / MoreCulling / Sodium) clients
could keep a frozen model on screen until a restart. The re-roll now also sends an explicit
remove-entities packet to nearby players so they vanish immediately.

### Changed
  • Picnic baskets now store unlimited bread** (the 64-bread cap is gone).
### Added
  • Picnic baskets are placeable and store bread**: right-click a placed basket with bread to deposit,
with an empty hand to withdraw. Stored bread drops when the basket is broken.
  • Picnic tables draw fuel from nearby baskets**: if a table's own fuel slot is short, the reroll
pulls the required bread from picnic baskets within 5 blocks that hold enough.

### Changed
  • Any wood bench** can be used to craft the picnic tables (recipes now use a dining_benches tag).
  • Picnic tables render in the cloth color and bench wood they were crafted with** (the variant system
drives the table color and bench wood; falls back to the tier color / oak). Combined with the full
furniture set, you can now make tables in any cloth color + any bench wood.
## [1.21.0] - 2026-06-14

### Added
  • Self-contained crafting**: the picnic table's crafting ingredients now live inside the mod, so
the tables can be crafted **without CobbleFurnies, Handcrafted, or LumyMon**:
  • red_table / green_table / yellow_table / blue_table — craftable, placeable furniture
(3 wool + 2 oak planks), reusing the bundled table models.
  • oak_dining_bench — craftable, placeable furniture (oak slabs + planks → 2), bundled bench model.
  • apricorn_box — item crafted from Cobblemon apricorn items (replaces lumymon:apricorn_box).
  • The picnic table recipes and the cobblemon_picnic:tables tag now point at these mod-owned items;
only Cobblemon and vanilla ingredients remain otherwise.

## [1.20.1] - 2026-06-14

### Fixed
  • Two adjacent tables**: breaking one table no longer destroys a second table touching it. The
teardown now only removes cells whose stored offset points back to the same origin (the
"break one, both vanish" bug).

### Changed
  • License switched to a custom **"If you make money, I make money"** license (see LICENSE).
  • Added README.md (English) and testing.md (per-version test checklist, English); initialized a
git repository for the project.

## [1.20.0] - 2026-06-13

### Added / Changed
  • Standalone render (independent of CobbleFurnies/Handcrafted)**: the table and bench models,
textures, and blockstates were **imported into the mod's own namespace** (cobblemon_picnic) and
are drawn via the mod's own render-only blocks. Previously, without those mods the table was
  • invisible**; now it renders on its own.
  • Color by tier**: Basic=red, Camping=green, Glamping=yellow, Diving=blue (table and particles).
  • Particles on hit/break** are now **tinted to the tier's color** (dedicated particle texture per
tier).
  • Mod icon**: the supplied logo (cobblemon-picnic-logo.png) is used as icon.png.
  • Test environment changed to ...COBBLEVERSE - Pokemon Adventure [Cobblemon]\ (without (2)).

### Notes
  • The east/west rotation ("autorotate") was the facing sync bug already fixed in 1.19.1.
  • The borrowed "variants" system was deprecated for rendering (color is now fixed per tier).

## [1.19.1] - 2026-06-06

### Fixed
  • Tables facing east/west**: rendering and functional cells were scrambled because the table's
facing **was not synced to the client** (the client defaulted to NORTH). North/south happened
to match by chance; east/west did not. The BlockEntity now sends its state to the client
(getUpdateTag/getUpdatePacket + update on placement).

### Changed
  • The aura particle ring is **~50% wider**.

## [1.19.0] - 2026-06-06

### Added
  • Shiny Aura Toggle**: Full feature toggle (odds + buff + particles) via Mod Menu and /cobblemonpicnicconfig set shinyaura <true|false>.
  • HUD Aura Level**: "Shiny Aura ✦ N" indicator shown when seated; now displays level 1.
  • Flammable Tables**: Wooden tables are now flammable.

### Changed
  • Aura Particles**: Increased height and expanded ring radius for better visibility.


## [1.18.0] - 2026-06-06

### Added
  • Mod Menu Integration**: Full configuration GUI for all parameters.
  • Stats Command**: /cobblemonpicnicstats to track rerolls, spawns, shiny/legendary ratios, snacks, and species rarity.
  • UI Placeholders**: Dimmed icons for bread/Battle Seeker in empty fuel slots.
  • Anti-Spam**: Added 0.5s cooldown to "play catch" with slimeballs.

### Changed
  • Aura Location**: Shiny aura now centers on the table instead of the player.
  • HUD Buff**: Added a visible *Shiny Aura* status effect icon while seated.
  • GUI Polish**: Segmented inventory slots and fixed seat capacity (no longer configurable).


## [1.17.0] - 2026-06-05

### Added / Changed
  • Visual Aura**: Active shiny aura now renders as a rotating ring of particles around the table.
  • Refined GUI**: Improved panel design with a clear N / max counter and "Free" fuel labels.


## [1.16.1] - 2026-06-03

### Added
  • Configurable Level Gap**: Added trainerLevelGap (default 8) via command: /cobblemonpicnicconfig set trainerlevelgap <n>.
## 1.16.1
  • Configurable Battle Seeker**: Added trainerLevelGap to configuration (default 8) to control the allowed level difference for summoned trainers.

## 1.16.0
  • Appropriate Level Trainers**: New config option spawnAppropriateLvlTrainer (default TRUE). When enabled, the Battle Seeker will attempt to summon a trainer with a team level matching your active party's average level (±8).

## 1.15.1
  • Improved Combat Flow**: The summoned trainer now spawns 12+ blocks away, facing the player, and no longer initiates battle automatically—you choose when to engage.
  • Trainer Persistence**: Each reroll will now despawn the previous trainer from that table, ensuring only one active trainer per table.

## 1.15.0
  • Battle Seeker Integration**: Added Phase 4 support for the **LumyMon Battle Seeker**. Placing it in the fuel slot of a Glamping table now summons a trainer from the RCT (Radical Cobblemon Trainers) roster to battle you.

## 1.14.0
  • Data Analytics**: Added automatic logging of reroll events. Stats are tracked in cobblemon_picnic_stats.json, with detailed granular events (spawned/despawned Pokémon data, IVs, natures, etc.) saved in cobblemon_picnic_events.jsonl.
Cobblemon Picnic Icon
Download Cobblemon Picnic
Select game version
Select platform