All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Cobblebase

Cobblebase

by notlown โ€ข Downloads: 0 โ€ข Followers: 0
Description
Gallery
Changelog
Versions

Cobblebase

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 #tag bulk-add
  • ๐Ÿ”’ Multiplayer ready โ€” Pasture lock, owner-only notifications
  • ๐Ÿ›ก๏ธ Fully customizable via Cloth Config and JSON datapacks

      

๐ŸŒ Online Tools

๐ŸŒพ 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
1.21.x
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x 1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
## Cobblebase 2.0.1 โ€“ Cobblemon 1.8 Compatibility Hotfix

### ๐Ÿ› 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)
## Cobblebase 2.0.1 โ€“ Cobblemon 1.8 Compatibility Hotfix

### ๐Ÿ› 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)
# Cobblebase v2.0

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
a modal popup with two sliders (Pasture Range, Below-Pasture Reach) plus
an access pill that cycles through ๐Ÿ”’ Private / ๐Ÿ‘ View-Only / ๐Ÿ”“ Public.
  • Per-pasture state** persisted in <world>/cobblebase_pasture_settings.json.
Re-clamped automatically when the admin tightens the caps.
  • Owner gate** โ€” only the pasture's recorded Cobblemon ownerId (or an
OP) can mutate settings. Server-side BaseManager.canEditPasture revalidates
every C2S packet, so a tampered client can't write.
  • Admin caps split** โ€” the single "Pasture Range" / "Below-Pasture Reach"
sliders are now MIN + MAX pairs. Owners pick any value in [min, max];
legacy single-value behaviour preserved by defaulting overrides to MAX.
  • Every active block-scanning job (Harvester, Gatherer, Builder, Supplier,
Cauldron-Fill, Extinguisher, FurnaceFuel, Fishing, Irrigator, Healer,
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 is
currently 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
above (for (y in 0..radius)), which hid apricorns and berries on
cliff-edge or stair-garden trees that grow a few blocks below the
pasture block.
  • The Y loop is now asymmetric: full radius upward (tall berry bushes,
hanging apricorns), but only belowPastureReach downward โ€” admin- and
owner-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
its job category; available chips render muted so the eye knows where
to look.
  • Uniform chip height** between active and available (no more
bulging-row silhouette). Differentiation by colour, not size.
  • Row 18 px** so 10+ rows fit on screen without scrolling.
  • Sprites slightly bigger, names slightly smaller**; row layout brings
every column on the same vertical centre line.
  • New Relax column** between Pokemon and Skills (icon-only zZz button).
  • Auto-Assign Best button** โ€” Pasture sub-tab only, single click
assigns the highest-prof skill per Pokemon.

## Skill Chips Polish

Every chip in the Skills view got rebuilt:

  • Alphabetical sort** (sortedBy name.lowercase) โ€” the previous prof-DESC
order was confusing for users with mixed teams.
  • 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
down so it never marquees.
  • Drop-shadow on prof stars** so they remain readable against any chip
background colour.
  • Uniform width** (60 px) โ€” no more dynamic 42โ€“64 px range that made
the right edge of the row look ragged.
  • Job icons revamped** for semantic match โ€” Healer โ†’ Totem of Undying,
Pharmacist โ†’ Potion, Friend Recruiter โ†’ Name Tag, Speed Boost โ†’ Feather,
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)
across every tab โ€” no more re-clicking through tabs to reach the radius
toggle.
  • BOTTOM_BAR_H = 14** (was 20). Sub-panels' 18-px dead zone above the
bottom bar is gone.
  • Bottom bar uniform height** across all tabs.
  • Radius toggle no longer closes the GUI** on click โ€” flip ON/OFF
without the PC GUI snapping shut every time.

## 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
for every numeric setting. Min/max sliders for Pasture Range and
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
player tab disappears from the user GUI entirely.
  • Admin โ†’ Jobs โ†’ Craftsman โ†’ Recipes** tab โ€” enable/disable individual
vanilla + mod recipes per Craftsman.

## Hatchery + Workshop

  • HatcheryPanel** now uses UiTokens for every padding and font scale (3
scales instead of 6).
  • Idle-state message** โ€” when no eggs are in the box, the Active Hatchers
row says "X is ready, drop egg" instead of the misleading
"assign the egg hatcher" hint.
  • Egg-orphan periodic sweep** every cleanup interval โ€” floating egg
ItemDisplay entities surviving across restarts are now purged
whenever 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
hatcher's body, not floating in its head.
  • WorkshopPanel** also tokenised; Workshop sub-tabs renamed and laid
out to match the rest of the GUI.

## Logs Tab

  • Match by pastureId** instead of geometric-nearest pasture โ€” fixes the
cross-pasture log-leak where two pastures showed identical entries.
  • Per-job colour palette** (JobColors is the single source of truth).
Each job's chip BG, Buffs name colour, and Logs row tint share the
same hue.
  • Full-size Pokemon sprite** (renderIconByName 16 px) in 14-px rows โ€”
Pokemon are recognisable at a glance instead of a tiny 11-px badge.
  • Drop zebra striping** โ€” uniform base + per-action tint stacked on
top so two consecutive same-action rows render identical (no zebra
+ tint combinatorial confusion).

## Buffs Tab

  • Passive dedupe** โ€” only the highest-prof mon per buff actually
applies its effect (no stack-on-stack waste).
  • Per-buff name colour** matches the effect it applies โ€” Speed reads
as sky-blue, Strength as fire-red, Aura as gold.
  • Meaningful effect descriptions** for every job. Diving, Builder, and
Craftsman previously fell through to "Working" โ€” now show
"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
the centre when the pasture is large.
  • Safety-teleport** has an admin-radius floor so mons can be pulled
back from anywhere the wander could reach them.
  • Tether resize REMOVED** โ€” the previous attempt to shrink Cobblemon's
64-block tether to the admin radius caused mons to despawn into the
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 across
every 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
cooldowns of 12 executors because the sweep used the cooldown timer
itself as the "last seen" heartbeat. Executors now use a dedicated
lastScanTime heartbeat updated every tick.
  • Flying mons stuck in trees / fences** โ€” escapeLeaves now clears
brain memory every tick (not only on the 1s sweep), has a wider
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
by geometric distance.
  • Cobblebase main button collides with other mods' buttons** โ€” fixed
by making it position-configurable (four corners of the PC GUI) and
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
โ†ป now snaps to the documented default value with a yellow tick on
the track marking it.
  • Egg Hatcher effect description showed "Working"** โ€” now displays the
prof-keyed speed multiplier ("Incubating Cobbreeding eggs ยท 3ร— speed").

## 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.

# Cobblebase v2.0

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
a modal popup with two sliders (Pasture Range, Below-Pasture Reach) plus
an access pill that cycles through ๐Ÿ”’ Private / ๐Ÿ‘ View-Only / ๐Ÿ”“ Public.
  • Per-pasture state** persisted in <world>/cobblebase_pasture_settings.json.
Re-clamped automatically when the admin tightens the caps.
  • Owner gate** โ€” only the pasture's recorded Cobblemon ownerId (or an
OP) can mutate settings. Server-side BaseManager.canEditPasture revalidates
every C2S packet, so a tampered client can't write.
  • Admin caps split** โ€” the single "Pasture Range" / "Below-Pasture Reach"
sliders are now MIN + MAX pairs. Owners pick any value in [min, max];
legacy single-value behaviour preserved by defaulting overrides to MAX.
  • Every active block-scanning job (Harvester, Gatherer, Builder, Supplier,
Cauldron-Fill, Extinguisher, FurnaceFuel, Fishing, Irrigator, Healer,
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 is
currently 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
above (for (y in 0..radius)), which hid apricorns and berries on
cliff-edge or stair-garden trees that grow a few blocks below the
pasture block.
  • The Y loop is now asymmetric: full radius upward (tall berry bushes,
hanging apricorns), but only belowPastureReach downward โ€” admin- and
owner-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
its job category; available chips render muted so the eye knows where
to look.
  • Uniform chip height** between active and available (no more
bulging-row silhouette). Differentiation by colour, not size.
  • Row 18 px** so 10+ rows fit on screen without scrolling.
  • Sprites slightly bigger, names slightly smaller**; row layout brings
every column on the same vertical centre line.
  • New Relax column** between Pokemon and Skills (icon-only zZz button).
  • Auto-Assign Best button** โ€” Pasture sub-tab only, single click
assigns the highest-prof skill per Pokemon.

## Skill Chips Polish

Every chip in the Skills view got rebuilt:

  • Alphabetical sort** (sortedBy name.lowercase) โ€” the previous prof-DESC
order was confusing for users with mixed teams.
  • 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
down so it never marquees.
  • Drop-shadow on prof stars** so they remain readable against any chip
background colour.
  • Uniform width** (60 px) โ€” no more dynamic 42โ€“64 px range that made
the right edge of the row look ragged.
  • Job icons revamped** for semantic match โ€” Healer โ†’ Totem of Undying,
Pharmacist โ†’ Potion, Friend Recruiter โ†’ Name Tag, Speed Boost โ†’ Feather,
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)
across every tab โ€” no more re-clicking through tabs to reach the radius
toggle.
  • BOTTOM_BAR_H = 14** (was 20). Sub-panels' 18-px dead zone above the
bottom bar is gone.
  • Bottom bar uniform height** across all tabs.
  • Radius toggle no longer closes the GUI** on click โ€” flip ON/OFF
without the PC GUI snapping shut every time.

## 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
for every numeric setting. Min/max sliders for Pasture Range and
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
player tab disappears from the user GUI entirely.
  • Admin โ†’ Jobs โ†’ Craftsman โ†’ Recipes** tab โ€” enable/disable individual
vanilla + mod recipes per Craftsman.

## Hatchery + Workshop

  • HatcheryPanel** now uses UiTokens for every padding and font scale (3
scales instead of 6).
  • Idle-state message** โ€” when no eggs are in the box, the Active Hatchers
row says "X is ready, drop egg" instead of the misleading
"assign the egg hatcher" hint.
  • Egg-orphan periodic sweep** every cleanup interval โ€” floating egg
ItemDisplay entities surviving across restarts are now purged
whenever 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
hatcher's body, not floating in its head.
  • WorkshopPanel** also tokenised; Workshop sub-tabs renamed and laid
out to match the rest of the GUI.

## Logs Tab

  • Match by pastureId** instead of geometric-nearest pasture โ€” fixes the
cross-pasture log-leak where two pastures showed identical entries.
  • Per-job colour palette** (JobColors is the single source of truth).
Each job's chip BG, Buffs name colour, and Logs row tint share the
same hue.
  • Full-size Pokemon sprite** (renderIconByName 16 px) in 14-px rows โ€”
Pokemon are recognisable at a glance instead of a tiny 11-px badge.
  • Drop zebra striping** โ€” uniform base + per-action tint stacked on
top so two consecutive same-action rows render identical (no zebra
+ tint combinatorial confusion).

## Buffs Tab

  • Passive dedupe** โ€” only the highest-prof mon per buff actually
applies its effect (no stack-on-stack waste).
  • Per-buff name colour** matches the effect it applies โ€” Speed reads
as sky-blue, Strength as fire-red, Aura as gold.
  • Meaningful effect descriptions** for every job. Diving, Builder, and
Craftsman previously fell through to "Working" โ€” now show
"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
the centre when the pasture is large.
  • Safety-teleport** has an admin-radius floor so mons can be pulled
back from anywhere the wander could reach them.
  • Tether resize REMOVED** โ€” the previous attempt to shrink Cobblemon's
64-block tether to the admin radius caused mons to despawn into the
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 across
every 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
cooldowns of 12 executors because the sweep used the cooldown timer
itself as the "last seen" heartbeat. Executors now use a dedicated
lastScanTime heartbeat updated every tick.
  • Flying mons stuck in trees / fences** โ€” escapeLeaves now clears
brain memory every tick (not only on the 1s sweep), has a wider
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
by geometric distance.
  • Cobblebase main button collides with other mods' buttons** โ€” fixed
by making it position-configurable (four corners of the PC GUI) and
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
โ†ป now snaps to the documented default value with a yellow tick on
the track marking it.
  • Egg Hatcher effect description showed "Working"** โ€” now displays the
prof-keyed speed multiplier ("Incubating Cobbreeding eggs ยท 3ร— speed").

## 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.

## Cobblebase v1.5.4

### 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.
## Cobblebase v1.5.4

### 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.
# Cobblebase v1.5.3

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, or Items components). 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 |

# Cobblebase v1.5.3

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, or Items components). 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 |

# Cobblebase v1.5.2

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 of LOGGER.info(). They are suppressed by Minecraft's default log4j configuration and only visible when explicitly enabling DEBUG level logging. The enableConsoleLogging config 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 |
# Cobblebase v1.5.2

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 of LOGGER.info(). They are suppressed by Minecraft's default log4j configuration and only visible when explicitly enabling DEBUG level logging. The enableConsoleLogging config 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 |
# Cobblebase v1.5.1

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
# Cobblebase v1.5.1

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
# Cobblebase v1.5.0

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 Identifier and RegistryKey objects 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 diamond and pick minecraft:diamond from 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.json and apply immediately to the next loot generation
  • Two orphaned loot tables removed: honey_collect (now produced by the Producer job) and dive_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/radiusMax which were dead fields. Now writes searchRadius directly, which the executors consume via SkillRegistry.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/*.json files cover thousands of fakemon names from optional addons. The list now intersects with PokemonSpecies.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 at pos.y + 0.25 with 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 .json extension restored** โ€” the loader filters by endsWith ".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$0 mixin crash (NeoForge already declared this)
  • 22 broken cobblebase:cauldron_fill references** in species_skills JSONs replaced with the actual cobblebase:water_fill id โ€” 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
# Cobblebase v1.5.0

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 Identifier and RegistryKey objects 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 diamond and pick minecraft:diamond from 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.json and apply immediately to the next loot generation
  • Two orphaned loot tables removed: honey_collect (now produced by the Producer job) and dive_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/radiusMax which were dead fields. Now writes searchRadius directly, which the executors consume via SkillRegistry.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/*.json files cover thousands of fakemon names from optional addons. The list now intersects with PokemonSpecies.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 at pos.y + 0.25 with 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 .json extension restored** โ€” the loader filters by endsWith ".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$0 mixin crash (NeoForge already declared this)
  • 22 broken cobblebase:cauldron_fill references** in species_skills JSONs replaced with the actual cobblebase:water_fill id โ€” 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
# Cobblebase v1.4.0

## 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 (coerceIn empty 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
  • enforceVersionCheck tooltip corrected: now states Cobblebase must be installed on both server AND client
  • Admin button uses pending pattern to wait for data before opening
# Cobblebase v1.4.0

## 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 (coerceIn empty 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
  • enforceVersionCheck tooltip corrected: now states Cobblebase must be installed on both server AND client
  • Admin button uses pending pattern to wait for data before opening
# v1.3.8 โ€” Producer Job, Admin GUI & Scout Update

## ๐Ÿญ 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
# v1.3.8 โ€” Producer Job, Admin GUI & Scout Update

## ๐Ÿญ 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
# v1.3.7 โ€” Multiplayer & Quality of Life Update

## ๐Ÿ”„ 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 teleport
  • safetyTeleportDistance โ€” 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
# v1.3.7 โ€” Multiplayer & Quality of Life Update

## ๐Ÿ”„ 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 teleport
  • safetyTeleportDistance โ€” 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
## [1.3.0] - 2026-04-04

### 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.json per 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**
## [1.3.0] - 2026-04-04

### 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.json per 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**
GUI BLUR BUG FIX
GUI BLUR BUG FIX
blurry fix
# Changelog

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 finderType parameter
  • 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
Cobblebase Icon
Download Cobblebase
Select game version
Select platform