Skip to content

Installation

Installation

1. Dependencies

Before starting BUPA Multicharacter, make sure these are installed and start before it:

  • ox_lib — required
  • oxmysql — required
  • xsound — optional, required only for character-screen audio

Your framework (es_extended, qbx_core, or qb-core) must already be running; the correct bridge is detected automatically.

2. Install the resource

  1. Drop bupa-multicharacter into your resources folder.
  2. Add it to your server.cfg after its dependencies.
server.cfg
# --- dependencies first ---
ensure oxmysql
ensure ox_lib
ensure xsound            # optional — enables character music

# --- your framework ---
ensure qbx_core          # or es_extended / qb-core

# --- then the selector ---
ensure bupa-multicharacter

Because the selector provides qb-multicharacter, you must not also run another multicharacter resource. Remove or stop qb-multicharacter / qbx_spawn-bundled selectors before starting this one.

3. Language

The UI and notifications are localized through ox_lib. Set your language explicitly in server.cfg so both the ox_lib locale and the NUI translations resolve to the same file:

server.cfg
setr ox:locale "en"

Translations live in locales/*.json (31 languages). English is the reference locale — see the Localization page for the full code list.

4. Tebex slot import (optional)

If you plan to sell extra character slots as Tebex packages, set tebexShopImport = true in settings/options.lua and provide your Tebex secret key as a convar. Without it, slot imports are disabled and the module logs a warning on boot:

server.cfg
set sv_tebexSecret "your-tebex-secret-key"

5. YouTube API key (music)

In-UI song search uses the YouTube Data API v3. The script ships with a demo key that may be rate-limited or revoked at any time — replace it with your own key in settings/options.lua:

settings/options.lua
music = {
    enabled = true,
    youtubeApiKey = 'YOUR_OWN_YOUTUBE_DATA_API_V3_KEY',
    volume = 0.4,
    defaultSong = false,
},

Generate a key at the Google Cloud Console (APIs & Credentials). The key is used server-side only and never shipped to clients. Lyrics require no key.

6. Optional convars

Convar Purpose
bupa:apartmentInsideStart true starts brand-new characters inside an apartment (needs a supported apartment resource).
bpx_relay_hook_GUILD_ID / bpx_relay_hook_BOT_TOKEN Only needed if you grant bonus slots by Discord role.

Start the server. On boot the console prints the detected framework bridge and, if applicable, reminders for any missing convars.