[ESX/QB/QBOX] | Smoking System

future_smoking

Enhance the roleplay experience in your server with our new realistic smoking system!

On most servers, smoking is just one looping animation. Our script makes it an actual interaction. Players light up, the item burns down while they smoke it, vapes and bongs get refilled, and each one gives its own effects. It adds a fun and unique feature to their roleplay experience.

Preview: Click Here
Buy here: Click Here

Dependencies:
An inventory system (ox_inventory or qb-inventory)
ox_lib (optional)

A custom inventory can also be used by editing the open inventory bridge files.

Our resource is encrypted using the escrow system provided by FiveM, with very dynamic config and function files that allow you to control almost any feature.
(In case you need to control any deeper functionality you can always contact us)

Features

  • 5 smoking items: cigarette, joint, cigar, vape and bong.
  • Every item has its own props, animations and effects.
  • Burn down system, cigarettes, joints and cigars shrink as you smoke them through 4 stages (Full, Half-Full, Short, Stub).
  • Lighter with consumable fuel.
  • Refillable vapes and bongs, fill them up with e-liquid and weed.
  • Configurable effects per item (stress relief, health and armor regen, speed, stamina, melee damage and screen effects).
  • Configurable effect duration.
  • Idle smoking, players can keep a cigarette, joint, or cigar in their hand while doing other things.
  • Pass smoking items to a nearby player.
  • Coughing animation when one player smokes in another’s face.
  • NUI with a configurable screen position.
  • Comes with custom cigarette, cigar, and joint models.
  • Synced between all clients.
  • Compliant with servers that have entity lockdown enabled.
  • Works with ox_inventory and qb-inventory.
  • ox_lib or native notifications.
  • Configurable keybinds and durability rates.
Example config file
Config = {}

-- Notification System
-- 'ox_lib': Use ox_lib notifications (highly recommended)
-- 'native': Use GTA V native notifications
Config.Notification = 'ox_lib'

-- Inventory System
-- 'auto'  : Auto-detect inventory
-- 'ox_inventory' : Recommended
-- 'qb-inventory' : QBCore inventory
-- 'custom'       : Custom inventory (edit bridge/inventory.lua)
Config.inventory = 'ox_inventory'

-- UI Settings
-- Possible values: 'top-right', 'top-left', 'bottom-right', 'bottom-left'
Config.UIPosition = 'top-left'

-- Key Bindings
-- These use FiveM input mapper parameter IDs (keyboard mappings).
-- See: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
Config.Keys = {
    focusUi = 'LCONTROL', -- Control UI focus
    passItem = 'G',       -- Pass item to nearby player
    inhale = 'SPACE',     -- Inhale the smoking item
    stopSmoking = 'H'     -- Stop smoking and put away the item
}

-- Durability Settings
-- Specifies how much durability (or fuel/liquid/substance) is removed when inhaling or lighting.
-- Minimum should be 1, maximum depends on the item's capacity (e.g., cigarette is 100, vape is 50).
Config.DurabilityRates = {
    cigarette = 5,
    joint = 5,
    cigar = 5,
    vape = 5,
    bong = 5,
    lighter = 10 -- Amount of fuel consumed per each light up
}

-- Effect Duration
-- Duration (in milliseconds) for how long the screen and stat effects last after smoking.
-- Example: 120000 = 2 minutes
Config.EffectDuration = 120000

Config.reliefStress = function(stressRelief)
    TriggerServerEvent('hud:server:RelieveStress', stressRelief)
end
Example effects & durability tuning
-- Each item's effects are fully configurable.
Items.effects = {
    cigarette = {
        stressRelief = 10,
        healthRegen = 1,
        armorRegen = 0,
        speedBoost = 1.0,
        staminaMultiplier = 1.0,
        meleeDamage = 1.0,
        screenFx = false
    },
    joint = {
        stressRelief = 25,
        healthRegen = 2,
        armorRegen = 10,
        speedBoost = 1.0,
        staminaMultiplier = 0.8,
        meleeDamage = 1.2,
        screenFx = "ChopVision" -- e.g. 'ChopVision', 'DrugsMichaelAliensFight'
    },
    cigar = {
        stressRelief = 15,
        healthRegen = 5,
        armorRegen = 0,
        speedBoost = 1.0,
        staminaMultiplier = 1.0,
        meleeDamage = 1.5,
        screenFx = false
    },
}

-- Refillable substances for the vape and bong.
Items.substances = {
    ['grape_eliquid'] = {
        liquid_amount = 50,
        label = 'Grape E-Liquid',
        allowed_devices = 'vape'
    },
    ['weed_bag'] = {
        substance_amount = 20,
        label = 'Weed',
        allowed_devices = 'bong'
    }
}

-- Burn down stages, the prop changes as the item gets used up.
Items.durabilityStages = {
    { stage = 1, name = "Full",      min = 75, max = 100 },
    { stage = 2, name = "Half-Full", min = 50, max = 74 },
    { stage = 3, name = "Short",     min = 25, max = 49 },
    { stage = 4, name = "Stub",      min = 0,  max = 24 },
}

Performance
Our resource is designed to be as performant as possible, using the latest and most advanced features the game has to offer.

  • Client Side:
    • 0.00 ms while idle.
    • 0.05-0.08 ms while active.
  • Server Side:
    • 0.00-0.01 ms.

Store: Click Here
Youtube: Click Here

Code is accessible Partly (Config, function, and item files)
Subscription-based No
Lines (approximately) ~2000
Requirements ox_inventory or qb-inventory
Support Yes
11 Likes

We tested the script on our server with 300+ active players. It works great highly recommended!

11 Likes

Professional as always.

8 Likes

:tada: FIRST WEEK DISCOUNT :tada:

To celebrate the launch of our new smoking system, we are offering a 15% discount on the script. Don’t miss out on this opportunity!

9 Likes

Looks good, great work.

10 Likes

I bought this and I’m very satisfied with it. :heart:

8 Likes

Great script works perfectly!!!

3 Likes

amazing developers!!!

2 Likes

Good Work :heart:

2 Likes

Great Work

2 Likes