Home›Java›Mods›Custom Cases
Custom Cases
ModsJava

Custom Cases

Java mod listed for Minecraft 1.20. Downloads from the MC Java Mods app on Android.

by Zapadol · on CurseForge

Add immersive Loot Cases to Minecraft - with CSGO-style animations, fully configurable via JSON files and easily insertable into any custom loot table.

Which build do you need?

This mod ships a separate file for every mod loader and every version of the game. Pick both, then download — the wrong build installs fine and then does nothing in the game.

Mod loader

Minecraft version

⬇ Download for 1.20.1 · Forge⬇ Download for 1.20.1 · NeoForge
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.
Custom Cases — screenshot 1Custom Cases — screenshot 2Custom Cases — screenshot 3Custom Cases — screenshot 4

🎰 Custom Cases Mod

Animated Loot Cases for Minecraft!

Open a case. Watch the CS:GO-style roulette spin. Claim your reward.

  • Loot cases are 100% configurable.

✨ Features

🎮 Gameplay

⚙️ Technical

🎨 Customization — \config\CasesMod\cases\

  • Name,
  • Rarity,
  • Drop chance (%),
  • Enchantments,
  • Attributes,
  • CustomModelData,
  • Stack size ranges,
  • NBT - (CasesMod 1.1.0 and above)

🖌️ Textures

➡️ You can add, modify, or remove textures for cases and GUIs by opening the .jar file (for example with WinRAR) and navigating to:
\resources\assets\casesmod\

You can modify or add:

  • case_<CaseID>.png
  • case_gui_<CaseID>.png
  • multi_case_gui_<CaseID>.png
  • spin_overlay_<CaseID>.png

⚠️ All players must use the same modified mod version ⚠️

  • Resource pack support: planned, not yet tested

💎 Rarity Tiers

Rarity Color Default Particles
⬜ Common White None
🟩 Uncommon Green None
🟦 Rare Blue ✨ Enchantment sparks ×15
🟪 Epic Purple 💜 Hearts ×20
🟨 Legendary Gold 🌟 Totem particles ×50

📦 Adding a Case

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.

🪤 Adding a Case in Loot Table

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
        }
      ]
    }
  ]
}

⚙️ Configuration

\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

🌟 Legendary Events

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.


🔧 Commands

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

📜​​ Fabric Version


🚀 FAQ

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).


​📋​ License

The mod's source code will be uploaded to GitHub soon.

This project is All Rights Reserved.

You may:

Forks:

Forks are only permitted for submitting pull requests to the upstream repository.

Restrictions:

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more