> For the complete documentation index, see [llms.txt](https://izzyshop-1.gitbook.io/izzyshop-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://izzyshop-1.gitbook.io/izzyshop-docs/multicharacter-resources/multicharacter-v5/overview.md).

# Overview

Modern multi-character selector with 3D ped preview, spawn selector, Tebex slot unlock, and ESX / QBCore support.

```lua
author 'Izzy'
```

#### Requirements <a href="#izzy-multicharacterv5-overview-requirements" id="izzy-multicharacterv5-overview-requirements"></a>

| Dependency                                         | Required                                                                                                       |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| [oxmysql](https://github.com/overextended/oxmysql) | Yes                                                                                                            |
| `es_extended` or `qb-core`                         | Yes (auto-detect)                                                                                              |
| Appearance resource                                | Recommended (see [Appearance](https://docs.izzyshop.info/izzy-multicharacterv5-overview#appearance-resources)) |
| `qb-apartments`                                    | Optional (only if `useQBApartments = true`)                                                                    |

**Start order (recommended):**

```lua
oxmysql → framework → appearance → izzy-multicharacterv5
```

Disable default spawn if you use `spawnmanager`:

{% hint style="info" %}
This resource sets `setAutoSpawn(false)` when `spawnmanager` is running.
{% endhint %}

#### File structure <a href="#izzy-multicharacterv5-overview-file-structure" id="izzy-multicharacterv5-overview-file-structure"></a>

```lua
izzy-multicharacterv5/
├── client/
│   ├── client.lua      # Character UI, ped preview, NUI callbacks
│   └── spawn.lua       # Spawn selector, exports
├── server/
│   ├── server.lua      # Characters, play, codes, buckets
│   └── sv_cfg.lua      # Tebex secret & package ID
├── shared/
│   ├── cfg.lua         # Main config + locales
│   ├── shared.lua      # Framework & appearance bridges
│   └── utils.lua       # Framework detection, SQL, helpers
├── web/dist/           # Built NUI (do not edit unless you rebuild)
├── codes.json          # Admin-generated unlock codes
├── transactions.json   # Used Tebex / redeem codes
├── slots.json          # Extra slots per license
└── docs.md
```

**Editable (escrow\_ignore):** `client/`, `server/`, `shared/` **Do not delete:** `codes.json`, `transactions.json`, `slots.json` — created/updated at runtime.

#### Player flow (overview) <a href="#izzy-multicharacterv5-overview-player-flow-overview" id="izzy-multicharacterv5-overview-player-flow-overview"></a>

```lua
Connect → Loading fade → Character selector (3D ped)
    → Select existing / Create new / Delete / Unlock slot
    → Play → Spawn selector (map + locations)
    → Spawn → Framework player loaded
```

**Routing bucket:** Players are placed in a random bucket during character select (`setBucket false`) and returned to bucket `0` when spawning.

#### Support <a href="#izzy-multicharacterv5-overview-support" id="izzy-multicharacterv5-overview-support"></a>

| Property                | Type | Default | Description                                                                           |
| ----------------------- | ---- | ------- | ------------------------------------------------------------------------------------- |
| Store                   | `—`  | `—`     | [izzy.tebex.io](https://izzy.tebex.io/)                                               |
| Config files            | `—`  | `—`     | `shared/cfg.lua`, `server/sv_cfg.lua`                                                 |
| Before opening a ticket | `—`  | `—`     | framework version, appearance script name, F8/console errors, and steps to reproduce. |

#### Quick checklist (server owners) <a href="#izzy-multicharacterv5-overview-quick-checklist-server-owners" id="izzy-multicharacterv5-overview-quick-checklist-server-owners"></a>

{% hint style="info" %}
\[ ] `oxmysql` running

\[ ] Only one multichar resource enabled

\[ ] `sv_cfg.lua` Tebex values set (if selling slots)

\[ ] `defaultFreeSlotAmount` / `maxSlotAmount` set

\[ ] Starter items match your inventory

\[ ] Appearance resource starts before this resource

\[ ] Locales translated for your community

\[ ] Admin licenses added to `cfg.admins` for `createCod`
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://izzyshop-1.gitbook.io/izzyshop-docs/multicharacter-resources/multicharacter-v5/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
