> ## 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.

# FAQs

> Frequently asked questions about the Sandy Bank Robbery resource

## General Questions

<AccordionGroup>
  <Accordion title="What frameworks are supported?">
    The script supports QBCore, Qbox, and ESX through the Project X Bridge. Set `Framework` to `'auto'` in the bridge config and it will detect your framework automatically.
  </Accordion>

  <Accordion title="Do I need the Project X Bridge?">
    Yes. The bridge is required for this script to function. It handles framework detection, inventory, dispatch, notifications, progressbars, XP, evidence, logs, and global cooldowns. See the [Bridge Installation](/resources/bridge/installation) page for setup instructions.

    When you purchase Sandy Bank Robbery, the `projectx-bridge` asset is automatically delivered to your CFX portal.
  </Accordion>

  <Accordion title="What inventory systems are supported?">
    Inventory is handled through the Project X Bridge. Set `Inventory` to `'auto'` in the bridge config for automatic detection. Supported values include ox\_inventory, qb-inventory, ps/lj-inventory, codem-inventory, origen\_inventory, tgiann-inventory, ak47\_inventory, jpr-inventory, one\_inventory, and ESX default inventory. See the [FAQs](/faqs) for the full list with config values and links.
  </Accordion>

  <Accordion title="What dispatch systems are supported?">
    The bridge supports 30+ dispatch systems including PS Dispatch, CodeSign, CodeSign 3D, LB Tablet, FD Dispatch, Wasabi MDT, Oxide Dispatch, VX MDT, Sonoran CAD, and many more. Set `Dispatch` to `'auto'` in the bridge config for automatic detection. See the [FAQs](/faqs) for the full list with config values and links.
  </Accordion>

  <Accordion title="Can I run the robbery solo?">
    Yes. Set `Disable2PlayerPuzzles` to `true` in `config/config.lua` to disable all two-player puzzles. You can then complete the entire robbery alone.
  </Accordion>

  <Accordion title="What is the difference between loud and silent approaches?">
    The silent approach is higher risk but offers a higher potential reward. Failing minigames during silent accumulates strikes, which reduce the number of trolleys available at the end. The loud approach is lower risk with a fixed trolley count controlled by `StrikeLoud`, but may trigger dispatch immediately.
  </Accordion>

  <Accordion title="How do I change which minigames are used?">
    Open `opensource/client/client.lua` and find the `projectx-sandybankrobbery-prompt:client:Minigames` callback. Each robbery step has its own `elseif` block where you can swap the minigame export for any resource you prefer. You can also return `true` inside any block to skip that minigame entirely.

    ```lua theme={null}
    elseif step == 'hackserver' then
        return true -- Skip this minigame
    elseif step == 'drillvault' then
        return true -- Skip this minigame
    ```

    See the [Open Source](/resources/sandy-bank-robbery/opensource) page for the full callback code and a table of the default minigame assignments.
  </Accordion>

  <Accordion title="How do I reset the bank manually?">
    Use the `/projectxsandybank` in-game command (requires admin permissions), or call the `Reset()` server export from another resource:

    ```lua theme={null}
    exports['projectx-sandybankrobbery-prompt']:Reset()
    ```

    See the [Commands](/resources/sandy-bank-robbery/commands) and [Exports](/resources/sandy-bank-robbery/exports) pages for more details.
  </Accordion>
</AccordionGroup>

## Configuration Questions

<AccordionGroup>
  <Accordion title="How do I require a minimum number of police?">
    Set `MinimumPolice` to the number you want in `config/config.lua`, and make sure the correct jobs are listed in `PoliceJobs`.

    ```lua theme={null}
    MinimumPolice = 2,
    PoliceJobs = {"police", "fbi"},
    ```
  </Accordion>

  <Accordion title="How do I gate the robbery behind an XP or level requirement?">
    Set `SkillSystem` to `true` and configure `MinimumLevel` in `config/config.lua`. You also need a compatible XP system integrated in the bridge config (`XPSystem`).

    Supported systems include `projectx-xp`, `pickle_xp`, `sd-levels`, `cw-rep`, and `OT_skills`. See the [FAQs](/faqs) for bridge XP config values.
  </Accordion>

  <Accordion title="How do I set up bonus items at the end of the heist?">
    Enable `Bonus.Status` and configure the `Bonus.Items` table in `config/config.lua`. Each item has a `Chance` percentage and an `Amount` range.

    ```lua theme={null}
    Bonus = {
        Status = true,
        BonusChance = 15,
        ItemCount = 1,
        Items = {
            {Name = "x_device", Chance = 30, Amount = {min = 1, max = 1}},
        }
    }
    ```
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The script won't start" icon="triangle-exclamation">
    Make sure you have all required dependencies started before the script in your `server.cfg` (`projectx-bridge`, `ox_lib`, minigames).
  </Accordion>
</AccordionGroup>
