> For the complete documentation index, see [llms.txt](https://docs.cuxial.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cuxial.com/scripts/jobs/cuxial-gardener/troubleshooting.md).

# Troubleshooting

Common Cuxial Gardener problems, with their cause and fix.

The most frequent problems after installing Cuxial Gardener, with the cause and the fix for each one.

<details>

<summary>The resource does not start</summary>

**Cause.** A dependency is missing or starts later than the job. Cuxial Gardener needs OneSync, `ox_lib`, `oxmysql`, `cuxial_bridge`, `cuxial_jobs`, `sleepless_interact` and `cuxial_gardener_assets`.

**Fix.** Enable OneSync and start the dependencies first:

{% code title="server.cfg" %}

```cfg
ensure ox_lib
ensure oxmysql
ensure cuxial_bridge
ensure sleepless_interact
ensure cuxial_jobs
ensure cuxial_gardener_assets
ensure cuxial_gardener
```

{% endcode %}

</details>

<details>

<summary>The console shows an error reading a module of cuxial_jobs</summary>

**Cause.** `cuxial_jobs` is not started, was renamed, or is an incomplete copy. The job loads its shared code from that folder.

**Fix.** Copy `cuxial_jobs` again from the package, keep the folder name, and start it before `cuxial_gardener`.

</details>

<details>

<summary>A red line in the console says the job asks for another version of the library</summary>

**Cause.** The `cuxial_jobs` folder on the server is older or newer than the one this job was built for. This happens when several Cuxial jobs are installed and one of them overwrote the library.

**Fix.** Keep the most recent `cuxial_jobs` of all your packages and update the jobs that ask for an older one.

</details>

<details>

<summary>The NPC or its blip does not appear</summary>

**Cause.** The NPC only exists near its position, and `npc.coords` may point to a place that does not fit your map. The blip is hidden with `npc.blip.enabled = false`.

**Fix.** Check `npc.coords` and `npc.blip` in `shared/config.lua`. If the console warns that the NPC model could not be loaded, set a valid ped in `npc.model`.

</details>

<details>

<summary>The NPC is there but there is no option to interact</summary>

**Cause.** `sleepless_interact` is not running, or it started after the job.

**Fix.** Start `sleepless_interact` before `cuxial_gardener` and restart the job.

</details>

<details>

<summary>"You can't do this job"</summary>

**Cause.** The `job` option of the config lists framework jobs and the player, or one crew member, has none of them.

**Fix.** Give the player one of those jobs, add theirs to the list, or set `job = 'all'`.

</details>

<details>

<summary>"Your gardener profile is not ready yet"</summary>

**Cause.** The profile could not be loaded from the database. Either `oxmysql` has no connection, or the tables could not be created on start.

**Fix.** Check the `oxmysql` connection and its errors in the console, then restart `cuxial_gardener`. The tables `cuxial_jobs_players`, `cuxial_jobs_runs`, `cuxial_jobs_run_members` and `cuxial_jobs_audit` must exist after the start.

</details>

<details>

<summary>"There are vehicles at the truck spawn"</summary>

**Cause.** There is a vehicle within `run.spawnFreeRadius` metres of every spawn point of the region.

**Fix.** Clear the area. If it happens often, add more spawn points to `trucks` and `mowers` in `data/regions.lua`, or move them to a quieter place.

</details>

<details>

<summary>"The vehicles could not be spawned"</summary>

**Cause.** The truck model is not loaded, or the server did not create the vehicle in time. `cuxial_gardener_assets` is missing, or it was installed without restarting the server.

**Fix.** Start `cuxial_gardener_assets` before the job and restart the server. On a loaded server, raise `vehicles.spawnTimeoutMs`.

</details>

<details>

<summary>The truck is locked or the crew has no keys</summary>

**Cause.** Keys are only given through `cuxial_garages`. Without that resource, or with `vehicles.keys = false`, the job hands out no keys.

**Fix.** Start `cuxial_garages` before the job and keep `vehicles.keys = true`. If you use another key system, exempt the plates that start with the `vehicles.plate` prefix in that system.

</details>

<details>

<summary>The ladder is short and the console warns that it is not in this build</summary>

**Cause.** The tall ladder is a game model added in game build 2944. On an older build the job uses a shorter one.

**Fix.** Set the game build to 2944 or higher:

{% code title="server.cfg" %}

```cfg
sv_enforceGameBuild 2944
```

{% endcode %}

</details>

<details>

<summary>The trucks cannot be delivered</summary>

**Cause.** One of the delivery rules is not met. The message on screen says which one: tasks still pending, the player is not at the wheel of a job truck, a truck is outside `deliver.radius`, or a truck is destroyed.

**Fix.** Bring every truck to the delivery point and deliver from the driver seat. If a destroyed second truck should not block the payment, set `deliver.requireAll = false`. If the main truck is lost, the owner resets the job with `/gardreset`.

</details>

<details>

<summary>Flowers cannot be planted anywhere</summary>

**Cause.** Flowers go inside the flower area of the region, away from the job truck, and with a gap between them. With `plant.allowUnknown = false`, only the surfaces in `plant.materials` are valid.

**Fix.** Move the truck away, plant inside the marked area and leave room between flowers. Set `plant.allowUnknown = true` to accept any surface.

</details>

<details>

<summary>The Discord log receives nothing</summary>

**Cause.** The webhook convar is empty, has another name, or was set after the resource started.

**Fix.** Set it with `set` above the `ensure` line, with the name in `logs.convar`, and restart the job:

{% code title="server.cfg" %}

```cfg
set cuxial_gardener_webhook "https://discord.com/api/webhooks/..."
```

{% endcode %}

</details>

<details>

<summary>Item rewards are not given</summary>

**Cause.** An item of `reward.items` does not exist in your inventory, or the player cannot carry it. On start, the console lists the items that do not exist.

**Fix.** Use item names that exist in your inventory. The item is skipped when the player has no room for it.

</details>

<details>

<summary>The staff commands say you have no permission</summary>

**Cause.** The player does not belong to the group in `commands.<id>.restricted`.

**Fix.** Add the player to the group, `group.admin` by default. See [Commands & permissions](/scripts/jobs/cuxial-gardener/commands.md).

</details>

<details>

<summary>/gardfast does nothing</summary>

**Cause.** The command only works with debug on, and debug is read when the resource starts.

**Fix.** Set `debug = true` in the config, or `setr cuxial_gardener_debug 1` above the `ensure` line, and restart the job. Turn it off again on a live server.

</details>

<details>

<summary>The panel does not open or stays blank</summary>

**Cause.** The interface files are missing or incomplete. The interface comes already built inside `web/dist`.

**Fix.** Copy the `cuxial_gardener` folder again from the package, keeping your `shared/config.lua` and `data/` files.

</details>

<details>

<summary>The texts are in the wrong language</summary>

**Cause.** The job follows the language of `ox_lib`.

**Fix.** Set `setr ox:locale "en"` or `"es"` in `server.cfg`. The texts are in `locales/en.json` and `locales/es.json` and can be edited.

</details>


---

# 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://docs.cuxial.com/scripts/jobs/cuxial-gardener/troubleshooting.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.
