SleepyCode
Home
AboutBlogSubscriptionDocs
Cart0
SleepyCode
Cart0
  • πŸ’£Documentation

Scripts

  • Multicharacter
    • Features
    • Installation
    • Framework Setup
    • Core Settings
    • Characters and Slots
    • Identity
    • Spawn Selector
    • Camera and Scene
    • Arrival and Welcome
    • Starting Items
    • Loading Screen
    • Discord
    • Logs
    • Theme and Branding
    • Translations
    • Commands and Permissions
    • Database
    • Integrations
    • Hooks
    • Exports and Events
    • Examples
    • Security
    • Troubleshooting
  • DevTool
  • Fishing
  • πŸ—ƒοΈGarages V2
  • 🚌Bus Job
  • πŸš—Vehicle Shop V1
  • πŸ—ƒοΈGarages V1
  • 🍁Selldrugs
  • πŸŽ…Advent Calendar
  1. Docs
  2. /Multicharacter
  3. /Spawn Selector

Multicharacter

Spawn Selector

config/spawn.lua - spawn rules, private world, spawn camera, and the spawn selector with location photos.

On this page6 sections
  • Basic spawn
  • Private world
  • Spawn camera
  • Spawn selector
  • Location photos
  • Translating locations

Basic spawnLink copied

Lua
Config.Spawn = {    default            = vector4(-1037.9153, -2737.6790, 20.1693, 328.8077),    useLastPosition    = true,    fadeCamera         = true,    freezeDuringSelect = true,}Config.FirstSpawn = vector4(-1037.9153, -2737.6790, 20.1693, 328.8077)
OptionDescription
defaultUsed when there is no better location.
useLastPositionThe character returns to where it logged out.
fadeCameraFades the screen around the spawn.
freezeDuringSelectThe character stands still while the menu is open.
FirstSpawnLanding spot for a new character after the airplane intro. false uses default.

The Z coordinate snaps to the ground on spawn, so a coordinate one meter too high does not leave the character in the air.

Spawn resolution order

The server decides where the character spawns. The client only sends the key of the selected location, never coordinates.

  1. 1.
    The ResolveSpawn hook in bridge/server/editable.lua. If it returns something, it wins.
  2. 2.
    First play of a new character: Config.FirstSpawn.
  3. 3.
    The location picked in the spawn selector.
  4. 4.
    Last position, when useLastPosition = true.
  5. 5.
    Config.Spawn.default.

An unknown key, or a key sent while the selector is disabled, ends at Config.Spawn.default.

Private worldLink copied

Lua
Config.Bucket = {    enabled = true,}

From connecting until spawn, the player is in their own routing bucket. Nobody can see, hit, or shoot them.

After selection, the player moves to the main world (bucket 0) or the bucket returned by ResolveBucket.

Requires OneSync.

Spawn cameraLink copied

Lua
Config.SpawnCamera = {    enabled = true,}

After spawn, the camera opens wide on the character and glides behind it. false goes straight into gameplay.

Spawn selectorLink copied

Lua
Config.SpawnSelector = {    enabled          = true,    previewCamera    = true,    photos           = true,    showLastLocation = true,    locations = {        {            key         = 'legion_square',            label       = 'Legion Square',            area        = 'Downtown Los Santos',            coords      = vector4(195.0, -935.0, 30.7, 250.0),            description = 'The civic heart of the city - courthouses, offices, and the morning rush.',            image       = 'spawnmap/thumbs/legion_square.jpg',            details     = { time = '08:15', weather = 'Overcast', wind = '9 mph', temperature = '64Β°F / 18Β°C' },        },    },}
OptionDescription
enabledShows the spawn selector after character select.
previewCameraThe camera flies over the highlighted location. false shows a flat map instead.
photosTakes location photos on your server. Requires screenshot-basic.
showLastLocationLast location as the first entry. Also needs Config.Spawn.useLastPosition = true.

Location fields

FieldDescription
keyUnique key. Remembers the choice and is used for translations.
labelLocation name.
areaSmaller line above the name.
coordsvector4 spawn point.
descriptionOne sentence of description.
imageOptional. Image from web/dist/. Without it, a photo is taken automatically.
detailsCard text for time, weather, wind, and temperature. Flavor text, not real weather.

Player controls

  • Click or use the arrow keys to highlight, then press Spawn here.
  • Enter or a second click on the highlighted location confirms.
  • Number keys jump straight to a location.

New characters

A new character does not see the spawn selector when the airplane intro plays. The intro is its arrival and ends at Config.FirstSpawn.

When the intro is disabled or skipped by onlyFirstCharacter, the selector comes back.

Location photosLink copied

Each location in the list has a thumbnail. There are three ways to get one.

Automatic photos

Requires screenshot-basic (opens in a new tab) and Config.SpawnSelector.photos = true.

The first time a location is highlighted, the camera flies over it and the menu hides for a moment. The frame is captured and stored for that player.

The photo is tied to the location key and coordinates. Moving a location discards the old photo and takes a new one.

Admins can take every photo at once:

Text
/scspawnshots/scspawnshots force

force retakes photos that already exist.

Automatic photos only work for locations without an image field.

The default config sets image to files in spawnmap/thumbs/, which are not included. Remove the image field to use automatic photos.

Your own photos

Put JPG files in web/dist/spawnmap/thumbs/ and point the location to them:

Lua
image = 'spawnmap/thumbs/legion_square.jpg',

The path is relative to web/dist/. Square images look best.

Fallback badge

Without a photo, the row shows a monogram badge on a hatched background. The hatch angle comes from the location key, so every location looks different.

Background map

With previewCamera = false, a flat map is shown behind the panel instead of the live camera.

The map is not included because it is Rockstar artwork. Put your own JPG in web/dist/spawnmap/. Without it, the background is a neutral grid.

Translating locationsLink copied

Translate locations in locale/*.json with spawn.loc.<key>.label, spawn.loc.<key>.area, and spawn.loc.<key>.description.

Values from details use spawn.detail.<lowercase value>, for example spawn.detail.overcast. Missing keys fall back to the config text.

← PreviousIdentityMulticharacterNext β†’Camera and SceneMulticharacter

On this page

  • Basic spawn
  • Private world
  • Spawn camera
  • Spawn selector
  • Location photos
  • Translating locations
↑ Back to top
Ready when you are

Put your server on something that holds up

150+ servers run our resources - ESX, QBCore and standalone. Once the payment clears, the package is waiting in Keymaster.

Browse the catalogueAsk on Discord β†—
  • Delivered instantly
  • Support with no expiry
  • 100+ reviews
  • Payment via Tebex

SleepyCode

FiveM Scripts

Checkout is run by Tebex Limited- they handle payment, invoicing and refunds. Β© 2026

Community

  • Discord
  • YouTube
  • X (Twitter)

Navigation

  • Home
  • All Scripts
  • ESX Scripts
  • QBCore Scripts
  • Free Scripts
  • About
  • Blog
  • Documentation
  • Support

Legal

  • Privacy Policy
  • Tebex Privacy Policy
  • Terms of Service
  • Impressum

Β© 2026 SleepyCode. Not affiliated with Rockstar Games or Take-Two Interactive.

Powered byTebex