> For the complete documentation index, see [llms.txt](https://rayn-scripts.gitbook.io/rayn-scripts-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rayn-scripts.gitbook.io/rayn-scripts-docs/rayn_dyno/configuration.md).

# Configuration

Every option in config.lua.

All options live in `config.lua`.

## General

| Option                 | Default  | Description                                                              |
| ---------------------- | -------- | ------------------------------------------------------------------------ |
| `Config.Locale`        | `'en'`   | Language – `'en'` or `'pl'`. See [Translations](#translations).          |
| `Config.Debug`         | `false`  | Enables debug commands (`/dynoprop`, `/dynoroom`) and extra F8 messages. |
| `Config.CoordsCommand` | `true`   | Enables `/dynocoords`.                                                   |
| `Config.Framework`     | `'auto'` | `'auto'`, `'esx'`, `'qbx'` or `'qb'`.                                    |

## Dyno creator

| Option                   | Default                                                              | Description                                                                                |
| ------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `Config.EditorCommand`   | `'dynocreator'`                                                      | Command that opens the creator.                                                            |
| `Config.AcePermission`   | `'rayn_dyno.admin'`                                                  | ACE that allows the creator.                                                               |
| `Config.AllowCommandAce` | `true`                                                               | Anyone with the `command` ACE can also use the creator.                                    |
| `Config.AdminGroups`     | `{ 'admin', 'superadmin', 'god' }`                                   | ESX groups / QB permissions allowed to use the creator.                                    |
| `Config.Editor`          | `CamSpeed = 18.0, CamFastMult = 4.0, Snap = 0.05, RotateSnap = 15.0` | Camera speed, Shift multiplier, move snap (m) and rotate snap (°).                         |
| `Config.DynoModel`       | `'rayn_dyno'`                                                        | Dyno model with rollers.                                                                   |
| `Config.Monitors`        | RAYN TV 1, RAYN TV 2                                                 | TVs available in the creator – `label`, `model`, `renderTarget` (the model's screen name). |

## Jobs

```lua
Config.Jobs = {
    ['mechanic'] = 0,   -- [job name] = minimum grade
    ['bennys'] = 0,
}
```

| Option                    | Default | Description                                    |
| ------------------------- | ------- | ---------------------------------------------- |
| `Config.RequireOnDuty`    | `false` | QB/QBX only – require being on duty.           |
| `Config.RequireDriverJob` | `false` | The driver must also have a job from the list. |

## Interaction

| Option                | Default | Description                                                                                                                               |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `Config.UseTarget`    | `true`  | ox\_target on the control point. `false` = **\[E]** key at the point. A driver with the job in a car on the dyno can always use **\[E]**. |
| `Config.TargetRadius` | `1.0`   | Control point target radius.                                                                                                              |
| `Config.ShowMarker`   | `false` | Highlighted rectangle on the floor where the car goes.                                                                                    |

## Measurement

| Option                      | Default                                | Description                                                                              |
| --------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- |
| `Config.AutoThrottle`       | `true`                                 | The car revs by itself. `false` = the driver holds **\[W]**.                             |
| `Config.Countdown`          | `3000`                                 | Countdown before the run (ms).                                                           |
| `Config.SweepTime`          | `12000`                                | Run length from idle to the rev limiter (ms).                                            |
| `Config.WindDown`           | `2500`                                 | Wind-down after the run (ms).                                                            |
| `Config.IdleTimeout`        | `30000`                                | Cancel when nobody gives throttle (ms, only with `AutoThrottle = false`).                |
| `Config.Cooldown`           | `5`                                    | Pause between tests on one dyno (s).                                                     |
| `Config.WheelMode`          | `'lift'`                               | `'lift'` = wheels spin on the rollers for everyone (recommended), `'burnout'` = burnout. |
| `Config.ForceRpm`           | `true`                                 | Engine RPM rises together with the chart.                                                |
| `Config.WheelSpinMax`       | `45.0`                                 | Wheel speed at the rev limiter.                                                          |
| `Config.WheelSpinDirection` | `-1.0`                                 | Change to `1.0` if the wheels spin backwards.                                            |
| `Config.LiftHeight`         | `0.0`                                  | Extra lift of the car above the rollers (m).                                             |
| `Config.SyncInterval`       | `100`                                  | How often run progress is broadcast (ms).                                                |
| `Config.SyncDistance`       | `80.0`                                 | Players within this distance see the test live.                                          |
| `Config.DriverHud`          | `false`                                | Mini chart in the corner of the driver's screen.                                         |
| `Config.DriverHudPos`       | `{ x = 0.82, y = 0.22, width = 0.30 }` | Position and width of the driver chart.                                                  |

## Results

| Option                  | Default                      | Description                                                    |
| ----------------------- | ---------------------------- | -------------------------------------------------------------- |
| `Config.PowerScale`     | `1.0`                        | Multiplier for all results (e.g. `1.2` = +20%).                |
| `Config.SpeedFactor`    | `1.2`                        | Weight of top speed (`fInitialDriveMaxFlatVel`) in the result. |
| `Config.EngineModMult`  | `-1` → `1.00` … `4` → `1.25` | Multiplier per LS Customs engine level (mod 11).               |
| `Config.TurboMult`      | `1.12`                       | LS Customs turbo multiplier (mod 18).                          |
| `Config.DefaultRedline` | `7000`                       | Rev limiter on the chart.                                      |
| `Config.RedlineByClass` | see below                    | Rev limiter per vehicle class (`GetVehicleClass`).             |

```lua
Config.RedlineByClass = {
    [4] = 6500,   -- muscle
    [6] = 7800,   -- sports
    [7] = 8500,   -- super
    [8] = 11000,  -- motorcycles
    [10] = 3500,  -- industrial
    [11] = 4500,  -- utility
    [12] = 5500,  -- vans
    [20] = 3000,  -- commercial
}
```

## Advanced

| Option                 | Default | Description                                                                                      |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `Config.PinToInterior` | `false` | Pin the dyno prop and TV to an MLO room. Leave `false` unless the prop is visible through walls. |
| `Config.InteriorRoom`  | `nil`   | Room to pin to.                                                                                  |

## Dynos – first start

`Config.Dynos` is used **only once** – when `data/dynos.json` is still empty – and is moved into the creator. After that, make all changes in the creator.

```lua
Config.Dynos = {
    {
        id = 'lsc_city',
        label = 'Dyno',
        platform = vector4(182.7862, -1092.7949, 28.9962, 265.7325),
        platformRadius = 3.0,
        control = vector3(181.8935, -1095.6581, 28.9962),
        prop = { model = `rayn_dyno`, zOffset = 0.0, heading = 0.0 },
        offsets = vector3(0.0, 0.0, 0.0),
        screen = {
            model = `rayn_dyno_tv1`,
            renderTarget = 'rdtv1',
            spawn = true,
            coords = vector4(187.0456, -1093.2719, 29.9962, 272.0464),
            drawDistance = 30.0,
        },
    },
}
```

## Translations

English (`en`) and Polish (`pl`) are included in `locales/`. To add a language:

1. Copy `locales/en.lua` and rename it, e.g. `de.lua`.
2. Change `Locales['en']` to `Locales['de']`.
3. Translate the texts.
4. Set `Config.Locale = 'de'`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://rayn-scripts.gitbook.io/rayn-scripts-docs/rayn_dyno/configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
