> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectx.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Open Source

> Open source customization for the Molo Casino Heist resource

## opensource/client/client.lua

Callback: `projectx-casinoheist-molo:client:Minigames`. Uses **pure-minigames**; does not use **pd-safe** by default.

### Minigame Callback (abbreviated)

```lua theme={null}
lib.callback.register('projectx-casinoheist-molo:client:Minigames', function(Step)
    local p = promise.new()
    if Step == "Cashier" then
        p:resolve(true)
    elseif Step == "KeypadCashier" then
        if not exports['projectx-bridge']:MinigameCheck("pure-minigames") then p:resolve(false) return Citizen.Await(p) end
        local gameData = {totalNumbers = 20, seconds = 20, timesToChangeNumbers = 4, amountOfGames = 1, incrementByAmount = 5}
        p:resolve(exports['pure-minigames']:numberCounter(gameData))
    elseif Step == "ShelfPuzzle" then
        if not exports['projectx-bridge']:MinigameCheck("SN-Hacking") then p:resolve(false) return Citizen.Await(p) end
        p:resolve(exports['SN-Hacking']:ColorPicker(5, 7000, 5000))
    else
        p:resolve(false)
    end
    return Citizen.Await(p)
end)
```

### Default minigame assignments

| Step | Resource | Function |
| - | - | - |
| `Cashier` | — | skipped (`true`) |
| `KeypadCashier` | `pure-minigames` | `numberCounter` |
| `KeypadCashier2` | `bl_ui` | `MineSweeper` |
| `FuseboxCashier` | `boii_minigames` | `wire_cut` |
| `SmokeManagement` | `lightsout` | `StartLightsOut` |
| `Fusebox7` | `boii_minigames` | `wire_cut` |
| `ComputerSideOffice` | `bl_ui` | `PathFind` |
| `KeypadMainOffice` | `bl_ui` | `DigitDazzle` |
| `TakeFingerprint` | `bl_ui` | `PrintLock` |
| `LaptopMainOffice` | `bl_ui` | `KeySpam` |
| `LaptopVaultPutDown` | `bl_ui` | `KeySpam` |
| `LaptopVault1` | `bl_ui` | `WordWiz` |
| `PlantJammer` | `bl_ui` | `WaveMatch` |
| `ShelfPuzzle` | `SN-Hacking` | `ColorPicker` |
| `Drilling` | `bl_ui` | `CircleShake` |
| `C4` | `bl_ui` | `MineSweeper` |
| `Penthouse` | `boii_minigames` | `pincode` |
| `Prop` | `bl_ui` | `CircleProgress` |
| `Fusebox1` | `SN-Hacking` | `SkillBar` |
| `Fusebox2` | `bl_ui` | `KeySpam` |
| `Fusebox3` | `bl_ui` | `Progress` |
| `Fusebox4` | `SN-Hacking` | `Thermite` |
| `Fusebox5` | `bl_ui` | `RapidLines` |
| `Fusebox6` | `bl_ui` | `WaveMatch` |

***

## opensource/server/server.lua

`SuccessfulStep`, `FailedStep`, `InitialCheck(source, Interaction)`, `RobberyResetHook`, and `CheckPerms` via the bridge — same pattern as other casino variants.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.