Featured framework
Carbon for modern Rust servers
Fast, self-updating, and built for performance with seamless in-game plugin and server management.
1,400+
servers powered by Carbon
$49.90
Welcome to ThemePark Island
An expansive and meticulously crafted custom map for Rust, brought to you by the combined efforts of Silent Creations and Explosive Shart.
This map blends high-octane thrill-seeking with gritty, urban survival. Whether you’re riding a functional coaster or navigating the trap-filled halls of a medical center, ThemePark Island offers a fresh gameplay loop for PVP and PVE servers alike.
🎡 Featured Custom Monuments
The Theme Park
The crown jewel of the island. This isn't just a static monument—it features a fully functional, custom-coded rollercoaster. Scale the heights for a view of the island before diving into the chaos below.
Loot: High-density loot spawns throughout the park.
Puzzles: Includes both Green and Blue keycard puzzle rooms.
The 2 Gorges Dam
A massive, custom-built architectural marvel. The dam dominates the landscape, offering scenic vistas and deep, dark secrets.
Underground Puzzles: Navigate multiple puzzle rooms hidden deep within the structure.
Tactical Depth: Perfect for long-range engagements or sneaky subterranean looting.
Black Rock City
A sprawling urban center that feels like a lived-in wasteland.
Black Rock Medical Center: Enter at your own risk. This landmark is rigged with traps, multiple puzzles, and enough loot to supply an entire clan.
Custom Car Dealership: A unique urban addition for those looking to secure high-tier parts.
Pine Bluff
A smaller, dense city center for quick skirmishes and essential supplies.
Interiors: Explore a replica McDonald’s and a completely custom Supermarket.
Puzzles: Features multiple puzzles and heavy loot concentrations.
Mills Trailer Park
An eerie, abandoned residential area.
Puzzles: Features 2x Green Card puzzles and 1x Blue Card puzzle, making it a high-value stop for progression.
Additional Points of Interest
7-Eleven: That’s right—a faithful replica of the iconic convenience store for all your raiding snack needs.
Fuel Depot: An abandoned facility located in the snow biome, featuring a working Pumpjack and a Green Card puzzle.
Rose Hill Development: An unfinished construction site offering unique verticality and parkour opportunities.
Green Houses: Small botanical structures perfect for picking up plants and quick loot.
Map Size
4500
Prefab Count
#38450
🏛️ Facepunch Monuments
ThemePark Island includes a full suite of classic monuments to ensure a balanced Rust experience:
Tier 3: Launch Site, Arctic Research, Large Oil Rig, Small Oil Rig, Military Tunnel, Giant Excavator.
Tier 2: Airfield, Trainyard, Ferry Terminal, Rad Town, Jungle Ziggurat, Large/Small Harbor.
Tier 1: & Utilities: Bandit Camp, 3x Mining Outpost, 3x Oxums, Lighthouse, Supermarket, Large Barn, Ranch, Abandoned Cabins, Fishing Villages, 3x Water Well.
Resources: Stone, HQM, and Sulfur Quarries.
🙏 Acknowledgements
A massive thank you to those who helped bring this project to life:
Substrata: For the incredible work on the custom rollercoaster plugin.
Milky: For the stellar work on the promotional video.
MrLiquid & the Luffy Map Testing Team: For their dedication to polishing and balancing the map.
For any Assistance or questions Please contact me on Discord @ https://discord.gg/HNhPTPZVmd
$24.99
Allows both PVE and PVP players to exist on a server at the same time. PVE players will have certain configurable protections and restrictions. You can have players use a command to flag themselves as PVP/PVE or you can assign it to them when they first spawn. If you have ZoneManager you can also designate specific zones to force player's to be PVE or PVP. Plugin is also compatible with SimpleStatus.
Note: Video is outdated, see documentation for a full list of new features!
Documentation:
A full readme including permissions, commands, and config options is available in this google doc link.
Disclaimer:
Like all of my plugins - this plugin is sold as is. I will be happy to take feature requests into consideration but make no guarantees about which ones get implemented. Please refer to the feature list before you make your purchase!
Developer API:
API Methods
// Returns the mode of the given entity. Also takes into account if the entity is in a forced mode zone.
string GetEntityMode(BaseEntity entity);
// Returns the group name for the given mode. For example if given 'pve' will return 'warmodepve'
string GetModeGroup(string modeId);
// Returns the target type for a given entity. Target types are the category that an entity falls into.
// For example, if given a BasePlayer entity, it will return 'players'. If given a horse entity is will
// return 'horses'.
string GetEntityTargetType(BaseEntity entity);
Hooks - place these in your plugin and WarMode will call them.
// Called when a player's mode has been updated or config changes have ocurred that may affect the mode.
private void WarMode_PlayerModeUpdated(string userid, string modeId)
// Used to override WarMode logic for taking damage.
// If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic.
private object CanEntityTakeDamage(BaseCombatEntity target, HitInfo info)
// Used to override WarMode logic for targeting.
// If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic.
private object CanEntityBeTargeted(BasePlayer target, BaseEntity attacker, bool skipVendingCheck)
// Used to override WarMode logic for triggering a trap.
// If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic.
private object CanEntityTrapTrigger(BaseTrap trap, BasePlayer basePlayer)
// Used to override WarMode logic for looting an entity.
// If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic.
private object CanEntityLoot(BasePlayer looter, BaseEntity target, bool skipVendingCheck)
FREE Extension Plugins:
War Mode Admin Panel
Use the /warmode.config or /wmc command to open a panel that allows admins to update mode rules in game without having to reload the pluign. Requires the warmode.admin permission to use.
I HIGHLY recommend you use this extension!
WarModeAdminPanel.cs
War Mode Spawn UI
Provides a UI that is shown to players when they first spawn that prompts them to choose whether they want to be PVP or PVE. Also supports custom modes. Localization and config options available. This can also be configured to appear when players use the /flag command.
WarModeSpawnUI.cs
War Mode Rules UI
Using the /rules command (which is configurable) players can see a list of what restrictions they have for their current mode. These ruling will update dynamically based on your config settings.
WarModeRulesUI.cs
War Mode Badges
Customizable UI elements that will appear on the player's HUD to indicate what their current mode is.
WarModeBadges.cs
Contracts allows you to create versatile quests/missions that rotate periodically.
Each contract can have one or more objectives, with multiple objective types to choose from. It doesn't stop there: each objective can be augmented with objective conditions, which add additional requirements in order to progress it. This allows you to define versatile and unique quests:
You could have quests as simple as "Kill 5 scientists"...
or a little bit more challenging quests like "Kill 5 scientists with an assault rifle"
or have crazy requirements like "Kill 5 scientists, with an assault rifle OR an MP5, between 25-50m away, while being below 20 HP, while wearing a bandana and riding a horse". The possibilities are endless!
Features
Highly customizable quests/missions to help you build your unique set of goals and control difficulty beyond just progression amounts required.
Control the flow and order of how contract objectives can be completed.
10+ objective types to vary gameplay across your server
10+ objective condition types to add as many layers of challenge that you want to your objectives
Customizable categories and their rotation period, with the possibility to disable rotations altogether and manually control when contracts rotate.
Clean UI for browsing and tracking contracts.
HUD to track contracts while playing.
Permission based features for your VIP members: Max active contracts globally, Max active contracts per category and Max HUD pins.
Event logging with JSONL format support
Powerful Web editor to make editing your configs a breeze and viewing insightful charts on your JSONL logs
Motivation
The motivation behind the plugin is to give players an evolving gameplay experience on your server with an urgency aspect, with the goal of improving player engagement. Instead of making hundreds of quests available from day 1 and achievable anytime during the wipe, I wanted players to have a sense of urgency and achievement when completing quests. I also didn't want to overwhelm players with hundreds of quests to choose from. Contracts solves this by letting you define any number of contracts and assign them to timed categories that will rotate through a portion of contracts on the period you set them to. The more contracts you have, the more variety you add, without adding the mental burden of choice.
Included
While you can discard and customize the contracts, categories and presets yourself, the plugin comes with:
4 categories: Hourly (11 contracts), Daily (13 contracts), Weekly (11 contracts) and Wipe (6)
41 contracts designed to touch just about every objective types and objective conditions available. These contracts' difficulty were designed for the category they were assigned to.
Permissions
All permissions listed here are the default ones. You can configure them in the config file of the plugin.
contracts.use - allows the player to use Contracts (open the menu, accept/complete contracts, etc.)
contracts.admin - allows the player to run admin commands (manually rotate categories, reset data, view cache debug info, etc.)
Max Active Contracts - Maximum amount of contracts the player can have at a time. Largest amount is used. (-1 for unlimited)
contracts.use - 3
contracts.vip - 5
contracts.admin - -1
Max Tracked Contracts - Maximum amount of contracts the player can pin in the HUD. Largest amount is used. (-1 for unlimited. 0 disables the HUD)
contracts.use - 2
contracts.vip - 5
contracts.admin - -1
Chat Commands
Note: While the "contracts" command is the default, it can be configured to be different name(s) in the config file!
/contracts - opens the contracts menu
/contracts hud - toggles the HUD
/contracts scale <0.5 - 1.0> - adjusts the plugin's UI element's scale. (default: 1.0)
This option is designed to be set to the same as the player's Rust UI scale, configurable under the Settings > User Interface menu. No action is required for players who left Rust default UI scale (1.0), but players with a smaller scale will have their initial UI much smaller than intended. Unfortunately, the plugin cannot read the player's Rust UI scale, so it will need to be set manually. You should inform your players about this so they get the best UI!
Console Commands
contracts.rotate_category <category_id> - trigger rotation for the specified category ID.
contracts.reset_all_progress - clears all player progress data
Debugging commands
contracts.debug.refresh.all - refresh all caches (clears and rebuilds them). This is normally only done on category rotation.
contracts.debug.cache.all - Print all caches info. Replace "all" with individual cache names: attackers, card_swipe, craft, damage, kill, loot, gather, heal, fishing, crate_hack
contracts.debug.hooks - Print the subscription status of hooks (enabled or disabled, depending on if any objective needs them)
contracts.debug.tainted_items - Print information about item taints (for the Loot objectives)
contracts.debug.clear_tainted_items - Clears all taints from the loot cache
contracts.debug.transfers - Print information about item transfers (for the Loot objectives). Normally, there should be zero transfers printed most of the time. Transfers are only meant to track items movement between containers (where they start and where they end) and then automatically get cleaned up.
contracts.debug.clear_transfers - Clears the transfers cache
Configuration
Contracts has 1 config file and 3 data files that you can edit for your needs, though the plugin comes with a generous amount of pre-defined contracts (generated when you first load the plugin).
oxide/config/Contracts.json
Command - The commands that can be used to interact with the plugin
Permissions - Set the permissions for features
Use Contracts Features - Permission required to use Contracts, open the menu, accept contracts and complete them.
Admin - Permission required to use admin commands
Max Active Contracts - Maximum amount of contracts the player can have at a time. Largest amount is used. (-1 for unlimited)
Max Tracked Contracts (HUD) - Maximum amount of contracts the player can pin in the HUD. Largest amount is used. (-1 for unlimited. 0 disables the HUD)
Rewards
Show Ineligible Rewards - When true, rewards that the player is not eligible to get upon completion are dimmed. When false, ineligible rewards are hidden from the menu.
Conditions
Condition Ordering - One of "Optimized" (default), "None" or "RootOptimized"
Optimized - The plugin will re-order conditions to execute from less computationally expensive to most
None - Condition ordering are kept as defined
RootOptimized - Only conditions at the first level are optimized, not the nested ones in AND and OR conditions
HUD
Anchor Min - The HUD's bottom left anchor position (see Oxide UI position)
Anchor Max - The HUD's top right anchor position (see Oxide UI position)
Collapse Direction - One of "TopLeft" (default), "TopRight", "BottomLeft" or "BottomRight"
TopLeft = Header is above tracked contracts. Toggle button is on the left.
TopRight = Header is above tracked contracts. Toggle button is on the right.
BottomLeft = Header is below tracked contracts. Toggle button is on the left.
BottomRight = Header is below tracked contracts. Toggle button is on the right.
Logging - collect logs on specified events (stored in oxide/logs/Contracts/<date> or carbon/logs/Contracts/<date>)
Mode - One of "None" (default), "JSONL" or "Text"
None = Disable logging
JSONL = Logs events in a structured format. JSONL is more efficient for large datasets than JSON because it doesn't require you to load the entire file into memory!
Text = Human readable text lines that you can configure with placeholders. Can also be used to create your own JSONL format, if the one provided is not preferred.
Retention Days - Log folders past this age will be deleted at plugin load time. Set to 0 to disable and never delete logs (not recommended).
Contract Accepted - occurs when the player accepts a contract
Enabled - whether or not to collect logs for this event
Format (Text Mode) - Log format to use when the logging mode is "Text". See Logging section below for {placeholders}.
Contract Completed - occurs when the player completes a contract.
Contract Claimed - occurs when the player claims the rewards on a contract.
Contract Abandoned - occurs when the player abandons a contract.
Reward Given - occurs once for each reward given when the player claims the contract
Rotation Started - occurs when a category rotates its contracts
Objective Completed - occurs when the player completes a contract objective
Version - The version of the config. Matches the plugin's version.
Default Configuration
{
"Command": ["contracts"],
"Permissions": {
"Use Contracts Features": "contracts.use",
"Admin": "contracts.admin",
"Max Active Contracts": {
"contracts.use": 3,
"contracts.vip": 5,
"contracts.admin": -1
},
"Max Tracked Contracts (HUD)": {
"contracts.use": 2,
"contracts.vip": 5,
"contracts.admin": -1
}
},
"Rewards": {
"Show Ineligible Rewards": true
},
"Conditions": {
"Condition Ordering": "Optimized"
},
"HUD": {
"Anchor Min": "0.0 0.60",
"Anchor Max": "0.135 0.87",
"Collapse Direction": "TopLeft"
},
"Logging": {
"Mode": "None",
"Retention Days": 30,
"Contract Accepted": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) accepted contract {contract_name} ({contract_id}) in {category_name} ({category_id})"
},
"Contract Completed": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) completed contract {contract_name} ({contract_id}) in {category_name} ({category_id}) in {duration}s"
},
"Contract Claimed": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) claimed contract {contract_name} ({contract_id}) in {category_name} ({category_id})"
},
"Contract Abandoned": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) abandoned contract {contract_name} ({contract_id}) in {category_name} ({category_id})"
},
"Reward Given": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) received {reward_type} reward: {reward_detail} from contract {contract_name} ({contract_id})"
},
"Rotation Started": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] Category {category_name} ({category_id}) rotated. Contracts: {contract_ids}."
},
"Objective Completed": {
"Enabled": false,
"Format (Text Mode)": "[{timestamp_local}] {player_name} ({player_id}) completed objective {objective_name} (#{objective_id}) in contract {contract_name} ({contract_id})"
}
},
"Version": {
"Major": 0,
"Minor": 5,
"Patch": 0
}
}
Contracts Website
The data files that follow this section don't have to be manually edited! Head to the Web Editor at https://www.rustcontracts.com , drop your data configs and start editing your configs in a convenient UI. The quality of the editor and its extensive features are on par with the quality of the plugin!
Website Features
Convenient UI: Edit all your contracts, categories and presets in a Web-based UI. No manual JSON editing required.
Rich Editing Experience: Validation, undo/redo from anywhere, ID refactoring, autocomplete fields, optional raw JSON editing and more QoL features.
Data Persistence: Save snapshots of your configs and restore or download them at a later time (data saved in your browser).
AI Generated Contracts: (experimental) Use OpenAI, Google or Anthropic's models to generate entire contracts from a prompt. (BYOK)
Command Palette: Easily navigate through contracts, categories, presets from anywhere in the editor through the command palette.
Stats: View your JSONL logs in pre-made charts to gain insights into your contracts, such as pacing and reward balance.
Data Files
Contracts has 3 types of data files meant to be configured by you (other data files are generated by the plugin, such as player progress, but not meant to be edited): Presets, Contracts and Categories.
oxide/data/Contracts/preset_data.json
Presets are lists of strings you can define to easily reference them in contracts. E.g: Instead of defining all the types of scientists for a kill contract, you can reference them with "@scientists"
presets - key/value pair where the key is the name of the preset and the value is a list of strings that the preset resolves to. You can mention other presets in a preset, but they must not have a circular reference
version - The version of the config. Matches the plugin's version.
Example presets:
{
"presets": {
"scientists": [
"scientist2.heavy",
"scientist2",
"scientist2.shotgun",
"scientistnpc_arena",
"scientistnpc_bradley",
"scientistnpc_bradley_heavy",
"scientistnpc_cargo",
"scientistnpc_cargo_turret_any",
"scientistnpc_cargo_turret_lr300",
"scientistnpc_ch47_gunner",
"scientistnpc_excavator",
"scientistnpc_full_any",
"scientistnpc_full_lr300",
"scientistnpc_full_mp5",
"scientistnpc_full_pistol",
"scientistnpc_full_shotgun",
"scientistnpc_heavy",
"scientistnpc_junkpile_pistol",
"scientistnpc_oilrig",
"scientistnpc_outbreak",
"scientistnpc_patrol",
"scientistnpc_patrol_arctic",
"scientistnpc_peacekeeper",
"scientistnpc_ptboat",
"scientistnpc_rhib",
"scientistnpc_roam",
"scientistnpc_roam_nvg_variant",
"scientistnpc_roamtethered"
],
"ballista": [
"ballista.static",
"ballista.mounted"
],
},
"version": {
"Major": 0,
"Minor": 2,
"Patch": 0
}
}
oxide/data/Contracts/contracts_data.json
This file holds all your contract definitions.
contracts - key/value pair where the key is the contract ID and the value is the contract definition
title - The title of the contract
description - Optional description for the contract
progressionType - One of "Independant" (default), "Sequential" or "Progressive"
Independant - objectives can be completed in any order simultaneously
Sequential - objectives must be completed in order from first to last. The locked objectives are visible.
Progressive - objectives must be completed in order from first to last. The locked objectives are hidden.
objectives - key/value pair where the key is the objective ID and the value is the objective definition
title - The objective title
description - Optional objective description
conditions - key/value pair where the key is the condition ID and the value is the condition definition
type - The type of the condition (see Objective Conditions below)
... more fields depending on the objective condition type (see Objective Conditions below)
type - Type of the objective (see Objective Types below)
... more fields depending on the objective type (see Objective Types below)
rewards - key/value pair where the key is the reward ID and the value is the reward defintion
title - Optional title for the reward (empty titles will use default names)
description - Optional description for the reward
eligiblePermissions - list of strings of permissions allowed to claim this reward
type - Type of the reward (see Contract Rewards below)
... more fields depending on the reward type (see Contract Rewards below)
version - The version of the config. Matches the plugin's version.
oxide/data/Contracts/contract_category_data.json
This file holds all your contract categories definitions.
categories - key/value pair where the key is the category ID and the value is the category definition
name - The category name
description - Optional category description
contractIds - List of all contract IDs defined earlier that are part of the category and will be rotated periodically
rotation
duration - Time in seconds that the rotation lasts (-1 = never rotates)
minContractsAmount - minimum number of contracts to include in the rotation
maxContractsAmount - maximum number of contracts to include in the rotation
maxActiveContracts - key/value pair where the key is the permission name and the value is a number indicating the maximum amount of contracts that can be active in this category for a given player (-1 for unlimited. defaults to -1). This works in conjunction to the config Max Active Contracts parameter. e.g:
"contracts.use": 1 - only 1 contract in this category can be active at a time
version - The version of the config. Matches the plugin's version.
Objective Types
Contracts currently support the following objective types, with additional types possible in the future! Objective types are intentionally kept simple with minimal configuration so that you can create more complex objectives with Objective Conditions. This section also details the additional fields to be added in the objectives definition of the contract (where it says "... more fields depending on the objective type").
☠️ Kill
Requires the player to kill one of the specified entities.
Configuration (excludes common objective fields):
type - Always "Kill"
amountRequired - An integer value greater than 0
entities - list of entities targeted by the objective. Can include presets.
Example (excludes common objective fields):
{
"type": "Kill",
"amountRequired": 50,
"entities": ["wolf", "boar", "@scientists"]
}
💔 Damage
Requires the player to damage one of the specified entities.
Configuration (excludes common objective fields):
type - Always "Damage"
amountRequired - An integer value greater than 0
entities - list of entities targeted by the objective. Can include presets.
Example (excludes common objective fields):
{
"type": "Damage",
"amountRequired": 5000,
"entities": ["wolf", "boar", "@scientists"]
}
🛠️ Craft
Requires the player to craft one of the specified items.
Configuration (excludes common objective fields):
type - Always "Craft"
amountRequired - An integer value greater than 0
items - list of items that count toward the objective's progression. Can include presets.
Example (excludes common objective fields):
{
"type": "Craft",
"amountRequired": 50,
"items": ["bandage", "@firearms"]
}
🪓 Gather
Requires the player to gather one of the specified items.
Configuration (excludes common objective fields):
type - Always "Gather"
amountRequired - An integer value greater than 0
items - list of items received from a gathered dispenser that count towards the objective's progress. Can include presets.
Example (excludes common objective fields):
{
"type": "Gather",
"amountRequired": 500,
"entities": ["wood", "metal.ore", "@ores"]
}
💳 Card Swipe
Requires the player to swipe cards of specified access levels.
Configuration (excludes common objective fields):
type - Always "CardSwipe"
amountRequired - An integer value greater than 0
accessLevels - list of access levels that count towards the objective's progress. Valid access levels are 1, 2 or 3
1 = Green | 2 = Blue | 3 = Red
Example (excludes common objective fields):
{
"type": "CardSwipe",
"amountRequired": 3,
"accessLevels": [1, 3]
}
🔟 Crate Hack
Requires the player to hack hackable crates.
Configuration (excludes common objective fields):
type - Always "CrateHack"
amountRequired - An integer value greater than 0
Example (excludes common objective fields):
{
"type": "CrateHack",
"amountRequired": 50
}
🐟 Fishing
Requires the player to catch any or specified types of fish.
Configuration (excludes common objective fields):
type - Always "Fishing"
amountRequired - An integer value greater than 0
fish - List of fishes that count towards the objective's progress. Leave empty for any. Can include presets.
bait - List of baits used to fish that count towards the objective's progress. Leave empty for any. Can include presets.
Example (excludes common objective fields):
{
"type": "Fishing",
"amountRequired": 50,
"fish": ["fish.salmon", "@rarefish"],
"bait": ["grub", "@rawmeat"]
}
❤️🩹 Heal
Requires the player to heal themselves and/or others by a specified amount of health
Configuration (excludes common objective fields):
type - Always "Heal"
amountRequired - An integer value greater than 0
items - List of healing items that can be used to count towards the objective's progress. Leave empty for any. Can include presets.
target - One of Any, Self or Others
Any = Heal anyone | Self = Heal self | Others = Heal others
Example (excludes common objective fields):
{
"type": "Heal",
"amountRequired": 100,
"items": ["bandage", "@advancedheals"],
"target": "Self"
}
📦 Turn In
Requires the player to give specified items to the plugin. Turned in items are removed from the inventory.
Configuration (excludes common objective fields):
type - Always "TurnIn"
amountRequired - An integer value greater than 0
items - List of items that count towards the objective's progress. Can include presets.
Example (excludes common objective fields):
{
"type": "TurnIn",
"amountRequired": 100,
"items": ["scrap", "@components"]
}
🔎 Loot
Requires the player to loot the specified items from the world. Looted items are not removed from the inventory, unlike turn in objectives.
Configuration (excludes common objective fields):
type - Always "Loot"
amountRequired - An integer value greater than 0
items - List of items that count towards the objective's progress. Can include presets.
Example (excludes common objective fields):
{
"type": "Loot",
"amountRequired": 100,
"items": ["scrap", "@components"]
}
Objective Conditions
Objective types on their own do not provide much configuration for variety by design. Objective conditions are what makes your objectives so customizable with many combination of conditions that can be applied on top of objective types. They are what makes your objectives challenging and versatile. This section also details the additional fields to be added in the objective conditions definition of the contract (where it says "... more fields depending on the objective condition type").
🔫 Weapon
Requires the player to use a specific weapon during an attack on an entity.
Configuration (excludes common objective condition fields):
type - Always "Weapon"
weapon - List of weapons that satisfy the condition. Can include presets.
Example (excludes common objective condition fields):
{
"type": "Weapon",
"items": ["grenade.molotov", "@primitiveweapons"]
}
🌙 Time of Day
Requires the player to progress the objective between set times.
Note: the plugin supports day wrapping. If your start time is "20:00" and end time is "06:00", then the plugin will understand it's between 8PM - 6AM.
Configuration (excludes common objective condition fields):
type - Always "TimeOfDay"
startTime - The minimum time of day. 24h format. e.g: "21:32"
endTime - The maximum time of day. 24h format. e.g: "06:00"
Example (excludes common objective condition fields):
{
"type": "TimeOfDay",
"startTime": "20:00",
"endTime": "06:00"
}
👕 Player Wear
Requires the player to wear specific clothing
Configuration (excludes common objective condition fields):
type - Always "PlayerWear"
items - List of wearable items that satisfy the condition. Can include presets.
requireAll - true = requires all items to be worn. false = require some items to be worn.
requireNaked - true = requires the player to wear nothing (items should be empty (i.e: [ ] ) ). false = use items list to determine the condition.
Example (excludes common objective condition fields):
{
"type": "PlayerWear",
"items": ["bandana", "@woodarmor"],
"requireAll": false,
"requireNaked": false
}
🐎 Player Mount
Requires the player to be mounted on specific entities (vehicles, horse, chairs, etc.)
Configuration (excludes common objective condition fields):
type - Always "PlayerMount"
mounts - List of mount entities that count satisfy the condition. Can include presets.
Example (excludes common objective condition fields):
{
"type": "PlayerMount",
"mounts": ["ridablehorse", "@chairs"]
}
♥️ Player Health
Requires the player to be between specific amount of HP.
Configuration (excludes common objective condition fields):
type - Always "PlayerHealth"
minHealth - Minimum amount of health required to satisfy the condition. -1.0 to ignore.
maxHealth - Maximum amount of health required to satisfy the condition. -1.0 to ignore.
Example (excludes common objective condition fields):
{
"type": "PlayerHealth",
"minHealth": -1.0,
"maxHealth": 30.0
}
💥 Min Damage Ratio
Requires the player to have done a minimum amount of damage when compared to the total damage done with others.
Currently, this is mostly only useful for the Kill objective, though it could be attached to a Damage objective if you have the need for it...
Configuration (excludes common objective condition fields):
type - Always "MinDamageRatio"
minDamageRatio - The minimum ratio of damage that the player needs to have on the victim to satisfy the condition. Between 0.0 and 1.0.
Example (excludes common objective condition fields):
{
"type": "MinDamageRatio",
"minDamageRatio": 0.5
}
↔️ Attack Distance
Requires the player's attack to occur between specified distance in meters.
Configuration (excludes common objective condition fields):
type - Always "AttackDistance"
minDistance - Minimum distance required to satisfy the condition. -1.0 to ignore.
maxDistance - Maximum distance required to satisfy the condition. -1.0 to ignore.
Example (excludes common objective condition fields):
{
"type": "AttackDistance",
"minDistance": 50.0,
"maxDistance": -1
}
&& And
Requires the player to satisfy all listed conditions inside the AND operator condition.
Note that this condition is useless when used at the top level of your conditions, because multiple conditions are already evaluated as an AND condition (i.e: all conditions within the objective's "conditions" list must be satisfied). It is only useful when placed inside a Not or an Or condition.
Configuration (excludes common objective condition fields):
type - Always "And"
conditions - key/value pair where the key is the condition ID and the value is a condition that needs to be satisfied. All conditions inside the And condition need to pass to satisfy this condition.
Example (excludes common objective condition fields):
{
"type": "And",
"conditions" {
"and_weapon_condition": {
"type": "Weapon",
"weapon": ["rifle.ak"]
},
"and_attackdistance_condition": {
"type": "AttackDistance",
"minDistance": -1.0,
"maxDistance": 10.0
}
}
}
|| Or
Requires the player to satisfy any of the listed conditions inside the OR operator condition.
Configuration (excludes common objective condition fields):
type - Always "Or"
conditions - key/value pair where the key is the condition ID and the value is a condition that needs to be satisfied. Any condition inside the Or condition need to pass to satisfy this condition.
Example (excludes common objective condition fields):
{
"type": "Or",
"conditions" {
"or_attackdistance1_condition": {
"type": "AttackDistance",
"minDistance": -1.0,
"maxDistance": 10.0
},
"or_attackdistance2_condition": {
"type": "AttackDistance",
"minDistance": 100.0,
"maxDistance": -1.0
}
}
}
🚫 Not
Requires the player to NOT satisfy the specified condition. (inverses the satisfaction requirement)
Configuration (excludes common objective condition fields):
type - Always "Not"
condition - The condition to NOT satisfy
Example (excludes common objective condition fields):
{
"type": "Not",
"condition" {
"type": "Weapon",
"weapon": ["@firearms"]
}
}
Contract Rewards
The following rewards can be distributed by the plugin. This section also details the additional fields to be added in the reward definition of the contract (where it says "... more fields depending on the reward type").
🏷️ Item
Grants the player a specified quantity of an item.
Configuration (excludes common reward fields):
type - Always "Item"
item - The item shortname
quantity - An integer value greater than 0
Example (excludes common reward fields):
{
"type": "Item",
"item": "scrap",
"quantity": 50
}
💲 Economics
Grants the player an amount of money. Requires the Economics plugin.
Configuration (excludes common reward fields):
type - Always "Economics"
amount - A decimal value greater than 0.0
Example (excludes common reward fields):
{
"type": "Economics",
"amount": 50.50
}
🎁 Server RP
Grants the player an amount of server rewards points. Requires the Server Rewards plugin.
Configuration (excludes common reward fields):
type - Always "ServerRewards"
amount - An integer value greater than 0
Example (excludes common reward fields):
{
"type": "ServerRewards",
"amount": 5
}
⌘ Command
Runs a parameterized command. Useful when the other rewards are not suitable and you need something custom. Technically, all above rewards can be achieved through a command reward.
Configuration (excludes common reward fields):
type - Always "Command"
command - The command to run on reward claim. You can add the following {placeholders} and the plugin will fill them during distribution:
{playerId} - The player's Steam ID
{playerName} - The player's Steam name
{qPlayerName} - The player's Steam name wrapped in "quotes"
{playerX} - The player's current X position, rounded to the nearest integer
{playerY} - The player's current Y position, rounded to the nearest integer
{playerZ} - The player's current Z position, rounded to the nearest integer
Example (excludes common reward fields):
{
"type": "Command",
"command": "say {playerName} is the top fisherman!"
}
Logging
When using Text formatting for logging, you can use {placeholders} to inject data into your logs. Each event type has their own placeholders. The following placeholders are always available:
timestamp_utc - yyyy-MM-dd HH:mm:ss timestamp using the UTC timezone
timestamp_local - yyyy-MM-dd HH:mm:ss timestamp using your server's local timezone
timestamp_iso - timestamp using the ISO format (same format used in JSONL)
time_utc - HH:mm:ss timestamp using the UTC timezone
time_local - HH:mm:ss timestamp using your server's local timezone
The following are additional fields per event type:
Contract Abandoned
player_id
category_id
contract_id
player_name
category_name
contract_name
Contract Accepted
player_id
category_id
contract_id
player_name
category_name
contract_name
Contract Claimed
player_id
category_id
contract_id
player_name
category_name
contract_name
Contract Completed
player_id
category_id
contract_id
player_name
category_name
contract_name
duration - the amount of time (in seconds) that passed since the player accepted the contract
Contract Expired
player_id
category_id
contract_id
player_name
category_name
contract_name
duration - the amount of time (in seconds) that passed since the player accepted the contract
Objective Completed
objective_type
player_id
category_id
contract_id
objective_id
player_name
category_name
contract_name
objective_name
Reward Given
reward_type
player_id
category_id
contract_id
reward_id
player_name
category_name
contract_name
reward_name
reward_detail - e.g: scraps x50 ; command ; $1000 ; 10 RP
amount - always 1 for commands
Rotation Started
category_id
contract_ids - comma separated list of contract IDs
category_name
API
This plugin does not currently expose an API. Let me know what you'd like to see in a future implementation!
Discord
Join the official Discord server for support, announcements and more! https://discord.rustcontracts.com
Welcome to "Decay: The Last Haven," a custom map for the game RUST that immerses players in a post-apocalyptic world where survival is a luxury. This expansive map, with a size of 4500, boasts around 70,000 prefabs, creating a rich and detailed environment. It's fully compatible with BetterNPC plugins(Config for bots in the file), and Train Homes, featuring three stations for the plugin. The map showcases a double-track surface railway, offering two metro entrances with separate branches for spawning trains, complemented by an intricate underground railway system.
The layout includes evenly spaced monuments to optimize the FPS load for clients, ensuring smooth gameplay. Players can find custom building spots in the subway, marked as 'XU' on the minimap, amidst a network of bridges that are navigable by tugboats. The map's design incorporates a multitude of rivers, allowing tugboats and other water transport to access any point on the map with ease.
For those seeking a strategic advantage, the map presents custom monuments in ample quantity for a comfortable and engaging gaming experience. Builders will appreciate the custom sites, indicated by 'X' on the minimap, while the heart of the map features fresh water and lush vegetation, ideal for farmers.
Explorers can discover a large number of small settlements and standalone buildings, not marked on the road map, offering hidden gems throughout the landscape. Adventurous players can delve into underwater farm zones, denoted by 'O' on the minimap, and explore the depths of an underwater laboratory. To add to the excitement, the map is equipped with ziplines, providing a thrilling way to traverse this desolate yet captivating world.
"Decay: The Last Haven" is not just a map; it's a testament to the resilience of humanity in the face of desolation, offering a sanctuary for those brave enough to claim it.
Features:
Map size: 4500;
Prefabs count: ~65K;
Compatible with BetterNPC plugins (Config for bots in the file) & Train Homes ( 3 stations for plug-in );
Double-track surface railway with 2 entrances to the metro with separate branches for spawn trains;
Underground railway;
Evenly spaced monuments to spread the FPS load of client;
Custom places for building in the subway (XU on the minimap);
A lot of bridges ( The tugboat passes );
A large number of rivers, tugboats and other water transport can pass to any point on the map;
Designed custom monuments in sufficient quantity for a comfortable game;
Custom building sites (X on the minimap);
Fresh water and vegetation for farmers are in the center of the map;
A large number of small settlements/single buildings not marked on the road map by road;
Underwater farm zones (O on the minimap);
Underwater Laboratory;
Ziplines.
Custom monuments:
Nuclear Cargo;
Settlement;
Bandit Settlement;
Wood Industry;
Industrial Settlement;
Office Area;
Reverpost;
Shorpek;
Warehouse Settlement;
Bandit Ship;
Slave Ship;
Rebel Ship;
RW Station;
A large number of small settlements/single buildings not marked on the road map by road;
A lots custom places to build a base. ( "X"/"XU" on map );
Underwater farm zones ( "O" on map ).
Monuments:
Combined Outpost;
Launch Site;
The Dome;
Ziggurat;
PowerPlant;
JunkYard;
Harbor;
Airfield;
Arctic Research Base;
Desert Military Base;
Ferry Terminal;
Large fishing village;
Oxum`s Gas Station;
Abandoned supermarket;
Fishing villages;
Lighthouses;
Satellite Dish;
Nuclear Missile Silo;
Water Treatment Plant;
Train Yard;
Giant Excavator Pit;
Underwater laboratory;
Ranch;
Underground railway;
Quarries(HQM,Stone, Sulfur);
Large oilrig;
Oilrig.
My Discord: shemov
A password is attached to the map. You can edit it.
🚀 Servycore.io: The All-in-One Platform for Gaming Communities
ServyCore empowers game server owners to build stunning community websites with our drag-and-drop page builder. Integrate account linking, leaderboards, support tickets, a Tebex store, and more — all in one place.
🔗 Explore Everything We Offer For a complete breakdown of all features, technical specifications, and platform capabilities, please visit our official website: https://servycore.io
⚠️ IMPORTANT: PURCHASING VIA CODEFLING
This purchase is for a 1-month Basic Subscription. To complete your purchase or for any sales inquiries, you MUST contact me on our Discord.
✨ Everything you need in one platform
By subscribing, you unlock the powerful tools needed to manage and grow your community:
Advanced Page Builder: Create unlimited custom pages with 15+ content blocks (Headings, videos, cards, accordions).
Deep Account Linking: Connect Discord, Steam, and Twitch with automatic role management and group checks.
Player Leaderboards: Track kills, K/D ratio, playtime, raids, and resources with full per-wipe history.
Integrated Support System: Professional ticket system with categories, staff responses, and Discord notifications.
Tebex Store Integration: Sell packages and subscriptions directly through your website.
Custom Branding: Professional presence with Custom Domain support and Custom CSS styling.
High Limits: Manage up to 10,000 linked players across 10 different game servers.
🛠️ Get Started in Under 10 Minutes
Create: Sign up and create your project in seconds.
Customize: Use our visual admin panel to build your site layout.
Connect: Link your servers via Plugin, RCON, or Pterodactyl.
Launch: Watch your player base grow with integrated tools.
🎮 Compatible Games
Seamless integration and command execution for:
Rust
ARK: Survival Evolved
CS:GO • Garry's Mod
7 Days to Die
Pterodactyl connection
💬 Other Satisfied Users
"ServyCore’s been amazing for Rustadia. It makes it super easy for our players to link their Discord and Steam accounts—gets them into the right groups and verifies everything seamlessly. Honestly, it’s the perfect solution if you’re running Rust servers and want a smooth, secure onboarding process." — Liam from Rustadia
"I have to say that this linking system is the gold standard! The website is so easy to use and getting this set up was so easy. Now I have a professional site for my players." — BetterDeadThanZed from RustyOldGamers
"Support is 10/10, System is 10/10. I’ve used multiple systems and ServyCore is by far the easiest to use." — Drxp from Mercy Rust
🔄 Rebranding Note
Please note that ServyCore is the new identity of Social Link. We have rebranded to better reflect our mission: providing the essential "core" foundation for gaming "servers." All legacy features are still here, now joined by a massive suite of new community management tools.
$29.99
Basements lets players build underground rooms beneath their bases. Place a hatch on your foundation and dig straight down into a hidden basement with walls, ceilings, and full building privileges. Great for stashing loot, setting up secret bunkers, or just adding extra space.
Readme Link - Click Here for Instruction and Documentation
👆Highly recommend reading the FAQ section!
BUILD
Build basements easily from your tool cupboard. Just place an entrance to get started.
EXPAND
Expand your basement by drilling underground. But don't forget to bring a headlamp - its dark down there!
TRAVERSE
Place multiple entryways, building out your labyrinth of tunnels beneath your base.
DECORATE
All deployables, electricity, and storage items can be placed in your basement. Take advantage of your new space!
RAID
Nothing is safe in Rust, including your basement. If all the entrances are destroyed, then the basement is too. Any loot below will float to the surface. Protect the entrance at all costs!
API METHODS (For Plugin Developers)
// Returns true if the given entityId is part of a basement.
bool IsBasementEntity(ulong entityId)
// Returns the building ids of the basements connected to a given surface building id.
uint[] GetBasementBuildingIds(uint surfaceBuildingId)
// Returns the building ids of the surface buildings connected to a given basement building id.
uint[] GetSurfaceBuildingIds(uint basementBuildingId)
Extension Plugins
These are free plugins that add additional functionality to Basements.
BasementsManager
Provides a UI for admins to view and manage the basements on the server. Useful for debugging & fixing issues. Use with the /bm command, requires the basements.admin permission to use.
BasementsManager.cs
Welcome to UltimateCases - the most exciting case opening experience for Rust servers! Give your players the thrill of unboxing rare items with beautiful roulette animations, create unlimited custom cases with unique rewards, and build a thriving economy through our advanced key exchange system. Whether you want to reward active players with free cases or monetize your server with premium loot boxes, UltimateCases has everything you need to keep players engaged and coming back for more!
⭐️ Why Choose UltimateCases?
Beautiful Unboxing Experience - Watch your players' excitement as they spin the roulette and discover their rewards! Customizable animations, rarity backgrounds, and sound effects create an unforgettable opening experience.
Easy Case Creation - No coding required! Use our in-game visual editor to create cases, add items, set prices, and configure everything you need. Edit cases on the fly without touching configuration files.
Monetize Your Server - Turn your server into a profitable venture with our key exchange system. Players can buy keys using any currency (Economics, ServerRewards, scrap, etc.) and you control the economy.
Reward Active Players - Keep players engaged with free cases! Set playtime requirements and cooldowns to reward your most dedicated community members.
Protect Your Economy - Advanced limits and restrictions prevent abuse. Set daily limits, lifetime limits, minimum playtime requirements, and block case opening during combat or raids.
Store Rewards Safely - Built-in inventory system stores all case rewards securely. Players can retrieve items when they're ready, with options to persist items across wipes.
Share the Excitement - Announce rare wins in chat and Discord! Customizable logging and webhook integration lets your community celebrate big wins together.
NPC Traders at Monuments - Spawn NPCs at monuments where players can exchange keys for currency. Perfect for creating trading hubs and encouraging exploration!
VIP Benefits - Reward your supporters with exclusive discounts on case opening and key exchange. Multiple VIP tiers with customizable benefits.
Works Everywhere - Seamlessly integrates with ServerPanel, supports all major economy plugins, and works with ImageLibrary for perfect image management.
💰 Key Exchange System
Turn any currency into case keys! Our flexible exchange system supports:
Multiple Currencies - Use Economics, ServerRewards, BankSystem, IQEconomic, or any item (scrap, sulfur, etc.) as currency for key exchange.
Bulk Discounts - Reward players who exchange more keys! Automatic discounts: 5% off for 10+ keys, 10% off for 25+ keys, 15% off for 50+ keys, 20% off for 100+ keys.
VIP Discounts - Give your supporters extra savings! Configure permission-based discounts (5%, 10%, 15%, 20%) with custom daily limits.
Daily Limits - Prevent abuse by limiting how many keys players can exchange per day. Perfect for controlling your server economy.
Monument NPCs - Spawn traders at monuments! Players can visit NPCs at lighthouse, outpost, or any monument to exchange keys. Fully customizable appearance and rates.
📦 Smart Inventory System
Never lose a reward again! Our inventory system stores all case rewards safely:
Secure Storage - All case rewards are automatically stored in your personal inventory, accessible anytime through the UI.
Wipe Protection - Choose whether items persist across server wipes or are cleared automatically. Perfect for seasonal rewards!
Safe Retrieval - Items can only be retrieved when it's safe - no retrieving during combat, raids, or building blocked situations.
Post-Wipe Cooldown - Optional cooldown after wipe before items can be retrieved, helping maintain server balance.
📬 Video Overview
🖼️ Showcase
Templates
Fullscreen Template
ServerPanel V1 Template
ServerPanel V2 Template
ServerPanel V4 Template
In-Game Editor
Monument Trader
How to get Keys?
🎮 Commands
/opencases or /cases - Opens the cases interface for players
/cases.trader - Chat command for managing Monument Traders (requires ultimatecases.edit permission)
/cases.trader create [currencyID] [defaultKeys] [prefab] - Create a new trader bot
/cases.trader start <botIndex> - Enter edit mode for a trader
/cases.trader move - Update trader position (requires edit mode)
/cases.trader rotate <angle> - Set trader rotation (requires edit mode)
/cases.trader save - Save and reload trader (requires edit mode)
/cases.trader cancel/stop - Cancel edit mode
/cases.trader list - Show all configured trader bots
/cases.trader teleport <botIndex> - Teleport to a trader bot location
/cases.trader help - Show help for trader commands
cases.give - Console/Rcon command for giving keys or cases to players (admin only)
cases.give <player> keys <amount> - Give keys to a player
cases.give <player> case <caseID> [amount] - Give case(s) to a player
Examples: cases.give PlayerName keys 100 or cases.give 76561198000000000 case 0 5
cases.convert - Console command for converting cases from old Cases plugin (requires UltimateCasesConverter plugin, admin only)
cases.convert - Convert all cases and add them to existing UltimateCases data
cases.convert true - Clear existing UltimateCases data before converting (fresh start)
🛡️ Permissions
ultimatecases.edit - Permission to edit cases, items, and modals using the in-game editor. Required to access all editor functions and manage Monument Traders.
ultimatecases.discount1 - 5% discount on case opening
ultimatecases.discount2 - 10% discount on case opening
ultimatecases.discount3 - 15% discount on case opening
ultimatecases.vip1 - 5% discount on key exchange, with optional custom daily limit
ultimatecases.vip2 - 10% discount on key exchange, with optional custom daily limit
ultimatecases.vip3 - 15% discount on key exchange, with optional custom daily limit
ultimatecases.vip4 - 20% discount on key exchange, with optional custom daily limit
Note: Additional permissions can be configured in the config file for demo mode and quick unbox mode. These are optional and can be left empty to disable the features.
📚 FAQ
Q: How do I open the Case Editor?
A: To open the Case Editor:
Make sure you have the ultimatecases.edit permission
Open the cases menu using /opencases or /cases
Look for the "EDIT" button in the header of the interface (usually in the top-right area)
Click the "EDIT" button to open the Case Editor
From here you can create new cases, edit existing cases, add items, configure prices, permissions, and all case settings
Q: How do I open the Item Editor?
A: To open the Item Editor:
First, open the Case Editor (see instructions above)
Select a case from the list or create a new case
In the case editor, you'll see a section for items
Click "ADD ITEM" or click on an existing item to edit it
The Item Editor will open where you can configure item type, chance, image, title, description, permissions, and all item-specific settings (weapons, contents, genes, etc.)
Q: How do I open the Modal Editor?
A: To open the Modal Editor:
Make sure you have the ultimatecases.edit permission
Open the cases menu and navigate to any modal window (like the keys exchange modal)
Look for the "EDIT" button that appears on modal windows when you have edit permission
Click the "EDIT" button to open the Modal Editor
From here you can edit modal content, text elements, images, buttons, and all modal settings
Q: How do I create a case?
A: It's super easy! Open the cases menu in-game, click the "EDIT" button in the header, then click "ADD CASE" in the Case Editor. Configure the case title, image, price, permission, and add items. No file editing needed!
Q: Can players get free cases?
A: Yes! Enable Free Case Settings for any case. Set minimum playtime (e.g., 2 hours) and cooldown (e.g., 24 hours). Players meeting requirements can open the case for free once per cooldown period.
Q: How do I set up key exchange?
A: Go to Exchange Settings in the config. Add currencies (Economics, ServerRewards, scrap, etc.), set exchange rates, configure discounts, and you're done! Players can exchange currency for keys instantly.
Q: What can I put in cases?
A: Almost anything! Add items (weapons with attachments, containers with contents, blueprints, plant seeds with genes), or execute commands when cases are opened. Full customization for every reward type.
Q: How do Monument Traders work?
A: Configure NPCs in Exchange Settings to spawn at monuments. Players can visit these NPCs to exchange keys for currency. Set the monument (lighthouse, outpost, etc.), NPC appearance, position, and exchange rate.
Q: Can I limit how many cases players can open?
A: Absolutely! Set daily limits (e.g., 5 cases per day), total lifetime limits (e.g., 50 cases total), minimum playtime requirements, and block opening for a period after server wipe.
Q: How does the inventory system work?
A: When players open cases, rewards go to their inventory automatically. Players can access inventory through the UI and retrieve items when ready. Configure whether items persist across wipes.
Q: Can I announce rare wins?
A: Yes! Enable chat announcements and Discord webhooks. Set rarity threshold (e.g., only announce items with 5% or lower chance), customize message format, and share the excitement with your community!
Q: How do I add UltimateCases to ServerPanel?
A: In ServerPanel, create a new category with Type: "Plugin", Plugin Name: "UltimateCases", Plugin Hook: "API_OpenPlugin". The plugin integrates seamlessly!
Q: Can I give VIP players discounts?
A: Yes! Configure permission-based discounts in Case Opening Discounts and Exchange Privilege Settings. Set different discount percentages for different VIP tiers.
Q: How do I configure the plugin config file?
A: The config file is located at oxide/config/UltimateCases.json (or carbon/config/UltimateCases.json for Carbon). Here's how to configure key settings:
Template Selection: Set "Template" to "Fullscreen", "V1", "V2", or "V4"
Commands: Modify "Open UI Commands" array to add custom command aliases
Key Exchange: Configure "Exchange Settings" → "Currencies" to add currencies (Economics, ServerRewards, items, etc.)
Roulette Duration: Set "Roulette Settings" → "Default Duration" (seconds) and "Quick Mode Duration"
Sound Effects: Enable/disable sounds in "Sound Effects" section and set effect prefab paths
Logging: Configure console, file, chat, and Discord logging in "Logging Settings"
Restrictions: Enable/disable case opening restrictions in "Restrictions Settings"
Inventory: Configure inventory settings in "Inventory settings" section
After editing, reload the plugin: o.reload UltimateCases (Oxide) or c.reload UltimateCases (Carbon).
Q: How do I set up LangAPI for multi-language support?
A: To enable LangAPI support:
Make sure LangAPI plugin is installed and loaded on your server
In UltimateCases config, set "Work with LangAPI?" to true
Create language files in oxide/lang/UltimateCases/ (or carbon/lang/UltimateCases/ for Carbon)
Create files like en.json, ru.json, etc. with translation keys
Use LangAPI's translation system to translate all plugin messages
Reload the plugin to apply changes
Example translation key structure:
{
"UI_Header_Title": "Ultimate Cases",
"UI_Content_ButtonOpen": "OPEN CASE",
"UI_Content_ButtonOpenFREE": "FREE",
...
}
Q: How do I set up Monument Traders using commands?
A: To create and configure Monument Traders:
Make sure you have ultimatecases.edit permission
Go to the monument where you want to spawn a trader (e.g., lighthouse, outpost)
In server console, use: cases.trader create [currencyID] [defaultKeys] [prefab]
currencyID - ID of the currency from Exchange Settings (0, 1, 2, etc.)
defaultKeys - Default number of keys per exchange (e.g., 1)
prefab - NPC prefab path (e.g., "assets/prefabs/npc/bandit/missionproviders/missionprovider_outpost_b.prefab")
Enter edit mode: cases.trader start <botIndex> (use cases.trader list to see bot indices)
Position yourself where you want the NPC to spawn
Update position: cases.trader move
Set rotation: cases.trader rotate <angle> (0-360 degrees)
Save: cases.trader save
The NPC will spawn automatically at the configured monument
Q: How do I configure custom economy plugins?
A: To use a custom economy plugin:
In config, find "Custom Economy Settings"
Set "Use Custom Economy" to true
Set "Type" to "Plugin"
Enter "Plugin Name" (exact name as it appears in plugins list)
Configure hooks:
"Plugin Hook Add" - Hook name for adding balance (e.g., "AddPoints", "Deposit")
"Plugin Hook Remove" - Hook name for removing balance (e.g., "TakePoints", "Withdraw")
"Plugin Hook Balance" - Hook name for checking balance (e.g., "CheckPoints", "Balance")
Test the hooks work correctly by checking plugin documentation
Reload the plugin
Q: How do I configure rarity backgrounds?
A: To set up rarity backgrounds:
In config, find "Rarity Settings" → "Rarity Backgrounds"
Add entries with chance ranges and images:
"Min" - Minimum chance percentage (e.g., 0)
"Max" - Maximum chance percentage (e.g., 1)
"Image" - Background image URL for case display
"Roulette Item Background Image" - Background image URL for roulette item display
Example: Legendary (0-1%), Epic (1-5%), Rare (5-15%), Uncommon (15-50%), Common (50-100%)
Items with drop chances within each range will display the corresponding background
Q: How do I configure Discord webhook logging?
A: To set up Discord webhook logging:
Create a Discord webhook in your Discord server (Server Settings → Integrations → Webhooks → New Webhook)
Copy the webhook URL
In config, find "Logging Settings" → "Discord"
Set "Enabled" to true
Paste webhook URL in "Webhook URL"
Configure options:
"Rare Threshold" - Only log items with chance ≤ X% (0 = log all items)
"Embed Color" - Decimal color code (e.g., 15844367 for gold)
"Title" - Embed title
"Show Player Avatar" - Display player avatar in embed
"Show Item Icons" - Display item icons in embed
"Group Items" - Group multiple items in single message
"Include Statistics" - Add statistics to embed
Reload the plugin
Q: How do I configure item rewards with weapons and attachments?
A: In the Item Editor:
Set "Type" to "Item"
Enter the weapon "ShortName" (e.g., "rifle.ak")
In "Weapon" section, set "Enabled" to true
Set "Ammo Type" (e.g., "ammo.rifle.explosive")
Set "Ammo Amount" (e.g., 128)
In "Content" section, set "Enabled" to true
Add attachments in "Contents" array:
"ShortName" - Mod shortname (e.g., "weapon.mod.lasersight")
"Condition" - Item condition (0-100)
"Amount" - Usually 1 for mods
"Position" - Slot index (-1 for auto-assignment)
Save the item
Q: How do I configure command rewards in cases?
A: To add command rewards:
In Item Editor, set "Type" to "Command"
In "Command (%steamid%)" field, enter your command
Use placeholders:
%steamid% - Player's Steam ID
%username% - Player's display name
%player.x% - Player's X coordinate
%player.y% - Player's Y coordinate
%player.z% - Player's Z coordinate
Multiple commands can be separated by | or line breaks
Example: "inventory.giveto %steamid% rifle.ak 1|oxide.usergroup add %steamid% vip"
Q: How do I enable Offline Image Mode?
A: To use local images instead of downloading from internet:
In config, set "Enable Offline Image Mode" to true
Create folder "TheMevent" in oxide/data (or carbon/data for Carbon)
Download PluginsStorage (click "CODE" → "Download ZIP")
Extract the ZIP and copy all contents to the "TheMevent" folder
Reload the plugin: o.reload UltimateCases (Oxide) or c.reload UltimateCases (Carbon)
Note: For custom images, place them in the "TheMevent" folder and reference them with the "TheMevent/" prefix (e.g., "TheMevent/MyImage.png").
Q: How do I configure demo mode and quick unbox mode?
A: Demo mode allows testing cases without spending keys, and quick unbox mode speeds up animations:
In config, find "Roulette Settings"
For demo mode: Set "Demo Mode Permission" to a permission name (e.g., "ultimatecases.demo") or leave empty to disable
For quick unbox: Set "Quick Unbox Permission" to a permission name (e.g., "ultimatecases.quick") or leave empty to disable
Set "Quick Mode Duration" (seconds) - how long the quick animation should last
Grant the permissions to players who should have access
Reload the plugin
Q: How do I configure case opening restrictions?
A: To prevent case opening in certain situations:
In config, find "Restrictions Settings"
Set "Enabled" to true
Enable/disable specific restrictions:
"Block During Combat" - Requires NoEscape plugin
"Block During Raid" - Requires NoEscape plugin
"Block in Building Blocked" - Blocks when player can't build
"Block While Swimming" - Blocks when player is swimming
"Block When Player is Wounded" - Blocks when player is wounded
"Block During Duel" - Requires Duel/Duelist plugin
"Block During Helicopter Flight" - Blocks when in helicopter
"Block When Player is Sleeping" - Blocks when player is sleeping
Reload the plugin
🧪 TEST SERVER
Join our test server to experience UltimateCases yourself!
Copy the IP Address below to start playing!
connect 194.147.90.147:28015
Ready to create the ultimate case opening experience? UltimateCases gives you all the tools you need to build excitement, reward players, and monetize your server. Start creating your first case today!
$24.99
Combined Storage lets players connect multiple storage containers so they function as one large inventory. Includes automatic item sorting, search functionality, and filtering to keep storage clean and efficient.
Readme Link - Click Here for Instruction and Documentation
👆 Highly recommend reading the FAQ section!
All Your Items - In One Place
Link multiple containers so they all share a single organized inventory.
Automatic Sorting
Items are automatically sorted as they are inserted, no manual effort required.
Search Functionality
Quickly find any item across all linked containers using a fast, built-in search bar.
Simple Setup
Simply press Link in a container to hook it up with the rest of them in your base.
Unique View for Each Player
Each player sees their own automatically sorted and filtered view of the shared inventory based on their preferences, without affecting anyone else.
Rust CUI Editor
Visual Interface Designer for Rust
Stop writing UI code blindly. Design your CUI interfaces visually and export ready-to-use code in seconds.
What is this?
Rust CUI Editor is a desktop application for creating Rust game UI (CUI) interfaces using a visual drag-and-drop editor. Instead of writing dozens of lines of CuiHelper code and constantly reloading your plugin to see the result, you design everything visually and get clean, working code instantly.
Video demonstration 2.0.0 Version (At the moment the version is already newer with new features)
Elements
Panel
Image (URL/sprite)
Label (with outline)
Button
InputField
ScrollView
Countdown
Draggable
Slot
NeedsCursor / NeedsKeyboard
Layout
Horizontal Layout Group
Vertical Layout Group
Grid Layout Group
Content Size Fitter
LayoutElement
Visual
Drag elements on canvas
Resize with 8 handles
Multi-selection
Marquee select
Anchor/offset system
Element rotation
Inline text editing
Element locking
Alignment
Left / Center / Right
Top / Middle / Bottom
Stretch to parent
Match Width/Height
Distribute evenly
🆕 Find & Replace
Search and replace element properties across the entire project at once. No need to click through each element manually.
► Search by text content, color value, sprite, or material
► Filter results by element type
► Replace single matches or all at once
► Full undo support for bulk replacements
🆕 Inspect Element
Dedicated inspection window for any selected element. Shows all properties in structured form alongside the raw CUI JSON output.
► All component properties in one place
► Raw CUI JSON with one-click copy
► Useful for debugging and quick exports
► Opens with shortcut or right-click menu
🆕 Snapshots
Save named project states at any point and restore them without losing your current work. Snapshots are completely separate from undo history.
► Create named snapshots before risky changes
► Restore any snapshot at any time — current work is preserved
► Stored in a .snapshots folder next to the project file
► Independent from undo/redo stack
🆕 Wrap in Parent
You've built a header with a label and a close button, then realize you forgot to add a background panel behind them. Select all elements, right-click, Wrap in Parent — done. Nothing moves.
► Works with any selection of elements
► New parent is sized to the bounding box of the selection
► All anchors recalculate automatically
► Wrap into Panel, Button, Image, or ScrollView
🆕 Themes
Dark Theme
Default dark interface.
Easy on the eyes during long sessions.
Light Theme
Full light mode across all panels,
dialogs, and overlays. Toggle in settings.
🆕 Plugin Import
Load CUI elements directly from an existing .cs plugin source file. The parser reconstructs the full element tree for visual editing.
► Parses CuiHelper and CuiElementContainer patterns
► Resolves local variables and string constants
► Handles loops and repeated element generation
► Substitutes lang message references with preview text
► Works on any Oxide/Carbon plugin file
🆕 Built-in Reference
A built-in help system with searchable articles covering the entire CUI system. No need to leave the editor to look something up.
► Articles for every element type and property
► Covers layers, ScrollView, blur materials, anchors, offsets, fonts
► Shortcut reference with all editor hotkeys
► Live demo canvas inside each article
► One-click "Add to project" from any example
🆕 Performance Rewrite
Canvas
GPU rendering
Scene bitmap cache
Static layer cache
SKPicture cache
SKPaint pooling (50+ allocs/frame saved)
Text layout cache
Typeface cache
Pan without full re-render
Element Tree
Debounced rebuild on rapid changes
Bulk update batching
Fast flat selection cache O(n)
ThumbnailBrush cache
Detach() memory leak fixed
Color Picker
Real-time updates while dragging
Only the affected element redraws
No full scene invalidation
🆕 Live Preview
See your UI exactly as it appears in-game, right inside the editor. Every element is fully rendered with correct Rust scaling, colors, sprites, and fonts. No need to reload your plugin to check the result.
Rendering
Panels & Images
Labels with fonts
Rich Text support
Sprite tinting
FadeIn / FadeOut
Interactive
Button hover & press
ScrollView with inertia
Elastic bounce
Auto-hiding scrollbars
Live Countdown
Drag & Drop
Draggable elements
Slot filter matching
MoveToAnchor snap
Element swapping
KeepOnTop z-order
Tools
Element Inspector
Grid overlay
Outlines view
Auto-sync with editor
Screenshot to PNG
All CuiDraggableComponent properties are supported in preview: LimitToParent, MaxDistance, AllowSwapping, DropAnywhere, DragAlpha, ParentPadding, ParentLimitIndex, AnchorOffset, and more.
► Pick up Draggable elements and drop them into Slots
► Filter matching ensures only compatible elements snap
► Swap elements between occupied slots
► Inspector overlay shows element info on hover (shortcut: I)
► Grid and outline overlays for layout debugging (G / O)
► Background selector: dark, light, or any game screenshot
► Auto-sync keeps preview updated as you edit
► Export preview as PNG screenshot (S)
🆕 Smart Hook Generation
When your project uses Draggable or Slot elements, the export automatically generates ready-to-use hook methods with proper logic:
► OnCuiDraggableDrag with if/switch blocks for each draggable
► OnCuiDraggableDropped with switch by slot name
► Comments with accepted elements and filter values
► Works in both Snippet and Plugin export modes
🆕 Developer Tools
Professional plugin development toolkit with four dedicated tabs:
Plugin Settings
Author & version
Chat/console commands
Auto-show hooks
Permissions list
Plugin references
Generate Unload
Lang System
Multi-language support
Visual translation table
Per-element lang keys
lang.GetMessage() export
Canvas preview
ImageLibrary
Image key/URL table
Per-element ImageLib key
GetImage() helper
Auto OnServerInitialized
Auto plugin reference
Templates
Reusable code templates
Custom method generation
Placeholder system
Per-project settings
🆕 Localization System
Full multi-language support for your plugins. Assign lang keys to any text element, manage translations visually, and export with automatic lang.GetMessage() calls.
► Add unlimited languages (en, ru, de, fr, etc.)
► Visual translation table - edit all strings in one place
► Toggle between raw text and lang key per element
► Canvas shows resolved translations in real-time
► Exported code includes full LoadDefaultMessages with all languages
🆕 ImageLibrary Integration
Manage image assets directly in the editor. Define image keys and URLs, assign them to elements, and get clean export code with automatic ImageLibrary loading.
► Image key/URL table in Dev Tools
► ImageLib Key property on Image elements
► Export generates GetImage() helper method
► Plugin export auto-adds OnServerInitialized with image loading
► Automatic [PluginReference] ImageLibrary in export
🆕 Syntax Highlighting
► C# syntax highlighting in Export window
► JSON syntax highlighting in Export window
► Color-coded keywords, strings, numbers, comments
► Optimized for large code blocks
🆕 SVG Design Import
Import your designs directly from professional design tools:
Figma
export to SVG and import
Illustrator
Adobe AI/SVG support
Inkscape
free vector editor
Any SVG
standard format
► Automatic source detection optimizes parsing for each tool
► Smart layer hierarchy preservation
► Automatic element type detection (btn_, lbl_, img_, panel_)
► Correct parent-child coordinate conversion
🆕 Figma Plugin & Tools
New "Tools" folder included with the editor:
► CuiHelper Plugin for Figma - export designs directly to C# code
► Sample SVG designs - ready-to-import examples for testing and learning
► Documentation - setup guide for Figma plugin
🆕 Smart Resize Mode
Default Mode
Resize by changing Anchor values
Perfect for responsive layouts that
scale with screen size
Shift + Resize
Resize by changing Offset values
Perfect for pixel-perfect positioning
Orange handles indicate active mode
🆕 Inline Text Editing
► Double-click any text element to edit it directly on canvas
► No need to switch to the property panel, just click and type
► Press Enter or click outside to confirm changes
Guides, Grid & Smart Snapping
► Draggable guides from rulers
► Customizable grid with snap
► Smart guides - auto-snap to edges
► Distance indicators while dragging
Multiple Backgrounds
Preview your UI on actual game screenshots:
Game view Inventory Loot container Crafting Map Transparent
Export Formats
Generate ready-to-use code in three formats:
C# (CuiHelper)
container.Add(new CuiPanel {
RectTransform = {
AnchorMin = "0.3 0.3",
AnchorMax = "0.7 0.7"
},
Image = { Color = "0.1 0.1 0.1 0.9" }
}, "Overlay", "MyPanel");
JSON
[{
"name":"MyPanel",
"parent":"Overlay",
"components":[...]
}]
Full Plugin
Complete .cs file with:
• using statements
• class definition
• commands & permissions
• Lang & ImageLib integration
• all UI code
Import Existing Code
Already have CUI code? Import it!
► Paste JSON array
► Paste C# CuiHelper code
► Import from PSD files
► Import from SVG files (Figma, Illustrator, Inkscape)
► Import from .cs plugin source files
The editor parses your code and recreates all elements for visual editing.
Project Management
► Save/Load project files
► Multiple tabs for different projects
► Recent projects with thumbnails
► Per-project settings
► Close confirmation for unsaved changes
Property Editor
Full control over every element property:
► Position (anchors + offsets)
► Colors with Rust format (0-1 RGBA)
► Fonts and text alignment
► Sprite/material selection
► Outline settings
► Fade in/out animations
► Button commands
► Input field parameters
► ScrollView settings
► Rotation and pivot point
Element Hierarchy
► Layer-based structure (Overlay, Hud, HudMenu)
► Parent-child relationships
► Drag & drop reordering
► Visibility toggle
► Lock elements to prevent accidental edits
► Rename with double-click
► Hover a tree node to highlight it on canvas
Additional Tools
Measure Tool
measure distances on canvas
Style Picker
copy style between elements
Sprite Library
browse Rust sprites
Color Picker
Rust format preview
Quality of Life
► Unlimited undo/redo
► Copy/paste/duplicate elements
► Copy/paste style
► Keyboard shortcuts for everything
► Multiple preset resolutions
► Smooth multiplicative zoom
► Auto-fit canvas to window
► Dark and light themes
► English & Russian localization
► Automatic update notifications
System Requirements
► Windows 10/11
► .NET 8.0 Runtime (bundled)
Installation
1. Download and extract the archive
2. Run RustCUIEditor.exe
3. Start creating!
Questions or support issues?
Contact me via CodeFling messages.
Warning: To use this loot tables pack, you need to purchase the paid Raidable Bases plugin if you do not already own it:
https://codefling.com/plugins/raidable-bases
ENHANCED LOOT TABES FOR RAIDABLE BASES:
This package includes only the Base_Loot folder, offering balanced loot tables designed for Raidable Bases.
What's New?
1) Two Loot Options:
- Vanilla Loot: Classic setup for a traditional experience.
- Enhanced Loot: Optimized for 2x, 3x, 5x, and higher servers, with fewer junk items.
2) Balanced Across 5 Levels:
Loot is tailored across Easy to Nightmare levels, ensuring rewards match the effort (e.g., a 30 C4 raid gives proportional loot).
3) Regular Updates:
Loot tables are kept updated for consistent balance and fairness.
This simple, plug-and-play package ensures a clean and rewarding raiding experience for your server.
This Raidable Bases Loot Tables (Easy to Nightmare) package includes:
- Easy Bases Base_Loot "Vanilla" & "Enhanced" tables
- Medium Bases Base_Loot "Vanilla" & "Enhanced" tables
- Hard Bases Base_Loot "Vanilla" & "Enhanced" tables
- Expert Bases Base_Loot "Vanilla" & "Enhanced" tables
- Nightmare Bases Base_Loot "Vanilla" & "Enhanced" tables
Beware: Our loot table package includes only the 5-tier loot tables within the Base_loot folder, ranging from easy to nightmare.
It does not include the loot tables from the Difficulty_Loot or Weekday_Loot folders.
It includes a separate loot table setup for each of the five tiers, with each one meticulously configured individually.
With future updates, we aim to continue improving our loot table day by day.
We additionally offer a package with 110 bases, including loot tables: https://codefling.com/bases/raidable-bases-pack-loot-tables-110-bases
INSTALLATION INSTRUCTIONS:
Extract the downloaded zip file using WinRAR. Then, move the files to the following location, ensuring a clean setup without any other files:
/serverfiles/oxide/data/RaidableBases/Base_Loot
You need to place the five prepared .json files for Easy through Nightmare bases into the Base_Loot folder.
The number of items that spawn in crates is determined not by the loot table but by five different configs found in the /serverfiles/oxide/data/RaidableBases/Profiles directory, using the code below.
For example, open Easy Bases.json inside the Profiles folder with Notepad, press CTRL+F, and search for "Amount Of Items To Spawn" In the example below, the spawn amount is set to 90.
You can adjust this number to your preference, either increasing or decreasing it. Keep in mind that changing this will affect the drop rates in the loot table.
"Amount Of Items To Spawn": 90,
You may also open the individual base profile files (e.g., Easy Bases.json, Medium Bases.json, Hard Bases.json, Expert Bases.json, Nightmare Bases.json) located in /serverfiles/oxide/data/RaidableBases/Profiles and adjust the "Loot Amount Multiplier" to values such as 2.0 or 5.0. This will alter the existing loot balance. However, we recommend keeping this setting at 1.0, as changing it may disrupt the intended loot balance:
"Loot Amount Multiplier": 1.0
If you're confident that you've successfully uploaded all the files, enter the following command in RCON to restart the plugin and apply the changes. Good luck:
Support: FULLWIPED DISCORD
Highest Rated
Top-rated picks trusted and loved by the community.
-
$16.99
By David
-
$40.00$30.00By nivex
-
$29.99
By LosGranada
-
$29.99
By imthenewguy
-
$24.99
By Whispers88
-
$40.00$31.95By Mevent
-
Free
By Steenamaroo
-
$14.99
By AhigaO
-
$19.99$15.99By Fruster
-
$14.99
By David
-
$45.99$40.47By Monster
-
$19.99
By ZEODE
-
$19.99
By Fruster
Trending Files
Popular picks members are downloading the most right now.
-
$35.00
By KpucTaJl
-
$24.99
By Whispers88
-
$29.99
By imthenewguy
-
Free
By KpucTaJl
-
$29.99
By Adem
-
$24.99
By Khan
-
$40.00
By The_Kiiiing
-
$24.99
By imthenewguy
-
$40.00$31.95By Mevent
-
$15.00
By imthenewguy
-
$25.00$18.75By Martian
Great Deals
Discounted picks, limited-time deals, and sale items worth grabbing now.
-
$25.00$17.50By Ionut Shiro
-
$3.99$1.52 -
$20.00$19.00By Razor
-
$8.00$5.60By Ionut Shiro
-
$24.99$19.99By SlayersRust
-
$8.00$5.60By Ionut Shiro
-
$15.99$14.39By Khaled
-
$3.99$2.79By Ionut Shiro
-
$5.00$3.50By Ionut Shiro
-
$7.00$4.90By Ionut Shiro
-
$14.99$9.99By romzar
-
$4.99$2.49By MrLou_
Latest Reviews
See what customers are saying about their experience with files.
Very nice map with some great build spots and the dev is awesome at responding to any questions or bugs you find
Easy to use, wonderful menu. Strongly recommend!
Great bases for Raidable Bases for a very low price!
Thanks to @SavageBuilderfor helping me in the installation!
I love this plugin. It's saved me quite a bit of space in my builds, lol. Easy configuration and it just works. Fantastic job on this!
superb support and plugin
While the plugin functions as intended, be aware that the developer has a "DIY" stance toward maintenance. Following the May 2026 Rust update, default coordinates for monuments like Military Tunnels and Missile Silos cause instant "InsideTerrain Violation" deaths.
I reported this to the developer, suggesting an update to the default presets for the benefit of all users. However, the response was that there is no need to update because users can change the config themselves.
If you're looking
An ABSOLUTE M-A-S-T-E-R C-L-A-S-S !!!
A very big B-R-A-V-O for those plugins !
Everything is P-E-R-F-E-C-T from A to Z
Extremely easy to install + configure + translation and set the plugin exactly HOW YOU WANT
The custom items are just GORGEOUS, excellent graphics and very well integrated with the interface.
My players already love them !
I permit myself to give them (players) the option to craft the T3 parts too and they love it !
Thank you @Brad Copp
An ABSOLUTE M-A-S-T-E-R C-L-A-S-S !!!
A very big B-R-A-V-O for those plugins !
Everything is P-E-R-F-E-C-T from A to Z
Extremely easy to install + configure + translation and set the plugin exactly HOW YOU WANT
The custom items are just GORGEOUS, excellent graphics and very well integrated with the interface.
My players already love them !
I permit myself to give them (players) the option to craft the T3 parts too and they love it !
Thank you @Brad Copp
An ABSOLUTE M-A-S-T-E-R C-L-A-S-S !!!
A very big B-R-A-V-O for those plugins !
Everything is P-E-R-F-E-C-T from A to Z
Extremely easy to install + configure + translation and set the plugin exactly HOW YOU WANT
The custom items are just GORGEOUS, excellent graphics and very well integrated with the interface.
My players already love them !
I permit myself to give them (players) the option to craft the T3 parts too and they love it !
Thank you @Brad Copp
After testing this plugin on an active PvE server, I honestly think it fills a very interesting gap between a mute and a ban.
We are using it as an administrative and educational moderation tool for light/moderate conflicts:
repeated toxicity
heated chat situations
rule abuse
behaviors that still do not justify a permanent ban
And it has been working surprisingly well.
Having a physical prison inside the game world gives the punishment much more psychological w