> For the complete documentation index, see [llms.txt](https://atiysus-organization.gitbook.io/aty-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atiysus-organization.gitbook.io/aty-scripts/multi-character-v2/usage.md).

# Usage

### ⚙️ Configuration Guide (`shared/config.lua`)

The plugin can be highly customized in `config.lua` without needing to edit the core framework codes.

#### Core Settings

* `Config.DefaultSpawn`: The XYZ/W coordinates where the player initially drops if the spawn selector is disabled (`false`) or bypassed.
* `Config.SpawnSelector`: Choose between `"custom"` (use map UI), `"default"`, or `false` to disable it completely.
* `Config.IdentifierType`: Usually set to `"license"`. It dictates the primary key used to fetch player slots.
* `Config.DisableImages`: Set to `true` to disable taking automatic pedestrian screenshots over the interface or loading character preview models.
* `Config.UseQBHouses`: Set to `true` if you use QBCore housing dependencies (`qb-apartments`).

#### UI Elements Settings

Modify the UI hex colors and birthdate inputs under the following options:

* `Config.UI.Primary`: Hex Code, e.g. `"#69ffec"`. Adjusts the entire accent color matrix across the Vue app.
* `Config.BirthdateFormat`: Choose your preferred logical data insertion display structure: `"YYYY/MM/DD"`, `"DD/MM/YYYY"`, or `"MM/DD/YYYY"`.

#### Command Settings (`Config.Commands`)

* `Logout`: Command string used by players to exit gameplay safely and return to the multi-char selection menu (e.g. `"logout"`).
* `PurchasedSlot`: The command used by admins to generate additional slot redemption codes (e.g. `"purchased_slot"`).

#### Admin Settings (`Config.AdminGroups`)

Array of permission group identifiers that flag a player as an administrator on the UI level:

```lua
Config.AdminGroups = { "admin", "god" }
```

#### Database Target Tables (`Config.Database`)

Customizable targeting strings allowing servers with custom SQL table names to interject without code modification:

* `CodesTable`: Usually `"aty_multichar_codes"`
* `SlotsTable`: Usually `"aty_multichar_slots"`
* `ESXTable` / `QBCoreTable`: Base identifier queries (`users` / `players` defaults)
* `QBCoreHousesTable`: Where your housing saves (usually `"houselocations"`)

#### Camera and Animation Times (`Config.Animations`)

Values map millisecond transition intervals for aesthetic appeal:

* `ScreenFade`: Speed of the screen fade load state.
* `CameraTransition`: Duration for the camera sweeping across the city.
* `CameraFly`: Additional sweep times for custom spawning point arrivals.

#### Camera Tuning (`Config.CameraOffsets`)

* `Spawn` / `Character` / `Fly`: Adjust `x, y, z` point plotting variables so your camera sits naturally based on the physical terrain of your target selection nodes.

#### Ped Models (`Config.PedModels`)

* `LoadingPed`: Model hash applied securely during initial network fade-ins to prevent empty player data crashing. Followed by `MaleModel` (default `mp_m_freemode_01`) and `FemaleModel` (default `mp_f_freemode_01`).

#### Discord Logs (`Config.DiscordLogs`)

Enable safe, backend webhook logs by modifying this array table:

* `Enabled`: `true` to fire off POST requests.
* `WebhookURL`: Required destination link to your target discord Text-channel.
* `Colors`: Hex color intervals (in Decimal format) for Action statuses: `Create`, `Delete`, `Login`, `Logout`, `Redeem`.
