Skip to content

Configuration

Configuration

La configuration de BUPA Chat est répartie dans shared/config/*.lua. Tous ces fichiers se trouvent dans escrow_ignore, ils restent donc modifiables après l'achat. Cette page détaille les paramètres généraux, d'affichage, d'emojis, d'emotes et de messages. Les catégories et Discord ont leurs propres pages.

Général — general.lua

Touches, sons, valeurs par défaut et système de masques.

shared/config/general.lua
config.chatKey = "T"            -- key to open the chat input
config.chatVisibilityKey = ""    -- key to cycle visibility mode ("" = unbound)
config.clearCommand = { "clear", "temizle" } -- commands that clear chat history
config.closeOnOutsideClick = true            -- click outside closes the input
config.typingSound = true                    -- keyboard sound while typing
config.allowNoSlashCommands = true           -- run commands without a leading slash
config.uiUpdateRate = 24                      -- ms update rate for head indicators
config.defaultAddTag = true                   -- first arg becomes a tag when no tags given
config.showPrintsOnChat = false               -- mirror server prints into chat
config.discordTagCacheTime = 60 * 60          -- Discord role cache (seconds)
config.defaultChatCategory = "command"        -- tab focused on open

Les messages de connexion / déconnexion suivent les convars standard :

lua
config.showJoinMessages = GetConvarInt('chat_showJoins', 1) == 0
config.showQuitMessages = GetConvarInt('chat_showQuits', 1) == 0

Source du nom pour le chat administrateur

La catégorie admin peut afficher une source de nom différente de celle du personnage :

shared/config/general.lua
config.adminChatName = {
    mode = "discord",   -- "character" | "steam" | "discord"
    discord = {
        botToken = "",  -- required for "discord" mode
        guildId  = "",
        cacheTime = 600,      -- nick cache seconds
        fallback  = "steam",  -- used when a nick can't be resolved
    },
}

Noms prenant en compte les masques — config.noneMask

config.noneMask liste les éléments de masque (par modèle de ped, collection et index) qui ne doivent pas masquer le nom d'un joueur dans le chat. Lorsqu'il est actif, le nom d'un joueur masqué s'affiche en tant que Inconnu à moins que la catégorie ne définisse showWearingMask = true, ou que le masque porté ne figure dans cette liste blanche.

Affichage — display.lua

Messages privés — config.pm

shared/config/display.lua
config.pm = {
    active = true,
    command = { "pm", "dm" },     -- send a private message
    webhookKey = "chatMessage",   -- Discord log key
    maxLength = 300,
    sender   = { --[[ tags/color/name/id/job/discordTag/hour for the sender copy ]] },
    receiver = { --[[ same shape for the receiver copy ]] },
}

L'expéditeur et le destinataire ont chacun un style indépendant (tags, color, showPlayerName, showPlayerId, showPlayerJob, discordTag, showHour).

Texte au-dessus de la tête et affichage de l'ID joueur

shared/config/display.lua
config.headTextMaxStack = 4      -- max head texts stacked on one player

config.playerIdDisplay = {
    active = false,              -- show IDs above heads while chat is open
    showOwn = true,             -- include your own ID
    dist = 5.0,                 -- max display distance (m)
    template = "[{serverId}] {discordId}", -- {serverId}{name}{steamId}{discordId}{fivemId}
    headText = { bone = 31086, offset = vector3(0.3, 0.0, 0.0), maxRenderDist = 30.0 },
    cssStyle = { color = "#fff", fontSize = "1.8vh", fontWeight = "600" },
}

Le template prend en charge les espaces réservés {serverId}, {name}, {steamId}, {discordId}, {fivemId}, les sauts de ligne \n ainsi que le HTML/CSS en ligne.

Emojis — emojis.lua

Le sélecteur d'emojis est entièrement piloté par les données. Chaque catégorie est sous la forme { tab = "<icon emoji>", label = "<HEADER>", list = { ... } } et chaque emoji est { emoji, name, code }.

shared/config/emojis.lua
config.emojis = {
    {
        tab = "😀", label = "SMILEYS",
        list = {
            { emoji = "😀", name = "Grinning", code = ":grinning:" },
            { emoji = "😂", name = "Joy",      code = ":joy:" },
            -- ...
        },
    },
    -- GESTURES (👍), SYMBOLS (❤️), OBJECTS (🚗)
}

Fourni avec quatre groupes — Smileys, Gestes, Symboles et Objets. Ajoutez, supprimez ou réorganisez librement ; code est le shortcode recherchable affiché sous l'aperçu.

Emotes — emotes.lua

Indicateur de frappe — config.chatOpenEmote

Points animés au-dessus de la tête d'un joueur pendant qu'il tape :

shared/config/emotes.lua
config.chatOpenEmote = {
    active = true,
    texts = { { text = "•", time = 500 }, { text = "••", time = 500 }, { text = "•••", time = 500 } },
    cssStyle = { color = "#fff", fontSize = "1.6vh" },
    dist = 8.0,   -- how far others can see it (m)
}
config.emoteOneAtATime = true  -- one active instance of each emote command per player

Commandes d'emote — config.emoteCommands

Fourni avec /me, /do, /dice (/zar) et /rps (/tkm). Chaque emote peut jouer une animation, afficher du texte au-dessus de la tête et éventuellement le refléter dans le chat :

shared/config/emotes.lua
{
    command = "me",
    desc = "EMOTE_ME_COMMAND_DESC",
    webhookKey = "emoteCommand",   -- Discord log (optional)
    dist = 8.0,
    time = 10000,                   -- head text duration (ms)
    template = "{text}",            -- {text} {playerName} {playerCensoredName}
    cssStyle = { color = "#b6a8ff", fontStyle = "italic" },
    sendToChat = { active = true, tags = { { tag = "ME" } }, color = { 182, 168, 255 } },
}

Champs additionnels : anim (dict, clip, flag, duration), headText (os/décalage/échelle), params (arguments personnalisés saisis avec des clés d'aide) et msgCb(args) pour une sortie calculée (utilisé par /dice et /rps).

Messages — messages.lua

Diffusions automatiques, messages de bienvenue et style des événements txAdmin — tous désactivés par défaut.

config.autoMessages = {
    active = false,
    messages = {
        { interval = 3600000, tags = { { tag = "Auto Message" } }, color = { 88, 166, 255 },
          args = { "Test message for auto message (1)" } },
    },
}

config.welcomeMessages = {
    active = false,
    messages = { { tags = { { tag = "Welcome" } }, color = { 255, 255, 255 },
                   args = { "Welcome to the BUPA Test server!" }