Skip to content

Configuration

Konfigurace

Konfigurace BUPA Chat je rozdělena do souborů shared/config/*.lua. Všechny tyto soubory jsou v escrow_ignore, takže zůstávají upravitelné i po zakoupení. Tato stránka provádí nastavením obecných možností, zobrazení, emoji, emotů a zpráv. Kategorie a Discord mají své vlastní stránky.

Obecné — general.lua

Klávesy, zvuky, výchozí hodnoty a systém masek.

shared/config/general.lua
config.chatKey = "T"            -- klávesa pro otevření vstupu chatu
config.chatVisibilityKey = ""    -- klávesa pro přepínání režimu viditelnosti ("" = nepřiřazeno)
config.clearCommand = { "clear", "temizle" } -- příkazy, které vymažou historii chatu
config.closeOnOutsideClick = true            -- kliknutí mimo zavře vstupní pole
config.typingSound = true                    -- zvuk klávesnice při psaní
config.allowNoSlashCommands = true           -- spuštění příkazů bez úvodního lomítka
config.uiUpdateRate = 24                      -- obnovovací frekvence v ms pro indikátory nad hlavou
config.defaultAddTag = true                   -- první argument se stane tagem, pokud nejsou zadány žádné tagy
config.showPrintsOnChat = false               -- zrcadlení výpisů serveru do chatu
config.discordTagCacheTime = 60 * 60          -- mezipaměť Discord rolí (v sekundách)
config.defaultChatCategory = "command"        -- karta vybraná po otevření

Zprávy o připojení / odpojení se řídí standardními convar příkazy:

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

Zdroj jména v administrátorském chatu

Kategorie admin může zobrazovat jiný zdroj jména než jméno postavy:

shared/config/general.lua
config.adminChatName = {
    mode = "discord",   -- "character" | "steam" | "discord"
    discord = {
        botToken = "",  -- vyžadováno pro režim "discord"
        guildId  = "",
        cacheTime = 600,      -- mezipaměť přezdívek v sekundách
        fallback  = "steam",  -- použito, když nelze zjistit přezdívku
    },
}

Jména respektující masky — config.noneMask

config.noneMask uvádí modely masek (podle modelu pedu, kolekce a indexu), které by neměly skrývat hráčovo jméno v chatu. Pokud je tato možnost aktivní, jméno maskovaného hráče se zobrazí jako Neznámý, pokud kategorie nenastaví showWearingMask = true nebo pokud nošená maska není v tomto seznamu povolených.

Zobrazení — display.lua

Soukromé zprávy — config.pm

shared/config/display.lua
config.pm = {
    active = true,
    command = { "pm", "dm" },     -- odeslat soukromou zprávu
    webhookKey = "chatMessage",   -- klíč Discord logu
    maxLength = 300,
    sender   = { --[[ tagy/barva/jméno/id/povolání/discordTag/hodina pro kopii odesílatele ]] },
    receiver = { --[[ stejná struktura pro kopii příjemce ]] },
}

Odesílatel i příjemce mají nezávislé styly (tagy, color, showPlayerName, showPlayerId, showPlayerJob, discordTag, showHour).

Text nad hlavou a zobrazení ID hráče

shared/config/display.lua
config.headTextMaxStack = 4      -- maximální počet textů nad hlavou seskupených u jednoho hráče

config.playerIdDisplay = {
    active = false,              -- zobrazovat ID nad hlavami, když je chat otevřený
    showOwn = true,             -- zahrnout vaše vlastní ID
    dist = 5.0,                 -- maximální vzdálenost zobrazení (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" },
}

Šablona template podporuje zástupné symboly {serverId}, {name}, {steamId}, {discordId}, {fivemId}, zalomení řádku \n a inline HTML/CSS.

Emojis — emojis.lua

Výběr emoji je plně založen na datech. Každá kategorie je { tab = "<icon emoji>", label = "<HLAVIČKA>", list = { ... } } a každé emoji je { 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 (🚗)
}

Obsahuje čtyři skupiny — Smileys (Smajlíky), Gestures (Gesta), Symbols (Symboly) a Objects (Objekty). Můžete je libovolně přidávat, ubírat nebo měnit jejich pořadí; code je vyhledávatelný krátký kód zobrazený pod náhledem.

Emoty — emotes.lua

Indikátor psaní — config.chatOpenEmote

Animované tečky nad hlavou hráče, když píše:

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,   -- jak daleko to ostatní vidí (m)
}
config.emoteOneAtATime = true  -- jedna aktivní instance každého příkazu emotu na hráče

Příkazy emotů — config.emoteCommands

Obsahuje /me, /do, /dice (/zar) a /rps (/tkm). Každý emot může přehrát animaci, vykreslit text nad hlavou a volitelně se zrcadlit do chatu:

shared/config/emotes.lua
{
    command = "me",
    desc = "EMOTE_ME_COMMAND_DESC",
    webhookKey = "emoteCommand",   -- Discord log (volitelně)
    dist = 8.0,
    time = 10000,                   -- trvání textu nad hlavou (ms)
    template = "{text}",            -- {text} {playerName} {playerCensoredName}
    cssStyle = { color = "#b6a8ff", fontStyle = "italic" },
    sendToChat = { active = true, tags = { { tag = "ME" } }, color = { 182, 168, 255 } },
}

Další pole: anim (dict, clip, flag, duration), headText (kost/offset/měřítko), params (vlastní psané argumenty s nápovědou)