prp-nicotine
Zeen-style nicotine pouches for FiveM. Open cans for pouches, consume for stress relief. Copy-paste ready item definitions for ox_inventory, qb-inventory, and qs-inventory.

Spearmint Can

Mint Can

Wintergreen Can
What's in the Package
- 6 item definitions — zeen_spearmint/mint/wintergreen (can + pouch) for ox_inventory, qb-inventory, qs-inventory
- 6 PNG images — High-quality Zeen-style can and pouch sprites
- Config.lua — PouchesPerCan, StressReduction, CooldownMs, ScreenEffect, EffectDuration, Animation
- Shop examples — prp-shops, ox_inventory shops, qb-shops
Highlights
Open cans for pouches — Use a Zeen can to receive pouches (configurable yield, default 15).
Consume pouches — Play chewing animation, trigger screen effect, reduce stress (when framework supports it).
Three flavors — Spearmint, Mint, Wintergreen. Each has a can and pouch item.
Multi-inventory — ox_inventory, qb-inventory, qs-inventory. Use the tabs below for copy-paste ready definitions.
Multi-framework — QBX, QBCore, ESX, standalone. Stress relief requires framework; standalone = visual effects only.
Installation
- Place
prp-nicotinein your resources folder (e.g.resources/[prp]/prp-nicotine). - Add to
server.cfgafter dependencies:ensure ox_lib ensure ox_inventory # or qb-inventory / qs-inventory ensure qbx_core # or qb-core / es_extended ensure prp-nicotine - Copy item definitions using the tabbed definitions below (ox_inventory, qb-inventory, or qs-inventory).
- Copy images from
prp-nicotine/images/to your inventory's image folder:zeen_spearmint_can.png,zeen_spearmint_pouch.pngzeen_mint_can.png,zeen_mint_pouch.pngzeen_wintergreen_can.png,zeen_wintergreen_pouch.png
ox_inventory/web/images/; qb-inventory/qs-inventory: your shared images path.) - Add cans to your shop (see Configuring Shops).
Item Definitions
Choose your inventory system below and copy the complete definitions.
Navigate to ox_inventory/data/items.lua and add the following to the return table:
['zeen_spearmint_can'] = {
label = 'Zeen Spearmint Can',
weight = 100,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_spearmint_can.png',
event = 'nicotine:useCan',
},
},
['zeen_spearmint_pouch'] = {
label = 'Zeen Spearmint Pouch',
weight = 5,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_spearmint_pouch.png',
event = 'nicotine:usePouch',
},
},
['zeen_mint_can'] = {
label = 'Zeen Mint Can',
weight = 100,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_mint_can.png',
event = 'nicotine:useCan',
},
},
['zeen_mint_pouch'] = {
label = 'Zeen Mint Pouch',
weight = 5,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_mint_pouch.png',
event = 'nicotine:usePouch',
},
},
['zeen_wintergreen_can'] = {
label = 'Zeen Wintergreen Can',
weight = 100,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_wintergreen_can.png',
event = 'nicotine:useCan',
},
},
['zeen_wintergreen_pouch'] = {
label = 'Zeen Wintergreen Pouch',
weight = 5,
stack = true,
close = true,
consume = 0,
client = {
image = 'zeen_wintergreen_pouch.png',
event = 'nicotine:usePouch',
},
},
Add items to qb-core/shared/items.lua (or your inventory's shared items) and CreateUseableItem in a server script:
-- Shared items (qb-core/shared/items.lua or qb-inventory/shared/items.lua)
['zeen_spearmint_can'] = { ['name'] = 'zeen_spearmint_can', ['label'] = 'Zeen Spearmint Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_spearmint_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_spearmint_pouch'] = { ['name'] = 'zeen_spearmint_pouch', ['label'] = 'Zeen Spearmint Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_spearmint_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_mint_can'] = { ['name'] = 'zeen_mint_can', ['label'] = 'Zeen Mint Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_mint_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_mint_pouch'] = { ['name'] = 'zeen_mint_pouch', ['label'] = 'Zeen Mint Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_mint_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_wintergreen_can'] = { ['name'] = 'zeen_wintergreen_can', ['label'] = 'Zeen Wintergreen Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_wintergreen_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_wintergreen_pouch'] = { ['name'] = 'zeen_wintergreen_pouch', ['label'] = 'Zeen Wintergreen Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_wintergreen_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
-- Server: CreateUseableItem (e.g. in prp-nicotine/server.lua or a bridge)
QBCore.Functions.CreateUseableItem('zeen_spearmint_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_spearmint_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_mint_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_mint_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_wintergreen_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_wintergreen_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
Add items to your qs-inventory shared config and register useable items on the server:
-- Shared items (qs-inventory/config.lua or shared items)
['zeen_spearmint_can'] = { ['name'] = 'zeen_spearmint_can', ['label'] = 'Zeen Spearmint Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_spearmint_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_spearmint_pouch'] = { ['name'] = 'zeen_spearmint_pouch', ['label'] = 'Zeen Spearmint Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_spearmint_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_mint_can'] = { ['name'] = 'zeen_mint_can', ['label'] = 'Zeen Mint Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_mint_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_mint_pouch'] = { ['name'] = 'zeen_mint_pouch', ['label'] = 'Zeen Mint Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_mint_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_wintergreen_can'] = { ['name'] = 'zeen_wintergreen_can', ['label'] = 'Zeen Wintergreen Can', ['weight'] = 100, ['type'] = 'item', ['image'] = 'zeen_wintergreen_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
['zeen_wintergreen_pouch'] = { ['name'] = 'zeen_wintergreen_pouch', ['label'] = 'Zeen Wintergreen Pouch', ['weight'] = 5, ['type'] = 'item', ['image'] = 'zeen_wintergreen_pouch.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['description'] = '' },
-- Server: CreateUseableItem (prp-nicotine handles this when using qb-inventory/qs-inventory bridge)
QBCore.Functions.CreateUseableItem('zeen_spearmint_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_spearmint_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_mint_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_mint_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_wintergreen_can', function(source, item) TriggerClientEvent('nicotine:useCan', source, item) end)
QBCore.Functions.CreateUseableItem('zeen_wintergreen_pouch', function(source, item) TriggerClientEvent('nicotine:usePouch', source, item) end)
Copy images from prp-nicotine/images/ to your inventory's image folder.
Configuring Shops
With prp-shops
Add the can items to your shop item lists:
['zeen_spearmint_can'] = 40,
['zeen_mint_can'] = 40,
['zeen_wintergreen_can'] = 40,
With ox_inventory shops
Add to ox_inventory/data/shops.lua with desired prices.
With qb-shops
Add the Zeen can items to your shop configuration.
Configuration
Edit config.lua:
| Option | Default | Description |
|---|---|---|
PouchesPerCan | 15 | Pouches given when opening a can |
EnableStressReduction | true | Enable stress relief (requires framework) |
StressReduction.min | 1 | Min stress reduction |
StressReduction.max | 5 | Max stress reduction |
CooldownMs | 3000 | Cooldown between uses (ms) |
ScreenEffect | 'DeadlineNeon' | GTA screen effect name |
EffectDuration | 10000 | Effect duration (ms) |
Animation | { dict, name, duration } | Chewing animation |
Compatibility
| Framework | Inventory | Stress | Status |
|---|---|---|---|
| QBX | ox_inventory, qb-inventory, qs-inventory | Yes (statebags) | Full |
| QBCore | ox_inventory, qb-inventory, qs-inventory | Yes (hud:client:UpdateStress) | Full |
| ESX | ox_inventory | Yes (esx_status) | Full |
| Standalone | ox_inventory | No | Visual effects only |
Flavors
- Spearmint —
zeen_spearmint_can,zeen_spearmint_pouch - Mint —
zeen_mint_can,zeen_mint_pouch - Wintergreen —
zeen_wintergreen_can,zeen_wintergreen_pouch
Troubleshooting
- Items don't work — Ensure item definitions are correct for your inventory (use the tabs above). For ox_inventory:
ox_inventory/data/items.luaandox_inventory/web/images/. For qb-inventory/qs-inventory: shared items + CreateUseableItem. - Stress not reducing — Check that your framework (qbx/qb/esx) is started before prp-nicotine. For ESX,
esx_statusmust be running. - Invalid item data — Ensure your inventory is passing the correct payload. Restart your inventory and prp-nicotine.