✦ LostCrates ✦
Premium Multi-Version Crates Plugin
Build Target: Paper 1.21.4 • Declared Support: 1.8 - 1.21+ • Java 21
Version 1.0.0 • Actively Improved
Premium Multi-Version Crates Plugin
Build Target: Paper 1.21.4 • Declared Support: 1.8 - 1.21+ • Java 21
Version 1.0.0 • Actively Improved
A crates plugin that actually feels different.
LostCrates is built for servers that want crate openings to feel rewarding, polished, and worth using instead of being just another chest click with a random item inside.
Rather than forcing every crate into the same repetitive format, LostCrates gives you a full crate system with multiple opening styles, virtual and physical key support, reward previews, pity mechanics, holograms, toplists, and flexible per-crate behavior.
The goal is simple: make crates feel like a proper server feature, not filler content.
Why LostCrates?
- 23 built-in crate types so different crates can actually feel unique
- Virtual keys, physical keys, or both for survival, prison, PvP, and network setups
- Reward preview GUI to clearly display rewards and rarities
- Configurable pity system to reduce bad luck streaks without killing randomness
- Toplists and holograms to add competition and visibility
- Per-crate customization instead of one global style for everything
- Multi-database support for both lightweight and large server environments
23 Built-In Crate Types
LostCrates includes a large variety of opening styles, allowing vote crates, seasonal crates, rank crates, event crates, premium crates, and progression crates to each feel distinct.
Core Features
Physical crates without forced block replacement
Bind crates to blocks without forcing them to become chests. Your decorative or themed blocks can stay exactly as they are while still functioning as crate interaction points.
Virtual keys, physical keys, or both
Choose the key system that fits your server. LostCrates supports virtual keys, physical key items, or both at the same time, making it suitable for many server types and progression styles.
Reward preview GUI
Let players preview possible rewards before opening. This makes crate value clearer, improves presentation, and helps players understand rarity and reward structure.
Configurable pity system
Reduce frustrating unlucky streaks by configuring guaranteed rare rewards after a certain number of openings. It keeps randomness intact while giving you more control over player experience.
Holograms and toplists
Display crate holograms, weekly toplists, monthly toplists, and claimable toplist rewards. Add visibility and competition without relying on extra plugins for ranking display.
Per-crate behavior control
Each crate can define its own reward pool, animation behavior, key handling, sounds, particles, hologram lines, title messages, actionbar messages, open commands, win commands, and rare reward commands.
Database and placeholder support
Supports SQLite, MySQL, H2, PlaceholderAPI, and Vault for both simple local servers and larger production environments.
Compatibility
- Minecraft: 1.8 - 1.21+
- Build Target: Paper 1.21.4
- Java: 21
Optional Integrations
- Vault
- PlaceholderAPI
- NoteBlockAPI
- WorldGuard
- WorldEdit
Installation
- Place LostCrates-1.0.0.jar into your plugins folder
- Start the server
- Edit config.yml and messages.yml
- Configure crates in plugins/LostCrates/crates/
- Reload or restart the server
LostCrates is made for servers that want more than a basic reward chest.
If your goal is a crate system that feels polished, flexible, and premium in real use, LostCrates is built for that purpose.
Current Version: 1.0.0
Status: Actively Improved
License: Proprietary
Author: Narcox
If your goal is a crate system that feels polished, flexible, and premium in real use, LostCrates is built for that purpose.
Current Version: 1.0.0
Status: Actively Improved
License: Proprietary
Author: Narcox
LostDev discord server:
✱ https://discord.gg/6S6jxC5h67
(Join for licence key!)
✦ LostCrates Commands ✦
A complete overview of player and admin commands.
A complete overview of player and admin commands.
LostCrates includes a clean command structure for both players and administrators, covering crate usage, previews, statistics, key handling, block binding, holograms, and management tools.
Player Commands
/lc help
Show the main help menu.
/lc open <crate>
Open a crate if the player has a usable key and permission for that crate.
/lc preview <crate>
Open the preview GUI for a crate.
/lc list
List all currently loaded crates.
/lc stats
Show personal crate statistics.
/lc top
Show the player's current monthly and weekly toplist rank.
/lc top rank
Alias behavior for checking current rank.
/lc top claim
Claim pending toplist rewards.
/lc top view <monthly|weekly>
View toplist entries.
/key help
Show the key command help.
/key info
Show stored key balances.
/key claim
Claim offline keys if offline claiming is enabled.
Admin Commands
/lc reload
Reload config, messages, and crate files.
/lc admin help
Show the admin help menu.
/lc admin reload
Reload config, messages, and crate files through the admin branch.
/lc admin create <name> <type>
Create a new crate using a crate type id.
/lc admin delete <name>
Delete an existing crate.
/lc admin give <crate> <player> [amount]
Give virtual keys to a player.
/lc admin take <crate> <player> [amount]
Remove virtual keys from a player.
/lc giveblock <crate>
Give the executor a physical crate block item.
/lc set crate <crate>
Bind the looked-at block to a crate without changing the original block type.
/setcrate <crate>
Standalone crate binding command.
/setcrate crate <crate>
Alternative standalone crate binding format.
/lc admin set <crate>
Bind the looked-at block to a crate through the admin command branch.
/lc admin set crate <crate>
Alternative admin crate binding format.
/lc admin remove
Remove the placed crate block the player is looking at.
/lc admin remove crate
Alternative remove syntax.
/lc admin givekey <player> <crate> [amount] [physical|virtual|both]
Give physical keys, virtual keys, or both.
/lc admin setkeytype <crate> <physical|virtual|both>
Change the default key mode for a crate and save it.
/lc admin keycheck <player> <crate>
Show physical, virtual, and usable key counts.
/lc admin soundtest <crate>
Play the configured crate sounds to the player.
/lc admin particletest <crate>
Spawn the configured crate particles near the player.
/lc admin tophologram set <monthly|weekly>
Place a toplist hologram.
/lc admin tophologram delete <monthly|weekly>
Remove a toplist hologram.
Notes
/lc admin give and /lc admin take are admin-controlled command paths.
The dedicated /key give and /key take commands use their own permissions.
Dynamic per-crate access uses:
✦ LostCrates Permissions ✦
A clear overview of the main permissions used by LostCrates.
A clear overview of the main permissions used by LostCrates.
LostCrates uses a clean permission structure for crate access, previews, statistics, key management, and administration. This makes it easy to control player access while keeping staff permissions organized.
Main Permissions
lostcrates.admin
Full admin access to crate management, crate binding, key utilities, test commands, and toplist hologram tools.
lostcrates.reload
Allows reloading config, messages, and crate files.
lostcrates.open
Base permission required before per-crate opening access is checked.
lostcrates.open.*
Allows opening every crate when the base open permission is also present.
lostcrates.open.<crate>
Per-crate opening permission for a specific crate name.
lostcrates.preview
Allows players to preview crate rewards.
lostcrates.list
Allows listing loaded crates.
lostcrates.stats
Allows viewing personal crate statistics.
lostcrates.give
Allows giving virtual keys through /key give.
lostcrates.take
Allows removing virtual keys through /key take.
lostcrates.*
Wildcard permission covering the main declared LostCrates permissions.
Metadata Notes
lostcrates.help
Declared in plugin metadata for permission visibility, but the current code does not actively block the help menu behind it.
lostcrates.transfer
Declared in plugin metadata, but no active runtime permission check was found for it in the current codebase.
Usage Notes
/lc open <crate> checks both:
/key give and /key take do not use lostcrates.admin by default.
They use:
YAML:
# Example Crate Configuration
# This is a template for creating your own crates
# Display name shown in GUIs and messages
display-name: '&#FFD700&lLegendary Crate'
# Crate type (see CrateType enum for options)
# Available: CSGO, WHEEL, QUADRANT, CRATE, WAR, REEL, STRIP, PUNCH, TOURNAMENT,
# ROULETTE, FACE, ROULETTE_ADVANCED, TOWER, CASCADE, MATCH3, SLOT_MACHINE,
# CARD_PACK, BATTLE_PASS, LUCKY_BLOCK, PROGRESSIVE, DUEL, SCRATCH_CARD, MYSTERY_BOX
type: CSGO
# Crate-specific settings
settings:
# Opening animations time in ticks (20 ticks = 1 second)
opening-time: 60
# Enable pity system for this crate
use-pity: true
# Number of openings before guaranteed rare
pity-threshold: 50
# Broadcast rare drops to all players
broadcast-rare: true
# Minimum chance percentage for rare notification
rare-threshold: 5.0
# Custom settings (varies by crate type)
custom:
# CSGO-specific: Number of items in reel
reel-size: 15
# CSGO-specific: Scroll speed
scroll-speed: 2
# Wheel-specific: Number of segments
segments: 10
# Optional sound overrides for this crate.
# Base sounds control the main open/tick/win/rare effects.
# `effects` can override any named animation hook (for example `battle-pass-step`)
# or a raw hardcoded sound name used internally (for example `UI_BUTTON_CLICK`).
sounds:
open-start: BLOCK_CHEST_OPEN
tick: UI_BUTTON_CLICK
win: ENTITY_PLAYER_LEVELUP
rare: ENTITY_FIREWORK_ROCKET_BLAST
volume: 1.0
pitch: 1.0
effects:
UI_BUTTON_CLICK:
sound: BLOCK_NOTE_BLOCK_HAT
volume: 0.35
pitch: 1.2
card-pack-break:
sound: ENTITY_FIREWORK_ROCKET_BLAST
volume: 0.8
pitch: 0.9
# Optional particle overrides for this crate.
# `types` remain the general particle pool, while `effects` can target
# named hooks like `ambient-helix` / `wheel-win-burst` or raw particle ids.
particles:
ambient: true
types: [VILLAGER_HAPPY, SPELL, ENCHANT]
circle-enabled: true
helix-enabled: true
burst-on-win: true
burst-count: 45
effects:
ambient-helix:
type: ENCHANT
count: 1
ambient-ring:
type: END_ROD
count: 1
VILLAGER_HAPPY:
type: FIREWORK
count: 1
csgo-rarity-legendary:
type: DRAGON_BREATH
count: 0
# Rewards
# Each reward has: display-name, type, weight, chance, rarity, and specific data
rewards:
diamond_sword:
id: diamond_sword
display-name: '�BFFF&lLegendary Sword'
type: ITEM
weight: 10
chance: 2.5
rarity: LEGENDARY
broadcast: true
item:
material: DIAMOND_SWORD
amount: 1
name: '�BFFF&lLegendary Sword'
lore:
- '&7A sword of legends'
- '&b+10 Attack Damage'
- ''
- '&#FFD700&lLOSTCRATES'
enchantments:
- SHARPNESS:5
- FIRE_ASPECT:2
- UNBREAKING:3
hide-flags: true
unbreakable: true
custom-model-data: 1000
golden_apples:
id: golden_apples
display-name: '&6Golden Apples'
type: ITEM
weight: 25
chance: 10.0
rarity: EPIC
broadcast: false
item:
material: ENCHANTED_GOLDEN_APPLE
amount: 5
name: '&6Golden Apples'
lore:
- '&7Delicious and powerful'
diamonds:
id: diamonds
display-name: '&bDiamonds'
type: ITEM
weight: 50
chance: 25.0
rarity: RARE
broadcast: false
item:
material: DIAMOND
amount: 16
name: '&bDiamonds'
iron_ingots:
id: iron_ingots
display-name: '&7Iron Ingots'
type: ITEM
weight: 100
chance: 50.0
rarity: UNCOMMON
broadcast: false
item:
material: IRON_INGOT
amount: 32
name: '&7Iron Ingots'
dirt:
id: dirt
display-name: '&fDirt'
type: ITEM
weight: 200
chance: 75.0
rarity: COMMON
broadcast: false
item:
material: DIRT
amount: 64
name: '&fDirt'
# Command-based reward
fly_command:
id: fly_command
display-name: '&a30 Minutes Fly'
type: COMMAND
weight: 15
chance: 5.0
rarity: EPIC
broadcast: true
commands:
- 'lp user %player% permission set fly.temporary 30m'
- 'tell %player% You received 30 minutes of fly!'
# Money reward (requires Vault)
money_reward:
id: money_reward
display-name: '&6$1000'
type: MONEY
weight: 30
chance: 15.0
rarity: RARE
broadcast: false
extra:
amount: 1000
# XP reward
xp_reward:
id: xp_reward
display-name: '&a500 XP'
type: XP
weight: 40
chance: 20.0
rarity: UNCOMMON
broadcast: false
extra:
amount: 500
# LostCrates Main Configuration
# Premium Minecraft Crates Plugin
# Database Configuration
database:
# Type: SQLITE, MYSQL, or H2
type: SQLITE
# MySQL settings (only if type is MYSQL)
mysql:
host: localhost
port: 3306
database: lostcrates
username: root
password: ''
useSSL: false
properties:
- "autoReconnect=true"
- "allowMultiQueries=true"
# General Settings
settings:
# Enable or disable metrics collection
metrics: true
# Enable or disable update checker
check-updates: true
# Default crate opening animation speed (in ticks)
default-animation-speed: 20
# Enable physical crate blocks
enable-physical-crates: true
# Enable virtual crate GUI opening
enable-virtual-crates: true
# Maximum number of crates a player can have in preview
max-preview-slots: 54
# Enable sound effects
enable-sounds: true
# Enable particle effects
enable-particles: true
crates:
# Load bundled *_example.yml crate templates automatically.
# Keep this false in production to avoid duplicate/demo crates in menus.
load-example-crates: false
# Key Settings
keys:
# Enable physical key items
enable-physical-keys: true
# Key item format
key-item:
material: TRIPWIRE_HOOK
name: '&#FFD700&l%crate% Key'
lore:
- '&7Right-click to open a &b%crate%'
- '&7or use &b/crate open %crate%'
- ''
- '&#FFD700&lLOSTCRATES'
# Enable offline key claiming
enable-offline-claim: true
# Key expiration (in days, 0 = no expiration)
key-expiration-days: 0
# Default key behavior for crates that don't override key settings
default-type: BOTH
physical-key-material: TRIPWIRE_HOOK
virtual-key-material: PAPER
# Reward Settings
rewards:
# Enable pity system (guaranteed rare after X opens)
pity-system:
enabled: true
# Number of opens before guaranteed rare
threshold: 50
# Reset pity counter on rare drop
reset-on-rare: true
# Enable broadcast messages for rare items
broadcast-rare-drops: true
# Minimum chance for rare drop notification (%)
rare-notification-threshold: 5
# Auto-claim rewards (if inventory is full, give via /claim)
auto-claim: false
# Max items in reward inventory
max-reward-items: 54
# Economy Integration
economy:
# Enable Vault economy integration
enabled: true
# Allow buying keys with economy
buy-keys: true
# Allow opening crates with economy
open-with-economy: true
# GUI Settings
gui:
main-title: '&8&lCrates'
preview-title: '&8&lPreview: %crate%'
border-material: GRAY_STAINED_GLASS_PANE
header-bar-material: BLACK_STAINED_GLASS_PANE
inner-material: BLACK_STAINED_GLASS_PANE
# Message customization
messages:
# Use custom messages from messages.yml
enabled: true
# Prefix for all messages
prefix: '&#FFD700&lLostCrates &8>&r '
# Debug settings
debug:
# Enable debug logging
enabled: false
# Log crate opening events
log-openings: false
# Log database queries
log-queries: false
# Toplist System
toplist:
enabled: true
top-count: 10
update-interval: 300 # 5 minutes in seconds
monthly:
enabled: true
rewards:
1st: "give %player% diamond 64"
2nd: "give %player% diamond 32"
3rd: "give %player% diamond 16"
weekly:
enabled: true
rewards:
1st: "give %player% diamond 16"
2nd: "give %player% diamond 8"
3rd: "give %player% diamond 4"
# Hologram Settings
holograms:
enabled: true
update-interval: 100 # ticks (5 seconds)
# Animation Settings
animations:
fast-open-duration: 10
armorstand-enabled: true
default-variant: NORMAL
orbit:
wrap-count: 8
crash-duration: 20
fly-height: 2
show-names: true
orbit-particle: ENCHANT
crash-particle: FLAME
quadrant-laser:
orbit-count: 4
laser-particles: true
explosion-delay: 40
item-fly-count: 10
disappear-duration: 60
laser-particle: REDSTONE
explosion-particle: EXPLOSION
win-item-count: 1
# Particle Settings
particles:
max-per-crate: 100
density: NORMAL # LOW, NORMAL, HIGH
# Sound Settings
sounds:
global-volume: 1.0
custom-sounds-enabled: true
# LostCrates Messages Configuration
# All messages support hex colors (&#RRGGBB) and legacy color codes (&1, &2, etc.)
# Support for MiniMessage format: <gradient:blue:green>text</gradient>
prefix: '&#FFD700&lLostCrates &8>&r '
# General Messages
general:
no-permission: '&#FF0000;You do not have permission to do that!'
player-only: '&#FF0000;This command can only be used by players!'
invalid-args: '&#FF0000;Invalid arguments. Use /lc help for usage.'
reload-success: '�FF00;LostCrates reloaded successfully!'
reload-fail: '&#FF0000;Failed to reload LostCrates. Check console for errors.'
plugin-disabled: '&#FF0000;LostCrates is disabled. Contact an administrator.'
internal-error: '&#FF0000;An internal error occurred. Please contact an administrator.'
# Crate Commands
crate:
open:
no-crate: '&#FF0000;You must specify a crate to open!'
crate-not-found: '&#FF0000;Crate "%crate%" not found!'
no-key: '&#FF0000;You do not have a key for &b%crate%&#FF0000;!'
no-permission: '&#FF0000;You do not have permission to open &b%crate%&#FF0000;!'
no-space: '&#FF0000;You do not have enough inventory space!'
success: '�FF00;Opening &b%crate%�FF00;...'
preview:
no-crate: '&#FF0000;You must specify a crate to preview!'
crate-not-found: '&#FF0000;Crate "%crate%" not found!'
title: 'WCEEB&l%crate% 󅒐&l- Preview'
list:
title: '&#FFD700&lLostCrates 󅒐&l- Available Crates'
no-crates: '&#FFD700;No crates available!'
format: '&b%crate% &8- &7%keys% keys &8| &7%type%'
total: '&#FFD700;Total: &b%total% &7crates'
give:
no-player: '&#FF0000;Player not found!'
success: '�FF00;Gave &b%amount% &7key(s)�FF00; for &b%crate%�FF00; to &b%player%�FF00;!'
received: '�FF00;You received &b%amount% &7key(s)�FF00; for &b%crate%�FF00;!'
take:
no-player: '&#FF0000;Player not found!'
no-keys: '&#FF0000;Player does not have any keys for &b%crate%&#FF0000;!'
success: '�FF00;Took &b%amount% &7key(s)�FF00; for &b%crate%�FF00; from &b%player%�FF00;!'
# Key Commands
key:
give:
no-player: '&#FF0000;Player not found!'
success: '�FF00;Gave &b%amount% &7key(s)�FF00; for &b%crate%�FF00; to &b%player%�FF00;!'
received: '�FF00;You received &b%amount% &7key(s)�FF00; for &b%crate%�FF00;!'
take:
no-player: '&#FF0000;Player not found!'
no-keys: '&#FF0000;Player does not have any keys for &b%crate%&#FF0000;!'
success: '�FF00;Took &b%amount% &7key(s)�FF00; for &b%crate%�FF00; from &b%player%�FF00;!'
info:
title: '&#FFD700&lKey Information'
format: '&b%crate%: &7%amount% keys'
no-keys: '&#FFD700;You do not have any keys!'
claim:
available: '&#FFD700;You have offline keys. Use &b/key claim &#FFD700;to collect them.'
no-keys: '&#FF0000;You do not have any offline keys to claim!'
success: '�FF00;Claimed &b%amount% &7key(s)�FF00; for &b%crate%�FF00;!'
offline-not-enabled: '&#FF0000;Offline key claiming is disabled!'
# Stats Command
stats:
title: '&#FFD700&lYour Crate Statistics'
format:
- '&b%crate%:'
- ' &7Opened: &b%opened%'
- ' &7Keys Used: &b%keys%'
- ' &7Best Drop: &b%best%'
no-stats: '&#FFD700;You have not opened any crates yet!'
top:
title: '&#FFD700&lTop Crate Openers'
format: '&b%rank%. &7%player% &8- &b%opened% &7openings'
no-data: '&#FFD700;No data available!'
# Help Command
help:
title: '&#FFD700&lLostCrates 󅒐&l- Help'
commands:
player:
- '&b/lc open <crate> &8- &7Open a crate'
- '&b/lc preview <crate> &8- &7Preview crate rewards'
- '&b/lc list &8- &7List all available crates'
- '&b/lc stats &8- &7View your crate statistics'
- '&b/lc help &8- &7Show this help message'
admin:
- '&b/lc admin reload &8- &7Reload the plugin'
- '&b/lc admin give <crate> <player> [amount] &8- &7Give keys to a player'
- '&b/lc admin take <crate> <player> [amount] &8- &7Take keys from a player'
- '&b/lc admin create <crate> <type> &8- &7Create a new crate'
- '&b/lc admin delete <crate> &8- &7Delete a crate'
- '&b/lc admin set <crate> &8- &7Bind looked-at block to crate'
- '&b/lc admin remove &8- &7Remove the looked-at placed crate block'
- '&b/lc admin givekey <player> <crate> [amount] [physical|virtual|both] &8- &7Give key items'
- '&b/lc admin setkeytype <crate> <physical|virtual|both> &8- &7Set default key type'
- '&b/lc admin keycheck <player> <crate> &8- &7Check physical/virtual key counts'
- '&b/lc admin soundtest <crate> &8- &7Test crate sounds'
- '&b/lc admin particletest <crate> &8- &7Test crate particles'
- '&b/lc admin tophologram set <monthly|weekly> &8- &7Place toplist hologram'
- '&b/lc admin tophologram delete <monthly|weekly> &8- &7Delete toplist hologram'
# Reward Messages
rewards:
# Message when receiving a reward
reward-received: '�FF00;You received: &b%reward%'
# Message when reward goes to offline storage (inventory full)
reward-offline: '&#FFD700;Reward saved! Use &b/claim&#FFD700; to collect it.'
# Message for rare drops (broadcast to all players)
rare-drop-broadcast: '&#FFD700;&l[!] &b%player% &7just received &b%reward% &7from &b%crate%&#FFD700;&l!'
# Message for pity system activation
pity-activated: '&#FFD700;&l[!] &7Pity system activated! Guaranteed rare drop!'
# Economy Messages
economy:
insufficient-funds: '&#FF0000;You do not have enough money! Need: &b%amount%'
key-purchased: '�FF00;Purchased &b%amount% &7key(s)�FF00; for &b%price%'
crate-opened: '�FF00;Opened crate for &b%price%'
# GUI Messages
gui:
close-message: '&#FFD700;Thanks for using LostCrates!'
next-page: '�FF00;Next Page'
previous-page: '&#FF0000;Previous Page'
page-info: '&#FFD700;Page &b%current%&7/&b%total%'
# Error Messages
errors:
internal-error: '&#FF0000;An internal error occurred. Please contact an administrator.'
crate-load-fail: '&#FF0000;Failed to load crate: &b%crate%'
database-error: '&#FF0000;Database error occurred. Please try again later.'
timeout: '&#FF0000;Request timed out. Please try again.'
# Toplist Messages
toplist:
errors:
unavailable: '&#FF0000;Toplist service is currently unavailable.'
invalid-type: '&#FF0000;Type must be monthly or weekly.'
help-title: '&#FFD700&l=== Toplist Commands ==='
help:
- '&e/lc top &7- View your current ranks'
- '&e/lc top claim &7- Claim your pending rewards'
- '&e/lc top view <monthly|weekly> &7- View leaderboard entries'
view:
type:
monthly: Monthly
weekly: Weekly
title: '&#FFD700&lToplist - %type%'
spacer: '&7'
format: '%medal%%rank%. %rank_color%%player% &8- &a%value% points%highlight%'
no-data: '&#FFD700;No data to display.'
you-highlight: ' &a&l<-- YOU'
rank:
title: '&#FFD700&l=== Your Toplist Rank ==='
monthly: '&#FFD700;Monthly: &b#%rank% &7(%value% points)'
monthly-unranked: '&#FFD700;Monthly: &7You are not ranked yet.'
weekly: '&#FFD700;Weekly: &b#%rank% &7(%value% points)'
weekly-unranked: '&#FFD700;Weekly: &7You are not ranked yet.'
spacer: '&a'
claim-available: '&#FFD700;Claimable rewards: &b%amount%'
claim-use: '&#FFD700;Use &b/lc top claim &#FFD700;to collect them.'
claim:
no-rewards: '&#FFD700;You have no claimable rewards.'
success: '�FF00;Rewards claimed successfully!'
reward-claimed: '�FF00;Reward claimed: &b%reward%'
hologram:
title:
monthly: '&6&lTOP %top% - MONTH'
weekly: '&6&lTOP %top% - WEEK'
spacer: '&7'
no-data: '&cNo data to display.'
format: '%medal%%rank%. %rank_color%%player% &8- &a%value% %points_label%'
points-label: points
# Admin Command Messages
admin:
givekey:
success: '�FF00;Gave &e%amount% key(s) &ato &b%player%'
received: '�FF00;Received &e%amount% %type% key(s) &afor &b%crate%'
not-found: '&#FF0000;Crate or player not found!'
setkeytype:
success: '�FF00;Key type for &b%crate% &aset to &e%type%'
invalid: '&#FF0000;Invalid key type. Use: PHYSICAL, VIRTUAL, BOTH'
soundtest:
playing: '�FF00;Playing sounds for &b%crate%&a...'
particletest:
playing: '�FF00;Testing particles for &b%crate%&a...'
setcrate:
success: '�FF00;Crate &b%crate% &aapplied to block at %x%, %y%, %z%'
no-block: '&#FF0000;Look at a block to set the crate!'
tophologram:
usage: '&#FF0000;Usage: /lc admin tophologram <set|delete> <monthly|weekly>'
invalid-type: '&#FF0000;Type must be monthly or weekly.'
unavailable: '&#FF0000;Toplist service is currently unavailable.'
invalid-action: '&#FF0000;Action must be set or delete.'
set: '�FF00;Toplist hologram (%type%) placed!'
delete: '�FF00;Toplist hologram (%type%) removed!'
# Per-Crate Messages (defaults, overridden per crate)
crate-messages:
open-start: '&bOpening %crate%...'
no-key: '&cYou need a key for %crate%!'
won-reward: '&aYou won: &e%reward%'
rare-drop: '&6&l[!] &e%player% got &r%reward% &efrom %crate%!'
