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

# Development

> Run FA Minigames browser mocks, type checks, and production builds.

The NUI source lives in `web`. The production files referenced by the FiveM manifest are built into `web/dist`.

## Run locally

```powershell theme={null}
cd web
npm.cmd install
npm.cmd run dev
```

Open the Vite URL printed in the terminal. Add `?game=` with a lowercase game name to preview a specific mock.

```text theme={null}
?game=terminal
?game=lockpick&compact=true
```

Valid game names are `drill`, `keypad`, `skillbar`, `sequence`, `lockpick`, `pattern`, `wires`, `circuit`, `fingerprint`, and `terminal`.

## Validate a change

```powershell theme={null}
npm.cmd run typecheck
npm.cmd run build
```

The browser mock accepts `1234` as a successful keypad entry. It is only a local preview behavior and is not part of the FiveM validator contract.

<Warning>
  Browser mocks do not prove NUI focus, FiveM callbacks, resource-stop cleanup, or gameplay behavior. Test changed interactions in FiveM before you release a build.
</Warning>

## Contribute a game

Keep changes focused and framework-independent. New games should follow the shared session contract, clean up timers and listeners, support keyboard interaction where appropriate, and document every public option.
