Featured framework
Carbon for modern Rust servers
Fast, self-updating, and built for performance with seamless in-game plugin and server management.
1,800+
servers powered by Carbon
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
$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
✓
Traders that react to players — gestures and voice lines on approach, purchase and idle
✓
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 — Gestures and voice
A trader who notices you
He waves when you walk up, thanks you for a purchase and shrugs when your pockets are empty — with his own voice, if you give him one.
Greets a player who comes closer
Set a radius in meters and the trader reacts the moment somebody steps inside it — once per approach, not once per second. Walk away and come back and he greets you again.
A reaction for every moment of the trade
Walking up, opening the shop, buying a lot, coming up short on resources, closing the menu, and an idle line every N seconds while nobody is around. Each one carries a gesture, a voice line, or both.
Random variants, weighted the way you want
Every reaction holds a list of variants and one is picked by weight, so the same trader never greets two players in exactly the same way. Set a weight to zero to park a variant without deleting it.
Voice lines are your own .ogg files
Drop the files into oxide/data/NPCShop/sounds and write the file name in the config. Cut a long file where the phrase ends with a playback duration, and set the volume per trader. The speaker itself is invisible — players hear a voice coming from the vendor, not from a boombox at his feet.
Heard by everyone, or by one player only
A voice line can be global, so everybody around the trader hears it, or personal — delivered to the player who triggered it and to nobody else. Handy for greetings on a crowded Outpost.
Every gesture the game has
Wave, thumbs up, shrug, point, the dances — the npcshop.gestures console command prints the exact list your Rust build accepts, and an unknown name is reported at load instead of failing silently.
03 — 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.
04 — 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.
05 — 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
$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
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."
$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 🙂
$14.99
Server HUD · Rust · Oxide · CARBON
Your chat is «is heli up?» twelve times an hour
Put the answer on screen. Online count, clock, grid square, balance, and a live bar of every event running — Bradley, heli, cargo, airdrop, both oil rigs. Nine events out of the box, set up entirely from a panel in game.
How it goes
From install to the event you added yourself
MINUTE ONE
Install and it's on screen
It doesn't wait for the next wipe to be useful
Install mid-wipe and the heli that's already flying is on the bar. ImageLibrary is the only other plugin you need.
Nine events on by default. Bradley, Patrol Heli, CH47, Cargo Ship, Airdrop, Harbor cargo, both Oil Rigs, Deep Sea.
Rigs turn red while the crate is being hacked. Players see the fight starting from across the map.
Icons are just URLs. Fetched and cached for you. First install reloads once to pick them up — expected, not a fault.
No file to edit first. Defaults draw a finished HUD with your server name in it.
FROM THEN ON
Every player, every day
The numbers your chat keeps asking for
Updated as they change. A player standing still costs you nothing.
K12 or X:-1204 Z:842
Grid square or raw coordinates. Your choice, your colour.
Online, sleeping, queue. Admins can be left out of the count.
Clock in each player's own format. 12- or 24-hour from their game language, or force one.
Two balances, side by side. Economics, ServerRewards or ShoppyStock.
Only what's live. One switch hides idle events instead of showing a wall of grey.
Info messages on rotation. A random line from your list, any corner, any width.
IN THE WAY
The player decides
Four states, and the choice is remembered
Your logo is the button: full panel → events only → hidden. One command removes it entirely. Still set that way after a reconnect.
Streamers keep coordinates off camera. One permission drops the position readout.
CCTV and drones get a clean screen. Hides on mount, back on dismount, switchable.
Any corner, any scale. Pixel offsets, one scale value, and a toggle to show it over the inventory.
MONTHS LATER
All of it, from in game
The config file is optional
One command opens an admin panel over every setting there is. Change it, it saves, everyone online sees it.
Events from other plugins. A name, an icon, and the hooks it fires. Convoy, Sputnik, Armored Train and Harbor come pre-filled. Adding one rewrites a marked block in the plugin file and reloads it.
A drop-down of command buttons. Any chat or console command, own icon, own permission, closes itself after use.
Updates don't reset your settings. New events land with defaults; a section you deleted comes back.
Or edit the file. Auto reload picks it up the moment you save.
The look
See it running, then make it yours
Every icon is a URL in the config. Take a pack, or draw your own from the blank template.
Free custom HUD icons
Free
Custom HUD icons
Paid
Server HUD custom icon pack
Paid
While you're not looking
Built to be left alone
✓ A typo in the config won't take the HUD down — it falls back to defaults and says so
✓ Switching a counter off stops the work behind it, not just the display
✓ An economy you enabled but never installed shows 0, and the HUD carries on
✓ Unloading clears every panel off every screen — nothing stuck until relog
Reference
One chat command, five words after it
Setup is admins only. Menu buttons take whatever permission you name in the config.
Chat
/h
Show the command list
Chat
/h open
Full panel — counters, clock, position, balance, events
Chat
/h events
Event bar only
Chat
/h hide
Hide the panels, keep the logo button
Chat
/h close
Remove it entirely
Chat
/h setup
Settings panel — admins only
Perm
hud.streamer
Hides the position readout from whoever holds it
Hook
object CanHudChangeState(BasePlayer player, string currentState, string nextState)
Fires before a state change. Return non-null to stop it.
API
string API_PlayerHudState(string playerId)
Returns full, events, hidden or closed for a player.
Straight answers
Asked before buying
Can players turn it off?
Full panel, event bar only, or gone entirely — their choice, and it survives a reconnect.
Do I have to edit the config file?
No, the in-game panel covers all of it. If you prefer a text editor, auto reload picks the file up as you save.
I stream — my coordinates are on screen.
Grant yourself the streamer permission. The position readout goes, everything else stays.
Can I add an event from another plugin?
Yes — name it, give it an icon, and name the hooks it fires. Most plugins list those in their own description.
What if I run no economy plugin?
Leave it off and the HUD closes the gap. Enable it without the plugin and you get a 0, not a broken HUD.
Does it block CCTV and drones?
It hides itself in a Computer Station and comes back on dismount. One toggle if you'd rather it stayed.
9
events out of the box
4
states, chosen per player
2
economy balances at once
1
dependency — ImageLibrary
$14.99
Gather & loot rates
Rates that belong to the player, not to the server
Server-wide multipliers give everyone the same wipe. This plugin attaches rates to permissions instead: a default tier, a VIP tier, as many tiers as you sell. Every gather source is covered — nodes, quarries, the excavator, the metal detector, farming, tea, even NPC corpses — and every loot container is multiplied per item category, or per exact item. All of it edited in a UI, applied the moment you type the number.
14
Item categories, each with its own rate
7
Production sources with their own multiplier
4
Fields on every per-item override
0
Dependencies
✓
Unlimited permission tiers — a different wipe for every rank you sell
✓
Every source, not just trees and nodes — quarries, excavator, metal detector, farming, tea, NPC corpses
✓
Guaranteed drops per item — "always 5 scrap, 10% chance of 20" without touching a loot table
✓
Loot and junk pile respawn speed — separately, live, no map restart
✓
Edited in-game — type a number, it's live and saved
01 — Tiers
One server, as many rate sets as you sell
A tier is a permission plus a full set of rates. Two come preconfigured — a 2x/3x default and a 3x/5x VIP — and you add as many as your shop needs.
No permission, no change
Players outside every tier play vanilla rates, untouched. Nothing is applied server-wide, so you can run the plugin on a 1x server and sell 2x as a rank.
Stack tiers, or don't
By default a player with several tiers gets one of them. Flip a single switch and every rate they hold is summed instead — so a booster permission can add on top of a rank rather than replace it.
Everything from one screen
Page through your tiers with two arrows. Global rates, every production source, all 14 categories and the per-item list are on the same screen, each an input field. Type a value and it's active and written to the config — no reload, no o.reload, no file editing.
02 — Loot
Containers that pay what you decide
Barrels, crates, elite crates, hackable crates, supply drops — anything with loot in it goes through a global rate multiplied by the rate of that item's category.
14 categories, 14 dials
Triple the components but leave weapons alone. Halve ammunition while resources stay at 5x. Weapons, construction, items, resources, attire, tools, medical, food, ammunition, traps, misc, components, electrical and fun each carry their own multiplier on top of the global one.
NPC corpses count the killer
Scientists, tunnel dwellers and every other NPC drop loot scaled to the rates of whoever killed them — tracked from the kill to the corpse, so a VIP's kill pays VIP rates even if someone else opens the body.
Shot open or opened by hand
Barrels broken with a rock and crates opened normally both go through the same multipliers, credited to the player who did it — and each container is processed exactly once, never twice.
Respawn speed, live
Two multipliers — one for junk piles, one for crates and barrels — and the world's spawn timers are rebuilt the moment you change them. No wipe, no restart, and the vanilla values are put back when the plugin unloads.
An exclusion list for the things you don't touch
Name a container prefab and it stays vanilla — useful for event crates and custom loot that another plugin already fills.
03 — Gathering
Every way a player earns a resource
Most rate plugins stop at trees and ore. This one follows the resource wherever it comes from, and gives the slow, expensive sources their own multiplier on top.
Nodes, trees and the finishing bonus
Every hit, the bonus for finishing a node, and the leftovers that spill when it breaks — all three are scaled, so the numbers stay consistent instead of the bonus quietly staying at 1x.
Quarries and the excavator pay their operator
A mining quarry, a survey-charge pump jack and the Giant Excavator each have their own production multiplier — and the output is scaled by the rates of the player who switched it on, not by a server-wide number.
Jackhammer, chainsaw and the metal detector
Power tools get a multiplier of their own, so you can make them worth their fuel — or deliberately not. Metal-detector digs are boosted too, which almost nothing else covers.
Tea strength as a rate
The tea multiplier scales the effect value of the tea itself, not the number of leaves. A VIP's ore tea simply works harder than everyone else's.
Farming and hand-picked resources
Harvested plants and everything picked up off the ground — hemp, mushrooms, corn, wood piles — run through the same rates as everything else.
04 — Per item
One item out of step with the rest
Category rates handle the broad strokes. When a single item needs its own rule, it overrides everything above it.
Its own multiplier, ignoring everything else
Run resources at 10x and keep sulfur at 2x. An item with an override takes its own number and nothing else — no compounding surprises.
Guaranteed amounts with a jackpot chance
For loot, set a minimum and a maximum with a percentage chance for the big one. Every barrel gives exactly 5 scrap, and 10% of them give 20 — a flat, predictable economy you can actually price your shop against.
Added by clicking an icon
The picker filters by all 15 categories and searches display names and shortnames as you type. Click an item to add it, type its rate under the icon, click the red cross to drop it. Long lists paginate at 29 per page.
Reliability
Built to be left alone
✓
No dependencies — nothing to install alongside it
✓
Vanilla respawn timings are restored on unload — the plugin remembers what they were before it touched them
✓
Every UI change is written to the config immediately — a crash can't lose the tier you just built
✓
A bad shortname tells you in chat instead of failing silently or throwing errors into console
✓
Respawn boosting is opt-in — off by default, with the safe range stated in the config
Command & permissions
One command, and the tiers you invent
The command name and the setup permission are both configurable. Admins have access regardless.
/rs
Open the rate editor
gatherlootmultiplier.setup
Access to the editor
gatherlootmultiplier.default
Preconfigured tier — 2x loot, 3x gather
gatherlootmultiplier.vip
Preconfigured tier — 3x loot, 5x gather. Rename both, or add ten more
Questions
Before you buy
What happens to players with no permission?
Nothing at all — they get vanilla rates. That's the point: grant the default tier to the default group for a server-wide rate, or keep it for ranks only.
A player has two tiers. Which one wins?
The one further down the config list — so keep your tiers in ascending order and the highest rank ends up last. Alternatively, turn on rate summing and every tier they hold is added together instead.
Do I have to restart or reload after changing a rate?
No. Values from the UI take effect immediately and are saved to the config as you type them. Even loot respawn timing is rebuilt live.
Whose rates apply to a quarry or the excavator?
The player who switched it on. A VIP's quarry produces at VIP rates while it runs.
Can I make a resource drop a fixed amount instead of a multiplied one?
Yes, for loot: give the item a minimum, an optional maximum and a chance for the maximum. The multiplier is then ignored for that item and the amount is rolled between the two.
Is faster loot respawn safe for my server?
It's off by default and it scales the game's own spawn timings rather than spawning extra entities. Stay near the suggested values — extremely low numbers mean more entities alive at once, which costs frames on any server.
Will it fight with my other loot plugin?
Add that plugin's container prefabs to the ignore list and they pass through untouched.
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
-
$15.99
By Fruster
-
$14.99
By David
-
$45.99
By Monster
Trending Files
Popular picks members are downloading the most right now.
-
$40.00$30.00By nivex
-
$25.00
By Martian
-
$29.99$24.99By Adem
-
$40.00
By The_Kiiiing
-
By Scalbox
-
$40.00$31.95By Mevent
-
Free
By tofurahie
-
$9.99$8.99By Brad Copp
-
Free
By Steenamaroo
-
By realedwin
Latest Reviews
See what customers are saying about their experience with files.
This plugin makes things so much easier when handling a server. Being able to just click save and go on about my business without having to manually reload the plugin i was working on is a major time saver. Makes it easier to do a config, press save and move to the next one. Much appreciated for this plugin. I have been needing this plugin for a LONG time.
I've seen this used on other servers and when i started my own it was top of the list to add to mine. Works great, not that hard to add in custom bases on my end. well kept with the updates. Overall a pretty good Mod Recommended for sure
I was very apprehensive with the price of the map, but after getting it, WOW!
the detail that is in the map is exceptional. very very well optimized. so much effort has went into creating such a unique map. worth every penny.
the map feels so much bigger. Cargo route is mind blowing,
Every player who stepped foot in the server has commented on map.
10/10 would recommend to anyone pve or pvp.
Easy to install, with a clean‑looking interface and unique style. It’s hard for me to find anything more polished for a non‑full‑screen server menu. The developer is also creating themes for other related plugins. You can reach out to him whenever you have questions; he replies quickly and is very patient.
Everything has been optimized very well. It is ideal for players who do not prefer full‑screen displays and allows players to view their own data at a glance. If you are looking to bring a fresh new style to your leaderboard, you may want to consider this.
It has a clean UI, gorgeous icons, and fantastic, attentive support — I’d definitely recommend you buy it!
The only plugin you’ll ever need for managing all your lights and so much more. Setup is effortless just load it in and you’re ready to go. Smooth, simple, and incredibly effective. Thats the best kind of plugin to have. Thanks for the hard work Mals
I've got this map running on my 10x pve server right now and the player feed back is all very positive they are enjoying the beautiful hand painted landsacpes and zip lines going across the map for faster traveling.
There was a small bug on the map I showed Nomad he was very polite and quick to respond to my message and had the map fixed and updated within 30min of my message.
I really love Nomads work cant wait for him to release some more maps and check out this mad mans next ideas
Works exactly as described! Nice work Death,
A great system for combating cheaters! A very intuitive interface.
I’d also like to thank Deathburn for their active assistance 🙂