CobbleStackerСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (16)
release
CobbleStacker 1.1.0
1.1.026 мар. 2026 г.682Minecraft: 1.21.1neoforge
Что нового
The neoforge.mods.toml used ${mod_version} as a placeholder, but the build.gradle had no processResources block to replace it with the actual value. So the
literal string ${mod_version} ended up in the jar, which NeoForge rejected as an invalid version number.
release
CobbleStacker 1.1.0
1.1.017 мар. 2026 г.54Minecraft: 1.21.1neoforge
Что нового
CobbleStacker v1.1.0 - Changelog
Spawner-Only Mob Stacking
Mobs will now only stack if they were spawned by a mob spawner. Natural mobs (ones that spawn in caves, at night, etc.) will behave completely vanilla and
won't be stacked together. This makes gameplay feel much more natural while still keeping your spawner farms optimized and lag-free.
This is enabled by default. If you want the old behavior (stack all mobs), set "mobOnlySpawnerStack": false in the config.
Item Nametag Visibility Fix
Fixed a bug where setting "itemNametagAlwaysVisible": false would make item stack nametags completely invisible instead of showing them when you're nearby
(like mob nametags do). Now when set to false, item nametags will appear when you're within range of the item stack and disappear when you walk away
release
CobbleStacker 1.1.0
1.1.017 мар. 2026 г.791Minecraft: 1.21.1fabric
Что нового
CobbleStacker v1.1.0 - Changelog
Spawner-Only Mob Stacking
Mobs will now only stack if they were spawned by a mob spawner. Natural mobs (ones that spawn in caves, at night, etc.) will behave completely vanilla and
won't be stacked together. This makes gameplay feel much more natural while still keeping your spawner farms optimized and lag-free.
This is enabled by default. If you want the old behavior (stack all mobs), set "mobOnlySpawnerStack": false in the config.
Item Nametag Visibility Fix
Fixed a bug where setting "itemNametagAlwaysVisible": false would make item stack nametags completely invisible instead of showing them when you're nearby
(like mob nametags do). Now when set to false, item nametags will appear when you're within range of the item stack and disappear when you walk away
release
CobbleStacker 1.0.3
1.0.311 мар. 2026 г.43Minecraft: 1.21.1neoforge
Что нового
The crash was caused by a rare timing issue — when the server was processing item stacks, another mod or the game itself could add or remove entities at
the same time. This corrupted the internal list Minecraft uses to track entities, causing the server to crash.
We fixed it by making the plugin work on a safe copy of the entity list instead of the live one, so it can't be affected by changes happening at the same time.
You shouldn't see this crash anymore.
release
CobbleStacker 1.0.3
1.0.311 мар. 2026 г.151Minecraft: 1.21.1fabric
Что нового
The crash was caused by a rare timing issue — when the server was processing item stacks, another mod or the game itself could add or remove entities at
the same time. This corrupted the internal list Minecraft uses to track entities, causing the server to crash.
We fixed it by making the plugin work on a safe copy of the entity list instead of the live one, so it can't be affected by changes happening at the same time.
You shouldn't see this crash anymore.
release
CobbleStacker 1.0.1
1.0.110 мар. 2026 г.27Minecraft: 1.21.1neoforge
Что нового
● Changelog v1.0.1 / v1.0.2:
Fixed console spam caused by vanilla Minecraft logging death messages for named entities. Since stacked mobs have custom display names (e.g. "x2 Glow Squid"),
the server would log "Named entity ... died: ..." every time a stacked mob died. The fix clears the stacking nametag right before the death logic runs, so
vanilla no longer treats them as named entities. Player-applied nametags are preserved and unaffected.
release
CobbleStacker 1.0.2
1.0.210 мар. 2026 г.36Minecraft: 1.21.1fabric
Что нового
● Changelog v1.0.1 / v1.0.2:
Fixed console spam caused by vanilla Minecraft logging death messages for named entities. Since stacked mobs have custom display names (e.g. "x2 Glow Squid"),
the server would log "Named entity ... died: ..." every time a stacked mob died. The fix clears the stacking nametag right before the death logic runs, so
vanilla no longer treats them as named entities. Player-applied nametags are preserved and unaffected.
release
CobbleStacker 1.0.0
1.0.08 мар. 2026 г.17Minecraft: 1.21.1neoforge
Что нового
Bug fix — Watchdog crash (ItemStackManager.java):
- processAutoClear and forceClear were calling item.discard() while iterating level.getAllEntities() (a live iterable), causing a
ConcurrentModificationException that froze the server thread. Both methods now collect entities into a toRemove list first, then discard after iteration.
Feature — Mob nametag visibility distance (3 files):
- ModConfig.java: Added mobNametagVisibleDistance (default 0 = always visible, like current behavior). Set it to e.g. 32 to only show nametags within 32
blocks.
- MobStackManager.java:
- updateNametag no longer forces setCustomNameVisible(true) when distance mode is active
- New updateNametagVisibility(server) method checks each stacked mob against all players in the level and toggles visibility based on squared distance
- CobbleStackerMod.java: Calls updateNametagVisibility every 10 ticks (0.5s) when distance mode is enabled
release
CobbleStacker 1.0.1
1.0.18 мар. 2026 г.67Minecraft: 1.21.1fabric
Что нового
new config option mobNametagAlwaysVisible (default: true). When set to false, stack nametags will only show when you're looking directly at the mob
— no more screen clutter, no seeing mobs through walls, and no unnecessary nametags in mob farms. Same option is available for items as
itemNametagAlwaysVisible. Just set them to false in cobblestacker.json.
release
CobbleStacker 1.0.1
1.0.17 мар. 2026 г.37Minecraft: 1.21.1fabric
Что нового
Fix: Server crash caused by Watchdog timeout
The server was crashing with a Watchdog error because CobbleStacker was modifying the list of entities (removing/discarding items) while still looping through
it. This is like pulling cards out of a deck while someone else is counting them — it causes the game to freeze and eventually the Watchdog kills the server
for being unresponsive.
What we changed: The auto-clear and force-clear systems now first make a list of all the items that need to be removed, and only then actually remove them
after the loop is done. This prevents the freeze entirely.
release
CobbleStacker 1.0.0
1.0.023 февр. 2026 г.168Minecraft: 1.21, 1.21.1fabric
Что нового
The fix was changing "environment": "server" to "environment": "*" in src/main/resources/fabric.mod.json.
This tells Fabric to load the mod on both the dedicated server and the integrated server (single player), instead of only on dedicated servers.
release
CobbleStacker 1.0.0
1.0.019 февр. 2026 г.40Minecraft: 1.21.1neoforge
Что нового
NeoForge (new HopperBlockEntityMixin.java):
- Same logic as Fabric, targeting HopperBlockEntity.addItem(Container, ItemEntity) with mojang mappings (grow, setChanged, getContainerSize, etc.)
-
release
CobbleStacker 1.0.0
1.0.019 февр. 2026 г.43Minecraft: 1.21.1fabric
Что нового
Fabric (new HopperBlockEntityMixin.java):
- Mixin injecting at HEAD of HopperBlockEntity.extract(Inventory, ItemEntity)
- Intercepts vanilla pickup, reads the real stack amount from ItemStackManager, manually distributes items into hopper slots, and properly handles partial inserts
release
CobbleStacker-NeoForge
1.0.011 февр. 2026 г.37Minecraft: 1.21neoforge
release
CobbleStacker 1.0.0
1.0.09 февр. 2026 г.179Minecraft: 1.21, 1.21.1fabric
Что нового
Bug Fixes Recap
Critical
1. Spawner drops not restoring mob type when placed
CobbleStackerMod.java:455 — The BLOCK_ENTITY_DATA NBT was missing the "id": "minecraft:mob_spawner" field. Without it, Minecraft 1.21 silently ignores the saved SpawnData when the spawner is placed, resulting in a default
pig spawner. Added blockEntityTag.putString("id", "minecraft:mob_spawner") in dropSpawnerItem.
2. ThreadLocal leak in MobSpawnerLogicMixin
CobbleStackerMod.java:206-211 — If MobSpawnerLogic.serverTick threw an exception, the @At("RETURN") injection wouldn't fire, leaving the ThreadLocal set. Any entity spawned afterwards would be incorrectly treated as a
spawner mob. Fixed by adding a validation check in onEntityLoad that verifies the block at the stored position is actually a spawner; if not, the stale context is cleared.
3. Item/XP duplication with KILL_ALL death behavior
LivingEntityMixin.java:41-45, 71-86, 167-226 — handleKillAll used server.execute() (1-tick delay) and age <= 2 to find drops, which was unreliable: it could miss the actual drops or multiply items from other mobs dying
nearby. Fixed by capturing a snapshot of existing ItemEntity/XP orb IDs in the area before death (in onDeathHead), then at onDeathReturn only multiplying entities that are new (not in the snapshot). Removed the
server.execute() wrapper entirely.
Important
4. Entity ID reuse causing stale stack data
MobStackManager.java:388 — cleanupDeadEntities only ran when stackData.size() > 50, leaving a window where newly spawned entities could inherit stack data from dead entities with the same runtime ID. Removed the size
threshold so cleanup runs every cycle.
5. /cs clear not actually unstacking entities
CobbleStackerCommand.java:226-285 — The clear command just called handleKill which only wiped the internal data maps. Entities remained in the world with stale nametags like "x5 Zombie" while the mod treated them as
stack=1. Now the command iterates all entities, resets their custom names, sets stack to 1, and then clears the data maps.
6. Spawner stacking without mob type validation
CobbleStackerMod.java:351-357, 421-438 — Players could stack different spawner types together (e.g., a Zombie Spawner onto a Pig Spawner) without any warning. Added a mob type compatibility check in handleSpawnerStack with
a new helper method getSpawnerItemEntityType that reads the mob type from the held spawner item's NBT data.
7. No periodic save for spawner data
CobbleStackerMod.java:67, 179-183 — SpawnerDataManager.saveData() was only called during onServerStopping. A server crash meant all spawner stack data since startup was lost. Added a periodic save every 5 minutes (6000
ticks).
Minor / Performance
8. World-spanning bounding box query in processStacking
MobStackManager.java:352-358 — processStacking used getEntitiesByClass with a Box(-30000000 ... +30000000), which defeats Minecraft's spatial index optimization and forces a full entity scan every cycle. Replaced with
world.iterateEntities() which directly iterates the entity list without spatial overhead.
9. Invulnerability inconsistency for spawner-spawned mobs
CobbleStackerMod.java:223 — onEntityLoad set the bypass flag but didn't set setInvulnerable(true), while processBypassRemovals always called setInvulnerable(false) on expiry. This could remove invulnerability that an entity
had for other reasons. Added living.setInvulnerable(true) in onEntityLoad to match the behavior in handleKillOne.
10. Stale batch processing indices across ticks
MobStackManager.java:335-385 — currentWorldIndex and currentEntityIndex persisted between calls, but the entity list was recreated each time. Entities added/removed between ticks could cause out-of-range indices or skipped
entities. Added bounds checking and automatic index reset when indices exceed the current entity list size.
release
CobbleStacker 1.0.0
1.0.06 февр. 2026 г.47Minecraft: 1.21, 1.21.1fabric