> ## 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 Default Store 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 Default Store Robbery, the `projectx-bridge` asset is automatically delivered to your CFX portal.
  </Accordion>

  <Accordion title="Do I need a custom map?">
    No. This variant uses default GTA store interiors and does not require a paid map pack. Install only `ox_lib`, `projectx-bridge`, and the minigame resources listed on the [Installation](/resources/store-robbery-default/installation) page.
  </Accordion>

  <Accordion title="What dispatch systems are supported?">
    The bridge supports 25+ dispatch systems including PS Dispatch, CodeSign, LB Tablet, FD Dispatch, Wasabi MDT, Sonoran CAD, and many more. Set `Dispatch` to `'auto'` in the bridge config for automatic detection. See the [Bridge Overview](/resources/bridge/overview) for the full list.
  </Accordion>

  <Accordion title="What store types and locations are included?">
    The script supports three store types with tier-based loot:

    * **24/7 Supermarkets** — 9 locations (default GTA interiors)
    * **Gas Stations** — 5 locations
    * **Liquor Stores** — 5 locations

    Enable or disable individual locations in `Config.Stores247`, `Config.GasStations`, and `Config.LiquorStores`.
  </Accordion>

  <Accordion title="What is the difference between loud and silent approaches?">
    The **loud approach** involves threatening the clerk with an allowed weapon. Dispatch can trigger immediately when the loud approach begins.

    The **silent approach** bypasses the clerk and focuses on hacking, lockpicking, and stealth interactions. Dispatch timing is controlled by `DispatchLocation` in `config/config.lua`.
  </Accordion>

  <Accordion title="How do I change which minigames are used?">
    Open `opensource/client/client.lua` and find the `projectx-storerobbery-default: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.

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

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

    ```lua theme={null}
    exports['projectx-storerobbery-default']:Reset('Strawberry')
    ```

    See the [Commands](/resources/store-robbery-default/commands) and [Exports](/resources/store-robbery-default/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 robberies 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 `pickle_xp`, `sd-levels`, `cw-rep`, and `OT_skills`.
  </Accordion>

  <Accordion title="How do I set up bonus items at the end of a robbery?">
    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>

  <Accordion title="How do I use global vs per-store cooldowns?">
    Set `Cooldown.Global` to `true` to lock all stores when one is robbed. Set it to `false` for individual per-store cooldowns. Adjust the duration with `Cooldown.Timer` (in minutes).
  </Accordion>

  <Accordion title="How do I add a custom store location?">
    Copy an existing entry in `Config.Stores`, rename the key, and update the coordinates and interaction zones. Enable it in the matching store type table (`Config.Stores247`, `Config.GasStations`, or `Config.LiquorStores`).
  </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`, and minigames).
  </Accordion>

  <Accordion title="Minigames fail immediately" icon="triangle-exclamation">
    Verify all minigame resources (`bl_ui`, `pure-minigames`, `SN-Hacking`, `pd-safe`) are started and placed outside the robbery script folder. The bridge's `MinigameCheck` will return `false` if a minigame resource is missing.
  </Accordion>

  <Accordion title="Interactions are in the wrong place" icon="triangle-exclamation">
    This variant is configured for default GTA store interiors. If you use a custom map MLO at a store location, copy the matching `Config.Stores` entry and adjust the coordinates and interaction zones for your map.
  </Accordion>
</AccordionGroup>
