# Growing Everywhere

## Installation

{% stepper %}
{% step %}
**Add Resources to Server**

Drop the resources into your server’s `resources` directory:

* `cfx-orchid-growing`
* `cfx-orchid-growing-props`
  {% endstep %}

{% step %}
**Install Dependencies**

Follow the [installation guide](https://orchid-docs.gitbook.io/docs/documentation/essensials/orchid-bridge#installation) for [Orchid Bridge](https://orchid-docs.gitbook.io/docs/documentation/essensials/orchid-bridge).
{% endstep %}

{% step %}

#### Configure

Edit the following files in `data` folder to customize the system:

* `config.lua` — main settings, shops, and buyers
* `zones.lua` — farming zones and environmental modifiers
* `plants.lua` — plant definitions, stages with props, and yields
  {% endstep %}

{% step %}
**Start the Resources**

Ensure both resources are loaded in your `server.cfg`:

```cfscript
ensure cfx-orchid-growing
ensure cfx-orchid-growing-props
```

{% endstep %}
{% endstepper %}

***

## Configuration

The `config.lua` file allows you to fine-tune the farming system.\
Below is an overview of the available settings.

### General Settings

<table><thead><tr><th width="241">Key</th><th width="426">Description</th><th>Default</th></tr></thead><tbody><tr><td><code>spilledWateringPercentage</code></td><td>Durability lost from the watering can when spilling water accidentally.</td><td><code>15</code></td></tr><tr><td><code>wateringPercentage</code></td><td>Maximum durability used when watering a pot.</td><td><code>30</code></td></tr><tr><td><code>defaultHumidity</code></td><td>Humidity level in places with no zone or zone without specified value.</td><td><code>20.0</code></td></tr><tr><td><code>defaultSun</code></td><td>Sun level in places with no zone or zone without specified value.</td><td><code>50.0</code></td></tr><tr><td><code>growthModifierSun</code></td><td>Growth modifier per unit of sun exposure.</td><td><code>0.01</code></td></tr><tr><td><code>deadHumidity</code></td><td>Humidity threshold where plants die and disappear.</td><td><code>-17.0</code></td></tr><tr><td><code>wateringCanStartDurability</code></td><td>Durability of new watering cans.</td><td><code>20.0</code></td></tr><tr><td><code>updateInterval</code></td><td><p>IN SECONDS. </p><p>Update interval for plant updates. 1.5 minutes is optimal. 1 minute will work too, but everything less then that will cause performance issues. Higher value will provide players with less realistic updates of growth.</p></td><td><code>90</code></td></tr><tr><td><code>pricesUpdateCooldown</code></td><td>Cooldown (in minutes) for crop price updates.</td><td><code>60</code></td></tr></tbody></table>

***

### Fertilizer Settings

<table><thead><tr><th width="237">Key</th><th width="409">Description</th><th>Default</th></tr></thead><tbody><tr><td><code>plantsPerFertilizerUse</code></td><td>Number of plants fertilized before requiring reapplication.</td><td><code>3</code></td></tr><tr><td><code>growthBoost</code></td><td>Extra growth rate when fertilized (e.g., <code>0.05</code> = 5%).</td><td><code>0.05</code></td></tr><tr><td><code>waterConsumptionReduction</code></td><td>Reduction in water consumption when fertilized (e.g., <code>0.05</code> = 5%).</td><td><code>0.05</code></td></tr></tbody></table>

***

### Shops

Shops and buyers are configured inside `config.lua`.\
Each shop has its own set of fields that control how it behaves.

***

#### Common Fields

<table><thead><tr><th width="115">Field</th><th width="139">Type</th><th width="192">Default</th><th>Description</th></tr></thead><tbody><tr><td><code>enable</code></td><td><code>boolean</code></td><td><code>true</code></td><td>Enables or disables the shop.</td></tr><tr><td> <code>name</code></td><td><code>string</code></td><td><code>"Plants Bazaar"</code></td><td>Name shown in UI or on blip.</td></tr><tr><td><code>id</code></td><td><code>string</code></td><td><code>"farmingShop"</code></td><td>Unique identifier for the shop. Must not conflict with other shop IDs.</td></tr><tr><td><code>locations</code></td><td><code>Array&#x3C;vec4></code></td><td><code>{ vec4(2310.197, 4885.103, 40.808, 46.888) }</code></td><td>Positions where the shop NPC can spawn. Format: <code>vec4(x, y, z, heading)</code>.</td></tr><tr><td><code>ped</code></td><td><code>string</code></td><td><code>"a_m_m_hillbilly_01"</code></td><td>Ped model used as shopkeeper.</td></tr><tr><td><code>groups</code></td><td><code>table</code> or <code>nil</code></td><td><code>nil</code></td><td>Restrict shop to specific groups. Use <code>nil</code> for all players or e.g. <code>{ crime = 0 }</code>.</td></tr><tr><td><code>blip</code></td><td><code>table</code></td><td>see below</td><td>Controls blip settings.</td></tr><tr><td><code>inventory</code></td><td><code>table</code></td><td>see below</td><td>List of items the shop sells.</td></tr></tbody></table>

***

#### Blip Settings

<table><thead><tr><th width="94">Field</th><th width="108">Type</th><th width="168">Default</th><th>Description</th></tr></thead><tbody><tr><td><code>enable</code></td><td><code>boolean</code></td><td><code>true</code></td><td>Whether the blip is visible on the map.</td></tr><tr><td><code>sprite</code></td><td><code>number</code></td><td><code>52</code></td><td>Sprite ID for the blip.</td></tr><tr><td><code>display</code></td><td><code>number</code></td><td><code>4</code></td><td>Display type (usually <code>4</code>).</td></tr><tr><td><code>scale</code></td><td><code>number</code></td><td><code>0.8</code></td><td>Size of the blip.</td></tr><tr><td><code>colour</code></td><td><code>number</code></td><td><code>30</code></td><td>Color ID of the blip.</td></tr><tr><td><code>name</code></td><td><code>string</code></td><td><code>"Plants Bazaar"</code></td><td>Text shown on the map.</td></tr></tbody></table>

***

#### Inventory Items

Each shop’s `inventory` defines items for sale.

<table><thead><tr><th width="144">Field</th><th width="149">Type</th><th width="177">Default</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>string</code></td><td><code>"watering_can"</code></td><td>Item name (must exist in item database/inventory system).</td></tr><tr><td><code>amount</code></td><td><code>number</code></td><td><code>50</code></td><td>Amount of the item in stock.</td></tr><tr><td><code>price</code></td><td><code>number</code></td><td><code>700</code></td><td>Price of the item.</td></tr></tbody></table>

***

#### Crop Buyers (`cropsBuyer` / `illegalCropsBuyer`)

Crop buyers use the same fields as shops, with an additional `canBeSold` table for prices.

<table><thead><tr><th width="123">Field</th><th width="92">Type</th><th width="191">Default</th><th>Description</th></tr></thead><tbody><tr><td><code>canBeSold</code></td><td><code>table</code></td><td><code>{ onion = {10, 20}, salad = {10, 20}, pumpkin = 15 }</code></td><td>Defines items that can be sold. Value can be:<br>- <code>number</code>: fixed price.<br>- <code>{ x, y }</code>: random price between <code>x</code> and <code>y</code>, updated every 2 hours.</td></tr></tbody></table>

***

## Zones

The `zones.lua` file defines environmental regions that affect plant growth.

### Example Zone

```lua
{
    coords = vec3(-342.457, -1124.154, 27.384),
    radius = 2000.0,
    name = 'los_santos',
    noPlants = true,
    humidity = math.random(10, 90),
    sun = 50
}
```

#### Parameters

<table><thead><tr><th width="110">Key</th><th width="369">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>coords</code></td><td>Center of the zone</td><td><code>vec3(4819.077, -5163.221, -2.188)</code></td></tr><tr><td><code>radius</code></td><td>Zone radius in game units</td><td><code>1100.0</code></td></tr><tr><td><code>name</code></td><td>Name of the zone (or <code>false</code> for unnamed)</td><td><code>"cayo_perico"</code></td></tr><tr><td><code>humidity?</code></td><td>Optional override for zone humidity (0–100)<br>Default: <a data-mention href="#general-settings">#general-settings</a><br>Random will set new value every time server starts</td><td><p><code>60.0</code> or </p><pre class="language-lua"><code class="lang-lua">math.random(10, 90)
</code></pre></td></tr><tr><td><code>sun?</code></td><td>Optional override for sun exposure (0–100)<br>Default: <a data-mention href="#general-settings">#general-settings</a><br>Random will set new value every time server starts</td><td><p><code>80.0</code> or </p><pre class="language-lua"><code class="lang-lua">math.random(10, 90)
</code></pre></td></tr><tr><td><code>noPlants?</code></td><td>If true, planting is disabled in this area</td><td><code>true</code></td></tr></tbody></table>

***

## Plants

The `plants.lua` file defines what crops can be grown, how long they take to grow, and their growth stages.

### Example Plant (Weed)

```lua
weed_seed_weed = {
    specialArea = false,
    growthTime = 6,
    waterPerMinute = 4,
    yield = {
        { item = 'weedplant_weed', amount = 1 },
        { item = 'weed_seed_weed', amount = { 0, 2 } }
    },
    stages = {
        [1] = { growth = 0 },
        [2] = { growth = 10, model = `orchid_weed_green_small` },
        [3] = { growth = 20, model = `orchid_weed_green_mediumsmall` },
        [4] = { growth = 30, model = `orchid_weed_green_medium` },
        [5] = { growth = 50, model = `orchid_weed_green_bud` },
        [6] = { growth = 70, model = `orchid_weed_green_bud_bigger_b` },
        [7] = { growth = 90, model = `orchid_weed_green_bud_big` },
    },
}
```

#### Parameters

<table><thead><tr><th width="157">Key</th><th width="335">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>specialArea</code></td><td>Whether the plant requires a specific zone to grow (<code>name</code> filed in <a data-mention href="#parameters">#parameters</a>)</td><td><code>false</code></td></tr><tr><td><code>growthTime</code></td><td>Growth time in hours</td><td><code>6</code></td></tr><tr><td><code>waterPerMinute</code></td><td>Water consumed per minute</td><td><code>4</code></td></tr><tr><td><code>yield</code></td><td>Items given when harvested</td><td><code>weedplant_weed</code>, <code>weed_seed_weed</code></td></tr><tr><td><code>stages</code></td><td>Growth stages and models used for each stage</td><td>See example. <code>growth</code> means percentage. As soon as plant growth reaches the value in stage the prop will be updated</td></tr></tbody></table>

***

## Admin Commands

#### `/toggleGrowingZones`&#x20;

* **Access**: `group.admin` (edit `functions/server.lua`)
* **Description**: Displays all configured growing zones from `zones.lua`.

<details>

<summary>Preview</summary>

<figure><img src="https://2708107341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FizX3XG5QskrI0birZnL0%2Fuploads%2F5GIXRd2xgbwkl6ceUiRI%2FScreenshot%202025-08-24%20124820.png?alt=media&#x26;token=647ccb2b-c670-4cba-8ff2-c3ff8f4bc65f" alt=""><figcaption></figcaption></figure>

</details>

***

#### `/adminGrowing`

* **Access**: `group.admin` (edit `functions/server.lua`)
* **Description**: Opens the admin growing menu, showing all placed pots and their data.

<details>

<summary>Preview</summary>

<figure><img src="https://2708107341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FizX3XG5QskrI0birZnL0%2Fuploads%2F9eYOOAl8W8QHMNeqwJG2%2Fimage.png?alt=media&#x26;token=be5f73d6-fe2e-45fa-9d4f-31e29bc6449d" alt=""><figcaption></figcaption></figure>

</details>


---

# 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://orchid-docs.gitbook.io/docs/documentation/our-releases/growing-everywhere.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.
