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

# FAQ

<details>

<summary>Everyone can verify and delete tracks / force-end races</summary>

The admin check ships open. Go to <kbd>5s\_racing/server/editable/functions.lua</kbd> and replace `isAdmin` with a real check for your server:

```lua
function isAdmin(source)
    return IsPlayerAceAllowed(source, 'group.admin')
end
```

Until you do this, `isAdmin` returns `true` for everyone.

</details>

<details>

<summary>I don't use ESX / I want money taken from a different account</summary>

All payment and balance logic lives in <kbd>5s\_racing/server/editable/functions.lua</kbd>. Replace the bodies of `getRacingBalance`, `payRacingReward` and `chargeRacingPayment` with your framework's calls. The `ConfigShared.paymentMethod` value (`money` / `bank` / `both`) is passed through, so you can keep that behaviour or ignore it.

</details>

<details>

<summary>How do players open the tablet?</summary>

With the `/racingtablet` command by default. To open it from a keybind, a usable item, a ped or a target zone, use the exports instead:

```lua
-- client (e.g. a usable item)
exports['5s_racing']:toggleRacingTablet()

-- server (e.g. an interaction another resource handles)
exports['5s_racing']:openTabletForPlayer(source)
```

See [Exports](/docs/assets/5s_racing/exports.md) for the full list.

</details>

<details>

<summary>How do I restrict who can create tracks or host races?</summary>

Edit <kbd>5s\_racing/server/editable/permissions.lua</kbd>. `canPlayerCreateTrack(source)` and `canPlayerCreateRace(source)` are the authoritative gate (the tablet uses them too). Return `false` to block, optionally with a locale key as a second return value for a custom message. See [Editable](/docs/assets/5s_racing/editable.md).

</details>

<details>

<summary>How do I add my own props to the track creator?</summary>

In <kbd>config/shared/config\_shared.lua</kbd>, add them to `editorObjects.custom`:

```lua
editorObjects = {
    custom = {
        { model = 'prop_my_ramp', image = 'https://your.cdn/ramp.png' },
    },
    removed = { 'prop_you_dont_want' }, -- hide props
}
```

The prop joins the side-menu category whose keyword matches its name; otherwise it lands in "Other".

</details>

<details>

<summary>How do I disable a race type or lock racing to verified tracks?</summary>

In <kbd>config/shared/config\_shared.lua</kbd>:

* `disabledRaceTypes = { "Drift" }` removes a type from the picker (selectable types are Sprint, Drift, Elimination).
* `verifiedTracksOnly = true` makes only admin-verified tracks raceable - players can still build and share their own.

</details>

<details>

<summary>How do the prize pool and payouts work?</summary>

Entry fees are pooled into one pot and shared out by finishing position via `ConfigShared.rewards`. `distribution = { 0.6, 0.3, 0.1 }` pays the top three (60% / 30% / 10%); `{ 1.0 }` is winner-takes-all. `houseCut` skims a share for the server, and `minRacers` + `refundBelowMinimum` decide what happens when too few drivers join. Set `rewards.enabled = false` to take fees without paying anything out. See [Config](/docs/assets/5s_racing/config.md#payments--prize-pool).

</details>

<details>

<summary>Do I need to import any SQL?</summary>

No. The database structure is created and updated automatically on start (see [Database](/docs/installation/database.md)). The bundled `optional_ready_tracks.sql` is **optional** - import it only if you want a set of ready-made tracks.

</details>

<details>

<summary>How do I add another language?</summary>

Translations live in <kbd>5s\_racing/locales/</kbd> (`en.json`, `pl.json`). Copy `en.json`, translate the values, and select your language as described in [Languages](/docs/installation/languages.md).

</details>

<details>

<summary>Checkpoints are hard to drive through on decorated gates</summary>

Decorated, marker-less gates (tyre walls, flags) put their props near the edge of the checkpoint radius. Raise `ConfigShared.checkpointHitRadiusMultiplier` (default `1.5`) so a checkpoint counts a little before the exact radius, making the gate forgiving to drive through.

</details>

<details>

<summary>Decoration props float above or sink into the ground</summary>

Leave `ConfigShared.checkpointDecorationSnapToGround = true`. It rests race-spawned decorations on the real ground (imported/seeded tracks sometimes store a slightly-off checkpoint Z). The creator preview is left alone so you can still author exact positions there.

</details>
