Introduction
ARS Multicharacter is a FiveM multi-character selector for ESX, QBCore, and QBX servers. It combines a Preact NUI, Lua 5.4 backend, appearance-resource integration, housing-aware spawn selection, per-license slot overrides, and Tebex slot-code redemption in one resource.
Features
Section titled “Features”Core Features
Section titled “Core Features”- Character selection with portrait peds, slide or walk transitions, and optional idle emotes
- Character creation with first name, last name, gender, nationality, height, and appearance flow
- Existing character display with job, grade, cash, bank, birthday, nationality, and last location
- Spawn selection with configured locations, last location, houses, apartments, and properties
- Cinematic city flyover and optional land-cam spawn transitions
- Player-persistent UI layouts:
sidebar,obsidian, andminimalist - Server branding, online player count, Terms of Service links, Rules links, music, and NUI notifications
- Per-license character slot overrides and one-time redeemable slot codes
- Tebex slot package flow using transaction IDs as redeem codes
- Optional per-character level and XP system with configurable formulas, displayed on character cards and hookable by other scripts via server exports
- Housing integration for
ps-housing,qb-houses, andqb-apartments
Integrations
Section titled “Integrations”| System | Support |
|---|---|
| Frameworks | qbx_core, qb-core, es_extended |
| Framework mode | Auto-detect or explicit qbx, qb, esx |
| Database | oxmysql through @oxmysql/lib/MySQL.lua |
| Locale and commands | ox_lib |
| Appearance | bl_appearance, illenium-appearance, qs-appearance, fivem-appearance, qb-clothing, skinchanger |
| Housing | ps-housing, qb-houses, qb-apartments |
| Tebex | Console command tebex_charslot stores transaction IDs as redeemable slot codes |
| Inventory | Uses the active framework inventory; ox_inventory is used for starter items when it is running |
| Character levels | Optional per-character XP/leveling via Config.CharacterLevels and the metadata JSON column |
Requirements
Section titled “Requirements”ox_lib— locale loading, command registration, callbacks, and NUI notificationsoxmysql— database access for characters, slot overrides, and redeem codes- One supported framework resource:
qbx_core,qb-core, ores_extended - One supported appearance resource for first-time character creation
- Optional housing resources for property and apartment spawn options
Commands
Section titled “Commands”Player Commands
Section titled “Player Commands”| Command | Description |
|---|---|
/logout |
Return to the character selector from in-game |
/closeNUI |
Closes the active multicharacter NUI |
/redeemcharslot <code> |
Redeems a generated slot code or Tebex transaction ID |
Admin Commands
Section titled “Admin Commands”| Command | Required access | Description |
|---|---|---|
/deletechar <citizenid> |
god role or Config.AdminLicenses |
Force-deletes another player’s character |
/setcharslots <license> <slots> |
god role or Config.AdminLicenses |
Sets an absolute character slot count for a license |
/generatecharcode <slots> |
god role or Config.AdminLicenses |
Creates a one-time redeemable slot code |
Console Commands
Section titled “Console Commands”| Command | Source | Description |
|---|---|---|
/tebex_charslot <transaction_id> [slots] |
Server console only | Stores a Tebex transaction ID as a redeemable slot code |
/test_charslot [slots] |
Server console only | Debug test for Tebex-style code creation when Config.Debug is true |
Database Tables
Section titled “Database Tables”ars_multicharacter_slots
Section titled “ars_multicharacter_slots”Stores per-license character slot overrides. If no row exists, the resource falls back to Config.MaxCharacters.
ars_multicharacter_auth_codes
Section titled “ars_multicharacter_auth_codes”Stores one-time redeemable slot codes created by /generatecharcode, /tebex_charslot, or ProcessSlotPurchase. Redeemed codes are kept for auditing with redeemed_by and redeemed_at.
Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.