Skip to content

qbx_spawn (compatibility marker) ​

This resource contains no code. It exists only so that its name is present and started.

Why it is needed ​

You only need this if you are running lumo-spawn on Qbox while keeping Qbox's own character selection (useExternalCharacters = false).

After a character is chosen, qbx_core/client/character.lua decides where to send the player like this:

lua
if GetResourceState('qbx_apartments'):find('start') then
    TriggerEvent('apartments:client:setupSpawnUI', character.citizenid)
elseif GetResourceState('qbx_spawn'):find('start') then
    TriggerEvent('qb-spawn:client:setupSpawns', character.citizenid)
    TriggerEvent('qb-spawn:client:openUI', true)
else
    spawnLastLocation()
end

It checks for a resource named qbx_spawn, but the events it then fires are the qb-spawn: ones that lumo-spawn already handles. So if you delete qbx_spawn and install lumo-spawn, that check fails, the branch is skipped, and the player is dropped at their last location without ever seeing the spawn menu.

Starting this empty resource satisfies the name check. The real work is still done by lumo-spawn, which is listening for those same events.

The alternative is editing qbx_core, which gets overwritten every time you update Qbox. This does not.

Install ​

  1. Delete or disable the real qbx_spawn.
  2. Copy this qbx_spawn folder (in [compat]/, next to lumo-spawn in the download) into your resources folder.
  3. Ensure it before lumo-spawn.
cfg
ensure qbx_spawn      # this marker
ensure lumo-spawn       # the real one

When you do NOT need this ​

If you also run Lumo lumo-multicharacter (with useExternalCharacters = true in qbx_core/config/client.lua), Qbox's character selection never runs, so nothing ever performs that check. Delete this marker — lumo-multicharacter calls lumo-spawn directly.