Installation

Requirements

hz_cookrequired. The pack is content for it, not a resource of its own
ox_librequired
a target systemhz_lib, ox_target, qb-target or hz_textui — the first that answers is picked
an inventoryox_inventory, qb-inventory or qs-inventory
a frameworkQBox, QBCore, ESX, or Standalone
Everything above is auto-detected. hz_cook/shared/config.lua can force any of it.

1. Merge the pack into HZ-Cook

The pack is content for HZ-Cook, not a resource to start. Copy three folders from the pack into your hz_cook resource:

data/       ->  hz_cook/data/
locales/    ->  hz_cook/locales/
stream/     ->  hz_cook/stream/

Nothing is overwritten. Every path they use is a path HZ-Cook loads but leaves empty, so a second pack later drops in the same way — and two packs that share a prop ship it at the same path instead of streaming it twice.

Copy only those three. fxmanifest.lua and .fxap would replace HZ-Cook's own and the framework would stop loading entirely, with No such export errors that point nowhere near the real cause. shared/ is only there for the fallback below.

Your server.cfg keeps the one line it already has:

ensure hz_cook

Do not add one for the pack. Starting it as a resource on top of the copy streams every prop twice, and the console says so.

Fallback. The pack does start as a resource if you prefer, without copying anything: ensure hz_cook_bbq after ensure hz_cook. It registers through the framework's exports and prints a line reminding you this is not the intended install. Its props then stream from its own folder, so two packs sharing a prop would ship it twice.

2. The items

From the pack's [items]/ folder, into your inventory:

Your inventoryFileWhere
ox_inventoryox_inventory.txtox_inventory/data/items.lua
qb-inventoryqb-inventory.txtqb-core/shared/items.lua
qs-inventoryqs-inventory.txtqs-inventory/shared/items.lua
databaseitems.sqlrun it
The items are not declared automatically. [items] is data to copy into your own inventory resource — the pack cannot write to it for you.

3. The images

Copy [items]/img/*.png into your inventory's image folder — not into the resource.

4. Check it

Give yourself a bbq, bbq1, bbq4 or campfire item and use it. On QBCore the items are made useable automatically, so there is no CreateUseableItem to write.

If nothing happens, check that the merge actually landed: hz_cook/data/stations/ must hold bbq.lua, bbq1.lua, bbq4.lua and campfire.lua. An empty folder means the three folders were copied next to the resource instead of into it — or that you are on the fallback, in which case the pack registers itself instead.

The items

ItemWhat it is
bbq, bbq1, bbq4, campfirethe four stations
charcoal_bagcharcoal for the kettle, carries its own level
lighterneeded to light a station by hand
raw_steakthe meat, cooked on any grill
burger_bun_bottom, burger_bun_top, cheese_slice, lettuce, tomato_slice, onion_slice, baconburger layers
skewer_stickthe empty skewer
skewer_beef, skewer_chicken, skewer_fish, skewer_mushroom, skewer_onion, skewer_pepper_green, skewer_pepper_red, skewer_tomato, skewer_zucchiniskewer pieces
burger, skewerthe finished food