Skip to content

Configuration

कॉन्फ़िगरेशन

BUPA Chat का कॉन्फ़िगरेशन shared/config/*.lua में विभाजित है। ये सभी फ़ाइलें escrow_ignore में हैं, इसलिए ये खरीदने के बाद भी संपादन योग्य रहती हैं। यह पेज सामान्य, डिस्प्ले, इमोजी, इमोट और संदेश सेटिंग्स के बारे में बताता है। श्रेणियों (Categories) और डिस्कॉर्ड (Discord) के अपने अलग पेज हैं।

सामान्य (General) — general.lua

कुंजियाँ, ध्वनियाँ, डिफ़ॉल्ट और मास्क सिस्टम।

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

जॉइन / क्विट संदेश मानक कॉन्वर्स (convars) का पालन करते हैं:

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

एडमिन चैट नाम स्रोत (Admin chat name source)

admin श्रेणी चरित्र के नाम के बजाय एक अलग नाम स्रोत दिखा सकती है:

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
    },
}

मास्क-जागरूक नाम (Mask-aware names) — config.noneMask

config.noneMask उन मास्क ड्रेवेबल (पेड मॉडल, कलेक्शन और इंडेक्स द्वारा) को सूचीबद्ध करता है जिन्हें चैट में खिलाड़ी का नाम नहीं छिपाना चाहिए। सक्रिय होने पर, मास्क पहने हुए खिलाड़ी का नाम Unknown के रूप में दिखाया जाता है जब तक कि श्रेणी showWearingMask = true पर सेट न हो, या पहना गया मास्क इस अनुमति-सूची (allow-list) में न हो।

डिस्प्ले (Display) — display.lua

प्राइवेट संदेश (Private messages) — 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 ]] },
}

प्रेषक (sender) और प्राप्तकर्ता (receiver) दोनों की अपनी स्वतंत्र स्टाइलिंग होती है (tags, color, showPlayerName, showPlayerId, showPlayerJob, discordTag, `showHour)।

हेड टेक्स्ट और प्लेयर आईडी डिस्प्ले (Head text & player ID display)

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" },
}

template प्लेसहोल्डर {serverId}, {name}, {steamId}, {discordId}, {fivemId}, \n लाइन ब्रेक और इनलाइन HTML/CSS का समर्थन करता है।

इमोजी (Emojis) — emojis.lua

इमोजी पिकर पूरी तरह से डेटा-संचालित (data-driven) है। प्रत्येक श्रेणी { tab = "<icon emoji>", label = "<HEADER>", list = { ... } } है और प्रत्येक इमोजी { 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 (🚗)
}

चार समूहों के साथ आता है — Smileys, Gestures, Symbols और Objects। स्वतंत्र रूप से जोड़ें, हटाएं या पुनर्व्यवस्थित करें; पूर्वावलोकन (preview) के नीचे प्रदर्शित होने वाला code खोज योग्य शॉर्टकोड है।

इमोट्स (Emotes) — emotes.lua

टाइपिंग इंडिकेटर (Typing indicator) — config.chatOpenEmote

टाइप करते समय खिलाड़ी के सिर के ऊपर एनिमेटेड डॉट्स:

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

इमोट कमांड (Emote commands) — config.emoteCommands

/me, /do, /dice (/zar) और /rps (/tkm) के साथ आता है। प्रत्येक इमोट एक एनिमेशन चला सकता है, हेड टेक्स्ट रेंडर कर सकता है, और वैकल्पिक रूप से चैट पर मिरर कर सकता है:

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 } },
}

अतिरिक्त फ़ील्ड: anim (dict, clip, flag, duration), headText (bone/offset/scale), params (सहायता कुंजियों के साथ कस्टम टाइप किए गए तर्क) और गणना किए गए आउटपुट के लिए msgCb(args) (/dice और /rps द्वारा उपयोग किया जाता है)।

संदेश (Messages) — messages.lua

ऑटो ब्रॉडकास्ट, वेलकम मैसेज और txAdmin इवेंट स्टाइलिंग — डिफ़ॉल्ट रूप से सभी बंद हैं।

config.autoMessages = {
    active = false,
    messages = {
        { interval = 3600000, tags = { { tag = "Auto Message" } }, color = { 88, 166, 255 },
          args = { "Test