# Configuration Guide

## Weed

```lua
sqlSaveTime = 15, -- (minutes)
blacklistZones = { -- vector4(x, y, z, radius)
    --vector4(325.55, -209.97, 54.09, 30.0)
},

requiredPackAmount = 1, -- Required amount of pack to pack
requiredWeedAmount = 1, -- Required amount of weed to pack
packWeedAmount = 1, -- Amount of weed to pack

-- none | default | typingGame | timedLockpick | timedAction | quickTimeEvent | combinationLock | buttonMashing | angledLockpick | fingerPrint | hackerMinigame | safeCrack
packMinigameName = "default",

lightProps = {
    ["light_1"] = {
        model = "qua_light_ware",
        shouldRemove = true,
        lightLevel = 100.0, -- Light level (0-100)
        radius = 5.0, -- Radius of the light (Single or Multi Weed Pools within this radius will receive the light level).
    },
    ["light_2"] = {
        model = "prop_worklight_04c",
        shouldRemove = true,
        lightLevel = 50.0, -- Light level (0-100)
        radius = 5.0, -- Radius of the light (Single or Multi Weed Pools within this radius will receive the light level).
    },
    ["light_3"] = {
        model = "prop_worklight_04d",
        shouldRemove = true,
        lightLevel = 25.0, -- Light level (0-100)
        radius = 3.0, -- Radius of the light (Single or Multi Weed Pools within this radius will receive the light level).
    },
    ["light_4"] = {
        model = "prop_worklight_04b",
        shouldRemove = true,
        lightLevel = 100.0, -- Light level (0-100)
        radius = 7.0, -- Radius of the light (Single or Multi Weed Pools within this radius will receive the light level).
    },
},
fanProps = {
    ["fan_1"] = {
        model = "v_res_fa_fan",
        shouldRemove = true,
        fanLevel = 50.0, -- Fan level (0-100)
        radius = 3.0, -- Radius of the fan (Weed Dryers within this radius will receive the fan level).
    },
    ["fan_2"] = {
        model = "bkr_prop_weed_fan_floor_01a",
        shouldRemove = true,
        fanLevel = 100.0,  -- Fan level (0-100)
        radius = 3.0, -- Radius of the fan (Weed Dryers within this radius will receive the fan level).
    },
    ["fan_3"] = {
        model = "qua_weed_heather",
        shouldRemove = true,
        fanLevel = 25.0,  -- Fan level (0-100)
        radius = 3.0, -- Radius of the fan (Weed Dryers within this radius will receive the fan level).
    },
},
waterTank = {
    itemName = "water_tank",
    shouldRemove = true,
    
    model = "qua_watertank_general",
    radius = 25.0, -- radius of the water tank (all Multi Weed Pools within this radius will have 100% water).
},
weedDryer = {
    itemName = "weed_dryer",
    shouldRemove = true,

    fanTimeReducer = 1, -- (minutes) How many minutes will the fan props reduce the drying time?
    maxReduce = 3, -- (minutes) maximum drying time reduction
    budAmount = 10, -- Number of buds contained in a single object.
    dryTime = 3, -- (minutes) How many minutes will the plant dry?
    model = "qua_weed_dryer",
    budModel = "qua_weed_wet",
    budOffsets = { -- position of the buds in the dryer (It is not recommended to change)
        vector3(0.0, 0.0, 0.57),
        vector3(0.33, 0.0, 0.57),
        vector3(-0.35, 0.0, 0.57),
    }
},
weedGenetics = { 
-- lower rate indicates higher rarity. 
-- (for example: if the rate of kush is 90 and the rate of haze is 10, the chance of getting kush is 90% and the chance of getting haze is 10%)
    ["weed_seed_1"] = { -- the sum must equal 100
        ["kush"] = 92.5, 
        ["haze"] = 7.5,
    },
    ["weed_seed_2"] = { -- the sum must equal 100 
        ["kush"] = 85.5,
        ["haze"] = 14.5,
    },
},
singlePool = {
    weedAmountMultiplier = 3, -- Multiplier of the amount the plant will give according to manure, light level and health (if 3, it can take a maximum of 45 buds)

    waterPerAddition = 25.0, -- Amount of water the plant will add when you water it
    manurePerAddition = 25.0, -- Amount of manure the plant will add when you manure it

    stage_0 = {
        model = "bzzz_growing_freepot_b", -- Thanks to BzZzi for the pot.
    },
    stage_1 = {
        manureHit = 20.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 25.0, -- How much damage will the plant suffer if you give too much water?
        manureGrowthMultiplier = 2.0, -- Growth effect of manure (for example: growthRate + growthRate x manureGrowthMultiplier)
        lightGrowthMultiplier = 1.5, -- Growth effect of light (for example: growthRate + growthRate x lightGrowthMultiplier)
        growthRate = 50.4, -- What is the growth rate of the plant when it receives an update at this stage
        maxGrowthRate = 50, -- Maximum growth rate
        plantPerWilting = 1.5, -- How many health will decrease if the plant is deprived of water or if it is not collected
        consumptionTime = 1, -- How many minutes will the plant update (it will grow by consuming products such as water, light, and manure)
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        model = "bkr_prop_weed_01_small_01c",
    },
    stage_2 = {
        manureHit = 10.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 15.0, -- How much damage will the plant suffer if you give too much water?
        manureGrowthMultiplier = 2.0, -- Growth effect of manure (for example: growthRate + growthRate x manureGrowthMultiplier)
        lightGrowthMultiplier = 1.5, -- Growth effect of light (for example: growthRate + growthRate x lightGrowthMultiplier)
        maxGrowthRate = 100, -- Maximum growth rate
        growthRate = 50.3, -- What is the growth rate of the plant when it receives an update at this stage
        plantPerWilting = 1.0, -- How many health will decrease if the plant is deprived of water or if it is not collected
        consumptionTime = 1, -- How many minutes will the plant update (it will grow by consuming products such as water, light, and manure)
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        model = "bkr_prop_weed_01_small_01b"
    },
    stage_3 = {
        manureHit = 5.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 10.0, -- How much damage will the plant suffer if you give too much water?
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        plantPerWilting = 0.5, -- How many health will decrease if the plant is deprived of water or if it is not collected
        model = "bkr_prop_weed_med_01b"
    }
},
multiPool = {
    onlyInterior = false, -- If true, the plant will only place in the interior
    weedAmountMultiplier = 3, -- Multiplier of the amount the plant will give according to manure, light level and health (if 3, it can take a maximum of 45 buds)
   
    waterPerAddition = 25.0, -- Amount of water the plant will add when you water it
    manurePerAddition = 25.0, -- Amount of manure the plant will add when you manure it

    seedOffsets = { -- position of the seeds in the pool (It is not recommended to change)
        vector3(0.6, 0.6, -0.6),
        vector3(0.6, -0.6, -0.6),
        vector3(-0.6, 0.6, -0.6),
        vector3(-0.6, -0.6, -0.6),
    },
    stage_0 = {
        model = "qua_weed_planter_set", 
    },
    stage_1 = {
        manureHit = 20.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 25.0, -- How much damage will the plant suffer if you give too much water?
        manureGrowthMultiplier = 2.0, -- Growth effect of manure (for example: growthRate + growthRate x manureGrowthMultiplier)
        lightGrowthMultiplier = 1.5, -- Growth effect of light (for example: growthRate + growthRate x lightGrowthMultiplier)
        growthRate = 67.4, -- What is the growth rate of the plant when it receives an update at this stage
        maxGrowthRate = 50, -- Maximum growth rate
        plantPerWilting = 1.5, -- How many health will decrease if the plant is deprived of water or if it is not collected
        consumptionTime = 1, -- How many minutes will the plant update (it will grow by consuming products such as water, light, and manure)
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        model = "bkr_prop_weed_01_small_01a",
    },
    stage_2 = {
        manureHit = 10.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 15.0, -- How much damage will the plant suffer if you give too much water?
        manureGrowthMultiplier = 2.0, -- Growth effect of manure (for example: growthRate + growthRate x manureGrowthMultiplier)
        lightGrowthMultiplier = 1.5, -- Growth effect of light (for example: growthRate + growthRate x lightGrowthMultiplier)
        maxGrowthRate = 100, -- Maximum growth rate
        growthRate = 60.3, -- What is the growth rate of the plant when it receives an update at this stage
        plantPerWilting = 1.0, -- How many health will decrease if the plant is deprived of water or if it is not collected
        consumptionTime = 1, -- How many minutes will the plant update (it will grow by consuming products such as water, light, and manure)
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        model = "bkr_prop_weed_01_small_01b"
    },
    stage_3 = {
        manureHit = 5.0, -- How much damage will the plant suffer if you give too much manure?
        waterHit = 10.0, -- How much damage will the plant suffer if you give too much water?
        waterPerConsumption = 7.0, -- How much water will the plant consume when it is updated
        manurePerConsumption = 3.5, -- How much manure will the plant consume when it is updated?
        plantPerWilting = 0.5, -- How many health will decrease if the plant is deprived of water or if it is not collected
        model = "bkr_prop_weed_med_01b"
    }
},
```

## Meth

<pre class="language-lua"><code class="lang-lua"><strong>blacklistZones = { -- vector4(x, y, z, radius)
</strong>    --vector4(325.55, -209.97, 54.09, 30.0)
},
enableMask = true, -- if true, player will need to wear a gas mask to avoid toxic damage
maskTime = 3, -- (minutes) time it takes for the mask to break
maskId = 46, -- number of helmet you want to use as gas mask (default = 46)

explosionDamage = 25.0, -- damage dealt to player when the meth table explodes
toxicDamage = 5.0, -- damage dealt to player when they are in the toxic area
toxicDamageDistance = 10.0, -- distance from which toxic damage will be applied.
toxicCooldown = 5, -- (seconds) time it takes for the toxic damage to be applied again

uniqueOrder = true, -- If true, the amounts will be different for each user. If false, the amounts in the orderlist will be for each user.
uniqueOrderList = {
    ammonia = 65, -- range -> 1 - 100
    hcacid = 30, -- range -> 1 - 100
    sacid = 10, -- range -> 1 - 100
},
orderTolerance = 5, -- tolerance for the order amounts

mixingAnimWait = 10, -- (seconds)
baseMixtureAmount = 1, -- number of items given upon completing the mixture. (final amount will depend on the quality.)
qualityMultiplier = 1.5, -- multiplier for the quality of the mixture. (final amount = baseMixtureAmount + ((quality / 20) * qualityMultiplier))

uniqueReaction = true, -- If true, the amounts will be different for each user. If false, the amounts in the reactionList will be for each user.
reactionList = {
    phosphorus = 3, -- range -> 1 - 10
    lithium = 1, -- range -> 1 - 10
},

cookAnimWait = 15, -- (seconds)
cookTime = 0.5, -- (minutes)
temperatureRange = {40, 80}, -- random temperature value will be assigned between these two values
temperatureTolerance = 7, -- tolerance for the temperature
temperatureAttempts = 3, -- number of attempts player has to get the correct temperature

crystalizeAnimWait = 15, -- (seconds)
distillationRange = {1, 5}, -- range -> 1 - 5
correctDiistillationQuality = 10, -- amount it will affect the quality if distilled correctly
distillationTime = 0.5, -- (minutes)

baseMethAmount = 10, -- minimum amount of meth to give to the player (final amount will depend on the quality)

requiredEmptyPack = 1, -- required empty pack to pack the meth
requiredCrystalAmount = 1, -- required crystal to pack the meth
packedMethAmount = 1, -- amount of meth given when packed

-- none | default | typingGame | timedLockpick | timedAction | quickTimeEvent | combinationLock | buttonMashing | angledLockpick | fingerPrint | hackerMinigame | safeCrack
packMinigameName = "default",
mixMinigame = "default",
crystalizeMinigame = "default",
cookMinigame = "default",
</code></pre>

## Heroin

```lua
plants = {
    {
        model = "h4_prop_tree_frangipani_med_01",
        coords = vector3(1024.25, 4298.8, 38.95),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_tree_frangipani_med_01",
        coords = vector3(1030.44, 4304.8, 39.9),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_tree_frangipani_med_01",
        coords = vector3(1022.77, 4311.99, 40.21),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_tree_frangipani_med_01",
        coords = vector3(1026.35, 4321.65, 41.29),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
},
blacklistZones = { -- vector4(x, y, z, radius)
    --vector4(325.55, -209.97, 54.09, 30.0)
},
collectAnimTime = 15, -- (seconds)
requiredOpiumAmount = 24,

uniqueOrder = true, -- If true, the amounts will be different for each user. If false, the amounts in the orderlist will be for each user.
uniqueOrderList = {
    anhydride = 70, -- range -> 1 - 100
    alchol = 10, -- range -> 1 - 100
    acetone = 25, -- range -> 1 - 100
},
orderTolerance = 5, -- amount of tolerance in the mixture

initialPHLevelRange = {1, 10}, -- range -> 1 - 10
idealMinPH = 6.5, -- ideal min pH level of the mixture
idealMaxPH = 7.5, -- ideal max pH level of the mixture
acidEffect = 1.0, -- If acid needs to be added to the mixture, the amount it will affect the pH level
baseEffect = 0.5, -- If base needs to be added to the mixture, the amount it will affect the pH level
mixingAnimWait = 5, -- 5 sec

baseMixtureAmount = 1, -- number of items given upon completing the mixture. (final amount will depend on the quality.)
qualityMultiplier = 1.5, -- multiplier for the quality of the mixture. (final amount = baseMixtureAmount + ((quality / 20) * qualityMultiplier))

cauldronModel = "v_ret_fh_pot02",
campFireModel = "prop_beach_fire",
requiredCarbonAmount = 3,
cookTime = 1, -- (minutes)
coolingTime = 3, -- (minutes)

requiredPackAmount = 1, -- required empty pack to pack the heroin 
requiredPileAmount = 1, -- required heroin pile to pack the coke
packHeroinAmount = 1, -- amount it will give after the packing process is completed

-- none | default | typingGame | timedLockpick | timedAction | quickTimeEvent | combinationLock | buttonMashing | angledLockpick | fingerPrint | hackerMinigame | safeCrack
packMinigameName = "default",
cookingMinigame = "default",
mixMinigame = "default",
collectAnim = "default",
collectMinigame = "default",
```

## Coke

```lua
plants = {
    {
        model = "h4_prop_bush_cocaplant_01",
        coords = vector3(-2313.068, 2413.213, 1.415),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_bush_cocaplant_01",
        coords = vector3(-2321.92, 2412.25, 1.41),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_bush_cocaplant_01",
        coords = vector3(-2323.436, 2404.628, 1.540),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
    {
        model = "h4_prop_bush_cocaplant_01",
        coords = vector3(-2316.500, 2399.566, 1.626),
        time = 3, -- (minutes)
        count = function()
            return math.random(1, 3)
        end
    },
},
blacklistZones = { -- vector4(x, y, z, radius)
    -- vector4(325.55, -209.97, 54.09, 30.0)
},
leafPileModel = "prop_plant_group_02",
cauldronModel = "v_ret_fh_pot02",
campFireModel = "prop_beach_fire",
tableModel = "bkr_prop_coke_table01a",

collectAnimTime = 15, -- (seconds)
leafConvertAmount = 24,
driedLeafAmount = 1,

cookTime = 1, -- (minutes)
brickAmount = 1, -- amount it will give after the cooking process is completed
pileConvertAmount = 24,

-- none | default | typingGame | timedLockpick | timedAction | quickTimeEvent | combinationLock | buttonMashing | angledLockpick | fingerPrint | hackerMinigame | safeCrack
convertPileMinigame = "default",
mixtureMinigame = "default",
packMinigameName = "default",
collectMinigame = "default",

requiredEmptyPack = 1, -- required empty pack to pack the coke
requiredCokePile = 1, -- required coke pile to pack the coke
packedCokeAmount = 1, -- amount it will give after the packing process is completed
```


---

# 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://docs.rainmad.com/resources/drugs-v-grow-cook-and-space/configuration-guide.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.
