What goes wrong most often, what it actually means, and what to do about it. Most of these are configuration, not faults — and the console usually says which. Set Config.Debug = true for more detail before opening a ticket.
Installation and Access#
"no database resource found" in the console
Neither oxmysql nor mysql-async was running when Tutorial Creator started. The bundled tutorials still play, but nothing is saved — the creator cannot store tutorials and everybody watches the tutorial on every spawn. Start your database resource before qs-tutorial in server.cfg and restart.
"You are not allowed to open the tutorial creator"
The player has neither the ace command.tutorialcreator nor a group from Config.Creator.adminGroups. The answer is remembered for the session, so after granting access the player must reconnect. On QBCore, group permissions come from the core's own permission list, not from the job — see Installation.
"The interface is still loading, try again in a second"
The overlay was not ready yet, or did not appear within four seconds, so focus was released rather than leaving the player stuck with a cursor. Right after joining, simply try again. If it never works, the resource was copied incompletely — re-copy the whole folder from the download.
"framework loaded: standalone" on a server with a framework
The framework was not running when it was looked for. Start it before qs-tutorial, or pin it with Config.Framework. A framework you added yourself under custom/ is never auto-detected and must always be pinned. If the console also prints custom/<name>/client.lua could not be loaded, that adapter has a Lua error — the message after it says where.
Playing the Tutorial#
It plays every time somebody joins
Only once per character is off for that tutorial (Settings tab). Dispatch ships with it off on purpose.
Nothing can be saved: check the console for a database error.
Your framework adapter returns no identifier, so progress goes nowhere. Check
getIdentifierincustom/<framework>/server.lua.
It never plays on spawn
Config.Tutorial.autoStartis off — correct if your spawn script starts it.This character has already watched it.
/resettutorialand rejoin to test.Auto-start is waiting for a spawn screen that never reported closing. A custom spawn script must call
exports['qs-tutorial']:SetSpawnBusy(false)once the player is in the world.The live tutorial has no enabled steps.
It opens on top of the character selection
Your multicharacter or spawn resource is not one of the stock ones the tutorial listens to. Call SetSpawnBusy(true) when its screen opens and SetSpawnBusy(false) after the player spawns, or start the tutorial from the spawn script yourself — see Integrations.
Players are stuck on a step
The step waits for a click and there is no visible Continue element — or it is scoped with Shows on to another step. The Settings tab and the checklist both warn about this. Add a Continue element, or set the step to advance After a while. Typing /tutorial again always stops it.
The Skip button does nothing
Let players skip it is off for that tutorial. The element still draws in the creator so the layout can be designed, but it is inert in game.
Buildings are missing or the shot fades in on an empty world
The shot did not finish loading in time. Leave Config.Cinematic.focusStreaming on and raise streamWait (between steps) or maxStreamWait (the first shot). Very distant shots in a row stream slowest — a blend between nearby shots hides it best.
The weather or time stays changed afterwards
Check that Config.Cinematic.restoreWeather and restoreTime are on. A weather sync script then puts the server's weather back on its next tick.
A button that runs a command does nothing
The command is in Config.Actions.blockedCommands — the F8 console says a tutorial button tried to run the blocked command — or the player is not allowed to run it. The command runs exactly as if the player had typed it.
I restarted the resource during a tutorial
Handled. On stop and start, the camera is destroyed, focus is released, the player is made visible and unfrozen and the screen fades back in — nobody is left in a black void.
The Creator#
"Could not save the tutorial"
The server already holds
Config.MaxTutorialssaved tutorials. Delete one or raise the limit.The tutorial is over 1 MB — usually an image pasted as data instead of a file in
images/.The database is not connected; see the console.
"Save the tutorial before setting it live"
Set live pushes the saved version, so unsaved changes must be saved first. Use Play in game to try an unsaved draft.
"Could not delete the tutorial"
Only saved tutorials can be deleted. A bundled tutorial you have never saved lives in presets/, not in the database, so there is nothing to remove.
The checklist says steps need a camera
Those steps still have the default position a new step is created with. Open each one and press Capture from game. Steps set to Follow the player never need one.
A bundled tutorial's shots are slightly off
Expected on some maps: the bundled coordinates were written by hand, not captured on your build. Fly there to check a shot and Capture from game to fix it, then save.
Music, Video and Media#
A video is a black rectangle
It is an .mp4. FiveM's browser cannot decode H.264. Convert it to WebM (VP9) — see Usage → Music and Video.
My file does not appear in the creator's dropdown
The folders are read once, when the resource starts — restart it after adding files. Check the extension too: PNG, JPG, WebP or GIF in images/, WebM in videos/, OGG, MP3 or WAV in audio/. If the console says io.readdir is missing on this server build, update your server artifacts — until then, type the path in the URL field instead.
Music or video that used a YouTube link no longer plays
This is intended. YouTube links and other external URLs broke playback for players, so music and video now only play from the resource's own audio/ and videos/ folders, and any link is ignored. A tutorial saved with a link in an older version still plays, but without that track or video.
To fix it, add the file to the folder (OGG, MP3 or WAV for music, WebM for video), restart the resource, pick it from the dropdown in the creator and save. See Usage → Music and Video.
Fonts look different from the screenshots
Noir and Skyline use Georgia and Dispatch uses Courier New, which come with Windows rather than with the resource. Change the font on those elements if you want a bundled one.
Console Messages#
Every message starts with [qs-tutorial]. Server messages are in the server console, client ones in F8.
Message | Means |
|---|---|
| The database resource was found but did not finish starting within 20 seconds. Nothing will be saved until a restart. |
| A bundled tutorial file was deleted or renamed, or is no longer valid JSON. Restore it from the download. |
| A saved tutorial's row in |
| An export, command or event asked for an id that does not exist. The id is under Settings in the creator. |
| Nothing is live and the default could not be found. Set one live in the creator. |
| The interface did not answer in time; focus was released. See the loading message above. |
Still stuck? Open a ticket and include your framework and its version, the
[qs-tutorial]lines from the server console withConfig.Debug = true, and a screenshot of the F8 console for anything about the interface.



