Troubleshooting
The map does not open after selecting a character
- Check the start order:
oxmysql,koja-lib, thenkoja-spawnselector, and your multicharacter after it. - ESX:
Config.Open.OnPlayerLoadedmust betrue. New characters skip the map unlessConfig.NewCharacter.UseSelectoristrue. - QBCore / QBox:
Config.QbSpawnCompatmust betrue, andqb-spawnmust be removed. - Koja Multicharacter: it opens the map itself — see its troubleshooting.
- Use
/spawnselectoras an admin. If that opens it, the problem is the trigger, not the selector.
Two spawn screens show up
Another spawn resource is still running (qb-spawn, ps-spawn, a spawn screen inside your multicharacter). Remove it or turn its spawn screen off.
Everyone sees "Police only" on the police station
The lock reads the job from koja-lib (KOJA.Server.GetJobInfo). Check that the job name in jobs = { police = 0 } matches your framework's job name, and the minimum grade.
With onDuty = true, the player must be on duty. Change the rule in ServerEditable.GetJob or ServerEditable.CanAccess if your duty system is different.
"Last location" is missing or wrong
- It is saved every
SaveIntervalseconds, on logout and on disconnect. A server crash loses at most one interval. - Positions in another routing bucket are skipped (
IgnoreBuckets). A player who logged out inside an instanced interior comes back at their previous saved spot. - After a fresh install, the position comes from
users.position/players.positionuntil the first save.
The player falls through the map or spawns in the air
The camera flight waits up to Config.Cinematic.LoadTimeout ms for collision. Raise it on slow clients, and check that the z of your spawn is at street level (stand there and use the coordinates of your ped).
The 3D map is black or blurry
- Black map: the client has no WebGL in the NUI (very old GPU or drivers). Update the graphics drivers.
- Blurry up close without internet access to the Rockstar map CDN: the sharper zoom 7 tiles cannot load, so the shipped zoom 6 tiles are used. Set
Config.Map.OnlineDetail = falseto stop trying.
ESC does nothing
Cancelling is off by default, so a player cannot skip spawning. Set Config.Open.CanCancel = true, or pass canCancel = true to Open.