# Troubleshooting

## The map does not open after selecting a character

- Check the start order: `oxmysql`, `koja-lib`, then `koja-spawnselector`, and your multicharacter after it.
- **ESX:** `Config.Open.OnPlayerLoaded` must be `true`. New characters skip the map unless `Config.NewCharacter.UseSelector` is `true`.
- **QBCore / QBox:** `Config.QbSpawnCompat` must be `true`, and `qb-spawn` must be removed.
- **Koja Multicharacter:** it opens the map itself — see [its troubleshooting](/new/multicharacter/troubleshooting).
- Use `/spawnselector` as 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 `SaveInterval` seconds, 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.position` until 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 = false` to 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`.
