4 releases, newest first.
key-items.stackable: false keeps the old per-grant unique behavior.fast-open.max-stack-amount (default 1, 0 = unlimited) denies sneak + right-click on a bigger stack before the key is consumed, with the new messages.errors.fast-open-stack message. Split the stack or open it without sneaking./lootbox no longer requires lootboxes.admin; a helper holding only lootboxes.admin.give can run /lootbox give, and the generated help lists only what the sender may run.AIR and block-only materials are rejected as key material in the editor prompt, the store and the file parser (an AIR key hid the editor's own buttons and spammed SEVERE logs).?? glyphs).IncompatibleClassChangeError on every Paper 1.20.x server when opening a lootbox (key consumed, session stuck) - all InventoryView usage replaced with ABI-safe calls; verified clean at the bytecode level.DUST, BLOCK, ...) in effects.complete-particle are rejected safely instead of throwing inside the animation.[center]) with server-context PlaceholderAPI.editor.delete-confirm-seconds), chat prompts expire (editor.prompt-timeout-seconds), reward odds display matches the real roll, list-overflow notices, rename warns about circulating keys.Configurable lootbox system for Paper 1.20.x/1.21.x, built on SnLib.
Admins define lootboxes as YAML files (weighted normal rewards plus one super reward per opening); players receive physical key items and right-click them to open an animated chest-grid GUI. Rolls are decided and reserved the moment a chest is clicked, and every close path (Esc, logout, timeout, restart) completes the box, so reserved rewards are never lost.
Features
%lootboxes_*%).Install
SnLib.jar goes in plugins/ (SnLib 1.28.0 or newer) alongside SnLootBoxes-2.0.0.jar.config.yml, lang/, guis/, opening.yml and lootboxes/ files on first boot.Requires Java 21+ and Paper 1.20.4+.