Skip to content

Installation

ResourceRequiredNotes
QBCore / QBX / ESXYesDetected automatically, nothing to configure
screenshot-basicYesUsed by the eyedropper to pick real colours from the world
frkn-paintmap-1, frkn-paintmap-2, frkn-paintmap-3YesThe three custom maps, included in your download
pma-voiceNoEnables the team radio inside matches
qb-target / ox_targetNoUsed 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:

text
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.

text
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:

FileWhat it stores
leaderboard.jsonThe permanent leaderboard (wins, catches, score)
returns.jsonPlayers 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:

lua
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#

lua
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:

ActionHow
Open the lobby menuWalk up to the job NPC and interact with it
Leave a lobbyLeave button in the waiting room
Leave a matchPress ESC and confirm
Clear your paintClear All button in the paint studio
Get unstuckHold 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#

ProblemSolution
Custom maps are empty or players fall through the floorMake 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 coloursscreenshot-basic is not started, or starts after frkn-painting
Team radio does not workpma-voice is not started, or another resource uses the same channels. Change FRKN.Voice.RadioBase to an unused range
The job NPC does not appearCheck FRKN.JobNpc.Enabled and Coords. The NPC only spawns within StreamDistance metres
I changed a key but players still use the old oneFiveM saves key bindings per player. Players can rebind it in Settings > Key Bindings > FiveM
"No slot available" messagePaint uses 10 texture slots, so a lobby holds at most 10 players. This is a hard limit
The leaderboard was reset after an updateRestore leaderboard.json (or the .bak copy) from your backup