| Resource | Required | Notes |
|---|---|---|
| QBCore / QBX / ESX | Yes | Detected automatically, nothing to configure |
screenshot-basic | Yes | Used by the eyedropper to pick real colours from the world |
frkn-paintmap-1, frkn-paintmap-2, frkn-paintmap-3 | Yes | The three custom maps, included in your download |
pma-voice | No | Enables the team radio inside matches |
qb-target / ox_target | No | Used for the job NPC. Without one, an [E] prompt is shown instead |
FiveM server artifact 6683 or newer is recommended. The resource streams about 63 MB of character models, so the first join takes a little longer.
Step 1 - Add the resources#
Drop the four folders from your download into your resources directory:
resources/
├── frkn-painting
├── frkn-paintmap-1
├── frkn-paintmap-2
└── frkn-paintmap-3
Step 2 - Start the resources#
Add the following lines to your server.cfg. The maps and screenshot-basic must start before frkn-painting.
ensure screenshot-basic
ensure frkn-paintmap-1
ensure frkn-paintmap-2
ensure frkn-paintmap-3
ensure frkn-painting
If you keep the resources inside a category folder (for example [frkn]), ensure [frkn] works too, as long as the category starts after screenshot-basic.
Step 3 - No database needed#
The script does not use SQL. Everything it stores is kept in two JSON files inside the resource folder:
| File | What it stores |
|---|---|
leaderboard.json | The permanent leaderboard (wins, catches, score) |
returns.json | Players who disconnected during a match, so they come back next to the job NPC instead of inside an arena |
Back up leaderboard.json before you replace the resource with an update, otherwise the leaderboard starts from zero. A .bak copy is written automatically every time it is saved.
Step 4 - Place the job NPC#
Open shared/config.lua and set where the job NPC stands:
FRKN.JobNpc = {
Enabled = true,
Coords = { x = -213.5340, y = -1333.4371, z = 30.8904, h = 0.7685 },
...
}
h is the direction the NPC faces. Players walk up to it to open the lobby menu.
Players who are in a match never see the NPC or its target, so it can stand next to (or even inside) an arena without getting in the way.
Step 5 - Set your language#
FRKN.Locale = 'en'
Available languages: en, tr, de, fr, es, pt (Brazilian), it, nl, pl, ru, cs.
That's it! Restart your server, walk up to the job NPC and create your first lobby.
Commands#
There are no chat commands. Everything is done through the job NPC and the menus:
| Action | How |
|---|---|
| Open the lobby menu | Walk up to the job NPC and interact with it |
| Leave a lobby | Leave button in the waiting room |
| Leave a match | Press ESC and confirm |
| Clear your paint | Clear All button in the paint studio |
| Get unstuck | Hold G to return to your last safe spot |
The chat, whistle, camera and HUD keys can be rebound by each player in Settings > Key Bindings > FiveM, under the "Chameleon" entries.
Troubleshooting#
| Problem | Solution |
|---|---|
| Custom maps are empty or players fall through the floor | Make sure frkn-paintmap-1/2/3 are started before frkn-painting. If it still happens on slow PCs, raise FRKN.Game.MapLoadTime |
| The eyedropper does not pick colours | screenshot-basic is not started, or starts after frkn-painting |
| Team radio does not work | pma-voice is not started, or another resource uses the same channels. Change FRKN.Voice.RadioBase to an unused range |
| The job NPC does not appear | Check FRKN.JobNpc.Enabled and Coords. The NPC only spawns within StreamDistance metres |
| I changed a key but players still use the old one | FiveM saves key bindings per player. Players can rebind it in Settings > Key Bindings > FiveM |
| "No slot available" message | Paint uses 10 texture slots, so a lobby holds at most 10 players. This is a hard limit |
| The leaderboard was reset after an update | Restore leaderboard.json (or the .bak copy) from your backup |