Jump to content
Message added by Mevent,

🚀 New Release: Ultimate Quests
Looking for quests that integrate perfectly with ServerPanel? Check out Ultimate Quests.
It adds a dedicated category to your ServerPanel menu, auto-detects your UI template (V1/V2/V4), and lets players take and complete quests directly from the panel.

75 Screenshots

  • 122k
  • 16.9k
  • 1.54 MB
  • Update details
    v2.0.42
    Released
    Download size 1.54 MB
    Total versions 81
    Typical update pace About every 6 days
    Freshness Updated 6 days ago

About Server Panel

ServerPanel adds a player information menu to your server. Use it to share useful information with your players and to integrate your plugins into it.

 

Mevent Discord  Physgun

 

🌟  Features

  • User-Friendly Interface: A GUI that is easy to navigate.
  • Economy Integration: Works with different economy plugins.
  • Dynamic Menu Categories: Group features into categories you can customize.
  • Extensive Configuration Options: Almost every part of the plugin can be customized, including messages, colors, sizes and fonts.
  • Auto-Open Menu: Opens the menu automatically when a player connects (configurable in the settings).
  • Block Settings: Block the menu while a player is building, raiding or in combat.
  • Multiple Economy Head Fields: Show several economy values, such as balance, server rewards and bank information.
  • Permission Management: Set permissions for different user roles to control who can use which features.
  • Localization Support: Translate and edit all messages for different languages.
  • Performance Optimized: Built to keep server lag to a minimum.
  • Customizable Hooks: Connect existing economy systems through configurable hooks for adding, removing and showing balances.
  • Editor Position Change: Admins can move the editor to the left, center or right with one click.
    • Command Enhancements: Commands accept multiple arguments separated by "|", so several commands can run at once.

 

🎮  Commands

  • /info: open menu
  • /sp.install  (or) /welcome.install: open installer menu
  • sp.migrations: console command that updates the plugin data structure when you upgrade to a new version. It creates backups before making any 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

AbXbrDm.gif

  • Template V2

rVPO2nh.gif

  • Template V3

QW9J6l5.gif

  • Template V5

tYyyvlp.gif

Editor

zOeF7iZ.gif

Installer

yHJZatH.gif

 

🧪  TEST SERVER

Join our test server to try all the features yourself.
Copy the IP address below to start playing.

connect 155.103.86.38:28015

 

📊  Update Fields

ServerPanel supports update fields: placeholders for your templates that show live information. They update automatically and work 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 can be customized 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:
Use these fields in any text component, for example: "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. Your function updates the value for each player.

 

📚  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: This happens when images fail to download from the internet. To fix it, enable Offline Image Mode, which uses local images instead:

  1. Enable the mode in config:
    • Open "oxide/config/ServerPanel.json" (or "carbon/config/ServerPanel.json" for Carbon)
    • Set "Enable Offline Image Mode": true
  2. 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
  3. 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 with Mevent's plugins (Shop, Kits, Daily Rewards, etc.). Other developers can use the API to add their own plugins to the menu.

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 so the sizes match.

Q: The panel displays differently for different players. How can I make it show the same on everyone's screen?
A: This happens when players have different UI scale settings. To make it look the same for everyone:

  1. Open the "Template.json" file located in "oxide/data/ServerPanel" (or "carbon/data/ServerPanel" for Carbon)
  2. Find the "Parent (Overlay/Hud)" setting in the "Background" section
  3. Change the value from "Overlay" to "OverlayNonScaled"
  4. 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: You can replace the default video with your own using this 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. The most reliable option is Offline Image Mode with local images.

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:

  1. In your button configuration, set "Chat Button": true
  2. 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"

The command runs as if the player typed it in chat, and the plugin's interface opens on its own, outside the ServerPanel menu.

Q: Text in V4 template is shifting or sliding out of place. How can I fix this?
A: This happens when the text width is not set correctly. The "TITLE LOCALIZATION" settings in ServerPanel control text width for categories and pages:

  1. Open the ServerPanel editor (click the "ADMIN MODE" button to open the edit menu)
  2. Select the category or page you want to edit (click to "EDIT CATEGORY" or "EDIT PAGE" button)
  3. In the editor, find the "TITLE LOCALIZATION" section
  4. 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
  5. Adjust the "WIDTH (px)" value to match your text length. Longer text requires larger width values
  6. 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.

  • Like 9
  • Confused 1
  • Love 9

Mevent
Mevent's Collection
Explore more files from this creator.

User Feedback

About Us

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

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

Important Information

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