Jump to content

20 Screenshots

  • 36
  • 3
  • 963.67 kB
  • Update details
    v2.0.4
    Released
    Download size 963.67 kB
    Total versions 1
    Freshness Updated today

Works with

Compatible add-ons, packages, or tools that pair well with this resource.

About Case Battles

[ ! ] The zip contains a DLL extension that goes into RustDedicated_Data/Managed. Some hosts do not allow uploading DLLs - check with your host before buying. [ ! ]

Case Battles

Case Battles is case opening for Rust. Players open cases with scrap, Economics or ServerRewards money, with case keys, or for free on a cooldown, watch the spin slide across the items and land on the drop, and everything they win goes to a personal storage where they claim it into the inventory or sell it back.

Battles put 2 to 4 players on the same list of cases, in 1v1, 2v2, 3-way or 4-way, and the highest total takes the whole pot (the lowest in crazy mode). House bots fill empty seats, private battles join by code, and anyone can watch. The upgrader trades items or currency for a better item at a chance shown on a dial before you press GO. Every roll is provably fair, and players can check any of them in the window.

Version 2.0 adds levels with free level cases, Case Rain that splits a server pot among the players who join, wipe seasons that pay the top 3 of every board in cases, a guided tour, Steam avatars on every board and seat, and a whole new window.

Works on Oxide and Carbon Needs CrashExtensions (included in the zip)
20 cases and 3 level cases ready to go English, Spanish, Russian, Portuguese and German built in

Jump to: Features · How it plays · Screenshots · Trailer · Included cases · Commands · Permissions · Install · Configuration · Test server · FAQ · API

🌟 Features

For players

  • A spin for every open. Open up to 5 at once, or switch on quick open and skip straight to the drop. A demo spin shows a case for free and wins nothing.
  • Case battles. 1v1, 2v2, 3-way and 4-way, up to 10 cases per battle, normal (highest total wins) or crazy (lowest total wins), public or private with a code. Join, watch, fill empty seats with house bots (the creator calls them), or recreate the battle in one click.
  • The upgrader. Offer up to 6 items or currency, pick a target or a multiplier chip (x1.5 to x10), and see your exact chance on the dial before you spin.
  • A storage of your own. Every drop waits there: claim it into your inventory or sell it back for 85% of its value.
  • Provably fair. The hash of the server seed is shown before you roll, you can set your own client seed, and the FAIRNESS page checks any revealed roll against the drop table it was made with.
  • Levels. Everything you open, battle and upgrade earns XP, and the level road hands out bronze, silver and gold level cases. Levels carry over between wipes.
  • Case Rain. A small share of every paid open fills a pot. When it rains, players have 60 seconds to join and the pot is split between them.
  • Wipe seasons. Three boards close at every wipe (best drop, profit, battles) and the top 3 of each get cases.
  • Stats. Your own numbers, the server's, top drops and leaderboards.
  • A live drop feed and toasts for the big drops on the server, and HUD rows for a running Case Rain, a ready free case and its cooldown.
  • A guided tour the first time the window opens, replayed from the ? button.

For server owners

  • Your currency. Scrap (or any item you name), Economics or ServerRewards, set with one config line.
  • Sell keys and cases. casebattles.givecase and casebattles.givekey are made for your shop, Tebex or battle pass, offline players included. The GET KEYS button links to your store.
  • A key dealer NPC. Place him with /cases dealer add. He sells keys in packs with bulk and VIP discounts and a daily limit (talks through NpcDialogue, optional).
  • In-game editor. /cases edit edits every case and its drops in game, so nobody has to touch a file.
  • VIP hooks. Discount permissions on case prices, VIP prices at the key dealer, and per-case permissions such as the VIP case.
  • Limits and locks. Daily and lifetime limits per case, minimum playtime, a lock after the wipe, and blocks while wounded, swimming, in a vehicle, building blocked, or combat and raid blocked (with NoEscape).
  • Drops beyond items. A drop can be an item, a blueprint or a list of console commands (a rank, a kit, anything).
  • Discord. Big drops and Case Rain posted to your webhook, from the rarity you choose.
  • 5 languages. English, Spanish, Russian, Portuguese and German are built in, and each player sees the language of their own game.
  • Wipe your way. Storage and keys survive the wipe by default, and so do levels. Each is one switch.

For developers

  • A hook and an API. OnCaseOpened and the API_* calls: give cases and keys, read a player's opens, keys and level, open the window on a tab or a case. See the API.
  • Console and RCON commands. The give commands run from the server console and RCON, which is where your shop, quests and reward plugins point.

🔁 How it plays

  1. Pick a case. Free ones run on a cooldown, the rest cost currency or keys. Every case shows its drops and their odds.
  2. Open. One to five at a time. The spin lands on a drop decided by your seeds before it starts.
  3. Keep or sell. Drops go to your storage. Claim them into your inventory or sell them back.
  4. Battle. Create or join a battle, everyone opens the same cases round by round, and the winner takes the pot.
  5. Upgrade. Put items or currency on the dial for a shot at something better.
  6. Progress. XP from every open, battle and upgrade raises your level, level cases wait on the level road, and the season boards pay out at the wipe.
  7. Check. Rotate your seed to reveal the old one and verify any roll on the FAIRNESS page.

📸 Screenshots

Every screen below is Case Battles running in Rust.

The case browser
The case browser
A case and its drops Two cases landed
A case and its drops Two cases landed: total, cost and profit
The battles lobby A battle room
The battles lobby A battle room
A battle winner The upgrader
A battle winner The upgrader
The storage Fairness
The storage Fairness and the roll verifier
Stats The level road
Stats The level road
Season boards Case Rain
Season boards: the top 3 of each win cases Case Rain on the HUD while you play
Case Rain live in the case browser A level-up with a level case
Case Rain live in the case browser A level-up with a level case
Creating a 2v2 battle History, every roll with its fairness check
Creating a 2v2 battle History, every roll with its fairness check
The guided tour
The guided tour

🎥 Trailer

The Case Battles 2.0 trailer (click to play, 80 seconds)
Watch the Case Battles 2.0 trailer

🎁 Included Cases

20 cases ship ready to open, with 7 rarities from Common to Gold and three keys (green, blue and red):

  • Free on a cooldown - Daily Case (every 24 hours, after 30 minutes played) and Starter Case (every 4 hours, after 15 minutes played)
  • For currency - Medic (250), Fuel (300), Miner (350), Farmer (400), Ammo (550), Builder (600), Tech (800), Mystery (1,500), Boom (5,000), VIP (5,000, for casebattles.vip) and Jackpot (6,500, 3 a day)
  • For keys - Weapons (1 green), Diver (1 green), Airdrop (1 blue), Tactical (2 blue), Elite (1 red), Cobalt (2 red) and Legend (3 red, locked for the first 2 hours of a wipe)
  • Level cases - Bronze, Silver and Gold, claimed from the level road at levels 5 to 50

A few of the drops at the top: the AK-47 blueprint in the Weapons Case, an auto turret blueprint in the Builder Case, 10,000 scrap in the Mystery Case, and 20 timed C4 in the Legend, Jackpot and Gold Level cases.

A disabled Example Rewards case shows the other kinds of drop: blueprints, a reward paid by console command, and a VIP rank granted on the spot.

Yours to change: every case lives in oxide/config/CaseBattles.json, plain JSON, and the in-game editor writes the same file.

🗒️ In-Game Editor

No file editing needed. /cases edit opens every case in a list and an editor for its name, image, price or key, free cooldown, permission, daily and lifetime limits, playtime and wipe lock, rarity tier, badge and whether it is allowed in battles. Add drops from the item list or straight from your inventory (skin, name and amount kept), set their odds and values, and watch the case's expected value update as you go. Duplicate a case to start a new one. Players keep the live table until you press SAVE.

The case editor

Who can open it: players with casebattles.admin. Reward commands are edited in the config file only.

🎮 Commands

Players

  • /cases - open the window (the command name is set in the config)
  • /cases battles, /cases upgrader, /cases storage - open the window on that tab
  • /cases join <code> - join a private battle
  • /cases help - the command list in chat
  • /rain - join a running Case Rain (the name is set in the config, and it only exists while Case Rain is on)

Admin

  • /cases edit [case] - the in-game case editor, optionally straight on one case
  • /cases dealer add | remove | list - place a key dealer where you stand, remove one, or list them
  • casebattles.givecase <player> <case> [amount] - give free opens of a case, the one to point your shop, Tebex or battle pass at
  • casebattles.givekey <player> <key> [amount] - give case keys
  • casebattles.givebalance <player> <amount> - give currency
  • casebattles.rain [amount | add <amount> | stop | status] - start a Case Rain now (an amount tops the pot up first), add to the pot without starting one, stop a rain without paying (the pot is kept), or show the pot and the time to the next one

The give and rain commands run from the server console and RCON as well. <player> is a SteamID64, online or not, or the exact name of an online player.

🛡️ Permissions

  • casebattles.use - open cases, battles, the upgrader and the storage. Required, so grant it to your default group
  • casebattles.admin - the editor, the key dealer, and the give, rain and convert commands. Staff only, and give it to yourself too: being a server admin is not enough
  • casebattles.discount1, casebattles.discount2, casebattles.discount3 - 5, 10 or 15% off case prices paid in currency. The highest one a player holds wins
  • casebattles.dealer.vip1, casebattles.dealer.vip2 - 5 or 10% off keys at the key dealer, added to the bulk discount
  • casebattles.vip - opens the VIP Case

Every case can carry its own permission, and the discounts, dealer prices and demo spin permission are all set in the config.

A typical setup opens everything to everyone and keeps the discounts and the VIP case for your VIPs:

oxide.grant group default casebattles.use
oxide.grant group vip casebattles.discount2
oxide.grant group vip casebattles.dealer.vip1
oxide.grant group vip casebattles.vip
oxide.grant user <your steamid> casebattles.admin

📦 Install

  1. Install the extension, once per server. Stop the server, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (Carbon: carbon/extensions) and start it again. The console prints Loaded extension CrashExtensions with its version. An older copy of the DLL is simply overwritten: it is one shared file for all our plugins.
  2. Install the plugin. Copy CaseBattles.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates its config, data and language files.
  3. Grant the permissions above. Nobody opens a case until casebattles.use is granted. Then type /cases in game: the tour shows you around, and /cases edit tunes the cases.

Plugin does not compile? The extension is missing or too old: check the folder and restart again. On a hosting panel, upload the DLL with the file manager or SFTP, and keep a copy in case the panel resets that folder on an update.

⚙️ Configuration

Everything lives in oxide/config/CaseBattles.json, the cases included. Each player's storage, keys, level and history are in oxide/data/CaseBattles/players, and the battles, boards, seasons and the Case Rain pot in oxide/data/CaseBattles/global.json.

Config sections (click to expand)

Spoiler
  • General - the chat command, the sell rate, storage size, keeping storage and keys through a wipe, opens at once (1 to 5), the store link behind GET KEYS, the image base URL, history size and the demo spin
  • Art pack - venux (the 2.0 case renders) or classic (the 1.x renders)
  • Currency - Scrap (or any item), Economics or ServerRewards, its name and icon
  • Keys and Rarities - names, icons and colours
  • Spin - how long it runs and how far it travels
  • Battles - on or off, rounds per battle, open battles, house bots, crazy and private modes, the countdown, the time before an unfilled battle is cancelled and refunded, and the smallest pot announced
  • Upgrader - on or off, house edge, minimum and maximum chance, items per offer, currency offers, the multiplier chips and the dial time
  • Live drops and broadcasts - the rarity that reaches the drop strip, the chat, the screen toast and Discord, and the Discord webhook
  • Sounds - every effect, each one can be emptied to silence it
  • Key dealer - name, outfit, key prices, pack sizes, bulk and VIP discounts, the daily limit and his spawn points
  • Restrictions - combat and raid blocks (NoEscape), building blocked, wounded, swimming, in a vehicle, and a claim delay after the wipe
  • VIP discounts - permission and percent off case prices
  • Levels - on or off, reset on wipe, XP per currency spent, the battle win bonus, the XP curve, max level, level-up announcements and the level cases
  • Case Rain - on or off, pot share, minutes between rains, players online, smallest pot, join window, playtime needed, the chat command, raining cases instead of the pot, and Discord
  • Season rewards - prizes per place, days between wipes or the monthly force wipe countdown
  • Cases - every case with its price, key, cooldown, permission, limits, locks and drops (item, skin, amount, rarity, weight, value, blueprint or commands)

🧪 Test server

Available on the new Meowcraft test server. Join from the F1 console and type /cases:

client.connect 91.229.114.54:28015

📚 FAQ

Q: I run Case Battles 1.x. What changes when I update?
A: Replace CaseBattles.cs. The first load upgrades the config and keeps the old file as oxide/config/CaseBattles.json.v1.bak, and your cases, storage, keys and history carry over. Levels are on and the bronze, silver and gold level cases are added. Case Rain and season rewards start off, so turn them on in the config when you want them. The art stays classic (the 1.x pictures) until you set Art pack to venux.

Q: Do I need an economy plugin?
A: No. Cases, battles and the upgrader run on scrap by default, or on any item you name. Economics or ServerRewards take one config line. Keys are separate: you give or sell them with casebattles.givekey, the key dealer or your shop.

Q: Is it really provably fair?
A: Yes. Every roll is HMAC-SHA256 of the player's server seed, client seed and a nonce. The hash of the server seed is shown before any roll, the player can set their own client seed, and rotating the seed reveals the old one. The FAIRNESS page recomputes any past roll against the drop table it was made with, not today's config.

Q: Does it work on Carbon?
A: Yes. The extension goes into carbon/extensions and the plugin into carbon/plugins, and everything else is the same.

Q: Can I translate it?
A: It already speaks five: English, Spanish, Russian, Portuguese and German are built into the plugin, and each player sees the language their game runs in. For another language, copy oxide/lang/en/CaseBattles.json to oxide/lang/<code>/CaseBattles.json and translate it.

Q: What happens at a wipe?
A: By default storage and keys are kept, and so are levels. The season boards close, the top 3 of every board get their prize cases, and a new season starts. One switch makes storage and keys start over at the wipe, another resets levels.

Q: Do I need NpcDialogue?
A: No, it is optional and only for the key dealer. With NpcDialogue installed he talks through the vanilla conversation screen and sells keys there. Without it, talking to him opens the case window.

Q: Can I sell cases or keys in my shop?
A: Yes. Point your shop, Tebex or battle pass at casebattles.givecase or casebattles.givekey, and set your store link for the GET KEYS button in the config.

Q: How heavy is it?
A: Built for busy servers. Every spin plays on the player's own game, so it stays smooth whatever the server's frame rate, the window only sends what changed, and player files are saved with the server's own save.

Q: Does it contact any outside service?
A: It downloads its pictures (case art, keys and icons) from cdn.crashplugins.space and rust-cui.crashplugins.space, and your server caches them. Steam avatars are drawn by each player's own game, so the server fetches nothing from Steam. The optional Discord webhook is off until you set its URL; once set, it posts big drops and Case Rain with the player's name and profile links. Nothing else about your server or your players is sent.

🔧 API / Hooks

// Hook
void OnCaseOpened(BasePlayer player, string caseId, int count)
 
// API: CaseBattles?.Call<T>("Method", ...)
// player: a BasePlayer, player.userID, or a SteamID64 as ulong or string
// The give calls work for offline players and return false when nothing was given
bool API_GiveCase(object player, string caseId, object amount = null, bool notify = true)
bool API_GiveKeys(object player, string keyId, object amount = null, bool notify = true)
int  API_GetCaseOpens(object player, string caseId)
int  API_GetKeys(object player, string keyId)
int  API_GetLevel(object player)
bool API_OpenUI(BasePlayer player, string tab = null, string caseId = null) // tab: cases, battles, upgrader, storage, stats
Dictionary<string, string> API_GetCases()    // case id -> display name
Dictionary<string, string> API_GetKeyTypes() // key id -> display name

Join our Discord

Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.


crash's Collection

User Feedback

About Us

Codefling is the largest marketplace for plugins, maps, tools, and more, making it easy for customers to discover new content and for creators to monetize their work.

Downloads
3.2m
Total downloads
Customers
12.3k
Customers served
Files Sold
173.8k
Total sales
Payments
3.8m
Processed total
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.