Configuration
설정
BUPA Chat의 설정은 shared/config/*.lua 파일들에 나누어져 있습니다. 이 모든 파일들은 escrow_ignore 처리되어 있어, 구매 후에도 언제든지 수정할 수 있습니다. 이 페이지에서는 일반, 디스플레이, 이모지, 이모트 및 메시지 설정에 대해 설명합니다. 카테고리와 Discord는 각각 별도의 페이지를 가지고 있습니다.
일반 — 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입장/퇴장 메시지는 표준 convar를 따릅니다:
config.showJoinMessages = GetConvarInt('chat_showJoins', 1) == 0
config.showQuitMessages = GetConvarInt('chat_showQuits', 1) == 0관리자 채팅 이름 소스
admin 카테고리는 캐릭터 이름 대신 다른 이름 소스를 표시할 수 있습니다:
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
},
}마스크 인식 이름 — config.noneMask
config.noneMask는 채팅에서 플레이어의 이름을 숨기지 않아야 하는 마스크 드로어블(ped 모델, 컬렉션 및 인덱스 기준)을 나열합니다. 활성화된 경우, 카테고리에서 showWearingMask = true로 설정하거나 착용한 마스크가 이 허용 목록에 포함되어 있지 않는 한 마스크를 착용한 플레이어의 이름은 Unknown으로 표시됩니다.
디스플레이 — display.lua
귓속말 — config.pm
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 ]] },
}발신자와 수신자는 각각 독립적인 스타일(태그, color, showPlayerName, showPlayerId, showPlayerJob, discordTag, showHour)을 가집니다.
머리 위 텍스트 및 플레이어 ID 표시
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.lua
이모지 피커는 완전히 데이터 기반으로 작동합니다. 각 카테고리는 { tab = "<icon emoji>", label = "<HEADER>", list = { ... } } 형식이며, 각 이모지는 { emoji, name, code } 형식입니다.
config.emojis = {
{
tab = "😀", label = "SMILEYS",
list = {
{ emoji = "😀", name = "Grinning", code = ":grinning:" },
{ emoji = "😂", name = "Joy", code = ":joy:" },
-- ...
},
},
-- GESTURES (👍), SYMBOLS (❤️), OBJECTS (🚗)
}Smileys, Gestures, Symbols, Objects의 4가지 그룹이 기본 제공됩니다. 자유롭게 추가, 제거 또는 순서 변경이 가능하며, code는 미리보기 아래에 표시되는 검색 가능한 숏코드입니다.
이모트 — emotes.lua
타이핑 표시기 — config.chatOpenEmote
플레이어가 채팅을 입력하는 동안 머리 위에 표시되는 애니메이션 점:
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이모트 명령어 — config.emoteCommands
/me, /do, /dice (/zar), /rps (/tkm)가 기본 제공됩니다. 각 이모트는 애니메이션을 재생하고, 머리 위 텍스트를 렌더링하며, 선택적으로 채팅에 미러링할 수 있습니다:
{
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 (본/오프셋/스케일), params (도움말 키가 포함된 커스텀 입력 인자), 그리고 계산된 출력을 위한 msgCb(args) (/dice 및 /rps에서 사용).
메시지 — messages.lua
자동 브로드캐스트, 환영 메시지 및 txAdmin 이벤트 스타일 — 기본적으로 모두 꺼져 있습니다.
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