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
- Authentic opening flow — preview a case's contents before you commit, watch a reel-style reveal animation with the classic case-unlock sound, then explicitly Claim your reward or press ESC to drop it on the ground.
- Five-tier rarity rolls with weighted probabilities and the familiar CS color coding: Mil-Spec blue → Restricted purple → Classified pink → Covert red → Rare Special gold.
- Fully data-driven — 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.
- Real item stacks as rewards — a reward entry is anything
/give accepts. Stack sizes, enchantments, custom names, lore, attribute modifiers, dyed leather, any registered data component, all of it.
- Wrong-key protection — 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.
- Multiplayer-ready — 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.
- Hot reload —
/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
- Grab a Case and a matching Case Key from the creative tab — the tab automatically lists one of each per loaded case.
- Place the case. Right-click it with the matching key to open the preview screen showing all possible rewards, grouped by tier.
- Hit Open to consume the key and start the reveal animation. Press ESC during the animation to skip straight to the reward screen.
- On the reward screen, click Claim 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:
{
"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
- Minecraft 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.