Cobblebase
Palworld-style base management for Cobblemon โ assign jobs, watch Pokemon work, build the ultimate base.
โจ Overview
Cobblebase transforms the Pasture Block into a living, breathing Pokemon base. Every Pokemon species has hand-crafted job skills and proficiency levels โ not based on type, but on identity. A Charizard fills lava cauldrons and guards your base. An Alakazam mentors your entire team. A Mew recruits legendaries.
- ๐ 1,367 Pokemon with unique skill assignments (996 hand-crafted + 371 Fakemon)
- โก 43 jobs across 10 categories
- โญ Proficiency 1-5 per skill โ faster cooldowns, better loot, wider range
- ๐ฎ Tabbed GUI โ Skills, Buffs, Logs, and Discovery panels
- ๐ง Admin GUI โ Edit species skills, jobs config, and loot tables live in-game (
/cobblebase admin) - ๐ฑ Loot Editor โ change item drops for any job without writing a datapack, with autocomplete and
#tagbulk-add - ๐ Multiplayer ready โ Pasture lock, owner-only notifications
- ๐ก๏ธ Fully customizable via Cloth Config and JSON datapacks
๐ Online Tools
- ๐ Full Documentation โ Guides for every feature
- ๐ Species Database โ Browse & edit all 1,367 Pokemon
- ๐ง Datapack Generator โ Create custom skill datapacks
๐พ Jobs
| Category | Jobs |
|---|---|
| ๐พ Gathering | Harvester, Fishing, Mining, Producer |
| ๐ Finding | Alchemist, Pharmacist, Architect, Excavator, Botanist, Collector, Scholar, Chef, Trainer, Armorer, Prospector, Smith |
| โ๏ธ Combat | Guard |
| ๐ Support | Healer, Mentor |
| โจ Buffs | Speed, Strength, Resistance, Night Vision, Water Breathing, Jump, Haste, Saturation, Aura Boost |
| ๐ Legendary | Lucky Charm (shiny boost), Growth Aura, Extinguisher |
| ๐ฆ Logistics | Item Gatherer |
| ๐ญ Exploration | Scout |
| ๐ฟ Environmental | Irrigator, Lava/Water/Snow Fill, Furnace Fuel, Brew Fuel |
| ๐ค Recruiting | Friend Recruiter, Legendary Recruiter |
๐ ๏ธ In-Game Admin GUI
Open with /cobblebase admin. OP-only.
- Species tab โ edit any species' skill set, search the full registry, sort by Pokedex number / A-Z / Z-A, filtered to mons your server actually has loaded
- Jobs tab โ per-job cooldown, search radius, and enable/disable. Compact category sidebar with hover tooltips for every job
- Loot tab โ edit any bundled loot table live. Per-job sidebar with rarity tabs (Common / Uncommon / Rare / Ultra Rare), item icon preview, autocomplete suggestions for item ids and item tags, bulk add via
#namespace:tag(e.g.#c:ores,#minecraft:logs), on/off toggle for default items, save / reset - Wiki tab โ quick links to docs, the species database, the datapack generator, and the Discord
All edits persist in the world save and broadcast live to other players โ no restart needed.
๐ต Immersion
- ๐ถ Idle wandering (15 block radius)
- ๐ Working mons sleep at night and wake up at sunrise to resume their job
- ๐ Mute button + cry cooldown (60s per Pokemon)
- ๐ Stuck detection + escape from solid blocks (clipping recovery)
- ๐ Leaves escape โ Pokemon drop to ground from tree canopies
๐จ Supported Fakemon Packs
Built-in skill assignments for 6 Fakemon packs (371 species):
- ๐พ Lively Mons (59)
- ๐ฅ Alatias AFP (87)
- โก Laser's Pack (53)
- ๐ญ Wilbayan's Fakemons (37)
- ๐ถ Baby Legends (22) โ baby forms of legendaries, inherit their evolution target's skills with prof -1
- ๐ฝ Extra Paradox Mons (27) โ paradox alternates with ultra-rare-tier curated skills
Not using one of these? Use /cobblebase admin to assign skills manually โ or build a datapack with the generator.
๐ฅ Requirements
- Minecraft 1.21.1 ยท Cobblemon 1.7.0+ ยท Cloth Config (required)
- Fabric Language Kotlin (Fabric) or Kotlin for Forge 5.x (NeoForge)
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 |
### ๐ Fixed
- Server crash on startup with **Cobblemon 1.8.0** (
NoSuchMethodError: SpawnDetail.getBucket()). Cobblemon 1.8 changed its spawn bucket API, which broke Cobblebase's spawn data loading.
### ๐ง Changed
- Cobblebase now requires **Cobblemon 1.8.0 or newer**.
### โ ๏ธ Still on Cobblemon 1.7.x?
Keep using **Cobblebase 2.0.0**. This update only works with Cobblemon 1.8+.
### โค๏ธ Thanks
Big thanks to **Yuri-Almir-Pinto** for contributing the fix!
- Requirements:** Minecraft 1.21.1 ยท Cobblemon 1.8.0+ ยท Cloth Config ยท Fabric Language Kotlin (Fabric) / Kotlin for Forge (NeoForge)
### ๐ Fixed
- Server crash on startup with **Cobblemon 1.8.0** (
NoSuchMethodError: SpawnDetail.getBucket()). Cobblemon 1.8 changed its spawn bucket API, which broke Cobblebase's spawn data loading.
### ๐ง Changed
- Cobblebase now requires **Cobblemon 1.8.0 or newer**.
### โ ๏ธ Still on Cobblemon 1.7.x?
Keep using **Cobblebase 2.0.0**. This update only works with Cobblemon 1.8+.
### โค๏ธ Thanks
Big thanks to **Yuri-Almir-Pinto** for contributing the fix!
- Requirements:** Minecraft 1.21.1 ยท Cobblemon 1.8.0+ ยท Cloth Config ยท Fabric Language Kotlin (Fabric) / Kotlin for Forge (NeoForge)
A full UI overhaul, the long-awaited per-pasture settings, and an end-to-end
NeoForge port. Everything since 1.5 has been consolidated into one release
to mark the shift from "growing helper mod" to "feature-complete platform."
## Per-Pasture Settings & Base Settings Modal
The biggest single addition. Each pasture owner now controls their own
working radius and downward-scan reach inside admin-defined caps, plus a
new access mode that gates who else can interact with their pasture's UI.
- Base Settings button** โ bottom-right of every Cobblebase screen. Opens
an access pill that cycles through ๐ Private / ๐ View-Only / ๐ Public.
- Per-pasture state** persisted in
<world>/cobblebase_pasture_settings.json.
- Owner gate** โ only the pasture's recorded Cobblemon
ownerId(or an
BaseManager.canEditPasture revalidatesevery C2S packet, so a tampered client can't write.
- Admin caps split** โ the single "Pasture Range" / "Below-Pasture Reach"
[min, max];legacy single-value behaviour preserved by defaulting overrides to MAX.
- Every active block-scanning job (Harvester, Gatherer, Builder, Supplier,
Guard, Mining, EggHatcher, GenericLoot, Craftsman) reads the per-pasture
value, not just the admin max. Auras / passive buffs stay on their own
per-skill JSON radius (balance-tuned).
## Show-Radius Wireframe โ Now Server-Broadcast
RadiusVisible is the new server-side set of pastures whose wireframe iscurrently shown. Toggling the Show-Radius button sends a C2S packet; the
server validates ownership and broadcasts the new set to every connected
player. Result: when a pasture owner enables their radius box, every
nearby player sees it simultaneously instead of just themselves. In-memory
only โ cleared on server restart, since wireframes are diagnostic, not
world state.
## Harvester Downward Reach
- Previously the harvest scan only checked Y at the pasture level and
for (y in 0..radius)), which hid apricorns and berries oncliff-edge or stair-garden trees that grow a few blocks below the
pasture block.
- The Y loop is now asymmetric: full
radiusupward (tall berry bushes,
belowPastureReach downward โ admin- andowner-configurable, default 6. Enough for stairs and small cliffs;
nowhere near deep enough to drag mons into caves under the base.
- Same buffer applies to every block-scanning executor's Y loop.
## Pasture Range = Real Cap For Every Active Job
The admin's Pasture Range slider is now the hard cap for everything an
active job does โ scan range AND idle wander AND safety-teleport floor.
Auras / passive buffs are intentionally exempt so balance-tuned effects
keep their JSON-defined reach. The Show-Radius wireframe is now the
literal truth of where work happens, not an approximation.
## Pasture-Tab Redesign
The Pokemon โ Pasture sub-tab was rebuilt around three goals: see more
rows without scrolling, kill the "ragged silhouette" from
variable-width chips, and bring the active-skill stand-out front and centre.
- Hero active chip** โ the assigned skill renders larger and tinted by
to look.
- Uniform chip height** between active and available (no more
- Row 18 px** so 10+ rows fit on screen without scrolling.
- Sprites slightly bigger, names slightly smaller**; row layout brings
- New Relax column** between Pokemon and Skills (icon-only zZz button).
- Auto-Assign Best button** โ Pasture sub-tab only, single click
## Skill Chips Polish
Every chip in the Skills view got rebuilt:
- Alphabetical sort** (sortedBy name.lowercase) โ the previous prof-DESC
- Watermark-large job icon** at the chip's left edge, vertically centred.
- 2-second hover tooltip** with the skill's description.
- Long-name auto-shrink** โ chips with > 11-char names scale the text
- Drop-shadow on prof stars** so they remain readable against any chip
- Uniform width** (60 px) โ no more dynamic 42โ64 px range that made
- Job icons revamped** for semantic match โ Healer โ Totem of Undying,
Haste Boost โ Golden Pickaxe, Jump Boost โ Slime Block, Aura Boost โ Beacon.
## Bottom Bar + Close Button + Footer
- Top-right X close button** on every Cobblebase + Admin screen.
- Persistent bottom bar** (Discord, Mute, Radius, Admin, Base Settings)
toggle.
BOTTOM_BAR_H = 14** (was 20). Sub-panels' 18-px dead zone above the
- Bottom bar uniform height** across all tabs.
- Radius toggle no longer closes the GUI** on click โ flip ON/OFF
## NeoForge Parity Port
Cobblebase 2.0 ships in full feature parity on NeoForge. Every Fabric
panel, packet codec, mixin equivalent, and renderer has a NeoForge
counterpart wired through the same common code path. NeoForge users get
the same Pasture redesign, Base Settings modal, per-pasture overrides,
admin GUI, and Workshop / Hatchery panels.
## Admin GUI
- Server Settings tab** โ real slider with default-value tick + โป reset
Below-Pasture Reach. Working-cap slider (max simultaneously working
Pokemon per pasture; 0 = unlimited).
- Job-disabled hides its tab** โ admin disables a job, the corresponding
- Admin โ Jobs โ Craftsman โ Recipes** tab โ enable/disable individual
## Hatchery + Workshop
- HatcheryPanel** now uses UiTokens for every padding and font scale (3
- Idle-state message** โ when no eggs are in the box, the Active Hatchers
"assign the egg hatcher" hint.
- Egg-orphan periodic sweep** every cleanup interval โ floating egg
ItemDisplay entities surviving across restarts are now purgedwhenever the world re-loads, matching by display custom-name **or** by
held ItemStack type. No more pile-up of un-pickupable eggs in the
overworld.
- Egg ItemDisplay hold position** โ eggs render in front of the
- WorkshopPanel** also tokenised; Workshop sub-tabs renamed and laid
## Logs Tab
- Match by pastureId** instead of geometric-nearest pasture โ fixes the
- Per-job colour palette** (
JobColorsis the single source of truth).
same hue.
- Full-size Pokemon sprite** (
renderIconByName16 px) in 14-px rows โ
- Drop zebra striping** โ uniform base + per-action tint stacked on
+ tint combinatorial confusion).
## Buffs Tab
- Passive dedupe** โ only the highest-prof mon per buff actually
- Per-buff name colour** matches the effect it applies โ Speed reads
- Meaningful effect descriptions** for every job. Diving, Builder, and
"Diving for underwater treasure", "Building structures from chest
materials", "Crafting items from chest materials" etc.
## Pasture Mob Movement
- Idle wander = admin Pasture Range** โ mons no longer cluster near
- Safety-teleport** has an admin-radius floor so mons can be pulled
- Tether resize REMOVED** โ the previous attempt to shrink Cobblemon's
PC the moment they were outside the new (smaller) box. Cobblemon's
default 64-block tether is honoured.
## UiTokens Design System
New
UiTokens.kt centralises sizes that used to be scattered acrossevery panel. Three text scales replace the previous six; row heights,
button heights, cell paddings, and bottom-bar geometry all flow from
one file.
## Bug Fixes Worth Calling Out
- Loot jobs broken since 1.5.5-beta.1** โ 60s stale-sweep wiped active
itself as the "last seen" heartbeat. Executors now use a dedicated
lastScanTime heartbeat updated every tick.- Flying mons stuck in trees / fences** โ
escapeLeavesnow clears
scan radius, and re-registers leaf blocks dynamically when modded
packs add new ones.
- Cross-pasture log mix-up** โ Logs tab now keys by pasture ID, not
- Cobblebase main button collides with other mods' buttons** โ fixed
by enforcing click priority via a new mixin.
- Sleeping mons still moving** โ added a state lock from
PokemonEntity.tick head so we don't fight Cobblemon's sleep state.- Admin sliders snapped to wrong default on reset** โ every slider's
the track marking it.
- Egg Hatcher effect description showed "Working"** โ now displays the
## Quieter Logs By Default
Cobblebase.LOGGER.info calls have been removed or downgraded to debug.Server consoles at default log level no longer get the per-scan
Harvester radius readouts or the orphan-egg-purge tally. Errors and
warnings stay informational.
A full UI overhaul, the long-awaited per-pasture settings, and an end-to-end
NeoForge port. Everything since 1.5 has been consolidated into one release
to mark the shift from "growing helper mod" to "feature-complete platform."
## Per-Pasture Settings & Base Settings Modal
The biggest single addition. Each pasture owner now controls their own
working radius and downward-scan reach inside admin-defined caps, plus a
new access mode that gates who else can interact with their pasture's UI.
- Base Settings button** โ bottom-right of every Cobblebase screen. Opens
an access pill that cycles through ๐ Private / ๐ View-Only / ๐ Public.
- Per-pasture state** persisted in
<world>/cobblebase_pasture_settings.json.
- Owner gate** โ only the pasture's recorded Cobblemon
ownerId(or an
BaseManager.canEditPasture revalidatesevery C2S packet, so a tampered client can't write.
- Admin caps split** โ the single "Pasture Range" / "Below-Pasture Reach"
[min, max];legacy single-value behaviour preserved by defaulting overrides to MAX.
- Every active block-scanning job (Harvester, Gatherer, Builder, Supplier,
Guard, Mining, EggHatcher, GenericLoot, Craftsman) reads the per-pasture
value, not just the admin max. Auras / passive buffs stay on their own
per-skill JSON radius (balance-tuned).
## Show-Radius Wireframe โ Now Server-Broadcast
RadiusVisible is the new server-side set of pastures whose wireframe iscurrently shown. Toggling the Show-Radius button sends a C2S packet; the
server validates ownership and broadcasts the new set to every connected
player. Result: when a pasture owner enables their radius box, every
nearby player sees it simultaneously instead of just themselves. In-memory
only โ cleared on server restart, since wireframes are diagnostic, not
world state.
## Harvester Downward Reach
- Previously the harvest scan only checked Y at the pasture level and
for (y in 0..radius)), which hid apricorns and berries oncliff-edge or stair-garden trees that grow a few blocks below the
pasture block.
- The Y loop is now asymmetric: full
radiusupward (tall berry bushes,
belowPastureReach downward โ admin- andowner-configurable, default 6. Enough for stairs and small cliffs;
nowhere near deep enough to drag mons into caves under the base.
- Same buffer applies to every block-scanning executor's Y loop.
## Pasture Range = Real Cap For Every Active Job
The admin's Pasture Range slider is now the hard cap for everything an
active job does โ scan range AND idle wander AND safety-teleport floor.
Auras / passive buffs are intentionally exempt so balance-tuned effects
keep their JSON-defined reach. The Show-Radius wireframe is now the
literal truth of where work happens, not an approximation.
## Pasture-Tab Redesign
The Pokemon โ Pasture sub-tab was rebuilt around three goals: see more
rows without scrolling, kill the "ragged silhouette" from
variable-width chips, and bring the active-skill stand-out front and centre.
- Hero active chip** โ the assigned skill renders larger and tinted by
to look.
- Uniform chip height** between active and available (no more
- Row 18 px** so 10+ rows fit on screen without scrolling.
- Sprites slightly bigger, names slightly smaller**; row layout brings
- New Relax column** between Pokemon and Skills (icon-only zZz button).
- Auto-Assign Best button** โ Pasture sub-tab only, single click
## Skill Chips Polish
Every chip in the Skills view got rebuilt:
- Alphabetical sort** (sortedBy name.lowercase) โ the previous prof-DESC
- Watermark-large job icon** at the chip's left edge, vertically centred.
- 2-second hover tooltip** with the skill's description.
- Long-name auto-shrink** โ chips with > 11-char names scale the text
- Drop-shadow on prof stars** so they remain readable against any chip
- Uniform width** (60 px) โ no more dynamic 42โ64 px range that made
- Job icons revamped** for semantic match โ Healer โ Totem of Undying,
Haste Boost โ Golden Pickaxe, Jump Boost โ Slime Block, Aura Boost โ Beacon.
## Bottom Bar + Close Button + Footer
- Top-right X close button** on every Cobblebase + Admin screen.
- Persistent bottom bar** (Discord, Mute, Radius, Admin, Base Settings)
toggle.
BOTTOM_BAR_H = 14** (was 20). Sub-panels' 18-px dead zone above the
- Bottom bar uniform height** across all tabs.
- Radius toggle no longer closes the GUI** on click โ flip ON/OFF
## NeoForge Parity Port
Cobblebase 2.0 ships in full feature parity on NeoForge. Every Fabric
panel, packet codec, mixin equivalent, and renderer has a NeoForge
counterpart wired through the same common code path. NeoForge users get
the same Pasture redesign, Base Settings modal, per-pasture overrides,
admin GUI, and Workshop / Hatchery panels.
## Admin GUI
- Server Settings tab** โ real slider with default-value tick + โป reset
Below-Pasture Reach. Working-cap slider (max simultaneously working
Pokemon per pasture; 0 = unlimited).
- Job-disabled hides its tab** โ admin disables a job, the corresponding
- Admin โ Jobs โ Craftsman โ Recipes** tab โ enable/disable individual
## Hatchery + Workshop
- HatcheryPanel** now uses UiTokens for every padding and font scale (3
- Idle-state message** โ when no eggs are in the box, the Active Hatchers
"assign the egg hatcher" hint.
- Egg-orphan periodic sweep** every cleanup interval โ floating egg
ItemDisplay entities surviving across restarts are now purgedwhenever the world re-loads, matching by display custom-name **or** by
held ItemStack type. No more pile-up of un-pickupable eggs in the
overworld.
- Egg ItemDisplay hold position** โ eggs render in front of the
- WorkshopPanel** also tokenised; Workshop sub-tabs renamed and laid
## Logs Tab
- Match by pastureId** instead of geometric-nearest pasture โ fixes the
- Per-job colour palette** (
JobColorsis the single source of truth).
same hue.
- Full-size Pokemon sprite** (
renderIconByName16 px) in 14-px rows โ
- Drop zebra striping** โ uniform base + per-action tint stacked on
+ tint combinatorial confusion).
## Buffs Tab
- Passive dedupe** โ only the highest-prof mon per buff actually
- Per-buff name colour** matches the effect it applies โ Speed reads
- Meaningful effect descriptions** for every job. Diving, Builder, and
"Diving for underwater treasure", "Building structures from chest
materials", "Crafting items from chest materials" etc.
## Pasture Mob Movement
- Idle wander = admin Pasture Range** โ mons no longer cluster near
- Safety-teleport** has an admin-radius floor so mons can be pulled
- Tether resize REMOVED** โ the previous attempt to shrink Cobblemon's
PC the moment they were outside the new (smaller) box. Cobblemon's
default 64-block tether is honoured.
## UiTokens Design System
New
UiTokens.kt centralises sizes that used to be scattered acrossevery panel. Three text scales replace the previous six; row heights,
button heights, cell paddings, and bottom-bar geometry all flow from
one file.
## Bug Fixes Worth Calling Out
- Loot jobs broken since 1.5.5-beta.1** โ 60s stale-sweep wiped active
itself as the "last seen" heartbeat. Executors now use a dedicated
lastScanTime heartbeat updated every tick.- Flying mons stuck in trees / fences** โ
escapeLeavesnow clears
scan radius, and re-registers leaf blocks dynamically when modded
packs add new ones.
- Cross-pasture log mix-up** โ Logs tab now keys by pasture ID, not
- Cobblebase main button collides with other mods' buttons** โ fixed
by enforcing click priority via a new mixin.
- Sleeping mons still moving** โ added a state lock from
PokemonEntity.tick head so we don't fight Cobblemon's sleep state.- Admin sliders snapped to wrong default on reset** โ every slider's
the track marking it.
- Egg Hatcher effect description showed "Working"** โ now displays the
## Quieter Logs By Default
Cobblebase.LOGGER.info calls have been removed or downgraded to debug.Server consoles at default log level no longer get the per-scan
Harvester radius readouts or the orphan-egg-purge tally. Errors and
warnings stay informational.
### New Features
#### Producer Job โ Admin GUI Configuration
- New Producer section in Species Tab** โ Configure what any Pokemon produces directly in the admin GUI. Appears for every species at the top of the skill editor.
- Item ID with autocomplete** โ Type an item ID and get suggestions from Minecraft's item registry. Dropdown auto-closes when a valid item is entered.
- Item icon preview** โ Shows a live preview of the configured item next to the input field.
- Per-species cooldown** โ Set a custom cooldown per species (30sโ3600s in 30s steps). No longer tied to the global Producer cooldown in the Jobs tab.
- Enable/Disable toggle** โ Pause production without losing the item configuration. Toggle back on anytime.
- Auto-assign Producer skill** โ When you configure an item and save, the Producer skill is automatically assigned if it wasn't already.
- Buffs tab shows produced item** โ Instead of "Producing species-specific items", the Buffs tab now shows the actual item name and count (e.g. "Producing White Wool x1 ยท every 300s").
#### Diving Job
- 25 non-diving Pokemon removed** โ Water/Flying types (Pelipper, Wingull, etc.), surface dwellers (Surskit, Araquanid), and land-based water types (Suicune, Slowpoke, etc.) no longer have Diving. 168 species remain.
- Full loot table documentation** โ New diving detail page on the wiki with all 18 items, drop chances, and proficiency scaling.
### Changes
#### Friend Recruiter
- Prof 5 no longer summons legendaries** โ Prof 5 now works like all other proficiency levels: recruits same-type Pokemon with better rarity odds. Higher proficiency = more Rare/Ultra Rare spawns, fewer Common.
- Cooldown scales normally** โ Prof 5 cooldown now scales with proficiency like every other level, instead of the old fixed 30-minute cooldown.
### Compatibility
- Chiselmon PC mod** โ Cobblebase is now fully compatible with Chiselmon. The Cobblebase button in the Pasture GUI no longer causes crashes when Chiselmon is installed.
### Bug Fixes
- Producer instant drop exploit** โ Producer now waits the full cooldown before the first drop. Switching jobs to skip cooldown no longer works.
- GenericLootExecutor search radius** โ Diving, Archeology, and Pickup jobs now use the admin-configured search radius instead of a hardcoded value of 15.
- Producer item namespace** โ Items like "lead" in the hardcoded map now display correctly as "minecraft:lead" in the admin GUI instead of showing "Unknown item ID".
- Producer cooldown mismatch** โ Buffs tab now uses the per-species cooldown instead of always using the global default, fixing the mismatch between Species tab and Buffs tab values.
- Water-type Pokemon tethering** โ Water-type Pokemon are no longer teleported out of water by the pasture tether system. They now swim freely and are placed directly in nearby water when on land.
- Deploy target** โ Build system now deploys to the correct modpack folder (Cobbleverse 1.7.31).
### Wiki / Species Database
- Diving skill added to 168 species in the online Species Database.
- FAQ updated: Diving reintroduced in v1.8 (no longer marked as "removed").
- Full diving loot table page added to wiki with all items, weights, and proficiency scaling.
- Diving added to sidebar navigation on all job detail pages.
### New Features
#### Producer Job โ Admin GUI Configuration
- New Producer section in Species Tab** โ Configure what any Pokemon produces directly in the admin GUI. Appears for every species at the top of the skill editor.
- Item ID with autocomplete** โ Type an item ID and get suggestions from Minecraft's item registry. Dropdown auto-closes when a valid item is entered.
- Item icon preview** โ Shows a live preview of the configured item next to the input field.
- Per-species cooldown** โ Set a custom cooldown per species (30sโ3600s in 30s steps). No longer tied to the global Producer cooldown in the Jobs tab.
- Enable/Disable toggle** โ Pause production without losing the item configuration. Toggle back on anytime.
- Auto-assign Producer skill** โ When you configure an item and save, the Producer skill is automatically assigned if it wasn't already.
- Buffs tab shows produced item** โ Instead of "Producing species-specific items", the Buffs tab now shows the actual item name and count (e.g. "Producing White Wool x1 ยท every 300s").
#### Diving Job
- 25 non-diving Pokemon removed** โ Water/Flying types (Pelipper, Wingull, etc.), surface dwellers (Surskit, Araquanid), and land-based water types (Suicune, Slowpoke, etc.) no longer have Diving. 168 species remain.
- Full loot table documentation** โ New diving detail page on the wiki with all 18 items, drop chances, and proficiency scaling.
### Changes
#### Friend Recruiter
- Prof 5 no longer summons legendaries** โ Prof 5 now works like all other proficiency levels: recruits same-type Pokemon with better rarity odds. Higher proficiency = more Rare/Ultra Rare spawns, fewer Common.
- Cooldown scales normally** โ Prof 5 cooldown now scales with proficiency like every other level, instead of the old fixed 30-minute cooldown.
### Compatibility
- Chiselmon PC mod** โ Cobblebase is now fully compatible with Chiselmon. The Cobblebase button in the Pasture GUI no longer causes crashes when Chiselmon is installed.
### Bug Fixes
- Producer instant drop exploit** โ Producer now waits the full cooldown before the first drop. Switching jobs to skip cooldown no longer works.
- GenericLootExecutor search radius** โ Diving, Archeology, and Pickup jobs now use the admin-configured search radius instead of a hardcoded value of 15.
- Producer item namespace** โ Items like "lead" in the hardcoded map now display correctly as "minecraft:lead" in the admin GUI instead of showing "Unknown item ID".
- Producer cooldown mismatch** โ Buffs tab now uses the per-species cooldown instead of always using the global default, fixing the mismatch between Species tab and Buffs tab values.
- Water-type Pokemon tethering** โ Water-type Pokemon are no longer teleported out of water by the pasture tether system. They now swim freely and are placed directly in nearby water when on land.
- Deploy target** โ Build system now deploys to the correct modpack folder (Cobbleverse 1.7.31).
### Wiki / Species Database
- Diving skill added to 168 species in the online Species Database.
- FAQ updated: Diving reintroduced in v1.8 (no longer marked as "removed").
- Full diving loot table page added to wiki with all items, weights, and proficiency scaling.
- Diving added to sidebar navigation on all job detail pages.
Bug fixes, Legendary Recruiter rework, and species skill rebalancing.
## Legendary Recruiter Rework
### Prof 5 Recruiter now summons Legendaries
Pokemon with Proficiency 5 Friend Recruiter will now summon random Legendary, Mythical, or Ultra Beast Pokemon instead of regular type-matched species. The legendary summon ignores the recruiter's type โ any legendary can appear.
- Cooldown:** 30 minutes (fixed, not reduced by proficiency). This is intentionally high to prevent legendary spam.
- Notification:** Players see a special "summoned a Legendary" message with a level-up sound effect.
### Species rebalancing
- Prof 5 Recruiter restricted to 6 species only:** Mew, Celebi, Jirachi, Azelf, Mesprit, Uxie
- 18 pseudo-legendaries downgraded** from Prof 5 to Prof 4: Dragonite, Garchomp, Tyranitar, Metagross, Salamence, Hydreigon, Goodra, Kommo-o, Dragapult, Baxcalibur, and others
- Arceus:** Friend Recruiter removed entirely
- Celebi, Azelf, Mesprit, Uxie:** Friend Recruiter added at Prof 5 (new)
## Bug Fixes
### LeafMixin console spam
The
[LeafMixin] Pokemon vs leaf at ... isPastureLeaf=... message was still logging at INFO level despite the 1.5.2 debug log cleanup. This was in a Java mixin file that was missed during the Kotlin-only sweep. Now correctly uses LOGGER.debug().### Gatherer deposits into modded Crafting Tables (Visual Workbench)
The container detection filter introduced in 1.5.2 (
LockableContainerBlockEntity) correctly blocked vanilla non-storage blocks, but modded crafting tables that expose Fabric Transfer API or NeoForge IItemHandler capabilities still passed the secondary check. Added a minimum slot count requirement (>= 9 slots) for modded containers detected via platform APIs. Crafting tables typically have fewer slots and are now excluded.### Traveler's Backpack infinite item duplication
The Gatherer had no item type filtering โ it would pick up any dropped item, including container items (backpacks, shulker boxes) from mods like Traveler's Backpack. When the Gatherer removed the container item entity and the source mod respawned it, an infinite pickup-deposit loop created millions of duplicated items.
- Fix:** The Gatherer now skips container-type items during pickup. Items are classified as containers if they are Shulker Boxes or contain inventory NBT data (
BlockEntityTag,Inventory, orItemscomponents). This prevents the dupe loop while still allowing all normal item pickups.
### Remaining runtime LOGGER.info calls
Five additional
LOGGER.info() calls that fired during gameplay (NavigationHelper unstick, GathererExecutor recovery, RecruiterExecutor type map, BaseManager load, PastureLeavesTracker) were demoted to LOGGER.debug(). The production console is now completely clean.## Summary
| Change | Type | Impact |
|---|---|---|
| Legendary Recruiter (Prof 5) | Feature | 6 cute legendaries can summon any legendary with 30min cooldown |
| Species rebalancing | Balance | Prof 5 recruiter restricted, Arceus recruiter removed |
| LeafMixin spam | Fix | Zero console spam from leaf collision checks |
| Visual Workbench deposits | Fix | Gatherer ignores small modded inventories (< 9 slots) |
| Traveler's Backpack dupe | Fix | Gatherer skips container-type items |
| Debug log cleanup | Fix | All runtime logs demoted to DEBUG level |
Bug fixes, Legendary Recruiter rework, and species skill rebalancing.
## Legendary Recruiter Rework
### Prof 5 Recruiter now summons Legendaries
Pokemon with Proficiency 5 Friend Recruiter will now summon random Legendary, Mythical, or Ultra Beast Pokemon instead of regular type-matched species. The legendary summon ignores the recruiter's type โ any legendary can appear.
- Cooldown:** 30 minutes (fixed, not reduced by proficiency). This is intentionally high to prevent legendary spam.
- Notification:** Players see a special "summoned a Legendary" message with a level-up sound effect.
### Species rebalancing
- Prof 5 Recruiter restricted to 6 species only:** Mew, Celebi, Jirachi, Azelf, Mesprit, Uxie
- 18 pseudo-legendaries downgraded** from Prof 5 to Prof 4: Dragonite, Garchomp, Tyranitar, Metagross, Salamence, Hydreigon, Goodra, Kommo-o, Dragapult, Baxcalibur, and others
- Arceus:** Friend Recruiter removed entirely
- Celebi, Azelf, Mesprit, Uxie:** Friend Recruiter added at Prof 5 (new)
## Bug Fixes
### LeafMixin console spam
The
[LeafMixin] Pokemon vs leaf at ... isPastureLeaf=... message was still logging at INFO level despite the 1.5.2 debug log cleanup. This was in a Java mixin file that was missed during the Kotlin-only sweep. Now correctly uses LOGGER.debug().### Gatherer deposits into modded Crafting Tables (Visual Workbench)
The container detection filter introduced in 1.5.2 (
LockableContainerBlockEntity) correctly blocked vanilla non-storage blocks, but modded crafting tables that expose Fabric Transfer API or NeoForge IItemHandler capabilities still passed the secondary check. Added a minimum slot count requirement (>= 9 slots) for modded containers detected via platform APIs. Crafting tables typically have fewer slots and are now excluded.### Traveler's Backpack infinite item duplication
The Gatherer had no item type filtering โ it would pick up any dropped item, including container items (backpacks, shulker boxes) from mods like Traveler's Backpack. When the Gatherer removed the container item entity and the source mod respawned it, an infinite pickup-deposit loop created millions of duplicated items.
- Fix:** The Gatherer now skips container-type items during pickup. Items are classified as containers if they are Shulker Boxes or contain inventory NBT data (
BlockEntityTag,Inventory, orItemscomponents). This prevents the dupe loop while still allowing all normal item pickups.
### Remaining runtime LOGGER.info calls
Five additional
LOGGER.info() calls that fired during gameplay (NavigationHelper unstick, GathererExecutor recovery, RecruiterExecutor type map, BaseManager load, PastureLeavesTracker) were demoted to LOGGER.debug(). The production console is now completely clean.## Summary
| Change | Type | Impact |
|---|---|---|
| Legendary Recruiter (Prof 5) | Feature | 6 cute legendaries can summon any legendary with 30min cooldown |
| Species rebalancing | Balance | Prof 5 recruiter restricted, Arceus recruiter removed |
| LeafMixin spam | Fix | Zero console spam from leaf collision checks |
| Visual Workbench deposits | Fix | Gatherer ignores small modded inventories (< 9 slots) |
| Traveler's Backpack dupe | Fix | Gatherer skips container-type items |
| Debug log cleanup | Fix | All runtime logs demoted to DEBUG level |
Bugfix release addressing three community-reported issues: item stacking when picked up by players, Gatherer depositing into non-storage blocks, and console log spam.
## ๐ Bug Fixes
### Produced items don't stack with regular items when picked up by players
Items dropped by Producer, Miner, Harvester and other jobs were tagged with a
cobblebase_origin marker inside the ItemStack's CUSTOM_DATA component. This tag is used by the Gatherer to identify which Pasture Block produced the item. While the tag was correctly stripped when items went through the Gatherer โ chest path, **players who picked items up directly from the ground** kept the tag on the ItemStack โ making them unable to stack with vanilla-obtained items of the same type (e.g. produced diamonds wouldn't stack with mined diamonds).- Fix:** Origin tracking now lives on the **ItemEntity** (via command tags) instead of the **ItemStack**. The actual item data stays completely clean regardless of how it's picked up. The Gatherer checks the entity tag before pickup, and items that enter a player's inventory are always tag-free and stack normally.
### Gatherer deposits items into Waystones, modded Crafting Tables and other non-storage blocks
The Gatherer's container detection used a broad
blockEntity is Inventory check, which matched any block entity that implements the Inventory interface โ including Waystones, modded crafting tables, and other blocks that have an inventory for functional reasons but aren't actual storage containers.- Fix:** Container detection now checks for
LockableContainerBlockEntity(vanilla storage: chests, barrels, hoppers, dispensers, shulker boxes, furnaces) plus platform-specific storage APIs (Fabric Transfer API / NeoForge IItemHandler) for modded containers. Blocks that incidentally implement Inventory but aren't real storage are no longer targeted. No blacklist configuration needed.
### Console log spam in production
Runtime debug logs (
[Ambient], [Gatherer], [Harvester], etc.) were gated behind a config toggle (enableConsoleLogging) but logged at INFO level when enabled โ flooding server consoles and Discord log channels. Some server owners had the toggle enabled from debugging sessions and couldn't easily find it.- Fix:** All runtime debug logs now use
LOGGER.debug()instead ofLOGGER.info(). They are suppressed by Minecraft's default log4j configuration and only visible when explicitly enabling DEBUG level logging. TheenableConsoleLoggingconfig option is now obsolete.
## ๐ Summary
| Change | Type | Impact |
|---|---|---|
| Item origin tracking moved to ItemEntity | Fix | Produced items always stack with vanilla items |
| Smart container detection | Fix | Gatherer only deposits into real storage blocks |
| Debug logs demoted to DEBUG level | Fix | Zero console spam in production |
Bugfix release addressing three community-reported issues: item stacking when picked up by players, Gatherer depositing into non-storage blocks, and console log spam.
## ๐ Bug Fixes
### Produced items don't stack with regular items when picked up by players
Items dropped by Producer, Miner, Harvester and other jobs were tagged with a
cobblebase_origin marker inside the ItemStack's CUSTOM_DATA component. This tag is used by the Gatherer to identify which Pasture Block produced the item. While the tag was correctly stripped when items went through the Gatherer โ chest path, **players who picked items up directly from the ground** kept the tag on the ItemStack โ making them unable to stack with vanilla-obtained items of the same type (e.g. produced diamonds wouldn't stack with mined diamonds).- Fix:** Origin tracking now lives on the **ItemEntity** (via command tags) instead of the **ItemStack**. The actual item data stays completely clean regardless of how it's picked up. The Gatherer checks the entity tag before pickup, and items that enter a player's inventory are always tag-free and stack normally.
### Gatherer deposits items into Waystones, modded Crafting Tables and other non-storage blocks
The Gatherer's container detection used a broad
blockEntity is Inventory check, which matched any block entity that implements the Inventory interface โ including Waystones, modded crafting tables, and other blocks that have an inventory for functional reasons but aren't actual storage containers.- Fix:** Container detection now checks for
LockableContainerBlockEntity(vanilla storage: chests, barrels, hoppers, dispensers, shulker boxes, furnaces) plus platform-specific storage APIs (Fabric Transfer API / NeoForge IItemHandler) for modded containers. Blocks that incidentally implement Inventory but aren't real storage are no longer targeted. No blacklist configuration needed.
### Console log spam in production
Runtime debug logs (
[Ambient], [Gatherer], [Harvester], etc.) were gated behind a config toggle (enableConsoleLogging) but logged at INFO level when enabled โ flooding server consoles and Discord log channels. Some server owners had the toggle enabled from debugging sessions and couldn't easily find it.- Fix:** All runtime debug logs now use
LOGGER.debug()instead ofLOGGER.info(). They are suppressed by Minecraft's default log4j configuration and only visible when explicitly enabling DEBUG level logging. TheenableConsoleLoggingconfig option is now obsolete.
## ๐ Summary
| Change | Type | Impact |
|---|---|---|
| Item origin tracking moved to ItemEntity | Fix | Produced items always stack with vanilla items |
| Smart container detection | Fix | Gatherer only deposits into real storage blocks |
| Debug logs demoted to DEBUG level | Fix | Zero console spam in production |
Fast-follow patch for four critical 1.5.0 bugs. If you're on 1.5.0, **update to this one** โ especially for multiplayer.
## ๐ Critical Fixes
### Items don't stack in chests anymore (regression since 1.5)
InventoryHelper.insertItems was stripping the cobblebase_origin NBT tag before inserting โ but only in the vanilla Inventory fallback path. The platform-specific path (Fabric Transfer API / NeoForge Capabilities), which is the one most modpacks hit because of modded storage, handed the items through with the tag still attached. The tagged ItemStack then failed to merge with vanilla stacks of the same item in the chest because ItemStack.areItemsAndComponentsEqual sees the extra CUSTOM_DATA and treats the stacks as different.The tag is now stripped up front, then the cleaned list is handed to either insertion path.
### Items from destroyed pastures would never go away
If you broke a pasture, the items its Pokemon had dropped on the ground stayed there forever โ no Gatherer from any other pasture could claim them because the origin tag pointed at a pasture that no longer existed. The Gatherer's ownership check now detects orphan origins and lets any Gatherer clean them up.
### Species skill overrides didn't show up in the Pasture Skills tab on multiplayer
The Pasture Skills tab reads
SpeciesSkillRegistry.getSkills() on the client, but admin-set overrides only ever registered into the *server's* copy of the registry. In singleplayer that was invisible because SP shares the registry between server and client, but on a dedicated server the client never saw the overrides and kept showing the bundled default skill list.New
SpeciesOverrideSyncS2CPacket is sent to every player on join and re-broadcast after every admin update. Client receiver applies the map to its local registry.### Disabled jobs still appeared in the Pasture Skills tab on multiplayer
Same class of bug as above:
SkillsPanel reads JobConfigOverrides.isEnabled(skillId) on the client, but JobConfigOverrides was only populated on the server from the world file. In multiplayer the client's copy stayed empty so every job defaulted to enabled and disabled jobs still showed up in the Pasture Skills tab โ and players could assign Pokemon to them, where the server would then silently no-op.New
JobOverrideSyncS2CPacket with the same join-sync + post-update broadcast pattern.### Fakemons showed the wrong preview icon in the Admin GUI
PokemonSpriteHelper.resolveSpeciesFromName hardcoded the cobblemon: namespace, so any species registered under a fakemon mod's own namespace (babylegends:beta, extraparadoxmons:saberjaw, livelymons:*, etc.) never resolved and always fell back to the colored badge placeholder. drawProfilePokemon already supports any species id regardless of namespace โ the bug was purely in name โ id resolution.The resolver now walks
PokemonSpecies.getByName and the full PokemonSpecies.species collection as a fallback, and caches the result per normalized name so the sidebar doesn't retraverse the registry on every frame.- Cobblemon required**: 1.7.0 or newer
- Minecraft**: 1.21.1
- Loaders**: Fabric + NeoForge
Fast-follow patch for four critical 1.5.0 bugs. If you're on 1.5.0, **update to this one** โ especially for multiplayer.
## ๐ Critical Fixes
### Items don't stack in chests anymore (regression since 1.5)
InventoryHelper.insertItems was stripping the cobblebase_origin NBT tag before inserting โ but only in the vanilla Inventory fallback path. The platform-specific path (Fabric Transfer API / NeoForge Capabilities), which is the one most modpacks hit because of modded storage, handed the items through with the tag still attached. The tagged ItemStack then failed to merge with vanilla stacks of the same item in the chest because ItemStack.areItemsAndComponentsEqual sees the extra CUSTOM_DATA and treats the stacks as different.The tag is now stripped up front, then the cleaned list is handed to either insertion path.
### Items from destroyed pastures would never go away
If you broke a pasture, the items its Pokemon had dropped on the ground stayed there forever โ no Gatherer from any other pasture could claim them because the origin tag pointed at a pasture that no longer existed. The Gatherer's ownership check now detects orphan origins and lets any Gatherer clean them up.
### Species skill overrides didn't show up in the Pasture Skills tab on multiplayer
The Pasture Skills tab reads
SpeciesSkillRegistry.getSkills() on the client, but admin-set overrides only ever registered into the *server's* copy of the registry. In singleplayer that was invisible because SP shares the registry between server and client, but on a dedicated server the client never saw the overrides and kept showing the bundled default skill list.New
SpeciesOverrideSyncS2CPacket is sent to every player on join and re-broadcast after every admin update. Client receiver applies the map to its local registry.### Disabled jobs still appeared in the Pasture Skills tab on multiplayer
Same class of bug as above:
SkillsPanel reads JobConfigOverrides.isEnabled(skillId) on the client, but JobConfigOverrides was only populated on the server from the world file. In multiplayer the client's copy stayed empty so every job defaulted to enabled and disabled jobs still showed up in the Pasture Skills tab โ and players could assign Pokemon to them, where the server would then silently no-op.New
JobOverrideSyncS2CPacket with the same join-sync + post-update broadcast pattern.### Fakemons showed the wrong preview icon in the Admin GUI
PokemonSpriteHelper.resolveSpeciesFromName hardcoded the cobblemon: namespace, so any species registered under a fakemon mod's own namespace (babylegends:beta, extraparadoxmons:saberjaw, livelymons:*, etc.) never resolved and always fell back to the colored badge placeholder. drawProfilePokemon already supports any species id regardless of namespace โ the bug was purely in name โ id resolution.The resolver now walks
PokemonSpecies.getByName and the full PokemonSpecies.species collection as a fallback, and caches the result per normalized name so the sidebar doesn't retraverse the registry on every frame.- Cobblemon required**: 1.7.0 or newer
- Minecraft**: 1.21.1
- Loaders**: Fabric + NeoForge
The biggest release since launch โ a full Admin GUI overhaul, an in-game Loot Editor, two new fakemon packs, and a long batch of performance + stability fixes that have been brewing since 1.4.0.
## โก Performance
A round of TPS-focused work that's been in progress for a while and ships in this release.
- Particle stripping** โ every job except Healer no longer emits its working particles. The visual noise was costing real TPS on busy bases. Healer keeps its particles because the heal effect is information the player needs.
- Finder / Producer / Recruiter throttling** โ long-cooldown jobs now skip the bulk of their tick logic 19 ticks out of 20 (their cooldowns are minutes, no need to evaluate them every tick).
- Cached loot table keys** โ Finder no longer allocates
IdentifierandRegistryKeyobjects every roll. The four rarity-tier keys are built once at construction. - Targeted leaves pass-through** โ restricted to the pasture area instead of the entire world. Pokemon outside a base are unaffected.
- Admin GUI lazy loading** โ the species list now sends names + override flags up front and fetches per-species skill data on demand instead of front-loading everything.
- Smooth-scroll fix** โ touchpad / smooth-scroll mice now scroll the species list at a sane rate instead of jumping pages.
## ๐ ๏ธ Admin GUI Overhaul
The
/cobblebase admin screen got four new tabs and a redesign of the existing ones.### New: Wiki Tab
- Curated outbound links โ Documentation, Species Database, Datapack Generator, Job Reference, Loot Tables, GitHub, Modrinth, Discord
- Each entry has an "Open" button that hands the URL to your OS browser
- Compact scrollable layout
### New: Loot Editor Tab
Edit bundled loot tables live in-game without writing a datapack.
- Per-job sidebar** with pretty names matching the Skills tab (Mining, Collector, Alchemist, Scholar, Chef, Pharmacist, Armorer, Excavator, Botanist, Smith, Trainer, Prospector, Architect)
- Rarity tabs per job** (Common / Uncommon / Rare / Ultra Rare)
- Edit item id, weight, min count, max count per entry
- Live item icon preview** as you type the item id
- Autocomplete suggestions** for item ids and item tags โ start typing
diamondand pickminecraft:diamondfrom a popup, or type#for tag matches; arrow keys navigate, Tab autocompletes, Enter commits - Bulk add by item tag** โ type
#namespace:tag(e.g.#c:ores,#minecraft:logs) and the row expands into one entry per item in that tag, inheriting the row's weight/min/max - On/Off toggle** for default items โ disable a default drop without losing it (you can re-enable later)
- Delete (X)** button for custom items you added
- Tooltips** on every column header explain what each value does with concrete examples
- Save** writes the override and broadcasts to all OPs viewing the GUI; **Reset** removes the override and restores the bundled defaults
- Overrides persist in
<world>/cobblebase_loot_overrides.jsonand apply immediately to the next loot generation - Two orphaned loot tables removed:
honey_collect(now produced by the Producer job) anddive_treasure(replaced by Fishing)
### Jobs Tab Redesign
- Compact sidebar layout** with category list (All Jobs / Gathering / Generation / Combat / Support / Utility / Legendary / Social), right pane with the actual job rows
- Custom-drawn rows at scale 0.7 โ fits the whole job catalogue without scrolling for most categories
- Job tooltips** on hover โ show description, category, default cooldown, default radius
- Per-job radius now actually applies in-game** โ the previous version stored
radiusMin/radiusMaxwhich were dead fields. Now writessearchRadiusdirectly, which the executors consume viaSkillRegistry.getEffective() - Override marker (orange dot) when a job's cooldown / radius / enabled differs from the default
### Species Tab Improvements
- Sort toggle** next to the Species header โ cycles between Pokedex#, A-Z, Z-A (default Pokedex#, with national pokedex numbers resolved from Cobblemon's runtime registry)
- Species list filtered to installed mons** โ the bundled
species_skills/*.jsonfiles cover thousands of fakemon names from optional addons. The list now intersects withPokemonSpecies.species(Cobblemon's runtime registry) so you only see mons your server actually has loaded. Override entries are always kept regardless. - Species sprite** in the editor header (top-right, zoomed) so you always know which mon you're editing
- Auto-refresh** after lazy-load completes (no more manual refresh)
- Use SpeciesSkillRegistry keys** for species names instead of pulling them from Cobblemon โ fixes naming-mismatch entries
## ๐ New Fakemon Pack Support
### Baby Legends (22 species)
- New supported pack โ baby forms of legendaries that evolve into their adult counterparts
- Each baby inherits its evolution target's skill set with every proficiency reduced by 1 (min 1)
- Example: BabyMewtwo gets Mewtwo's skills minus 1 prof tier across the board
### Extra Paradox Mons (27 species)
- New supported pack โ paradox-themed legendary alternates
- All entries get an ultra-rare-tier curated skill set based on type
- Proficiencies capped at 4 (no prof 5 โ that stays reserved for true legendaries / mythicals / starter finals)
### Gravelmon Removed
- Gravelmon support dropped โ the pack is Cobblemon 1.6 only and incompatible with Cobblemon 1.7+ which Cobblebase requires
- 7,194 Gravelmon species removed from the bundled database
- Total species: 8,426 โ 1,367** (996 hand-crafted Cobblemon + 371 fakemon)
### Other Species Additions
- 39 missing species filled in earlier in the cycle: paradox pokemon, tapus, treasures of ruin, naming aliases
- Applied user submissions #JLZI (5 species) and #QPKX (2 species)
## ๐ Stability & Bug Fixes
### Stuck Detection & Escape
- Escape from solid blocks** โ Pokemon clipped inside a wall (glass ceiling, oak plank, etc.) are now teleported out using a virtual bounding-box collision test against actual VoxelShapes
- Improved clip detection** uses
Box.intersects()against real VoxelShape bounding boxes instead of contracted boxes, so glass ceilings don't get missed due to floor() rounding - Stuck timer tolerance** โ 1-block oscillation no longer resets the stuck timer (Pokemon bobbing between two Y values are still considered stuck)
- Escalating unstick** for flying Pokemon now uses Y-axis variation, not just horizontal teleport
- Velocity impulse** at unstick intensity 3+ instead of an immediate teleport (gentler recovery for normal cases)
- Job-based stuck recovery** removed โ was causing Pokemon to escape enclosures
- Stuck detection only checks working mons** and uses velocity in addition to blockPos
### Gatherer
- Item dupe glitch fixed** โ Gatherer's visual item entity (the floating itemstack above its head) is no longer detected by the pickup search, so it can't pick itself up in a dupe loop. Pickup cooldown after a deposit timeout was added too.
- Drop on timeout** instead of teleporting to the chest โ keeps the gatherer at its location and lets another mon (or a player) pick the items up
- Breadcrumb retrace** โ Gatherers walking onto stairs and getting stuck on the way back can now retrace the path they took to get there
- Y-distance filter removed** in favor of the breadcrumb system
### Mining
- Items spawn at ground level** โ Mining drops were being spawned 1 block too high (
pos.y + 1.0); now spawned atpos.y + 0.25with zero velocity so they land in the right spot
### Sleep / Night Behavior
- Working mons sleep at night** โ they now treat the night phase as idle, keep their job assignment, and wake up at sunrise to resume working
- forceSleep at night** instead of waiting for the random sleep chance โ fixes mons that would never lie down
- Periodic sleep animation packets** every 4s for working mons โ fixes the missing sleep animation
- Sleep animation chain fallback** โ uses Cobblemon's full animation chain so the sleep pose plays even on species with limited animation sets
- wake-up animation** sent before clearing rest state โ no more mons frozen in the sleep pose
- Velocity freeze only for sleeping mons**, not for sitting / socializing โ those animations need free velocity to play correctly
- Passive buffs continue while sleeping** via
tickPassiveBuffsWithoutEntity
### Other Fixes
- Hearty grain harvesting** โ 2-block tall crops harvest both top and bottom blocks, only adjacent block harvested if it's also mature (no breaking seedlings)
- Berry harvest** uses the Berry API for drops and resets to MATURE_AGE instead of 0
_index.txt.jsonextension restored** โ the loader filters byendsWith ".json"so the bare names didn't match- Cobblemon dependency declaration** added to fabric.mod.json so users on Cobblemon 1.6 get a clean unmet-dependency error at startup instead of a
TICKER$lambda$0mixin crash (NeoForge already declared this) - 22 broken
cobblebase:cauldron_fillreferences** in species_skills JSONs replaced with the actualcobblebase:water_fillid โ those species had effectively no-op skills before this fix - Recruiter consolidation** into
friend_recruiter+ spawn buckets loaded from Cobblemon - Archeologist skill removed** (was unused, replaced by other Finder variants)
### Behavior
- New behavior variants: faint after chase, recoil in socialize, faint-to-sleep
- SITTING behavior state removed (no animation available for it)
## ๐จ GUI Polish
- Bottom bar redesign** โ Discord icon | Mute toggle | Admin button (OP only) | Done
- Mute button updates instantly** on click without reopening the GUI
- Admin button uses pending pattern** to wait for data before opening so the species list is populated when the screen appears
- General admin tab is hidden** for this release (held back for a later release; the Discord button on the Skills panel always shows now for max reach)
- Total Species in Database**: 1,367 (996 Cobblemon hand-crafted + 371 fakemon across Lively Mons / Alatias / Laser / Wilbayan / Baby Legends / Extra Paradox Mons)
- Cobblemon required**: 1.7.0 or newer
- Minecraft**: 1.21.1
- Loaders**: Fabric + NeoForge
The biggest release since launch โ a full Admin GUI overhaul, an in-game Loot Editor, two new fakemon packs, and a long batch of performance + stability fixes that have been brewing since 1.4.0.
## โก Performance
A round of TPS-focused work that's been in progress for a while and ships in this release.
- Particle stripping** โ every job except Healer no longer emits its working particles. The visual noise was costing real TPS on busy bases. Healer keeps its particles because the heal effect is information the player needs.
- Finder / Producer / Recruiter throttling** โ long-cooldown jobs now skip the bulk of their tick logic 19 ticks out of 20 (their cooldowns are minutes, no need to evaluate them every tick).
- Cached loot table keys** โ Finder no longer allocates
IdentifierandRegistryKeyobjects every roll. The four rarity-tier keys are built once at construction. - Targeted leaves pass-through** โ restricted to the pasture area instead of the entire world. Pokemon outside a base are unaffected.
- Admin GUI lazy loading** โ the species list now sends names + override flags up front and fetches per-species skill data on demand instead of front-loading everything.
- Smooth-scroll fix** โ touchpad / smooth-scroll mice now scroll the species list at a sane rate instead of jumping pages.
## ๐ ๏ธ Admin GUI Overhaul
The
/cobblebase admin screen got four new tabs and a redesign of the existing ones.### New: Wiki Tab
- Curated outbound links โ Documentation, Species Database, Datapack Generator, Job Reference, Loot Tables, GitHub, Modrinth, Discord
- Each entry has an "Open" button that hands the URL to your OS browser
- Compact scrollable layout
### New: Loot Editor Tab
Edit bundled loot tables live in-game without writing a datapack.
- Per-job sidebar** with pretty names matching the Skills tab (Mining, Collector, Alchemist, Scholar, Chef, Pharmacist, Armorer, Excavator, Botanist, Smith, Trainer, Prospector, Architect)
- Rarity tabs per job** (Common / Uncommon / Rare / Ultra Rare)
- Edit item id, weight, min count, max count per entry
- Live item icon preview** as you type the item id
- Autocomplete suggestions** for item ids and item tags โ start typing
diamondand pickminecraft:diamondfrom a popup, or type#for tag matches; arrow keys navigate, Tab autocompletes, Enter commits - Bulk add by item tag** โ type
#namespace:tag(e.g.#c:ores,#minecraft:logs) and the row expands into one entry per item in that tag, inheriting the row's weight/min/max - On/Off toggle** for default items โ disable a default drop without losing it (you can re-enable later)
- Delete (X)** button for custom items you added
- Tooltips** on every column header explain what each value does with concrete examples
- Save** writes the override and broadcasts to all OPs viewing the GUI; **Reset** removes the override and restores the bundled defaults
- Overrides persist in
<world>/cobblebase_loot_overrides.jsonand apply immediately to the next loot generation - Two orphaned loot tables removed:
honey_collect(now produced by the Producer job) anddive_treasure(replaced by Fishing)
### Jobs Tab Redesign
- Compact sidebar layout** with category list (All Jobs / Gathering / Generation / Combat / Support / Utility / Legendary / Social), right pane with the actual job rows
- Custom-drawn rows at scale 0.7 โ fits the whole job catalogue without scrolling for most categories
- Job tooltips** on hover โ show description, category, default cooldown, default radius
- Per-job radius now actually applies in-game** โ the previous version stored
radiusMin/radiusMaxwhich were dead fields. Now writessearchRadiusdirectly, which the executors consume viaSkillRegistry.getEffective() - Override marker (orange dot) when a job's cooldown / radius / enabled differs from the default
### Species Tab Improvements
- Sort toggle** next to the Species header โ cycles between Pokedex#, A-Z, Z-A (default Pokedex#, with national pokedex numbers resolved from Cobblemon's runtime registry)
- Species list filtered to installed mons** โ the bundled
species_skills/*.jsonfiles cover thousands of fakemon names from optional addons. The list now intersects withPokemonSpecies.species(Cobblemon's runtime registry) so you only see mons your server actually has loaded. Override entries are always kept regardless. - Species sprite** in the editor header (top-right, zoomed) so you always know which mon you're editing
- Auto-refresh** after lazy-load completes (no more manual refresh)
- Use SpeciesSkillRegistry keys** for species names instead of pulling them from Cobblemon โ fixes naming-mismatch entries
## ๐ New Fakemon Pack Support
### Baby Legends (22 species)
- New supported pack โ baby forms of legendaries that evolve into their adult counterparts
- Each baby inherits its evolution target's skill set with every proficiency reduced by 1 (min 1)
- Example: BabyMewtwo gets Mewtwo's skills minus 1 prof tier across the board
### Extra Paradox Mons (27 species)
- New supported pack โ paradox-themed legendary alternates
- All entries get an ultra-rare-tier curated skill set based on type
- Proficiencies capped at 4 (no prof 5 โ that stays reserved for true legendaries / mythicals / starter finals)
### Gravelmon Removed
- Gravelmon support dropped โ the pack is Cobblemon 1.6 only and incompatible with Cobblemon 1.7+ which Cobblebase requires
- 7,194 Gravelmon species removed from the bundled database
- Total species: 8,426 โ 1,367** (996 hand-crafted Cobblemon + 371 fakemon)
### Other Species Additions
- 39 missing species filled in earlier in the cycle: paradox pokemon, tapus, treasures of ruin, naming aliases
- Applied user submissions #JLZI (5 species) and #QPKX (2 species)
## ๐ Stability & Bug Fixes
### Stuck Detection & Escape
- Escape from solid blocks** โ Pokemon clipped inside a wall (glass ceiling, oak plank, etc.) are now teleported out using a virtual bounding-box collision test against actual VoxelShapes
- Improved clip detection** uses
Box.intersects()against real VoxelShape bounding boxes instead of contracted boxes, so glass ceilings don't get missed due to floor() rounding - Stuck timer tolerance** โ 1-block oscillation no longer resets the stuck timer (Pokemon bobbing between two Y values are still considered stuck)
- Escalating unstick** for flying Pokemon now uses Y-axis variation, not just horizontal teleport
- Velocity impulse** at unstick intensity 3+ instead of an immediate teleport (gentler recovery for normal cases)
- Job-based stuck recovery** removed โ was causing Pokemon to escape enclosures
- Stuck detection only checks working mons** and uses velocity in addition to blockPos
### Gatherer
- Item dupe glitch fixed** โ Gatherer's visual item entity (the floating itemstack above its head) is no longer detected by the pickup search, so it can't pick itself up in a dupe loop. Pickup cooldown after a deposit timeout was added too.
- Drop on timeout** instead of teleporting to the chest โ keeps the gatherer at its location and lets another mon (or a player) pick the items up
- Breadcrumb retrace** โ Gatherers walking onto stairs and getting stuck on the way back can now retrace the path they took to get there
- Y-distance filter removed** in favor of the breadcrumb system
### Mining
- Items spawn at ground level** โ Mining drops were being spawned 1 block too high (
pos.y + 1.0); now spawned atpos.y + 0.25with zero velocity so they land in the right spot
### Sleep / Night Behavior
- Working mons sleep at night** โ they now treat the night phase as idle, keep their job assignment, and wake up at sunrise to resume working
- forceSleep at night** instead of waiting for the random sleep chance โ fixes mons that would never lie down
- Periodic sleep animation packets** every 4s for working mons โ fixes the missing sleep animation
- Sleep animation chain fallback** โ uses Cobblemon's full animation chain so the sleep pose plays even on species with limited animation sets
- wake-up animation** sent before clearing rest state โ no more mons frozen in the sleep pose
- Velocity freeze only for sleeping mons**, not for sitting / socializing โ those animations need free velocity to play correctly
- Passive buffs continue while sleeping** via
tickPassiveBuffsWithoutEntity
### Other Fixes
- Hearty grain harvesting** โ 2-block tall crops harvest both top and bottom blocks, only adjacent block harvested if it's also mature (no breaking seedlings)
- Berry harvest** uses the Berry API for drops and resets to MATURE_AGE instead of 0
_index.txt.jsonextension restored** โ the loader filters byendsWith ".json"so the bare names didn't match- Cobblemon dependency declaration** added to fabric.mod.json so users on Cobblemon 1.6 get a clean unmet-dependency error at startup instead of a
TICKER$lambda$0mixin crash (NeoForge already declared this) - 22 broken
cobblebase:cauldron_fillreferences** in species_skills JSONs replaced with the actualcobblebase:water_fillid โ those species had effectively no-op skills before this fix - Recruiter consolidation** into
friend_recruiter+ spawn buckets loaded from Cobblemon - Archeologist skill removed** (was unused, replaced by other Finder variants)
### Behavior
- New behavior variants: faint after chase, recoil in socialize, faint-to-sleep
- SITTING behavior state removed (no animation available for it)
## ๐จ GUI Polish
- Bottom bar redesign** โ Discord icon | Mute toggle | Admin button (OP only) | Done
- Mute button updates instantly** on click without reopening the GUI
- Admin button uses pending pattern** to wait for data before opening so the species list is populated when the screen appears
- General admin tab is hidden** for this release (held back for a later release; the Discord button on the Skills panel always shows now for max reach)
- Total Species in Database**: 1,367 (996 Cobblemon hand-crafted + 371 fakemon across Lively Mons / Alatias / Laser / Wilbayan / Baby Legends / Extra Paradox Mons)
- Cobblemon required**: 1.7.0 or newer
- Minecraft**: 1.21.1
- Loaders**: Fabric + NeoForge
## New Features
### Leaves Collision Mixin
- Pokemon can now fly and walk through leaves freely โ no more getting stuck in tree canopies
- Only affects Pokemon entities, players and other mobs are unaffected
- Pasture box bases built from solid blocks are not affected
### Friend Recruiter Proficiency Overhaul
- Rebalanced proficiency distribution across 755+ species
- Pseudo-Legendaries** (Dragonite, Tyranitar, Salamence, Metagross, Garchomp, Hydreigon, Goodra, Kommo-o, Dragapult, Baxcalibur) โ **Prof 5 (Master)**
- Starter final evolutions** (Venusaur, Charizard, Blastoise, etc.) โ **Prof 4 (Expert)**
- Eeveelutions** + popular Pokemon (Lucario, Gengar, Arcanine, Lapras, Mimikyu, etc.) โ **Prof 4**
- Starter base forms โ Prof 2, mid evolutions โ Prof 3
- Prof 4: 6 โ 51 species | Prof 5: 1 โ 11 species
### Recruiter Species Pool Expansion
- Friend Recruiter now detects ALL loaded species from installed content packs (not just vanilla Cobblemon)
- If you have addon packs installed, their Pokemon can now be recruited too
### GUI Redesign: Bottom Bar
- New **Discord button** (bottom-left) โ quick link to the Cobblebase Discord
- New **Mute toggle** with instant icon update โ no longer requires reopening the GUI
- New **Admin button** (only visible for OP players) โ opens the Admin config panel
- Cleaner bottom bar layout: Discord | Mute | Admin | Done
### Buffs Tab Cooldown Display
- All job descriptions now show the effective cooldown based on proficiency
- Format:
Job description ยท every Xs - Passive buffs (Speed, Haste, etc.) don't show cooldowns as they are always active
## Bug Fixes
### Recruiter Spawn Fix for Flying Pokemon
- Flying Pokemon assigned as Recruiter could never spawn recruits (spawn position was airborne)
- Now spawns recruits near the Pasture Block regardless of where the recruiter is flying
### Recruiter Level Crash
- Fixed crash when a Pokemon below Lv.5 was assigned as Recruiter (
coerceInempty range)
### Escalating Unstick for Flying Pokemon
- Flying Pokemon now get Y-axis variation when stuck (not just horizontal teleport)
- Unstick intensity escalates over time (1-5) with increasing speed
- Prevents flying mons from getting permanently stuck under ceilings or in walls
### Escape Leaves Improvement
- Detects 3 cases: in leaves, on leaves, and flying under a leaf canopy
- Also runs for idle Pokemon (previously only worked for working mons)
- Fences treated as valid ground (won't teleport Pokemon out of fence enclosures)
### Config Audit & Cleanup
- All executors now consistently read cooldowns from Admin GUI overrides
- RecruiterExecutor was reading from a dead ClothConfig setting instead of the Admin GUI override โ fixed
- GathererExecutor was using a hardcoded 2s cooldown instead of the skill definition โ fixed
- Removed dead/duplicate config settings
- Admin GUI job overrides now work correctly for ALL jobs
### Hearty Grain Harvesting
- Fixed 2-block tall Hearty Grain crop harvesting (now correctly handles both top and bottom blocks)
- Only harvests adjacent block if it is also mature โ no longer breaks seedlings
### Other Fixes
enforceVersionChecktooltip corrected: now states Cobblebase must be installed on both server AND client- Admin button uses pending pattern to wait for data before opening
## New Features
### Leaves Collision Mixin
- Pokemon can now fly and walk through leaves freely โ no more getting stuck in tree canopies
- Only affects Pokemon entities, players and other mobs are unaffected
- Pasture box bases built from solid blocks are not affected
### Friend Recruiter Proficiency Overhaul
- Rebalanced proficiency distribution across 755+ species
- Pseudo-Legendaries** (Dragonite, Tyranitar, Salamence, Metagross, Garchomp, Hydreigon, Goodra, Kommo-o, Dragapult, Baxcalibur) โ **Prof 5 (Master)**
- Starter final evolutions** (Venusaur, Charizard, Blastoise, etc.) โ **Prof 4 (Expert)**
- Eeveelutions** + popular Pokemon (Lucario, Gengar, Arcanine, Lapras, Mimikyu, etc.) โ **Prof 4**
- Starter base forms โ Prof 2, mid evolutions โ Prof 3
- Prof 4: 6 โ 51 species | Prof 5: 1 โ 11 species
### Recruiter Species Pool Expansion
- Friend Recruiter now detects ALL loaded species from installed content packs (not just vanilla Cobblemon)
- If you have addon packs installed, their Pokemon can now be recruited too
### GUI Redesign: Bottom Bar
- New **Discord button** (bottom-left) โ quick link to the Cobblebase Discord
- New **Mute toggle** with instant icon update โ no longer requires reopening the GUI
- New **Admin button** (only visible for OP players) โ opens the Admin config panel
- Cleaner bottom bar layout: Discord | Mute | Admin | Done
### Buffs Tab Cooldown Display
- All job descriptions now show the effective cooldown based on proficiency
- Format:
Job description ยท every Xs - Passive buffs (Speed, Haste, etc.) don't show cooldowns as they are always active
## Bug Fixes
### Recruiter Spawn Fix for Flying Pokemon
- Flying Pokemon assigned as Recruiter could never spawn recruits (spawn position was airborne)
- Now spawns recruits near the Pasture Block regardless of where the recruiter is flying
### Recruiter Level Crash
- Fixed crash when a Pokemon below Lv.5 was assigned as Recruiter (
coerceInempty range)
### Escalating Unstick for Flying Pokemon
- Flying Pokemon now get Y-axis variation when stuck (not just horizontal teleport)
- Unstick intensity escalates over time (1-5) with increasing speed
- Prevents flying mons from getting permanently stuck under ceilings or in walls
### Escape Leaves Improvement
- Detects 3 cases: in leaves, on leaves, and flying under a leaf canopy
- Also runs for idle Pokemon (previously only worked for working mons)
- Fences treated as valid ground (won't teleport Pokemon out of fence enclosures)
### Config Audit & Cleanup
- All executors now consistently read cooldowns from Admin GUI overrides
- RecruiterExecutor was reading from a dead ClothConfig setting instead of the Admin GUI override โ fixed
- GathererExecutor was using a hardcoded 2s cooldown instead of the skill definition โ fixed
- Removed dead/duplicate config settings
- Admin GUI job overrides now work correctly for ALL jobs
### Hearty Grain Harvesting
- Fixed 2-block tall Hearty Grain crop harvesting (now correctly handles both top and bottom blocks)
- Only harvests adjacent block if it is also mature โ no longer breaks seedlings
### Other Fixes
enforceVersionChecktooltip corrected: now states Cobblebase must be installed on both server AND client- Admin button uses pending pattern to wait for data before opening
## ๐ญ Producer Job
- New **"Producer"** job โ ~180 Pokemon produce species-specific items
- 35+ item types: wool, string, milk, eggs, honeycomb, gold nuggets, diamonds, slime balls, charcoal, gunpowder, iron nuggets, blaze powder, ghast tears, rabbit's foot, logs, ores, and more
- Includes wood producers (Komala, Timburr-line, Trevenant), ore producers (Roggenrola-line, Copperajah), object Pokemon (Honedge-line, Klink-line), sweets (Alcremie, Milcery)
- Works with proficiency system โ higher prof = faster production
- Removed Honey Collector (replaced by Producer for Combee/Vespiquen)
## ๐ง Admin GUI โ Jobs Tab
- New **"Jobs" tab** in
/cobblebase adminโ configure per-job settings server-wide - Per-job Cooldown** โ set custom cooldown (seconds) for each job
- Per-job Radius Min/Max** โ set allowed search radius range
- Per-job Enable/Disable** โ toggle jobs on/off server-wide
- Save/Reset buttons** โ changes only apply on Save
- Disabled jobs auto-hide from player Skills panel
- Pokemon assigned to disabled jobs auto-reset to Relax
## ๐งญ Scout Improvements
- Xaero's Minimap integration** โ structure/biome discoveries get automatic waypoints with [Add] button
- Search radius increased** โ Prof 1: 100, Prof 2: 300, Prof 3: 500, Prof 4: 750, Prof 5: 1000 blocks
- Spawn rarity filter** โ only Uncommon+ wild Pokemon reported (uses Cobblemon spawn data)
- Surface height** โ TP commands and waypoints use correct Y position
## ๐ Bug Fixes
- C2ME compatibility** โ fixed threading crash (
world.randomโThreadLocalRandom) - Admin Job Config** โ cooldown/radius overrides now actually apply to executors
- SkillDef.copy() NPE** โ Gson null field crash fixed (root cause of many issues)
- Item stacking** โ job-produced items now stack normally with vanilla items
- Pokemon spawn offset** โ teleports place Pokemon 1.5-2.5 blocks from Pasture Block, not on top
- Unstick without teleport** โ stuck Pokemon redirect in random direction instead of TP (safe for pens, aquariums, globes)
- Unstick threshold** โ reduced from 15s to 7s
- Buffs tab** โ Relax mode only shows passive buffs, not all skills
- GUI first-open** โ assignments pre-fetched on server join, correct state on first open
## โ๏ธ Config
- Console Logging toggle** โ
enableConsoleLogging(default: off) to reduce server console spam - All Admin GUI settings include descriptive tooltips
## ๐ญ Producer Job
- New **"Producer"** job โ ~180 Pokemon produce species-specific items
- 35+ item types: wool, string, milk, eggs, honeycomb, gold nuggets, diamonds, slime balls, charcoal, gunpowder, iron nuggets, blaze powder, ghast tears, rabbit's foot, logs, ores, and more
- Includes wood producers (Komala, Timburr-line, Trevenant), ore producers (Roggenrola-line, Copperajah), object Pokemon (Honedge-line, Klink-line), sweets (Alcremie, Milcery)
- Works with proficiency system โ higher prof = faster production
- Removed Honey Collector (replaced by Producer for Combee/Vespiquen)
## ๐ง Admin GUI โ Jobs Tab
- New **"Jobs" tab** in
/cobblebase adminโ configure per-job settings server-wide - Per-job Cooldown** โ set custom cooldown (seconds) for each job
- Per-job Radius Min/Max** โ set allowed search radius range
- Per-job Enable/Disable** โ toggle jobs on/off server-wide
- Save/Reset buttons** โ changes only apply on Save
- Disabled jobs auto-hide from player Skills panel
- Pokemon assigned to disabled jobs auto-reset to Relax
## ๐งญ Scout Improvements
- Xaero's Minimap integration** โ structure/biome discoveries get automatic waypoints with [Add] button
- Search radius increased** โ Prof 1: 100, Prof 2: 300, Prof 3: 500, Prof 4: 750, Prof 5: 1000 blocks
- Spawn rarity filter** โ only Uncommon+ wild Pokemon reported (uses Cobblemon spawn data)
- Surface height** โ TP commands and waypoints use correct Y position
## ๐ Bug Fixes
- C2ME compatibility** โ fixed threading crash (
world.randomโThreadLocalRandom) - Admin Job Config** โ cooldown/radius overrides now actually apply to executors
- SkillDef.copy() NPE** โ Gson null field crash fixed (root cause of many issues)
- Item stacking** โ job-produced items now stack normally with vanilla items
- Pokemon spawn offset** โ teleports place Pokemon 1.5-2.5 blocks from Pasture Block, not on top
- Unstick without teleport** โ stuck Pokemon redirect in random direction instead of TP (safe for pens, aquariums, globes)
- Unstick threshold** โ reduced from 15s to 7s
- Buffs tab** โ Relax mode only shows passive buffs, not all skills
- GUI first-open** โ assignments pre-fetched on server join, correct state on first open
## โ๏ธ Config
- Console Logging toggle** โ
enableConsoleLogging(default: off) to reduce server console spam - All Admin GUI settings include descriptive tooltips
## ๐ Multiplayer
- Skill assignments now sync across all players in real-time
- GUI shows correct job state for all players, not just the one who assigned
- Assignment state fetched from server when opening GUI
## ๐ฆ Gatherer
- Gatherer respects Pasture Block ownership โ no more item stealing between bases
- Fixed Gatherer depositing items into Pasture Blocks (CobBreeding compatibility)
- Support for ALL modded containers (Iron Chests, Sophisticated Storage, etc.)
## ๐ Security
- Version handshake โ server enforces minimum client version
- Kicks outdated or missing clients with download link
## โ๏ธ Config
enableSafetyTeleportโ toggle to disable safety teleportsafetyTeleportDistanceโ configurable 10-100 blocks (default 30)jobSearchRadiusโ renamed from "Default Search Radius" with tooltip- All new settings include descriptive tooltips
## ๐จ UI
- "Idle" renamed to "Relax"
- Removed chat spam from ambient behaviors
## ๐ Bug Fixes
- Fixed ambient walk-together leader/follower system
- Fixed ambient chase/flee duration and speed
- Fixed ambient social range and partner recognition
## ๐ Multiplayer
- Skill assignments now sync across all players in real-time
- GUI shows correct job state for all players, not just the one who assigned
- Assignment state fetched from server when opening GUI
## ๐ฆ Gatherer
- Gatherer respects Pasture Block ownership โ no more item stealing between bases
- Fixed Gatherer depositing items into Pasture Blocks (CobBreeding compatibility)
- Support for ALL modded containers (Iron Chests, Sophisticated Storage, etc.)
## ๐ Security
- Version handshake โ server enforces minimum client version
- Kicks outdated or missing clients with download link
## โ๏ธ Config
enableSafetyTeleportโ toggle to disable safety teleportsafetyTeleportDistanceโ configurable 10-100 blocks (default 30)jobSearchRadiusโ renamed from "Default Search Radius" with tooltip- All new settings include descriptive tooltips
## ๐จ UI
- "Idle" renamed to "Relax"
- Removed chat spam from ambient behaviors
## ๐ Bug Fixes
- Fixed ambient walk-together leader/follower system
- Fixed ambient chase/flee duration and speed
- Fixed ambient social range and partner recognition
### Admin GUI โ In-Game Species Skill Editor
/cobblebase admin** command opens a two-pane admin screen (OP level 2 required)- Left pane:** Searchable species list showing ALL loaded Pokemon including fakemons
- Right pane:** Skill editor with checkbox toggles and proficiency stars (1-5)
- Live updates** โ changes take effect immediately without restart
- Persistence** โ custom assignments saved to
cobblebase_species_overrides.jsonper world - Reset to Default** โ reverts a species to built-in assignments
- Fakemon support** โ assign skills to any species, even those without built-in data
- Add new species** โ type a Fakemon name in the search bar and click "+ Add" to create it
- Pokemon sprites** in the species list with fallback for unknown species
- 3-column skill grid** โ skills displayed in a compact 3-column layout per category
- 0.75x font scaling** โ consistent compact text across all panels
- Click+drag scrollbars** โ both panels have functional draggable scrollbars
- Buff particles disabled** โ player particles from aura buffs (speed swirls, haste glitter etc.) removed
### Fakemon Pack Support โ 7,430 New Species
Built-in skill assignments for 5 popular Fakemon mods:
| Pack | Species |
|------|---------|
| Lively Mons | 59 |
| Alatias Fakemon Pack | 87 |
| Laser's Fakemon Pack | 53 |
| Wilbayan's Fakemons | 37 |
| Gravelmon | 7,194 |
Skills auto-assigned by typing, base stats, and BST tiers:
- BST 600+** (Legendary): Recruiter, Lucky Charm, Aura Boost, Prof 5
- BST 570+** (Pseudo): Aura Boost, high Mentor
- BST 530+**: +2 proficiency bonus
- BST 480+**: +1 proficiency bonus
### Balance & Immersion
- Standardized cooldowns** โ All jobs use 300s base cooldown (Prof 1: ~8 min, Prof 3: 5 min, Prof 5: ~1.7 min)
- Harvester cooldown** โ 60s base (Prof 3: 60s, Prof 5: 20s)
- Legendary Recruiter cooldown** โ 540s base (Prof 1: 15 min, Prof 5: 3 min)
- All loot table item counts halved** โ reduced item spam across 27 loot tables
- Mining: 1 drop per cooldown** โ no more burst looting after cooldown
- Swim speed capped** โ Water mons limited to 0.15 swimSpeed
- Idle wandering** โ All mons wander randomly (15 block radius) when idle
- Cry sound cooldown** โ Max 1 cry per 60 seconds per Pokemon
- Default cry volume** โ 80 โ 30
- In-GUI mute button** โ ๐/๐ toggle in top-right corner
- "Auto" renamed to "Idle"** โ does nothing, only passive buffs remain active
- Growth Aura nerfed** โ pulse 3s โ 30s, crops per pulse 2-16 โ 1-3
- Honey loot reduced** โ 40% 1 comb, 15% 2 combs
- Diving job removed** โ will return improved in future update
### Bug Fixes
- Item dupe glitch** โ Gatherer claims items immediately on targeting
- Skill selection reset** โ no longer resets to "Idle" on tab switch or scroll
- Idle actually idles** โ null assignment no longer runs all skills
- Farfetch'd crash** โ special characters in species names no longer crash GUI
- Mining burst loot** โ was re-rolling every 8s after cooldown, now 1 roll per cycle
- All cooldown formulas standardized** โ Mining, Finder, Scout, Harvester had custom broken formulas
- Gatherer deposit timeout** โ 10s max to reach chest, then force deposit
- Leaves escape** โ mons auto-drop to ground when stuck in tree canopies
- Stuck detection** โ auto-teleport after 15s of not moving
- Navigation fallback** โ tries midpoint + random offset when pathfinding fails
- Console log spam reduced** โ removed 25 per-tick debug log lines
- Dev mode removed** from settings
### Multiplayer
- Pasture lock** โ only the owner can open the Cobblebase GUI
- Owner-only messages** โ Recruiter and Scout notifications sent only to the owner
- Fishing deposits to chest** โ smart sorting with failed chest tracking (other jobs drop on floor for Gatherer)
- Fishing water block cache** โ scanned once, refreshed every 5 min
- Total species: 8,426**
### Admin GUI โ In-Game Species Skill Editor
/cobblebase admin** command opens a two-pane admin screen (OP level 2 required)- Left pane:** Searchable species list showing ALL loaded Pokemon including fakemons
- Right pane:** Skill editor with checkbox toggles and proficiency stars (1-5)
- Live updates** โ changes take effect immediately without restart
- Persistence** โ custom assignments saved to
cobblebase_species_overrides.jsonper world - Reset to Default** โ reverts a species to built-in assignments
- Fakemon support** โ assign skills to any species, even those without built-in data
- Add new species** โ type a Fakemon name in the search bar and click "+ Add" to create it
- Pokemon sprites** in the species list with fallback for unknown species
- 3-column skill grid** โ skills displayed in a compact 3-column layout per category
- 0.75x font scaling** โ consistent compact text across all panels
- Click+drag scrollbars** โ both panels have functional draggable scrollbars
- Buff particles disabled** โ player particles from aura buffs (speed swirls, haste glitter etc.) removed
### Fakemon Pack Support โ 7,430 New Species
Built-in skill assignments for 5 popular Fakemon mods:
| Pack | Species |
|------|---------|
| Lively Mons | 59 |
| Alatias Fakemon Pack | 87 |
| Laser's Fakemon Pack | 53 |
| Wilbayan's Fakemons | 37 |
| Gravelmon | 7,194 |
Skills auto-assigned by typing, base stats, and BST tiers:
- BST 600+** (Legendary): Recruiter, Lucky Charm, Aura Boost, Prof 5
- BST 570+** (Pseudo): Aura Boost, high Mentor
- BST 530+**: +2 proficiency bonus
- BST 480+**: +1 proficiency bonus
### Balance & Immersion
- Standardized cooldowns** โ All jobs use 300s base cooldown (Prof 1: ~8 min, Prof 3: 5 min, Prof 5: ~1.7 min)
- Harvester cooldown** โ 60s base (Prof 3: 60s, Prof 5: 20s)
- Legendary Recruiter cooldown** โ 540s base (Prof 1: 15 min, Prof 5: 3 min)
- All loot table item counts halved** โ reduced item spam across 27 loot tables
- Mining: 1 drop per cooldown** โ no more burst looting after cooldown
- Swim speed capped** โ Water mons limited to 0.15 swimSpeed
- Idle wandering** โ All mons wander randomly (15 block radius) when idle
- Cry sound cooldown** โ Max 1 cry per 60 seconds per Pokemon
- Default cry volume** โ 80 โ 30
- In-GUI mute button** โ ๐/๐ toggle in top-right corner
- "Auto" renamed to "Idle"** โ does nothing, only passive buffs remain active
- Growth Aura nerfed** โ pulse 3s โ 30s, crops per pulse 2-16 โ 1-3
- Honey loot reduced** โ 40% 1 comb, 15% 2 combs
- Diving job removed** โ will return improved in future update
### Bug Fixes
- Item dupe glitch** โ Gatherer claims items immediately on targeting
- Skill selection reset** โ no longer resets to "Idle" on tab switch or scroll
- Idle actually idles** โ null assignment no longer runs all skills
- Farfetch'd crash** โ special characters in species names no longer crash GUI
- Mining burst loot** โ was re-rolling every 8s after cooldown, now 1 roll per cycle
- All cooldown formulas standardized** โ Mining, Finder, Scout, Harvester had custom broken formulas
- Gatherer deposit timeout** โ 10s max to reach chest, then force deposit
- Leaves escape** โ mons auto-drop to ground when stuck in tree canopies
- Stuck detection** โ auto-teleport after 15s of not moving
- Navigation fallback** โ tries midpoint + random offset when pathfinding fails
- Console log spam reduced** โ removed 25 per-tick debug log lines
- Dev mode removed** from settings
### Multiplayer
- Pasture lock** โ only the owner can open the Cobblebase GUI
- Owner-only messages** โ Recruiter and Scout notifications sent only to the owner
- Fishing deposits to chest** โ smart sorting with failed chest tracking (other jobs drop on floor for Gatherer)
- Fishing water block cache** โ scanned once, refreshed every 5 min
- Total species: 8,426**
All notable changes to Cobblebase are documented here.
## [1.1.0] - 2026-04-03
### Skills Tab Redesign
- Dynamic row height** โ Mons with few skills use compact rows (24px), mons with many skills get tall rows (42px) for a tighter layout
- Auto button separated** โ Auto has its own narrow column (36px), skills start in a dedicated column to the right so buttons never mix
- Aura icon inline** โ Removed the separate Aura column; buff icon now appears between Pokemon name and Skills buttons (reserved space for all rows, icon only shows for buff mons)
- Sprite alignment fix** โ Pokemon sprite icon is now top-aligned to match name/level text
- Column headers fix** โ Headers no longer overlap with the first row entries
- Narrower Pokemon column** โ Reduced empty space between name and buttons
### GUI Polish
- Consistent 0.75x font scaling** across all tabs (Skills, Buffs, Logs, Scout)
- Compact footer** โ Footer area reduced from 28px to 18px, smaller Done button
- Tab titles removed** โ "Active Buffs & Jobs", "Activity Log", "Discovery Map" removed from all tabs for more content space
- Hint text removed** โ "Click to assign | Scroll" removed
### Aura Buff Rarity Overhaul
All aura buffs are now significantly rarer โ only the most thematic Pokemon retain them.
| Buff | Before | After | Example Keepers |
|------|--------|-------|-----------------|
| Water Breathing | 133 | 18 | Kyogre, Milotic, Lapras, Vaporeon, Wailord |
| Night Vision | 132 | 15 | Giratina, Umbreon, Darkrai, Yveltal, Spectrier |
| Speed Boost | 45 | 12 | Ninjask, Regieleki, Rapidash, Jolteon, Zeraora |
| Strength Boost | 55 | 12 | Kartana, Rayquaza, Groudon, Machamp, Regigigas |
| Resistance Boost | 58 | 12 | Regirock, Steelix, Melmetal, Aggron, Shuckle |
| Haste Boost | 53 | 12 | Palkia, Dialga, Rayquaza, Mewtwo, Alakazam |
| Saturation Boost | 27 | 10 | Slurpuff, Snorlax, Munchlax, Ting-Lu, Blissey |
| Jump Boost | 5 | 5 | *(unchanged)* |
### 4 New Executors โ All Placeholders Replaced
Every job in Cobblebase is now fully functional.
| Executor | Effect | Key Pokemon |
|----------|--------|-------------|
| ๐ **Lucky Charm** | Boosts shiny rate for wild Pokemon near the **owner** (10-20 block radius, Prof 1: 1.4x, Prof 5: 3.0x) | Arceus (5), Mew (5), Jirachi (4), Victini (4) |
| ๐ **Aura Boost** | Applies Luck effect to nearby players (Prof 1-2: Luck I, Prof 3-4: Luck II, Prof 5: Luck III global) | Victini (5), Rayquaza (5), Arceus (5) |
| ๐ฑ **Growth Aura** | Passively accelerates crop growth near the pasture | Arceus (5), Celebi (5), Shaymin (4) |
| ๐งฏ **Extinguisher** | Scans for and removes fire/soul fire/lit campfires near the base | Wartortle (3), Muk (3), Squirtle (2), Blastoise (?) |
### Honey Collect
- Now fully functional โ drops Honeycomb, Honey Bottles, Honey Blocks without needing beehives
- Pokemon produce honey on cooldown-based drops
### Quality of Life
- Buff logging removed** โ Passive aura buffs no longer clutter the Activity Log
- Lucky Charm**, **Aura Boost**, and **Growth Aura** show as passive icons (๐ โจ ๐ฑ) in the Skills tab
## [0.7.0] - 2026-04-01
### Finder Jobs Renamed to Themed Names
All Finder jobs have been renamed to thematic profession names for better immersion. Internal IDs remain unchanged for backward compatibility.
| Old Name | New Name |
|----------|----------|
| Finder Evo | Alchemist |
| Finder Hea | Pharmacist |
| Finder Bui | Architect |
| Finder Ore | Excavator |
| Finder See | Botanist |
| Finder Bal | Collector |
| Finder Exp | Scholar |
### 5 New Finder Jobs
| Job | Focus | Key Pokemon |
|-----|-------|-------------|
| Chef | Food & cooking items | Snorlax (5), Munchlax (4), Alcremie (4) |
| Trainer | Vitamins & training items | Machamp (5), Lucario (4), Blaziken (4) |
| Armorer | Battle held items | Aegislash (5), Kingambit (5), Scizor (4) |
| Prospector | Relics & treasure | Gholdengo (5), Persian (4), Honchkrow (4) |
| Smith | Smithing templates & pottery | Tinkaton (5), Aegislash (4), Excadrill (3) |
### Botanist Mulch
- Added mulch variants (Growth, Rich, Surprise, Loamy) to Botanist common loot table
## [0.6.0] - 2026-04-01
### Support Buff System
- Added **BuffExecutor** โ applies Minecraft status effects to all players within 16 blocks of the pasture
- Duration scales with proficiency: 15s (Prof 1) to 70s (Prof 5, effectively permanent)
- Cooldown scales with proficiency: 60s (Prof 1) to 0s (Prof 5)
- Themed particles at pasture origin when buffs are applied
- Activity log entries when players receive buffs
### 8 Buff Skills
| Buff | Effect | Key Pokemon |
|------|--------|-------------|
| Speed Boost | Speed II | Jolteon (5), Ninjask (4), Rapidash (4) |
| Strength Boost | Strength I | Machamp (5), Hariyama (4), Conkeldurr (4) |
| Resistance Boost | Resistance I | Steelix (5), Aggron (4), Bastiodon (4) |
| Night Vision | Night Vision | Umbreon (5), Noctowl (4), Espeon (3) |
| Water Breathing | Water Breathing | Lapras (5), Vaporeon (4), Milotic (4) |
| Jump Boost | Jump Boost I | Lopunny (4), Hitmonlee (4), Blaziken (3) |
| Haste Boost | Haste I | Alakazam (4), Metagross (3), Kadabra (3) |
| Saturation Boost | Saturation | Snorlax (5), Munchlax (4), Slurpuff (3) |
## [0.5.0] - 2026-04-01
### Scout Executor
- Added **ScoutExecutor** โ discovers wild Pokemon, structures, and biomes
- Prof 1 = 50-block range (Pokemon only), Prof 5 = 200 blocks (all discovery types)
- Structures (Prof 3+): Villages, Mineshafts, Ruined Portals, Shipwrecks, Ocean Ruins
- Biomes (Prof 4+): Mushroom Fields, Ice Spikes, Cherry Grove, Deep Dark, Lush Caves
- Chat notifications and visual feedback on discovery
### Discovery System
- Added **DiscoveryRegistry** โ persistent server-side storage for discoveries
- Permanent discoveries saved to
cobblebase_discoveries.json - Wild Pokemon sightings auto-expire after 30 minutes
- Chunk-based deduplication prevents re-reporting
### Discovery Tab (4th GUI Tab)
- Scrollable table with Type, Name, Coordinates, Discovered By, When
- Filter buttons: All, Structures, Biomes
- Client-server sync via network packets
### Species Updates
- Ninjask promoted to Scout 5 (fastest scout)
- Added Scout to: Talonflame (4), Stoutland (3), Eevee (2), Growlithe (2), Starly (1), Lillipup (1)
## [0.4.1] - 2026-04-01
### Mining Executor
- Added **MiningExecutor** โ replaces broken HarvesterExecutor for mining skill
- 30-second base cooldown, reduced by proficiency
- 4 loot tiers: Common (tumblestone, raw ores), Uncommon (gold, lapis, type gems), Rare (diamond, fossils), Ultra Rare (ancient debris, netherite scrap)
- 4 new loot table JSONs and LogManager integration
## [0.4.0] - 2026-04-01
### Tabbed GUI
- Added **CobblebaseScreen** โ new tabbed interface with Skills, Buffs, and Logs tabs
- Button renamed from "Skills" to "Cobblebase" in Pasture Block UI
### Buffs Tab
- Shows all active jobs/effects with category color-coding and proficiency stars
### Logs Tab
- Activity log with Time, Pokemon, Action, Item, Rarity columns
- Rarity filters: All, Uncommon+, Rare+, Ultra Rare
- Color-coded entries (gray/green/blue/gold)
### LogManager
- Stores up to 100 entries per pasture, auto-cleanup after 24 hours
- Persistent via
cobblebase_logs.json - Integrated with all executors (Finder, Harvester, Fishing, Guard, Gatherer)
## [0.3.1] - 2026-04-01
### New Finder Subtypes
- Finder Bal** โ Pokeballs: Poke/Great Ball to Master/Beast/Dream Ball
- Finder Exp** โ XP Candies: Exp Candy XS through XL + Rare Candy
- Auto-assigned: Finder Bal to collector Pokemon (Aipom, Zigzagoon), Finder Exp to all Mentor Pokemon
## [0.3.0] - 2026-04-01
### 5 Specialized Finder Subtypes
- Refactored FinderExecutor into class-based system with
finderTypeparameter - Finder Evo** โ Evolution items (stones, trade items, Ability Patch)
- Finder Hea** โ Healing items (potions, berries, revives, Sacred Ash)
- Finder Bui** โ Building materials (planks, bricks, prismarine, crying obsidian)
- Finder Ore** โ Ores and minerals (raw ores, diamonds, ancient debris)
- Finder See** โ Seeds and plants (wheat/apricorn/mint seeds, berries)
- 20 new loot table JSONs, 5 new skill definitions, 21 new species files
## [0.2.0] - 2026-04-01
### Mentor Skill
- Added **MentorExecutor** โ passive XP boost for all Pokemon in the same pasture
- Prof 1 = +20% XP, Prof 5 = +100% (double XP). Highest proficiency wins (no stacking)
- 11 Pokemon: Alakazam (5), Metagross (4), Gardevoir (4), Slowking (4), Oranguru (4), and more
- Configurable max boost via settings
## [0.1.1] - 2026-04-01
### Gatherer Skill
- Added **GathererExecutor** โ picks up dropped items and sorts into nearby chests/barrels
- Smart sorting prioritizes chests with matching items
- Radius 5โ12 blocks based on proficiency
- 9 Pokemon: Snorlax (5), Furret (4), Munchlax (4), Linoone (3), and more
## [0.1.0] - 2026-03-21
### Foundation
- Project setup with Fabric mod template
- SkillRegistry** โ 22 built-in skills across 6 categories
- SpeciesSkillRegistry** โ 90+ Pokemon species with unique skill assignments
- JSON-configurable skill definitions and species assignments
- BaseManager** โ skill dispatch with manual/auto job assignment
- Persistent skill assignments saved to world folder
### Executors
- Harvester, Fishing, Guard, Healer, Generic Loot, Cauldron Fill, Furnace Fuel, Recruiter
- Smart inventory system with chest sorting and distance-based selection
- Navigation helper with pathfinding and timeout fallback
### Friend Recruiter
- Type-based recruiting with official Cobblemon 1.7.3 spawn rarity data
- Proficiency scaling, visual effects (particles + cry), all rates configurable
### Healer
- Direct % healing (5โ25% max HP per tick) + fainted Pokemon revive
- Prioritizes lowest HP percentage
### Finder
- 10-minute cooldown, tiered loot (Pokeballs, Type Gems, Evo Stones, Exp Candy)
### Visual Effects
- Cry + attack animation on success, themed particles, working particles during cooldown
### Passive XP
- 5% of XP to next level every 60s, respects level cap
### GUI
- Cobblebase button in Pasture Block UI
- Dark-themed panel with color-coded skill buttons and proficiency stars
### Settings (Cloth Config)
- Dev Mode, Passive XP, Skill Toggles, Recruiter Cooldowns/Rates, Search Radius