ExMobStacker | Advanced Mob Stacking | Per-Mob Limits | 1.8–26.1+ icon

ExMobStacker | Advanced Mob Stacking | Per-Mob Limits | 1.8–26.1+ -----

Smart, high-performance mob stacking with full control and cross-version support.




[​IMG]

ExMobStacker

Advanced Mob Stacking Plugin

/exmobstacker
Sale Ends May 17th

Features

  • ✔ Smart mob stacking system
  • ✔ Per-mob stack limits
  • ✔ Baby & adult mob separation
  • ✔ Supports multiple mob types simultaneously
  • ✔ Highly configurable behavior
  • ✔ In-game admin GUI
  • ✔ Full command system
  • ✔ 18 language support
  • ✔ Cross-version compatibility (1.8 → 26.1+)
  • ✔ Optimized performance

In-Game UI

Admin Configuration Interface

[​IMG]
Full in-game control over stacking behavior and settings

Language System & Localization

[​IMG]
Automatic language detection with manual override support

Live Gameplay

Stacking System in Action

[​IMG]

Multiple mob types with independent stacking behavior

Accurate stacking with adult and baby separation

Works across multiple entities simultaneously

Commands

Code (Text):

/exmobstacker config
/exmobstacker reload
/exmobstacker scan
/exmobstacker info
/exmobstacker cleanup
/exmobstacker limits
/exmobstacker language
/exmobstacker language ?
/exmobstacker language status
/exmobstacker language <code|auto>
/exmobstacker language default <code>
/exmobstacker language console <code>
/exmobstacker language selection <on|off>
 

Permissions

Code (Text):

exmobstacker.admin
exmobstacker.admin-ui
exmobstacker.language
exmobstacker.update.notify
 

Installation

  1. Download the plugin .jar
  2. Place it in /plugins/
  3. Start or restart your server
  4. Edit config in /plugins/ExMobStacker/
  5. Use /exmobstacker reload

Language Support

  • 18 languages included
  • Automatic locale detection
  • Manual language override
  • GUI-based selection

Version History

v1.1.9
  • Fixed remaining watchdog scan hot paths by caching disabled-world configuration values.
  • Added per-scan entity and nearby-entity safety limits to prevent full-world scan lockups.
  • Added scan-local variant key caching so repeated pair checks do not repeatedly rebuild variant data.
  • Switched EntityVariantService reflection caches from ConcurrentHashMap to HashMap because all scan access is on the server thread.

v1.1.8
  • Fixed ConsoleLogger syntax errors.
  • Corrected startup console formatting implementation.

v1.1.7
  • Updated colored console output to match the clean EndCoder startup format.
  • Removed version text from the console prefix while keeping the centered startup banner version.
  • Updated server version display to use Bukkit reported version text.

v1.1.6
  • Fully removed unsupported PlayerLeashEntityEvent references for legacy compatibility.

v1.1.5
  • Removed every Java reference to unsupported leash event classes.
  • Rebuilt leash split handling with PlayerInteractEntityEvent for 1.8+ compatibility.
  • Used material-name checks for LEASH/LEAD compatibility instead of direct modern enum references.

v1.1.4
  • Fixed legacy API compatibility for leash handling.
  • Replaced unsupported PlayerLeashEntityEvent usage with cross-version interaction handling.

v1.1.3
  • Added leash split handling: leashing a stacked mob now separates one mob from the stack.
  • Kept leashed mobs excluded from future stacking.
  • Reused cached passenger checks for camel participation to avoid reflection in the scan hot path.

v1.1.2
  • Fixed leashed mobs being allowed to participate in stacking.
  • Improved leash-state merge prevention handling.

v1.1.1
  • Fixed watchdog freezes on Bukkit API `26.1+` / Java 25 caused by repeated reflective passenger and leash method lookups inside the main stack scan loop.
  • Cached ride-state and leash compatibility methods once from the Bukkit interfaces instead of resolving methods from CraftBukkit entity classes for every merge check.
  • Preserved 1.8+ compatibility by keeping passenger/leash checks reflective while removing the repeated hot-path `Class.getMethod(...)` calls.
  • Synced release version to `1.1.1` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.1
  • Added Bukkit API `26.1+` compatibility handling for modern 1.21+ server lines.
  • Hardened version detection so unversioned or newly numbered Bukkit/CraftBukkit packages no longer break compatibility helpers.
  • Blocked actively leashed mobs from participating in new merges to avoid unsafe 1.21.6+ leash-state merges.
  • Added `HAPPY_GHAST` to the default excluded entity list because it is a rideable/controlled mob and should not be stacked by default.
  • Added Maven resource filtering so `plugin.yml` resolves `${project.version}` into the final jar filename/version correctly.
  • Added missing `exmobstacker.update.notify` permission metadata to `plugin.yml`.
  • Synced release version to `1.1` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.86
  • Fixed watchdog crash caused by repeated `setCustomName()` calls during stack scan display refresh.
  • Added display-name caching so Bukkit custom names are only updated when the displayed text actually changes.
  • Added safe display-name trimming with `custom-name-max-length` defaulting to `96`.
  • Reduced repeated custom-name clearing calls for unstacked mobs.
  • Synced version to `1.0.86` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.85
  • Fixed a server watchdog crash during stack scans caused by repeated reflective missing-method lookups on newer Spigot entities.
  • Added cached variant-method lookups so unsupported entity methods are remembered instead of throwing thousands of `NoSuchMethodException` checks during scans.
  • Kept the v1.0.84 natural death drop behavior while making scan/merge variant checks safe for 1.21.11.
  • Synced version to `1.0.85` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.84
  • Fixed stacked mob kills so Bukkit completes the real death event and vanilla/plugin-modified drops are no longer lost.
  • Respawns the remaining stack after a natural stacked death while preserving key variant state across supported versions.
  • Stopped cancelling lethal stacked mob damage, keeping experience, equipment drops, and EntityDeathEvent drop edits intact.
  • Synced version to `1.0.84` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.83
  • Maintained the premium release package alignment for the update-checker/resource-id ready build.
  • Synced version to `1.0.83` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.82
  • Added a built-in Spigot update checker framework with async startup/interval checks and admin join notifications.
  • Kept the updater dormant until the real Spigot resource id is patched into the code for the release replacement build.
  • Added an `update-checker` config section for enabling checks, interval timing, and join-notify behavior without exposing the resource id in config.
  • Synced version to `1.0.82` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.81
  • Fixed the player language GUI status compass showing raw translation keys instead of the resolved localized text.
  • Corrected the status item to use the existing GUI language message paths for the status name and mode lines.
  • Synced version to `1.0.81` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.80
  • Finished the remaining localization cleanup outside the GUI by adding admin language commands for default language, console language, and player-selection toggling.
  • Cleaned the `config.yml` localization block by adding an explicit `available-languages` list and keeping `en_us` as the guaranteed fallback.
  • Normalized configured language settings during startup and reload so invalid language values fall back safely instead of drifting out of sync with the bundled language set.
  • Synced version to `1.0.80` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.79
  • Hardened the GUI layer with shared inventory-holder identification so admin and language menus no longer depend on fragile title matching across server versions.
  • Tightened GUI click handling to only process clicks from the top menu inventory and safely ignore null, air, and player-inventory interactions.
  • Centralized GUI material selection into reusable cross-version helpers to keep admin and language menu rendering consistent from 1.8 through latest.
  • Synced version to `1.0.79` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.78
  • Fixed GUI crashes on modern servers caused by direct legacy `Material` enum references in admin and language inventories.
  • Added safe cross-version material resolution for GUI filler and menu items.
  • Preserved existing GUI behavior while restoring compatibility across supported server versions.

v1.0.77
  • Fixed GUI click crashes on modern servers caused by removed `Inventory.getTitle()` usage in admin and player language inventory handling.
  • Updated GUI inventory detection to use the player inventory view path so admin and language menus could be interacted with again on modern server versions.
  • Synced version to `1.0.77` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.76
  • Added `/exmobstacker language status` so players and console can both inspect the active language path without changing settings.
  • Added a language status panel to the player language GUI showing stored mode, resolved language, client locale, and fallback language.
  • Corrected the missing `v1.0.72` README history entry and kept version history in proper order.
  • Synced version to `1.0.76` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.75
  • Expanded the admin config UI into a safer multi-screen layout for toggles, language settings, stack-limit viewing, and reload access.
  • Made `/exmobstacker language` sender-aware so players can use the GUI by default while console can view or set the console language with the same command.
  • Added persistent console language handling with `en_us` as the default fallback.
  • Improved stack merge safety by blocking problematic ride-state and leash-state merges and by respecting per-type stack limits during merge resolution.
  • Corrected duplicated README version history alignment and synced the project version across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.74
  • Continued localization and admin UI cleanup groundwork for the sender-aware language system and admin configuration flow.

v1.0.73
  • Changed `/exmobstacker language` into a dual-function player command: it now opens the language selector GUI by default when no second argument is provided.
  • Added `/exmobstacker language ?` to print the available language codes so players can choose between GUI selection or manual code entry.
  • Kept manual language setting support through `/exmobstacker language <code|auto>` and preserved `/exmobstacker language gui` as a compatibility alias.
  • Updated tab completion and localized help text for the revised language flow.
  • Synced version to `1.0.73` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.72
  • Cleaned the `config.yml` localization and admin UI sections so the newer language flow and settings areas were grouped more clearly.
  • Added a player language selector GUI and tied it into the `/exmobstacker language` workflow as part of the ongoing localization UI expansion.
  • Fixed the root command permission structure so player language subcommands could be reached without exposing admin-only actions.
  • Synced version to `1.0.72` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.71
  • Added `/exmobstacker limits` to show the default per-mob stack limit plus configured custom overrides from `config.yml`.
  • Expanded `/exmobstacker info` to include the default per-mob limit and the number of custom stack-limit entries.
  • Added tab completion and localized help/message entries for the new limits output.
  • Restored the missing `v1.0.8` README history entry into the correct chronological position.
  • Synced version to `1.0.71` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.70
  • Cleaned the duplicated trailing README version-history block left from an older release note insertion.
  • Preserved all existing plugin functionality and code paths.
  • Synced version to `1.0.70` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.69
  • Added explicit `plugin.yml` permission metadata for `exmobstacker.admin` and `exmobstacker.language`.
  • Kept the existing `exmobstacker.admin-ui` permission entry intact.
  • Synced version to `1.0.69` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.68
  • Added hard cap enforcement for per-mob stack limits.
  • Stacks no longer exceed configured limits.
  • Overflow now correctly remains on the source entity instead of being lost.
  • Improves consistency and prevents silent stack overflow issues.
  • Synced version to `1.0.68` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.67
  • Fixed `plugin.yml` api-version placement required by language server.
  • Ensured api-version is correctly defined directly under version.
  • Synced version to `1.0.67`.

v1.0.66
  • Fixed the duplicated `usage` entry in the `plugin.yml` `exmobstacker` command block by rebuilding the command section cleanly.
  • Kept `api-version: 1.13` and a single `exmobstacker.admin-ui` permission entry in `plugin.yml`.
  • Fixed the remaining `StackService` compile error by removing the unresolved variable from the per-mob stack limit line and restoring a clean max stack size lookup path.
  • Synced version to `1.0.66` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.65
  • Fixed `plugin.yml` structure by adding `api-version: 1.13` and removing the duplicate `exmobstacker.admin-ui` permission key.
  • Fixed the remaining `StackService` compile error by resolving the per-mob stack limit lookup against the in-scope living entity variable.
  • Synced version to `1.0.65` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.64
  • Fixed compile error in `StackService` caused by an unresolved variable in the per-mob stack limit lookup.
  • Corrected the stack limit resolution to use the in-scope entity for that merge path.
  • Synced version to `1.0.64` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.63
  • Added per-mob stack limits with a new `stack-limits` config section.
  • Stack merging now respects entity-specific limits with a default fallback when no mob-specific value is defined.
  • Synced version to `1.0.63` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.62
  • Added tab completion for `/exmobstacker` subcommands and `/exmobstacker language <code|auto>`.
  • Locale tab suggestions are now driven directly from the supported language list so future language additions stay in sync automatically.
  • Added `exmobstacker.admin-ui` permission metadata for the in-game config UI.
  • Synced version to `1.0.62` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.61
  • Added a full localization framework for both player-facing messages and console output.
  • Bundled language packs for `en_us`, `bg_bg`, `da_dk`, `de_de`, `es_cu`, `es_es`, `es_mx`, `es_us`, `es_ve`, `fil_ph`, `fr_ca`, `fr_fr`, `ga_ie`, `gd_gb`, `it_it`, `nl_nl`, `pl_pl`, and `ru_ru`.
  • Added automatic player locale detection using the client locale when available, plus `/exmobstacker language <code|auto>` and `/exmobstacker languages`.
  • Added an in-game admin config UI at `/exmobstacker config` with toggle controls for core boolean settings.
  • Cleaned the main config layout and added `localization` and `admin-ui` sections while preserving existing stacking behavior defaults.
  • Synced version to `1.0.61` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.60
  • Removed the duplicate `isCamelEntity(LivingEntity)` helper from `StackService`.
  • Fixes the duplicate method compile error while keeping camel stacking participation logic intact.
  • Synced version to `1.0.60` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.59
  • Fixed camel participation by routing camels through a dedicated participation path before the generic tamed-mob filter runs.
  • Camels now use horse-like stacking rules: baby state still matters, saddle state remains in the internal camel key, and occupied camels are excluded from stacking.
  • Excluded camels from the generic `isTamed` path so they are no longer blocked when `ignore-tamed-mobs` is enabled.
  • Synced version to `1.0.59` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.58
  • Set default `target-chat-enabled` to false.
  • Set default `target-sidebar-enabled` to false.
  • Synced version to `1.0.58`.

v1.0.57
  • Reworked camel participation so camels now enter the normal stacking pipeline instead of being filtered out before matching.
  • Camel handling now behaves more like horses: adult and baby state still matter, saddle state is included in the internal camel variant key, but transient sit and dash pose differences are ignored.
  • Prevented occupied camels from stacking by excluding camels that currently have riders or are riding another entity.
  • Synced version to `1.0.57` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.56
  • Fixed camel stacking with a dedicated fallback matcher for camels on modern versions.
  • Camel target selection now allows same-type, same-age-state camels to merge even if an unseen runtime state causes the normal variant key comparison to miss.
  • Kept the fallback scoped only to camels so other mob families still rely on the normal exact variant key path.
  • Synced version to `1.0.56` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.55
  • Fixed camel stacking by normalizing camel-specific state handling so adult camels no longer fail to merge because of transient sitting or dashing differences.
  • Excluded camels from the generic tamed-mob ignore path so camel stacking remains active even when `ignore-tamed-mobs` is enabled for other mob families.
  • Kept the camel change scoped so existing tamed handling for wolves, cats, horses, and other tameables is unchanged.
  • Synced version to `1.0.55` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.54
  • Fixed the corrupted `StackService` class header that was causing duplicate modifier, premature field reference, and missing block compile errors.
  • Removed the malformed injected visibility snippet from the class declaration area and restored a valid `public final class StackService {` header.
  • Synced version to `1.0.54` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.53
  • Fixed StackService syntax error caused by malformed class injection.
  • Restored proper class structure and removed invalid visibility method block.
  • Resolves compilation errors on lines 25 and 30.
  • Synced version to `1.0.53`.

v1.0.51
  • Added configurable name visibility distance for stacked mobs.
  • Prevents name rendering at long distances to reduce clutter and improve performance.
  • Default distance set to 32 blocks configurable.
  • Synced version to `1.0.51`.

v1.0.50
  • Added per-mob display color overrides in `config.yml`.
  • Mob type colors now check explicit entity overrides first, then fall back to friendly, hostile, neutral, boss, or fallback category colors.
  • Included default override examples for Creeper, Spider, and Enderman without changing the base category system.
  • Synced version to `1.0.50` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.49
  • Added configurable display colors for stack amount, multiplier, and mob type categories.
  • Moved mob type coloring into config-driven resolution so friendly, hostile, neutral, boss, and fallback colors can be changed without code edits.
  • Cleaned the display layer so mob names remain plain text internally and colors are applied only when building target messages, HUD lines, and floating names.
  • Updated default display formats to use `%amount-color%`, `%multiplier-color%`, and `%type-color%` tokens.
  • Synced version to `1.0.49` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.48
  • Added boss mob coloring purple for Wither and Ender Dragon.
  • Kept detection version-safe using entity type names with no API break risk.
  • Preserved hostile, friendly, and neutral classification system.
  • Synced version to `1.0.48`.

v1.0.47
  • Added neutral mob classification yellow for ambient and water mobs.
  • Refined friendly green and hostile red detection using Bukkit entity classes.
  • Fallback color set to white for unknown entity types.
  • Synced version to `1.0.47`.

v1.0.46
  • Adjusted stack format spacing so `x` is directly attached to the number, e.g. `12x Cow`.
  • Format now: `&d%amount%&fx %type%`.
  • Synced version to `1.0.46`.

v1.0.45
  • Fixed floating mob name coloring so the `%type%` portion now applies dynamic friendly or hostile colors instead of staying white.
  • Hostile mob names now render red and friendly mob names now render green while keeping the amount magenta and the `x` white.
  • Kept color handling in the display layer only so stack identity and variant matching remain internal.
  • Synced version to `1.0.45` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.44
  • Updated stack display colors.
  • Amount = magenta.
  • `x` = white.
  • Mob name reserved for friendly/hostile coloring layer.
  • Updated default format to `&d%amount%&f x %type%`.
  • Synced version to `1.0.44`.

v1.0.43
  • Simplified floating stack names to display clean mob names only instead of variant-heavy labels.
  • Changed the default stack name format to `%amount%x %type%` so floating names read like `12x Cat`.
  • Kept all variant tracking internal to the stack identity system so display text is no longer overloaded.
  • Synced version to `1.0.43` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.42
  • Fixed active variant matching so cat types are now included in the stack key instead of collapsing together.
  • Expanded panda matching beyond the main gene to include hidden gene and state flags like sneezing, eating, scared, rolling, and on-back.
  • Added matching display support for fox, cat, and panda variants so modern mob names reflect the separated variants better.
  • Synced version to `1.0.42` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.41
  • Synced release metadata to `1.0.41` across `pom.xml`, `plugin.yml`, and `README.md`.
  • Restored missing revision history entries for releases after `1.0.33`.
  • Kept the current cat, panda, and fox variant separation work intact.

v1.0.40
  • Fixed variant key separation for modern mobs by namespacing fox, panda, and cat values.
  • Corrected modern variant stacking so cat types do not collapse into one stack.
  • Corrected panda variant stacking so gene values are separated in the stack key.
  • Synced version to `1.0.40` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.39
  • Integrated fox, panda, and cat variant parts into the live stacking comparison key.
  • Kept the integration additive and reflection-safe for older server versions.
  • Preserved existing stacking logic while activating the new modern variant checks.
  • Synced version to `1.0.39` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.38
  • Rebuilt from the clean `1.0.33` baseline to remove the corrupted `EntityVariantService` edits.
  • Restored a stable compile state with the new helper methods added only once at class scope.
  • Preserved the working stacking baseline while preparing safe modern variant expansion.
  • Synced version to `1.0.38` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.37
  • Added reflection-safe helper methods for fox type, panda gene, and cat type handling.
  • Kept the modern helper methods compatible with legacy versions by returning empty values when unsupported.
  • Preserved the existing stacking baseline without rewriting core systems.
  • Synced version to `1.0.37` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.36
  • Corrected the broken `EntityVariantService` update that placed helper methods in the wrong scope.
  • Fixed the resulting syntax errors, duplicate local variable errors, and undefined helper method calls.
  • Restored a clean compile path while keeping the intended fox, panda, and cat support work moving forward.
  • Synced version to `1.0.36` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.35
  • Added grouped Minecraft version range detection for `1.8.x`, `1.9–1.12`, `1.13–1.16`, `1.17–1.20`, and `1.21+`.
  • Introduced the `VersionUtil` foundation for cleaner cross-version branching in future updates.
  • Kept the change additive so no working stacking systems were altered.
  • Synced version to `1.0.35` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.34
  • Expanded modern mob variant planning to cover fox, panda, and cat handling.
  • Established the next safe compatibility target beyond sheep, rabbits, horses, parrots, llamas, and villagers.
  • Kept all existing stacking, logging, and metrics behavior unchanged.
  • Synced version to `1.0.34` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.33
  • Fixed the `EntityVariantService` compile errors by fully rewriting the class with the llama and villager helper methods properly defined.
  • Preserved llama color/strength-aware matching.
  • Preserved villager profession-aware matching.
  • Synced version to `1.0.33` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.32
  • Fixed the broken imports by restoring your working bundled metrics path instead of the unresolved `org.bstats` import.
  • Kept your uploaded `ExMobStackerPlugin`, `ConsoleLogger`, and bundled metrics flow intact.
  • Rewrote `EntityVariantService` cleanly so llama and villager helper methods are actually defined and callable.
  • Preserved the next-step additions for llama color/strength and villager profession-aware matching.
  • Synced version to `1.0.32` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.31
  • Advanced the cross-version entity variant path by adding llama-aware matching and display handling.
  • Added villager profession-aware matching and display handling to better cover version changes beyond 1.12.
  • Kept your uploaded console formatting and metrics flow intact as the ongoing baseline.
  • Synced version to `1.0.31` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.30
  • Applied your updated `ExMobStackerPlugin`, `ConsoleLogger`, and `Metrics` formatting baseline.
  • Kept your console system intact, including the visual metrics loading confirmations.
  • Fixed bundled `Metrics` to support `new Metrics(this, 30864);`.
  • Added `data.put("id", pluginId);` to bundled metrics plugin data so the plugin id is represented during submission.
  • Kept the bundled metrics approach and `json-simple` dependency path.
  • Synced version to `1.0.30` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.29
  • Corrected bStats to use the official Bukkit integration with the real plugin id `30864`.
  • Removed the bundled old-style Metrics class so tracking now follows the plugin-id based path.
  • Added the official `org.bstats:bstats-bukkit:3.2.1` dependency back into `pom.xml`.
  • Added Maven shade relocation for `org.bstats` to `net.endcoder.exmobstacker.libs.bstats`.
  • Wired `new Metrics(this, 30864);` directly into `onEnable()`.
  • Synced version to `1.0.29` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.28
  • Replaced the previous bStats setup with the same bundled Metrics-style implementation pattern you shared from SlimeChunk.
  • Removed the official `bstats-bukkit` dependency and shade setup in favor of the bundled metrics class approach.
  • Added the required `json-simple` dependency for the bundled metrics class.
  • Synced version to `1.0.28` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.27
  • Replaced the homemade metrics class with the official `org.bstats:bstats-bukkit:3.2.1` implementation.
  • Added the official Maven shade relocation for bStats using `net.endcoder.exmobstacker.libs.bstats`.
  • Wired the official bStats bootstrap directly in `onEnable()` with plugin id `30864`.
  • Removed the temporary custom `Metrics` class and the config-based plugin id block.
  • Synced version to `1.0.27` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.26
  • Fixed the `EntityVariantService` compile error by rewriting the class cleanly with the parrot helper method properly defined.
  • Kept parrot variant-aware matching and display support intact.
  • Synced version to `1.0.26` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.25
  • Added parrot variant-aware matching so different parrot colors/variants do not merge together.
  • Improved parrot target/custom-name display so the parrot variant is shown clearly.
  • Synced version to `1.0.25` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.23
  • Refactored mob subtype and display logic into a dedicated `EntityVariantService`.
  • `StackService` now uses the variant service instead of keeping all entity-variant rules inline.
  • Added sheep color-aware variant matching as part of the new service structure.
  • bStats now uses `bstats.plugin-id` from `config.yml` and only runs when the plugin id is set above `0`.
  • Synced version to `1.0.23` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.21
  • Switched fully to `ConsoleCommandSender` for console output.
  • Removed logger usage for all colored console messages.
  • Cleaned up formatting for a simpler, cleaner look.
  • Synced version to `1.0.21` across all files.

v1.0.20
  • Reworked console output so it no longer prints the duplicated `[ExMobStacker] [ExMobStacker vX]` style prefix.
  • Switched banner output away from ANSI logger formatting to direct console messages for a cleaner look closer to your example.
  • Kept console colors configurable in `config.yml`.
  • Synced version to `1.0.20` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.19
  • Added configurable colored console output with an enable banner similar to your example.
  • Added `console-colors` config options for primary, accent, warn, error, and text colors.
  • Wired plugin enable and disable logging through the new console logger.
  • Synced version to `1.0.19` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.18
  • Added rabbit variant-aware matching so different rabbit types do not merge together.
  • Improved rabbit target/custom-name display so the rabbit type is shown more clearly.
  • Synced version to `1.0.18` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.17
  • Added variant-aware matching for horses so different horse variants, colors, and styles do not merge together.
  • Added size-aware matching for slimes and magma cubes so different sizes stay in separate stacks.
  • Improved target/custom-name display so horse and slime variants are easier to identify.
  • Synced version to `1.0.17` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.16
  • Fixed compile error in `PlayerTargetListener` by switching the target check to `canParticipate(...)`.
  • Made stack persistence optional and disabled by default, since `stacks.yml` can contribute to bad restores while stacking logic is still being stabilized.
  • When persistence is disabled, the plugin now clears `stacks.yml` on shutdown instead of reusing stale stack data.
  • Synced version to `1.0.16` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.15
  • Fixed a major stacking bug where plugin-added custom names were causing stacked anchors to stop participating in future merges.
  • Stopped scan cleanup from stripping tracked stacks just because they had the plugin display name above them.
  • Made config defaults auto-merge into existing `config.yml`, so new keys like `target-sidebar-enabled` and `target-chat-enabled` will now appear on existing installs.
  • Lowered the default scan interval again to `5` ticks so stacking happens much sooner.
  • Improved display refresh so stacked names stay applied more reliably.
  • Synced version to `1.0.15` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.14
  • Fixed pair-merge math so an already stacked mob is always counted by its full stack size when merging.
  • Changed scan processing to continue merging until no more valid nearby pair merges remain.
  • Reduced the default scan interval to `20` ticks so stacking happens sooner.
  • Kept chunk-unload stack preservation and target HUD behavior.
  • Synced version to `1.0.14` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.13
  • Improved baby detection so more mob types respect baby vs adult separation instead of only a few special cases.
  • Fixed a major stack-loss path by moving tracked unloaded stacks into pending restore storage on chunk unload.
  • Changed merge logic back to pair-based math so stack totals stay consistent while scanning nearby entities.
  • Added a right-side target HUD panel for mob info while looking at a mob.
  • Left chat target messages optional and disabled by default.
  • Synced version to `1.0.13` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.12
  • Fixed stack merge math by consolidating all nearby matching entities into a chosen anchor before applying counts.
  • Corrected cases where a stack of 2 merging with a stack of 1 would not reliably total to 3.
  • Kept variant-aware matching for zombie, baby zombie, and zombie villager separation.
  • Synced version to `1.0.12` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.11
  • Removed duplicate `<finalName>` entry from `pom.xml`.
  • Kept only `${project.artifactId}-${project.version}` for proper versioned jar output.
  • Fixed and synced version to `1.0.11` across `pom.xml`, `plugin.yml`, and `README.md`.

v1.0.10
  • Fixed `pom.xml` so the project version is again wrapped in proper XML tags.
  • Corrected the project version to `1.0.10` in `pom.xml`, `plugin.yml`, and `README.md`.
  • Preserved Maven final jar naming with `${project.artifactId}-${project.version}`.

v1.0.9
  • Fixed the broken `pom.xml` version line caused by the previous replacement.
  • Synced the project version to `1.0.9` in `pom.xml`, `plugin.yml`, and `README.md`.
  • Preserved the Maven final jar naming pattern using `${project.artifactId}-${project.version}`.

v1.0.8
  • Fixed stack matching so different mob variants do not merge into the same stack.
  • Zombies now differentiate between normal zombie, baby zombie, and zombie villager variants.
  • Variant-aware display names now show the correct mob form in target messages and custom names.
  • Synced the project version across `pom.xml`, `plugin.yml`, and `README.md`.
  • Bumped the project version to `1.0.8`.

v1.0.7
  • Added `stacks.yml` persistence for tracked stack sizes across disable and enable.
  • Restores saved stack sizes for loaded entities on startup and on chunk load.
  • Added pending restore visibility to `/exmobstacker info`.
  • Kept all persistence logic 1.8-safe by restoring stacks through loaded-entity UUID matching.
  • Bumped `plugin.yml` version to `1.0.7`.

v1.0.6
  • Fixed 1.8 API compile errors in `PlayerTargetUtil`.
  • Removed use of `Entity#getHeight()` and `Entity#getWidth()`, which are not available on the legacy API line.
  • Replaced target sizing logic with a 1.8-safe `LivingEntity#getEyeHeight()`-based center estimate and fixed target radius values.
  • Bumped `plugin.yml` version to `1.0.6`.

v1.0.5
  • Updated README version tracking policy into the project.
  • Bumped `plugin.yml` version to `1.0.5`.
  • Added command metadata and admin permission node to `plugin.yml`.
  • Added version output to the main command and info command.
  • Replaced target lookup with a stricter line-of-sight target utility to keep the behavior 1.8-safe.
  • Improved target display accuracy while avoiding newer API-only calls.

v1.0.4
  • Added entity death cleanup.
  • Added chunk load scan and chunk unload cleanup.
  • Improved stack target selection.
  • Tightened merge handling and stack cleanup.
  • Added `/exmobstacker cleanup`.

v1.0.3
  • Stabilized legacy-safe entity lookup by UUID scanning through loaded world entities.
  • Improved stack tracking cleanup.
  • Continued building directly from the user's working project base.

v1.0.2
  • Added mob stacking within a 5 block radius.
  • Implemented stack merging on spawn and on scheduled scans.
  • Added target display for stack size and mob type.

v1.0.1
  • Established the working shell base and project structure.
  • Preserved the user's working Maven setup and compatibility exclusions.


Supports Minecraft 1.8 – 26.1+
Developed by Endcoder Creative​
Resource Information
Author:
----------
Total Downloads: 4
First Release: Apr 24, 2026
Last Update: May 11, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at www.endcoder.net...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings