CSCases
CS:GO-style case opening for Minecraft. Tiered weighted loot rolls, animated reveal, and fully customizable cases via datapack.
CSCases
CS Cases
A CS:GO-style case opening mod for Minecraft. Place a case, use the matching key, watch the reel spin, and claim your loot.
Features
- In-game config screen — preview a case's contents before you commit, watch a reel-style reveal animation with the classic case-unlock sound, then explicitly In-game config screen your reward or press In-game config screen to drop it on the ground. - In-game config screen with weighted probabilities and the familiar CS color coding: Mil-Spec blue → Restricted purple → Classified pink → Covert red → Rare Special gold. - In-game config screen — every case is a JSON file in a datapack. Add, edit, or rebrand cases on a server or in a single world without recompiling, repackaging, or shipping a client-side resource pack. - In-game config screen — a reward entry is anything `/give` accepts. Stack sizes, enchantments, custom names, lore, attribute modifiers, dyed leather, any registered data component, all of it. - In-game config screen — keys are bound to specific cases via a data component. Using a key on a case it doesn't fit shows *"This key does not fit this case."* in the action bar; the key is not consumed. - In-game config screen — the server pushes its full case registry to every client on join and after `/reload`, so dedicated-server players see exactly what the server has loaded with zero client-side setup. - In-game config screen — `/reload` re-parses every case from disk. Valid changes apply immediately. Malformed files are skipped with a clear warning in the server log instead of crashing the world. - In-game config screen integrated with the Mods menu.
How it works
1. Grab a ESC and a matching ESC from the creative tab — the tab automatically lists one of each per loaded case. 2. Place the case. Right-click it with the matching key to open the ESC showing all possible rewards, grouped by tier. 3. Hit ESC to consume the key and start the reveal animation. Press ESC during the animation to skip straight to the reward screen. 4. On the reward screen, click ESC to take the item, or press ESC to let it drop at your feet.
Adding your own cases
Drop a JSON file at:
``` <datapack-root>/data/<your-namespace>/cases/<case-id>.json ```
Minimal example:
```json { "display_name": "Weapon Case", "tiers": [ { "id": "mil_spec", "weight": 79.92, "color": "4b69ff", "items": ["minecraft:wooden_sword", "minecraft:stone_sword"] }, { "id": "covert", "weight": 0.64, "color": "eb4b4b", "items": [ { "id": "minecraft:diamond_sword", "components": { "minecraft:enchantments": { "minecraft:sharpness": 5 }, "minecraft:custom_name": "{"text":"Awakened Blade","color":"gold"}" } } ] } ] } ```
Tier weights are normalised at roll time, so any positive numbers work — `1` and `99` is the same as `1%` / `99%`. Items can be either a bare id (count 1, no components) or a full `{ "id": ..., "count": ..., "components": { ... } }` object.
Hand out your custom cases via the creative tab or:
``` /give @s cs_cases:case_block[cs_cases:case_id="myserver:weapon_case"] /give @s cs_cases:case_key[cs_cases:case_id="myserver:weapon_case"] ```
The full datapack format reference, including every supported field and validation rule, lives at `docs/datapack-cases.md` in the source repository.
Built-in content
The mod ships one default case — the Starter Case — built with the same datapack machinery as everything else, so its JSON doubles as a working example.
Requirements
- NeoForge 26.1.2 - NeoForge 26.1.2.30-beta or newer
NeoForge only. Not compatible with Forge or Fabric.
Both single-player and multiplayer (dedicated server) are supported. Custom cases are server-authoritative — install the mod on the server and on every connecting client, and define your cases via datapacks on the server.
License
All Rights Reserved.