Community listing page, reviews here may not be monitored by the author.
Loot Spawn Manager
No reviews yet
A powerful Minecraft Forge 1.16.5 mod for managing coordinate-based loot spawning with DayZ mechanics.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
THE PROJECT WILL NO LONGER BE UPDATED HERE AS IT NOW BELONGS TO HTTPS://GUMMERCRAFT.FUN
Loot Spawn Manager
A powerful Minecraft Forge 1.16.5 admin tool for coordinate-based loot spawning — DayZ/Tarkov style. Define points in the world, bind them to loot templates, and let the scheduler drop configurable items on configurable timers. Everything is driven from an in-game GUI; no commands required for day-to-day work.
Version: 0.2.4 · Minecraft: 1.16.5 · Forge: 36.2.42 · Java: 8
Highlights
- Coordinate-based spawning — points are world locations, not blocks
- 5 spawn modes — GROUND, RADIUS, ONLY_IF_EMPTY, REPLACE_OLD, ADDITIVE
- Two item-selection modes — chance (0–100% per item) or weighted pool
- Per-point custom loot — override a template's items on a single point
- Server-side friendly — registers nothing into the game registries, so the client mod is optional; it only adds the admin GUI
- Fast point creation — mark any item as a Wand or Region Brush with one command
- Real terrain map — the map draws the world from the top block of loaded chunks, not just a grid; pan, zoom, drag points, filter by template
- Edit a point from the map — click it and its name and X/Y/Z are right there, editable
- Copy and paste points — Ctrl+C, Ctrl+V; the copy keeps binding, timer, schedule and own loot
- Item browser — pick from a grid of every item on the server instead of typing IDs
- Data can live in the world folder — carry the save and its spawn points together
- Tabs everywhere — Groups / Points / Map / Tools are one click apart from any screen
- List or tiles — switch the point list to compact tiles when you have hundreds of points
- Works at every GUI scale — panels adapt instead of running off the edges
- Loot lifetime — how long spawned items lie before despawning, per template. Vanilla removes them after 5 minutes, which leaves a point empty for most of a long interval
- Server settings in the GUI — the tunables that used to need a
config.jsonedit and a restart are an Admin screen now - Schedule windows — points active only during set hours (e.g. 22:00–06:00)
- Template priority — tiebreak when points are due at the same tick
- Live monitoring — event feed, per-point statistics, health check
- Safety — 10-level undo, one-click backup restore, admin log, permission delegation, confirmation dialogs for destructive ops
- Multi-admin awareness — other admins receive toast notifications when data changes
- Visual loot grid — toggle between list and icon-grid view in the template editor; hover for stats
- Per-template export — one click exports a template to
exports/template_NAME.jsonwithout touching its group - Scales — sync is chunked by byte budget, so packet size never depends on how large a template is; tens of thousands of points are fine
- 9 languages — the entire interface, not just part of it, with hover tooltips on every control and on every action icon
Getting Started
- Drop the JAR into your server's
modsfolder. Clients do not need it. The mod registers nothing into the game registries and declaresIGNORESERVERONLY, so a vanilla-Forge client connects normally; it simply has no admin GUI. Install it on the clients of the admins who should get that GUI. The loot itself is plain vanillaItemEntity, so picking it up never depends on the mod. - Join as an operator (OP level 2) — you get access automatically.
- Press L (rebindable in Options → Controls) or run
/lootmanager menuto open the GUI.
The basic flow
Group → Template → Items (what spawns)
↘ Spawn Point (where it spawns)
- Create a group (e.g. "Military Loot") — organizes templates.
- Create a template inside it with a respawn timer.
- Add items — type an ID, click From hand to grab your held item, or pick from live suggestions.
- Create points — stand in the world and click "Create at Position", or use the Wand.
- Bind points to the template. They start spawning on the timer.
In-Game Tools
Tools are not separate items — you mark any item you are holding and it gains the behaviour until you clear the marker. This is what keeps the mod out of the item registry, and it means the tool works on a client without the mod.
| Tool | How to get it | What it does |
|---|---|---|
| Wand | /lm tool wand, or Tools tab → "Mark held item: Wand" |
Right-click a block to create a point; Shift+RMB removes the nearest within 5 blocks |
| Region Brush | /lm tool brush, or Tools tab → "Mark held item: Brush" |
Right-click two corners → bulk-generate points (Grid / Random / Floor); Shift+RMB clears the selection |
| Clear marker | /lm tool clear |
The item goes back to behaving normally |
| Teleport | [T] on a point card |
Jump to a point in its dimension |
| Test Spawn | [?] on a point card |
Trigger one spawn immediately, ignoring the timer |
| Schedule | [S] on a point card |
Set active hours (presets: Night / Day / Always) |
| Point Loot | [I] on a point card |
Give the point its own loot table |
GUI Map
- Main Menu — group list, search, stats badges, Tools button
- Group Detail — templates in a group, mass timer, duplicate
[Copy], rename[R], export - Template Detail — three sections: Spawn Behavior · Item Selection · Loot Pool
- Spawn Point List — cards or tiles; status filter, sort, search, dimension filter
- Point Detail — one screen per point: position, binding, timing, loot, statistics, actions
- Map — top-down coordinate grid of all points; zoom with scroll wheel; pan by drag; click a point to open it; drag a point to move it; filter by template via legend
- Tools — one scrolling column: tool marking, Undo, Shift Points, Server Settings, Find-by-Item, Import, the full event feed, every backup, and the complete health check — nothing truncated
- Server Settings — the eleven server-wide tunables, ADMIN only; saving writes
config.jsonand applies at once, no restart - Item Browser — every registered item in a grid, searchable by ID or display name; multi-select, then one chance / min / max / weight for the whole selection
- Add Item — live icon preview, validity border, From-hand button, suggestions
- Simulator — run N spawns, see item drop % with bars
- Particle Settings — type + visibility radius per template
- Confirm Dialog — modal overlay for all destructive operations (delete group/template/point, restore backup)
Spawn Modes
| Mode | Behavior |
|---|---|
| GROUND | Spawn at exact coordinates |
| RADIUS | Random position within min/max radius |
| ONLY_IF_EMPTY | Skip if items already within 2 blocks |
| REPLACE_OLD | Clear the area, then spawn |
| ADDITIVE | Add up to maxItemsPerSpawn, keeping existing items |
Item Selection
- Chance mode — each item rolled independently (0–100%). Realistic loot tables where items drop together.
- Weighted mode — pick
maxWeightedPicksitems from a weighted pool. Higher weight = more likely.
Per-point custom loot uses the point's own item list but inherits the bound template's mode and pick count.
Loot Lifetime
Vanilla deletes a dropped item after 5 minutes. Left alone, that decides how your spawns actually behave: with a 30-minute interval the point is empty for 25 of those 30 minutes, and ONLY_IF_EMPTY / REPLACE_OLD find nothing to check by the time they run.
Each template has a Loot lifetime in seconds, in the Spawn Behavior section:
| Value | Meaning |
|---|---|
0 |
use the server default (Tools → Server Settings) |
0 there too |
vanilla 5 minutes |
> 0 |
that many seconds, up to a day |
The field shows the effective value next to it and turns amber when loot dies before the next spawn arrives. The health check reports the same gap, and warns about pile-up when ADDITIVE runs with a lifetime far longer than its interval.
A point whose chunk is not loaded no longer burns a whole interval — it retries after unloadedRetryMs instead, so walking into a fresh region does not mean waiting a full cycle.
The Map
The map draws real terrain: the server reads the top block of each column, colours it with the same MaterialColor vanilla maps use, shades land by the drop to the column north of it and water by depth. Points sit on top, and clicking one opens a panel with its name and editable X / Y / Z — the only place in the interface where a point's height can be set.
Ctrl+C copies the selected point, Ctrl+V pastes a full copy under the cursor: binding, timer, schedule, particle radius and the point's own loot all come along, the name climbs to the next free number, and the first spawn is scheduled a full interval out.
What the map can and cannot show. The server only reads chunks that are already loaded — reading an unloaded one means loading it, and a pan across the map would mean thousands. So a region nobody has ever visited stays blank. Every tile that is sampled is written to disk, so the map fills in as the server lives and never forgets; re-sampling keeps columns whose chunks have since unloaded. Player-built structures appear, because these are real blocks, not generator output.
Tuning lives in Tools → Server Settings: mapTerrainEnabled turns the whole thing off, mapTileBudgetPerTick trades fill speed against tick cost, mapTileTtlSeconds decides how stale a tile may get. Block placement and breaking refresh their tile at once regardless.
Commands (/lootmanager or /lm)
/lm menu Open the GUI
/lm reload Reload data from disk
/lm group create <name>
/lm template create <group> <name> <secs>
/lm template additem <template> <item> <min> <max> <chance>
/lm point create <name> At your position
/lm point bind <point> <template>
/lm point clear <name>
/lm point list
/lm timer set <template> <seconds>
/lm timer setall <group> <seconds>
/lm tool wand | brush | clear Mark the held item as a tool
/lm show all | /lm hide Particle visualization
/lm spawn test <point>
/lm perm grant <player> <0-3> NONE / VIEW / EDIT / ADMIN
/lm perm revoke <player>
/lm perm list
Permissions
| Level | Name | Can do |
|---|---|---|
| 0 | NONE | nothing |
| 1 | VIEW | open and read the GUI |
| 2 | EDIT | full CRUD on groups/templates/points |
| 3 | ADMIN | + wand/brush, undo, permissions, region generation |
OP level 2+ is implicitly ADMIN. Delegate to non-OP moderators via /lm perm grant.
Delegated levels work for commands as well as the GUI: /lootmanager needs EDIT, perm needs ADMIN. Server Settings is ADMIN — those values apply to everyone.
Client mod: optional
The mod adds no blocks, items or entities, declares itself server-only to Forge, and its network channel accepts clients that do not have it. Practical consequences:
| With the mod on the client | Without it | |
|---|---|---|
| Join the server | ✅ | ✅ |
| See and pick up spawned loot | ✅ | ✅ — it is plain vanilla ItemEntity |
| Wand / Region Brush | ✅ | ✅ — marker lives in item NBT |
| Admin GUI, map, simulator | ✅ | ❌ — commands only |
| Particle visualization | ✅ | ❌ |
| Toast notifications | ✅ | falls back to chat |
The server never sends packets to a client that lacks the channel, so a modless admin gets plain chat messages instead. Region generation still needs the GUI: without it the brush reports the selected corners and you generate from there.
Interface behaviour
- Actions send a delta, not a full refresh: your scroll position, search text and open dialogs survive every edit, and a second admin's screen updates on its own.
- An action in flight dims its row and ignores repeat clicks until the server answers; after 5 seconds without a reply you get an explicit error rather than silence.
- Every destructive operation asks for confirmation, and mass operations are undoable from Tools.
- Long lists scroll rather than truncate, and the template picker filters as you type.
- Panels adapt to the window: nothing runs off the edge, down to a 341 px logical width (GUI scale 4 on a small laptop).
- Every clickable zone is computed once and drives the highlight, the tooltip and the click together, so what you see and what you hit cannot drift apart.
- The palette is neutral translucent grey; the world stays visible behind the panels and the accent colours are the only colour on screen.
Data & Storage
config/lootmanager/
├── config.json Tunables (region cap, packet size, save interval…)
├── groups.json Group definitions
├── templates.json Templates with items and settings
├── points.json Points, bindings, custom loot, stats
├── permissions.json Delegated permission levels
├── logs/ adminlog_YYYY-MM-DD.txt
├── backups/ Timestamped snapshots (20 kept)
├── exports/ Exported groups
├── imports/ Drop JSON files here for GUI import
└── maptiles/ Cached terrain tiles, 4 KiB each
With storeInWorldFolder enabled, everything above except config.json and permissions.json moves to <world>/lootmanager/ — those two configure the server, not the world. Switching copies the existing files rather than moving them, and only into an empty target, so turning it back off loses nothing.
config.json tunables (created with defaults on first run): maxRegionPoints (1000) · syncChunkBytes (32768) · pointsFlushIntervalMs (30000) · scheduleSkipRetryMs (60000) · unloadedRetryMs (60000) · defaultParticleRadius (48) · defaultItemLifespanSeconds (0 = vanilla 5 minutes) · mapTerrainEnabled (true) · mapTileBudgetPerTick (4) · mapTileTtlSeconds (120) · storeInWorldFolder (false).
All of them are editable in Tools → Server Settings with ADMIN level; saving writes the file and applies immediately. Editing the file by hand still works — /lm reload or a restart picks it up. storeInWorldFolder is the exception: it applies on the next server start, because half the mod already holds open paths to the current directory.
syncChunkBytes replaces the old pointsPerPacket: chunking by item count broke down because one large template outweighs a hundred points. The old key is ignored if present.
- Atomic writes (
.tmp→ rename) prevent corruption. - Point saves are debounced (~30 s) so high spawn rates don't thrash the disk. Each admin action writes only the file it touched — editing an item no longer rewrites every point.
- Timers are absolute wall-clock. On startup, points whose timer elapsed while the server was down are spread across their own respawn window instead of all firing at once.
Languages
🇬🇧 English · 🇺🇦 Ukrainian · 🇩🇪 German · 🇫🇷 French · 🇪🇸 Spanish · 🇧🇷 Portuguese (BR) · 🇨🇳 Chinese · 🇯🇵 Japanese · 🇵🇱 Polish
All nine files carry an identical key set (523 keys) — no language falls back to English mid-screen. Every button, field and action icon has a translated tooltip, including the single-letter icons where [C] means Copy on one screen and Clear on another. To add a language, copy en_us.json and translate the values.
Building
Requires JDK 8 (Forge 1.16.5 does not build on newer JDKs).
$env:JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_481"
.\gradlew build
# Output: build/libs/lootspawnmanager-0.2.4.jar
Performance & Scale
| Points | Status |
|---|---|
| up to ~500 | effortless |
| 500–2 000 | smooth; an edit sends one object, not the whole data set |
| 2 000–10 000+ | works — the full sync at login is split by byte budget, and everything after that is a delta |
Switch the point list to tiles past a few hundred points: a card fills a row, a tile takes a fifth of the area.
See CHANGELOG.md for version history and the roadmap below for planned work.
Roadmap (post-0.2.4)
- Split spawn modes — placement (GROUND / RADIUS) and occupancy (SKIP / REPLACE / ADD) are one enum today, so
RADIUScannot be combined withONLY_IF_EMPTY. Needs atemplates.jsonmigration. - Unit tests — the refactor left the pure logic easy to cover:
LootDropper.roll(),normalizeOverdue(),PacketUtil,SyncHelper.chunkify(),isInScheduleWindow(),GuiLayoutandClientDataCache.applyDelta(). - Persistent undo — the stack is in memory and dies with the server. Backups survive, but they are only taken on mass operations.
- Admin log in game — it is written to
logs/and readable nowhere else. The Tools feed shows only this session's spawn events, capped at 50. On hosting without file access, "who deleted that group" is unanswerable. - Bulk item editing — the item browser solves adding in bulk, not editing: changing one item's chance across thirty templates is still thirty visits.
- Map tile pruning — the tile cache grows at roughly 1.3 MB per km² across all LOD levels and is never cleaned. A command is the right place for that, not a sweep at every startup.
- Point export — groups and single templates export; points only come along in a full backup, so laid-out coordinates cannot be moved to another server on their own.
- Fluid re-flow for
ToolsScreen—TemplateDetailScreennow lays its rows out from measured text,ToolsScreenstill uses fixed column offsets inside its rows. - Command coverage — there is still no command for spawn mode, weights, schedules, per-point loot or point deletion, so a modless admin cannot do everything the GUI can.
- Split spawn modes is above; DataManager split into focused services; cross-dimension template binding; vanilla datapack loot-table import.
License
Provided as-is for Minecraft server administrators.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources