Configuration (config.lua)
All settings live in config.lua. There are no in-game admin panels.
Global Settings
| Key | Type | Default | Description |
|---|---|---|---|
MBT.Debug | boolean | false | Enable debug commands (/testminigame, /testscene) and verbose console logging |
MBT.DefaultDifficulty | string | "Easy" | Fallback difficulty used when no difficulty is passed to an export call. Options: "Easy", "Medium", "Hard" |
Minigames (MBT.Minigames)
Each minigame entry has three sub-tables: locale (UI text), animation (ped/props/particles), and difficulties (per-level parameters).
Hacking
MBT.Minigames.hacking
Difficulties
| Level | Time | Sequence Length | Max Mistakes |
|---|---|---|---|
| Easy | 60s | 4 | 4 |
| Medium | 35s | 6 | 3 |
| Hard | 20s | 8 | 2 |
Locale Keys
| Key | Default |
|---|---|
label | "Hacking" |
title | "TERMINAL NODE DECRYPTION" |
instruction | "IDENTIFY SEQUENCE PATTERN IN DESIGNATED ORDER" |
target_label | "TARGET SEQUENCE" |
errors_label | "ERRORS" |
granted | "ACCESS GRANTED" |
granted_sub | "SYSTEM OVERRIDE COMPLETE" |
denied | "ACCESS DENIED" |
denied_sub | "SECURITY PROTOCOL TRIGGERED" |
boot_lines | Array of 6 terminal startup strings |
Animation
| Key | Value |
|---|---|
| Dict | anim@heists@ornate_bank@hack |
| Prop | hei_prop_hst_laptop (bone 28422) |
| Bag prop | hei_p_m_bag_var22_arm_s (bone 57005) |
| Z offset | 0.9 |
Wire Fix
MBT.Minigames.wire_fix
Difficulties
| Level | Time | Wire Count | Shuffle Speed | Max Mistakes |
|---|---|---|---|---|
| Easy | 45s | 4 | 6000ms | 4 |
| Medium | 55s | 5 | 4000ms | 3 |
| Hard | 70s | 6 | 2000ms | 2 |
Locale Keys
| Key | Default |
|---|---|
label | "Electrical Repair" |
title | "NEURAL LINK RESTORATION" |
errors_label | "SIGNAL ERRORS" |
warning | "CAUTION: NEURAL SYNC UNSTABLE. PORTS ARE SHIFTING." |
won | "LINK ESTABLISHED" |
won_sub | "SYSTEMS STABILIZED" |
lost | "NEURAL COLLAPSE" |
lost_sub | "CONNECTION TERMINATED" |
Animation
| Key | Value |
|---|---|
| Dict | amb@world_human_welding@male@base |
| Loop | base |
| Props | Welding torch (bone 28422), welding mask (bone 31086) |
| Particle | core / ent_dst_electrical, scale 2.0, pulse every 400ms |
Bolt Turn
MBT.Minigames.bolt_turn
Difficulties
| Level | Time | Bolt Count | Heat Speed | Max Mistakes |
|---|---|---|---|---|
| Easy | 40s | 3 | 0.8×/s | 4 |
| Medium | 50s | 4 | 1.2×/s | 3 |
| Hard | 65s | 5 | 1.6×/s | 2 |
Physics Constants
| Constant | Value |
|---|---|
| Tension build rate | 120 units/sec (while key held) |
| Tension decay rate | 180 units/sec (when released) |
| Max tension | 100 units |
| Sweet spot width | 25% of dial |
| Progress rate in sweet spot | 15 points/sec |
| Hits needed per bolt | 3–5 |
Locale Keys
| Key | Default |
|---|---|
label | "Mechanical Repair" |
title | "PRESSURE CONTROL SYSTEM" |
valves_label | "VALVES STATE" |
neural_load | "NEURAL LOAD" |
stability | "STABILITY" |
won | "SYSTEM RESTORED" |
won_sub | "Pressure stabilized at 101.3 kPa" |
lost | "MECHANICAL FAILURE" |
lost_sub_meltdown | "CRITICAL ENGINE MELTDOWN" |
lost_sub_time | "TIME EXPIRED" |
Animation
| Key | Value |
|---|---|
| Pre-enter dict | anim@heists@ornate_bank@hack |
| Pre-enter clip | hack_enter (2000ms) |
| Loop dict | anim@heists@fleeca_bank@drilling |
| Enter clip | drill_straight_start (1200ms) |
| Loop clip | drill_straight_idle |
| Prop | hei_prop_heist_drill (bone 28422) |
Code Match
MBT.Minigames.code_match
Difficulties
| Level | Time | Segment Count | Shift Speed | Max Mistakes |
|---|---|---|---|---|
| Easy | 20s | 6 | 600ms | 4 |
| Medium | 25s | 8 | 600ms | 3 |
| Hard | 30s | 10 | 600ms | 2 |
Codes are 4-character hex strings (0–9, A–F). The stream shifts every shiftSpeed milliseconds regardless of input.
Locale Keys
| Key | Default |
|---|---|
label | "System Override" |
title | "DATA STREAM SYNC" |
locate | "LOCATE SEQUENCE" |
won | "DATA SYNCED" |
lost | "STREAM CORRUPTED" |
Animation
| Key | Value |
|---|---|
| Dict | amb@code_human_in_bus_passenger_idles@female@tablet@base |
| Loop | base (flag 49) |
| Prop | prop_cs_tablet (bone 60309) |
