What goes wrong most often, what it actually means, and what to do about it. Most of these are start order or a setting, not faults — read the server console from the top before opening a ticket.
Installation and Start-up#
The console freezes with "You have renamed the script!"
The folder is not named exactly qs-interface. This lock is deliberate. Rename the folder back, update the ensure line and restart the server.
Error loading custom.standalone.client or custom.standalone.server
No framework was running when Interface started. Either it starts later in server.cfg — move ensure qs-interface below it — or the framework folder has another name; add that name to the frameworks table in config/config.lua.
"could not create qs_interface_settings"
Your database user may not create tables. Import database/database.sql by hand and restart — until then /interfaceconfig shows the defaults but cannot save.
"Please remove esx_cruisecontrol" repeats in the console
esx_cruisecontrol has its own seatbelt, which fights this one. Remove it from server.cfg and restart.
"[esx_rpchat] is not necessary anymore"
Just a warning: Interface already provides /me, /do, /ooc and the rest, so it stops esx_rpchat from starting. Remove its ensure line to silence it.
The console is full of [INTERFACE DEBUG] lines
Config.Debug in config/config.lua ships true. Set it to false — that also removes the test commands players could otherwise run.
"Locale xx is missing key …"
Your translation is older than the resource. The missing text shows in English until you add the named key to locales/xx.json — copy it from en.json.
The Settings Panel#
"You do not have permission to open the interface settings"
The panel needs the ace command.interfaceconfig — being an ESX or QBCore admin is not enough. The server console prints who tried and the line to add:
add_principal identifier.license:xxxxxxxx group.admin
add_ace group.admin command.interfaceconfig allowRenaming the command in the panel does not change the ace.
A saved setting changed nothing
Look for the Needs restart badge on it: command names, keys, the HUD editor, the report command, the chat key and the stress system are read once at start. Restart qs-interface — and qs-chat too for the chat key. A new default key also only reaches players who never rebound it.
I want the shipped defaults back
Reset section restores one section, Reset everything empties qs_interface_settings. Both apply to every player immediately.
The HUD and the Minimap#
The HUD never appears after spawning
Interface starts when the framework reports the character as loaded — esx:playerLoaded or QBCore:Client:OnPlayerLoaded — or through qs-multicharacter. A multicharacter or spawn selector that skips those events should call exports['qs-interface']:Initialize() once the player is in the world. /openui confirms the HUD itself works.
The first-time setup cannot be clicked, or sits under another screen
Another UI holds the mouse — usually a loading screen that never closed, or a spawn menu. Close it before calling Initialize, or switch on /interfaceconfig → HUD → Skip first setup so players start on the default HUD and use F9 later.
Two HUDs, or the old bars still show
Another HUD resource is still running — esx_hud, qb-hud, ps-hud or a speedometer. Remove it from server.cfg; it may also be started by a category folder.
A widget was dragged off-screen
/resethud puts every widget back without touching the styles.
There is no 3D option in Minimap Shape
Offer the 3D minimap is off in /interfaceconfig → 3D minimap. Switch it on; players who had chosen 3D get it back.
"3D minimap unavailable … using the square minimap"
That player's game could not draw the 3D map — usually a graphics card or driver without WebGL2, or a damaged install of the resource. They get the square map for the session and nothing else breaks. Updating graphics drivers fixes most cases; if it happens to everyone, re-download the resource.
The minimap disappears on foot, or shows at the wrong time
Hiding it on foot is /interfaceconfig → Vehicle → Radar only in vehicles. For a frame shown or hidden at the wrong moment, type qs_mapdebug in the F8 console: it prints every condition it checked — often another script hiding the radar, which SetMapBorderVisible can follow.
Hunger and thirst always show 0
On ESX they come from esx_status (with esx_basicneeds); make sure both run. On QBCore they come from the player's metadata, which needs the core's standard hud:client:UpdateNeeds event. A custom needs system is wired in getStatus in the client bridge.
The fuel gauge is stuck or wrong
Without a supported fuel script, the vehicle's native level is read. A script that stores fuel elsewhere needs a one-function bridge — see Integrations. If yours is supported, make sure it starts before qs-interface.
The voice ring never changes size
Interface fell back to standalone voice: pma-voice or saltychat started after it, or is renamed. Fix the start order or add the name to voiceChats in config/config.lua.
Stress never rises
It ships off: switch it on in /interfaceconfig → Stress and restart the resource. Jobs without stress never gain it, so test it as a civilian. On ESX, the stress column must exist — import esx.sql.
Every player's HUD reset after a restart
qs:showcase is set to true — showcase mode forgets the HUD at every login. Layouts are otherwise kept by each player's game client, so clearing the FiveM cache also clears them.
The Chat#
Messages appear twice, or the old chat shows up
The default chat is still running. Delete it from citizen/system_resources in your artifacts — updating the artifacts brings it back — and remove ensure chat.
T does nothing
Check that qs-chat is started after qs-interface and that /interfaceconfig → Chat → Chat is on. A player who pressed L until "Hidden" only needs to press it again.
"Plain chat is disabled" when typing normally
By design: without a command, nothing is sent. Use /ooc, or switch on Plain global chat in /chatadmin → Actions.
"This command is currently disabled"
An admin turned it off in /chatadmin → Commands.
A player is blocked from chatting for a few seconds
The anti-spam. Pick a gentler Anti-spam level in /interfaceconfig → Chat, or switch it off.
The chat shows the Steam/FiveM name instead of the character's
That is what is shown until a character is loaded. If it persists while playing, the framework is not returning a first name: on ESX, check firstname and lastname in users; for anything custom, edit getUserName in the server bridge.
/chatadmin does nothing, or /a says no permission
The framework does not consider that player an admin. On ESX they need the admin or superadmin group; on QBCore the god or admin permission or the command ace. See Installation.
3D bubbles never appear
They need the master switch on in /interfaceconfig → Chat → 3D bubbles, then Enabled and the command ticked in /chatadmin → 3D Bubbles. A player typing faster than the cooldown is told to wait.
The L key does not hide the chat
Check Hide/show chat key in /interfaceconfig → Chat, then restart qs-interface and qs-chat. Changing the key only sets the default: players who already had the binding keep theirs, and anyone can rebind it in Settings → Key Bindings → FiveM.
VIP Tags and Logs#
A tag edited in the database does not show
Tags are cached for up to an hour. Run refreshvip <id | license>, or call the refreshVip export after writing. Check also that tag_id is one of the five tier names and the license starts with license:, not license2:.
/redeemvip says the transaction is invalid
Check that sv_tebexSecret is set in server.cfg, that the ID is the full tbx-… transaction ID from the receipt, and that it was not redeemed before — each one works once.
Discord logs are not posted
Set at least chat in server/webhooks.lua — every other channel falls back to it — and restart. Screenshots additionally need screenshot-basic and a valid Fivemanage token; an invalid token prints an error naming it.
Still stuck? Open a ticket and include your
server.cfgstart order, the console output from the start of the resource, and your framework and its version.



