CrystalChest is a plugin inspired by an old feature from the popular MMORPG, RuneScape. The idea behind the plugin is that there is a special chest or “crate” that can be unlocked using a Full Crystal Chest Key, and the player will receive rewards. These rewards can vary and are highly configurable! To obtain a full Crystal Chest key, a place must obtain both the “A” half of the key and the “B” half of the key, and the combine them with a command.
Keys can be given by either using a command, killing certain mobs or breaking certain blocks. These mobs and blocks, along with the odds of each key being dropped are all configurable. Also, the CrystalChest API can be used to give keys in any way server owners desire.
All CrystalChest commands begin with /crystal chest or /cc.
- /cc help - Brings up a help menu of all cc commands.
- /cc combine - Combines 'A' keys and 'B' keys into Full Keys.
- /cc set chest - Sets the location of the CrystalChest to the block you're looking at.
- /cc location - Tells you the exact location of the CrystalChest.
- /cc give <player> <key type> <amount> - Give a player any amount of any of the types of Crystal Keys.
- /cc giveall <key type> <amount> - Give all online players any amount of any of the types of Crystal Keys.
- crystalchest.admin.help - /cc help (admin version)
- crystalchest.admin.give - /cc give <player> <key type> <amount>
- crystalchest.admin.give.all - /cc giveall <key type> <amount>
- crystalchest.admin.setchest - /cc set chest
- crystalchest.help - /cc help
- crystalchest.open - Ability to open the CrystalChest
- crystalchest.combine - /cc combine
- crystalchest.location - /cc location
Spoiler: config.yml
Code (YAML):
# Set this to true if you don't want players to be able to place keys on other blocks.
blockKeyWaste : true
# The "keys" section details the item data for the Crystal Keys
keys:
a:
name : "&7&lCrystal Key (&a&lA Half&7&l)"
glowing : true
lore :
- "&eCombine this with a &7&lCrystal Key (&a&lB Half&7&l)"
- "&ein order to make a &7&lCrystal Key (&b&lFull&7&l)."
- "&cUse /cc combine"
b:
name : "&7&lCrystal Key (&a&lB Half&7&l)"
glowing : true
lore :
- "&eCombine this with a &7&lCrystal Key (&a&lA Half&7&l)"
- "&ein order to make a &7&lCrystal Key (&b&lFull&7&l)."
- "&cUse /cc combine"
full:
name : "&7&lCrystal Key (&b&lFull&7&l)"
glowing : true
lore :
- "&eUse this on the Crystal Chest to unlock"
- "&eyour reward."
# Set this to true if you want certain mobs to drop keys
mobDropKeys : true
# Mobs that spawn via these methods should not drop keys
# A full list of spawn methods can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
excludeMobsSpawnedBy :
- "SPAWNER"
# You can add whatever mob types you choose here, as well as whatever odds for whatever keys
# A full list of mobs (Entity Types) can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html
mobDrops:
ZOMBIE:
aKeyOdds : 10.00
bKeyOdds : 30.00
fKeyOdds : 1.50
SKELETON:
aKeyOdds : 20.00
bKeyOdds : 5.00
fKeyOdds : 2.50
CREEPER:
aKeyOdds : 50.00
bKeyOdds : 1.00
fKeyOdds : 0.50
WITCH:
aKeyOdds : 5.00
bKeyOdds : 35.00
fKeyOdds : 7.25
# Set this to true if you want certain blocks to drop keys
# NOTE: This requires that you have mcMMO installed on your server
blockDropKeys : true
# Set this to true if you only want blocks that were NOT manually placed by players to count
onlyNaturalBlocks : true
# You can add whatever block types you want here
# A full list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# NOTE: Only materials that can be placed as blocks will work
blockDrops:
DIAMOND_ORE:
aKeyOdds : 50.00
bKeyOdds : 25.00
fKeyOdds : 5.00
STONE:
aKeyOdds : 2.50
bKeyOdds : 3.75
fKeyOdds : 1.00
# This is the location of the CrystalChest
# Set this in-game by looking at a block and using /cc set chest
chest:
location:
world : "world"
x : 1
y : 1
z : 1
rewards:
static:
commands :
- "broadcast &c&l%player% &fhas just opened the Crystal Chest!"
- "eco give %player% 10000"
# Dynamic commands are formatted as followed
#"command to be run from console/message sent to the player/chance of the reward being given"
dynamic:
minimumRewards : 2
maximumRewards : 4
commands :
- "give %player% diamond 3/&fYou've won &b&l3 &fDiamonds!/25"
- "eco give %player% 5000//20"
- "eco give %player% 100000//10"
- "give %player% emerald 5/&fYou've won &a&l5 &fEmeralds!/15"
- "give %player% 322:1 1/&fYou've won &6&l1 &fGod Apple!/20"
- "give %player% 322:1 3/&fYou've won &6&l3 &fGod Apple!/10"
blockKeyWaste : true
# The "keys" section details the item data for the Crystal Keys
keys:
a:
name : "&7&lCrystal Key (&a&lA Half&7&l)"
glowing : true
lore :
- "&eCombine this with a &7&lCrystal Key (&a&lB Half&7&l)"
- "&ein order to make a &7&lCrystal Key (&b&lFull&7&l)."
- "&cUse /cc combine"
b:
name : "&7&lCrystal Key (&a&lB Half&7&l)"
glowing : true
lore :
- "&eCombine this with a &7&lCrystal Key (&a&lA Half&7&l)"
- "&ein order to make a &7&lCrystal Key (&b&lFull&7&l)."
- "&cUse /cc combine"
full:
name : "&7&lCrystal Key (&b&lFull&7&l)"
glowing : true
lore :
- "&eUse this on the Crystal Chest to unlock"
- "&eyour reward."
# Set this to true if you want certain mobs to drop keys
mobDropKeys : true
# Mobs that spawn via these methods should not drop keys
# A full list of spawn methods can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
excludeMobsSpawnedBy :
- "SPAWNER"
# You can add whatever mob types you choose here, as well as whatever odds for whatever keys
# A full list of mobs (Entity Types) can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html
mobDrops:
ZOMBIE:
aKeyOdds : 10.00
bKeyOdds : 30.00
fKeyOdds : 1.50
SKELETON:
aKeyOdds : 20.00
bKeyOdds : 5.00
fKeyOdds : 2.50
CREEPER:
aKeyOdds : 50.00
bKeyOdds : 1.00
fKeyOdds : 0.50
WITCH:
aKeyOdds : 5.00
bKeyOdds : 35.00
fKeyOdds : 7.25
# Set this to true if you want certain blocks to drop keys
# NOTE: This requires that you have mcMMO installed on your server
blockDropKeys : true
# Set this to true if you only want blocks that were NOT manually placed by players to count
onlyNaturalBlocks : true
# You can add whatever block types you want here
# A full list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# NOTE: Only materials that can be placed as blocks will work
blockDrops:
DIAMOND_ORE:
aKeyOdds : 50.00
bKeyOdds : 25.00
fKeyOdds : 5.00
STONE:
aKeyOdds : 2.50
bKeyOdds : 3.75
fKeyOdds : 1.00
# This is the location of the CrystalChest
# Set this in-game by looking at a block and using /cc set chest
chest:
location:
world : "world"
x : 1
y : 1
z : 1
rewards:
static:
commands :
- "broadcast &c&l%player% &fhas just opened the Crystal Chest!"
- "eco give %player% 10000"
# Dynamic commands are formatted as followed
#"command to be run from console/message sent to the player/chance of the reward being given"
dynamic:
minimumRewards : 2
maximumRewards : 4
commands :
- "give %player% diamond 3/&fYou've won &b&l3 &fDiamonds!/25"
- "eco give %player% 5000//20"
- "eco give %player% 100000//10"
- "give %player% emerald 5/&fYou've won &a&l5 &fEmeralds!/15"
- "give %player% 322:1 1/&fYou've won &6&l1 &fGod Apple!/20"
- "give %player% 322:1 3/&fYou've won &6&l3 &fGod Apple!/10"
Spoiler: messages.yml
Code (YAML):
# Sent when a player tries to do something without the correct permission node
noPermission : "&c&lSorry, &7you don't have permission for that."
# Sent when a player-only command is attempted by console
mustBePlayer : "&c&lSorry, &7only players can do this command!"
# Sent when the targeted player is offline
playerOffline : "&c&lSorry, &7that player is not online!"
# Sent if you try to give an invalid key type
invalidKey : "&c&lSorry, &7that isn't a valid key type!"
# Sent when an argument is supposed to be an integer but isn't
invalidInteger : "&c&lSorry, &7that isn't a valid integer argument!"
# Sent to the console or admin player who used /cc give
gaveKey : "&fYou gave &c%amount% &fof &c%type% &fto &c%player%&f."
# Sent to a player when they receive a key
receivedKey : "&fYou've received &c%amount% &fof &c%type%&f!"
# Sent when a player tries to combine keys without 1 of each A and B
notEnoughKeys : "&c&lSorry, &7you need to have at least 1 'A' key and 1 'B' key!"
# Sent when a player creates a full crystal key using /cc combine
combinedKeys : "\n&7You've created &b&l%amount% Full Crystal Key&7(&b&ls&7)!\n "
# Sent when a player sets the Crystal Chest location
setChestLocation : "\n&7You've successfully set the &b&lCrystal Chest &7location!\n "
# Sent when a player uses /cc location
chestLocation : "\n&7The Crystal Chest is located in world &c&l%world% &7at x: &c&l%x% &7y: &c&l%y% &7z: &c&l%z%&7.\n "
# Sent when a player interacts with the Crystal Chest with something other than a full key
needFullKey : "&c&lSorry, &7you need a %fullKey% &7to do this."
# Sent to a player when they try to use a Crystal Key on something other than the chest
noKeyWaste : "&c&lSorry, &7you can't use your Crystal Key like that!"
# Sent to a player when they open the Crystal Chest
openedChest : "&7Congratulations, you've opened the &b&lCrystal Chest&7!"
# Help menu for players with permission "crystalchest.admin.help"
adminHelp :
- "&7&m------&7>> &4CrystalChest Admin Help &7<<&7&m------"
- "&b&l/cc help &f- Bring up this help menu."
- "&b&l/cc combine &f- Combine the two keys into a full key."
- "&b&l/cc location &f- See the location of the Crystal Chest."
- "&b&l/cc set chest &f- Set the location of the Crystal chest to the block you're looking at."
- "&b&l/cc give <player> <key type> <amount> &f- Give crystal key(s) to a player."
- "&b&l/cc giveall <key type> <amount> &f- Give crystal key(s) to all online players."
# Help menu for players with permission "crystalchest.help"
userHelp :
- "&7&m------&7>> &cCrystalChest Help &7<<&7&m------"
- "&b&l/cc help &f- Bring up this help menu."
- "&b&l/cc combine &f- Combine the two keys into a full key."
- "&b&l/cc location &f- See the location of the Crystal Chest."
noPermission : "&c&lSorry, &7you don't have permission for that."
# Sent when a player-only command is attempted by console
mustBePlayer : "&c&lSorry, &7only players can do this command!"
# Sent when the targeted player is offline
playerOffline : "&c&lSorry, &7that player is not online!"
# Sent if you try to give an invalid key type
invalidKey : "&c&lSorry, &7that isn't a valid key type!"
# Sent when an argument is supposed to be an integer but isn't
invalidInteger : "&c&lSorry, &7that isn't a valid integer argument!"
# Sent to the console or admin player who used /cc give
gaveKey : "&fYou gave &c%amount% &fof &c%type% &fto &c%player%&f."
# Sent to a player when they receive a key
receivedKey : "&fYou've received &c%amount% &fof &c%type%&f!"
# Sent when a player tries to combine keys without 1 of each A and B
notEnoughKeys : "&c&lSorry, &7you need to have at least 1 'A' key and 1 'B' key!"
# Sent when a player creates a full crystal key using /cc combine
combinedKeys : "\n&7You've created &b&l%amount% Full Crystal Key&7(&b&ls&7)!\n "
# Sent when a player sets the Crystal Chest location
setChestLocation : "\n&7You've successfully set the &b&lCrystal Chest &7location!\n "
# Sent when a player uses /cc location
chestLocation : "\n&7The Crystal Chest is located in world &c&l%world% &7at x: &c&l%x% &7y: &c&l%y% &7z: &c&l%z%&7.\n "
# Sent when a player interacts with the Crystal Chest with something other than a full key
needFullKey : "&c&lSorry, &7you need a %fullKey% &7to do this."
# Sent to a player when they try to use a Crystal Key on something other than the chest
noKeyWaste : "&c&lSorry, &7you can't use your Crystal Key like that!"
# Sent to a player when they open the Crystal Chest
openedChest : "&7Congratulations, you've opened the &b&lCrystal Chest&7!"
# Help menu for players with permission "crystalchest.admin.help"
adminHelp :
- "&7&m------&7>> &4CrystalChest Admin Help &7<<&7&m------"
- "&b&l/cc help &f- Bring up this help menu."
- "&b&l/cc combine &f- Combine the two keys into a full key."
- "&b&l/cc location &f- See the location of the Crystal Chest."
- "&b&l/cc set chest &f- Set the location of the Crystal chest to the block you're looking at."
- "&b&l/cc give <player> <key type> <amount> &f- Give crystal key(s) to a player."
- "&b&l/cc giveall <key type> <amount> &f- Give crystal key(s) to all online players."
# Help menu for players with permission "crystalchest.help"
userHelp :
- "&7&m------&7>> &cCrystalChest Help &7<<&7&m------"
- "&b&l/cc help &f- Bring up this help menu."
- "&b&l/cc combine &f- Combine the two keys into a full key."
- "&b&l/cc location &f- See the location of the Crystal Chest."
There are no required plugins that a server must be running in order to use CrystalChest. However, servers must be running mcMMO if they wish to use the "natural blocks only" feature of key-dropping from blocks. This is because CrystalChest relies on mcMMO to determine which blocks are natural and which have been placed by players.
CrystalChest's native Minecraft version is 1.17 and will continue to be updated to the latest server versions that are released. This plugin does work on all of the following versions:
- 1.15
- 1.15.1
- 1.15.2
- 1.16.1
- 1.16.2
- 1.16.3
- 1.16.4
- 1.16.5
- 1.17
Access with:
Code (Java):
CrystalAPI.
api
Code (Java):
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.15, 1.16, 1.17
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — see the MC Java Mods guides for the full walkthrough.
CrystalChest | Unique Gameplay Experience is a free Minecraft Java mod. Compatible with Minecraft 1.15, 1.16, 1.17. Downloaded 1,249 times (via Spigot). Download it and open it directly in the game.