How are we doing?
Review us on Trustpilot
We’re always working to make Codefling better. If we’ve helped you, we’d really appreciate you taking a minute to share your experience on Trustpilot.
ServerPanel adds a player information menu to your server, where you can both share important and useful information with your players and integrate your plugins into it!
🌟 Features
User-Friendly Interface: Intuitive GUI for easy navigation and interaction.
Economy Integration: Supports various economy plugins for seamless financial management.
Dynamic Menu Categories: Organize functionalities into customizable categories for better user experience.
Extensive Configuration Options: Almost every aspect of the plugin can be customized, including messages, colors, sizes, fonts, tion.
Auto-Open Menu: Automatically displays the menu upon player connection, configurable per server settings.
Block Settings: Control access to the menu during building, raiding, or combat situations to enhance gameplay balance.
Multiple Economy Head Fields: Display various economic metrics such as balance, server rewards, and bank information.
Permission Management: Fine-tune permissions for different user roles to control access to features.
Localization Support: Easily translate and customize all messages for different languages.
Performance Optimized: Designed to minimize server lag while providing rich functionality.
Customizable Hooks: Integrate with existing economy systems using customizable hooks for adding, removing, and displaying balances.
Editor Position Change: Admins can now change editor positions with a simple click, choosing between left, center, or right alignments.
Command Enhancements: Commands are now processed with multiple arguments separated by "|", enabling bulk command processing.
🎮 Commands
/info – open menu
/sp.install (or) /welcome.install – open installer menu
sp.migrations – console command for updating plugin data structure when upgrading to new versions. Automatically creates backups before making changes.
sp.migrations list – shows available migrations and whether they need to run
sp.migrations run <version> – runs specific migration (e.g., "1.3.0")
sp.migrations run <version> force – forces migration even if not detected as needed
🛡️ Permissions
serverpanel.edit – allows players to edit the plugin settings and open the edit menu
serverpanelinstaller.admin - required to access the plugin installation functions
🎥 Video
🖼️ Showcase
Templates
Template V1
Template V2
Template V3
Template V5
Editor
Installer
🧪 TEST SERVER
Join our test server to view and experience all our unique features yourself!
Copy the IP Address below to start playing!
connect 194.147.90.239:28015
📊 Update Fields
ServerPanel supports dynamic update fields that can be used in your templates to display real-time information. These fields are automatically updated and can be used in text components, headers, and other interface elements.
Player Information
{online_players} – Number of currently online players
{sleeping_players} – Number of sleeping players
{all_players} – Total number of players (online + sleeping)
{max_players} – Maximum server capacity
{player_kills} – Player's kill count (requires KillRecords, Statistics, or UltimateLeaderboard)
{player_deaths} – Player's death count (requires KillRecords, Statistics, or UltimateLeaderboard)
{player_username} – Player's display name
{player_avatar} – Player's Steam ID for avatar display
Economy
{economy_economics} – Economics plugin balance
{economy_server_rewards} – ServerRewards points
{economy_bank_system} – BankSystem balance
Note: Economy fields are fully customizable in "oxide/config/ServerPanel.json" under "Economy Header Fields". You can add support for any economy plugin by configuring the appropriate hooks (Add, Balance, Remove). Custom keys can be created and used in templates just like the default ones.
Server Information
{server_name} – Server hostname
{server_description} – Server description
{server_url} – Server website URL
{server_headerimage} – Server header image URL
{server_fps} – Current server FPS
{server_entities} – Number of entities on server
{seed} – World seed
{worldsize} – World size
{ip} – Server IP address
{port} – Server port
{server_time} – Current server time (YYYY-MM-DD HH:MM:SS)
{tod_time} – Time of day (24-hour format)
{realtime} – Server uptime in seconds
{map_size} – Map size in meters
{map_url} – Custom map URL
{save_interval} – Auto-save interval
{pve} – PvE mode status (true/false)
Player Stats
{player_health} – Current health
{player_maxhealth} – Maximum health
{player_calories} – Calorie level
{player_hydration} – Hydration level
{player_radiation} – Radiation poisoning level
{player_comfort} – Comfort level
{player_bleeding} – Bleeding amount
{player_temperature} – Body temperature
{player_wetness} – Wetness level
{player_oxygen} – Oxygen level
{player_poison} – Poison level
{player_heartrate} – Heart rate
Player Position
{player_position_x} – X coordinate
{player_position_y} – Y coordinate (height)
{player_position_z} – Z coordinate
{player_rotation} – Player rotation (degrees)
Player Connection
{player_ping} – Connection time in seconds
{player_ip} – Player's IP address
{player_auth_level} – Authorization level (0=Player, 1=Moderator, 2=Admin)
{player_steam_id} – Steam ID
{player_connected_time} – Connection start time
{player_idle_time} – Idle time (HH:MM:SS)
Player States
{player_sleeping} – Is sleeping (true/false)
{player_wounded} – Is wounded (true/false)
{player_dead} – Is dead (true/false)
{player_building_blocked} – Is building blocked (true/false)
{player_safe_zone} – Is in safe zone (true/false)
{player_swimming} – Is swimming (true/false)
{player_on_ground} – Is on ground (true/false)
{player_flying} – Is flying (true/false)
{player_admin} – Is admin (true/false)
{player_developer} – Is developer (true/false)
Network & Performance
{network_in} – Network input (currently shows 0)
{network_out} – Network output (currently shows 0)
{fps} – Server FPS
{memory} – Memory allocations
{collections} – Garbage collections count
Usage Example:
You can use these fields in any text component like: "Welcome {player_username}! Server has {online_players}/{max_players} players online."
🔧 API Documentation for Developers
ServerPanel provides an API for plugin developers to integrate their plugins into the menu system.
Required Methods
API_OpenPlugin(BasePlayer player) - Main integration method that returns CuiElementContainer
OnServerPanelClosed(BasePlayer player) - Called when panel closes (cleanup)
OnServerPanelCategoryPage(BasePlayer player, int category, int page) - Called when category changes (cleanup)
OnReceiveCategoryInfo(int categoryID) - Receives your category ID
Integration Example
[PluginReference]
private Plugin ServerPanel;
private int _serverPanelCategoryID = -1;
private void OnServerInitialized()
{
ServerPanel?.Call("API_OnServerPanelProcessCategory", Name);
}
private void OnReceiveCategoryInfo(int categoryID)
{
_serverPanelCategoryID = categoryID;
}
private void OnServerPanelCategoryPage(BasePlayer player, int category, int page)
{
// Cleanup when player switches categories
}
private CuiElementContainer API_OpenPlugin(BasePlayer player)
{
var container = new CuiElementContainer();
// Create base panels (required structure)
container.Add(new CuiPanel()
{
RectTransform = {AnchorMin = "0 0", AnchorMax = "1 1"},
Image = {Color = "0 0 0 0"}
}, "UI.Server.Panel.Content", "UI.Server.Panel.Content.Plugin", "UI.Server.Panel.Content.Plugin");
container.Add(new CuiPanel()
{
RectTransform = {AnchorMin = "0 0", AnchorMax = "1 1"},
Image = {Color = "0 0 0 0"}
}, "UI.Server.Panel.Content.Plugin", "YourPlugin.Background", "YourPlugin.Background");
// Add your plugin's UI elements here
container.Add(new CuiLabel
{
RectTransform = {AnchorMin = "0.1 0.8", AnchorMax = "0.9 0.9"},
Text = {Text = "Your Plugin Interface", FontSize = 16, Align = TextAnchor.MiddleCenter, Color = "1 1 1 1"}
}, "YourPlugin.Background", "YourPlugin.Title");
// Add buttons, panels, etc. using "YourPlugin.Background" as parent
return container;
}
private void OnServerPanelClosed(BasePlayer player)
{
// Cleanup when panel closes
}
Header Update Fields
API_OnServerPanelAddHeaderUpdateField(Plugin plugin, string updateKey, Func<BasePlayer, string> updateFunction) - Registers a per-player string provider for a header placeholder. Returns true on success.
API_OnServerPanelRemoveHeaderUpdateField(Plugin plugin, string updateKey = null) - Unregisters a specific updateKey for your plugin, or all keys for your plugin when updateKey is null. Returns true on success.
Usage Example
[PluginReference]
private Plugin ServerPanel;
private void OnServerInitialized()
{
// Register a dynamic header field for each player
ServerPanel?.Call("API_OnServerPanelAddHeaderUpdateField", this, "{player_kdr}", (Func<BasePlayer, string>)(player => GetKdr(player)));
}
private string GetKdr(BasePlayer player)
{
// Compute and return the value to display in the header for this player
return "1.23";
}
Using in UI: Place your key (e.g., {player_kdr}) directly in Header Field texts. The value will be updated per player using your function.
📚 FAQ
Q: Why can't I open the menu?
A: Make sure that the plugin is installed and activated on your server. If the problem persists, contact the server administrator.
Q: How do I enable Expert Mode? (disables automatic template updates)
A: In the data file "Template.json", turn on the "Use an expert mod?" option:
"Use an expert mod?": true,
P.S. "Template.json” is located in the "oxide/data/ServerPanel" directory (if you use Oxide) or in the "carbon/data/ServerPanel" directory (if you use Carbon)
Q: I see black images with Rust logo or get error 429 when loading images. What should I do?
A: These issues occur when there are problems downloading images from the internet. To fix this, enable Offline Image Mode which will use local images instead:
Enable the mode in config:
Open "oxide/config/ServerPanel.json" (or "carbon/config/ServerPanel.json" for Carbon)
Set "Enable Offline Image Mode": true
Set up the images:
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:
Type o.reload ServerPanel (Oxide) or c.reload ServerPanel (Carbon)
Note: If using a hosting service, you may need to use their file manager or FTP to upload the files.
Q: Does ServerPanel work only with Mevent's plugins?
A: Currently, ServerPanel integrates seamlessly with Mevent's plugins (Shop, Kits, Daily Rewards, etc.). However, other developers can use the provided API to integrate their plugins into the menu system. The plugin system is designed to be extensible for third-party integrations.
Q: Why do integrated plugins (Shop, Kits) have different window sizes?
A: Different plugins may use different templates for integration. Make sure all your integrated plugins use the same template version (V1, V2, etc.) that matches your ServerPanel template. Update the template in each plugin to ensure consistent sizing.
Q: The panel displays differently for different players. How can I make it show the same on everyone's screen?
A: This issue occurs when players have different UI scale settings. To fix this and ensure consistent display for all players:
Open the "Template.json" file located in "oxide/data/ServerPanel" (or "carbon/data/ServerPanel" for Carbon)
Find the "Parent (Overlay/Hud)" setting in the "Background" section
Change the value from "Overlay" to "OverlayNonScaled"
Save the file and restart your server or reload the plugin
Q: How can I change the video displayed in the ServerPanel interface to my own custom video?
A: Yes, you can replace the default video with your own! You need to find and modify the command:
serverpanel_broadcastvideo [your_video_url]
Replace [your_video_url] with the direct link to your video. For best compatibility, we recommend hosting your video on imgur.com.
Q: My custom images are not loading or show as blank/question marks. What image hosting should I use?
A: For custom images, we recommend using imgbb.com for image hosting. Avoid Imgur and services without direct access to the image. For the most reliable experience, use Offline Image Mode with local images instead.
Q: How can I make plugin UIs open outside of the ServerPanel menu instead of inside categories?
A: You can configure buttons to execute chat commands that open plugin UIs independently. To do this:
In your button configuration, set "Chat Button": true
Set the "Commands" field to "chat.say /command" (replace "command" with the actual plugin command)
Example: To open the Cases plugin outside the menu:
"Chat Button": true
"Commands": "chat.say /cases"
This will execute the command as if the player typed it in chat, opening the plugin's interface independently rather than within the ServerPanel menu.
Q: Text in V4 template is shifting or sliding out of place. How can I fix this?
A: This issue occurs when text width isn't properly configured. ServerPanel provides "TITLE LOCALIZATION" settings to control text width for categories and pages:
Open the ServerPanel editor (click the "ADMIN MODE" button to open the edit menu)
Select the category or page you want to edit (click to "EDIT CATEGORY" or "EDIT PAGE" button)
In the editor, find the "TITLE LOCALIZATION" section
For each language (en, ru, etc.), you'll see three columns:
LANGUAGE - The language code
TEXT - The localized text content
WIDTH (px) - The width setting in pixels
Adjust the "WIDTH (px)" value to match your text length. Longer text requires larger width values
Save your changes and test in-game
Tip: Start with a width value around 100-150 pixels for short text, and increase it for longer titles. You can adjust this value until the text displays correctly without shifting.
$9.99
Subway Event
Subway Event is a fully featured PvE event for the Rust subway system, transforming ordinary underground tunnels into a dangerous combat zone filled with valuable rewards.
During the event, a Locked Crate randomly appears inside one of the subway tunnels, protected by armed NPC guards. The encounter is driven by a new dynamic Difficulty System, meaning the number of guards, bomber frequency, hacking time, and the final loot will scale based on the randomly selected difficulty. Players must fight through the defenders, initiate the hack, and hold their position until the hacking process is complete.
However, surviving won't be easy.
While the crate is being hacked, suicide bombers periodically spawn and rush toward nearby players, attempting to explode and deal massive damage. If every player leaves the event area, a return timer begins. Failing to return before the timer expires will completely reset the event: the crate is recreated, all guards respawn, and the hacking process starts over from the beginning.
This creates an intense PvE experience where players must secure and defend the area until the very end.
Features
Random subway tunnel location selection.
Automatic Locked Crate spawning.
Dynamic Expandable Difficulty System (Easy, Normal, Hard, Nightmare by default, but completely customizable — add, remove, or edit as many levels as you want!).
Difficulty-based Scaling: Each difficulty has its own chance to roll, guard/bomber counts, bomber damage, hack time, and custom loot table.
Dynamic NPC Spawning: Spawn as many NPC guards and bombers as you configure; the plugin dynamically distributes them along the tunnel.
Notify Plugin Support for modern UI announcements.
Customizable Chat Prefix with color support.
Fully customizable crate loot per difficulty.
Option to remove the default crate loot.
Automatic placement of barricades and environmental objects.
Atmospheric smoke effects.
Multiple groups of NPC guards.
Dedicated suicide bomber NPCs that spawn in waves during the hack.
Event zone monitoring.
Players leaving the event area trigger a return countdown.
Automatic event reset if no players return in time.
Guard respawn after the event resets.
Automatic event completion once the crate has been fully looted.
Automatic event scheduling.
Manual event control through chat commands.
Map marker displaying the event location.
Oxide permission support.
Fully configurable through the configuration file.
Commands
/subway start - Chat command
subwayevent start - Console command
Starts the event.
/subway stop - Chat command
subwayevent stop - Console command
Stops the currently active event.
Permissions
subwayevent.admin
(Used only when permission checks are enabled.)
API & Hooks
SubwayEvent provides API hooks that allow server owners and developers to easily integrate the event with external UI plugins (like Server HUD), custom reward managers, or economy systems (Economics / ServerRewards):
OnSubwayEventStarted - Called when the subway event successfully spawns.
OnSubwayEventStopped - Called when the event is stopped or cleaned up.
OnSubwayEventCompleted(BasePlayer player, HackableLockedCrate lootedCrate) - Called when a player successfully completes the event by looting the crate.
Localization
The plugin includes full localization support for:
English
Russian
All in-game messages are fully translated and automatically displayed according to the server language.
Configuration
The configuration file allows you to customize almost every aspect of the event, including:
Custom Difficulty Profiles (Add/Remove difficulties, adjust spawn chances).
Difficulty-Specific Settings: Custom crate hacking duration, bomber wave intervals, bomber damage, armor calculations, and NPC limits for each difficulty.
Difficulty-Specific Loot Tables: Complete loot control per difficulty (item amounts, drop chances, and skin IDs).
Chat & UI Customization: Chat Prefix settings and Notify Information Type ID support.
Automatic event interval & Event lifetime.
Maximum allowed distance from the crate during hacking & Return timer.
Map marker radius.
Enable or disable NPC spawning globally.
Guard NPC & Suicide Bomber presets.
Option to remove the default crate loot.
Permission requirement for chat commands.
CONFIG EXAMPLE
PvE Mode Support
The plugin features full built-in compatibility with PveMode. When PveMode is installed on your server, the event automatically generates a dedicated PVE zone upon spawning. You can fully customize all PVE rules, permissions, damage scaling, crate hacking restrictions, and owner status settings directly through the plugin configuration file.
Dependencies
Required Dependency:
NPC Spawn
Subway Event requires the NPC Spawn plugin to function. The event relies on it to spawn all NPC guards and bomber units. Without NPC Spawn, the plugin will not work.
The plugin package includes a set of ready-to-use NPC presets located inside the Data/Presets folder. These presets are fully configured and can be used immediately after installation.
Server owners can freely modify these presets using the built-in functionality provided by NPC Spawn, allowing them to customize equipment, behavior, health, weapons, and other NPC properties to better fit their server.
TELEGRAM CHANNEL
Hello everyone!
This is already my second project, and I’ve put a lot of heart into it. My team and I have worked hard to make it as interesting as possible and to include even more bases. Inside, you’ll find very cool features and lifehacks, so I can guarantee that once you purchase this package, you’ll truly enjoy using it.
We have focused on creating more level 4, 5, and 6 bases, as these are the most popular choices!
As mentioned before, this package also includes the acquisition and configuration for the level 6 pack—something brand new that hasn't been seen before. That’s why we highly recommend it!
Setup Guide for Your New Bases
To ensure a clean installation, start by disabling the current plugin. Enter the following command into your server console: o.unload RaidableBases.
If you have used this plugin before, it is essential to clear out any old settings. Please delete the following:
The configuration file: oxide/config/RaidableBases.json
The entire data directory: oxide/data/RaidableBases/
Now, access your server files via FTP and locate the main /oxide/ directory. Inside this download, you will see two folders: config and data. Simply drag and drop these into your server's /oxide/ folder. When prompted by your FTP client, choose "Overwrite" or "Merge" to ensure the new files are correctly placed.
Once the transfer is complete, reactivate the plugin by typing: o.reload RaidableBases. You should see the updated loot tables appearing in the console logs.
To verify that the bases have been recognized, use the command: rb.config list. This will display all the new schematic files now located in oxide/data/copypaste/. If the list appears empty, please double-check your file paths and try the process again.
Thank you for appreciating our work and for standing by us!
$18.99
NPC traders & shops
Build a trader where you stand — the whole shop, in-game
Walk to a spot, type one command, and a named NPC vendor is standing there wearing your outfit. Everything after that — every lot, price, skin, stock counter and wipe limit — is edited by looking at him and clicking. No JSON, no reloads, no restart. Pin him to a monument and he finds the same corner on every new map.
17
Fields per lot
3
Economy plugins supported
99
Lots per single purchase
1
Required dependency — zero on Carbon
✓
The whole shop is built in-game — add, reorder, copy and delete lots by clicking
✓
Traders pinned to monuments — the same vendor at the same spot after every wipe
✓
Stock that refills on a timer — and survives a restart at the count it was on
✓
Sell items, currency or commands — kits and ranks are just another lot
✓
On the map like a vending machine — players see the vendor and what he sells
Video
See it in action
01 — The trader
A vendor that belongs to your map
Not a wooden box with a UI on it — a standing NPC with a name, an outfit and a place in the world.
Spawned where you stand, dressed like you
One command drops a trader at your feet, facing where you face, wearing a copy of your clothes and holding whatever is in your hands. Change your own outfit later and one button re-copies it onto him — another button hands the set back to you.
Pinned to a monument, not to coordinates
Spawn him inside Bandit Camp, Outpost or any monument and his position is stored relative to it. Next wipe, on a completely different map, he stands in exactly the same corner of that monument — no repositioning, no re-spawning.
Visible on the map, with his stock
Toggle the vending marker and the trader shows up on the map under his display name, with his item-for-item lots listed on the map screen — exactly like a vending machine, so players know where to go and what for.
Locked to a group, if you want
Give a trader a permission and only that group can open him — with your own refusal message instead of the default one. A VIP-only black market is one field.
Bulletproof, literally
Traders can't be shot, damaged, targeted by NPCs or destroyed, and they aren't written into the map save — so they never duplicate, never leave corpses and never end up as debris in your save file.
02 — Lots and pricing
Any price for anything
A lot is three item slots — what's sold, what it costs, and an optional second cost. Each slot can be a real item, a skinned item, or your server currency.
Two-item prices
Charge 500 metal and 20 scrap for one lot. Turn the second slot off with a single value when you don't need it.
Currency in either direction
Flip a slot to money and the lot is priced in ServerRewards, Economics or IQEconomic. Flip the sale slot to money instead and the trader buys from players — a scrap-to-cash buyback counter, same editor, no second plugin.
Skins, custom names, custom icons
Every slot takes a skin ID, so a skinned item is a different product with a different price. Override the display name, point the icon at any image URL, and attach a description of up to 2500 characters that players open with an info button.
Buy in bulk without spam-clicking
A per-lot multiplier from 1 to 99 with plus, minus and a typed field. It clamps itself to what the player can actually afford, what's left in stock and what their wipe limit allows, so the number on screen is always a purchase that will go through. Oversized results are split into proper stacks.
Permission discounts
Map any permission to a percentage. Discounted players see an OFF badge on the price and pay less on both price slots; stacked groups resolve to the single best discount.
Copy a lot, or a whole shop
Copy one lot or every lot at once, walk to another trader and paste. Reorder with arrows, delete with one click, and hit preview to see the shop exactly as a player will before you close it.
03 — Stock and limits
Scarcity you can schedule
An unlimited shop is a vending machine with extra steps. Two independent systems keep a trader from flooding your wipe.
Stock that ticks back up
Per lot: a maximum stock, a refill interval in seconds and how much comes back each interval. Sell out and the button turns grey with OUT OF STOCK until it recovers. Ten rockets an hour, and the first player there gets them.
Per-player wipe limits
A separate cap on how many of a lot each player may buy for the whole wipe, counted per skin. One VIP kit per person per wipe, enforced without a second plugin and reset automatically on the next map.
Counts survive a reboot
Remaining stock, refill timers and everyone's wipe counters are written on every server save and on unload. A restart doesn't hand out a fresh batch of rockets.
04 — Beyond items
Sell anything a command can do
Kits, ranks, teleports, cars, raid bases — if another plugin exposes a command, it's a lot.
Run it now, or wrap it as a gift
Put a command on a lot and choose: fire it the moment the purchase clears, or hand the player a wrapped present they can save, carry and unwrap whenever they want — the command runs on unwrap. Give it a name and an icon and it looks like a real product in their inventory. %steamid% is substituted for you.
A command on the trader himself
Fire a command every time a player opens a given trader — a greeting in chat, a quest check, a log line. Also keyed by Steam ID.
Item search that finds things
The item picker searches display names and shortnames as you type and shows icons, so filling a shop doesn't mean keeping a shortname list open on your second monitor.
Reliability
Built to be left alone
✓
Oxide and Carbon — on Carbon the built-in image database is used and no extra plugin is needed at all
✓
Nothing is written into the map save — traders are recreated from config on boot, so they can't duplicate or survive as junk entities
✓
Clean unload — every trader is removed, open interfaces are closed for all players and stock is saved first
✓
One editor at a time — while an admin has a shop open it's locked for everyone else, so two people can't overwrite each other's lots
✓
A missing monument disables its trader with a console warning instead of dropping him into the ocean
✓
Optional 1-second buy cooldown against double-clicks and click macros
Commands
Three admin commands, none for players
All three require the npcshop.admin permission. Players never type anything — they walk up to the trader and press use. Command names are configurable.
/settrader
Spawn a trader at your position, in your clothes
/remtrader
Look at a trader and delete him
/newtraderpos
Look at a trader to select him, walk to the new spot, then /newtraderpos update. cancel aborts, and /newtraderpos <display name> moves a trader by name from anywhere
npcshop.admin
Spawn, edit, move and remove traders
npcshop.vip
15% discount by default — rename it, change the number, or add as many discount tiers as you like
Hooks & API
For plugin developers
void OnNPCShopItemBuy(BasePlayer player, Item saleItem, Item priceItem, Item additionalPriceItem)
Fired after a successful item-for-item purchase, with the final amounts already multiplied and discounted. additionalPriceItem is null when the lot has no second price. Currency purchases don't raise it — track those through your economy plugin.
Questions
Before you buy
What do I need installed?
On Oxide, ImageLibrary — it's free and the plugin tells you in console if it's missing. On Carbon, nothing. MonumentFinder is optional and only needed for monument-pinned traders. An economy plugin (ServerRewards, Economics or IQEconomic) is optional and only needed for money prices; the right one is detected automatically.
Do my traders survive a wipe?
Yes. Traders, lots and prices live in the config, so they come back on the new map. Monument-pinned ones land in the right place automatically; free-standing ones keep their world coordinates and may need one /newtraderpos if the terrain changed. Stock counters and per-player wipe limits reset on a new map, which is the point of them.
Can players sell things to the trader?
Yes, in both forms. Item-for-item barter is what a lot does by default, and setting the sale slot to money turns the lot into a buyback: the player hands over items and gets currency.
Can I sell a kit, a rank or a teleport?
Anything that has a command. Either it runs immediately on purchase, or the player receives a named, custom-iconed present that runs it when unwrapped — which also makes the purchase tradeable between players.
How many traders and lots can I have?
No limit on either. The shop interface scrolls, and lots are reordered with arrow buttons.
Why don't all my lots show on the map marker?
The marker is a real vending-machine listing, and Rust's own format can only express one item for one item. Lots priced in currency, or with a second price item, are hidden from the marker — they work normally in the shop itself.
Can I run different shops for different groups?
Yes. Each trader takes its own permission and its own refusal message, so a VIP trader can stand next to the public one and simply refuse everyone else.
Do I ever have to edit the config file?
Only for server-wide settings: discount tiers, the currency icon, the buy cooldown, and a trader's access permission or greeting command. Everything about the goods themselves — lots, prices, skins, names, icons, stock, limits, descriptions — is done in-game.
$9.99
An excellent plugin for remote trading between players with extensive functionality.
The ability to log successful trades;
The ability to create new permissions;
The ability to customize permissions flexibly, including both new and existing ones;
The ability to limit slots in trade;
The ability to configure the method(Personal, CommonMinimum, CommonMaximum) for limiting the number of slots;
The ability to set a cooldown on sending trade requests;
The ability to configure the method(InitiatorOnly, TargetOnly, Both) for applying cooldown to players;
The ability to purchase a bypass for the trade request cooldown;
The ability to set a daily limit on sending trade requests;
The ability to purchase additional trade requests after reaching the daily limit;
The ability to forbid trading when wounded;
The ability to forbid trading while swimming;
The ability to forbid trading while mounted on certain seats;
The ability to forbid trading in specified monuments, by name or by monument type;
The ability to forbid trading in someone else's building privileges;
The ability to forbid trading when taking damage;
The ability to forbid trading during a combat block;
The ability to forbid trading during a raid block;
The ability to forbid certain items from being traded;
The ability to automatically generate language files for specified languages(with content filled in English);
The ability to set an effect upon receiving a trade request;
The ability to change the effect upon a successful trade completion;
The ability to display a status bar while waiting for a trade;
The ability to choose between bar types(TimeCounter and TimeProgressCounter);
The ability to specify the order of the bar;
The ability to change the height of the bar;
The ability to customize the color and transparency of the background;
The ability to set a material for the background;
The ability to switch between CuiRawImageComponent and CuiImageComponent for the image;
The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images);
The ability to set own image and customize the color and transparency of the image;
The ability to set sprite instead of the image;
The ability to customize the color, size and font of the text.
{
"Chat command": "trade",
"List of 'accept' commands": [
"accept",
"yes"
],
"List of 'cancel' commands": [
"cancel",
"no"
],
"Is it worth enabling GameTips for messages?": true,
"Is it worth using Notify plugins for messages instead of the vanilla UI?": false,
"Specify the regular message type for notify": 0,
"Specify the warning message type for notify": 1,
"Is it worth using the AdvancedStatus plugin?": true,
"Is it worth saving trade logs to a file?": true,
"List of language keys for creating language files": [
"en"
],
"Slot limit calculation mode(Personal, CommonMinimum, CommonMaximum)": "CommonMaximum",
"Trade cooldown apply mode(InitiatorOnly, TargetOnly, Both)": "InitiatorOnly",
"Is it worth checking the target's trade cooldown?": false,
"Time in seconds given to respond to a trade request": 15.0,
"Price to skip 60 seconds of the trade request cooldown": 10.0,
"The prefab name for the effect triggered when a trade request is received": "assets/bundled/prefabs/fx/invite_notice.prefab",
"The prefab name for the effect triggered when a trade is successfully completed": "assets/prefabs/building/wall.frame.shopfront/effects/metal_transaction_complete.prefab",
"List of mount names where trading is prohibited": [
"horsesaddle",
"horsesaddlerear",
"bikedriverseat",
"bikepassengerseat",
"motorbikedriverseat",
"motorbikepassengerseat",
"modularcardriverseat",
"modularcarpassengerseatleft",
"modularcarpassengerseatright",
"modularcarpassengerseatlesslegroomleft",
"modularcarpassengerseatlesslegroomright",
"modularcarpassengerseatsidewayleft",
"miniheliseat",
"minihelipassenger",
"transporthelipilot",
"transporthelicopilot",
"attackhelidriver",
"attackheligunner",
"submarinesolodriverstanding",
"submarineduodriverseat",
"submarineduopassengerseat",
"snowmobiledriverseat",
"snowmobilepassengerseat",
"snowmobilepassengerseat tomaha",
"workcartdriver",
"locomotivedriver",
"craneoperator",
"batteringramseat",
"ballistagun.entity"
],
"Status. Bar - Display time in seconds. A value of 0 keeps it visible until the cooldown ends": 15.0,
"Status. Bar - Type(TimeProgressCounter or TimeCounter)": "TimeCounter",
"Status. Bar - Height": 26,
"Status. Bar - Order": 10,
"Status. Background - Color(Hex or RGBA)": "#EFC570",
"Status. Background - Transparency": 0.7,
"Status. Background - Material(Leave empty to disable)": "",
"Status. Image - Url": "https://gitlab.com/IIIaKa/images/-/raw/main/StatusBars/Trader_Request.png",
"Status. Image - Local(Leave empty to use Image_Url)": "Trader_Request",
"Status. Image - Sprite(Leave empty to use Image_Local or Image_Url)": "",
"Status. Image - Is raw image": false,
"Status. Image - Color(Hex or RGBA)": "#EFC570",
"Status. Image - Transparency": 1.0,
"Status. Image Outline - Color(Hex or RGBA)": "0.1 0.3 0.8 0.9",
"Status. Image Outline - Transparency": 1.0,
"Status. Image Outline - Distance(Leave empty to disable). Example '0.75 0.75'": "",
"Status. Text - Size": 12,
"Status. Text - Color(Hex or RGBA)": "#FFFFFF",
"Status. Text - Transparency": 1.0,
"Status. Text - Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
"Status. Text - Offset Horizontal": 0,
"Status. Text Outline - Color(Hex or RGBA)": "#000000",
"Status. Text Outline - Transparency": 1.0,
"Status. Text Outline - Distance(Leave empty to disable)": "",
"Status. SubText - Size": 12,
"Status. SubText - Color(Hex or RGBA)": "#FFFFFF",
"Status. SubText - Transparency": 1.0,
"Status. SubText - Font": "RobotoCondensed-Bold.ttf",
"Status. SubText Outline - Color(Hex or RGBA)": "0.5 0.6 0.7 0.5",
"Status. SubText Outline - Transparency": 1.0,
"Status. SubText Outline - Distance(Leave empty to disable)": "",
"Status. Progress - Background Color(Hex or RGBA)": "1 1 1 0.15",
"Status. Progress - Background Transparency": 0.15,
"Status. Progress - Reverse": true,
"Status. Progress - Color(Hex or RGBA)": "#EFC570",
"Status. Progress - Transparency": 0.7,
"Status. Progress - OffsetMin": "0 0",
"Status. Progress - OffsetMax": "0 0",
"List of trade permissions": [
{
"Permission Name": "trader.default",
"Number of available trade slots": 3,
"Cooldown time(in seconds) before next trade": 600.0,
"Daily trade request limit. A value of 0 disables the limit": 50,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 5.0,
"Is it worth forbidding trade if the player is in a wounded state?": true,
"Is it worth forbidding trade if the player is swimming?": true,
"Is it worth forbidding trade if the player is mounted?": true,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": true,
"Is it worth forbidding trade if the player has taken damage?": true,
"Is it worth forbidding trade if the player has combat block?": true,
"Is it worth forbidding trade if the player has raid block?": true,
"List of monuments where trade is forbidden": null,
"List of monument categories where trade is forbidden": [
"RadTown",
"RadTownWater",
"RadTownSmall",
"TunnelStation",
"Custom"
],
"List of forbidden trade items": [
"rock"
]
},
{
"Permission Name": "trader.vip",
"Number of available trade slots": 6,
"Cooldown time(in seconds) before next trade": 450.0,
"Daily trade request limit. A value of 0 disables the limit": 100,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 2.5,
"Is it worth forbidding trade if the player is in a wounded state?": true,
"Is it worth forbidding trade if the player is swimming?": true,
"Is it worth forbidding trade if the player is mounted?": true,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": true,
"Is it worth forbidding trade if the player has taken damage?": true,
"Is it worth forbidding trade if the player has combat block?": true,
"Is it worth forbidding trade if the player has raid block?": true,
"List of monuments where trade is forbidden": null,
"List of monument categories where trade is forbidden": [
"RadTown",
"RadTownWater",
"TunnelStation"
],
"List of forbidden trade items": [
"rock"
]
},
{
"Permission Name": "realpve.vip",
"Number of available trade slots": 9,
"Cooldown time(in seconds) before next trade": 300.0,
"Daily trade request limit. A value of 0 disables the limit": 0,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 0.0,
"Is it worth forbidding trade if the player is in a wounded state?": false,
"Is it worth forbidding trade if the player is swimming?": false,
"Is it worth forbidding trade if the player is mounted?": false,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": false,
"Is it worth forbidding trade if the player has taken damage?": false,
"Is it worth forbidding trade if the player has combat block?": false,
"Is it worth forbidding trade if the player has raid block?": false,
"List of monuments where trade is forbidden": [
"oilrig_1"
],
"List of monument categories where trade is forbidden": null,
"List of forbidden trade items": [
"rock"
]
}
],
"Version": {
"Major": 0,
"Minor": 1,
"Patch": 4
}
}
EN:
{
"CmdNotAllowed": "You do not have permission to use this command!",
"CmdPlayerNotFound": "Player '{0}' not found! You must provide the player's name or ID.",
"CmdMultiplePlayers": "Multiple players found: {0}",
"CmdEconomicsNotEnough": "Not enough funds!",
"CmdMain": "Available trade commands:\n\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>bars *boolValue*(optional)</color> - Toggle status bar display\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>*nameOrId*</color> - Send a trade request to the specified player\n<color=#D1CBCB>/trade</color> <color=#83BA7C>accept/yes</color> - Accept a pending trade request\n<color=#D1CBCB>/trade</color> <color=#DE5757>cancel/no</color> - Decline a pending or active trade\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>limits</color> - View your trade limits\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy limits *amount*(optional)</color> - Purchase additional trade requests\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy cd *amount*(optional)</color> - Purchase a 60 second(* by amount) cooldown skip\n\n--------------------------------------------------",
"CmdBarsEnabled": "Status bar display enabled!",
"CmdBarsDisabled": "Status bar display disabled!",
"CmdDailyLimitExtra": "You have exceeded the daily limit({0}) for sending trade requests!\n<size=10>However, you can buy additional requests using the <color=#D1AB9A>/trade buy limits</color> command for <color=#D1CBCB>${1}</color></size>",
"CmdDailyLimit": "You have exceeded the daily limit({0}) for sending trade requests!",
"CmdCooldownSkip": "You must wait {0} seconds before sending another trade request!\n<size=10>However, you can skip the cooldown using the <color=#D1AB9A>/trade buy cd</color> command for <color=#D1CBCB>${1}</color> per 60 seconds</size>",
"CmdCooldown": "You must wait {0} seconds before sending another trade request!",
"CmdWoundBlock": "You can't trade while wounded!",
"CmdSwimming": "You can't trade while swimming!",
"CmdMountBlock": "You can't trade while mounted here!",
"CmdBuildingBlock": "You can't trade inside someone else's base!",
"CmdDamageBlock": "You can't trade while taking damage!",
"CmdCombatBlock": "You can't trade during combat block!",
"CmdRaidBlock": "You can't trade during a raid block!",
"CmdAcceptEmpty": "You have no pending trade requests!",
"CmdAcceptOngoing": "You already have an active trade with player '<color=#D1AB9A>{0}</color>'!",
"CmdDeclineEmpty": "You have no pending or active trades!",
"CmdDecline": "Trade between you and player '<color=#D1AB9A>{0}</color>' has been canceled!",
"CmdDeclineOther": "Player '<color=#D1AB9A>{0}</color>' canceled the trade with you!",
"CmdSendSelf": "You cannot send a trade request to yourself!",
"CmdSendNoRespond": "Player '<color=#D1AB9A>{0}</color>' has not responded to your trade request!",
"CmdSendAlredyHave": "You already have a pending or active trade with player '<color=#D1AB9A>{0}</color>'!\n<size=10><color=#83BA7C>/trade yes</color> - Accept the pending trade request\n<color=#DE5757>/trade no</color> - Decline the pending or active trade</size>",
"CmdSendTargetNotAllowed": "Player '<color=#D1AB9A>{0}</color>' does not have permission to use trading!",
"CmdSendTargetAlredyHave": "Player '<color=#D1AB9A>{0}</color>' already has a pending or active trade with player '<color=#D1AB9A>{1}</color>'!",
"CmdSendTargetHasCooldown": "Player '<color=#D1AB9A>{0}</color>' has an active cooldown, {1} seconds remaining!",
"CmdSendTo": "Trade request successfully sent to player '<color=#D1AB9A>{0}</color>'.",
"CmdSendFrom": "Player '<color=#D1AB9A>{0}</color>' has sent you a trade request.\n<size=10><color=#83BA7C>/trade yes</color> - Accept the pending trade request\n<color=#DE5757>/trade no</color> - Decline the pending or active trade</size>",
"CmdPurchaseNotLimited": "You haven't reached your daily limit yet!",
"CmdPurchaseHaveExtra": "You still have {0} additional trade requests! Use them before purchasing more.",
"CmdPurchaseLimitsNotAllowed": "Purchasing additional trade requests is unavailable!",
"CmdPurchasedLimits": "You have successfully purchased <color=#D1CBCB>{0}</color> trade requests!\n<size=10>Now you have <color=#D1CBCB>{1}</color> additional trade requests</size>",
"CmdPurchaseNoCooldown": "You don't have a cooldown for sending trade requests!",
"CmdPurchaseCooldownNotAllowed": "Purchasing a cooldown skip for trade requests is not available!",
"CmdPurchasedCooldown": "You have successfully purchased a cooldown skip for <color=#D1CBCB>{0} seconds</color> for trade requests!\n<size=10>Now you need to wait <color=#D1CBCB>{1} seconds</color></size>",
"CmdMyLimits": "Your trade request limits:\n\n<color=#D1CBCB>Cooldown</color> - <color=#D1AB9A>{0} sec</color>\n<color=#D1CBCB>Daily Limit</color> - <color=#D1AB9A>{1}</color>\n\n--------------------------------------------------",
"BarInitiator": "Trade to: {0}",
"BarTarget": "Trade from: {0}",
"BarCooldown": "Trade cooldown:",
"MsgStarted": "You have started a trade with player '<color=#D1AB9A>{0}</color>'!",
"MsgCompleted": "Trade with player '<color=#D1AB9A>{0}</color>' completed successfully!",
"MsgCanceled": "Player '<color=#D1AB9A>{0}</color>' canceled the trade!"
}
RU:
{
"CmdNotAllowed": "У вас недостаточно прав для использования этой команды!",
"CmdPlayerNotFound": "Игрок '{0}' не найден! Вы должны указать имя или ID игрока.",
"CmdMultiplePlayers": "Найдено несколько игроков: {0}",
"CmdEconomicsNotEnough": "Не достаточно средств!",
"CmdMain": "Доступные команды для трейда:\n\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>bars *булевоеЗначение*(опционально)</color> - Переключение отображения статус баров\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>*имяИлиАйди*</color> - Отправить запрос на трейд указанному игроку\n<color=#D1CBCB>/trade</color> <color=#83BA7C>accept/yes</color> - Принять ожидающий запрос на трейд\n<color=#D1CBCB>/trade</color> <color=#DE5757>cancel/no</color> - Отклонить ожидающий или активный трейд\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>limits</color> - Узнать свои лимиты\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy limits *количество*(опционально)</color> - Докупить дополнительное количество трейд запросов\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy cd *количество*(опционально)</color> - Купить пропуск 60 секунд(* на количество) задержки перед отправкой трейд запросов\n\n--------------------------------------------------",
"CmdBarsEnabled": "Отображение статус баров включено!",
"CmdBarsDisabled": "Отображение статус баров выключено!",
"CmdDailyLimitExtra": "Вы превысили допустимую дневную норму({0}) на отправку трейд запросов!\n<size=10>Но вы можете купить дополнительные запросы с помощью команды <color=#D1AB9A>/trade buy limits</color> за <color=#D1CBCB>{1}$</color></size>",
"CmdDailyLimit": "Вы превысили допустимую дневную норму({0}) на отправку трейд запросов!",
"CmdCooldownSkip": "Перед отправкой нового запроса на трейд вам необходимо подождать {0} секунд!\n<size=10>Но вы можете купить пропуск задержки с помощью команды <color=#D1AB9A>/trade buy cd</color> за <color=#D1CBCB>{1}$</color> за каждые 60 секунд</size>",
"CmdCooldown": "Перед отправкой нового запроса на трейд вам необходимо подождать {0} секунд!",
"CmdWoundBlock": "Вам запрещено пользоваться трейдом в предсмертном состоянии!",
"CmdSwimming": "Вам запрещено пользоваться трейдом в воде!",
"CmdMountBlock": "Вам запрещено пользоваться трейдом сидя в данном месте!",
"CmdBuildingBlock": "Вам запрещено пользоваться трейдом в чужой базе!",
"CmdDamageBlock": "Вам запрещено пользоваться трейдом при получении урона!",
"CmdCombatBlock": "Вам запрещено пользоваться трейдом во время боя!",
"CmdRaidBlock": "Вам запрещено пользоваться трейдом во время рейда!",
"CmdAcceptEmpty": "У вас нет ожидающих запросов на трейд!",
"CmdAcceptOngoing": "У вас уже есть активный трейд с игроком '<color=#D1AB9A>{0}</color>'!",
"CmdDeclineEmpty": "У вас нет ожидающих или активных трейдов!",
"CmdDecline": "Трейд между вами и игроком '<color=#D1AB9A>{0}</color>' отменён!",
"CmdDeclineOther": "Игрок '<color=#D1AB9A>{0}</color>' отменил трейд с вами!",
"CmdSendSelf": "Нельзя отправить трейд запрос самому себе!",
"CmdSendNoRespond": "Игрок '<color=#D1AB9A>{0}</color>' не ответил на ваш трейд запрос!",
"CmdSendAlredyHave": "У вас уже есть ожидающий или активный трейд с игроком '<color=#D1AB9A>{0}</color>'!\n<size=10><color=#83BA7C>/trade yes</color> - Принять ожидающий запрос на трейд\n<color=#DE5757>/trade no</color> - Отклонить ожидающий или активный трейд</size>",
"CmdSendTargetNotAllowed": "У игрока '<color=#D1AB9A>{0}</color>' недостаточно прав для использования обмена!",
"CmdSendTargetAlredyHave": "У игрока '<color=#D1AB9A>{0}</color>' уже есть ожидающий или активный трейд с игроком '<color=#D1AB9A>{1}</color>'!",
"CmdSendTargetHasCooldown": "У игрока '<color=#D1AB9A>{0}</color>' имеется активный кулдаун, осталось {1} секунд!",
"CmdSendTo": "Игроку '<color=#D1AB9A>{0}</color>' был успешно отправлен запрос на трейд.",
"CmdSendFrom": "Игрок '<color=#D1AB9A>{0}</color>' отправил вам запрос на трейд.\n<size=10><color=#83BA7C>/trade yes</color> - Принять ожидающий запрос на трейд\n<color=#DE5757>/trade no</color> - Отклонить ожидающий или активный трейд</size>",
"CmdPurchaseNotLimited": "Вы ещё не исчерпали свой дневной лимит!",
"CmdPurchaseHaveExtra": "У вас ещё есть {0} дополнительных трейд запросов! Используйте их прежде, чем покупать новые.",
"CmdPurchaseLimitsNotAllowed": "Покупка дополнительных трейд запросов недоступна!",
"CmdPurchasedLimits": "Вы успешно докупили <color=#D1CBCB>{0}</color> трейд запросов!\n<size=10>Теперь у вас <color=#D1CBCB>{1}</color> дополнительных трейд запросов</size>",
"CmdPurchaseNoCooldown": "У вас нет задержки на отправку трейд запросов!",
"CmdPurchaseCooldownNotAllowed": "Покупка пропуска задержки на трейд запросы недоступна!",
"CmdPurchasedCooldown": "Вы успешно купили пропуск на <color=#D1CBCB>{0} секунд</color> задержки для трейд запросов!\n<size=10>Теперь вам нужно подождать <color=#D1CBCB>{1} секунд</color></size>",
"CmdMyLimits": "Ваши лимиты трейд запросов:\n\n<color=#D1CBCB>Время задержки</color> - <color=#D1AB9A>{0} сек</color>\n<color=#D1CBCB>Дневной лимит</color> - <color=#D1AB9A>{1}</color>\n\n--------------------------------------------------",
"BarInitiator": "Трейд с: {0}",
"BarTarget": "Трейд от: {0}",
"BarCooldown": "Задержка трейда:",
"MsgStarted": "Вы начали трейд с игроком '<color=#D1AB9A>{0}</color>'!",
"MsgCompleted": "Трейд с игроком '<color=#D1AB9A>{0}</color>' успешно завершён!",
"MsgCanceled": "Игрок '<color=#D1AB9A>{0}</color>' отменил трейд!"
}
bars *boolValue*(optional) - Toggle status bar display.
*nameOrId* - Send a trade request to the specified player.
accept/yes - Accept a pending trade request.
cancel/no - Decline a pending or active trade.
limits - View your trade limits.
buy limits *amount*(optional) - Purchase additional trade requests.
buy cd *amount*(optional) - Purchase a 60 second(* by amount) cooldown skip.
Example:
/trade bars true
/trade iiiaka
/trade yes
/trade limits
/trade buy limits 1
/trade buy limits 0.5
Watchlist is a lightweight but powerful tool that alerts admins when specific players connect to the server. Whether you're online or offline, you'll get real-time in-game notifications and Discord alerts with fully configurable message templates and role pings. The built-in UI makes managing the watchlist easy, with support for sorting, filtering, teleporting, and note-taking. Players can be added or removed manually or straight from RustAdmin with custom commands. Very useful tool to keep you and your staff one step ahead.
Configuration
{
"Discord Webhook URL": "https://discord.com/api/webhooks/your/webhook/url", (Your Webhook URL)
"Ping Role": false, (Whether to ping a role when player comes online on discord, e.g: @Admin)
"Role ID": 0, (Discord Roll Id to ping)
"Purge Watchlist on Wipe": false,
"Purge Players List on Wipe": false,
"Enable UI": true,
"UI Color Scheme (Options: dark, light, rust)": "dark",
"Custom Colors": {
"PrimaryBackground": "0 0 0 0.95",
"SecondaryBackground": "0.15 0.15 0.15 1",
"HeaderBackground": "0.1 0.1 0.1 1",
"ButtonPrimary": "0.2 0.7 0.2 0.9",
"ButtonSecondary": "0.3 0.3 0.3 1",
"ButtonDanger": "0.7 0.2 0.2 0.9",
"TextPrimary": "1 1 1 1",
"TextSecondary": "0.7 0.7 0.7 1",
"OnlineIndicator": "0.2 0.8 0.2 1",
"OfflineIndicator": "0.8 0.2 0.2 1",
"RowEven": "0.12 0.12 0.12 0.95",
"RowOdd": "0.15 0.15 0.15 0.95",
"ActiveItem": "0.4 0.4 0.4 1",
"AlertBackground": "0.8 0.2 0.2 0.95",
"AlertText": "1 1 1 1",
"AlertPanel": "0.11 0.11 0.12 0.98",
"AlertHeader": "0.62 0.17 0.17 1",
"AlertDivider": "0.25 0.25 0.27 1",
"AlertLabel": "0.6 0.6 0.63 1"
},
"Alert Position": {
"AnchorMin": "0.775 0.60",
"AnchorMax": "0.985 0.90"
},
"Alert Cursor Enabled": false,
"UI Scale": 1.0,
"Main UI Position": {
"AnchorMin": "0.2 0.1",
"AnchorMax": "0.8 0.9"
},
"UI Scale": 1.0,
"Main UI Position": {
"AnchorMin": "0.2 0.1",
"AnchorMax": "0.8 0.9"
},
"Font Size": {
"Title": 20,
"Header": 14,
"Normal": 12,
"Small": 10
},
"UI Animation": true,
"Enable Sound Alert": true,
"Alert Sound": "assets/bundled/prefabs/fx/notice/item.select.fx.prefab",
"Alert Duration (seconds)": 10.0,
"Show Visual Alert": true,
"Send Discord Add/Remove Notifications": true,
"Max Cached Players": 3000,
"Player Cache Retention Days (0 = disabled)": 30,
"Player Cache Save Delay Seconds": 60,
"Alert Cooldown Seconds": 120,
"Startup Alert Grace Seconds": 60,
"Auto Expire Days (0 = disabled)": 0,
"Send Prune Discord Notifications": true,
"Prune Report Max Per Embed": 10,
"Prune Report Include Notes": false,
"Enable Diagnostics": false,
"Max Audit Log Entries": 500
}
COMMANDS
Chat:
/watchlist
Opens the Watchlist UI (requires permission)
/wl <steamid> "<note>"
Adds a player to the watchlist with a note (requires watchlist.admin permission)
/wlr <steamid>
Removes a player from the watchlist (requires watchlist.admin permission)
/wlist
Lists all watched players in chat (requires watchlist.admin permission)
Console:
watchlist.add <steamid> "<note>"
Adds a player to the watchlist Example: watchlist.add 76561198000000000 "Suspected Cheater"
watchlist.remove <steamid>
Removes a player from the watchlist watchlist.list Lists all watched players in the server console
wl <steamid> "<note>"
Adds a player to the watchlist with a note (can be used via rcon)
wlr <steamid>
Removes a player from the watchlist (can be used via rcon)
wlist
Lists all watched players in the server console (can be used via rcon)
purgewl
Clears the entire watchlist (requires watchlist.admin permission)
watchlist.testalert
fires the alert at yourself with sample data so you can position and colour it without waiting for someone to log in.
You can also pass a Steam ID (watchlist.testalert 76561198000000000) to preview it with a real entry's details.
PERMISSIONS
watchlist.admin
Full access to all commands and features
watchlistui.toggle
Allows UI toggle via `/watchlist` command
RUSTADMIN INTEGRATION
You can integrate Watchlist directly with **RustAdmin** to add or remove players with a single click.
Add to Watchlist
Command to Execute: wl ${playerSteamid} "From RustAdmin"
Tick "Show Command Output in a Dialog" (optional)
Remove from Watchlist
Command to Execute: wlr ${playerSteamid}
Tick "Show Command Output in a Dialog" (optional)
$9.99
Control the power grid stages and recycler settings on your server. By default, the Rust power grid has stages that dictate how many fuses placed in powerplant monument are required to activate different levels of available power on the powerlines. With this plugin, you can easily add, edit, or delete these stages directly from the config file. You can also configure how each recycler type (Green, Yellow, Red) behaves based on the current powergrid stage.
How it works
Open the config file.
Under "Powergrid Stages", you can add new stage blocks or edit existing ones.
Under "Recyclers", you can configure powergrid-based settings for each recycler type (Green, Yellow, Red).
Under "Virtual Fuse Box", you can enable/disable the virtual fuse box feature and customize its commands.
Reload the plugin for the changes to take effect.
The plugin will automatically sort your configured stages based on the required fuses and apply them directly to the server's power grid .
You can set power to whatever you want, here I set "Powerline Available Power": 500 as an example.
Recycler Powergrid Settings
Configure how each recycler type behaves based on the current powergrid stage. For each recycler type (Green, Yellow, Red), you can control:
Required Powergrid Stage To Operate - The minimum powergrid stage required for this recycler to function. Set to 0 to allow the recycler to work regardless of powergrid state.
Required Powergrid Stage For Efficiency Override - The powergrid stage at which the custom recycling efficiency kicks in. Set to 0 to disable the efficiency override.
Recycling Efficiency Override - The recycling efficiency when the efficiency stage is reached. Value from 0.0 to 1.0 where 1.0 = 100% resource return.
Required Powergrid Stage For Duration Override - The powergrid stage at which the custom recycling duration kicks in. Set to 0 to disable the duration override.
Recycling Duration Override - The recycling speed in seconds per cycle when the duration stage is reached.
Default behavior (matching vanilla Rust):
Green recyclers — Always usable. At stage 2, efficiency is overridden to 60%. At stage 4, duration is overridden to 4.5s.
Yellow recyclers — Always usable. No powergrid-based overrides.
Red recyclers — Requires powergrid stage 4 to operate. No efficiency/duration overrides.
Chat Commands
/recyclerinfo - Look at a recycler and use this command to see its type (Green/Yellow/Red), current powergrid stage, and all powergrid-related config values applied to it. Useful for verifying your configuration is working correctly. Requires permission: powergridstages.recyclerinfo
/fusebox or /fb (or your custom alias) - Opens the virtual powergrid fusebox UI. Requires permission: powergridstages.fusebox
/fusebox reset [1/2] - Admin command to instantly clear and reset the virtual fuseboxes. Requires Admin privileges.
Useful Rust ConVars & Commands (Note: These are existing Rust convars and commands, not part of this plugin)
powergrid.enabled - If disabled power grid functionality will be disabled.
powergrid.status - A console command provides information about the current state of the server's power grid, including the active progression stage, the number of inserted fuses, and the total available electrical power. (This is a good place to go to verify the plugin applied changes properly)
powergrid.simulatepowerplantfuses - Pretend there are this many additional heavy fuses currently plugged into the power plant. Can input negative numbers to negate the effect of any currently plugged in fuses.
Default Config
{
"Virtual Fuse Box": {
"Enabled": false,
"Command": "fusebox, fb"
},
"Powergrid Stages": [
{
"Required Fuses": 1,
"Powerline Available Power": 15
},
{
"Required Fuses": 4,
"Powerline Available Power": 18
},
{
"Required Fuses": 10,
"Powerline Available Power": 24
},
{
"Required Fuses": 18,
"Powerline Available Power": 30
}
],
"Recyclers": {
"Green Recycler": {
"Required Powergrid Stage To Operate (0 = No Powergrid Required)": 0,
"Required Powergrid Stage For Efficiency Override (0 = No Override)": 2,
"Recycling Efficiency Override (0.0 to 1.0, 1.0 = 100% Resource Return)": 0.6,
"Required Powergrid Stage For Duration Override (0 = No Override)": 4,
"Recycling Duration Override in Seconds": 4.5
},
"Yellow Recycler": {
"Required Powergrid Stage To Operate (0 = No Powergrid Required)": 0,
"Required Powergrid Stage For Efficiency Override (0 = No Override)": 0,
"Recycling Efficiency Override (0.0 to 1.0, 1.0 = 100% Resource Return)": 0.0,
"Required Powergrid Stage For Duration Override (0 = No Override)": 0,
"Recycling Duration Override in Seconds": 0.0
},
"Red Recycler": {
"Required Powergrid Stage To Operate (0 = No Powergrid Required)": 4,
"Required Powergrid Stage For Efficiency Override (0 = No Override)": 0,
"Recycling Efficiency Override (0.0 to 1.0, 1.0 = 100% Resource Return)": 0.0,
"Required Powergrid Stage For Duration Override (0 = No Override)": 0,
"Recycling Duration Override in Seconds": 0.0
}
},
"Version": {
"Major": 1,
"Minor": 1,
"Patch": 0
}
}
$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
$37.99
XDQuest: A comprehensive and customizable quest system for your RUST server!
XDQuest is a powerful and flexible plugin that introduces a comprehensive and dynamic quest system into your game world.
With 31 different types of missions available for players, the possibilities are almost limitless.
Players receive various rewards for completing missions, adding even more incentive to accomplish tasks.
At the moment, this is the largest and only quest system available!
XDQuest is your key to creating endless adventures in the world of RUST.
List of features:
(The description briefly outlines the functionality and includes screenshots.)
Interactive website for creating quests:
XDQuest-Creater - On my website, you can easily and quickly create quests. Forget about manually editing JSON files — my user-friendly interface will make the quest creation process simple and enjoyable!
The plugin offers four types of rewards:
Items
Blueprints
Custom items
Commands
It integrates perfectly with various economic systems, and also supports Skill Tree and ZLevels.
List of missions
Mission setup
Reward setup
Detailed instructions and settings on the website:
XDQuest-Creater - My website features clear and informative instructions that will help you configure the plugin and master all types of missions.
You will gain access to it immediately after purchasing the plugin.
Discover the simplest and most effective way to configure using my guide!
Beautiful and modern UI:
The stylish and intuitive interface makes using XDQuest simple and enjoyable.
There is a mini-quest list that allows your players to remotely track the progress of their missions.
UI
UI
Mini quest list
Example of UI customization
(Rusty Wasteland PvE)
Capabilities and NPC settings:
NPCs have their own voice-overs; currently, they can respond to the user on 4 triggers:
1.Greetings
2.Farewells
3.Task acceptance
4.Task completion
You can also upload and use your own sounds for any of these 4 triggers, and the website will assist you with this as well.
Dress your NPC however you like and create a unique appearance for them.
There is an option to change the location of the NPC.
Your NPC resides in a unique dwelling created in accordance with their character and backstory.
Available types of missions:
Currently, there are 24 different types of tasks available:
(The types of missions are constantly being updated)
(16 pre-set quests included)
Command:
Chat commands:
/quest.saveposition - saves a custom position (available only to administrators).
/quest.saveposition.outpost - saves a custom position within the bounds of a peaceful town (available only to administrators).
/quest.tphouse - teleport to a building (available only to administrators).
Console commands:
xdquest.stat - publishes statistics.
xdquest.player.reset [steamid64] - Clears all of a player's missions and everything associated with them.
Configuration:
Discord - DezLife
Website editor - xdquest.skyplugins.ru
$37.00
🗺️ Fearsome BWANA DIK • high-performance 2K map • 12,000 prefabs
Handmade from scratch and built for battle, BWANA DIK seamlessly merges town and country into one deadly warfront. Continuous road and rail networks connect major monuments, while untouched beaches and rugged mountains remain wild and free. Vast rural wilderness areas hide freshwater lakes, rich ore veins, dense forests, and treacherous snowy mountain passes. This infamous island is just one of many in the local chain — more coming soon to Codefling.
Bwana's feared custom monument 'The Crocotorium' is a dangerous high-risk blue/red card facility protected by a central SAM site and home to massive hungry lizards. Deep in a mountain valley and surrounded by lethal jungle, the Crocotorium is not for the faint of heart. Will your players conquer it… or end up on the menu?
As seen on TV...
⚠ 100% FULLY TESTED on live humans
Network of straight level roads perfect for high-speed vehicle travel.
Convenient zip-tower network to quickly glide back to your body after respawns.
4 large derelict urban centers featuring raised flyovers and established safe zones.
Road & railway system fully support popular plugins like Convoy and Armoured Train.
Numerous buildable offshore islands — ideal for ocean bases to bridge across to.
⚠ Required dependencies: Umod/Oxide and Rustedit DLL.
Any problems? Please advise. -- Nomad
LOST in RUST https://discord.gg/THf6dGN8eW
"Bwana Dik. A nice place to die, but you wouldn't want to live there."
What's New
Fresh uploads, new releases, and recently updated files.
-
$19.98
By Razor
-
$40.00$35.00 -
By HunterZ
-
$47.00
By Nomad Rush
-
$29.99$24.99By SlayersRust
-
$14.90
By m1t1ngg
-
$10.00
-
$39.99
By imthenewguy
-
Free
By Wickly
-
$9.99
By beee
-
Free
By Magnumk
-
By Shemov
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
-
$40.00$31.95By Mevent
-
$24.99
By Whispers88
-
$14.99
By Sheo
-
Free
By Steenamaroo
-
$19.99$15.99By Fruster
-
$14.99
By David
-
$45.99$39.09By Monster
-
$15.99
By Fruster
Trending Files
Popular picks members are downloading the most right now.
-
$40.00$30.00By nivex
-
$29.99
By imthenewguy
-
Free
By tofurahie
-
$40.00
By The_Kiiiing
-
$14.99
By Sheo
-
$40.00
By Steenamaroo
-
$19.99$15.99By Fruster
-
$11.99
By imthenewguy
-
$24.99
By Khan
-
Free
By imthenewguy
-
$49.99
By Adem
-
$15.00
By ninco90
Great Deals
Discounted picks, limited-time deals, and sale items worth grabbing now.
-
$19.95$15.95By Mevent
-
$8.30$7.05By Shemov
-
$14.99$9.99By SlayersRust
-
$14.99$9.99By SlayersRust
-
$24.99$19.99By SlayersRust
-
By Shemov
-
$10.00$7.99 -
$15.95$11.95By Mevent
-
$9.99$7.99By Khaled
-
$49.90$42.41By Shemov
-
$10.00$9.00By Razor
-
$29.99$24.99By SlayersRust
-
By Shemov
Latest Reviews
See what customers are saying about their experience with files.
The best purchase of all bases I made. Next month will buy a larger pack; I just need to save some money 🙂
Hello,
We run a PvE server with Raidable Bases.
This plug-in works exactly as described!
Once you have claimed your Raidable base it's as simple as running "/airstrike" in chat, mark your location on the map... boom down it comes.
Great plugin, excellent price, fast response from the developer on answering questions.
Highly recommended!
Thank you,
Gary
I purchased two packs from this seller and have been running them on my Rust server. The clan1.3 base specifically is one of the worst-designed bases I've used for raiding.
The problem is purely structural: there's a double roof in every single area of the base, so moving from one section to the next constantly requires breaking through two roofs in a row — it's not an isolated issue. On top of that, several bunkers in the base contain just a single barrel inside — you break down an entire
Nice Plugin, but does def. need a vanish & godmode
Great event plugin and very cheap
Works very well on our PvE server with no issues.
Messaged developer regarding a question we had, very fast a friendly response.
Thank you
Wow, what an incredible map. It runs insanely smooth on my server, and the players are absolutely loving it. I’ve got a whole lineup of Karuza cars, and they handle beautifully on these flat, well‑designed roads. The attention to detail in the prefabs and the landscape really shows, and the optimized layout makes player FPS shine. This map is a total win for performance and fun. Cant wait to see what Nomads got next!!
very good plugin works well ( aslong as you know how it ) But The Dev Of The Plugin Is Very Helpful And Helped Me To Sort My Issues Very Quickly 100% Great Guy And Amazing Plugin $30 is worth it in every way, i think my self this plugin should cost more as it dose alot, +5 stars
Legend! Keep it up
New purchase..
Out of the box looks good easy to load easy to use only one permission..
Config pretty straight forward, i did have to ask a couple of question via private message to the developer who replied prompty
and my minor issues where solve...
looking forward to using this and I'm sure the players will enjoy it as also.....
Unfortunately, this plugin has been abandoned for years now. There's a disconnect between the plugin and the site where it doesn't show accurate information. Dev hasn't responded to two my support tickets in months. Any updates where explained with "Use the older version"
Picture below shows the website stating my server hasn't wiped in two months.