Custom Cases

Quick rating

Custom Cases

No reviews yet

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

Mod Loaders
Forge
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
CasesMod-forge-1.1.0-1.20.1.jar
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

🎰 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

  • 🎰 CS:GO-style roulette — smooth two-phase easing (cubic in → exponential out)
  • 🃏 Open ×5 — open five cases simultaneously in a side-by-side view
  • 🔍 Case preview — left-click any case to inspect its full loot table with exact drop rates
  • 🏆 Legendary broadcast — server-wide chat message and sound when a legendary item is won, synced with the exact moment the roulette stops

⚙️ Technical

  • 📁 100% customizable cases — defined as JSON files in \config\CasesMod\cases\, no code required
  • 🔄 Live reload/casesmod reload instantly applies changes without restarting
  • 🔒 Reward escrow — unclaimed rewards are safely stored server-side, even after disconnects
  • 🛡️ Server-authoritative system — all rolls happen server-side; clients only receive animation data

🎨 Customization — \config\CasesMod\cases\

  • 5 rarity tiers, each with configurable particle effects (type, count, enabled/disabled)
  • Configurable spin duration, legendary sound ID, and broadcast scope (winner-only or global)
  • Per-item customization :
  • 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:

  • Modify and use privately
  • Use in modpacks (downloaded directly from CurseForge/Modrinth)

Forks:

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

Restrictions:

  • Any public publication/upload requires my prior written authorization
  • Redistribution of builds or rehosting is strictly prohibited

Screenshots

Gallery

  • CaseItem.png
    CaseItem.png CaseItem.png
  • CasePreview.png
    CasePreview.png CasePreview.png
  • case.gif
    case.gif case.gif
  • MultiCasesScreen.png
    MultiCasesScreen.png MultiCasesScreen.png

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works