# Config

```javascript
--============================================================
-- OCT Minigames - Config
--============================================================

-- Avilable languages: 'en', 'pl', 'de'
Locale = 'en'

-- Enable or disable the /minigamemenu test command (true = enabled, false = disabled)
EnableMinigameMenuCommand = true
```

#### Assembly Minigame Config

```javascript
var AssemblyConfig = {
    defaultDifficulty: 'medium',
    difficulty: {
        // rounds     — how many products on the belt to win
        // seqLen     — length of the button sequence per product
        // showMs     — time to show the sequence (ms)
        // inputMs    — time to enter the sequence (ms)
        // time       — total time limit (0 = no limit)
        easy:   { rounds: 4, seqLen: 3, showMs: 2400, inputMs: 4000, time:  0 },
        medium: { rounds: 6, seqLen: 4, showMs: 1800, inputMs: 3200, time: 90 },
        hard:   { rounds: 8, seqLen: 5, showMs: 1400, inputMs: 2400, time: 70 },
    },
    keys: ['Q','W','E','R'],
    lowTimeThreshold: 8,
};

```

#### Boxpacking Minigame Config

```javascript
// Box Packing minigame configuration:
// items   - how many pieces must be packed
// time    - time limit in seconds (0 = no limit)
// gridW/H - box grid size in cells
// cellSize - pixel size of a single grid cell
// lowTimeThreshold - when timer is treated as "low"
var BoxPackingConfig = {
    defaultDifficulty: 'medium',
    difficulty: {
        easy:   { items: 4, time:  0, gridW: 6, gridH: 5 },
        medium: { items: 6, time: 60, gridW: 6, gridH: 6 },
        hard:   { items: 8, time: 45, gridW: 7, gridH: 6 },
    },
    cellSize: 52,
    lowTimeThreshold: 8,
};

```

#### Bruteforce Minigame Config

```javascript
// Bruteforce minigame configuration:
// chars      - number of password characters
// cycleSpeed - how fast slot characters cycle (ms between ticks)
// windowMs   - duration of the "correct" glow window in ms
// lives      - how many mistakes are allowed
// timeLimit  - overall time limit for the round (0 = no limit)
// charset    - characters that can appear as password symbols
// rainChars  - characters used for the matrix rain background
// rain.*     - visual parameters for the rain effect
var BruteforceConfig = {
    defaultDifficulty: 'medium',

    difficulty: {
        easy:   { chars: 4, cycleSpeed: 200, windowMs: 420, lives: 3, timeLimit:  0 },
        medium: { chars: 6, cycleSpeed: 140, windowMs: 300, lives: 2, timeLimit: 90 },
        hard:   { chars: 8, cycleSpeed:  90, windowMs: 210, lives: 1, timeLimit: 60 },
    },

    charset: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%',

    rainChars: 'ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝ0123456789ABCDEF',

    rain: {
        fontSize:   16,
        colWidth:   18,
        minSpeed:   1.0,
        maxSpeed:   3.2,
        minLen:      8,
        maxLen:     18,
        fadeAlpha: 0.10,
    },
};

```

#### Datacrack Minigame Config

```javascript
/*
    DataCrackConfig defines difficulty presets for the
    Data Crack timing minigame.

    For each difficulty:
    - pins: how many moving pins/columns
    - speed: base vertical oscillation speed
    - tolerance: vertical hit window size (fraction of area height)
    - lives: how many mistakes are allowed
    - timeLimit: total time limit in seconds
*/

var DataCrackConfig = {
    difficulty: {
        easy:   { pins: 7,  speed: 0.8,  tolerance: 0.16, lives: 3, timeLimit: 70 },
        medium: { pins: 7,  speed: 1.4,  tolerance: 0.12, lives: 3, timeLimit: 50 },
        hard:   { pins: 7,  speed: 2.2,  tolerance: 0.08, lives: 2, timeLimit: 35 },
    },
};

```

#### FruitNinja Minigame Config

```javascript
/* ============================================================
     FruitNinjaConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - target: how many fruits must be sliced to win
         - lives: how many misses/bomb hits are allowed
         - time: time limit in seconds (0 = no limit)
         - spawnRate: base delay between fruit spawns (ms)
         - minVY / maxVY: initial vertical speed range (px/frame @ 60fps)
         - bombChance: chance that a spawn is a bomb instead of fruit (0–1)

     gravity:
         - vertical acceleration in px/frame² at 60fps

     maxVX:
         - maximum horizontal speed (px/frame)

     fruitRadius:
         - min/max radius of spawned fruits in pixels

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var FruitNinjaConfig = {
        defaultDifficulty: 'medium',
        difficulty: {
                easy:   { target:  8, lives: 5, time:  0, spawnRate: 1700, minVY: 13, maxVY: 18, bombChance: 0.07 },
                medium: { target: 12, lives: 3, time: 60, spawnRate: 1300, minVY: 14, maxVY: 21, bombChance: 0.12 },
                hard:   { target: 20, lives: 2, time: 45, spawnRate:  950, minVY: 15, maxVY: 23, bombChance: 0.18 },
        },
        gravity:          0.48,
        maxVX:            3.5,
        fruitRadius:      { min: 24, max: 36 },
        lowTimeThreshold: 8,
};

```

#### Fuses Minigame Config

```javascript
/* ============================================================
     FusesConfig

     count:
         - how many fuses are present in the panel

     time:
         - global time limit in seconds (0 = no limit)

     reactivate:
         - how many fuses will randomly reactivate during the game

     labels:
         - pool of label strings; a subset is chosen randomly
             for each game instance

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var FusesConfig = {
        count:      6,
        time:       0,
        reactivate: 0,
        labels: [
        'OSWIETLENIE GLOWNE',
        'ZASILANIE AWARYJNE',
        'KLIMATYZACJA',
        'SYSTEM ALARMOWY',
        'KAMERY CCTV',
        'WENTYLACJA',
        'SIEC WEWNETRZNA',
        'ZASILANIE SERWEROW',
        'STEROWANIE BRAMAMI',
        'INTERKOM',
    ],
    lowTimeThreshold: 8,
};
```

#### HackTerminal

```javascript
/* ============================================================
     HackTermConfig

     difficulty (per level):
         - steps: how many commands the player must execute
         - typoAllowed: how many wrong submissions are allowed
         - noHints: when true, the target command text is hidden (hard)
         - time: total time limit in seconds (0 = no limit)

     lowTimeThreshold:
         - when to start low-time warning (seconds)

     missions:
         - predefined terminal scenarios with host name and command
             sequences, localized via titleKey / hintKey values
     ============================================================ */
var HackTermConfig = {
    defaultDifficulty: 'medium',
    difficulty: {
        easy:   { steps: 3, typoAllowed: 4, noHints: false, time:   0 },
        medium: { steps: 5, typoAllowed: 2, noHints: false, time: 120 },
        hard:   { steps: 6, typoAllowed: 1, noHints: true,  time:  80 },
    },
    lowTimeThreshold: 8,

    missions: [
        {
            titleKey: 'ht_m1_title',
            host:     'root@darknet-srv01',
            steps: [
                { cmd: 'ssh admin@10.0.0.1',    hintKey: 'ht_m1_s1' },
                { cmd: 'sudo su',               hintKey: 'ht_m1_s2' },
                { cmd: 'cat /etc/passwd',       hintKey: 'ht_m1_s3' },
                { cmd: 'ls /root',              hintKey: 'ht_m1_s4' },
                { cmd: 'chmod 777 /var/www',    hintKey: 'ht_m1_s5' },
                { cmd: 'rm -rf /var/log/*',     hintKey: 'ht_m1_s6' },
            ],
        },
        {
            titleKey: 'ht_m2_title',
            host:     'hacker@void-terminal',
            steps: [
                { cmd: 'nmap 10.0.0.0/24',      hintKey: 'ht_m2_s1' },
                { cmd: 'ping 10.0.0.1',         hintKey: 'ht_m2_s2' },
                { cmd: 'ifconfig',              hintKey: 'ht_m2_s3' },
                { cmd: 'netstat -an',           hintKey: 'ht_m2_s4' },
                { cmd: 'iptables -F',           hintKey: 'ht_m2_s5' },
                { cmd: 'service ssh restart',   hintKey: 'ht_m2_s6' },
            ],
        },
        {
            titleKey: 'ht_m3_title',
            host:     'anon@phantom-box',
            steps: [
                { cmd: 'ls /home',              hintKey: 'ht_m3_s1' },
                { cmd: 'find / -name *.conf',   hintKey: 'ht_m3_s2' },
                { cmd: 'cp /etc/shadow /tmp',   hintKey: 'ht_m3_s3' },
                { cmd: 'zip -r data.zip /tmp',  hintKey: 'ht_m3_s4' },
                { cmd: 'history -c',            hintKey: 'ht_m3_s5' },
                { cmd: 'sudo reboot',           hintKey: 'ht_m3_s6' },
            ],
        },
        {
            titleKey: 'ht_m4_title',
            host:     'root@shadow-node',
            steps: [
                { cmd: 'sudo su',               hintKey: 'ht_m4_s1' },
                { cmd: 'service nginx stop',    hintKey: 'ht_m4_s2' },
                { cmd: 'pkill -9 firewalld',    hintKey: 'ht_m4_s3' },
                { cmd: 'echo "" > /etc/hosts',  hintKey: 'ht_m4_s4' },
                { cmd: 'crontab -r',            hintKey: 'ht_m4_s5' },
                { cmd: 'shutdown now',          hintKey: 'ht_m4_s6' },
            ],
        },
    ],
};

```

#### Harvest Minigame Config

```javascript
/* ============================================================
     HarvestConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - target: how many good crops must be collected to win
         - lives: how many mistakes are allowed
         - spawnRate: seconds between crop spawns
         - time: total time limit in seconds (0 = no limit)

     rottenChance:
         - probability that a spawned crop is rotten

     cropLifeMs / rottenLifeMs:
         - how long good/rotten crops stay on the field (ms)

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var HarvestConfig = {
        defaultDifficulty: 'medium',
        difficulty: {
                easy:   { target: 10, lives: 4, spawnRate: 2.0, time:  0 },
                medium: { target: 18, lives: 3, spawnRate: 1.4, time: 60 },
                hard:   { target: 28, lives: 2, spawnRate: 0.9, time: 50 },
        },
        rottenChance: 0.15,
        cropLifeMs:   3200,
        rottenLifeMs: 2400,
    cropRadius:   22,
    cols: 7,
    rows: 5,
    lowTimeThreshold: 8,
};

```

#### KeyCombo Minigame Config

```javascript
var KeycomboConfig = {
    defaultDifficulty: 'medium',

    keys: ['A', 'S', 'D', 'Q', 'G', 'R'],

    difficulty: {
        easy:   { length: 12, timeLimit: 7 },
        medium: { sequence: ['A','D','S','D','D','D','G','G','G','G','R','R','R','Q','Q','Q','A','A','S'], timeLimit: 5 },
        hard:   { length: 22, timeLimit: 5 },
    },
};

```

#### Lockring Minigame Config

```javascript
/* ============================================================
   Lock Ring — Config
   ============================================================ */
var LockRingConfig = {
    difficulty: {
        easy:   { rings: 3, pinsPerRing: 3, slots: 8,  timeLimit: 90 },
        medium: { rings: 4, pinsPerRing: 4, slots: 10, timeLimit: 65 },
        hard:   { rings: 5, pinsPerRing: 5, slots: 12, timeLimit: 45 },
    },
};

```

Maze Minigame Config

```javascript
/* ============================================================
     MazeConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - cols: number of maze columns (odd values work best)
         - rows: number of maze rows
         - cell: cell size in pixels
         - time: time limit in seconds to finish the maze

     colors:
         - visual colors for background, walls, start/exit areas and player

     exitEmoji:
         - emoji drawn at the maze exit

     winDelay:
         - delay in ms before showing the win screen after reaching the exit

     lowTimeThreshold:
         - when the timer starts pulsing as time runs low (seconds)
     ============================================================ */

var MazeConfig = {

        defaultDifficulty: 'medium',
    difficulty: {
        easy:   { cols: 11, rows: 11, cell: 36, time: 120 },
        medium: { cols: 15, rows: 15, cell: 30, time: 90  },
        hard:   { cols: 21, rows: 21, cell: 22, time: 60  },
    },
    colors: {
        background: '#0a0b14',
        cell:       'rgba(20, 30, 58, 0.6)',
        wall:       '#3a6ca8',
        wallWidth:  1.5,
        start:      'rgba(52, 152, 219, 0.18)',
        exit:       'rgba(46, 204, 113, 0.22)',
        player:     '#e74c3c',
        playerGlow: 'rgba(231, 76, 60, 0.45)',
    },

    exitEmoji: '🚪',
    winDelay: 150,
    lowTimeThreshold: 10,
};

```

#### Memory Minigame Config

```javascript
/* ============================================================
     MemoryConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - cols: number of grid columns
         - rows: number of grid rows (cols*rows must be even)
         - cardSize: card size in pixels
         - time: time limit in seconds to finish the game

     symbols:
         - pool of emoji used on cards; must contain at least as
             many unique symbols as there are pairs in the hardest mode

     flipBackDelay / matchDelay:
         - ms delay before mismatched cards flip back and before the
             win screen after matching the last pair

     lowTimeThreshold:
         - when the timer starts pulsing as time runs low (seconds)
     ============================================================ */

var MemoryConfig = {

        defaultDifficulty: 'medium',
    difficulty: {
        easy:   { cols: 4, rows: 3, cardSize: 82, time: 90  },
        medium: { cols: 4, rows: 4, cardSize: 82, time: 60  },
        hard:   { cols: 5, rows: 4, cardSize: 70, time: 40  },
    },
    symbols: ['🔑', '💎', '💰', '🔫', '📱', '💊', '🚗', '🎯', '💣', '👑'],
    flipBackDelay: 800,
    matchDelay:    300,
    lowTimeThreshold: 10,
};

```

#### Osu Minigame Config

```javascript
/* ============================================================
     OsuConfig

     difficulty (per level):
         - target: how many circles to hit to win
         - lives: how many misses are allowed
         - approachMs: time from spawn to ideal hit moment (ms)
         - hitWindowMs: ± time window in ms for a hit to count
         - bpm: spawn tempo in beats/circles per minute
         - time: total time limit in seconds (0 = no limit)

     beatRadius:
         - base radius of the hit circle in pixels

     approachScale:
         - how large the approach ring starts relative to beatRadius

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var OsuConfig = {
    defaultDifficulty: 'medium',
    difficulty: {
        easy:   { target:  8, lives: 5, approachMs: 1400, hitWindowMs: 420, bpm:  85, time:  0 },
        medium: { target: 12, lives: 3, approachMs: 1000, hitWindowMs: 300, bpm: 120, time: 90 },
        hard:   { target: 18, lives: 2, approachMs:  680, hitWindowMs: 200, bpm: 165, time: 70 },
    },
    beatRadius:    30,
    approachScale: 3.2,
    lowTimeThreshold: 8,
};

```

#### PizzaCutter Minigame Config

```javascript
/* ============================================================
     PizzaCutterConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - slices: how many slices the pizza should be cut into
         - tolerance: max distance from the center (px) for a cut to count
         - angleMargin: allowed angle difference between cuts (degrees)
         - time: time limit in seconds (0 = no limit)

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var PizzaCutterConfig = {
        defaultDifficulty: 'medium',
        difficulty: {
                easy:   { slices: 4, tolerance: 28, angleMargin: 22, time:  0 },
                medium: { slices: 6, tolerance: 18, angleMargin: 14, time: 30 },
                hard:   { slices: 8, tolerance: 10, angleMargin:  8, time: 25 },
        },
        lowTimeThreshold: 8,
};

```

#### Pong Minigame Config

```javascript
/* ============================================================
   Pong — Config
   ============================================================ */
var PongConfig = {
    difficulty: {
        easy:   { scoreToWin: 5,  ballSpeed: 4.5, aiSpeed: 3.2, ballSpeedUp: 0.10 },
        medium: { scoreToWin: 7,  ballSpeed: 6.0, aiSpeed: 5.0, ballSpeedUp: 0.15 },
        hard:   { scoreToWin: 10, ballSpeed: 7.5, aiSpeed: 7.0, ballSpeedUp: 0.22 },
    },
    paddleW:  12,
    paddleH:  80,
    ballSize: 10,
};

```

#### SignalTrace Minigame Config

```javascript
/* ============================================================
     SignalTraceConfig

     Goal:
         - click nodes to create a path from SOURCE to TARGET.

     Guard:
         - walks along the graph and follows the signal;
             if it reaches an active node, the player loses.

     difficulty (per level):
         - nodes: how many nodes are in the graph
         - guardCount: how many guards are active
         - guardSpeed: time between guard steps (ms)
         - timeLimit: total time limit in seconds (0 = no limit)
         - lives: how many mistakes are allowed
         - pulseSpeed: how long the pulse highlight is shown (ms)

     colors:
         - visual colors for nodes, edges, guard, and pulses

     nodeRadius / hitRadius:
         - radius of the node itself and the clickable area (px)
     ============================================================ */
'use strict';

var SignalTraceConfig = {
    defaultDifficulty: 'medium',

    difficulty: {
        easy: {
            nodes:          10,
            guardCount:     1,
            guardSpeed:     1800,
            timeLimit:      0,
            lives:          3,
            pulseSpeed:     900,
        },
        medium: {
            nodes:          14,
            guardCount:     2,
            guardSpeed:     1300,
            timeLimit:      60,
            lives:          2,
            pulseSpeed:     700,
        },
        hard: {
            nodes:          18,
            guardCount:     3,
            guardSpeed:     900,
            timeLimit:      45,
            lives:          1,
            pulseSpeed:     500,
        },
    },

    colors: {
        normal:    '#1a2a1a',
        normalBorder: '#2a4a2a',
        source:    '#0d3d1a',
        sourceBorder: '#00ff41',
        target:    '#1a0d3d',
        targetBorder: '#5ba3f5',
        active:    '#0a3000',
        activeBorder: '#44ff88',
        guard:     '#3d0d0d',
        guardBorder: '#ff4444',
        pulse:     '#00ff41',
        pulseFade: '#003310',
        edge:      '#1a2a1a',
        edgeActive:'#44ff88',
        edgeGuard: '#ff4444',
    },

    nodeRadius: 18,
    hitRadius:  24,
};

```

#### Snake Minigame Config

```javascript
/* ============================================================
     SnakeConfig

     difficulty (per level):
         - scoreToWin: score required to win
         - tickMs: ms between snake steps (lower = faster)
         - speedUp: whether speed increases every few points
         - lives: how many lives the player has

     cellSize / cols / rows:
         - grid cell size in pixels and board dimensions
     ============================================================ */
var SnakeConfig = {
        difficulty: {
        easy:   { scoreToWin: 10, tickMs: 175, speedUp: true, lives: 3 },
        medium: { scoreToWin: 15, tickMs: 130, speedUp: true, lives: 2 },
        hard:   { scoreToWin: 20, tickMs:  90, speedUp: true, lives: 1 },
    },
        cellSize: 20,
        cols: 28,
        rows: 18,
};

```

#### TimingBar Minigame Config

```javascript
/* ============================================================
     TimingBarConfig

     defaultDifficulty:
         - used when no difficulty is provided

     totalRounds:
         - how many successful hits are required to win

     difficulty (per level):
         - zoneWidth: width of the green zone (0.0–1.0, fraction of track width)
         - speed: starting needle speed (units per second; 1.0 = full track per second)
         - speedInc: speed increase for each subsequent round
         - roundTime: time in seconds to click in a single round

     zoneMargin:
         - how close to the edges the green zone is allowed to spawn

     hitDelay / nextRoundDelay / failDelay / timeoutDelay:
         - animation pauses (ms) after hit, before next round, on miss,
             and when the round times out

     maxDeltaTime:
         - caps the animation step when the window loses focus,
             preventing huge jumps of the needle

     lowTimeThreshold:
         - when the round timer starts pulsing red (seconds)
     ============================================================ */

var TimingBarConfig = {

        defaultDifficulty: 'medium',

        totalRounds: 3,
    difficulty: {
        easy:   { zoneWidth: 0.28, speed: 0.20, speedInc: 0.08, roundTime: 5 },
        medium: { zoneWidth: 0.18, speed: 0.28, speedInc: 0.12, roundTime: 4 },
        hard:   { zoneWidth: 0.11, speed: 0.40, speedInc: 0.18, roundTime: 3 },
    },
    zoneMargin: 0.02,
    hitDelay:       420,
    nextRoundDelay: 620,
    failDelay:      520,
    timeoutDelay:   420,
    maxDeltaTime: 0.05,
    lowTimeThreshold: 1,
};

```

#### Wires Minigame Config

```javascript
/* ============================================================
     WiresConfig

     defaultDifficulty:
         - used when no difficulty is provided

     difficulty (per level):
         - pairs: how many wire pairs must be connected
         - time: time limit in seconds (0 = no limit)

     colors:
         - available wire colors (CSS value + label);
             only the first `pairs` entries are used in a round

     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */

var WiresConfig = {

        defaultDifficulty: 'medium',

        difficulty: {
        easy:   { pairs: 3, time: 0  },
        medium: { pairs: 4, time: 30 },
        hard:   { pairs: 6, time: 25 },
    },
    colors: [
        { id: 'red',    hex: '#e74c3c', label: 'CZERWONY' },
        { id: 'green',  hex: '#2ecc71', label: 'ZIELONY'  },
        { id: 'blue',   hex: '#3498db', label: 'NIEBIESKI'},
        { id: 'yellow', hex: '#f1c40f', label: 'ZOLTY'    },
        { id: 'orange', hex: '#e67e22', label: 'POMARANCZOWY' },
        { id: 'purple', hex: '#9b59b6', label: 'FIOLETOWY'},
    ],

    lowTimeThreshold: 8,
};

```

#### Wordle Minigame Config

```javascript
/* ============================================================
     WordleConfig

     difficulty:
         - attempts: how many guesses the player gets
         - noHints: when true, the keyboard does not show colors
         - time: time limit in seconds (0 = no limit)
     wordLen:
         - length of the hidden word (letters)
     lowTimeThreshold:
         - when to start low-time warning (seconds)
     ============================================================ */
var WordleConfig = {
    defaultDifficulty: 'medium',
    difficulty: {
        easy:   { attempts: 5, noHints: false, time:   0 },
        medium: { attempts: 5, noHints: false, time:   0 },
        hard:   { attempts: 5, noHints: true,  time: 120 },
    },
    wordLen: 5,
    lowTimeThreshold: 8,
    words: [
        'CRANE','SLATE','BLAST','BRAVE','BREAD','BRICK','BRUSH',
        'CANDY','CATCH','CHAIN','DANCE','DELTA','EARTH','EIGHT',
        'EMPTY','ENEMY','FANCY','FEAST','FENCE','FIGHT','FLAME',
        'GLOBE','GRACE','GRADE','HEART','HEAVY','HONEY','IMAGE',
        'JUDGE','JUICE','JUMBO','KNIFE','KNOCK','LABEL','LEMON',
        'LIGHT','LINEN','MAGIC','MAJOR','MARCH','MATCH','MEDAL',
        'MONEY','NORTH','NOVEL','OCEAN','OLIVE','OPERA','PAINT',
        'PAPER','PAUSE','PEACE','PEARL','PHASE','PIXEL','QUEEN',
        'QUEST','QUICK','QUIET','RADAR','RADIO','RANGE','RAPID',
        'REACH','SAINT','SCALE','SCENE','SCOPE','SCORE','SEVEN',
        'SHADE','SHAKE','TABLE','TASTE','TEACH','THIRD','THROW',
        'TIGER','UNION','UNTIL','VALUE','VERSE','VITAL','WATCH',
        'WATER','WHEEL','WHITE','WHOLE','YACHT','YIELD','YOUNG',
        'ZEBRA','STORM','FROST','CRISP','PRISM','BLOCK','BLAZE',
        'CRUST','DRIFT','GLARE','GROAN','MAYOR','MERIT','MOOSE',
        'MOUNT','MOUSE','PLANT','PLUCK','PORCH','PRIME','RAVEN',
        'RIVET','ROAST','ROUND','ROYAL','SAUCE','SAUNA','SCOOP',
        'SCOUT','SMART','SMOKE','SNACK','SNAKE','SOLAR','SOUND',
        'SOUTH','SPACE','SPARE','SPARK','SPAWN','SPEAK','SPELL',
        'SPEND','SPICE','SPINE','SPOON','SPORT','SPRAY','STACK',
        'STAND','STARK','START','STEAM','STEEL','STEEP','STEER',
        'STERN','STICK','STILL','STOCK','STONE','STORE','STORY',
        'STOVE','STRAP','STRAW','STUCK','STUDY','STUFF','STUNT',
        'STYLE','SUGAR','SUITE','SUNNY','SUPER','SWAMP','SWEAR',
        'SWEAT','SWEEP','SWEET','SWIFT','SWINE','SWING','SWORD',
    ],
};

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://octavista-development.gitbook.io/octavista-development/scripts/minigames/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
