- Samuel's Development: Used their Christmas script global states and prop spawning (with permission).
- STACHY225: Meth network animations.
- Bostra: Free scripts, sanity checks, and those cute mushrooms!
- Feisty: Stunning visuals that make everything look amazing.
- Beta Testers: Your invaluable feedback made this possible.
- 1of1 Servers: Top-notch hosting and support. Join their Discord.
- Kamaryn: For the installation guide video.
- ox_lib
- qb-target or ox_target
- Emote Scripts (supports animations):
- dpemotes <-- seriously just use rpemotes. this is old and outdated
- rpemotes
- scully_emotemenu
- Read
- Game Build 2944 or Later
- qb-inventory users go to md-drugs/items_install/qb-inventory and add the Items to
qb-core/shared/items.lua
and - Add items from md-drugs/items_install/images to qb-inventory/html/images - ox_inventory users go to md-drugs/items_install/ox_inventory and add the Items to
ox_inventory/data/items.lua
and - Add items from md-drugs/items_install/images to ox_inventory/web/images
- delete
qb-drugs
- all locations, shops, pricings, and recipes are in the server files now utilizing callbacks to build targets and retrieve data
- shops.lua
- travelling merchant
- Weed Store
- Dealer Shops
- locations.lua
- holds all old config options for locations. edit what you need in here
- if you previously had them in the config copy and paste the INTERIOR guts of the options. example below
is now
Config.MakePowder = { {loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, }
local Target = { MakePowder = { {loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, } }
- see its a simple change.
- if you previously had them in the config copy and paste the INTERIOR guts of the options. example below
- holds all old config options for locations. edit what you need in here
- recipes.lua
- handles the vast majority of remove X get Y
- Cornerselling.lua
- now the drug table is inserted into this file.
- copy and paste your data inside of the
local Drugs = { -- for example ["weed_white-widow"] = {rep = 1,min = 15, max = 24 }, ["weed_og-kush"] = {rep = 1,min = 15, max = 28 }, }
- now the drug table is inserted into this file.
- all plant locations i.e. coke, heroin, weed, shrooms, mescaline are in the respective server files
- check server files to see drug specific settings now.
- heroin/lsd/ and xtc will have a setting table now at the top
- its simple really
-
copy the data from your Config and paste it in locations.lua
-
if the previous config option was a single location ( Not designed for multiples) then check target.singleSpot
-
shops.lua will now hold all shops for md-drugs so edit the data needed there
-
this is simple but tedious, but will handle security better in the long run
-
if you want to be lazy you can delete everything from
local Targt = { }
besides singleSpot
and copy and paste your
Config.MakePowder = { {loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, } and change the Config to Target like this BELOW the local Target = { Target.MakePowder = { {loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, {loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""}, }
-
- shops.lua
- Head to your emote script search for uncuff if it's missing add it
- if rpemotes do this
- go to client/animationListCustom.lua
- add these to the CustomDP.Emotes = {}
["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } }, ["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }},
- Add This to CustomDP.PropEmotes = {}
["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}}
- go to client/animationListCustom.lua
- elseif dpemotes add this to client/AnimationList.lua
- add these to DP.Emotes = {}
["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } }, ["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }},
- add these to DP.PropEmotes = {}
["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}}
- add these to DP.Emotes = {}
- elseif scullyemotes then
- add this to emotes.lua
{ Label = 'Uncuff', Command = 'uncuff', Animation = 'a_uncuff', Dictionary = 'mp_arresting', Options = { Flags = { Loop = true, Move = true, }, } }, { Label = 'Edibles', Command = 'edible', Animation = 'mp_player_int_eat_burger', Dictionary = 'mp_player_inteat@burger', Options = { Flags = { Loop = true, Move = true, }, } },
- then in prop emotes do
{ Label = 'Shoot Up', Command = 'shootup', Animation = "miranda_shooting_up", Dictionary = "rcmpaparazzo1ig_4", Options = { Flags = { Loop = true, }, Props = { { Bone = 18905, Name = 'prop_syringe_01', Placement = { vector3(0.11, 0.03, 0.0), vector3( -124.0, 0.0, 0.0), }, }, }, }, },
- add this to emotes.lua
- if rpemotes do this
- check
qb-smallresources/config.lua
and if this exists, delete it- look for this code
[2] = { --Coke Processing Enter/Exit [1] = { poly = { coords = vector3(909.49, -1589.22, 30.51), heading = 92.24, length = 2, width = 2 }, allowVeh = false, label = '[E] Enter Coke Processing' }, [2] = { poly = { coords = vector3(1088.81, -3187.57, -38.99), heading = 181.7, length = 2, width = 2 }, allowVeh = false, label = '[E] Leave' } }
- look for this code
- Run SQL
This is NOT a requirement but something I personally use and believe in.
-
to integrate with fivemerr make sure you have
set fivemerrLogs "API_KEY"
in your server.cfg -
Head to /server/functions.lua turn local logs = true
-
profit
Why Integrate with Fivemerr?
- Efficient Logging: Unlike Discord webhooks, Fivemerr provides an organized and searchable log system.
- Media Storage: Easily store and access images or videos without relying on Discord. Discord's API often deletes media after a certain time, but Fivemerr keeps them secure and accessible.
- As well as a place to offload images and videos from fivem that doesnt rely on discord since discord API will be automatically deleting images and videos after a certain amount of time If you need an invite to their server look below
- head to
qb-radial/config.lua
and search for the following event
event = 'qb-drugs:client:cornerselling',
- and change it to this
event = 'md-drugs:client:cornerselling',
- Head to
qb-shops/config.lua
Config.Products and add the folowing items to OR anywhere else you want them. The Only way in this script to get them is to find the travelling merchant
{name = 'bakingsoda', price = 100, amount = 5000, info = {}, type = 'item'},
{name = 'emptyvial', price = 100, amount = 5000, info = {}, type = 'item'},
{name = 'needle', price = 100, amount = 5000, info = {}, type = 'item'},
- Turn On Config.TierSystem after you run the sql file
mlo i use heres an option. use it or dont.