Minecraft 1.21.1 · Fabric · v2.0.0
Pebble's Crates
Loot crates for Fabric servers. Turn any block into a crate, hand out keys, and let players roll for prizes with an animated reveal above the block. Everything a crate does is driven by JSON files you edit on disk.
Server-side only — players do not need the mod installed. Requires Fabric API and Fabric Language Kotlin on Java 21.
What it does
Any block is a crate
Right-click a block with the crate transformer and it becomes one. No structure, no block entity, no world edits to undo.
Physical or virtual keys
Keys are items by default. Switch a server — or a single crate — to virtual keys and they become a balance players carry, spent from the crate's own screen.
Cross-server wallets
Point virtual-key storage at MongoDB and a player's keys follow them between servers. The driver ships inside the jar; local JSON storage is the default.
Rewards are commands
A prize runs whatever commands you give it, so it can be an item, a rank, a Pokémon, money, or a permission. The material only decides how it looks.
Animated reveal
Prizes flick past above the crate as display entities, then the winner lands and holds. Steps, timing, scale, sounds and particles are all in config.json.
Odds players can check
Right-clicking without a key opens a read-only preview of the whole prize pool with each prize's real chance.
Quickstart
- Start the server once with the mod installed. It writes
config/pebbles-crate/withcrates/,config.jsonandmessages.json. - Build a crate file in the crate editor and save it into
config/pebbles-crate/crates/. - Run
/padmin reload, then/padmin getcrate <crateName>for the paper transformer. - Right-click any block with that paper. The block is now a crate.
/padmin givekey <player> 1 <crateName>, then right-click the crate holding the key.
Every /padmin command needs the LuckPerms node pebbles.admin.crate, or operator level 2 where LuckPerms is not installed.
New in 2.0.0
- Optional virtual keys: a per-player wallet,
/keysand/keys send, and/padmin convertkeysto turn keys already in circulation into balance. - Per-crate
virtualKeyoverride, so one crate can opt out of the server-wide setting. - A
config.jsoncovering animation timing, sounds, particles and cooldown, and amessages.jsonholding every line the mod says. - Crates and the particle blacklist are stored per world, so the same coordinates in the Nether and the Overworld are no longer one entry.
- The floating prize is a display entity rather than a dropped item, closing the hopper-duplication exploit.
Existing configs load unchanged, including pre-1.20 NBT strings and &-code colours. Coming from AdvancedCrates instead? Use the config converter.