> For the complete documentation index, see [llms.txt](https://cylexdev.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cylexdev.gitbook.io/docs/cylex-multicharv3/installation-and-configuration/general-configuration-reference.md).

# General Configuration Reference

Complete reference for config.lua — covering framework detection, language, keybinds, spawn selector, environment, starter items, and credits.

The main configuration file for Cylex Multicharacter is `config.lua`, located in the root of the resource folder. Open this file first whenever you set up or update the script. Every option in this file affects the entire server — changes take effect after restarting the resource.

### Debug mode <a href="#debug-mode" id="debug-mode"></a>

config.lua

```lua
Config.Debug = false
```

Set `Config.Debug` to `true` to print verbose output to the server console. Use this while troubleshooting — it reveals framework detection results, slot lookups, clothing bridge calls, and more. Turn it off on live servers to keep the console clean.

### [​](https://cylex.mintlify.app/configuration/general#framework)Framework <a href="#framework" id="framework"></a>

config.lua

```lua
Config.Framework = "Auto"   -- "Auto" | "esx" | "qb"
```

`"Auto"` detects your framework automatically on resource start. It checks for the presence of ESX and QBCore/QBox exports and selects whichever it finds first. If auto-detection picks the wrong framework, or if you run both on the same server, set the value manually.

| Value    | Framework                |
| -------- | ------------------------ |
| `"Auto"` | Auto-detected on startup |
| `"esx"`  | ESX (any version)        |
| `"qb"`   | QBCore or QBox           |

### [​](https://cylex.mintlify.app/configuration/general#clothing)Clothing <a href="#clothing" id="clothing"></a>

config.lua

```lua
Config.Clothing = "Auto"   -- "Auto" | "fivem-appearance" | "illenium-appearance" | "qb-clothing" | "esx_skin" | "skinchanger"
```

Controls which clothing / appearance script is used when a character loads. `"Auto"` detects the installed script automatically.

| Value                   | Script                   |
| ----------------------- | ------------------------ |
| `"Auto"`                | Auto-detected on startup |
| `"fivem-appearance"`    | fivem-appearance         |
| `"illenium-appearance"` | illenium-appearance      |
| `"qb-clothing"`         | qb-clothing              |
| `"esx_skin"`            | esx\_skin                |
| `"skinchanger"`         | skinchanger              |

### [​](https://cylex.mintlify.app/configuration/general#language)Language <a href="#language" id="language"></a>

config.lua

```lua
Config.DefaultLang = "en"
```

Sets the default UI language shown to all players. Players can override this in their personal settings — their saved preference takes priority.

| Value  | Language   |
| ------ | ---------- |
| `"en"` | English    |
| `"de"` | German     |
| `"es"` | Spanish    |
| `"fr"` | French     |
| `"it"` | Italian    |
| `"pl"` | Polish     |
| `"pt"` | Portuguese |
| `"tr"` | Turkish    |

### [​](https://cylex.mintlify.app/configuration/general#keybinds)Keybinds <a href="#keybinds" id="keybinds"></a>

config.lua

```lua
Config.Keybinds = {
    changePose     = { key = 38,  name = "E" },  -- cycle character animation
    changeLocation = { key = 74,  name = "J" },  -- cycle preview location
    hideUI         = { key = nil, name = "H" },  -- hide the UI (NUI-side only)
    cinematicBar   = { key = nil, name = "B" },  -- toggle cinematic bars (NUI-side only)
}
```

`changePose` and `changeLocation` use GTA control indices (`38` = E, `74` = J). You can change these to any valid GTA control index.`hideUI` and `cinematicBar` are handled entirely inside the browser UI. Their `key` field has no effect on in-game controls — only the `name` string is used to display the hint label in the UI.

### [​](https://cylex.mintlify.app/configuration/general#logout-command)Logout command <a href="#logout-command" id="logout-command"></a>

config.lua

```lua
Config.LogoutCommand = "logout"   -- set to false to disable entirely
```

Registers a server command that returns a player to the character select screen. The default is `/logout`. Set to `false` to disable the command completely. Who is permitted to use the command is controlled separately in `shared/slot.lua`.

### [​](https://cylex.mintlify.app/configuration/general#spawn-selector)Spawn selector <a href="#spawn-selector" id="spawn-selector"></a>

config.lua

```lua
Config.SpawnSelector = "builtin"
```

Determines which spawn picker is shown after a player selects a character.

| Value           | Description                                                   |
| --------------- | ------------------------------------------------------------- |
| `"builtin"`     | Cylex’s built-in spawn location picker UI                     |
| `"Auto"`        | Detects your installed spawn script                           |
| `"qs-spawn"`    | Quasar Spawn                                                  |
| `"cd-spawn"`    | Codesign Spawn                                                |
| `"qb-spawn"`    | QBCore Spawn                                                  |
| `"renzu-spawn"` | Renzu Spawn                                                   |
| `"custom"`      | Write your own handler in `shared/bridge/spawn_selector.lua`  |
| `false`         | Spawns automatically at last saved location — no picker shown |

#### [​](https://cylex.mintlify.app/configuration/general#last-location)Last location <a href="#last-location" id="last-location"></a>

config.lua

```lua
Config.LastLocation = true
```

When using `"builtin"`, enabling `LastLocation` adds a **Last Location** option at the top of the picker so players can resume where they left off. Set to `false` to hide this option.

### [​](https://cylex.mintlify.app/configuration/general#first-spawn-location)First spawn location <a href="#first-spawn-location" id="first-spawn-location"></a>

config.lua

```lua
-- Default: Los Santos Airport
Config.FirstSpawnLocation = vector3(-1037.93, -2738.13, 20.17)
```

Used when `SpawnSelector = false` and the character is brand new with no saved location. Change these coordinates to your preferred new-player starting point.

### [​](https://cylex.mintlify.app/configuration/general#apartment-/-housing-integration)Apartment / housing integration <a href="#apartment-housing-integration" id="apartment-housing-integration"></a>

config.lua

```lua
Config.SpawnWithApartment  = "Auto"
Config.ApartmentOnlyForNew = false
```

`SpawnWithApartment` selects which housing script handles apartment assignment for new characters. `ApartmentOnlyForNew = true` sends only brand-new characters through the apartment flow; returning characters skip it and go straight to the spawn selector.Supported values: `"Auto"`, `"qb-apartments"`, `"ps-housing"`, `"qbx_properties"`, `"0r-apartment"`, `false`.

### [​](https://cylex.mintlify.app/configuration/general#spawn-locations)Spawn locations <a href="#spawn-locations" id="spawn-locations"></a>

`Config.SpawnLocations` defines the list of locations available in the built-in spawn picker. Each entry is a table with the following fields:

| Field         | Type    | Description                                                    |
| ------------- | ------- | -------------------------------------------------------------- |
| `id`          | string  | Unique internal identifier — must be different for every entry |
| `label`       | string  | Name shown to players in the picker UI                         |
| `description` | string  | Short text shown under the label                               |
| `coords`      | vector3 | World coordinates where the player spawns                      |
| `heading`     | number  | Direction the player faces on spawn (0–360)                    |
| `camHeight`   | number  | Height of the overview camera in the picker                    |

config.lua

```lua
Config.SpawnLocations = {
    {
        id          = "legion",
        label       = "Legion Square",
        description = "The heart of Los Santos, a bustling public plaza in the downtown area.",
        coords      = vector3(195.17, -933.77, 30.69),
        heading     = 144.5,
        camHeight   = 80.0,
    },
    {
        id          = "paleto",
        label       = "Paleto Bay",
        description = "A quiet coastal town in the far north of San Andreas.",
        coords      = vector3(-275.52, 6635.83, 7.71),
        heading     = 39.0,
        camHeight   = 60.0,
    },
}
```

Every `id` must be unique. Duplicate IDs cause unpredictable behaviour in the spawn picker.

### [​](https://cylex.mintlify.app/configuration/general#environment)Environment <a href="#environment" id="environment"></a>

`Config.Environment` controls the weather and time of day shown on the character select screen, and provides hooks to pause or resume any third-party weather or time-sync scripts you have running.config.lua

```lua
Config.Environment = {
    EnableWeather  = true,
    DefaultWeather = "SNOWLIGHT",

    EnableTime  = true,
    DefaultTime = { hour = 23, minute = 29 },

    -- Called before Cylex applies weather/time. Use this to pause your sync script.
    DisableThirdPartySync = function()
        TriggerEvent('qb-weathersync:client:DisableSync')
        TriggerEvent('cd_easytime:PauseSync', true)
    end,

    -- Called when the player enters the game. Use this to re-enable your sync script.
    EnableThirdPartySync = function()
        TriggerEvent('qb-weathersync:client:EnableSync')
        TriggerEvent('cd_easytime:PauseSync', false)
    end,
}
```

#### [​](https://cylex.mintlify.app/configuration/general#valid-weather-values)Valid weather values <a href="#valid-weather-values" id="valid-weather-values"></a>

| Value          | Description             |
| -------------- | ----------------------- |
| `"CLEAR"`      | Clear sky               |
| `"EXTRASUNNY"` | Very bright sunshine    |
| `"CLOUDS"`     | Cloudy                  |
| `"OVERCAST"`   | Overcast                |
| `"RAIN"`       | Rain                    |
| `"THUNDER"`    | Thunderstorm            |
| `"CLEARING"`   | Clearing up             |
| `"SMOG"`       | Smoggy haze             |
| `"FOGGY"`      | Thick fog               |
| `"XMAS"`       | Snow                    |
| `"SNOWLIGHT"`  | Light snow              |
| `"BLIZZARD"`   | Blizzard                |
| `"NEUTRAL"`    | Neutral / flat lighting |

If you don’t use a third-party weather or time script, replace the function bodies with `function() end` to leave them empty.

#### [​](https://cylex.mintlify.app/configuration/general#third-party-sync-hooks)Third-party sync hooks <a href="#third-party-sync-hooks" id="third-party-sync-hooks"></a>

`DisableThirdPartySync` fires client-side just before Cylex sets the character screen weather and time. Use it to trigger the pause or disable event for your weather sync resource (e.g. `qb-weathersync`, `cd_easytime`, `vSync`).`EnableThirdPartySync` fires client-side as soon as the player enters the world. Use it to re-enable your sync script so live weather and time resume normally.

### [​](https://cylex.mintlify.app/configuration/general#starter-items)Starter items <a href="#starter-items" id="starter-items"></a>

config.lua

```lua
Config.StarterItems = {
    { item = "water", count = 5 },
    { item = "bread", count = 5 },
    { item = "phone", count = 1 },
}
```

These items are given automatically when a player creates their very first character. The script works with both QBCore and ESX inventory systems. To disable starter items entirely, set the value to `{}` or `false`.

### [​](https://cylex.mintlify.app/configuration/general#credits)Credits <a href="#credits" id="credits"></a>

config.lua

```lua
Config.Credits = {
    { role = "Developer", name = "Cylex" },
    { role = "Owner",     name = "Ahmet" },
}
```

Shown on the Credits screen inside the character select UI. Add your server name, owner, or any other roles you want displayed.

{% content-ref url="/spaces/txqtJ91rcI0EHH3xURdT/pages/53Kjb72fHGsX83zQAC1L" %}
[Edit Character Slots](/docs/cylex-multicharv3/installation-and-configuration/edit-character-slots.md)
{% endcontent-ref %}
