Feature and fix release for **Minecraft 26.3**. It is still **server-side only**: install it on the server, and players need nothing.
**Big thanks to [@Skyfay](https://github.com/Skyfay) (Manu), who wrote both pull requests below**, including the gametests that reproduce each bug. 🙏
## Fixed ([#4](https://github.com/suwizx/drop-stacker/pull/4))
Piles above an item's normal stack size reached vanilla code that never expects them. Each case below has a gametest that fails on the previous version.
- **Items were deleted when something picked up a pile.** A hopper under 640 cobblestone kept 64 and deleted 576. Hopper minecarts, villagers, allays and piglins lost items the same way. Dolphins, pandas and raiders took a whole pile into a hand slot that cannot be saved above 99. Every pickup, players included, now takes one vanilla-sized stack at a time and the rest stays on the ground.
- **Logging mods such as Ledger failed on piles** (`Value must be within range [1;99]`). Pickups now only see vanilla-sized stacks, and a freshly dropped item joins the pile around it instead of swallowing it, so the dropped entity still holds exactly what was dropped.
- **Thrown items vanished into a pile mid-air.** An item you throw (Q, or a villager or piglin handing it over) now flies and lands first, and only then joins a pile.
- **A single item could pull a whole pile across the ground.** The biggest pile in range now takes the others in, as vanilla does.
- **Labels froze after a restart or chunk reload**, and those piles never merged again. The label is now recognised as the mod's own after loading.
- **Drops reserved for one player** (`target`) no longer merge with public drops, or the other way round.
## Added ([#5](https://github.com/suwizx/drop-stacker/pull/5))
The defaults render exactly the label you have today, so existing setups are unchanged.
- **`labelFormat` / `timerFormat`:** build the label from placeholders (`{count}`, `{stacks}`, `{countColor}`, `{timer}`, `{time}`, `{timerColor}`) and `&` codes, including `&#RRGGBB`. A format without a timer no longer rebuilds the label every second, so it only sends an update when the count changes.
- **`labelMode: OVERSIZED_ONLY`:** label a pile only once it holds more than one vanilla stack of its item (2 totems, 65 planks). Smaller piles look like vanilla drops.
- **`labelThroughWalls`:** set to `false` to hide labels behind blocks. Clients using Entity Culling need `minecraft:item` in its `entityWhitelist`, see the README.
## Also
- A format with a signed hex colour such as `&#-1abcd` is now kept as plain text instead of being read as a colour.
- 24 server gametests now run with every build, including a check that the hidden-label flag reaches the packets actually sent.
## Upgrading
Replace the jar; no config changes are needed. Pickups of a big pile now happen one stack per touch, so collecting a very large pile takes a few touches.
## Requirements
Minecraft 26.3, Fabric Loader 0.19.5+, Fabric API, Fabric Language Kotlin, and Java 25. These are unchanged from v1.2.1.
**Full changelog:** https://github.com/suwizx/drop-stacker/compare/v1.2.1...v1.3.0
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }