View attachment 1dfb9b10-f185-4d45-ba45-b3c20bf56db1.webp
Plant it, grow it, harvest it. Control the entire operation!
Bring realism and depth to your criminal RP with a complete, immersive weed growing system.
This is not just another farming script. VF Advanced Weed introduces strain variety, dynamic plant quality, visual growth stages, and consequences for poor care – all tied into a sleek modern UI with full ox compatibility.
https://www.youtube.com/watch?v=rK82N1JRBJA]VIDEO PREVIEW[/URL]
Features
Requirements
Installation
Config
Plant it, grow it, harvest it. Control the entire operation!
Bring realism and depth to your criminal RP with a complete, immersive weed growing system.
This is not just another farming script. VF Advanced Weed introduces strain variety, dynamic plant quality, visual growth stages, and consequences for poor care – all tied into a sleek modern UI with full ox compatibility.
Hidden link for visitors, to see
Log in or register now.
Hidden link for visitors, to see
Log in or register now.
-
Multiple strains: White Widow, Amnesia Haze, Strawberry Kush, Purple Haze & Regular -
Realistic plant lifecycle: Growth stages, watering, and death if neglected -
Dynamic plant quality: Better care = better yield & higher value -
Watering system: Item-based watering with visual UI feedback -
Fire-based destruction: Set plants on fire – it can spread! -
Modern UI: Clean interface with growth %, water %, quality level -
Environment restrictions: No planting in cities, roads, or blacklisted zones -
Easy config: Full control over seeds, timers, locations, and more -
Plug-and-play: Auto-creates database tables on first run -
ox_inventory ready: Built-in usage and images included -
Optimized: 0.0ms idle / 0.00ms active
- ESX Legacy
[*] ox_inventory - ox_mysql
[*] ox_lib - ox_target
- Drop the resource in your resources folder
[*] Add ensure vf_weed in server.cfg - Add seeds/items in ox_inventory/data/items.lua
[*] Move images to ox_inventory/web/images/ - Customize config.lua as needed
Code:
Config = {}
Config.Debug = false -- Set to true to enable debug mode for faster growing and testing
Config.Locale = 'en' -- More languages coming soon, currently only English is supported
if Config.Debug then
Config.GrowthTime = 5 * 60 -- 5 minutes in seconds to fully grow
Config.WateringRequired = 6 -- Number of times watering is required for optimal growth
Config.WateringInterval = 0 -- No cooldown between waterings
Config.OptimalWateringInterval = 60 -- 1 minute ideal time between waterings
Config.MaxWaterings = 12 -- Maximum number of times a plant can be watered
Config.DeathTime = 3 * 60 -- 3 minutes without water will kill the plant
Config.OverwateringPenalty = 10 -- Quality decrease (%) for each overwatering
Config.WitheringTime = 2 * 60 -- 2 minutes before a dying plant is removed
Config.DeathWarningTime = Config.DeathTime - 60 -- 1 minute before plant enters dying state
else
Config.GrowthTime = 120 * 60 -- 2 hours in seconds
Config.WateringRequired = 6 -- Number of times watering is required for optimal growth
Config.WateringInterval = 0 -- No cooldown between waterings
Config.OptimalWateringInterval = 20 * 60 -- 20 minutes ideal time between waterings (2 hours / 6 waterings)
Config.MaxWaterings = 12 -- Maximum number of times a plant can be watered
Config.DeathTime = 30 * 60 -- 30 minutes without water will kill the plant
Config.OverwateringPenalty = 10 -- Quality decrease (%) for each overwatering
Config.WitheringTime = 30 * 60 -- 30 minutes before a dying plant is removed
Config.DeathWarningTime = Config.DeathTime - (5 * 60) -- 5 minutes before plant enters dying state
end
Config.DisplayDistance = 3.0 -- How close to be to see plant info
Config.InteractDistance = 1.5 -- How close to interact with plants
Config.SeedTypes = {
["marijuana_seed_widow"] = {
label = "White Widow Seed",
harvestItem = "marijuana_widow",
harvestLabel = "White Widow",
growthSpeed = 1.0, -- Normal growth speed
waterNeeded = 1.0, -- Normal water needs
baseQuality = 60, -- Starting quality
maxQuality = 100, -- Maximum quality
description = "Seed from the White Widow plant, known for its strong effect.",
color = "rgb(240, 240, 240)" -- White color for UI
},
["marijuana_seed_haze"] = {
label = "Amnesia Haze Seed",
harvestItem = "marijuana_haze",
harvestLabel = "Amnesia Haze",
growthSpeed = 0.9, -- Somewhat slower growth
waterNeeded = 1.1, -- Needs a bit more water
baseQuality = 65, -- Higher starting quality
maxQuality = 100,
description = "Seed from Amnesia Haze, a sought-after sativa.",
color = "rgb(212, 175, 55)" -- Gold-like color for UI
},
["marijuana_seed_kush"] = {
label = "Strawberry Kush Seed",
harvestItem = "marijuana_kush",
harvestLabel = "Strawberry Kush",
growthSpeed = 1.1, -- Faster growth
waterNeeded = 0.9, -- Needs less water
baseQuality = 55, -- Lower starting quality
maxQuality = 100,
description = "Seed from Strawberry Kush, sweet and fruity.",
color = "rgb(233, 150, 122)" -- Strawberry colored for UI
},
["marijuana_seed"] = {
label = "Marijuana Seed",
harvestItem = "marijuana",
harvestLabel = "Marijuana",
growthSpeed = 1.0,
waterNeeded = 1.0,
baseQuality = 50,
maxQuality = 100,
description = "A regular marijuana seed.",
color = "rgb(124, 252, 0)" -- Light green color
},
["marijuana_seed_purple"] = {
label = "Purple Haze Seed",
harvestItem = "marijuana_purple",
harvestLabel = "Purple Haze",
growthSpeed = 0.8, -- Much slower growth
waterNeeded = 1.2, -- Needs more water
baseQuality = 70, -- Highest starting quality
maxQuality = 100,
description = "Seed from the exclusive Purple Haze, requires extra care.",
color = "rgb(128, 0, 128)" -- Purple color for UI
}
}
-- Harvest amounts based on quality levels
Config.QualityTiers = {
-- Format: {minQuality, maxQuality, multiplier}
{min = 95, max = 100, multiplier = 1.0}, -- 100% of base amount at 95-100% quality
{min = 85, max = 94, multiplier = 0.9}, -- 90% of base amount at 85-94% quality
{min = 70, max = 84, multiplier = 0.8}, -- 80% of base amount at 70-84% quality
{min = 50, max = 69, multiplier = 0.7}, -- 70% of base amount at 50-69% quality
{min = 30, max = 49, multiplier = 0.5}, -- 50% of base amount at 30-49% quality
{min = 0, max = 29, multiplier = 0.3} -- 30% of base amount at 0-29% quality
}
-- Replace the existing HarvestRewards with this
Config.HarvestRewards = {
-- Base products that are always harvested regardless of seed type
common = {
-- Format: {item, min, max, chance}
{item = "marijuana_seed", min = 0, max = 2, chance = 75} -- Chance for regular seed
},
-- Base amount for marijuana of each type (adjusted according to quality)
base = {
min = 2,
max = 5
}
}
Config.PlantModels = {
[1] = { -- Seedling (seed)
model = "prop_weed_01",
zOffset = -1.2, -- Almost completely under ground
scale = 0.25 -- Very small
},
[2] = { -- Small plant
model = "prop_weed_01",
zOffset = -0.8, -- Partially under ground
scale = 0.5 -- Still small
},
[3] = { -- Medium plant
model = "prop_weed_01",
zOffset = -0.4, -- Slightly under ground
scale = 0.75 -- Almost full size
},
[4] = { -- Fully grown plant
model = "prop_weed_01",
zOffset = 0.0, -- On ground level
scale = 1.0 -- Full size
},
[-1] = { -- Dead plant
model = "prop_weed_01",
zOffset = 0.0,
scale = 0.9
}
}
-- Animation settings
Config.Animations = {
Watering = {
Dict = "missheistfbi3b_ig6_v2",
Name = "dump_water",
Duration = 3000,
Prop = {
Model = "prop_wateringcan",
Bone = 28422, -- Right hand
Offset = {0.0, 0.0, 0.0},
Rotation = {0.0, 0.0, 0.0}
},
Particle = {
Dict = "core",
Name = "ent_sht_water",
Offset = {0.05, 0.15, 0.2},
Rotation = {-90.0, 0.0, 0.0},
Scale = 0.5
},
},
Planting = {
Scenario = "WORLD_HUMAN_GARDENER_PLANT",
Duration = 5000
},
Harvesting = {
Dict = "anim@amb@business@weed@weed_inspecting_lo_med_hi@",
Name = "weed_crouch_checkingleaves_idle_01_inspector",
Duration = 4000,
Prop = {
Model = "prop_scissors",
Bone = 28422, -- Right hand
Offset = {0.0, 0.0, 0.0},
Rotation = {0.0, 0.0, 0.0}
}
}
}
-- Items required for different actions
Config.Items = {
Planting = {
Name = "marijuana_seed",
Count = 1
},
Watering = {
Name = "boba_cola",
Count = 1
},
Destroying = {
Name = "gasoline",
Count = 1
}
}
-- Debug function
Config.Trace = function(...)
if Config.Debug then
local logString = { ... }
local logLine = "[x-drugs] "
for i = 1, #logString do
logLine = logLine .. tostring(logString[i]) .. " "
end
print(logLine)
end
end
function GetSeedConfig(seedType)
if not seedType or not Config.SeedTypes[seedType] then
-- Return standard configuration if seedType is invalid
return Config.SeedTypes["marijuana_seed_widow"]
end
return Config.SeedTypes[seedType]
end