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

# Configuration

> Use difficulty presets and supported per-game options for FA Minigames.

Every game accepts `'easy'`, `'medium'`, or `'hard'`. Calling an export without arguments uses the `medium` preset.

```lua theme={null}
local result = exports.fa_minigames:Circuit('easy')
```

You can also use a table to choose a preset and override options.

```lua theme={null}
local result = exports.fa_minigames:Terminal({
    difficulty = 'hard',
    refreshInterval = 10000,
    timeLimit = 60000
})
```

## Presets

| Game        | Easy                     | Medium                 | Hard                     |
| ----------- | ------------------------ | ---------------------- | ------------------------ |
| Drill       | difficulty 1             | difficulty 2           | difficulty 4             |
| Keypad      | 45 s                     | 30 s                   | 20 s                     |
| Skillbar    | difficulty 1, 2 rounds   | difficulty 3, 3 rounds | difficulty 5, 4 rounds   |
| Sequence    | 3 inputs, slower preview | 5 inputs               | 7 inputs, faster preview |
| Lockpick    | difficulty 1             | difficulty 3           | difficulty 5             |
| Pattern     | 4 cells, 2.5 s preview   | 6 cells, 1.8 s preview | 8 cells, 1.3 s preview   |
| Wires       | 3 channels               | 4 channels             | 5 channels               |
| Circuit     | 3 × 3                    | 4 × 4                  | 5 × 5                    |
| Fingerprint | 3 slices                 | 5 slices               | 7 slices                 |
| Terminal    | 12 entries, 2 traces     | 20 entries, 3 traces   | 28 entries, 4 traces     |

## Supported options

| Game        | Options                                                                      |
| ----------- | ---------------------------------------------------------------------------- |
| Drill       | `difficulty` (1–5), `timeout`                                                |
| Keypad      | `title`, `timeout`, `validate`                                               |
| Skillbar    | `difficulty` (1–5), `rounds` (1–8), `timeout`, `compact`                     |
| Sequence    | `length` (3–9), `previewInterval` (220–900 ms), `timeout`, `compact`         |
| Lockpick    | `difficulty` (1–5), `timeout`, `compact`                                     |
| Pattern     | `length` (3–9), `previewDuration` (800–5000 ms), `timeout`, `compact`        |
| Wires       | `channels` (3–5), `timeout`                                                  |
| Circuit     | `size` (3–5), `timeout`                                                      |
| Fingerprint | `slices` (3–7), `timeout`                                                    |
| Terminal    | `entries` (12–30), `rounds` (1–6), `refreshInterval`, `timeLimit`, `timeout` |

Numeric game options are clamped to their safe ranges. `timeout` is always milliseconds and has a minimum of 5000 ms.

## Timeout guidance

Terminal uses a 10-second table refresh, a 60-second game limit, and a 61-second outer timeout by default. Keep `timeout` slightly longer than `timeLimit` if you override both.

```lua theme={null}
local result = exports.fa_minigames:Terminal({
    entries = 24,
    rounds = 4,
    refreshInterval = 8000,
    timeLimit = 60000,
    timeout = 61000
})
```

## Compact layout

`Skillbar`, `Sequence`, `Lockpick`, and `Pattern` accept `compact = true`. This removes surrounding chrome and secondary information while preserving the gameplay controls and result contract.

```lua theme={null}
local result = exports.fa_minigames:Lockpick({
    difficulty = 'hard',
    compact = true,
    timeout = 25000
})
```
