Skip to main content
Every game is started the same way: one line of code that runs the game and, when the player finishes, tells you true if they won or false if they didn’t.
Learn that one line and all 68 games work the same way - only the name and the options in the { } change. Every game’s options are listed on its configuration page.
You call these from a client script. There are also a couple of extras: a way to check a win on your server, and Sequence for running several games in a row.

A few things worth knowing

The line waits for the player to finish before it carries on, so put it inside a CreateThread (the standard FiveM way to run something that waits):
If a game is already on screen, starting another does nothing and returns false. If two systems might overlap, check first with IsActive:
Any options you pass apply to that single game and override the server defaults. Leave the { } empty to use your defaults exactly as set:
false means the player didn’t win - whether they failed or pressed ESC to back out. It doesn’t say which, which is what you want for most jobs: they didn’t do it, so it didn’t happen. To stop them backing out at all, set canCancel = false.

Shared options

On top of its own options, every game accepts these. See Configuration → Shared options.

Two helpers

IsActive

Tells you true if a game is currently on screen. Handy to avoid starting one on top of another.

FishingResult

Most games just tell you win or lose. Fishing can also tell you how many fish the player landed, so someone who lands 2 of 3 can still be paid for 2:
You get back r.caught (how many they landed), r.total (how many there were), r.success (true only if they got them all), and r.cancelled (true if they pressed ESC).

Every game’s export name

Options and defaults for each game live on its category page.

Reaction & precision

Options → SkillCheck · CircleClick · HoldZone · AimTest · Balance · Rhythm · FirewallPulse · SafeCrack · Lockpick · Osu · Slider

Input & sequence

Options → Keymash · Keys · NumberUp · BackdoorSequence

Memory

Options → SimonSays · Memory · MemoryColors · VerbalMemory · NumberedSequence · VarHack · Pairs · Recall · Observe · Tally · ChromaLock · PitchLock

Logic & hacking

Options → LightsOut · HexBreach · CodeCrack · Fingerprint · WordCrack · SymbolSearch · PipePressure · Untangle · Minefield · Jigsaw · Wires · TowerOfHanoi · MathRush · Twenty48 · Splice · Current · DataStream · Collapse · ArrowMaze

Arcade

Options → Snake · Flappy · Stack · Pong · Invaders · Crossy · Ascent · Slipstream · Breakout · StickIt · MatchIt

Precision

Options → Track · Trace · Cut · Calibrate · Waveform · Thread · Reach

Dexterity

Options → Shake · Cascade · Fishing · Cooldown
Each game has one export name, shown above (like SkillCheck or HexBreach). The same name in the config files is written lower-case-first - skillCheck, hexBreach.

Recipes

Gate a heist step

Scale difficulty by tier

One call, a couple of numbers. Every game’s page lists its ranges.

Make it un-cancellable

Chain several games

You can run games one after another - each line waits for the last to finish:
For anything more than a step or two, the built-in Sequence export does the same thing more neatly - one call, one result, with a “Stage 2 of 3” banner for the player.

Re-skin a game for your job

The title, subtitle and brand can be set per call, so the same game can be a bank hack in one place and a lab puzzle in another: