COWMODSКаталог модов

Drop Stacker

Fabric mod for Minecraft that automatically merges dropped item entities on the ground into stacked entities — reducing item lag on servers and singleplayer worlds. Configurable stack size, scan radius, and scan interval.

Автор: suwizx_4,3 тыс.11обновлён 19 сент. 2026 г.
Механики игрыОптимизацияУтилиты

Описание

Drop Stacker

A Fabric mod for Minecraft that automatically stacks dropped item entities on the ground into a single entity, reducing entity lag and keeping your world tidy.

Features

  • Instant Merging: New drops are absorbed into a nearby pile the moment they spawn — in the same tick, not after a scan interval. A mob's drops collapse before you see them land.
  • Whole-Pile Collapse: Each merge pass drains every compatible neighbour at once, so a 100-item pile becomes one entity in a single pass instead of one item per pass.
  • Limitless Piles: Stacks beyond vanilla's 64-item limit — up to your configured maxStackSize, with per-item overrides.
  • Visual Feedback: Colorful stack count label displayed above items (configurable thresholds).
  • Despawn Timer: Optional countdown on the label with urgency-based color coding (supports infinite items with ∞).
  • Adaptive Scanning: Idle piles progressively back off from scanning (up to maxScanInterval), so a world full of settled items costs almost nothing. Safe because new drops push into piles on spawn rather than waiting to be polled.
  • Item Rules: Blacklist, whitelist, and per-item stack-size overrides — all accepting item tags (#minecraft:logs) as well as exact ids.
  • Runtime Control: /dropstacker reloads config, reports stats, and tunes settings without a restart.
  • Respects Named Items: An item entity with its own custom name is never relabelled or silently absorbed into another pile.
  • Vanilla Parity: Merging honours vanilla's infinite-lifetime, near-despawn, and infinite-pickup-delay guards, and keeps the longest pickup delay so merging can't shorten it.
  • Server-Side Only: All logic runs on the server. Vanilla clients see counts and timers with no mod installed.

Requirements

Commands

/dropstacker requires permission level 2 (gamemasters).

CommandDescription
/dropstacker reloadReload the config file from disk
/dropstacker statsMerge passes, entities collapsed, and current settings
/dropstacker resetstatsReset the counters
/dropstacker toggleEnable/disable stacking at runtime
/dropstacker set maxStackSize <n>Change the stack cap
/dropstacker set scanInterval <n>Change the scan interval
/dropstacker set radius <n>Change the horizontal scan radius
/dropstacker set verticalRadius <n>Change the vertical scan radius

Configuration

The config file is created automatically at .minecraft/config/drop-stacker.json (or config/drop-stacker.json on a server). Fields update automatically on restart if you upgrade the mod.

{
  "enabled": true,
  "mergeOnSpawn": true,
  "maxStackSize": 1000,
  "radius": 5.0,
  "verticalRadius": 2.0,
  "scanInterval": 5,
  "maxScanInterval": 100,
  "maxMergePerPass": 64,
  "ageInheritance": "YOUNGEST",
  "labelMode": "ALWAYS",
  "showDespawnTimer": true,
  "countLowThreshold": 64,
  "countHighThreshold": 500,
  "hideSingleItemLabel": false,
  "despawnTicks": 6000,
  "blacklist": [],
  "whitelist": [],
  "overrides": {}
}
FieldDescriptionDefault
enabledMaster switch for all stackingtrue
mergeOnSpawnMerge new drops instantly as they spawntrue
maxStackSizeMaximum items per stacked entity1000
radiusHorizontal scan radius (blocks)5.0
verticalRadiusVertical scan radius (blocks)2.0
scanIntervalTicks between merge scans for an active pile5
maxScanIntervalSlowest scan rate an idle pile backs off to100
maxMergePerPassMax neighbours absorbed in one pass64
ageInheritanceDespawn timer on merge: YOUNGEST, KEEP_RECEIVER, or OLDESTYOUNGEST
labelModeWhen to show the label: ALWAYS, STACKED_ONLY, or NEVERALWAYS
showDespawnTimerShow despawn countdown on the labeltrue
countLowThresholdCount at which the label turns Yellow64
countHighThresholdCount at which the label turns Red500
hideSingleItemLabelHide the label if the stack only has 1 itemfalse
despawnTicksWorld despawn rate (matches timer to server settings)6000
blacklistItems that are never stacked[]
whitelistIf non-empty, only these items are stacked[]
overridesPer-item stack caps{}

Item rules

blacklist, whitelist, and overrides all accept exact item ids and item tags (prefixed with #):

{
  "blacklist": ["minecraft:elytra", "#minecraft:shulker_boxes"],
  "overrides": {
    "minecraft:cobblestone": 5000,
    "#minecraft:logs": 512
  }
}

A note on ageInheritance

The default YOUNGEST means a pile inherits the longest remaining lifetime when it absorbs a drop — so a pile next to a farm keeps resetting its despawn timer and effectively never despawns. That is convenient, but on a busy server it lets item piles accumulate indefinitely. Set KEEP_RECEIVER for vanilla despawn behaviour.

Building

./gradlew build

Output JAR is in build/libs/. Gradle provisions the required Java 25 toolchain automatically.

License

MIT — see LICENSE.


[!CAUTION] I am not great at Kotlin and this project was built with AI assistance. There may be bad code, wrong patterns, or things that could be done much better. If you spot anything — please open an issue or a pull request. I genuinely appreciate it and will learn from it. Thank you.

Галерея

Drop Stacker

Последние версии

Все версии →
release

v1.2.1+1.21.1 — Minecraft 1.21.1

1.2.1+1.21.1
19 сент. 2026 г.789Minecraft: 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
Скачать
Что нового
Drop Stacker backported to **Minecraft 1.21.1**, as requested in #1. It has the same features and fixes as [v1.2.1](https://github.com/suwizx/drop-stacker/releases/tag/v1.2.1) for 26.3. It is still **server-side only**: install it on the server, and players need nothing. Vanilla clients see stack counts and despawn timers without the mod. ## Requirements - Minecraft **1.21.1** - Fabric Loader 0.19.5+ - [Fabric API](https://modrinth.com/mod/fabric-api) (tested with 0.116.17+1.21.1) - [Fabric Language Kotlin](https://modrinth.com/mod/fabric-language-kotlin) - Java 21+ ## Version numbering The version is `1.2.1+1.21.1`: Drop Stacker 1.2.1, built for Minecraft 1.21.1. The 26.3 build stays `1.2.1`. The source for this line is on the [`1.21.1`](https://github.com/suwizx/drop-stacker/tree/1.21.1) branch. ## What's included Everything from v1.2.1: - New drops merge into nearby piles the moment they spawn, and a periodic scan picks up piles that have moved. - Stack sizes up to 1000 by default (`maxStackSize`), with per-item and per-tag overrides. - Blacklist and whitelist by item id or tag (`#minecraft:logs`). - `[×count | m:ss]` labels showing pile size and despawn timer. - `/dropstacker reload | stats | resetstats | toggle | set <field> <value>` (permission level 2). - **Piles of more than 99 items survive saving and loading.** On 1.21.1 vanilla can't save a stack over 99 at all, so without this fix saving a big pile would fail.
release

Drop Stacker 1.2.1

1.2.1
19 сент. 2026 г.937Minecraft: 26.3fabric
Скачать
Что нового
Bug-fix release for **Minecraft 26.3**. **Anyone on v1.2.0 or v1.1.0 should update.** It is still **server-side only**: install it on the server, and players need nothing. ## Fixed **Piles of more than 99 items were deleted when the world saved and loaded again.** That covers server restarts, chunk unload/reload (walking away and coming back), `/data merge entity`, and item piles moving between dimensions. Vanilla's save format only allows 1–99 items per stack, so larger piles failed to save and were thrown away. Drop Stacker now saves a vanilla-valid stack capped at 99, plus the true count in an extra `DropStackerCount` field, and restores the true count on load. - Vanilla clients are unaffected. The limit only exists in the save file, not in what the server sends to players. - If the mod is ever removed, those piles load as 99 items instead of disappearing completely. - Piles already lost under earlier versions can't be recovered, because they were saved with no item data. If you had set `maxStackSize 99` as a workaround, you can raise it again. ## Requirements Minecraft 26.3, Fabric Loader 0.19.5+, Fabric API, Fabric Language Kotlin, and Java 25. These are unchanged from v1.2.0.
release

Drop Stacker 1.1.0

1.1.0
31 июл. 2026 г.1,6 тыс.Minecraft: 26.2fabric
Скачать
Что нового
Drop Stacker v1.1.0 now targets **Minecraft 26.2**, merges drops instantly instead of on a scan interval, and cuts the cost of the neighbour scan considerably. Still **server-side only** — vanilla clients see stack counts and despawn timers with no mod installed. ## Minecraft 26.2 Requires Minecraft 26.2, Fabric Loader 0.19.3+, Fabric API, Fabric Language Kotlin, and Java 25. Minecraft 26.1.2 users stay on [v1.0.1](https://github.com/suwizx/drop-stacker/releases/tag/v1.0.1); that version is preserved on the [`26.1.2`](https://github.com/suwizx/drop-stacker/tree/26.1.2) branch. ## Instant merging Merging is now push-based: a new drop is absorbed into a nearby pile in the tick it spawns, rather than waiting for the next scan. Each pass also drains every compatible neighbour instead of one per scan — collapsing a 100-item pile previously took roughly 500 ticks no matter how low `scanInterval` was set, and is now a single pass. ## Performance - Blacklist, whitelist and overrides resolve to registry references once at load. The scan predicate previously allocated a string for every candidate of every scan, even with an empty blacklist. - Neighbour queries use a shared scratch list with a hard limit, instead of allocating a list of every match to then keep one. - Scans stagger per entity, so a mob's drops no longer all scan on the same tick. - Idle piles progressively back off to `maxScanInterval`, which is safe now that new drops push into piles on spawn. - Vanilla's own 40-tick merge scan is cancelled, so only one merge system runs. - The name-tag label is rebuilt only when its rendered text would actually change. ## Fixes - **Merged counts never synced to clients.** Counts were mutated in place, but the entity data tracker compares by equality, so the change was never sent. Merging now builds a new stack and goes through `setItem`, as vanilla's own merge does. - Items could not merge for the first half-second after being dropped — the pickup-delay check was stricter than vanilla's. - Large stacks bypassed vanilla's infinite-lifetime and near-despawn guards; both are re-asserted. - Item entities with their own custom name are no longer relabelled or silently absorbed into a neighbouring pile. ## New - `/dropstacker reload | stats | resetstats | toggle | set <field> <value>` (permission level 2) — tune and reload without a restart. - Item **tags** (`#minecraft:logs`) in `blacklist` and the new `whitelist`, plus per-item `maxStackSize` `overrides`. - New config: `enabled`, `mergeOnSpawn`, `maxScanInterval`, `maxMergePerPass`, `ageInheritance`, `labelMode`, and `radius`/`verticalRadius`. Existing `scanRadiusX/Y/Z` configs migrate automatically on first load. ### Note on `ageInheritance` The default `YOUNGEST` preserves 1.0.x behaviour: a pile inherits the longest remaining lifetime when it absorbs a drop, so a pile fed by a farm never despawns. Set `KEEP_RECEIVER` for vanilla despawn behaviour. ## Testing Verified on a live 26.2 server: merge-on-spawn, stack cap and remainder handling, blacklist by id and by tag, per-item overrides, hot reload, pickup-delay and infinite-lifetime guards, and named-item exclusion. The periodic tick scan and the adaptive backoff have had less coverage than the rest — a dev server with no player connected does not tick item entities, so those paths were exercised manually rather than systematically. Please open an issue if you see anything off.
release

Drop Stacker 1.0.1

1.0.1
3 мая 2026 г.954Minecraft: 26.1.2fabric
Скачать
Что нового
Release v1.0.1: Build script cleanup and version bump.
release

Drop Stacker 1.0.0

1.0.0
16 апр. 2026 г.64Minecraft: 26.1.2fabric
Скачать
Что нового
## Drop Stacker v1.0.0 First release — automatically stacks dropped item entities on the ground to reduce entity lag. ### Features - Dropped items of the same type and NBT merge automatically within a configurable radius - Stacks beyond vanilla's 64-item limit — up to your configured `maxStackSize` - Colorful stack count label above items (green / yellow / red by stack size) - Optional despawn countdown timer on the label (green → yellow → red as time runs out) - Server-side merge logic only, no client-side desync - New config fields are added to the file automatically on server restart ### Config (`config/drop-stacker.json`) ```json { "maxStackSize": 1000, "scanRadiusX": 5.0, "scanRadiusY": 2.0, "scanRadiusZ": 5.0, "scanInterval": 5, "showDespawnTimer": true } ``` ### Requirements - Minecraft 26.1.2 - Fabric Loader 0.19.1+ - Fabric API - Fabric Language Kotlin - Java 25+