Lumo Admin Menu
Staff console: moderation, bans, ranks, vehicles, developer tools and an object mapper.
Version 1.0.3 · Frameworks QBCore · Qbox · ESX · standalone · Requires oxmysql
Config files · Exports & events · Changelog
A staff console for FiveM: player moderation, bans and warnings, a rank manager, a vehicle hub, developer tools, an object mapper and server controls, in one fast panel. It works on Qbox, QBCore, ESX and standalone servers from the same files.
- Version 1.0.0
- Requires only oxmysql
- Opens with F10 or
/adminmenu(both configurable)
What's inside
| Page | Highlights |
|---|---|
| Dashboard | Players / staff / open reports / active bans / uptime, quick toggles, recent audit entries |
| Players | Search and filter, then tabs: overview (identifiers, money, health, session time, snapshot & compare), moderation (warn / kick / ban, warnings, private staff notes, PM, voice mute, jail, community service, bank freeze), character (job, gang, money, ped model, appearance, routing bucket), items (items, weapons, a vehicle straight into their garage, inventory), teleport (to you, to a location, to another player, to coords), fun, saved rank. Screenshot a player's screen (screenshot-basic). |
| Reports | /report opens a ticket: claim, reply (the player sees it in chat), go to / bring, close and reopen |
| Bans | Searchable ban list with unban, offline ban by character / licence |
| Audit log | Every admin action, searchable, stored in lumo_admin_logs |
| Server | Announcements, weather and time, restart countdown, vehicle cleanup, clear chat, revive all, repair all, kick all, staff chat |
| Vehicles | Spawn from your framework's list by category, 25 tools for the current vehicle, plates |
| Self | Noclip, god mode, invisibility and more, teleport list, waypoint and "back", slow motion, powers |
| Developer | Live position inspector (street, zone, interior, room hash, ground Z), copy in every format, hash calculator, coordinate converter, entity inspector, overlays, cinematic mode, clear area |
| Objects, Resources, Commands, Settings | Prop placer, resource start / stop / restart, every command you may run, panel position and size, config editor |
Navigation: Ctrl+K searches players, pages, actions, locations and vehicles. Alt+1-9 jumps to a page, Q/E steps through pages, Esc closes. Hold the eye button in the top bar to see the game behind the menu.
Install
Put
lumo-adminmenuin your resources folder.In
server.cfg, start it after oxmysql and your framework:cfgensure oxmysql ensure qbx_core # or qb-core / es_extended / nothing for standalone ensure lumo-adminmenuGive your staff a rank (see Ranks). The quickest way is with ACEs:
cfgadd_ace group.admin lumoadmin.god allow add_principal identifier.license:YOUR_LICENSE group.adminOptional: send admin logs to Discord.
cfgset lumo_admin_webhook_high "https://discord.com/api/webhooks/..." # bans, ranks, money, items set lumo_admin_webhook "https://discord.com/api/webhooks/..." # everything else
Restart the server. The database tables (lumo_admin_bans, lumo_admin_warns, lumo_admin_staff, server_objects) are created on first start, and sql/lumo-adminmenu.sql has the same schema if you prefer to import it by hand.
Coming from qb-adminmenu? Remove or stop qb-adminmenu. This resource provides that name, so scripts that depend on it keep working. Ranks saved by older Lumo builds are imported automatically.
Ranks
Ranks are listed in Config.Ranks, highest first (default: god → admin → staff). Every action has a minimum rank in Config.ActionPermissions, and higher ranks inherit everything below them. A player has a rank when any of these is true:
| Source | Example |
|---|---|
The lumoadmin.<rank> ACE | add_ace group.mod lumoadmin.staff allow |
A framework ACE named in the rank's aces (QBCore and Qbox) | QBCore's admin ACE, Qbox's group.admin ACE |
The player's ESX group, mapped in Config.ESXGroups | superadmin → god, admin → admin |
| A rank saved in the menu's Permission Manager | Players → Permissions |
The plain command ACE | always the top rank |
Ranks saved in the menu are stored per licence. On QBCore and Qbox they are also given to the framework for that session, so the framework's own staff commands open up too. Nobody can grant a rank above their own.
Frameworks
Config.Framework = 'auto' picks Qbox > QBCore > ESX > standalone.
| Qbox | QBCore | ESX | Standalone | |
|---|---|---|---|---|
| Players, character names | ✔ | ✔ | ✔ | Steam/FiveM name |
| Give item / weapon | ox_inventory | qb / ox / qs inventory | built-in, ox, qs | — |
| Set job + grade | ✔ | ✔ | ✔ | — |
| Money (cash / bank / crypto*) | ✔ | ✔ | ✔ (*black money) | — |
| Save vehicle to garage | player_vehicles | player_vehicles | owned_vehicles | — |
| Offline ban search | players | players | users | — |
| Bans, warnings, reports, ranks | ✔ | ✔ | ✔ | ✔ |
| Noclip, spectate, dev tools, powers, objects | ✔ | ✔ | ✔ | ✔ |
Anything that a server cannot do is hidden from the menu, not left broken.
Integrations
Each entry in Config.Integrations is 'auto' (first one found), 'none' (switch the feature off) or a resource name. You can also pass a table of your own functions, for example:
lua
revive = { provider = 'custom', server = function(target)
TriggerClientEvent('my_ambulance:revive', target)
end },| Feature | Supported out of the box |
|---|---|
| Inventory | lumo-inventory, ox_inventory, qb-inventory, qs-inventory, ESX built-in |
| Revive / kill | qbx_medical, qb-ambulancejob, esx_ambulancejob, wasabi_ambulance; otherwise a native revive |
| Clothing editor | sn_appearance, lumo-clothing, illenium-appearance, fivem-appearance, qb-clothing, esx_skin |
| Weather & time | qb-weathersync, Renewed-Weathersync, cd_easytime, vSync; otherwise sent to every client |
| Vehicle keys | qbx_vehiclekeys, qb-vehiclekeys, wasabi_carlock, qs-vehiclekeys |
| Fuel | ox_fuel, cdn-fuel, LegacyFuel, ps-fuel, qb-fuel, lj-fuel; otherwise the native fuel level |
| Jail | qb-prison, qbx_prison, xt-prison, or your own set / release functions |
| Object gizmo | object_gizmo (free, not included). Without it, objects are saved where you place them |
Commands
All names live in Config.Commands; rename one, or set it to false to leave it out (ESX already has /noclip and /coords, for example).
| Command | Who | What |
|---|---|---|
/adminmenu, /admin | staff | open the menu |
/report <message> | everyone | message online staff |
/reportr <id> <message> | staff | reply to a report |
/reporttoggle | staff | stop / start receiving reports |
/staffchat <message> | staff | chat with online staff |
/announce <message> | announce | server-wide announcement |
/warn <id> <reason>, /warnings <id>, /delwarn <warning id> | warn | warnings |
/kickall [reason] | kickall | kick every player |
/noclip, /coords, /blips, /names | see config | developer toggles |
/admincar, /maxmods, /fixall, /deletegun | see config | vehicle tools |
/setmodel <model> [id], /restoreappearance [id], /setspeed, /setammo | see config | player tools |
/vector2, /vector3, /vector4, /heading | staff | copy coordinates |
Configuration notes
- Bans are stored in
lumo_admin_bansand checked when a player connects. On QBCore and Qbox they are also written to the framework'sbanstable (Config.Bans.mirrorFrameworkTable). A ban length of0is permanent. - Exploit protection: a player with no staff rank who fires an admin event is banned (
Config.Bans.banOnExploit). Staff who lack the rank for one action are only told no. - Config editor (read and overwrite other resources' config files from the menu) is off by default. Turn it on in
Config.ConfigEditorand list the identifiers allowed to use it. - Server-specific extras (community service, bank freeze, dealers, race access, LumoCoins) are off by default and only appear when enabled and their resource is running.
- Teleport list:
Config.TeleportLocations(Self page and player teleport). - Restart countdown:
Config.RestartWarning.announceAtsets the warnings;quitAtZero = trueshuts the server down at zero so txAdmin restarts it. - Vehicle cleanup:
Config.VehicleCleanup.warnSecondsof chat warning, then every vehicle with nobody inside is deleted. - Reports live in memory for the session (
Config.Reports.keep). Staff notes and the audit log are kept inlumo_admin_notes/lumo_admin_logs. - Player screenshots need
screenshot-basicrunning. - Translations: copy
locales/en.lua, changeLocales['en']to your language code and setConfig.Locale.
Troubleshooting
| Problem | Fix |
|---|---|
| "You do not have permission to open the admin menu" | Your account has no rank. Check the ACE lines above, or your ESX group in Config.ESXGroups. |
| Menu opens but player list is empty | Players have not loaded a character yet. Set Config.Debug = true for a dependency report. |
| Give item says "no supported inventory" | Start one of the inventories listed above, or set Config.Integrations.inventory. |
| Revive does nothing | Name your ambulance resource in Config.Integrations.revive or add a custom server function. |
| Weather snaps back | A weather sync resource that is not listed is overriding it. Add your own setWeather / setTime functions. |
Credits
- Fonts: Barlow Semi Condensed, Barlow Condensed and Oxanium, under the SIL Open Font License (licence files are in
nui/src/fontsin the open-source edition). object_gizmois a separate free resource (GPL-3.0) and is not included.
© 2026 Lumo — see LICENSE.txt.