Tags
Creators
Details
2.0
Compatibility
Required content
Changes
ShadowCrates 2.0 Update
Changes
- I fixed exploit bugs.
- I fixed the Prizes Storage bugs.
- I modified some commands.
- I added a new animation.
- I fixed the issues with Key Storages.
- I fixed some database issues.
- I added new values โโto the mod configs.
- I have added 2 new formats for item prizes.
- I added a new form of message broadcast to use commands for multiservers.
- I added a way in config to set autobackup true/false.
- I added a new command so you can open Crates without having to set up a Crate.
- Now messages use the name from the "PrivewName" value for "CrateName".
Commands Chenges
I added a new command with which you can open crates without needing to use a block from a set crate, the command still requires you to have the key for that crate in order to open the crate, currently only GUI crates work.
- Command:
/crate open <player> <crate> - Permission:
crate.open
I modified the /crate clearstorage command so that it is now two different commands with different permissions so that it can be used for players/admins.
- Command:
/crate storage clear - Permission:
crate.storage.clear - Command:
/crate storage clear <player> - Permission:
crate.storage.clear.other
I modified the /crate key clear command so it now comes in two different formats with unique permissions.
- Command:
/crate key clear <player> all - Permission:
crate.key.clear.all - Command:
/crate key clear <player> <crate> - Permission:
crate.key.clear
I added support for vanilla minecraft formats for: @p @r etc..
Animations
We have added a new animation for GUI formats, the new animation is called slots and it is very easy to use.
New Broadcast Message
I added a new broadcast message format so you can use commands from other mods that are for server or multiserver announcements.
"messageCustom": true,
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
%player%- Is for player name.%prizes%- Is for prizes opened by the player.%cratename%- Is for crate name.
Prizes Storage Save
I added a new value in the configs for Storage to know how many slots the player needs in their inventory to be able to claim prizes from storage, this value is only used in commands formats prizes for items formats there is no need to use it because the calculation is automatic.
// added after "weight" in config to the "command" and "command_pack" formats.
"storageClaimFreeSlots": (slots),
Auto BackUP Save
I added a method to set autobackups on server shutdown (crash/restarts/etc..), from now on you can set the value to true/false in shadowcrate/config.json
"autoBackUPs": true/false
Prizes New Formats
I have added two new formats for prizes from crates. Now you can make prizes with multiple rewards of one, using the following formats:
- Format:
item_pack
{
"type": "item_pack",
"weight": 100.0,
"pack": [
{
"material": "",
"amount": 1,
"displayname": ""
},
{
"material": "",
"amount": 1,
"displayname": ""
}
],
"displayItem": {
"material": "",
"amount": 1,
"displayname": "",
"lore": [
""
],
"enchantEffect": true,
"customModelData": 1
},
"messageGlobal": false,
"messagePlayer": false,
"messageCustom": false,
"broadcastGlobal": "",
"broadcastPlayer": "",
"broadcastCustom": ""
}
- Format:
command_pack
{
"type": "command_pack",
"weight": 100.0,
"storageClaimFreeSlots": 2,
"pack": [
{
"command": ""
},
{
"command": ""
}
],
"displayItem": {
"material": "",
"amount": 1,
"displayname": "",
"lore": [
""
],
"enchantEffect": true,
"customModelData": 1
},
"messageGlobal": false,
"messagePlayer": false,
"messageCustom": false,
"broadcastGlobal": "",
"broadcastPlayer": "",
"broadcastCustom": ""
}
EXZEMPLE CRATE FOR PACKS FORMATS
{
"name": "packcrate",
"previewName": "&bPack Crate",
"permission": "crate.pack",
"openSound": "minecraft:block.chest.open",
"rewardSound": "minecraft:entity.player.levelup",
"movingItemSound": "minecraft:entity.item.pickup",
"particleType": "minecraft:happy_villager",
"animationType": "slots",
"animationSteps": 40,
"animationInterval": 200,
"lidModelData": 1,
"bodyModelData": 1,
"animationMaterial": "",
"keyItem": {
"isVirtualKey": false,
"material": "minecraft:tripwire_hook",
"customModelData": 1,
"amount": 1,
"displayname": "&bPack Crate Key",
"lore": [
"&7Use this key to open Pack Crate!"
],
"enchantEffect": true
},
"prizes": [
{
"type": "item_pack",
"weight": 30.0,
"pack": [
{
"material": "minecraft:diamond",
"amount": 5,
"displayname": "&bShiny Diamond"
},
{
"material": "minecraft:gold_ingot",
"amount": 10,
"displayname": "&6Golden Ingot"
}
],
"displayItem": {
"material": "minecraft:diamond",
"amount": 5,
"displayname": "&bDiamond & Gold Pack",
"lore": [
"&7Get 5 Diamonds and 10 Gold Ingots!"
],
"enchantEffect": true,
"customModelData": 1001
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won &bDiamond & Gold Pack&7!",
"broadcastPlayer": "&aYou received a &bDiamond & Gold Pack!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
},
{
"type": "item_pack",
"weight": 20.0,
"pack": [
{
"material": "minecraft:emerald",
"amount": 15,
"displayname": "&aRich Emerald"
},
{
"material": "minecraft:experience_bottle",
"amount": 32,
"displayname": "&aXP Bottles"
}
],
"displayItem": {
"material": "minecraft:emerald",
"amount": 15,
"displayname": "&aEmerald & XP Pack",
"lore": [
"&7Earn 15 Emeralds and 32 XP bottles!"
],
"enchantEffect": true,
"customModelData": 1002
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won &aEmerald & XP Pack&7!",
"broadcastPlayer": "&aYou received an &aEmerald & XP Pack!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
},
{
"type": "item_pack",
"weight": 25.0,
"pack": [
{
"material": "minecraft:netherite_ingot",
"amount": 2,
"displayname": "&8Ancient Netherite"
}
],
"displayItem": {
"material": "minecraft:netherite_ingot",
"amount": 2,
"displayname": "&8Netherite Pack",
"lore": [
"&7Get 2 Netherite Ingots!"
],
"enchantEffect": true,
"customModelData": 1003
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won a &8Netherite Pack&7!",
"broadcastPlayer": "&aYou received a &8Netherite Pack!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
},
{
"type": "command_pack",
"weight": 40.0,
"storageClaimFreeSlots": 3,
"pack": [
{
"command": "give %player% minecraft:diamond_sword 1"
},
{
"command": "give %player% minecraft:shield 1"
}
],
"displayItem": {
"material": "minecraft:diamond_sword",
"amount": 1,
"displayname": "&bSword & Shield Pack",
"lore": [
"&7Receive a Diamond Sword and a Shield!"
],
"enchantEffect": true,
"customModelData": 2001
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won a &bSword & Shield Pack&7!",
"broadcastPlayer": "&aYou received a &bSword & Shield Pack!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
},
{
"type": "command_pack",
"weight": 35.0,
"storageClaimFreeSlots": 3,
"pack": [
{
"command": "give %player% minecraft:golden_apple 5"
},
{
"command": "give %player% minecraft:enchanted_golden_apple 1"
}
],
"displayItem": {
"material": "minecraft:golden_apple",
"amount": 5,
"displayname": "&6Golden Apple Pack",
"lore": [
"&7Receive 5 Golden Apples and 1 Enchanted Apple!"
],
"enchantEffect": true,
"customModelData": 2002
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won a &6Golden Apple Pack&7!",
"broadcastPlayer": "&aYou received a &6Golden Apple Pack!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
},
{
"type": "command_pack",
"weight": 15.0,
"storageClaimFreeSlots": 2,
"pack": [
{
"command": "crate key give epic 1 %player%"
},
{
"command": "crate key give epic 1 %player%"
}
],
"displayItem": {
"material": "minecraft:tripwire_hook",
"amount": 2,
"displayname": "&dEpic Crate Keys",
"lore": [
"&7Receive 2 Epic Crate Keys!"
],
"enchantEffect": true,
"customModelData": 2003
},
"messageGlobal": true,
"messagePlayer": true,
"messageCustom": false,
"broadcastGlobal": "&e%player% &7won 2 &dEpic Crate Keys&7!",
"broadcastPlayer": "&aYou received 2 &dEpic Crate Keys!",
"broadcastCustom": "tell @p &e[ShadowCrates] &a%player% &7won &b%prizes% &7from &6%cratename%"
}
]
}
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:f136wypQ:6i5oSygI"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:f136wypQ:6i5oSygI"
}

