> 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/frequently-asked-questions.md).

# Frequently Asked Questions

Answers to the most common questions about configuring slots, languages, the partner system, databases, spawn locations, and more in Cylex Multicharacter.

These are the questions that come up most often from server owners setting up or customising Cylex Multicharacter. If your question isn’t answered here, check the [Troubleshooting](https://cylex.mintlify.app/troubleshooting) page or open a support ticket in the Cylex Discord.

<details open>

<summary>How many character slots can players have?</summary>

The default slot count is set by `Config.MaxCharacters` in `shared/slot.lua`. Every player gets this many slots unless overridden.

```lua
Config.MaxCharacters = 5
```

You can give individual players more slots by adding their Rockstar license to `Config.SlotOverrides`:

```lua
Config.SlotOverrides = {
    ["license:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"] = 10,
}
```

You can also grant extra slots automatically based on Discord roles using `Config.DiscordSlotRoles`. This requires `DISCORD_GUILD_ID` and `DISCORD_BOT_TOKEN` to be set in your `server.cfg`. When a player has multiple matching roles, the highest slot value wins.

</details>

<details open>

<summary>Can different players have different numbers of character slots?</summary>

Yes. You have two ways to assign per-player slot counts beyond the global default:

1. **License override** — add the player’s Rockstar license to `Config.SlotOverrides` in `shared/slot.lua`
2. **Discord role** — assign a role ID and slot count in `Config.DiscordSlotRoles`

If neither applies to a player, they receive the default `Config.MaxCharacters` value.

</details>

<details open>

<summary>Can I disable the partner system?</summary>

Yes. Open `shared/animations.lua` and set `enabled` to `false` inside the `Config.Partner` table:

```
Config.Partner = {
    enabled = false,
    ...
}
```

With this set, the Partner button will not appear on the character select screen for any player.

</details>

<details open>

<summary>Can I disable character deletion for all players?</summary>

Yes. Open `shared/slot.lua` and set:

```
Config.AllowDeleteCharacter = false
```

Then leave both `Config.DeleteOverrides` and `Config.DiscordDeleteRoles` empty. No player will be able to delete characters from the UI. If you want to allow deletion for specific staff members only, add their licenses to `Config.DeleteOverrides` or their Discord role ID to `Config.DiscordDeleteRoles`.

</details>

<details open>

<summary>Can I add my own preview locations?</summary>

Yes. Open `shared/locations.lua` and add a new entry to `Config.Locations` following the same format as the existing ones:

```lua
{
    id   = "my_spot",
    name = "My Spot",

    coords           = vector3(0.0, 0.0, 0.0),
    heading          = 0.0,
    fov              = 45.0,
    camOffset        = vector3(0.65, 1.85, 0.55),
    camPointAt       = vector3(0.0, 0.0, 0.35),
    interpDuration   = 1000,

    weather    = "CLEAR",
    time       = { hour = 20, minute = 0 },

    animations = idle_animations_table,

    dof = {
        enabled   = true,
        nearStart = 0.2,
        nearEnd   = 5.0,
        farStart  = 3.5,
        farEnd    = 4.0,
        strength  = 1.0,
    },
},
```

{% hint style="warning" %}
Every `id` must be unique across all location entries. Duplicate IDs will cause unpredictable behaviour.
{% endhint %}

\
Do not modify entries marked as **SCENES** at the bottom of the file unless you understand GTA animation dictionaries — incorrect values will break the scripted scene.

</details>

<details open>

<summary>How do I get the coordinates for a new location?</summary>

You have two options:

* **In-game command** — most ESX and QBCore servers include a `/coords` command that prints your current world position to chat or the console. Stand where you want the character to appear and run the command.
* **Menyoo trainer in singleplayer** — load GTA V in story mode, open Menyoo, and use the teleport or object spawner to find the exact coordinates you want. Copy the X, Y, Z values from the trainer display.

Once you have the coordinates, paste them into the `coords` field of your new location entry as a `vector3`.

</details>

<details open>

<summary>Can I add a new language?</summary>

Yes. All eight included languages follow the same structure, and adding a new one takes a few minutes:\ <br>

1. Copy an existing locale file

Duplicate `locales/en.lua` (or any other locale file) and rename it to match your language code, for example `locales/nl.lua` for Dutch.

2. **Update the locale key**

Open your new file and change the first line from `Locales['en']` to match your new code, for example `Locales['nl']`.

3. **Translate the values**

Go through every entry and translate the string values on the right side of each `=`. Never change the key names on the left side — the script looks them up by name internally.

4. **Set the default language**

Open `config.lua` and update:

```
Config.DefaultLang = "nl"
```

</details>

<details open>

<summary>Does this work with custom or standalone frameworks?</summary>

Cylex Multicharacter supports **ESX**, **QBCore**, and **QBox** natively — auto-detection covers all three out of the box.\
Custom or standalone frameworks are not natively supported. Integrating one would require editing the bridge files in `shared/bridge/`, which are open Lua files but require solid Lua development knowledge and a good understanding of how your framework handles player loading, identity, and inventory. \
This is not officially supported and is outside the scope of standard support tickets.

</details>

<details open>

<summary>What databases are supported?</summary>

Cylex Multicharacter works with **oxmysql** and **mysql-async**. \
One of these must be running and connected to your database before the resource starts. You don’t need to run any **SQL** manually.

</details>

<details open>

<summary>The character select screen shows for a moment then disappears — what does this mean?</summary>

This almost always means `cylex_multicharv3` loaded before the framework finished initialising. When the script can’t find a ready framework, it exits the character select flow early, which causes the screen to close.\
Fix it by moving `ensure cylex_multicharv3` lower in your `server.cfg` — it must come after both your framework resource and your database connector:

```
ensure oxmysql
ensure es_extended        # or qb-core / qbx_core
# ... other resources ...
ensure cylex_multicharv3
```

Do a full server restart (not just a resource restart) after changing the load order to make sure dependencies initialise in the correct sequence.

</details>

[Troubleshooting Common Cylex Multicharacter IssuesPrevious](https://cylex.mintlify.app/troubleshooting)[Powered byThis documentation is built and hosted on Mintlify, a developer documentation platform](https://www.mintlify.com/?utm_campaign=poweredBy\&utm_medium=referral\&utm_source=cylex)Frequently Asked Questions — Cylex Multicharacter - Cylex Multicharacter
