Installation
HoodRich Cooking
Complete installation and configuration guide.
01Requirements
Select your server stack to see the exact install order and a ready-to-copyserver.cfg snippet.
Must start before HoodRich_Cooking.
ensure ox_libInstallation order
Download ox_lib and start it before HoodRich Cooking.
ensure ox_libInstall either QBCore (qb-core) or ESX (es_extended).
ensure qb-coreInstall ox_inventory or qb-inventory to match your stack.
ensure ox_inventoryInstall ox_target or qb-target to match your stack.
ensure ox_targetPlace HoodRich_Cooking in resources and ensure it after your stack.
ensure HoodRich_CookingServer.cfg
ensure ox_lib
ensure qb-core
ensure ox_inventory
ensure ox_target
ensure HoodRich_CookingVersion 1.1.0
01Requirements
| Resource | Required |
|---|---|
| ox_lib | Required |
| qb-core or es_extended | Required |
| ox_inventory or qb-inventory | Required |
| ox_target or qb-target | Required |
Supported combinations
- ESX + ox_inventory + ox_target
- QBCore + ox_inventory + ox_target
- QBCore + qb-inventory + qb-target
02Install the resource
- Place the
HoodRich_Cookingfolder in your serverresourcesdirectory. - Add this to your
server.cfgafter your framework, inventory, and target resources:
ensure ox_lib
ensure HoodRich_Cooking
- Restart the server, or run:
refresh
ensure HoodRich_Cooking
03Configure compatibility
Open shared/config.lua and set these to match your server:
Config.Framework = 'qb' -- 'qb' or 'esx'
Config.Inventory = 'qb' -- 'qb' or 'ox'
Config.Target = 'qb' -- 'qb' or 'ox'
| Your setup | Config values |
|---|---|
| QBCore + qb-inventory + qb-target | Framework = 'qb', Inventory = 'qb', Target = 'qb' |
| QBCore + ox_inventory + ox_target | Framework = 'qb', Inventory = 'ox', Target = 'ox' |
| ESX + ox_inventory + ox_target | Framework = 'esx', Inventory = 'ox', Target = 'ox' |
04Add inventory items
You need these items in your inventory system. Names below are the defaults — change them in Config.Items / Config.Ingredients if you use different names.
| Item name | Purpose |
|---|---|
portable_stove |
Placeable stove (use from inventory) |
cooking_pot |
Required on stove while cooking; returned when picked up |
cocaine |
Ingredient (consumed when cooking) |
baking_soda |
Ingredient (consumed when cooking) |
crack |
Cooked output + usable item |
Default ingredient amounts per batch (configurable in Config.Ingredients):
- 10 cocaine
- 5 baking soda
- 1 cooking pot (not consumed)
Output: 1 crack per 1 cocaine used (see Config.Output).
QBCore
Open qb-core/shared/items.lua and add:
['portable_stove'] = {
name = 'portable_stove',
label = 'Portable Stove',
weight = 5000,
type = 'item',
image = 'portable_stove.png',
unique = false,
useable = true,
shouldClose = true,
description = 'A portable stove for cooking.',
},
['cooking_pot'] = {
name = 'cooking_pot',
label = 'Cooking Pot',
weight = 2000,
type = 'item',
image = 'cooking_pot.png',
unique = false,
useable = false,
shouldClose = true,
description = 'A pot used for cooking.',
},
['cocaine'] = {
name = 'cocaine',
label = 'Cocaine',
weight = 100,
type = 'item',
image = 'cocaine.png',
unique = false,
useable = false,
shouldClose = true,
description = 'Raw ingredient.',
},
['baking_soda'] = {
name = 'baking_soda',
label = 'Baking Soda',
weight = 100,
type = 'item',
image = 'baking_soda.png',
unique = false,
useable = false,
shouldClose = true,
description = 'Cooking ingredient.',
},
['crack'] = {
name = 'crack',
label = 'Crack',
weight = 100,
type = 'item',
image = 'crack.png',
unique = false,
useable = true,
shouldClose = true,
description = 'Ready to use.',
},
Put matching PNG icons in qb-inventory/html/images/ (or your inventory image folder).
ox_inventory
Open ox_inventory/data/items.lua and add:
['portable_stove'] = {
label = 'Portable Stove',
weight = 5000,
stack = true,
close = true,
description = 'A portable stove for cooking.',
client = {
export = 'HoodRich_Cooking.portable_stove',
},
},
['cooking_pot'] = {
label = 'Cooking Pot',
weight = 2000,
stack = true,
close = true,
description = 'A pot used for cooking.',
},
['cocaine'] = {
label = 'Cocaine',
weight = 100,
stack = true,
close = true,
description = 'Raw ingredient.',
},
['baking_soda'] = {
label = 'Baking Soda',
weight = 100,
stack = true,
close = true,
description = 'Cooking ingredient.',
},
['crack'] = {
label = 'Crack',
weight = 100,
stack = true,
close = true,
description = 'Ready to use.',
client = {
export = 'HoodRich_Cooking.use_crack',
},
},
Add images to ox_inventory/web/images/ (e.g. portable_stove.png, crack.png).
ESX
If you use ESX with ox_inventory, only the ox_inventory items above are needed.
If you use a legacy ESX inventory, add items to your items table and ensure names match Config.Ingredients / Config.Items.
05Give yourself items (testing)
QBCore
/giveitem [id] portable_stove 1
/giveitem [id] cooking_pot 1
/giveitem [id] cocaine 50
/giveitem [id] baking_soda 25
ox_inventory
/ox give [id] portable_stove 1
/ox give [id] cooking_pot 1
/ox give [id] cocaine 50
/ox give [id] baking_soda 25
06How to play
Portable stove
01Place the StovePlace the Stove
Use Portable Stove from inventory. Move the ghost preview, press ENTER to place, X to cancel.
02Place the PotPlace the Pot
Target the stove → Place Pot (needs cooking_pot in inventory).
03Place the CupPlace the Cup
Target the stove → Place Cup on the pot.
04Start CookingStart Cooking
Target the stove → Start Cooking → enter cocaine amount.
05Complete CookingComplete Cooking
Complete skill checks and the stirring progress bar. Receive crack on success.
World stoves
Stoves already in the map (BBQs, cookers, etc.) are listed in Config.WorldStoveModels. Target them the same way — no portable stove item needed.
Using crack
Use crack from inventory (pipe animation + optional armour gain from Config.CrackUse.armour).
Pick up / pack up
- Pick Up Cup — removes cup from pot (client only).
- Pick Up Pot — returns
cooking_potto inventory. - Pick Up Stove — returns
portable_stoveto inventory.
07Optional configuration
All in shared/config.lua:
| Setting | Description |
|---|---|
Config.Debug |
true = F8 debug prints |
Config.Ingredients |
Default amounts for UI / validation |
Config.IngredientOrder |
Order of cooking steps |
Config.Output |
Output item name and yield ratio |
Config.CrackUse.armour |
Armour gained when smoking crack (0–100) |
Config.WorldStoveModels |
Prop models that work as world stoves |
Config.CookingMistakes |
Skill check failures before fire / burn |
Pot placement tuning: stand near a stove with a pot placed and run:
/hoodrich_potoffset
/hoodrich_potoffset 0.08 -0.04 0.98
Copy the F8 config line into Config.PotOnStoveOffset if props look misaligned.
08Troubleshooting
Enable debug mode:
Config.Debug = true
Then check the F8 client console and server console for [HoodRich Cooking] messages.
09File structure
HoodRich_Cooking/
├── client/
│ ├── lib.lua
│ ├── effects.lua
│ ├── placement.lua
│ ├── stoves.lua
│ ├── cooking.lua
│ ├── crack.lua
│ └── main.lua
├── server/
│ └── main.lua
├── shared/
│ └── config.lua
├── stream/
├── fxmanifest.lua
└── INSTALL.md
10Support checklist
Before asking for help, confirm:
-
ox_lib, framework, inventory, and target are running -
shared/config.luamatches your stack - All five items exist with correct names
- Item images are added (optional but recommended)
- Resource restarted after config/item changes