promotional bannermobile promotional banner

Admin instruments: Loot Spawn Manager

A powerful Minecraft Forge 1.16.5 mod for managing coordinate-based loot spawning with DayZ mechanics.
Back to Files

lootspawnmanager-0.0.5.jar

File namelootspawnmanager-0.0.5.jar
Uploader
Rayman_GCRayman_GC
Uploaded
Jun 14, 2026
Downloads
9
Size
283.9 KB
Mod Loaders
Forge
File ID
8245820
Type
R
Release
Supported game versions
  • 1.16.5

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:loot-spawn-manager-1574953:8245820")

Learn more about Curse Maven

What's new

Changelog

All notable changes to the Loot Spawn Manager mod are documented in this file.

[0.0.5] - Unreleased (Scale + Loot Flexibility)

Added

  • Chunked синхронізація — замість одного гігантського snapshot-пакета (упирався в ~1МБ ліміт Forge при ~2-3к точок і дисконектив гравця) дані тепер летять як: 1× S2CSyncBeginPacket (групи+шаблони+meta) + N× S2CSyncPointsChunkPacket по ≤10 точок на пакет. Клієнт збирає у ClientSyncAssembler (BitSet від дублікатів). Стеля піднята з ~3к до десятків тисяч точок.
    • SyncHelper.sendFull(player, openGui) замінив усі 27 прямих send-ів S2CDataSyncPacket
  • Per-point кастомний лут — кожна точка має власний customItems список
    • прапорець useCustomLoot. Коли увімкнено й не порожній — LootDropper бере предмети звідси замість template.items (режим/picks беруться з шаблону). Дозволяє унікальний лут (босовий ящик) без окремого шаблону.
    • Нова іконка [I] на row 2 картки точки → PointLootScreen
    • Зелена крапка на [I] коли custom loot активний
    • Toggle "Custom loot: ON/OFF", список з видаленням, порожній стан
    • Пакети: C2SAddPointItemPacket, C2SRemovePointItemPacket, C2SSetPointCustomLootPacket
  • Вибір предмета з руки — кнопка "From hand" у AddItemScreen бере item ID
    • повний NBT з основної руки гравця одним кліком
  • Live пошук-підказки — при введенні в поле Item ID показуються до 6 збігів з ForgeRegistries.ITEMS; клік на підказку підставляє повний ID
  • Універсальний AddItemScreen — один екран працює і для шаблонів (C2SAddItemPacket), і для точок (C2SAddPointItemPacket) через окремі конструктори

Changed

  • LootDropper.pickItems() приймає явний список предметів (підтримка custom-луту)
  • DataManager.load() мігрує customItems/pastTemplateIds для старих збережень
  • Debounced збереження точок — scheduler більше не пише points.json щосекунди; позначає dirty, фактичний запис раз на ~30с (flushPointsIfDue) + повний save на кожній адмін-дії та при зупинці сервера. ~90% менше disk I/O при 1000+ точок
  • HashMap-індекси в ClientDataCache — getTemplate/getGroup тепер O(1) замість O(N) лінійного пошуку (важливо для render-циклів 60 fps при 1000+ точок)
  • Версія мода → 0.0.5

Fixed

  • C2SCreateGroupPacket досі слав raw S2CDataSyncPacket (оминав chunking) — переведено на SyncHelper.sendFull + PermissionCheck.canEdit
  • LootDropper.spawnLoot() повертає порожній список якщо template == null (захист від unbound/видаленого шаблону)

[0.0.4] - Unreleased (Power Tools)

Added

  • Test Spawn button — [?] фіолетова іконка на картці точки в SpawnPointListScreen. Одинарний клік → разовий спавн ігноруючи таймер. Server повідомляє кількість заспавнених предметів через actionbar.
  • Template priority — нове поле priority (default 0) на шаблонах. SpawnScheduler PriorityQueue має tie-break: коли дві точки готові в одному тіку, перевагу отримує шаблон з вищим priority. Поле "Prio" доступне у TemplateDetailScreen → Section "Item Selection".
  • Schedule windows — кожна точка може мати activeHourStart/activeHourEnd (24h, real-time hours). Поза вікном точка не спавнить (планується на +1 хв). Підтримується wrap-around (22 → 6 = 22,23,0,1,2,3,4,5). Badge ⏰ 22:00-06:00 на картці точки (фіолетовий якщо зараз у вікні, сірий якщо ні).
  • Mass shift points — Tools tab → 📐 Shift Points… модал:
    • dx / dy / dz поля
    • dim filter (cycle через всі виміри + ALL)
    • template filter (ALL / Unbound only / окремий шаблон)
    • Real-time estimate "~ N points"
    • Snapshot для undo перед операцією
  • C2STestSpawnPacket / C2SShiftPointsPacket / C2SSetPointSchedulePacket — 3 нові C2S пакети, всі через PermissionCheck

Changed

  • C2SUpdateTemplateSettingsPacket тепер містить поле priority (back-compat конструктор без priority лишається)
  • DataManager.updateTemplateSettings() — overload з priority параметром

[0.0.3] - Unreleased (Admin Experience)

Added

  • Region Brush — окремий item для масового створення точок:
    • RMB на блок 1 → corner1 (NBT в ItemStack)
    • RMB на блок 2 → corner2 + відкриває GUI генерації
    • Shift+RMB → скидає виділення
    • 3 паттерни: Grid (з spacing), Random (випадково в об'ємі), Floor (по нижній грані)
    • Естимейт кількості точок з кольоровим попередженням (>1000 заблоковано)
    • Авто prefix-name + опційне прив'язування до шаблону
  • Permission system — config/lootmanager/permissions.json:
    • 4 рівні: NONE / VIEW / EDIT / ADMIN
    • OP level 2+ автоматично отримує ADMIN
    • Команди: /lm perm grant <player> <level>, /lm perm revoke, /lm perm list
    • Model: модератор без OP може бути EDIT (керує точками без shutdown сервера)
  • Per-point bind rollback:
    • Кожна точка тримає історію 3 останніх прив'язок шаблонів
    • Іконка [↶] з'являється праворуч від stats badge коли є що відкатити
    • Один клік відновлює попередню прив'язку
  • /lm perm команди — управління permissions з консолі / чату
  • Loot Spawn Wand — special admin item for fast point creation
    • Right-click block: creates spawn point at top face
    • Shift+RMB: removes nearest point within 5 blocks
    • Available via Tools tab → "Give me a Wand"
  • Teleport to Point — [T] icon on every point card; closes GUI and teleports to point's dimension and coordinates
  • Multi-level Undo — stack of last 10 mass operations with labels ("Set timer 300s for group", "Delete group X", "Batch enable 12 points")
    • Server sends back remaining undo count via S2CUndoStatusPacket
  • Live Event Feed — all admins receive S2CSpawnEventPacket broadcasts when points successfully spawn loot; ToolsScreen shows last 20 events
  • Per-point Statistics — totalSpawns, spawnsLast24h, auto-resetting 24h window; shown as badge on point cards
  • Reverse Item Lookup — Tools tab "Find by Item": type item ID, see which templates contain it + how many points are bound; click a result to teleport
  • Health Check — Tools tab lists data issues: unbound points, empty templates, invalid radius, broken template references
  • Card-based GUI — SpawnPointListScreen redesigned with 3-row cards (status dot, name, badges, action icons) replacing 12-column table
  • Section-based Editor — TemplateDetailScreen split into 3 logical sections: ⚡ Spawn Behavior / 🎲 Item Selection / 📦 Loot Pool
  • Design System v2 — 4-level typography, semantic color palette, 15-icon enum, drawSection/drawBadge/drawCard/drawStatusDot primitives
  • Toast notifications — popup queue (success/warning/error/info) instead of inline error text; auto-fade in 3s

Changed

  • ParticleType resolution: ClientTickHandler.resolveParticleType() actually reads template.particleType instead of always rendering END_ROD
  • ParticleSettingsScreen: replaced 1.17-only types (ELECTRIC_SPARK, GLOW) with 1.16.5-compatible types (PORTAL, SMOKE, HAPPY_VILLAGER)
  • SpawnPoint.nextSpawnEpochMs/lastSpawnEpochMs → volatile for safe GUI reads
  • DataManager.load() now migrates old saves (fills missing particleType, spawnMode, items, dimension)
  • LootDropper.spawnLoot() now returns List<String> of spawned item IDs
  • applySettings() (TemplateDetailScreen): per-field validation with toast feedback ("Max radius must be ≥ MinR (N)") instead of silent ignore

Fixed

  • setHint() calls removed (method doesn't exist in 1.16.5 TextFieldWidget)
  • var keyword replaced with explicit Stream<Path> for Java 8 compatibility
  • Simulator iteration count clamped to 1–10000 client-side
  • AddItemScreen: live green/red border around item ID field based on validity
  • C2SSetTimerPacket rejects seconds < 1 server-side

[0.0.1] - 2026-05-30

Added

  • Core Spawn Management System

    • Create unlimited loot groups to organize templates
    • Define templates with configurable respawn timers (in seconds)
    • Bind spawn points to templates for loot generation
    • Individual timer overrides per spawn point
  • 5 Spawn Modes

    • GROUND: Spawn at exact coordinates
    • RADIUS: Randomize within min/max radius (in blocks)
    • ONLY_IF_EMPTY: Check 2-block radius before spawning
    • REPLACE_OLD: Clear area then spawn
    • ADDITIVE: Cumulative spawning up to maxItemsPerSpawn limit
  • Flexible Item Selection

    • Chance-based mode: Each item checked independently (0-100% per item)
    • Weighted pool mode: Select items by relative weight with configurable pick count
    • Per-item NBT tag support for enchantments and custom properties
    • Min/Max stack count per item
  • Admin Tools

    • Audit logging: All operations logged to logs/adminlog_YYYY-MM-DD.txt with timestamps
    • Automatic backups: Snapshots before mass operations, keeps 20 most recent
    • Single-level undo: Revert last bulk operation (timer set, group delete, etc.)
    • Particle visualization: Render spawn points with configurable particle types and radius
  • Full GUI Interface

    • Main menu with group list and search
    • Group detail view with template management
    • Template editor with spawn mode, radius, and item list
    • Spawn point list with dimension filter and search
    • Add item dialog with live icon preview
    • Spawn point simulator: Test drop probabilities across N iterations
    • Particle settings dialog for visualization customization
    • Scrollable lists with proper UI layout (no overlap)
    • Context tooltips on all buttons and fields in selected language
  • Data Persistence

    • JSON-based storage in config/lootmanager/
    • Atomic writes (temp file → rename) for corruption prevention
    • Import/Export groups to share configurations
    • Backup and restore functionality
  • Network & Server

    • SimpleChannel-based packet synchronization
    • Priority queue scheduler with 1-second tick granularity
    • Server-side spawn processing, client-side admin visualization only
    • Chunk loading verification before spawning
  • Localization (9 Languages)

    • 🇬🇧 English (en_us)
    • 🇺🇦 Ukrainian (uk_ua)
    • 🇩🇪 German (de_de)
    • 🇫🇷 French (fr_fr)
    • 🇪🇸 Spanish (es_es)
    • 🇧🇷 Portuguese Brazil (pt_br)
    • 🇨🇳 Chinese Simplified (zh_cn)
    • 🇯🇵 Japanese (ja_jp)
    • 🇵🇱 Polish (pl_pl)
    • All UI strings translated with context-aware hover tooltips
  • Command Interface

    • /lootmanager menu — Open management GUI
    • /lootmanager reload — Reload from disk
    • /lootmanager group create <name> — Create loot group
    • /lootmanager template create <group> <name> <secs> — Create template
    • /lootmanager template additem <template> <item> <min> <max> <chance> — Add item
    • /lootmanager point create <name> — Create point at your position
    • /lootmanager point bind <point> <template> — Bind template
    • /lootmanager point clear <name> — Clear spawned items
    • /lootmanager timer set <template> <secs> — Set template timer
    • /lootmanager timer setall <group> <secs> — Set group timer
    • /lootmanager show all / /lootmanager hide — Toggle visualization
    • /lootmanager spawn test <point> — Test spawn at point
    • Alias: /lm for all commands

Technical Specifications

  • Minecraft Version: Forge 1.16.5
  • Java: JDK 8 (Java 8)
  • Gradle: 8.11 with wrapper
  • Network Protocol: SimpleChannel v2
  • Scheduler: Priority queue-based, 1-second resolution
  • Storage: Atomic JSON writes to prevent corruption
  • Permissions: Requires OP level 2

Known Limitations

  • Single-level undo (one revert per operation)
  • Spawn radius uses circular calculation (not rectangular)
  • Chunk must be loaded for spawning to occur
  • Import files must be manually placed in config/lootmanager/imports/

Future Roadmap (Planned)

  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">Multi-level undo
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">GUI-based import file selection
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">Per-point custom item pools (override template items)
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">Scheduled spawns at specific server times
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">Multi-dimensional support with dimension-specific loot tables
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">API for other mods to integrate custom loot sources
  • <input class="task-list-item-checkbox" disabled="disabled" type="checkbox">Performance profiling tools

This mod has no additional files