FAQ & Troubleshooting
Common questions and solutions.
Installation Issues
"Chat Theme not loading"
Problem: Chat shows errors or default styling
Solutions:
-
Check
server.cfgload order:ensure chat ensure of_chat_theme✓
chatMUST come beforeof_chat_theme -
Verify
ox_libis installed:ensure ox_lib ensure chat ensure of_chat_theme -
Check console for errors:
[of_chat_theme] Error: ...
"Framework not detected"
Problem: Commands show "(unknown)" for player names
Solution:
-
Ensure your framework is started:
ensure qb-core # or es_extended / qbx_core ensure ox_lib ensure chat ensure of_chat_theme -
Check
Config.Frameworkmatches your framework:Config.Framework = "qb" -- "qb" | "esx" -
Verify framework exports are available:
Framework.Functions.GetPlayerData()Framework.Functions.GetPlayerName()
Command Issues
"/me command not working"
Problem: Command doesn't execute
Checks:
-
Is it enabled in config?
Config.Commands.me.enabled = true -
Are you loaded into the server?
- Use
/clearchatto test - Check framework loaded:
/me loadedshould work
- Use
-
Is chat open?
- Press
Tto open chat - Type
/me test
- Press
-
Check console for errors
Template Issues
"Messages look all the same"
Problem: Templates not applying
Solutions:
-
Check
config/templates.luafor syntax errors:Config.Theme = { ['cmd:me'] = T.build() -- Missing closing parenthesis? :tag('ME') :done() } -
Verify template ID matches command:
Config.Commands.me.colors = getTemplate("me") -- Must exist -
Check for Lua syntax errors:
- Use Lua linter
- Restart server to see errors
-
Test template directly:
TriggerEvent('chat:addMessage', { templateId = 'cmd:me', args = { "TestName", "Test message" } })
"Placeholders not replacing"
Problem: Shows {Framework:GetName} instead of player name
Causes:
- Framework not loaded
- Placeholder doesn't exist
- Server-side template (use
dont_register:) - Syntax error in placeholder
Solutions:
-- Verify placeholder exists
Client.Custom["Placeholder"]["GetName"] = function()
return Framework.Functions.GetPlayerName()
end
-- Use in template
T.text('{Placeholder:GetName}')
"3D bubbles not showing"
Problem: /me actions don't appear above head
Solution:
-
Enable bubble module:
Config.Modules.bubble = true -
Check bubble range:
Config.Bubble = { range = 15.0, -- Can you see the player? } -
Verify line-of-sight:
Config.Commands.me.los = false -- Try disabling
Channel Issues
"Players can't write to channel"
Problem: Access denied or command not working
Checks:
-
User has permission:
participants = { write = { { type = 'job', value = 'police' } } -- User is police? } -
Channel exists:
Config.Channels = { { id = 'police', ... } } -
Command is assigned:
Config.Commands.msg.channel = 'police'
"Channel selector not showing"
Problem: Can't switch channels in UI
Solution:
-
Ensure multiple channels configured:
Config.Channels = { { id = 'all', ... }, { id = 'twitter', ... }, -- At least 2 channels } -
UI must be enabled and have permission
-
Check UI settings not disabled
Framework Integration
"ESX players see generic names"
Problem: Shows "Unknown" instead of character name
Solution:
-
Verify ESX is loaded before chat:
ensure es_extended ensure ox_lib ensure chat ensure of_chat_theme -
Set correct framework:
Config.Framework = "esx" -
Check ESX player data available:
- Verify ESX callback working
- Test:
TriggerServerEvent('esx:getPlayerData')
"QB Jobs not showing"
Problem: /msg shows player ID instead of job
Solution:
- Ensure QB is loaded
- Verify placeholder syntax:
{Framework:GetJob} -- QB format {Framework.Functions.GetPlayerData().job.name} -- Alternative
Logging Issues
"Messages not logging to Discord"
Problem: Webhook not receiving messages
Checks:
-
Webhook URL configured:
Config.Webhooks = { ["chat"] = "https://discord.com/api/webhooks/123/abc" } -
Webhook is valid and not expired
-
Message type is loggable:
/melogs/ooclogs- Custom commands may not log
-
Check Discord permissions
Mobile / Phone Integration
"Phone messages not syncing"
Problem: LB-PHONE posts don't appear in chat
Solution:
-
Enable hook:
Config.Hooks = { ["LB-PHONE"] = { birdy = true } } -
Restart server
-
LB-PHONE must be running before of_chat_theme
Customization Help
"How do I change ALL message colors?"
Edit theme colors in template:
Config.Theme['cmd:me'] = T.build()
:bg('#0a0e27') -- Dark background
:message({ color = '#00ff00' }) -- Green text
:done()
"How do I add a custom command?"
Create in config/commands/client.lua:
Commands.client("greet", {
handler = function(ctx)
Commands.sendProximity('cmd:me', {
ctx.author,
"waves hello"
}, 15.0)
end,
})
"How do I hide a command from suggestions?"
Set command = false or don't register:
Config.Commands.custom = {
enabled = true,
command = false, -- Hidden
}
Getting Help
If your issue isn't listed:
- Check console for error messages
- Enable debug mode:
Config.Debug = true - Check resource dependencies are all loaded
- Verify file permissions in resource folder
- Try with minimal config (default values)
Report a Bug
Include:
- Error message from console
- Server.cfg load order
Config.Frameworkvalue- Steps to reproduce
- FiveM version