Configuration
Complete configuration reference for nox-chat.
Basic Settings
Language
Config.lang = 'en' -- 'en' for English, 'ko' for Korean
Framework
Config.framework = 'qbcore' -- 'standalone', 'qbcore', 'esx', 'esx-legacy'
Discord Role System
Integrate with Discord for role-based permissions:
Config.discordRoles = {
enabled = false, -- Enable Discord role integration
guildId = "your_discord_server_id",
-- Map Discord Role IDs to names
roleNames = {
["123456789012345678"] = "Administrator",
["234567890123456789"] = "VIP",
["345678901234567890"] = "Premium",
},
-- Cache settings
cache = {
enabled = true,
duration = 300, -- 5 minutes
},
-- Feature permissions by role
features = {
customTag = {
enabled = false,
roles = { "VIP", "Premium" },
},
tts = {
enabled = false,
roles = { "Premium" },
},
bubbleCustom = {
enabled = false,
roles = { "VIP", "Premium" },
},
shortcuts = {
enabled = false,
roles = {
["VIP"] = 5, -- 5 shortcut slots
["Premium"] = 9, -- 9 shortcut slots
},
},
},
adminRoles = { "Administrator" },
}
Admin System (Standalone)
For servers not using Discord roles:
Config.admins = {
enabled = true,
identifierType = 'license', -- 'license', 'steam', 'discord', 'fivem'
list = {
'license:your_license_here',
},
}
Join/Leave Notifications
Config.joinLeave = {
enabled = true,
join = {
enabled = true,
message = '🟢 {name} joined the server.',
color = '#4ade80',
},
leave = {
enabled = true,
message = '🔴 {name} left the server. ({reason})',
color = '#f87171',
},
showToAll = true, -- false = admins only
}
Whisper System
Config.whisper = {
enabled = true,
command = 'w', -- /w [id] [message]
replyCommand = 'r', -- /r [message]
color = '#FFB6C1',
}
Custom Tag System
Allow players to create custom name tags:
Config.customTag = {
enabled = true,
identifierType = 'license',
maxLength = 20,
colors = {
'#ffffff', '#ff6b6b', '#4ecdc4', '#ffe66d',
'#95e1d3', '#f38181', '#aa96da', '#fcbad3',
'#a8d8ea', '#ffd93d',
},
}
Speech Bubble System
3D speech bubbles above player heads:
Config.bubble = {
enabled = true,
duration = 5000, -- Display time (ms)
maxDistance = 20.0, -- Max visible distance
offsetZ = 0.4, -- Height above head
allowCustomColors = true,
presets = {
{ id = 'classic', backgroundColor = 'rgba(0, 0, 0, 0.8)', textColor = '#ffffff' },
{ id = 'modern', backgroundColor = 'rgba(30, 30, 30, 0.95)', textColor = '#e0e0e0' },
{ id = 'neon', backgroundColor = 'rgba(0, 0, 0, 0.9)', textColor = '#00ff88' },
},
}
TTS System
Text-to-Speech for chat messages:
Config.tts = {
enabled = true,
proximityOnly = true, -- Only for proximity chat
range = 20.0,
provider = 'google', -- 'google' or 'voicerss'
voicerssApiKey = '', -- Required if using voicerss
defaultVoice = 'en',
voices = {
{ id = 'ko', label = '한국어', lang = 'ko' },
{ id = 'en', label = 'English', lang = 'en' },
{ id = 'ja', label = '日本語', lang = 'ja' },
},
}
⚠️ TTS requires the xsound resource
Anti-Spam System
Config.antiSpam = {
enabled = true,
threshold = 10, -- Messages before warning
window = 5000, -- Detection window (ms)
cooldownTime = 3000, -- Cooldown after warning
maxWarnings = 3, -- Warnings before block
blockTime = 30000, -- Block duration (ms)
}
Chat Settings
Config.chat = {
defaultChannel = 'world',
channelOrder = { 'system', 'world', 'global' },
proximityDistance = 20.0,
maxMessages = 100,
historyLimit = 50,
channels = {
system = {
enabled = true,
type = 'global',
color = '#4ecdc4',
adminOnly = true,
},
world = {
enabled = true,
type = 'proximity',
radius = 20.0,
color = '#8b5cf6',
},
global = {
enabled = true,
type = 'global',
color = '#a855f7',
},
},
}
UI Settings
Config.ui = {
position = 'left-bottom', -- 'left-top', 'left-bottom', 'right-top', etc.
positionLock = false, -- Allow player customization
fade = {
enabled = true,
delay = 5000,
},
visibility = {
startVisible = true,
inactiveOpacity = 0.3,
activeOpacity = 1.0,
},
}
Keybinds
Config.keybinds = {
openChat = {
enabled = true,
command = 'openchat',
defaultKey = 'T',
},
toggleChat = {
enabled = true,
command = 'togglechat',
defaultKey = '', -- No default
},
}
Commands
Configure RP commands:
Config.commands = {
['ooc'] = {
enabled = true,
command = 'ooc',
target = 'global',
category = 'global',
prefix = 'prefix_ooc',
},
['me'] = {
enabled = true,
command = 'me',
target = 'proximity',
radius = 20.0,
category = 'world',
},
['do'] = {
enabled = true,
command = 'do',
target = 'proximity',
radius = 20.0,
category = 'world',
},
['twt'] = {
enabled = true,
command = 'twt',
target = 'global',
category = 'global',
},
['ad'] = {
enabled = true,
command = 'ad',
target = 'global',
category = 'global',
requiresPlayer = true,
},
}
Last updated: January 28, 2026