🎲Rup-Minigames

This will document all ways to use the minigames in our resource!

Overview

This resource exposes client-side exports you can call from other scripts to run a minigame and get a Boolean result. The resource also exposes a lower-level call exports.rup_minigames:_openMinigame(minigameId, params) if you prefer to invoke games by ID and pass the raw parameter table.

Both approaches are supported; the public exports are convenience wrappers that set defaults and return a plain boolean.

Quick start

Example β€” call a game export:

local success = exports.rup_minigames:circleClicker(5, 8000, 1500, 40)
if success then
	print('Minigame success!')
else
	print('Minigame failed or cancelled')
end

Example β€” call the minigame export directly:

local promise = exports.rup_minigames:_openMinigame("circle", {
	circles = 5,
	durationMs = 8000,
	approachMs = 1500,
	radiusPx = 40,
})
-- await/promise resolution depends on your environment (Citizen.Await / p:await / p:next)
local ok = Citizen.Await and Citizen.Await(promise) or promise
if ok then print('success') end

Common behavior

  • Returns: boolean β€” true on success, false on failure or cancel.

  • The call blocks until the NUI minigame completes (the exports await the result).

  • Press Escape to cancel a running minigame (returns false).

  • durationMs = 0 (or nil) disables the timer for games that support it.

  • moveLimit = 0 (or nil) means unlimited moves where applicable.

Exports

Each public export is a convenience wrapper around _openMinigame with a simple parameter list and defaults. Use these when you want a straightforward call that returns true/false.

1

Circle Clicker

  • numberOfCircles (number) β€” default 5

  • durationMs (number) β€” default 8000

  • approachMs (number) β€” default 1500

  • radiusPx (number) β€” default 40

2

Key Tempo

  • steps (number) β€” default 7

  • durationMs (number) β€” default 9000

  • stepMs (number) β€” default 950

  • hitWindow (number) β€” default 0.12

  • allowedKeys (string["W", "A", "S", "D"] | nil) β€” optional

3

Sequence Memory

  • length (number) β€” default 6

  • durationMs (number) β€” default 9000

  • showMs (number) β€” default 420

  • gapMs (number) β€” default 120

  • allowedKeys (string["W", "A", "S", "D"] | nil) β€” optional

4

Rotor Lock

  • locks (number) β€” default 5

  • durationMs (number) β€” default 9000

  • windowDeg (number) β€” default 78

  • thresholdDeg (number) β€” default 18

  • speed1 (number) β€” default 150

  • speed2 (number) β€” default 230

  • key (string) β€” default "E"

5

Radar Sweep

  • rounds (number) β€” default 5

  • durationMs (number) β€” default 9000

  • targetDeg (number) β€” default 26

  • speedDegPerSec (number) β€” default 240

  • key (string) β€” default "E"

6

Wire Trace

  • durationMs (number) β€” default 9000

  • bends (number) β€” default 5

  • tolerance (number) β€” default 3.4

  • startRadius (number) β€” default 6

  • endRadius (number) β€” default 6

7

Signal Tuner

  • durationMs (number) β€” default 10000

  • lockMs (number) β€” default 7000

  • tolerance (number) β€” default 0.06

  • adjustSpeed (number) β€” default 0.2

  • driftSpeed (number) β€” default 0.22

8

Hash Hunt

  • durationMs (number) β€” default 10000

  • showMs (number) β€” default 2500

  • rounds (number) β€” default 1

  • gridSize (number) β€” default 36

  • tokenLen (number) β€” default 8

  • allowedMistakes (number) β€” default 2

9

Fuse Flip

  • durationMs (number) β€” default 0 (0 = no timer)

  • size (number) β€” default 4 (clamped 3..7)

  • scrambleMoves (number) β€” default 10

  • moveLimit (number) β€” default 0 (0 = unlimited)

  • goalOn (boolean | nil) β€” default true

10

Flow Circuit

  • durationMs (number) β€” default 0 (0 = no timer)

  • size (number) β€” default 5 (clamped 4..7)

  • branches (number) β€” default 3

  • moveLimit (number) β€” default 0 (0 = unlimited)

Minigame Export

Use this when you want full control over the raw parameter table or to invoke minigames by ID.

  • The call returns a promise-like object. The public exports call this and then coerce the result to a Boolean.

  • If you pass nil for omitted params, the same defaults used by the public exports apply.

Supported minigameId values and their params (explicit):

  • "circle" β€” params: circles, durationMs, approachMs, radiusPx.

  • "keys" β€” params: steps, durationMs, stepMs, hitWindow, allowedKeys.

  • "sequence" β€” params: length, durationMs, showMs, gapMs, allowedKeys.

  • "rotor" β€” params: locks, durationMs, windowDeg, thresholdDeg, speed1, speed2, pressKey.

  • "radar" β€” params: rounds, durationMs, targetDeg, speedDegPerSec, pressKey.

  • "trace" β€” params: durationMs, bends, tolerance, startRadius, endRadius.

  • "tuner" β€” params: durationMs, lockMs, tolerance, adjustSpeed, driftSpeed.

  • "hashhunt" β€” params: durationMs, showMs, rounds, gridSize, tokenLen, allowedMistakes.

  • "fuse" β€” params: durationMs, size, scrambleMoves, moveLimit, goalOn.

  • "flow" β€” params: durationMs, size, branches, moveLimit.

Debug command

When Config.Debug is enabled the resource registers a /mt command that can be used to quickly open each minigame for testing (types: circle, keys, sequence, rotor, radar, trace, tuner, hash, fuse, flow). Each subcommand will pop a notification indicating success or failure.

Last updated