In-Game Admin Desktop.
Not a Chat Command Menu.
rde_admin is a real draggable desktop window for FiveM ox_core — player manager, live console, ingame database CRUD, and native ox_core bans, gated behind triple-layer admin verification so a single mis-configured ACE can never lock you out of your own server.
Overview
Every other admin panel is either paid, ESX/QB-only, a one-line chat-command menu, or a Tebex rug-pull waiting to happen. rde_admin replaces all of that with a real desktop window UI — draggable, macOS-style traffic lights, multi-page sidebar — built entirely on ox_core native RPC instead of lib.callback.
Why this over a Tebex admin panel
| Other Admin Scripts | rde_admin |
|---|---|
| Paid Tebex resources | 100% free forever — RDE Black Flag |
| ESX / QBCore bloat | ox_core native |
| No ingame DB access | Full ingame DB CRUD, paginated browse + raw query |
| DB row delete drops GTA to windowed mode | NUI-native confirm modal, zero focus loss |
| Clicking in the panel fires your weapon | All combat inputs disabled while the panel is open |
| 0.5ms+ idle | < 0.01ms idle when closed |
Quick Start
Dependencies & load order
overextended/* repos — ox_core was discontinued in 2025 and forked by the community.
-- Dependencies first — order matters!
ensure oxmysql
ensure ox_lib
ensure ox_core
-- The admin panel
ensure rde_admin
-- Grant ACE permission to your admin group
add_ace group.admin rde.admin allow
add_principal identifier.steam:XXXXXXXXXXXXXXXXX group.admin
Open the panel
The rde_admin_warns table auto-creates on first boot — no SQL import needed. In-game: press F9, or type /rde_admin_toggle in F8.
Triple Admin Verification
Three independent layers. Any one passes = admin. The first layer to pass is cached for the session.
| Layer | Source | Use Case |
|---|---|---|
| 1 — ACE | IsPlayerAceAllowed(src, 'rde.admin') | Standard admins, server.cfg-driven |
| 2 — ox_core Groups | player.getGroup({...}) | Full ox_core integration, group hierarchy |
| 3 — Identifiers | Hardcoded steam/license/discord IDs | Emergency back door for the architect |
This model is borrowed from rde_doors — set up Layer 3 with your own Steam identifier first and you have a guaranteed back door.
[RDE_ADMIN] Admin check for SerpentsByte: GRANTED
Reason: ace:rde.admin
Your identifiers:
• steam:110000101605859
• license:abc123def456...
• discord:456789012345678
Configuration
config.lua is fully self-documented. Defaults work out of the box.
Config.OpenKey = 'F9'
Config.AdminSystem = {
acePermission = 'rde.admin',
oxGroups = { admin=true, superadmin=true, management=true },
identifiers = { 'steam:110000101605859' }, -- emergency back door
}
Config.DB_MaxRows = 500 -- hard cap per browse page
Config.DefaultLanguage = 'en' -- or 'de'
Debug Commands
| Command | Notes |
|---|---|
| /rde_admin_toggle | Open or close the admin panel (same as F9) |
| /rde_admin_check | Diagnose your admin status — GRANTED/DENIED + reason + all identifiers |
With Config.Debug = true, every RPC dispatch is logged with action name, source, request ID, and admin-cache state on both client (F8) and server console.
Common Pitfalls
Real bugs found while building this — worth reading before you hit them yourself.
Panel opens but every page shows "Access Denied"
This was the v1.0.x NUI hostname bug. NUI fetch URLs were resolving as cfx-nui-rde_admin instead of rde_admin on some FiveM builds.
Fix: patched in v1.1.0 with dynamic hostname detection via GetParentResourceName(). If you're still on v1.0.x, update.
Deleting a DB row drops GTA to windowed mode
The delete confirmation used the browser's native window.confirm(), which causes GTA V to lose focus every time.
Fix: replaced with an NUI-native confirm modal in v1.1.2 — fully inside the panel, zero GTA focus loss.
Clicking inside the panel fires your weapon
While the panel was open, GTA V still received mouse-click events as INPUT_ATTACK / INPUT_ATTACK2, so clicking inside the UI could fire a weapon or start a melee attack.
Fix: v1.1.3 adds a dedicated thread that calls DisableControlAction every tick for all combat inputs while the panel is open, releasing instantly on close.
Why no lib.callback?
Community ox_lib has a vararg-with-nil dispatch edge case when fired from inside a RegisterNUICallback coroutine on FiveM b3000+.
Fix: replaced entirely with a 40-line native RPC layer (monotonic request-IDs, single-shot resolve guard) since v1.1.0.
FAQ
Do I need ox_inventory or ox_target?
No — rde_admin only needs oxmysql, ox_lib and ox_core.
Console page is empty, what's wrong?
On versions before v1.1.1 this was a missing initial-buffer load — update to v1.1.2+. If it's still empty, set Config.Debug = true and check F8 for RPC dispatch logs when the Console page opens.
Can DROP/TRUNCATE/ALTER be run from the DB manager?
No — these are blocked server-side regardless of admin level, and every UPDATE/DELETE carries a hard LIMIT 1.
Changelog
Bugfix — attack inputs (weapon fire, melee) blocked while the NUI panel is open.
Bugfix — DB row delete no longer triggers window.confirm() / GTA windowed mode; NUI-native modal instead.
Fixed missing initial-buffer load on Console page open.
Breaking fix — NUI hostname resolution (cfx-nui- bug). Replaced lib.callback with native RPC layer.