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.
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:
config.showJoinMessages = GetConvarInt('chat_showJoins', 1) == 0
config.showQuitMessages = GetConvarInt('chat_showQuits', 1) == 0Zdroj jména v administrátorském chatu
Kategorie admin může zobrazovat jiný zdroj jména než jméno postavy:
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
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
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 }.
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:
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áčePří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:
{
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)