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

# Configuration

Every option in the Hoverboard config.lua, with its default.

All options are in `config.lua`. Restart the resource after a change: `restart hoverboard`. To try flight values without restarting, use `/hoverboardtune`, see [Commands and permissions](/organized-chaos-docs/hoverboards/commands-and-permissions.md).

## General

| Option                   | Default        | Meaning                                                                                                                     |
| ------------------------ | -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `Config.Models`          | all ten boards | Spawn names of the boards the script looks after. The first one is the one `/hoverboard` spawns when no board is named      |
| `Config.Notify`          | `'gta'`        | Where messages go: `'gta'` the feed above the minimap, `'esx'`, `'qb'`, `'ox'` (ox\_lib), or a `function(text)` of your own |
| `Config.Radio`           | `true`         | `false` switches the radio off on the boards                                                                                |
| `Config.Interval.Riding` | `100`          | Milliseconds between two looks at what the rider is doing. On foot nothing looks at all                                     |

## Texts

`Config.Locale` holds every text players see. Translate them here.

| Option                                              | Default                                            | Meaning                                                                    |
| --------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------------------------- |
| `VehicleName`                                       | `'Hoverboard'`                                     | Name of a board that has none of its own in `ModelNames`                   |
| `ModelNames`                                        | `'Hoverboard Manta'` and so on                     | The name of each board in game, by spawn name                              |
| `MakeName`                                          | `'Organized Chaos'`                                | Manufacturer name                                                          |
| `SpawnUnknown`                                      | `'Hoverboard: no such board: ~y~%s~s~'`            | `/hoverboard` with a name that is no board                                 |
| `KeyBoost`, `KeyMount`, `KeyDash`                   | `'Hoverboard: boost'` and so on                    | Names of the key bindings in the FiveM settings                            |
| `TuneNoBoard`, `TuneSet`, `TuneUnknown`, `TuneList` |                                                    | The messages of `/hoverboardtune`                                          |
| `PutDownNotNow`                                     | `'You cannot put your hoverboard down right now.'` | The item used in a vehicle, falling, swimming and so on                    |
| `PickUpFull`, `PickUpNotYours`                      | `'You cannot carry the hoverboard.'` and so on     | Picking up into a full inventory, or another player's board with `OwnOnly` |

Keep every `%s` when you translate. `~y~` and `~s~` are GTA colour codes for yellow and back to white; for other notification systems they are removed. The label of the pick-up option is `Config.Item.PickUp.Label`.

## Rider

`Config.Stance`

| Option                 | Default              | Meaning                                                                                            |
| ---------------------- | -------------------- | -------------------------------------------------------------------------------------------------- |
| `Enabled`              | `true`               | `false`: the rider sits, as GTA seats a driver                                                     |
| `Dict`                 | `'hoverboard@rider'` | The board's own animation. Leave it as it is                                                       |
| `Poses`                | see below            | Which pose goes with what                                                                          |
| `PoseSpeed`            | `4.5`                | How fast the rider moves into a pose and out of it. `4.5` is in about a fifth of a second          |
| `DownSpeed`, `UpSpeed` | `5.0`                | Native flight only: how fast the board has to sink or climb, in m/s, for the rider to tuck or rise |
| `Breathe`              | `true`               | Standing still, the rider breathes                                                                 |
| `BreathTime`           | `3200`               | Milliseconds for one breath                                                                        |
| `Look`                 | `true`               | The rider turns their head to where the board is going                                             |
| `Sync`                 | `true`               | Other players see the poses. `false`: they see the rider standing in the stance                    |

`Poses` names a pose for `Left`, `Right`, `Down`, `Up`, `Boost` and `Dash`: `'lean_l'`, `'lean_r'`, `'tuck'`, `'rise'`, or `false` for none. By default steering leans, going down and boosting tuck, going up rises, and the dash has no pose of its own. Left and Right only apply in arcade flight.

## Stepping on and off

`Config.Mount`

| Option             | Default             | Meaning                                                                                     |
| ------------------ | ------------------- | ------------------------------------------------------------------------------------------- |
| `Instant`          | `true`              | `false`: GTA's own animation of getting into and out of a car                               |
| `DefaultKey`       | `'F'`               | Default key of the step-on binding. Keep it the same as GTA's enter-vehicle key             |
| `DefaultPadButton` | `'RUP_INDEX'`       | Controller button (Y / triangle), or `false` for none                                       |
| `Command`          | `'hoverboardmount'` | Internal command behind the key binding. Only change it if it clashes with another resource |
| `Distance`         | `3.0`               | Metres. From further away the player walks up to the board first                            |
| `KeepSpeed`        | `true`              | Stepping off a moving board, the rider keeps its speed                                      |
| `StepAside`        | `0.7`               | Metres to the left of the board where the rider lands                                       |

## Flight

`Config.Flight`

| Option     | Default    | Meaning                                                                                                                                                   |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Mode`     | `'arcade'` | `'arcade'`: the script flies the board, and everything below applies. `'native'`: GTA's own hover flight, tuned in `data/handling.meta` and `Config.Feel` |
| `HalfRate` | `false`    | Arcade flight only. `true` works the flight out every second frame: lighter, but the board answers the keys up to a frame later                           |

### Speed

| Option         | Default | Meaning                                         |
| -------------- | ------- | ----------------------------------------------- |
| `MaxSpeed`     | `42.0`  | Top speed in metres per second, about 150 km/h  |
| `Acceleration` | `16.0`  | Acceleration with thrust                        |
| `Brake`        | `24.0`  | Deceleration when braking                       |
| `Drag`         | `3.0`   | Speed lost without thrust. Lower glides further |
| `ReverseSpeed` | `5.0`   | Top speed backwards                             |

### Steering

| Option            | Default | Meaning                                                                                |
| ----------------- | ------- | -------------------------------------------------------------------------------------- |
| `TurnRate`        | `115.0` | Degrees per second at low speed                                                        |
| `TurnRateAtSpeed` | `62.0`  | Degrees per second at top speed                                                        |
| `SteerResponse`   | `7.0`   | How fast a turn sets in and ends. Higher is more direct                                |
| `Grip`            | `8.0`   | How soon the board goes where it points. Lower slides through curves, `30` is on rails |
| `BankAngle`       | `38.0`  | Degrees the board leans into a curve                                                   |
| `BankResponse`    | `5.0`   | How fast it leans                                                                      |

### Up and down

| Option             | Default | Meaning                                                               |
| ------------------ | ------- | --------------------------------------------------------------------- |
| `ClimbRate`        | `11.0`  | Metres per second upwards, standing still                             |
| `ClimbRateAtSpeed` | `20.0`  | Metres per second upwards at top speed                                |
| `DiveRate`         | `14.0`  | Metres per second downwards, standing still                           |
| `DiveRateAtSpeed`  | `24.0`  | Metres per second downwards at top speed                              |
| `VerticalResponse` | `6.0`   | How fast it answers the two keys and stops again                      |
| `PitchFollow`      | `1.0`   | How far the nose follows the climb or dive. `0` keeps the board level |
| `MaxPitch`         | `50.0`  | Degrees the nose tips up or down at most                              |

### Near the ground

| Option           | Default | Meaning                                                                                                      |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| `HoverHeight`    | `0.6`   | Metres above the ground the board floats at                                                                  |
| `GroundEffect`   | `3.0`   | Below this height it settles to `HoverHeight` and follows the ground. Above, it holds whatever height it has |
| `HoverStiffness` | `4.0`   | How firmly it holds `HoverHeight`                                                                            |
| `LookAhead`      | `0.35`  | Seconds it looks ahead for rising ground                                                                     |

### Boost and dash

| Option              | Default | Meaning                                                                    |
| ------------------- | ------- | -------------------------------------------------------------------------- |
| `BoostSpeed`        | `62.0`  | Top speed during a boost, about 225 km/h                                   |
| `BoostAcceleration` | `45.0`  | Acceleration during a boost                                                |
| `BoostTime`         | `2200`  | Milliseconds a boost lasts                                                 |
| `BoostFade`         | `8.0`   | How fast the board slows back down to `MaxSpeed` after a boost or a dash   |
| `DashSpeed`         | `52.0`  | Top speed during a dash, about 187 km/h                                    |
| `DashAcceleration`  | `30.0`  | Acceleration during a dash                                                 |
| `DashTime`          | `1200`  | Milliseconds a dash lasts. The sharper handling fades over its last 300 ms |
| `DashKick`          | `8.0`   | Metres per second added at once as it fires                                |
| `DashPop`           | `7.0`   | Metres per second up or down at once, with Space or Left Ctrl held         |
| `DashSwerve`        | `15.0`  | Degrees it snaps into a curve, with A or D held                            |
| `DashTurn`          | `1.7`   | Turns this much faster during a dash                                       |
| `DashClimb`         | `1.6`   | Climbs and dives this much steeper during a dash                           |
| `DashResponse`      | `2.0`   | Answers this much more directly during a dash, and slides less             |

### Controls

`Config.Flight.Controls` takes GTA control ids, not keys. They are listed in the [FiveM controls reference](https://docs.fivem.net/docs/game-references/controls/).

| Option       | Default | Key       |
| ------------ | ------- | --------- |
| `Accelerate` | `71`    | W         |
| `Brake`      | `72`    | S         |
| `Steer`      | `59`    | A and D   |
| `Up`         | `76`    | Space     |
| `Down`       | `62`    | Left Ctrl |

## Boost

`Config.Boost`

| Option             | Default              | Meaning                                                                                                                           |
| ------------------ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `Enabled`          | `true`               | `false` switches the boost off                                                                                                    |
| `DefaultKey`       | `'E'`                | Default key of the boost binding                                                                                                  |
| `DefaultPadButton` | `false`              | A FiveM pad button name, or `false` for none                                                                                      |
| `Command`          | `'hoverboardboost'`  | Internal command behind the key binding                                                                                           |
| `Cooldown`         | `6000`               | Milliseconds between two boosts                                                                                                   |
| `ScreenEffect`     | `'RaceTurbo'`        | The rush across the screen, or `false` for none                                                                                   |
| `Shake`            | `0.15`               | How hard the camera shakes. `0` for not at all                                                                                    |
| `ShakeTime`        | `1800`               | Milliseconds the camera shakes                                                                                                    |
| `ShakeType`        | `'SKY_DIVING_SHAKE'` | Which of GTA's camera shakes                                                                                                      |
| `Effects`          | `{}`                 | Particle effects for the boost, written like those of `Config.Effects`. `config.lua` has flames from both thrusters as an example |
| `EffectTime`       | `2200`               | Milliseconds those effects run                                                                                                    |

In native flight, how strong the boost is is set by `fRocketBoostCapacity` and `fBoostMaxSpeed` in `data/handling.meta`.

## Dash

`Config.Dash`, arcade flight only.

| Option             | Default                                     | Meaning                                         |
| ------------------ | ------------------------------------------- | ----------------------------------------------- |
| `Enabled`          | `true`                                      | `false` switches the dash off                   |
| `DefaultKey`       | `'LSHIFT'`                                  | Default key of the dash binding                 |
| `DefaultPadButton` | `false`                                     | A FiveM pad button name, or `false` for none    |
| `Command`          | `'hoverboarddash'`                          | Internal command behind the key binding         |
| `Cooldown`         | `2500`                                      | Milliseconds between two dashes                 |
| `ScreenEffect`     | `'RaceTurbo'`                               | The rush across the screen, or `false`          |
| `ScreenTime`       | `700`                                       | Milliseconds it shows                           |
| `Shake`            | `0.25`                                      | How hard the camera jolts. `0` for not at all   |
| `ShakeType`        | `'SMALL_EXPLOSION_SHAKE'`                   | Which of GTA's camera shakes                    |
| `Sound`            | `{ 'Whoosh_1s_L_to_R', 'MP_LOBBY_SOUNDS' }` | A GTA sound, its name and sound set, or `false` |

## Native flight

`Config.Feel` sets values of the `CSpecialFlightHandlingData` block of `data/handling.meta` on a board the moment someone steps on it, without editing the file:

```lua
Config.Feel = { fMaxThrust = 34.0, vecAngularDamping = { 3.0, 5.0, 5.0 } }
```

Empty, the board flies exactly as the meta file says. The values worth knowing:

| Value                                        | What it changes                                                       |
| -------------------------------------------- | --------------------------------------------------------------------- |
| `fMaxThrust`                                 | How hard it accelerates                                               |
| `vecLinearDamping` (y)                       | Drag along its path: higher is a lower top speed                      |
| `vecLinearDamping` (x, z)                    | How quickly sideways and vertical drift dies: higher is more on rails |
| `fYawTorqueScale`                            | How fast it turns                                                     |
| `fMaxSteeringRollTorque`, `fRollTorqueScale` | How far it banks into a curve                                         |
| `fPitchTorqueScale`, `fMaxPitchTorque`       | How fast the nose comes up and down                                   |
| `vecAngularDamping`                          | How quickly a turn, pitch or roll settles                             |
| `fHoverVelocityScale`                        | How firmly it holds its height above the ground                       |

## Underglow

`Config.Underglow`. The light on the ground, switched on when someone steps on.

| Option    | Default            | Meaning                                                                                                                                                                                 |
| --------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Enabled` | `true`             | `false` switches the underglow off                                                                                                                                                      |
| `Color`   | `false`            | `false`: the colour of the board's lights. Or a fixed `{ r, g, b }` for every board                                                                                                     |
| `Default` | `{ 30, 170, 255 }` | Used for a light colour that is not in `Colours`                                                                                                                                        |
| `Colours` | 8 colours          | The light each GTA colour number gives, as `{ r, g, b }`. Add the colours of colour sets of your own, see [Boards and colours](/organized-chaos-docs/hoverboards/boards-and-colours.md) |

## Effects

`Config.Effects`. Particle effects that run while someone rides a board, seen by everyone nearby. By default a ribbon of light trails behind each thruster while the board moves.

| Field             | Meaning                                                                                                                                                   |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `asset`, `name`   | The particle effect                                                                                                                                       |
| `bone`            | Bone of the board it is attached to: `'chassis'` (the middle, the default), `'neon_f'` or `'neon_b'`                                                      |
| `offset`, `rot`   | Position (x right, y forward, z up) and rotation in degrees from that bone. The thrusters are at `{ -0.078, -0.80, -0.03 }` and `{ 0.078, -0.80, -0.03 }` |
| `scale`           | Size                                                                                                                                                      |
| `color`           | `'glow'` for the colour of the board's lights, or `{ r, g, b }` from 0 to 1. Not every effect can be tinted                                               |
| `alpha`           | 0 to 1                                                                                                                                                    |
| `minSpeed`        | The effect only runs while the board moves at least this fast, in m/s                                                                                     |
| `refresh`, `life` | For effects that end by themselves, like the ribbon: started once more every `refresh` ms while the board moves, each left to run for `life` ms           |

`Config.Effects.Enabled = false` switches them off.

## Item

`Config.Item`. The boards as inventory items, see [Items](/organized-chaos-docs/hoverboards/items.md).

| Option          | Default        | Meaning                                                                                                                                                                  |
| --------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Enabled`       | `true`         | `false`: no items                                                                                                                                                        |
| `Framework`     | `'auto'`       | `'auto'` (Qbox, QBCore, ESX, else ox\_inventory), `'esx'`, `'qb'`, `'qbx'`, `'ox'`, or `false` for an inventory of your own that calls `exports.hoverboard:putDownBoard` |
| `Items`         | all ten boards | Item name = the board it takes out                                                                                                                                       |
| `Remove`        | `true`         | Setting the board down takes the item; picking it up gives it back. `false`: the item stays, and picking up only puts the board away                                     |
| `OnePerPlayer`  | `true`         | Only with `Remove = false`: setting down another board puts away the last one, unless someone stands on it                                                               |
| `RemoveOnLeave` | `true`         | Only with `Remove = false`: a player's board goes when they leave, unless someone stands on it                                                                           |

`Config.Item.PutDown`

| Option      | Default | Meaning                                                      |
| ----------- | ------- | ------------------------------------------------------------ |
| `Animation` | `true`  | The player bends down. `false`: the board is there at once   |
| `At`        | `0.45`  | How far into that animation the board is let go, from 0 to 1 |
| `Distance`  | `1.2`   | Metres in front of the player                                |

`Config.Item.PickUp`

| Option      | Default                | Meaning                                                                                                               |
| ----------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `Enabled`   | `true`                 | `false`: boards cannot be picked up                                                                                   |
| `Target`    | `'ox_target'`          | `false` leaves the option to a target script of your own, see [Exports](/organized-chaos-docs/hoverboards/exports.md) |
| `Label`     | `'Pick up Hoverboard'` | The option's text                                                                                                     |
| `Icon`      | `'fa-solid fa-hand'`   | The option's icon                                                                                                     |
| `Distance`  | `2.0`                  | Metres from the board the option shows                                                                                |
| `OwnOnly`   | `false`                | `true`: only the player who set a board down can pick it up                                                           |
| `Animation` | `true`                 | The player bends down for it                                                                                          |
| `GrabAt`    | `0.45`                 | How far into that animation the hand reaches the board, from 0 to 1                                                   |
