qbx_spawn

Give the game world time to load before placing the player.

Version
v0.1.1
Updated
Aug 15, 2026
License
GPL-3.0
View qbx_spawn resource View files on GitHub
Browse documentationqbx_spawn
Sections
01 / OVERVIEW

Overview

This modified Qbox spawn menu helps stop players from falling through the map when they choose a normal location. It waits up to ten seconds for the map collision to load before showing the game again. Property spawns still use qbx_properties.

02 / REQUIREMENTS

Requirements

Framework
qbx_core
Required
ox_lib and oxmysql
Optional
qbx_properties for owned-property spawns
Database
players table with stored position data
03 / INSTALLATION

Installation

  1. Place qbx_spawn in resources and keep the expected resource name.

  2. Configure the enabled location names, positions, and directions in config/client.lua.

  3. Start qbx_properties before qbx_spawn when owned properties should appear in the selector.

  4. Test each location after a fresh connection. Check that the ground loads, the player faces the right direction, the screen fades in, and player-loaded events run on the live map build.

04 / CONFIGURATION

Configuration

01

Configure the spawn list

Edit config/client.lua to add, remove, or reorder label and vec4 entries. The current snapshot enables Paleto Bay, Sandy Shores, Legion Square, Mission Row, Vespucci Beach, and Grapeseed.

Exampleconfig/client.lualua
{ label = 'Legion Square', coords = vec4(195.17, -933.77, 29.7, 144.5) }
02

Validate every coordinate

Use safe ground coordinates with the intended heading and verify that the production map build streams collision there. The ten-second wait reduces fall-through risk but cannot correct a bad destination.

03

Decide whether to expose property spawns

Start qbx_properties before qbx_spawn to list properties owned by the player. Keyholder-only properties are not included by the current server query.

04

Keep upstream updates manual

The manifest repository and version checker still point to Qbox-project/qbx_spawn. Review upstream changes against the custom client patch before replacing files.

05 / USAGE

How to use and test it

Test a fresh connection

Join with a character that has a saved position, move through every configured map option, select a normal coordinate, and confirm collision loads before the screen fades in.

Test repeated selector setup

Open the flow with multiple characters or reconnects and confirm the selected button resets to the first entry rather than keeping a stale index.

Validate property entry separately

Select an owned property and confirm qbx_properties handles the interior entry. The new collision-wait helper is intentionally not used on that path.

06 / TROUBLESHOOTING

Troubleshooting

A player still falls through at one spawn
Checks

Validate that coordinate against the active map and collision files. The helper waits up to ten seconds and is a mitigation, not a guarantee for invalid or slow custom-map locations.

Property destinations are missing
Checks

Confirm qbx_properties starts first, the properties table exists, and the current character owns a property. The query does not include properties held only through keys.

Last location cannot be read
Checks

Confirm qbx_core resolves the player, oxmysql is running, and the players row contains valid JSON position data for the character's citizen ID.

An upstream update removes the mitigation
Checks

The version checker targets the upstream Qbox repository. Compare client/main.lua before applying an update and preserve the collision helper and selection reset intentionally.

07 / REFERENCE

Reference

  • The fork is exactly one custom commit ahead of the audited upstream main branch and keeps manifest version 0.1.1.
  • Collision-aware placement applies to ordinary coordinates only; property spawns use qbx_properties.
  • The repository README image is an expired Discord CDN asset and is not used on this site.
  • This GPL-3.0 fork retains Qbox Project attribution and should be treated as a repository snapshot rather than a tagged release.