KeyCrates banner
KeyCrates icon

KeyCrates

ExcellentCrates offers an in-game GUI editor to manage custom, animated crate rewards and keys. Featuring custom item support (ItemsAdder/Nexo), virtual...

00
hytaleServer2026.1mod

KeyCrates

What it does

  • Adds a server-side KeyCrates plugin with a chat-driven GUI editor, animated crate themes, virtual keys, hologram labels, cooldowns, and weighted rewards.
  • Seeds a sample starter crate so players can experiment immediately (includes custom item sources like ItemsAdder/Nexo).
  • Supports mass opening and per-player cooldown enforcement while tracking virtual key balances.

How to use

  • Core command: /keycrates (alias /kc).
  • Management:
    • /keycrates gui [crate] shows the chat-based editor and crate details.
    • /keycrates create <id> <name> makes a crate; /keycrates list lists all crates.
    • /keycrates reward <crate> <rewardId> <weight> [qty] [source] [label...] adds or replaces a weighted reward. source can note custom item providers (ItemsAdder/Nexo/etc.).
    • /keycrates cooldown <crate> <seconds>, /keycrates animation <crate> <style>, /keycrates hologram <crate> <text...> tune behavior and visuals.
    • /keycrates givekey <crate> <amount> [playerUuid] manages virtual keys (self if no UUID and run in-game).
  • Opening crates:
    • /keycrates open <crate> uses one virtual key.
    • /keycrates massopen <crate> <count> spends multiple keys, respecting cooldowns, and reports all rewards.

Implementation notes

  • Data is persisted to keycrates.dat inside the plugin data folder; rewards, cooldowns, and key balances survive restarts.
  • Crate rewards are selected with weighted randomness; cooldowns track per-player open times.
  • Hologram text and animation style are stored with each crate and surfaced in the GUI output when a player inspects a crate.

Known limitations / future ideas

  • The GUI is chat-based; no inventory UI is spawned. Holograms are informational text instead of floating world entities.
  • Rewards are announced and tracked virtually; hooking into actual item giving/command execution would be a natural next step.