Open a case. Watch the CS:GO-style roulette spin. Claim your reward.
- Loot cases are 100% configurable.
\config\CasesMod\cases\, no code required/casesmod reload instantly applies changes without restarting\config\CasesMod\cases\
- Name,
- Rarity,
- Drop chance (%),
- Enchantments,
- Attributes,
- CustomModelData,
- Stack size ranges,
- NBT - (CasesMod 1.1.0 and above)
➡️ You can add, modify, or remove textures for cases and GUIs by opening the
.jarfile (for example with WinRAR) and navigating to:
\resources\assets\casesmod\You can modify or add:
case_<CaseID>.pngcase_gui_<CaseID>.pngmulti_case_gui_<CaseID>.pngspin_overlay_<CaseID>.png⚠️ All players must use the same modified mod version ⚠️
- Resource pack support: planned, not yet tested
| Rarity | Color | Default Particles |
|---|---|---|
| ⬜ Common | White | None |
| 🟩 Uncommon | Green | None |
| 🟦 Rare | Blue | ✨ Enchantment sparks ×15 |
| 🟪 Epic | Purple | 💜 Hearts ×20 |
| 🟨 Legendary | Gold | 🌟 Totem particles ×50 |
Drop a .json file into \config\CasesMod\cases\ and run /casesmod reload (does not requires restart to apply).
{
"caseName": "Weapon Case",
"caseId": 3,
"XP_price": false,
"XP": 1,
"Item_price": false,
"Item": "minecraft:chest,
"Item_count": 1,
"Command_price": false,
"Command": "/give %player% minecraft:chest",
"loot": [
{
"item": "minecraft:iron_sword",
"min": 1,
"max": 1,
"chance": 40,
"rarity": "common"
},
{ "item": "minecraft:diamond_sword",
"chance": 20,
"rarity": "rare",
"enchantments": [{ "id": "minecraft:sharpness", "level": 3 }]
},
{
"item": "minecraft:diamond_sword",
"min": 1,
"max": 1,
"chance": 4.76,
"rarity": "epic",
"displayName": "§6★ Diamond Sword ★",
"customModelData": 1,
"attributes": [
{ "name":"minecraft:generic.attack_damage","value": 10.0,"slot":"mainhand"},
{ "name":"minecraft:generic.armor","value": 5.0,"slot":"chest"}],
"enchantments": [
{ "id": "minecraft:sharpness", "level": 5 },
{ "id": "minecraft:unbreaking", "level": 3 },
{ "id": "minecraft:looting", "level": 3 }]
},
{
"item": "minecraft:chest",
"min": 1,
"max": 2,
"chance": 60.76,
"rarity": "epic",
"NBT": "BlockEntityTag:{Items:[{Slot:0,id:acacia_fence,Count:1},{Slot:15,id:acacia_slab,Count:1}]},Enchantments:[{lvl:1,id:depth_strider}]"
}
]
}
Chances do not need to total 100 — they are automatically normalized. Both
"chance"and"weight"are supported.
Drop a .json file into data/<your_mod>/loot_tables/ or use a Global Loot Modifier.
The function casesmod:set_case_id adds the NBT tags CaseID and CustomModelData to the item casesmod:case_item. The Case_ID must match a file in /config/CasesMod/cases/<Case>.json on the server.
Here: 30% chance to get Case #1, 10% chance to get Case #2.
{
"type": "minecraft:chest",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "casesmod:case_item",
"weight": 3,
"functions": [
{
"function": "casesmod:set_case_id",
"case_id": 1
}
]
},
{
"type": "minecraft:item",
"name": "casesmod:case_item",
"weight": 1,
"functions": [
{
"function": "casesmod:set_case_id",
"case_id": 2
}
]
},
{
"type": "minecraft:empty",
"weight": 6
}
]
}
]
}
\config\CasesMod\CasesMod.yml (requires restart to apply):
| Option | Default | Description |
|---|---|---|
spinDurationTicks |
100 (5 s) |
Duration of the roulette animation |
multiOpenEnabled |
true |
Enables the Open ×5 feature |
particles rarity enabled |
varies | Enable or disable particles per rarity |
particles rarity type |
varies | Particle type (ResourceLocation) |
particles rarity count |
varies | Number of particles spawned |
Configure in /config/CasesMod/CasesMod.yml:
legendary:
message: "§6[CasesMod] §r{player} §6obtained §r{item} §6(Legendary)!"
sound_enabled: true
sound_broadcast: true # false = only the winner hears it
sound_id: "minecraft:entity.wither.spawn"
The message and sound trigger when the roulette stops, ensuring perfect visual synchronization.
Requires operator permission (level 2).
| Command | Description |
|---|---|
/casesmod give <player> <CaseId> or /give <player> casesmod:case_item{CaseID:<CaseId>} |
🎁 Give a specific case |
/casesmod list |
📋 List all loaded cases |
/casesmod reload |
🔄 Reload all JSON files |
Q: Can I use this on my modpack?
A: Yes, for sure !
Q: Can I use this on my server?
A: Yes, for sure !
Q: Can I create an addon for this mod?
A: Yes, for sure !
Q: Where can I report bugs?
A: Use the Issues tab on CurseForge or contact me via Discord (link in profile).
The mod's source code will be uploaded to GitHub soon.
This project is All Rights Reserved.
Forks are only permitted for submitting pull requests to the upstream repository.