Featured framework
Carbon for modern Rust servers
Fast, self-updating, and built for performance with seamless in-game plugin and server management.
1,600+
servers powered by Carbon
$19.99
This plugin allows you to set how many times per day players can raid bases. It is a very straight forward plugin with lots of features to customize it for your server such as scheduled reset times, custom UI, and protection options.
Features:
Limit number of raids that players can perform daily
Scheduled reset times, even when server is offline
Option for "free" raids against your attackers when defending your base
Limit sync with teams and clans
Assign bonus raid points to individuals
Damage thresholds for raids
Configurable messages
Customizable UI
Works with Simple Status
Works with Clans
Works with protection plugins (configurable)
Documentation:
A full readme including permissions, command, 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 🙂
$49.90
The map is made in a post-apocalyptic style: fog, abandoned scientific bases, anomalous fields, subways, caves and secret bunkers. Players are waiting for dangerous locations, caves, ruined cities and closed doors, behind which you can find valuable resources.
The island has become a testing ground for experiments at the Cobalt Research Institute. After the accident at the power reactor, the terrain changed: anomalies appeared, the space became unstable, and research was urgently stopped. Scientists have disappeared, laboratories are empty, technology has gone crazy.
Now the island is full of dangers and mysteries. Something continues to work underground, and abnormal zones are growing and being transferred. Those who ventured to explore the area find artifacts and traces of what led to the disaster.
Every step here is a choice between prey and death.
But the deeper you go, the more you feel that this place is going to disappear or explode... very soon.
Features:
Prefab Count: ~58к prefabs
Size: 4500
A lot of interesting locations to explore
Railway
Places for the construction of foundations in the form of unusual rocks, caves, landscape and icebergs
Custom plugin Map Skinner (by Adem)
Custom plugin Npc Moving Control (by Adem)
Custom plugin Emission (by Adem)
Custom plugin Artifacts (by Adem)
Custom plugin Anomalies (by Adem)
Profile BetterNPC
Realistic zombies on the map
The atmosphere of the apocalypse
This map is constantly supported and updated for the current version of the game with all updates!
Description of Plugins:
Emission - Once every 2 - 4 hours, a timer message appears and a large-scale change in the weather and effects occurs, radiation begins to spread, the screen shakes, trees fall and the effects of this event appear. Players need to find shelter underground or in their house (the higher the building level, the less radiation damage will be).
Commands for plugins:
/emissionstart
/emissionstop
Anomalies - There are 4 types of Anomalies on the map, they appear after the end of the Emission. 1 anomaly is electrical (damage is inflicted on the player who is inside the anomaly, configured in the config), 2 anomaly is fiery (there are funnels in the radius, if you step on them, flames are released into the air, you can deactivate the anomaly by throwing a stone into the funnel, there is damage to the player), 3 anomaly is a bubble (in the radius of the bubbles breaks, if the player is too close to it, it will be thrown to the side or into the air, damage is caused only by the player falling), 4 anomaly - light (the most dangerous anomaly, when a blue ray appears, you need to turn away from it sharply, otherwise you will be blinded and a lot of damage will be done, it is configured in the config).
/spawnanomaly presetName - spawns an anomaly in a random position;
/killanomaly - destroys the anomaly closest to the player;
/killallanomalies - destroys all anomalies on the map;
/spawnanomalymypos presetName - will spawn an anomaly in your position
Artifacts - These are stones with some improvements to the player's characteristics, these are increased rates, lack of radiation, increased processing of components (increased extraction of resources from processing), HP recovery (takes away water and food). These artifacts only work in the player's fast slots and have their own HP, which is not repaired. These artifacts can only be found in anomalies with a metal detector in hand.
/giveartifact customShortName - give the artifact to yourself
giveartifact customShortName userId - give the artifact to the player with the userId
Map Skinner - we change this plugin skins on some objects installed on the map, for atmospheric effect.
Npc Moving Control - this plugin controls the radius of movement of the NPCs installed in the editor and changes their clothes to random hazmats.
These plugins were created for the map as a bonus. When evaluating the map itself, please do not touch on the topic of plugins. The map can work without these plugins.
Custom Monuments:
Icarus
Cultural Center
Zalesye
Orbita Station
Blocked Tunnel
Uranium Mining
Unfinished Scanner
Yanov Station
Hot Runner
Cemetery of Onlookers
Loners Cave
Radioactive Waste Storage
Anomaly Ribs
Startup Failure
Dead man Mine
Supply Depot
Dire Thicket
Vent
Distribution Substation
Danger Tunnel
Skladovsk
Dredger
Old Church
Secret Bunker
Cage
Machine Station
Repair Factory
interesting places to build a base marked X
Shelters for escape from radiation Emission, marked with the letter S
Monument Facepunch:
Launch Site
Missile Silo
Junkyard
Harbor 1 and 2
Arctic Research Base
Satellite Dish
Airfield
Bandit Camp
Outpost
Giant Excavator Pit
Water Treatment
Military Tunnel
The Dome
Sewer Branch
Ranch
Fishing Village 1,2,3
Lighthouse
Underwater Lab
Railway
HQM, Sulfur, Stone Quarry
Roadside Monument
RadTown
Water Well
Ziggurat
$14.99
Upgrades your furnaces, ovens, refinery, mixing table & etc to beyond.
⭐ Key Features
Upgrade each attribute of your furnace;
Supports different oven types;
It is possible to define default attributes for all ovens on the server;
You can set a default value for all base ovens (replacing quicksmelt);
You can enable/disable any features you want;
Option to keep attributes when removing the furnace;
Option to auto split ores;
Automatic fuel calc based on the upraded oven attributes;
Now BBQ and Campfire can also be improved;
Option so that only the furnace owner can upgrade it;
Option so that only owner's teammates can upgrade it;
A new completely redesigned UI;
NEW Supports Mixing Table
🎬 Video Showcase
📜 Permissions
furnaceupgrades.use - This is the unique permission. required for all players to upgrade furnaces
⚙️ Configuration
💬 Support
$32.99
Well rounded shop, with various features. It's standalone plugin which is compatible with WelcomePanel, HumanNpc.
This plugin also supports selling commands, wipe block, no escape, sales, permission access.
Multi-currency support
Use different currencies for different items. Economics and ServerRewards (RP) is supported as well as scrap or any other ingame item.
Restrictions
Combat, raid, spawn and building block supported alongside with basic cooldowns and wipe block. NoEscape is required for combat and raid block.
Appearance
Simple and clean design to ensure smooth user experience for your players. Additionally Shop can be inserted into WelcomePanel to achieve "all in" server panel.
Customization
Widely customizable and feature rich Shop which will fit all needs of your community.
Field Tested
Plugin made by experienced developer, tested by hundreds of server owners and used by some big organizations.
Discord
Customer support available on discord,
Installation
- unzip downloaded package and place Shop.cs file into your plugin folder.
- after succesfuly loading the plugin, data folder oxide/data/Shop will be generated
- take data files provided in plugin package and drop them into your Shop data folder
After finishing these steps your shop is ready to used.
Server Currency
If you don't wish to use ingame items as currency make sure you use either Economics or ServerRewards as you currency management as only those two plugins are compatible with Shop. Default currency setting is Economics ("eco"), if you wish to change it navigate to "oxide/data/Shop/Items.json", open this file in some text editor (VSC recommended) and simply select "eco" and mass replace for desired value. (video here)
"eco" for Economics
"rp" for ServerRewards
"scrap" or any other ingame item
Shop Categories
To remove, change or add new categories open "oxide/data/Shop/Categories.json" file. There you will find all categories alongside with items lists. If you wish to remove certain items from category, just head over to item list and delete from there.
Items
Changing prices
In "oxide/data/Shop/Items.json" you will find every item with their properties, to quick search for specific items press "CTRL + F". By leaving BuyPrice or SellPrice at 0 you will disable selling or buying of said item. Due to multi-currency support prices can be set only in whole numbers, no decimals. To offset for this, you can set minimal amount requirement. For example instead of selling one piece of wood for 0.01$ you can set minimal amount of 100x wood for 1$.
Removing items
If you wish to remove some items from Shop, you can do that directly in "data/Shop/Categories.json" file. Removing items from "Items.json" is not needed as they have no effect unless they are listed in some category.
Adding new items
To add new item you must first head over to "Items.json" data file and create new entry by copy pasting some of the existing ones. Once done with that you can add the item into category. To add multiple versions of same item can be created by simply adding unique tag behind shortname, for example "rifle.ak{1}", "rifle.ak{2}", etc...
Commands
Adding new commands
Commands can be create at "data/Shop/Commands.json". Plugin can only run server side console commands and then parse steam id or player name with tags {steamid} and {playername}. There are two examples shown in default data file. Server side console commands are common thing and almost all plugins utilize them.
Listing commands in categories
Simply type in one of your command names into category item list like this "cmd/yourCommandName". Slash cmd in front of command name is there to make difference between ingame item and command.
Cooldowns
These are very basic, cooldown is triggered when buy/sell action is triggered. By using minimal amount requirement for items you can manage how much player buy and how often. Cooldowns are managed in "data/Shop/Cooldowns.json". Default data file contains two example of cooldowns but it's simply shortname and amount of seconds.
Restrictions
Raid and Combat Block
Managed by NoEscape plugin, option to enable these two block can be found in config file.
Building Block
Prevents players from using shop while they are building block, option can be found in config file.
Spawn Block
Prevents players from using shop after they respawn, amount of seconds can be set in config file, 0 = disabled.
Wipe Block
Prevents players from buying specific items after wipe. Settings are located in "data/Shop/ItemsWipeBlock.json", similar as cooldowns.
Sales
By Permission (config file)
Discount on every item in the shop assigned by permission, multiple permission can be created with their own discount values.
By Category (categories data file)
Discount for every item within specified category.
By Item
Discount for specific item in the shop. If item is already in discounted category, higher discount will be applied.
WelcomePanel integration
To integrate this plugin into WelcomePanel simply use one of the four configs included in download package. These config were premade for each WelcomePanel template (goes from 1 to 4). In case you have own highly customized layout for WelcomePanel you will have to adjust "Layout Container" in Shop config file by yourself.
AdminWarn is designed for situations where players clearly violate server rules or require a direct and serious warning.
With the latest update, an optional popup warning mode has been added alongside the mandatory acknowledgment GUI.
This allows admins to send clean, non-intrusive messages displayed at the top of the screen.
News: To avoid disrupting gameplay (such as PvP), you can use:
/warnpopup <SteamID> <message>
/warnpopupall <message>
The core purpose of AdminWarn remains unchanged: forcing players to acknowledge warnings.
Each mandatory warning includes a single confirmation button, ensuring the player has read and accepted it.
Acknowledgment events are tracked via Discord webhook logs, including whether the warning was confirmed while the player was online or after reconnecting.
AdminWarn is built for manual use only.
It is not an automated warning system.
All warnings are intentionally sent by admins using commands.
At the same time, the system works intelligently in the background:
- Warnings sent to offline players are stored and automatically shown when they next join, even days later.
- For online players, warnings remain active until acknowledged, then are automatically cleared.
- All data is fully wipe-aware and automatically cleaned on server wipes.
Each warning includes built-in in-game sound effects.
No external or custom audio files are used.
This is not a chat message.
Warnings are delivered as visual UI elements that require acknowledgment or appear as optional popup notifications.
Even if a player closes the game, mandatory warnings will reappear on the next login until confirmed.
No movement restrictions are applied.
Warnings can be sent via:
- RCON
- Server console
- In-game admin console (F1)
🚀 Performance:
AdminWarn is built with an optimized and efficient code structure, making its presence virtually unnoticeable on the server.
It runs smoothly during long uptimes and maintains stable hook memory and performance values under normal server conditions.
🔄 Wipe Behavior:
- Restarts: Data preserved (approved warnings are auto-deleted for data optimization)
- Server wipe: All warning data automatically cleared
- No manual cleanup needed (Most of the time, it is not necessary)
🔧 Commands Chat & Rcon:
Note: Player names are not unique and may include different alphabets or special characters. To avoid ambiguity, using Steam64ID is strongly recommended when sending warnings.
warn <SteamID> <message>
warn <PlayerName> <message>
warn <SteamID1>,<SteamID2>,<SteamID3> <message>
warn <Name1>,<Name2>,<Name3> <message>
warnall <message>
warnpopup <SteamID> <message>
warnpopup <PlayerName> <message>
warnpopup <SteamID1>,<SteamID2>,<SteamID3> <message>
warnpopup <Name1>,<Name2>,<Name3> <message>
warnpopupall <message>
🔐 Permissions Oxide/Carbon
oxide.grant group admin adminwarn.admin
c.grant group admin adminwarn.admin
📊 Discord Webhook Logging
- Player name/steamid and SteamURL
- Warning message / Timestamp
- Read status (online/after reconnect)
- Logs warning sending
- Logs individual warning acknowledgements
📁 Config:
{
"Warning sound": "assets/prefabs/building/wall.frame.shopfront/effects/metal_transaction_complete.prefab",
"Clear data on wipe": true,
"Discord Webhook URL": "https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks",
"Discord Log Enabled": true,
"Log Global Warnings (warnall)": true,
"Log Warning Sent (single + multi)": true,
"Show Date in GUI": true,
"Show logo in warning GUI": true,
"Logo size (px) — local image should be a square PNG, recommended 75-120": 90,
"Use local images (false = use Web URL below)": true,
"Web image URL for logo (128x128 transparent PNG recommended, used only when Use local images is false)": "",
"Popup duration (seconds)": 10
}
Tip4Serv is a complete Rust Webstore and Donation Store solution that allows Rust server owners to sell VIP memberships, kits, permissions, queue priority, subscriptions, virtual currency and more with automatic delivery.
Looking for a Tebex Alternative for Rust? https://tip4serv.com helps you create a professional donation store in less than 5 minutes with automatic command execution, Discord integration and support for more than 25 payment methods.
Perfect For Selling
VIP Memberships
Queue Priority
Kits
Item Bundles
Permissions
Economics Money
Server Rewards Points
Subscriptions
Battle Passes
Donation Packages
Cosmetics
Supported Games
Rust
Garry's Mod
FiveM
Minecraft
Discord
ARK
and more
Starter Plan (Only 5% Fee)
Unlimited Products & Categories
Unlimited Rust Servers & Commands
Subscription Products
Discord Roles & Webhooks
Dark & Light Mode
More Than 25 Payment Methods
Managers & Staff Access
Sales Statistics
Coupons & Discounts
Loyalty Points System
Custom Domain Name
Resend Orders
Tax Compliance
Free SSL Certificate
DDoS Protection & Mitigation
Fast Order Delivery
No Advertisements
PRO Features (21 Days Free Trial)
Includes all Starter features plus:
Reduced Fees From 5.0% To 3.8%
Gift Cards Support
Multiple Dynamic Themes
Custom Fields & Command Integration
Product Gallery, Videos & GIF Support
Top Customers Widget
Related Products Widget
Built-In Product Search Bar
Advanced UI Theme Editor
Custom CSS Editor
Steam & Discord Account Linking
Customer Avatars
Store available in 15 languages
English, Danish, Dutch, French, German, Hungarian, Italian, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.
Several payment methods
Here are the payment methods you can offer your players: Card, Paypal, Venmo, Google Pay, Ideal, Giropay, Bancontact, Sofort, My Bank, Sepa, EPS, BACS, Multibanco, BECS, Przelexy24, BOLETO, OXXO, Mercado Pago.
Installation via Plugin
Open an account at https://tip4serv.com/, follow the instructions and add a Rust server.
Drag and drop tip4serv.cs into the oxide plugins directory on your Rust server
Reload the plugin by typing oxide.reload Tip4serv in your Rust server console.
Set key to your tip4serv API key in the config file tip4serv.json.
Reload plugin by typing oxide.reload Tip4serv in console.
You should get this message: Server has been successfully connected
Installation via RCON
Open an account at https://tip4serv.com/, follow the instructions and add a Rust server.
Enter your server IP
Enter your server RCON port
Enter your server RCON password
You should get this message: Server has been successfully connected
Setting up commands on Tip4Serv
Before setting up your commands on Tip4serv.com, you should know that command work in your server's console (not ingame as an admin).
Here are some sample commands you can use in the products configuration: MY PRODUCTS. But you can use any plugin commands you want.
Give a group or permission
Add a player to a group previously created with oxide.group add [group-name]:
oxide.usergroup add {steam_id} group-name
Remove a player from a group:
oxide.usergroup remove {steam_id} group-name
Give a permission to a player:
oxide.grant user {steam_id} permission-name
Remove a permission from a player:
oxide.revoke user {steam_id} permission-name
Give an item to a player inventory with steam_id (advised)
IMPORTANT: Please select the option [Player must be online] in your product editor
inventory.giveto {steam_id} item-short-name quantity
Example: inventory.giveto {steam_id} scientist 5
Give an item to a player inventory with Give plugin
IMPORTANT: Please select the option [Player must be online] in your product editor
giveto {steam_id} item-short-name quantity
Example: giveto {steam_id} fun.guitar 1
Give a kit to a player with Give plugin:
givekitto {steam_id} kit-name
Give money
Give money to a player with Economics plugin:
deposit {steam_id} amount
Give points
Give points to a player with Server Rewards plugin:
sr add {rust_username} amount
Quantity multiplier
You can also multiply the quantity choosen by the customer like this: {quantity*50}
Note: You must first activate the **Allow quantity choice** option in your product.
Use this command on Tip4serv if you want to sell bundles of $200 with economics plugin:
deposit {steam_id} {quantity*200}
This will run in your server console after a purchase if the player buys product 4 times:
deposit 76561198181797231 800
Store examples
https://tip4serv.com/demos
Need Help ?
Read the Tip4Serv documentation here https://docs.tip4serv.com
Any issues feel free to contact us here https://tip4serv.com/contact
$29.99
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 (14 contracts), Daily (16 contracts), Weekly (14 contracts) and Wipe (6)
50 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, plant, harvest, cloning
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"]
}
🌱 Plant
Requires the player to plant any or specified seeds
Configuration (excludes common objective fields):
type - Always "Plant"
amountRequired - An integer value greater than 0
items - List of seed shortnames. Leave empty for any seed.
Example (excludes common objective fields):
{
"type": "Plant",
"amountRequired": 100,
"items": ["seed.corn", "@berries_seed"]
}
🌾 Harvest
Requires the player to harvest any or specified plants.
Configuration (excludes common objective fields):
type - Always "Harvest"
amountRequired - An integer value greater than 0
items - List of seed shortnames. Leave empty for any seed.
source - One of Any, World or Planted
Any = Any plant | World = Natural plants | Planted = Player-planted plants
Example (excludes common objective fields):
{
"type": "Harvest",
"amountRequired": 100,
"items": ["mushroom", "@berries"],
"source": "World"
}
🍃 Cloning
Requires the player to clone any or specified plants.
Configuration (excludes common objective fields):
type - Always "Cloning"
amountRequired - An integer value greater than 0
items - List of clone shortnames to get. Leave empty for any clone.
Example (excludes common objective fields):
{
"type": "Cloning",
"amountRequired": 100,
"items": ["clone.hemp", "@berries_clone"]
}
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
$25.00
Custom Smelt Item
Custom Smelt Item is an all-in-one plugin that allows you to add smeltable items, fuel items, and freely set the processing speed of each furnace. Create a unique gameplay experience with new smelting recipes, fuel items, and smelting speed adjustments! Compatible with Oxide. Installing this mod will change the smelting system from the vanilla version.
⚠️Note
This data includes "Custom Smelt Item" and "Custom Smelt Item Experimental." Please install only one of them.
"Custom Smelt Item" functions as a stable version, while "Custom Smelt Item Experimental" functions as a Experimental version.
"Custom Smelt Item Experimental" allows you to set additional foods, but please make sure you understand how to use this mod before using it. If there are many reports of bugs caused by incorrect use, we will discontinue releasing the Experimental version.
Custom Smelt Item Experimental will turn off the visuals of food places in campfires, etc.
Read below for instructions on how to use it.
■ Custom Smelting Items
- Set any item to be smelted
- Freely configure input/output items
- Set processing time for each item
- Set output amount per processing
- Support for skinned items (SkinID)
- Custom name settings for output items
- Item type classification for each furnace type (ore, oil)
■ Custom Fuel System
- Add any item as fuel
- Set burn time for each fuel
- Set by-product output (e.g., wood → charcoal)
- Adjust by-product drop rate
- Support for skinned fuel items
■ Furnace Speed Multiplier
Individual speed settings for each furnace type(Custom Smelt Item)
- Furnace
- Legacy Furnace
- Large Furnace
- Electric Furnace
- Small Oil Refinery
Notice : The speed cannot be adjusted for any other types. The speed for all other types is set to 1. This setting is to adjust the interaction between fuel and cooking time. (Custom Smelt Item Only)
You can fully customize the config, adding refined items, fuel items, refinement speed, and more.
*Please do not delete default items from the settings.
Custom Smelting Item
{
"Smelting Patterns": [
{
"ItemType": "oil", ///ore" (for furnaces) or "oil" (for refineries)
"InputItem": "crude.oil", ///Input item short name
"InputItemSkinId": 0, ///Input item skin ID
"OutputItem": "lowgradefuel", ///Output item short name
"OutputItemSkinId": 0, ///Output item skin ID
"OutputItemName": null, ///Custom display name for the output item (null for default)
"RequiredTime": 30, ///Smelting time (seconds)
"OutputAmountPerProcess": 3 ///Output amount per 1
},
{
"ItemType": "oil",
"InputItem": "diesel_barrel",
"InputItemSkinId": 0,
"OutputItem": "lowgradefuel",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 180,
"OutputAmountPerProcess": 150
},
{
"ItemType": "ore",
"InputItem": "metal.ore",
"InputItemSkinId": 0,
"OutputItem": "metal.fragments",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 10,
"OutputAmountPerProcess": 1
},
{
"ItemType": "ore",
"InputItem": "sulfur.ore",
"InputItemSkinId": 0,
"OutputItem": "sulfur",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 7,
"OutputAmountPerProcess": 1
},
{
"ItemType": "ore",
"InputItem": "hq.metal.ore",
"InputItemSkinId": 0,
"OutputItem": "metal.refined",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 20,
"OutputAmountPerProcess": 1
},
{
"ItemType": "ore",
"InputItem": "can.tuna.empty",
"InputItemSkinId": 0,
"OutputItem": "metal.fragments",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 20,
"OutputAmountPerProcess": 10
},
{
"ItemType": "ore",
"InputItem": "can.beans.empty",
"InputItemSkinId": 0,
"OutputItem": "metal.fragments",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 25,
"OutputAmountPerProcess": 15
},
{
"ItemType": "ore",
"InputItem": "honeycomb",
"InputItemSkinId": 0,
"OutputItem": "honey",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 3,
"OutputAmountPerProcess": 1
},
{
"ItemType": "ore",
"InputItem": "techparts",
"InputItemSkinId": 0,
"OutputItem": "metal.refined",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 120,
"OutputAmountPerProcess": 10
},
{
"ItemType": "ore",
"InputItem": "sheetmetal",
"InputItemSkinId": 0,
"OutputItem": "metal.fragments",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 180,
"OutputAmountPerProcess": 150
},
{
"ItemType": "ore",
"InputItem": "scrap",
"InputItemSkinId": 0,
"OutputItem": "metal.fragments",
"OutputItemSkinId": 0,
"OutputItemName": null,
"RequiredTime": 15,
"OutputAmountPerProcess": 10
}
],
"Fuel Patterns": [
{
"FuelInputItem": "wood", ///Fuel item short name
"FuelInputItemSkinId": 0, ///Fuel item skin ID
"FuelOutputItem": "charcoal", ///By-product item (null if none)
"FuelOutputItemSkinId": 0, ///By-product skin ID (default is 0)
"FuelOutputItemName": null, ///Custom by-product Display name
"FuelOutputAmountPerProcess": 1, ///By-product amount per fuel consumed
"FuelOutputChance": 0.7, ///By-product generation probability (0.0-1.0)
"FuelBurnTime": 10 ///Burn time per fuel (seconds)
},
{
"FuelInputItem": "lowgradefuel",
"FuelInputItemSkinId": 0,
"FuelOutputItem": null,
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 0,
"FuelOutputChance": 0.0,
"FuelBurnTime": 80
},
{
"FuelInputItem": "coal",
"FuelInputItemSkinId": 0,
"FuelOutputItem": null,
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 0,
"FuelOutputChance": 0.0,
"FuelBurnTime": 180
},
{
"FuelInputItem": "charcoal",
"FuelInputItemSkinId": 0,
"FuelOutputItem": null,
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 0,
"FuelOutputChance": 0.0,
"FuelBurnTime": 60
},
{
"FuelInputItem": "cloth",
"FuelInputItemSkinId": 0,
"FuelOutputItem": null,
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 0,
"FuelOutputChance": 0.0,
"FuelBurnTime": 30
},
{
"FuelInputItem": "plantfiber",
"FuelInputItemSkinId": 0,
"FuelOutputItem": null,
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 0,
"FuelOutputChance": 0.0,
"FuelBurnTime": 120
}
],
"Oven Speed Multipliers": { ///Furnace Smelt Speed
"Furnace": 1.0,
"Legacy Furnace": 1.0,
"Large Furnace": 2.0,
"Electric Furnace": 2.0,
"Small Oil Refinery": 3.0
}
}
Custom Smelt Item Experimental
{
"Can Cook In Furnace": false, ///Can food be cooked in a furnace?
"Smelting Patterns": [
{
{
"ItemType": "food", ///"ore" or "oil" or "food"
"InputItem": "mushroom",
"InputItemSkinId": 0,
"OutputItem": "apple",
"OutputItemSkinId": 3347673417,
"OutputItemName": "Cooked Mushroom",
"RequiredTime": 30,
"OutputAmountPerProcess": 1
},
{
"ItemType": "food",
"InputItem": "seed.corn",
"InputItemSkinId": 0,
"OutputItem": "apple",
"OutputItemSkinId": 3154577332,
"OutputItemName": "Popcorn",
"RequiredTime": 30,
"OutputAmountPerProcess": 1
}
...
],
"Fuel Patterns": [
{
"FuelInputItem": "wood",
"FuelInputItemSkinId": 0,
"FuelOutputItem": "charcoal",
"FuelOutputItemSkinId": 0,
"FuelOutputItemName": null,
"FuelOutputAmountPerProcess": 1,
"FuelOutputChance": 0.7,
"FuelBurnTime": 10
},
...
],
"Oven Speed Multipliers": {
"Furnace": 1.0,
"Legacy Furnace": 1.0,
"Large Furnace": 2.0,
"Camp Fire": 1.0,
"Cursed Cauldron": 1.0,
"Skull Fire Pit": 1.0,
"Stone Fireplace": 1.0,
"Hobo Barrel": 1.0,
"Barbeque": 2.0,
"Cooking Workbench": 2.0,
"Electric Furnace": 2.0,
"Small Oil Refinery": 3.0
}
}
■ Configuration Option Details
ItemType: Item type: "ore" (for furnaces) or "oil" (for refineries)
InputItem: Input item short name
InputItemSkinId: Input item skin ID
OutputItem: Output item short name
OutputItemSkinId: Output item skin ID
OutputItemName: Custom display name for the output item (null for default)
RequiredTime: Refining time (seconds)
OutputAmountPerProcess: Output amount per unit
■ Fuel Pattern Settings
FuelInputItem - Fuel item short name
FuelInputItemSkinId - Fuel item skin ID
FuelOutputItem - By-product item (null if none)
FuelOutputItemSkinId - By-product skin ID (default is 0)
FuelOutputItemName - Custom by-product name
FuelOutputAmountPerProcess - By-product amount per fuel consumed
FuelOutputChance - By-product generation probability (0.0-1.0)
FuelBurnTime - Burn time per fuel (seconds)
Important Notes
- Food items (raw meat, fish, etc.) cannot be set as smelting items in Custom Smelt Items, as they maintain vanilla cooking behavior.
- Custom Smelt Item Only : Furnace speed cannot be adjusted for other types. All other types have the speed set to 1. This setting is to adjust the interaction between fuel and cooking time.
- The same item cannot be set as both a smelting item and a fuel item.
- The same item cannot be assigned to multiple item types (ore + oil).
- Fuel settings can only be used for smelting. Vehicle fuel consumption settings cannot be configured.
- The fuel used for vehicles cannot be customized with this mod.
- Please note that compatibility with other mods is not supported.
⚠️⚠️⚠️Important: How to Use Custom Smelt Items (Experimental)⚠️⚠️⚠️
To stop using this mod and keep the server running, you must remove all custom food items from the input slots of the cookable ovens. Before removing this mod, be sure to run the server console command (or reinstall the mod and then run the server console command again).
Failure to perform this step will prevent the server from starting.
Also, absolutely do not save the server in this state; it will corrupt the server save data.
Target Type
Campfire
Cursed Cauldron
Fireplace
Hobo Barrel
BBQ
Cooking Workbench
Console Command : removefood
When you run the command, a confirmation message will appear. Enter "y" if you agree. Then, remove this mod.
VOID / NINJA WORKS
DISCORD : https://discord.gg/U8uxePjSyA
MADE IN JAPAN
$14.99
🗒️Features:
You can add any plugin event in the UI (if it has hooks, usually specified in the plugin description)
Has ingame UI menu for configure your Hud
The time format is adjusted to the player (depending on his language in the game), it checks which time format is used for this language
You can also enable an additional menu that opens on the arrow. You can add various buttons to this menu, for example, to open a store, your server menu, etc.
Almost all elements are customizable [for example: visibility of each element, Logo, Icons, Color e.t.c (check config down below)]
📕Commands:
/h setup - open UI for ingame config
/h - show all Server Hud UI commands
/h open - open Server Hud UI
/h events - open Events Bar
/h close - close Server Hud UI
/h hide - hide Server Hud UI
Q&A:
Q: Where i can find a base icon for creating my events icons?
A: Take a base icon below this message and using f.e photoshop for create you personal event icon!
Q: Where i can find a ready to use icons?
A: Here some links to ready to use icons packs(1 free, 2 paid):
https://codefling.com/customizations/free-custom-hud-icons
https://codefling.com/customizations/custom-hud-icons-paid
https://codefling.com/customizations/server-hud-custom-icon-pack
API:
string API_PlayerHudState(string id)
CanHudChangeState(BasePlayer player, string currentState, strint nextState)
🗒️Config:
{
"Auto reload [If you change the config and save the file the plugin will reload itself]": true,
"Main setup": {
"Overall layer [you will see the hud in your inventory]": false,
"Size ALL [0% - inf]": 100,
"Logo [HUD interact button]": "https://media.discordapp.net/attachments/335512864548847617/1134455399756607549/logo.png",
"Events background opacity [0% - 100%]": 100,
"Background opacity [0% - 100%]": 100,
"Position": {
"Align [TopLeft | TopRight | BottomLeft | BottomRight": "TopLeft",
"Left | Right - offset": 40,
"Top | Bottom - offset": 25
},
"Server name": "Your Server Name",
"Active players": {
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455395813965934/active.png",
"Color": "#fff",
"Enable": true
},
"Sleep players": {
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455395138670652/sleep.png",
"Color": "#fff",
"Enable": true
},
"Queue players": {
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455393972654171/line.png",
"Color": "#fff",
"Enable": true
},
"Time": true,
"Player position [hide permisson - hud.streamer]": {
"Enable": true,
"true - grid | false - x,z coordinates": true,
"Color": "cyan"
},
"Economy plugin [Economics | ServerRewards]": {
"Currency": "$",
"Value color": "#10ff10",
"Enable": true
},
"Info messages": {
"Update interval [in seconds]": 60,
"Align [BottomCenter | TopCenter | TopRight]": "BottomCenter",
"Width [in px]": 260,
"Offset [top | bottom]": 0,
"Offset [right]": 15,
"Outline color": "#000",
"Overall [you will see messages in your invenotory]": true,
"Enable": true,
"Messages": [
"Welcome to Your Server Name",
"Good luck"
]
},
"Additional menu": {
"Auto close timer [seconds | 0 - disable]": 60,
"Auto close after command use": true,
"Open/Close button color": "yellow",
"Commands background opacity [0% - 100%]": 100,
"Enable": true,
"Commands": [
{
"Background image": "https://media.discordapp.net/attachments/335512864548847617/1134455392420761671/command.png",
"Icon [optional]": "https://media.discordapp.net/attachments/335512864548847617/1134455395813965934/active.png",
"Command": "chat.say Hello there",
"Text": "Say Something",
"Outline color": "#000",
"Is Console": true
},
{
"Background image": "https://media.discordapp.net/attachments/335512864548847617/1134455392420761671/command.png",
"Icon [optional]": "",
"Command": "/shop",
"Text": "Say Something",
"Outline color": "#000",
"Is Console": false
}
]
}
},
"Base Events": [
{
"Name": "Bradley",
"Active color": "#10ff10",
"Icon": "https://media.discordapp.net/attachments/335512864548847617/1134455316654850049/bradley.png",
"Color": "#fff",
"Enable": true
},
{
"Name": "PatrolHeli",
"Active color": "#10ff10",
"Icon": "https://media.discordapp.net/attachments/335512864548847617/1134455315073597530/heli.png",
"Color": "#fff",
"Enable": true
},
{
"Name": "CH47",
"Active color": "#10ff10",
"Icon": "https://media.discordapp.net/attachments/335512864548847617/1134455317485342803/ch47.png",
"Color": "#fff",
"Enable": true
},
{
"Name": "Cargo",
"Active color": "#10ff10",
"Icon": "https://media.discordapp.net/attachments/335512864548847617/1134455317086879794/cargo.png",
"Color": "#fff",
"Enable": true
},
{
"Name": "AirDrop",
"Active color": "#10ff10",
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455316143161374/airdrop.png",
"Color": "#fff",
"Enable": true
}
],
"Custom Events": [
{
"Hook OnEventStart": "OnConvoyStart",
"Hook OnEventStop": "OnConvoyStop",
"Name": "Convoy",
"Active color": "#10ff10",
"Icon": "https://media.discordapp.net/attachments/335512864548847617/1134455318030598154/convoy.png",
"Color": "#fff",
"Enable": false
},
{
"Hook OnEventStart": "OnSputnikEventStart",
"Hook OnEventStop": "OnSputnikEventStop",
"Name": "Sputnik",
"Active color": "#10ff10",
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455315488854016/sputnik.png",
"Color": "#fff",
"Enable": false
},
{
"Hook OnEventStart": "OnArmoredTrainEventStart",
"Hook OnEventStop": "OnArmoredTrainEventStop",
"Name": "ArmoredTrain",
"Active color": "#10ff10",
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455315841155173/train.png",
"Color": "#fff",
"Enable": false
},
{
"Hook OnEventStart": "OnHarborEventStart",
"Hook OnEventStop": "OnHarborEventEnd",
"Name": "Harbor",
"Active color": "#10ff10",
"Icon": "https://cdn.discordapp.com/attachments/335512864548847617/1134455318332592219/harbor.png",
"Color": "#fff",
"Enable": false
}
]
}
$14.99
Automated chat messages based on chat keywords, timer or various other triggers. Plugin comes with an easy to use Admin UI for complete setup, and supports special localization for your messages. You can define messages to be sent only to specific Groups or Permissions, and you can allow players to toggle on/off messages if they do not find them useful.
SUPPORTED TRIGGERS If what you need is not here and still falls under the scope of the plugin description, reach out to me
Timed | ChatCommand | AutoReply | NewPlayerJoined | PlayerConnected | PlayerDisconnected | PermissionGranted | PermissionRevoked | AddedToGroup | RemovedFromGroup | PlayerDead | CrateHacked | EnteredDeepSea | LeftDeepSea | EnteredZone | LeftZone | EnteredMonument | LeftMonument
COMMANDS
/am.edit - (Admin UI for complete setup) - requires automatedmessages.admin permission
/tips - (Player command for toggling on/off messages) command can be changed in the config file
MESSAGES LOCALIZATION
You can switch between languages in Admin UI to setup localized replies for every language the game supports. Check config section below for how to add languages.
Game Tips
You can utilize Rust's native game tip UI to show specific messages instead or along with sending it to chat.
VARIABLES
Variables can be included in the messages text to show further info based on the trigger or player. The plugin also supports https://umod.org/plugins/placeholder-api with the extensive list of variables it brings.
{playername}
{playerid} - Player steam id
{playercountry}
{hacklocation} - Specific to messages with type CrateHacked
{wipetimeremaining} - Days/Hours till wipe (based on rust convar settings if a missile silo monument is present)
{online} - # of players online
{sleeping} - # of players sleeping
{joining} - # of players joining
CONFIG SETTINGS Below are only settings not currently available in Admin UI, highly recommended to edit triggers or actions using /am.edit
Chat Icon (Steam Id) - Icon that will be used for all messages sent by the plugin, must be a steam id.
Toggle Chat Command - "tips" - Chat command that allows a player to toggle on/off messages.
AutoReply Cooldown (in seconds) - Per action cooldown timer when players type a keyword set.
ChatCommand Cooldown (in seconds) - Per player cooldown timer when a player types a chat command.
ZoneManager Cooldown (in seconds) - Per player cooldown timer on enter or exit zone.
MonumentWatcher Cooldown (in seconds) - Per player cooldown timer on enter or exit monument.
Replies Server Languages - Languages your server will support. Available options: af, ar, ca, cs, da, de, el, en-PT, en, es-ES, fi, fr, hu, it, ja, ko, nl, no, pl, pt-PT, pt-BR, ro, ru, sr, sv, tr, uk, vi, zh-CN, zh-TW
Default Server Language - Fallback language if player client language had no available replies, you must have at least one reply for this language for the action to function.
AutoReply `Broadcast to all` option to broadcast to team only if keywords sent from team chat - true/false
Highest Rated
Top-rated picks trusted and loved by the community.
-
$16.99
By David
-
$40.00$30.00By nivex
-
$29.99$19.99By 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$15.99By Fruster
Trending Files
Popular picks members are downloading the most right now.
-
$30.00
By 0xF
-
Free
By Steenamaroo
-
$40.00
By The_Kiiiing
-
$40.00$31.95By Mevent
-
$40.00
By Steenamaroo
-
$19.99$15.99By Fruster
-
$40.00$30.00By nivex
-
$14.99
By Iftebinjan
-
$19.99$15.99By Fruster
-
$16.99
By David
Recently Updated
Recently improved files with fresh updates, fixes, and new content.
-
$7.00
By Barry_Allenn
-
$20.00
By Qbis
-
$25.00
By NINJA WORKS
-
$14.99
By Iftebinjan
-
$34.99
By Gruber
-
$49.90
By badgyver
-
$12.99$8.99By Brad Copp
-
$7.50
By MijiSK
-
$2.00
By MijiSK
Latest Reviews
See what customers are saying about their experience with files.
Great plugin with useful moderation features and clean configuration. Runs lightweight and doesn’t affect server performance. Perfect for keeping chat under control without extra hassle
I actailly liked how easy this was to use, and how easily it allowed me to setup loot tables,
it will be missed.
Всё замечательно, но есть одна проблема: двери не отображаются в RustEdit из-за своего размера.
It's great. The only improvement would be if custom items could be added as rewards. That feature would earn the 5th star
I haven't even had to really edit anything yet. The random weather cycle(s) is absolutely perfect and already adding a heavy layer of immersion to my server. Love this mod absolutely worth the $14.99
its a great table i just wish i had bought the no blueprints one instead lol
Managing loot tables is so complicated, this makes it super simple, i don't have to worry about adjusting them when new items come out or wondering if i broke something.
I’m honestly beyond impressed with this plugin. The level of quality, attention to detail, and overall functionality completely exceeded my expectations. Everything works smoothly, the setup process was straightforward, and you can clearly see how much effort and professionalism went into development.
I’ve tested many plugins before, but this one genuinely stands out. It saves time, performs flawlessly, and adds exactly the kind of features I was looking for.
I can confidently say I’m
Easy to use. Supports native C# Rust CUI code and dev is very responsive. 5/5
Amazing Plugin!
A bit of work getting it all setup, cusomisied with loot tables, and kits for the NPC's etc/ but once its done, its an aboslute blast!
I'm added a Prim Raid to mine, NPC with bows an eoka's, and also a Hell Raid mode with 9 waves with MLRS rockers on each, with difficulties everywhere inbetween.
So much fun, and great companion for the raidable bases plugin to give a PVE server both Raiding and being Raided.