Skip to content

BUPA Multicharacter

BUPA Multicharacter

BUPA Multicharacter is a cinematic character selector for ESX, QBox, and QBCore. Instead of a flat list of save slots, every character is presented as a live, filmic showcase scene — the ped stands (or sits) in a hand-picked Los Santos location, an orbiting camera frames them, and the player's chosen entry song plays with time-synced lyrics floating behind the 3D character. The entire interface is a single React UI, fully localized into 31 languages.

Everything the player sees on the selector — the showcase location, the camera style, the entry music, the color filter, the weather and time — is driven from settings/options.lua and settings/scenes.lua, and a large part of it is also adjustable live by each player from the in-UI settings panel. Read the actual config before you go live; the shipped values are examples.

Key features

Feature What it does
Cinematic showcase scenes Three camera modes per location — orbit, seated "bar" scene, and a fully manual camera with custom coords, FOV, focus offset and depth-of-field blur.
Per-character entry music + synced lyrics Players search YouTube inside the UI, pick a song, and it autoplays (via xsound) whenever that character is shown, with LRC lyrics pulled free from lrclib and floated behind the ped.
Flexible spawning Built-in spawn picker, hand-off to a detected spawn resource, or straight-to-last-location — plus optional apartment-inside start for brand-new characters.
Validated character creation First/last name, date of birth (with year bounds), height, backstory and nationality of origin are all validated server-side.
Partner (CP / BFF) pairing A confirmed partner appears standing beside your character on the selector. Invites are sent from the character-selector menu.
Custom badges A per-character icon + short label shown on the selector card.
Per-player settings Blur, FPS mode, cinematic bars, camera distance, idle animation, posture, weather, time and color filter — each remembered per player.
Slots + Tebex import A configurable default slot count, plus optional bonus slots from Tebex packages, per-license grants, or Discord roles.
Discord logging Per-event webhooks for play, logout, character create/delete, exploit attempts and Tebex redemptions.
Crash prevention Pre-streams the freemode peds to avoid the .ymt streaming-limit crash, and auto-repairs corrupt saved ped models before they can crash the real character load.

Frameworks

BUPA Multicharacter auto-detects your framework at runtime through interchangeable bridges in core/frameworks/ — no manual switch:

  • ESX (es_extended)
  • QBox (qbx_core)
  • QBCore (qb-core)

The correct bridge prints its name to the server console on start (e.g. framework bridge: QBox). The bridge files are escrow_ignored, so you can extend or add framework support yourself.

Dependencies

Resource Required? Purpose
ox_lib Required Callbacks, notifications, locales, KVP helpers, commands.
oxmysql Required Character, slot and skin persistence.
OneSync Required Declared in the manifest (/onesync).
xsound Optional Character-screen music playback. Without it, search, song selection and the lyrics UI still work — there is simply no audio.
jg-hud Optional If started, the selector toggles it through jg-hud's export instead of the native HUD/radar.
qb-weathersync Optional Disabled/enabled while the selector locks the weather and time.

Apartment and spawn resources (qb-apartments, qbx_apartments, ps-housing, 0r-apartment, qbx_spawn, qb-spawn) are optional and only used when the matching spawn mode is enabled — see the Spawning page.