Biyei Scripts

Configuration

biyei_utils (shared framework/locale)

Framework and language are shared across every Biyei script — set them once here, not in this script's own config.lua.

biyei_utils (shared framework/locale)Lua
Config.Framework = 'auto' -- 'auto', 'esx', 'qbcore', 'qbx' | Select the framework you are using
Config.Locale = 'es' -- 'es', 'en', 'pt' | Select the language you are using

config.lua

config.luaLua
Config = {}

-- Which framework to talk to: 'auto' | 'esx' | 'qbcore' | 'qbx'.
-- 'auto' detects by checking which core resource is present (qbx_core > qb-core > es_extended).
Config.Framework = 'auto'

-- Language shown in the NUI ('es' or 'en')
Config.Locale = 'es'

-- Accent color used across the UI (hex). Applied live, no rebuild needed.
Config.AccentColor = '#FCFCFC'

-- Shown, gently pulsing, in place of the "Cargando personajes..." spinner while characters
-- load. Set `Enabled = false` to go back to the plain spinner + text.
Config.Logo = {
    Enabled = true,
    ImageURL = 'https://r2.fivemanage.com/WEtN7ANCsEslHpPVNG0cp/viruszlogo.png',
}

-- Number of character slots every player gets by default.
-- Extra slots can be granted per-player with /setslots (admin command)
Config.Slots = 3

-- Whether players are allowed to delete their own characters from the selection screen
Config.CanDelete = true

-- ESX only: prefix used to build the per-character identifier stored in `users.identifier`
-- (char1:license:xxxx, char2:license:xxxx, ...). QBCore/QBox don't need this — every character
-- already has its own row (citizenid) in `players`.
Config.Prefix = 'char'

-- Camera / spawn locations used for the character selection screen.
-- One is picked at random each time a player opens the selector.
Config.Spawn = {
    { x = -1578.4753, y = -1137.6919, z = 3.5672, heading = 260.9764 },
}

-- Default ped model applied to brand new characters, and to existing ones whose saved
-- appearance can't be found (no appearance/skin resource is required for this screen to work
-- at all — this is just the fallback look).
Config.DefaultModel = {
    m = `mp_m_freemode_01`,
    f = `mp_f_freemode_01`,
}

-- Which clothing/appearance resource to pull each character's saved look from for the preview
-- ped: 'auto' | 'illenium-appearance' | 'rcore_clothing' | 'none'.
-- 'auto' detects by checking which one is installed (rcore_clothing > illenium-appearance).
-- Only these two are supported right now — see server/bridge/clothing.lua and
-- client/modules/clothing.lua if you need to add another one.
Config.ClothingSystem = 'auto'

-- New-character identity form validation
Config.MinAge = 18
Config.MaxAge = 100
Config.MaxNameLength = 16
Config.MinHeight = 140 -- cm
Config.MaxHeight = 210 -- cm

-- ACE permission node checked by /setslots, /remslots and /forcelog.
-- Change this if it clashes with another resource on your server.
Config.AdminAce = 'biyei_multicharacter.admin'

-- Background music on the selection screen (YouTube). Set `enabled = false` to turn it off.
-- `videoId` is just the id from the video URL (the part after `watch?v=`).
Config.Music = {
    enabled = true,
    videoId = '5B3YYX2oEKA', -- lofi hip hop radio — swap for whatever you want playing
    volume = 40, -- 0-100, only used the very first time a player joins (after that their own
    -- volume/mute choice from the audio control is remembered)
}

-- Whether players get a `/logout` command to return to the character selection screen without
-- fully disconnecting. Set to `false` if you'd rather they only reach it by reconnecting.
Config.EnableLogoutCommand = true

-- Where a brand new character is placed the very first time they spawn in (right after being
-- created), instead of Config.Spawn/wherever the framework would normally put them — meant to
-- be a private "character creator" room so the clothing menu below has somewhere sensible to
-- open. Set `enabled = false` to skip this entirely (new characters just spawn normally).
Config.FirstSpawn = {
    enabled = true,
    coords = { x = -1037.6504, y = -2737.6021, z = 20.1693, heading = 329.7603 },
}

-- Movie-style title card shown while the screen blacks out on the way into the game (the same
-- black curtain also covers the camera repositioning glitch that happens at that moment).
-- Set `enabled = false` to skip the title card (the curtain still closes/opens either way).
-- The actual wording ("Welcome to %s") lives in locales/*.lua so it can be translated —
-- `brand` here is just what gets slotted into it.
Config.TitleCard = {
    enabled = true,
    brand = 'Biyei Scripts',
}

-- Social/shop icons shown top-left. `icon` must be one of: 'discord', 'shop', 'youtube', 'tiktok'.
-- Leave the table empty ({}) to hide the whole row.
Config.SocialLinks = {
    { icon = 'discord', url = 'https://discord.gg/your-invite' },
    { icon = 'shop', url = 'https://your-shop.tebex.io' },
    { icon = 'youtube', url = 'https://youtube.com/@yourchannel' },
    { icon = 'tiktok', url = 'https://tiktok.com/@yourchannel' },
}