Jump to content
Message added by codeboy,

Join my Discord for support, updates & custom plugin requests: https://dsc.gg/leetrust

 

 

Feel free to leave feedback - it will help make the plugin even better❤️

28 Screenshots

  • 1.5k
  • 20
  • 810.98 kB
  • Update details
    v1.0.4
    Released
    Download size810.98 kB
    Total versions5
    Time between versions 1 day
    Typical update pace About every 3 days
    Freshness 9 days ago

Works with

Compatible add-ons, packages, or tools that pair well with this resource.

The complete in-game admin control center for Rust - every moderation tool your team needs.

In one beautiful CUI panel.

 

Stop alt-tabbing to RCON. Stop memorizing console commands. Stop juggling five different plugins.

PowerfulAdmin puts your entire server - players, permissions, plugins, console, ConVars, ESP, Vanish and more - behind a single, fast, gorgeous in-game interface that any admin can master in minutes.

 

>>> Open it with one command: /padmin. Everything else is point-and-click.

 

Check the video demonstration - https://youtube.com/watch?v=94WqSINqTO4

 

why.png.a0c28c9d87f0235b6f20a0653eb7dd9f.png

 

  • All-in-one. Player management, ESP, Vanish, live console, permissions, plugin control, ConVar editing and Discord - no more plugin soup.
  • Beautiful & fast. A modern, hand-crafted CUI with three themes, smooth partial updates (no jarring full-screen redraws), and an interface that feels like a real desktop app.
  • Built for real moderation. Heal, kill, strip, teleport, mute, spectate, give items, edit blueprints, tweak metabolism, manage inventories - online and offline players.
  • Permission-gated to the bone. Fourteen granular permissions let you hand juniors exactly what they need and nothing more.
  • Scales with you. SQLite out of the box, one-click migration to MySQL for multi-server networks, or plain JSON if you prefer files.
  • Discord-ready. Webhooks, a full bot with slash commands, a two-way chat bridge and role-based authorization - all optional, all configurable in-game.
  • Localized. Ships with full English and Russian; every string lives in language files, so any locale is a translation away.

 

 

featuretour.png.bbd0a062c688227f5814f46970c562ee.png

 

dashboard.png.6c74e5aeae9e4346a444c65d63de738a.png

Your server at a glance, updated live:

  • Online / max players, sleepers, admins online, new players today
  • Server FPS, entity count, and join queue / joining counters
  • One-tap quick toggles: Vanish, ESP, Godmode, Noclip
  • A built-in live console feed so you always see what's happening

 

playermanagement.png.c085fbbf98956c1214241f1f08639a2b.png

A searchable, paginated roster of online, offline (sleepers) and banned players. Each row has instant actions, and the full management card does it all:

 

  • Heal: Set / max / add / subtract HP
  • Kill: Instantly kill the target
  • Strip: Clear the player's inventory
  • Teleport: To me · To player · To coordinates · To line-of-sight
  • Mute: Timed or permanent, with reason templates and notify options
  • Kick: With reason, comment and notification routing
  • Inventory: View and edit a player's main / wear / belt
  • Spectate: Jump into a live spectate camera (press R to exit)
  • Give: Full item picker - categories, search, favorites, custom items, skins, a cart, and blueprints
  • Blueprints: Unlock or reset blueprints per item, on a visual blueprint board
  • Modifiers: Apply metabolism modifiers with custom duration and value
  • Vitals: Live HP / metabolism editor that respects each stat's real min / max
  • Permissions: Grant per-user permissions and manage their groups

 

Offline players are fully supported - teleport to a sleeper, mute, heal, strip, edit their body and more.

 

Rich player stats card: SteamID, live status (Online / Sleeping / Dead / Wounded / Offline), total playtime, current session, total Rust hours (via Steam API), groups, first/last seen, and IP - with a dedicated permission so only trusted staff can reveal it.

 

inspecttool.png.6fd5af842ea06bf983d4b79f59a25724.png

Walk up to anyone in the world, look at them, and act instantly:

  • E - open their inventory
  • Right Mouse Button (RMB) - open their full management card
  • A clean on-screen hint shows you exactly which key does what.

 

esp.png.9ed188c9f360131880be064def5b5519.png

A powerful, server-side admin ESP rendered through the engine's debug draw, visible only to permitted admins:

- Players & sleepers with name, HP and held item

- World entities: loot, boxes, tool cupboards, sleeping bags, traps, stashes, dropped bags, NPCs, turrets and vehicles

- Adjustable radius, box/text opacity, and distance readouts

- Color-coded enemy / team / admin, plus tagging of vanished admins

 

vanish.png.867b801d2c4703175ee6b946d632673e.png

True invisibility done right:

  • Removed from networking, colliders and entity queries
  • Optional silhouette with a configurable color so other admins can still spot you
  • Full damage and targeting immunity
  • Optional auto-vanish on connect

 

liveconsole.png.c51787c5d8662a020431f79cc1ffa066.png

  • Real-time server console inside the panel
  • Category tabs: All · Chat · Commands · Connections · Errors
  • Search, word-wrap, and export to file
  • Run commands inline
  • A draggable floating mini-console widget you can keep on-screen while you work

 

permissions.png.ee11e164a5f80c132445a0e2e44da375.png

  • Browse every permission on the server, grouped by owning plugin
  • Toggle permissions per user or per group
  • Create and delete groups with parent inheritance
  • Fast search across thousands of permissions

 

logs.png.eb0ca5baad0d1c4c378610a8fb47ca47.png

  • In-panel activity log: joins, leaves, chat, commands, admin actions and errors
  • Filter by category
  • Persisted to your chosen storage backend with configurable caps

 

plugincontrol.png.21ff85c2355fcb12dea7a01fe3958705.png

  • See every loaded and unloaded plugin with title, author and version
  • Load / unload / reload with a click

 

convareditor.png.addbb641f3220f953c802ecc8c6dbec1.png

  • Browse and edit server ConVars by category
  • Paginated and searchable tune your server without touching the console

 

storageandsettings.png.ad2360ca0e664cca0bb1b18ba2b13d9e.png

  • Storage backends: SQLite (default, zero-config), MySQL (perfect for multi-server networks), or JSON files
  • One-click live migration between backends your data follows you
  • Security: lock PowerfulAdmin permissions, enable/disable the console, set log and ESP object caps, define reason templates
  • Steam API key for Rust playtime lookups (cached and stored in your backend)
  • All configurable in-game, no file editing required

 

discordintegr.png.87210e1fd217313ad841b116b1ac9cce.png

  • Webhook and/or Bot delivery pick per channel
  • Notifications for bans/kicks, chat, admin actions and plugin errors, each to its own channel
  • Two-way chat bridge (Discord ↔ in-game)
  • Slash commands: /online, /players, /kick, /mute, /chatbridge with autocomplete
  • Role-based authorization so only the right Discord roles can moderate
  • Configurable bot presence / activity status

 

themesandlocals.png.baf8bb735628ae1e49a1527906a85696.png

  • Three polished themes Rust, Midnight, Plum selectable per admin
  • Full English and Russian included; every label is translatable via language files

 

performance.png.883d4ed35309a1c7037d4d685613adf0.png

PowerfulAdmin is engineered to be light:

  • Object pooling and reused buffers to minimize allocations
  • Partial UI updates only the element that changed repaints, never the whole panel
  • Cached state signatures and debounced saves
  • ESP and inspect run on tuned intervals

 

 

permissions.png.ee11e164a5f80c132445a0e2e44da375.png

  • powerfuladmin.use - Base access - open the panel
  • powerfuladmin.players - Player management page & actions
  • powerfuladmin.esp - ESP page & overlay
  • powerfuladmin.vanish - Vanish
  • powerfuladmin.godmode - Godmode quick toggle
  • powerfuladmin.noclip - Noclip quick toggle
  • powerfuladmin.console - Live console page
  • powerfuladmin.perms - Permissions manager
  • powerfuladmin.logs - Logs page
  • powerfuladmin.plugins - Plugin control
  • powerfuladmin.convars - ConVar editor
  • powerfuladmin.settings - Settings, storage & Discord
  • powerfuladmin.viewip - Reveal player IP addresses
  • powerfuladmin.candisablevitals - Edit player vitals/metabolism
  • powerfuladmin.countableondashboard - Counts toward the "admins online" stat

 

> Tip: there is a one-time console helper pa.setup <steamid/name> that grants the full PowerfulAdmin permission set to a player so you can get started instantly.

 

 

 

command.png.f39dc0e9ec1c75eff574e2df2b5f6cbc.png

  • /padmin - (Chat) Open the admin panel
  • pa.setup <steamid/name> - (Console) Grant the full permission set to a player (one-time)

 

Everything else happens inside the panel no commands to memorize.

 

 

 

requirements.png.82721557b005added1579f4ff01763fa.png

  • Storage: SQLite or JSON work with zero setup; MySQL is optional for networks.
  • Discord & Steam API: entirely optional the plugin runs perfectly without them.

 

 

 

quickstart.png.558c80abef746e6f12db6e3dd66837f6.png

  1. Drop the plugin into your scripts folder; it loads and creates a clean config automatically.
  2. Run pa.setup <your name or steamid> once to give yourself full access.
  3. Type /padmin in-game.
  4. (Optional) Open Settings to switch to MySQL, connect Discord, or add your Steam API key.

 

That's it you're running.

 

 

faq.png.323428032209ac01cd2eb01e1128af82.png

 

Q: Do I need MySQL or a database server?

A: No. SQLite is the default and needs zero configuration. MySQL is there only if you run multiple servers and want shared data.

 

Q: How do admins open the panel?

A: With the /padmin chat command, provided they have at least the powerfuladmin.use permission.

 

Q: How do I give my staff access?

A: Grant the permissions above (per user or per group) right inside the Permissions page, or use pa.setup for a quick full grant.

 

Q: Is Discord required?

A: No, it's completely optional. Everything in the panel works without Discord. When you do want it, set it up entirely in-game.

 

Q: Will it lag my server?

A: It's built for performance object pooling, partial UI redraws, debounced saves and tuned update intervals keep the footprint small.

 

Q: Can players abuse it?

A: No. Every page and action is gated behind its own permission, and you can even lock the plugin's own permissions so they can't be edited.

 

Q: Is the ESP a "cheat"?

A: It's a server-side admin tool rendered through the engine's debug draw and only shown to admins with the ESP permission there is no client-side mod involved.

 

Q: Can I manage offline players?

A: Yes. You can teleport to, mute, heal, strip and otherwise manage a player's sleeping body. Actions that genuinely need a live connection (like kick) are disabled while they're offline.

 

Q: Can I move from SQLite to MySQL later?

A: Absolutely there's a one-click live migration in Settings that moves your data between backends.

 

Q: Is it multi-language?

A: It ships with full English and Russian, and every string is in language files, so adding a new language is just a translation.

 

Q: Can I change how it looks?

A: Yes choose from the Rust, Midnight and Plum themes.

 

Q: Do I need a Steam API key?

A: Only if you want the "total Rust hours" stat on player cards. Everything else works without one.

 

Q: What about bans and player freezes?

A: Ban and Freeze are reserved for an upcoming DLC add-on and currently appear as placeholders. All other moderation tools are fully included.

 

 

roadmap.png.8cc7cffc6ea0871859c6c7aed7f8b7b1.png

  1. Bans DLC full ban management (timed/permanent, templates, history) - COMPLETED
  2. Freezes DLC freeze/unfreeze players in place
  3. Continuous polish, more themes, and additional languages

 

 

api.png.5b89fcbe26fdd05820cc33cae71a5030.png

Spoiler
// Build a Dictionary<string, object> and call API_AddSection. It returns true on success

    private const string SectionId = "mystats";

    private void RegisterSection()
    {
        PowerfulAdmin ??= plugins.Find("PowerfulAdmin");
        if (PowerfulAdmin == null)
            return;

        var definition = new Dictionary<string, object>
        {
            ["id"]             = SectionId,                                // required, unique
            ["icon"]           = "assets/icons/star.png",                 // sidebar icon
            ["category"]       = "nav.cat.tools",                         // nav group (see below)
            ["permission"]     = "myplugin.view",                         // auto-registered by PA
            ["title"]          = (Func<BasePlayer, string>)(p => "My Stats"),
            ["open"]           = (Action<BasePlayer>)OpenSection,         // draw the page
            ["cardRows"]       = (Func<string, List<string[]>>)CardRows,  // player-card rows
            ["settings"]       = (Action<BasePlayer, CuiElementContainer, string, int>)DrawSettings,
            ["settingsHeight"] = (Func<BasePlayer, int>)(p => 180),
            ["popupActions"]   = new Dictionary<string, Action<BasePlayer, ulong, string>>
            {
                ["ban"] = OnBan
            }
        };

        PowerfulAdmin.Call("API_AddSection", definition);
    }

// Only "id" is required; every other key is optional. The cast to the exact delegate
// type matters - PowerfulAdmin reads each key with "as <Type>", so a wrong signature is
// silently ignored.

// Definition keys:

//    id              string
//                    Unique section id (used by API_OpenSection / API_RemoveSection). REQUIRED.

//    icon            string
//                    Sidebar icon sprite. Default "assets/icons/file.png".

//    category        string
//                    Nav group key. Built-in: "nav.cat.main", "nav.cat.tools", "nav.cat.manage".
//                    Any other value creates a new group (its label is the localized category key).
//                    Default "nav.cat.manage".

//    permission      string
//                    Permission required to open the section. PowerfulAdmin registers it for you
//                    if no plugin has registered it yet.

//    title           Func<BasePlayer, string>
//                    Sidebar label / page header text.

//    open            Action<BasePlayer>
//                    Called when the player opens the section - draw your page here.

//    cardRows        Func<string, List<string[]>>
//                    Extra rows for the player card; the argument is the target steamid.

//    settings        Action<BasePlayer, CuiElementContainer, string, int>
//                    Draw controls into a card on the Settings page.

//    settingsHeight  Func<BasePlayer, int>
//                    Height (px) of your settings card.

//    popupActions    Dictionary<string, Action<BasePlayer, ulong, string>>
//                    Named handlers for player-popup actions. Key = action id, value =
//                    handler(admin, targetSteamId, targetName). PowerfulAdmin enables the popup
//                    "Ban" button while any section provides an action under the key "ban", and
//                    routes that click to your handler. (The dictionary is generic - the same
//                    mechanism is used for any popup action key, not only "ban".)

// Lifecycle - register on server init and whenever PowerfulAdmin (re)loads, remove on unload:

    private void OnServerInitialized() => RegisterSection();

    private void OnPluginLoaded(Plugin plugin)
    {
        if (plugin?.Name == "PowerfulAdmin")
        {
            PowerfulAdmin = plugin;
            RegisterSection();
        }
    }

    private void OnPluginUnloaded(Plugin plugin)
    {
        if (plugin?.Name == "PowerfulAdmin")
            PowerfulAdmin = null;
    }

    private void Unload() => PowerfulAdmin?.Call("API_RemoveSection", SectionId);



// When "open" fires, ask PowerfulAdmin for the render CONTEXT with API_SectionContext.
// It returns geometry, the player's language and the current theme palette, so your UI
// matches PowerfulAdmin's look and active theme.

    private void OpenSection(BasePlayer player)
    {
        var ctx = PowerfulAdmin.Call("API_SectionContext", player) as Dictionary<string, object>;
        if (ctx == null)
            return;

        var parent  = (string)ctx["parent"];                  // parent layer for your UI
        var bodyW   = Convert.ToInt32(ctx["bodyW"]);
        var pad     = Convert.ToInt32(ctx["pad"]);
        var palette = (Dictionary<string, string>)ctx["palette"];

        var surface = palette["surface"];
        var accent  = palette["accent"];
        var text    = palette["text"];
        var font    = palette["fontBold"];

        var container = new CuiElementContainer();
        const string root = "myplugin.page";
        container.Add(new CuiPanel
        {
            Image = { Color = surface },
            RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1" }
        }, parent, root);
        container.Add(new CuiLabel
        {
            Text = { Text = "Hello from My Stats", FontSize = 16, Font = font, Color = accent },
            RectTransform = { AnchorMin = "0 1", AnchorMax = "1 1", OffsetMin = $"{pad} -48", OffsetMax = $"{-pad} -16" }
        }, root);
        CuiHelper.AddUi(player, container);
    }

//Context keys:

//    parent        string                  Layer name to parent your UI to (the panel body).
//    root          string                  The panel root layer.
//    bodyW, bodyH  int                     Body width / height in pixels.
//    pad           int                     Standard content padding.
//    lang          string                  The player's active language code (e.g. "en").
//    palette       Dictionary<string,string>  Theme colors + fonts (below). Read it every render -
//                                          the user can switch themes.

// Palette keys (each value is a CUI color string "R G B A", fonts are font names):

//     page, bg, surface, elev, elev2, border, borderSoft,
//    text, text2, text3,
//    accent, accentH, accentSoft, accentText,
//    danger, dangerSoft, success, warn, warnSoft, info, clear,
//    fontBold, fontRegular, fontMono

// Build a CuiElementContainer parented to "parent", give your elements stable names, and
// prefer repainting a single named element over a full redraw to avoid a jumpy panel.



// Return extra [label, value] rows shown on the player card. The argument is the target
// steamid as a string.

    private List<string[]> CardRows(string steamId)
    {
        if (!ulong.TryParse(steamId, out var id))
            return null;
        return new List<string[]>
        {
            new[] { "Score", GetScore(id).ToString() },
            new[] { "Rank",  GetRank(id) }
        };
    }

Call API_RefreshPlayerCard(steamId) after your data changes to repaint the card.



// "settings" draws controls into a collapsible card on the Settings page; "settingsHeight"
// tells PowerfulAdmin how tall it is (used to size the scroll area). Use the same palette
// via API_SectionContext. After saving a value, call API_RefreshSettings(player) to repaint.

    private void DrawSettings(BasePlayer player, CuiElementContainer c, string card, int panelWidth)
    {
        var ctx = PowerfulAdmin.Call("API_SectionContext", player) as Dictionary<string, object>;
        var palette = ctx?["palette"] as Dictionary<string, string>;
        var text = palette?["text"] ?? "1 1 1 1";

        c.Add(new CuiLabel
        {
            Text = { Text = "My option", FontSize = 12, Color = text },
            RectTransform = { AnchorMin = "0 1", AnchorMax = "1 1", OffsetMin = "16 -40", OffsetMax = "-16 -16" }
        }, card);
        // add buttons / input fields here, wire them to your own console commands
    }

// settingsHeight must return a STABLE height for the current state. PowerfulAdmin sizes the
// Settings scroll once; if your card can grow, return the maximum height (or trigger a full
// refresh) so the bottom is never clipped.



// "popupActions" is a dictionary of named handlers. Each handler is called with the admin,
// the target steamid and the target name. PowerfulAdmin enables the popup "Ban" button while
// some section registers an action under the key "ban", and routes the click to your handler.
// A typical handler arms your own dialog and navigates to your section:

    private void OnBan(BasePlayer admin, ulong steamId, string name)
    {
        // prepare your dialog state for (steamId, name) ...
        PowerfulAdmin.Call("API_OpenSection", admin, SectionId);
    }

    // in the section definition:
    ["popupActions"] = new Dictionary<string, Action<BasePlayer, ulong, string>>
    {
        ["ban"] = OnBan
    }


    API_AddSection(Dictionary<string,object> def)  // -> bool
//        Register/replace a section.

    API_RemoveSection(string id)                    // -> bool
//        Remove a section (call in Unload).

    API_OpenSection(BasePlayer player, string id)   // -> bool
//        Navigate the player to a section.

    API_SectionContext(BasePlayer player)           // -> Dictionary<string,object>
//        Geometry + lang + palette for rendering.

    API_RefreshSettings(BasePlayer player)          // -> null
//        Repaint the Settings page (after a settings change).

    API_RefreshPlayerCard(string steamId)           // -> null
//        Repaint a player card.

    API_ReopenPanel(BasePlayer player)              // -> null
//        Re-open the whole panel for the player.

    API_Log(string message, string category = null)  // -> bool
//        Write a line into PowerfulAdmin's Logs. Category e.g. "Cmd", "Info".

    API_RustHours(string steamId)                   // -> string
//        Player's Rust hours ("N h", "..." while loading, "n/a", or "NO STEAM-API KEY").
//        Needs a Steam API key configured in PowerfulAdmin.

    API_KnownPlayers()                              // -> List<string[]>
//        Every known player as [steamid, name, online] (online = "1" / "0"), online first.

    API_GetInput(string key)                        // -> string
//        Read a stored input value (e.g. a shared setting).

    API_GetToggle(string key, bool def)            // -> bool
//        Read a stored toggle.

    API_GetSelect(string key, string def)           // -> string
//        Read a stored select value.                         

// Example - reading hours and logging:

    var hours = PowerfulAdmin.Call("API_RustHours", steamId.ToString()) as string ?? "n/a";
    PowerfulAdmin.Call("API_Log", $"checked {steamId}: {hours}", "Info");

    if (PowerfulAdmin.Call("API_KnownPlayers") is List<string[]> players)
        foreach (var p in players)
        {
            // p[0] = steamid, p[1] = name, p[2] = "1" (online) / "0" (offline)
        }

 

 

PowerfulAdmin administer your Rust server the way it should be: fast, visual, and powerful.

live console.png


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
2.7m
Total downloads
Customers
11.5k
Customers served
Files Sold
164.3k
Total sales
Payments
3.5m
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.