REC_Minigames
Stracture
Installation, configuration, and usage for REC_Minigames.
- Added
- Updated
The following configuration files and manifest are taken from the current source.
config/sh_config.lua
---@class REC_Minigames.Shared.Config
local config = {}
---[[
--- Debug Mode
---]]
---@type boolean
config.debugMode = false
---[[
--- Default settings for each minigame
--- Only the keys passed via opts on the exports call are overridden
---]]
config.defaults = {
---@class REC_Minigames.Opts.BeamHack
beamhack = {
rounds = 2, -- boards to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed mistakes across the whole run
duration = 180, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Snake
snake = {
rounds = 2, -- boards to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed mistakes across the whole run
duration = 120, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.PowerRoute
powerroute = {
rounds = 2, -- boards to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed mistakes across the whole run
duration = 180, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Lockpick
lockpick = {
pins = 3, -- number of successful pins
speed = 1.0, -- needle rotation speed multiplier
zoneSize = 40, -- hit zone size (degrees)
lives = 3, -- allowed failures
},
---@class REC_Minigames.Opts.Memory
memory = {
grid = 3, -- grid width (3 => 3x3)
rounds = 4, -- cells to memorise by the end
showTime = 600, -- cell lit time (ms)
},
---@class REC_Minigames.Opts.WordHack
wordhack = {
words = 5, -- words to type
duration = 20, -- time limit (seconds)
length = 6, -- word length
},
---@class REC_Minigames.Opts.SkillBar
skillbar = {
rounds = 3, -- rounds to clear (speeds up each time)
speed = 1.0, -- cursor speed multiplier
zoneSize = 15, -- hit zone width (%)
},
---@class REC_Minigames.Opts.Wires
wires = {
count = 4, -- number of wires (max 6)
duration = 15, -- time limit (seconds)
},
---[[
--- The following recreate the vanilla GTA5 minigames
---]]
---@class REC_Minigames.Opts.Fingerprint
fingerprint = { -- Casino Heist: fingerprint clone
pieces = 8, -- number of fragments
correct = 4, -- number of correct fragments
rounds = 2, -- matching rounds
lives = 3, -- allowed failures
duration = 60, -- time limit (seconds)
},
---@class REC_Minigames.Opts.BruteForce
bruteforce = { -- Fleeca Heist: BruteForce.exe
columns = 5, -- columns in the IP list
rounds = 3, -- matches to find
lives = 3, -- allowed failures
speed = 1.0, -- scroll speed multiplier
duration = 45, -- time limit (seconds)
},
---@class REC_Minigames.Opts.Scramble
scramble = { -- Cayo Perico: vault lock
rows = 3, -- number of rows
numbers = 8, -- numbers per row
rowTime = 8, -- time limit per row (seconds)
},
---@class REC_Minigames.Opts.DataCrack
datacrack = { -- Doomsday: data crack
bars = 5, -- number of bars (later ones are faster)
speed = 1.0, -- marker speed multiplier
tolerance = 14, -- hit window (px)
lives = 3, -- allowed failures
duration = 40, -- time limit (seconds)
},
---@class REC_Minigames.Opts.SafeCrack
safecrack = { -- Safe dial
locks = 3, -- locks to open
speed = 1.0, -- dial top speed multiplier
tolerance = 10, -- hit window (degrees)
lives = 3, -- allowed failures
duration = 45, -- time limit (seconds)
},
---@class REC_Minigames.Opts.Hotwire
hotwire = { -- Hotwire (key press QTE)
length = 6, -- keys per round
rounds = 2, -- number of rounds
lives = 3, -- allowed failures
duration = 20, -- time limit (seconds)
},
---@class REC_Minigames.Opts.Mash
mash = { -- Mash gauge
duration = 8, -- time limit (seconds)
decay = 20, -- gauge decay (%/sec)
gain = 7, -- gain per press (%)
},
---@class REC_Minigames.Opts.Binary
binary = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 60, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.HexDecode
hexdecode = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 75, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Cipher
cipher = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 90, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Pulse
pulse = {
rounds = 3, -- rounds to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed misses across the whole run
duration = 60, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Tracking
tracking = {
rounds = 3, -- rounds to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed misses across the whole run
duration = 60, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Checksum
checksum = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 75, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Trace
trace = {
rounds = 3, -- rounds to complete
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- allowed misses across the whole run
duration = 75, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Circuit
circuit = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 120, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.Network
network = {
rounds = 3, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 3, -- failed submissions across the whole run
duration = 90, -- total time limit (seconds)
},
---@class REC_Minigames.Opts.CodeBreak
codebreak = {
rounds = 1, -- puzzles to solve
difficulty = 1, -- 1: easy, 2: medium, 3: hard
lives = 8, -- failed submissions across the whole run
duration = 120, -- total time limit (seconds)
},
}
return config
