Installation
Requirements
| Resource | Notes |
|---|---|
| koja-lib | Required. Names, jobs, money, admin groups and Discord logging go through it |
| ESX, QBCore, QBX or a custom framework | Supported through koja-lib |
| OneSync | Recommended. Proximity is calculated on the server. Without it the clients filter by distance |
No database is needed.
-
Add the resource
Putkoja-chatin yourresourcesfolder. Keep the folder name. -
Remove the default chat
Remove or stop the defaultchatresource.ensure chatis usually started by[system]. Koja Chat declaresprovide 'chat', so scripts that useexports.chator thechat:events keep working without the original. -
Start it after koja-lib
server.cfgensure koja-lib ensure koja-chat -
Configure it
Editeditable/config.lua. Change names, badges and the admin check ineditable/server.lua, and the open check ineditable/client.lua. See Configuration.
Developer console (optional)
The Console tab is off by default. To use it, enable Config.DevMode.enabled and give the group the ACE:
server.cfg
add_ace group.admin koja-chat.dev allowRunning server commands from the tab needs the separate Config.DevMode.execute = true. Only enable it for people you trust with the server console.
Discord logs (optional)
Set Config.Logs.enabled = true and a webhook in Config.Logs.webhook. See Configuration.
Building the UI (only if you change it)
The release ZIP ships the built UI in web/build. A source download of the repository does not, so build it first.
web
cd web
npm ci
npm run build # outputs web/build
npm run dev # browser preview with sample messagesCheck that it works
- Press
T(the defaultConfig.OpenKey). Players can rebind it in the GTA key settings under FiveM. - Type
/me waves. The text appears for players within range and above your head. - Open the chat settings in the chat to change style, colour and position.