Skip to content

Installation

  1. Remove Default Chat Navigate to your FiveM artifacts folder and remove or disable the original chat resource: Artifacts/citizen/system_resources/chat

    Tip: You can rename the folder to chat_backup instead of deleting it.

  2. Add RS Chat

    • Place the rs_chat folder in your serverโ€™s resources directory (e.g., resources/[scripts]/).
    • Add to your server.cfg:
      ensure rs_chat
  3. Configure Edit config.lua to customize:

    • Enable/disable commands
    • Set colors and themes
    • Configure emergency jobs
    • Choose your language

If youโ€™re using qb-core (standard QBCore Framework), you need to disable the built-in /me and /ooc commands to prevent conflicts with rs_chat.

File: qb-core/server/commands.lua

Find the /ooc command (around line 272-302) and /me command (around line 304-323), then wrap them with --[[ and --]]:

--[[
-- Out of Character Chat
QBCore.Commands.Add('ooc', Lang:t('command.ooc.help'), {}, false, function(source, args)
...
end, 'user')
--]]
--[[
-- Me command
QBCore.Commands.Add('me', Lang:t('command.me.help'), ...
...
end, 'user')
--]]

Note: After updating qb-core, you may need to re-apply these changes.


If youโ€™re using qbx_core (Qbox Framework), you need to make two modifications for full compatibility.

Problem: SCRIPT ERROR: @qbx_core/client/events.lua:19: No such export addMessage in resource chat

File: qbx_core/client/events.lua

Find this code (around line 17-20):

local motd = GetConvar('qbx:motd', '')
if motd ~= '' then
exports.chat:addMessage({ template = motd })
end

Change exports.chat to exports.rs_chat:

local motd = GetConvar('qbx:motd', '')
if motd ~= '' then
exports.rs_chat:addMessage({ template = motd })
end

Problem: QBX Core has its own /me command that conflicts with rs_chat.

Solution: Comment out qbx_coreโ€™s /me command so rs_chat handles it instead.

Step 1: In qbx_core/server/commands.lua, find the /me command (around line 409) and wrap it with --[[ and --]]:

--[[
lib.addCommand('me', {
...}
end)
--]]

Step 2: In qbx_core/client/events.lua, find the state bag handler (around line 165) and wrap it with --[[ and --]]:

--[[
-- Me command
AddStateBagChangeHandler('me', nil, function(bagName, _, value)
...
end)
--]]

Note: After updating qbx_core, you may need to re-apply these changes.