Troubleshooting
First step for almost everything:Config.debug = true, restart, reproduce, watch the server console for [awoken_spawn] lines.
Selector doesn’t open
Look for[awoken_spawn] open src=X isNew=Y -> N cards.
- Line missing → nothing triggered the open.
- Confirm
Config.open.autoOpenOnFrameworkLoad = true. - Confirm your framework fires one of the events listed in Installation.
- If you’re using a standalone multichar, verify it either fires the framework’s normal player-loaded event, or is listed in
Config.open.multichar, or callsawoken_spawn:server:requestOpen.
- Confirm
- Line present, no UI on the client → check F8 console for JS errors. After a Vite rebuild, the asset hash filenames in
html/index.htmlneed to match what’s actually inhtml/build/.
/spawnselect says “Unknown command”
Only registered when Config.debug = true. Flip and restart.
Character visible during selection
Config.open.hideCharacter = true (default) hides the ped. If something downstream is fighting it, wrap that resource’s visibility writes to skip while the selector is open.
PVP doesn’t work after spawning
Quick test in F8 after a spawn:Config.spawn.setPvpDefault = true.
Pins misaligned
SetConfig.debug = true and use the calibration wizard in the top-right badge (single-click to pick pin coords, or run the two-point wizard for a full worldBounds block). See the Map page.
Last location doesn’t persist
- Confirm
Config.database.enabled = true. - Confirm
oxmysqlis ensured beforeawoken_spawn. - Check the DB — the table (default
awoken_spawn_lastchoice) is auto-created on first run.
The Last Location card isn’t showing at all
This is deliberate when there is nowhere real to send the player. The card used to appear regardless and silently spawn them atConfig.spawn.fallbackCoords,
which looked like “last location is broken” rather than “there is no last
location”.
The card is offered when any of these resolve, in order:
- a position handed over by the multicharacter script
- a usable
coordsvalue inawoken_spawn_lastchoice - the framework’s own saved position (
players.positionon QB/QBX, theusersrow on ESX) — controlled byConfig.database.frameworkFallback
coords column is normal and not corruption: it is what a housing
handoff writes, because the housing script owns the placement.
I picked my property but spawned somewhere else
The housing script did not react to the handoff. Look for this in the client console:client/spawn.lua can be corrected.
New character gets stuck on a black screen
Fixed in the current build, but the symptom to recognise is a black screen after character creation with the selector’s text visible, plus this in the server console:multicharPresent().
Housing property card missing
- Confirm the housing resource is in
Config.housing.detect. - Confirm the player actually owns something in that resource’s DB.
- Order matters — the first available adapter that returns properties wins the handoff.
Discord not posting
Config.discord.webhookis empty ('') by default — off. Set the URL to enable.- Posts are non-blocking, so a bad webhook won’t break spawns — it’ll silently no-op.