Before You Begin#
Before installing Admin Menu, make sure your server meets the minimum requirements. Only three things are mandatory; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
| Required | Database access for accounts, roles, bans, reports, logs and the queue. |
| Required | Callbacks and shared helpers. |
OneSync | Required | Spectate, bring, goto, admin tags and Live View need to see players across the map. |
Framework | Optional |
|
Inventory | Optional | Give item and open a player's inventory. |
Vehicle keys | Optional | Hands keys for spawned and given vehicles. |
Weather / Medical | Optional | The weather panel drives your weather script; revive and heal go through your ambulance script. |
| Optional | Attaches a screenshot to Discord logs, together with a Fivemanage token. |
| Optional | Lets staff take their profile picture from their own character. |
Everything framework- or third-party-specific sits behind a small, open bridge file, and the resource picks the right one by looking at what is already running:
Layer | Detected resources |
|---|---|
Framework |
|
Inventory |
|
Vehicle keys |
|
Weather |
|
Medical |
|
Every optional integration falls back quietly. If a resource is missing, that part runs standalone instead of erroring. Integrations has the details and how to pin one by hand.
GitHubReleases · overextended/oxmysqlGitHubReleases · overextended/ox_libDownloading Admin Menu#
After purchasing Admin Menu, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Admin Menu.
After extracting the download, you should have the following:
[sql]/
└── database.sql -- import once, before the first start
[install]/
└── server.cfg -- the ACE lines to paste into yours
qs-adminmenu/
├── config/main.lua -- what you may edit
├── custom/ -- framework bridges (editable)
├── client/custom/ -- inventory, weather and voice bridges (editable)
├── server/custom/ -- inventory, garage, medical, weather and voice bridges (editable)
├── server/webhooks.lua -- Discord webhook URLs
├── locales/ -- 41 languages
└── web/ -- the interface, ready to useThe folder must be named
qs-adminmenu. The interface path, the ACE permissions and every export (exports['qs-adminmenu']) are tied to that name, so a renamed copy stops working.
Installing the Resource#
Move the qs-adminmenu folder into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
└── qs-adminmenu/Then open your server.cfg and make sure every dependency — and everything it should detect — starts before Admin Menu:
set onesync on
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, keys, weather, medical, screenshots
ensure ox_inventory
ensure qs-vehiclekeys
ensure qs-zoneweather
ensure qs-medical-creator
ensure screenshot-basic
ensure qs-adminmenuThe loading order matters for the framework, inventory, keys and medical layers: they are detected once, when Admin Menu starts, so a resource that starts afterwards is not found. Weather is the exception — it is re-detected every time a weather resource starts or stops.
Resource control permissions#
The Resources page starts, stops, restarts and refreshes resources by running the server's own commands, and FiveM only lets a resource do that when you allow it. Add these lines to server.cfg — they are also in [install]/server.cfg:
add_ace resource.qs-adminmenu command.ensure allow
add_ace resource.qs-adminmenu command.start allow
add_ace resource.qs-adminmenu command.stop allow
add_ace resource.qs-adminmenu command.restart allow
add_ace resource.qs-adminmenu command.refresh allowWithout them every resource action answers Command execution failed. Nothing else in the menu needs an ACE.
The Database#
The file is safe to run again on an update: every table is created only if missing, and the seed rows update rather than duplicate. On start the resource also adds any column or permission introduced by a newer version, so a database imported from an older release catches up on its own.
Tables | Hold |
|---|---|
| Staff accounts, the four built-in roles and any you create, and what each role may do. |
| Staff online and on-duty time, and every player's total playtime. |
| Bans and every identifier and hardware token they cover. |
| Player reports with their full timeline. |
| Every logged action and game event, kept 30 days by default. |
| The connection queue, its whitelist and priority tiers. |
| Traffic and ped density, the look of admin tags, and your edits to the vehicle catalogue. |
Claiming Admin Access#
Admin Menu has its own staff accounts, each with a username, a password and a role. Your first account is created in game, and it becomes the server's OWNER automatically if the game already knows you are an admin. Pick one of these routes first:
The usual route. Anybody whose ESX or QBCore group is in Config.AdminGroups is treated as a framework admin: admin, superadmin and god by default.
-- config/main.lua
Config.AdminGroups = {
'admin',
'superadmin',
'god',
}For a standalone server, or to grant access without touching framework groups. Use the license: identifier — or, with Config.MulticharacterAdmin = true, the character id (ESX char1:…, QBCore citizenid).
-- config/main.lua
Config.AdminIdentifiers = {
'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
}Then, in game:
Open the menu
Type
/adminmenuor pressF5. With no account yet, it opens on the registration screen.Register
Choose a username (3–32 characters: letters, numbers,
_ . -) and a password (6–72 characters). A framework admin is approved on the spot with the OWNER role and full access.Bring in your staff
Everybody else registers the same way with
/adminmenu. Their account waits as pending until someone with theauth.approvepermission approves it in the panel. It starts with the MODERATOR role; give them another from Roles & Permissions.
An account is bound to the identifier it was registered from. Logging into somebody else's account from another Rockstar license — or another character, in multicharacter mode — is refused, even with the right password.
Configuring the Resource#
Roles, permissions, admin tags, the queue, traffic density and the weather are edited from the panel and saved in the database. The files are for plumbing:
File | Contents |
|---|---|
| Language, commands and keys, duty rules, detection, admin groups, the console whitelist, protected resources, the editor, bans, logs, reports, Screen Watch and Live View. |
| Discord webhook URLs per category or per event, and the Fivemanage token for screenshots. |
|
|
| Open bridges to frameworks, inventories, garages, medical, weather and voice. |
| Every string the panel and players see, in 41 languages. |
The values worth reviewing first:
Config.Locale = 'en' -- any of the 41 locale codes
Config.OpenCommand = 'adminmenu' -- chat command that opens the panel
Config.Shortcuts = {
openMenu = 'F5',
noclip = 'PAGE_DOWN',
fastAction = 'DELETE',
}
Config.Reports.OpenCommand = 'report' -- the players' report window
Config.Bans.AppealUrl = '' -- shown to banned players
Config.Debug = false -- extra console outputVerifying the Installation#
Restart your server and read the console. You should see the framework that was loaded and every module report that it is ready:
[qs-adminmenu] Framework loaded: esx
[auth.migrations] permission catalog ready
[bans] ready, 0 active ban(s)
[reports.migrations] ready
[logs.migrations] readyFramework loaded: none means no framework was running when Admin Menu started — move it above ensure qs-adminmenu. A line saying a table is missing means database.sql was not imported into this database.
Then join your server and work through the first loop:
Create your account
/adminmenu, register, and you land on the Dashboard as OWNER.Try the shortcuts
Close the panel, press
PAGE DOWNfor noclip andDELETEfor the Fast Action Menu.Send yourself a report
Type
/report, file a bug report, and watch it arrive as an alert and in the Reports page. From here, Usage covers every page of the panel.
Staff permissions, roles, the queue and the admin tags are edited in the panel from here on — no restart needed.



