First time setting up the drug system
After you successfully installed the drug system on your server, you should configure it. The configuration is really simple.
Main Config
The main config file is located in wx_drugs/configs/drugs_config.lua
This config file contains everything related to the drug system.
By default, the config file has two predefined drug types: Weed and Coke. You can let the config file as it is, but
it's not recommended, as you won't use the drug system's full potential!
IMPORTANT: When configuring options related to item names, make sure those items exists in your ox_inventory!
IMPORTANT: If you're using wx.CheaterProtection, make sure to edit your punish function in server/ds_editable.lua!
Config File
drugs_config.lua
wx = {}
wx.CheaterProtection = true -- Triggers a function when a cheater tries to trigger an event using executor. Edit your function at server/ds_editable.lua
wx.DrugFields = { -- You can add how many drug fields you want
["Weed Field"] = { -- Field name, this name will be used as blip name (if enabled)
blip = { -- Blip settings
enabled = true,
sprite = 514,
color = 11
},
position = vec3(2222.8909, 5576.9033, 53.8270), -- Position (center) of the field, this is where the blip will be added
drugModel = `prop_weed_02`, -- Drug model
drugItem = "weed_leaf", -- Item players will receive upon harvesting
drugCount = {1,5}, -- [{min,max}] -- Item count
drugRadius = 25.0, -- Radius where the drugs will spawn
propCount = math.random(50,80), -- Maximum count of props that can be spawned in specified area
requiredItem = false, -- Required item for picking the drug. Set to false to disable
requiredItemCount = 1, -- Required item count, ignore if requiredItem above is set to false.
targetIcon = "fa-solid fa-cannabis",
progressTime = math.random(5000,8000), -- How long should the progress bar when picking the drug take
animation = { dict = 'mp_arresting', clip = 'a_uncuff' }, -- Progress bar animation
locale = { -- You can change the locale text here
target = "Pick Weed",
progress = "Picking weed..."
}
},
["Coke Field"] = { -- Field name, this name will be used as blip name (if enabled)
blip = { -- Blip settings
enabled = true,
sprite = 140,
color = 16
},
position = vec3(5207.6763, -5048.4521, 13.7471), -- Position (center) of the field, this is where the blip will be added
drugModel = `h4_prop_bush_cocaplant_01`, -- Drug model
drugItem = "coke", -- Item players will receive upon harvesting
drugCount = {1,5}, -- [{min,max}] -- Item count
drugRadius = 25.0, -- Radius where the drugs will spawn
propCount = math.random(50,80), -- Maximum count of props that can be spawned in specified area
requiredItem = false, -- Required item for picking the drug. Set to false to disable
requiredItemCount = 1, -- Required item count, ignore if requiredItem above is set to false.
targetIcon = "fa-solid fa-pills",
progressTime = math.random(5000,8000), -- How long should the progress bar when picking the drug take
animation = { dict = 'mp_arresting', clip = 'a_uncuff' }, -- Progress bar animation
locale = { -- You can change the locale text here
target = "Pick coke",
progress = "Picking coke..."
}
}
}
wx.DrugLabs = {
["Weed Lab"] = { -- Lab name, this name will be used as blip name (if enabled)
blip = { -- Blip settings
enabled = true,
sprite = 140,
color = 5
},
neededItem = false, -- Set the item needed to enter this lab, or set to false to disable this feature
positions = {
entry = vec3(1724.8848, -1470.6031, 113.9419), -- Location for entrance
exit = vec3(1066.3846, -3183.4141, -39.1636), -- Location for entrance
interior = vec4(1066.3049, -3183.4141, -39.1635,92.0252), -- vec4(x,y,z,heading) | Location of the interior where player will be teleported
processing = { -- Positions for processing the drug (you can add multiple locations)
vec3(1039.2350, -3205.3816, -38.1664),
vec3(1037.0461, -3203.8147, -38.1719),
vec3(1034.3291, -3203.8120, -38.1778),
vec3(1034.6504, -3205.4773, -38.1767),
},
},
locale = {
enter = "Enter Weed Lab",
entering = "Entering Weed Lab...",
exit = "Exit Weed Lab",
exiting = "Exiting Weed Lab...",
process = "Process weed",
processing = "Processing weed"
},
processingOptions = { -- You can add your items that player can process in the lab
-- ["Item Label"]
["Joint"] = {
finalItem = 'weed_joint', -- Item player will get upon processing
finalItemCount = 1, -- Item amount player will get upon processing
successChance = 90, -- Chance for successful process of the item
description = 'Process a classic weed joint',
proccessTime = 10000, -- Progress bar time
processLabel = "Processing joint...",
processAnimation = { dict = 'mp_arresting', clip = 'a_uncuff' }, -- Progress bar animation
processProp = { model = `p_amb_joint_01`, pos = vec3(0.013, 0.03, 0.022), rot = vec3(0.0, 0.0, -1.5) }, -- Progress bar prop settings
neededItems = { -- Needed items for crafting
-- ["item"] = count
["empty_bag"] = 1,
["weed_leaf"] = 5,
}
},
}
},
["Coke Lab"] = { -- Lab name, this name will be used as blip name (if enabled)
blip = { -- Blip settings
enabled = true,
sprite = 514,
color = 5
},
neededItem = "coke_card", -- Set the item needed to enter this lab, or set to false to disable this feature
positions = {
entry = vec3(-1023.6170, -1614.4656, 5.0874), -- Location for entrance
exit = vec3(1088.5313, -3187.5459, -38.9934), -- Location for entrance
interior = vec4(1088.5941, -3187.5061, -37.9935,175.4412), -- vec4(x,y,z,heading) | Location of the interior where player will be teleported
processing = { -- Positions for processing the drug (you can add multiple locations)
vec3(1090.2061, -3194.8269, -38.9935),
vec3(1092.5873, -3194.8311, -38.9935),
vec3(1095.3157, -3194.8210, -38.9935),
vec3(1102.2885, -3193.7742, -38.9935),
vec3(1099.6312, -3194.1768, -38.9935),
},
},
locale = {
enter = "Enter Coke Lab",
entering = "Entering Coke Lab...",
exit = "Exit Coke Lab",
exiting = "Exiting Coke Lab...",
process = "Process coke",
processing = "Processing coke..."
},
processingOptions = { -- You can add your items that player can process in the lab
-- ["Item Label"]
["Coke Brick"] = {
finalItem = 'coke_brick', -- Item player will get upon processing
finalItemCount = 1, -- Item amount player will get upon processing
successChance = 70, -- Chance for successful process of the item
description = 'Process a large brick of coke',
proccessTime = 15000, -- Progress bar time
processLabel = "Processing coke brick...",
processAnimation = { dict = 'anim@amb@business@coc@coc_unpack_cut_left@', clip = 'coke_cut_coccutter' }, -- Progress bar animation
processProp = { model = `prop_cs_business_card`, pos = vec3(0.113, 0.03, 0.022), rot = vec3(0.0, 0.0, -1.5) }, -- Progress bar prop settings
neededItems = { -- Needed items for crafting
-- ["item"] = count
["coke"] = 30,
}
},
}
}
}
wx.DrugEffects = {
-- [effect_name] = { options }
--[[
Add this to your ox_inventory/data/items.lua under the item you want the effect to work for
client = {
export = 'wx_drugs.effect_name'
}
]]
["weed_effect"] = {
cameraShake = 0.3, -- Camera shake strenght when the effect starts
cameraEffect = "DrugsMichaelAliensFightIn", -- https://pastebin.com/dafBAjs0
movement = "move_m@drunk@slightlydrunk", -- https://docs.fivem.net/natives/?_0xAF8A94EDE7712BEF
duration = 30 * 1000, -- Duration of the effect
}
}