Skip to content

Arrival points

Config.Spawns is the whole feature. Only the location id travels over the wire, and the server refuses anything not in the config.

{
id = "legion",
label = "Legion Square",
district = "Downtown Los Santos",
blurb = "The middle of everything. Traffic, tourists and trouble.",
coords = vector4(195.17, -933.77, 30.69, 144.5),
art = "downtown",
accent = "#e3c069",
tags = { "CENTRAL", "BUSY", "STARTER" },
},

Stand where you want it, face the way the character should face, and run /ccspawn <id> <label> — it prints the whole block, camera framing included.

Each location draws a built-in vector scene named by art and tinted with accent. For real screenshots, drop a .jpg named after the location’s id into html/images/spawns/legion.jpg, vespucci.jpg and so on. No config edit; the file name is the wiring, and a missing file leaves the artwork showing, so you can add them one at a time. 960×540 is plenty.

The two cards that are not locations take a file the same way: property.jpg for every house and apartment a character owns, and last.jpg for “Last Known Location”. Full list and the order each card searches in: html/images/spawns/README.txt.

Every option — enabled, allowLastPosition, askOnCreate, default, livePreview, previewDelay, remember, lastImage, and the full locations field list — is in Config reference § 6.

A character who owns a house, flat or motel room gets a card for it at the front of the rail. Choosing it lands them at their own front door and asks the housing script to let them in, so the interior, stash, wardrobe and routing bucket are all set up by the resource that owns them.

Read with no configuration at all: qbx_properties, ps-housing, qb-apartments, qb-houses and esx_property.

Ownership is read from the housing script’s own table and checked again on the way in. Nothing here creates, buys, sells or deletes a property, and no housing table is ever written to.

Anything else goes in Config.Housing.custom — naming the table and three columns is usually the whole integration:

Config.Housing = {
custom = {
resource = "my_housing",
table = "my_properties",
owner = "owner_cid", -- citizenid on QB/Qbox, identifier on ESX
key = "id", -- what gets passed to the entry point
enterServer = "my_housing:server:enter",
},
}

The full field list, and what each line of a property card says, is in Config reference § 6.

Turning off the housing script’s own starting-apartment step does not break this — startingApartment on Qbox, Config.StartingApartment on ps-housing, Apartments.Starting on qb-apartments. The housing script keeps running and is still read; what stops is a brand new character being handed a free apartment at login, so their first home card appears once they have somewhere to live.