Nitrous
t1ger_tuning/shared/nitrous.lua
return {
Enable = true, -- enable/disable the nitrous feature entirely
RequireTurbo = false, -- if true, vehicle needs turbo installed to install a nitrous kit
MaxSize = 12, -- max lb size of a nitrous kit, 1 lb = 10 shots. Min size is always 1lb
UnitPrice = 1500, -- price per lb — e.g. a 4lb kit costs 4 x UnitPrice
DefaultThreshold = 5, -- seconds — how long burst/purge can be held before any burst kit is installed
DefaultPurgeColor = {r = 1.0, g = 1.0, b = 1.0}, -- default purge color.
Weight = "lb", -- unit string used in menus
-- keybind settings for NOS purge and burst
Keybinds = {
purge = {
description = "Use NOS Purge",
defaultKey = "RCONTROL",
},
burst = {
description = "Use NOS Burst",
defaultKey = "LSHIFT",
},
},
-- icons used across nitrous menus
MenuIcons = {
unitPrice = "dollar-sign",
selectSize = "bottle-droplet",
currentNosKit = "fire-flame-simple",
nitrousKit = "bottle-droplet",
burstKit = "gauge-high",
},
-- nitrous kit and burst kit installation settings
Install = {
NitrousKit = {
prop = "v_ind_cs_gascanister",
anim = { dict = "anim@heists@box_carry@", name = "idle", blendIn = 4.0, blendOut = 1.0, duration = -1, flags = 49, boneId = 28422 },
offset = { pos = vector3(0.1, -0.1, -0.05), rot = vector3(-45.0, 90.0, 0.0) },
target = { icon = "fa-solid fa-screwdriver", label = "Install Nitrous Kit", distance = 5.0 },
resetShots = true, -- installing a new kit resets shots to 0, forcing a refill
},
BurstKit = {
prop = "imp_prop_impexp_differential_01a",
anim = { dict = "anim@heists@humane_labs@finale@keycards", name = "ped_a_enter_loop", blendIn = 4.0, blendOut = 1.0, duration = -1, flags = 49, boneId = 60309 },
offset = { pos = vector3(0.0, 0.0, 0.0), rot = vector3(0.0, -90.0, 0.0) },
target = { icon = "fa-solid fa-screwdriver", label = "Install Burst Kit", distance = 5.0 },
},
},
-- default burst kit, always shown first, uses DefaultThreshold seconds
DefaultBurst = {
label = "Stock Burst Kit",
icon = "gauge-simple",
price = 1000, -- free when installing the nitrous kit for the first time
description = "Stock Threshold of 5 seconds",
},
-- burst upgrade kits — raise the threshold seconds for burst/purge
BurstKits = {
[1] = { label = "Street Burst Kit", icon = "gauge", threshold = 7, price = 6500, description = "Threshold upgrade to 7 seconds" },
[2] = { label = "Sports Burst Kit", icon = "gauge", threshold = 10, price = 12500, description = "Threshold upgrade to 10 seconds" },
[3] = { label = "Race Burst Kit", icon = "gauge", threshold = 13, price = 27500, description = "Threshold upgrade to 13 seconds" },
},
-- nitrous refill via bottle item
Bottle = {
skillcheck = { enable = true, difficulty = { "easy", "easy" }, inputs = { "w", "a", "s", "d" } },
duration = 3000, -- ms to load nitrous from bottle into kit
label = "Filling Nitrous",
anim = { dict = "mini@repair", name = "fixing_a_player", blendIn = 8.0, blendOut = -8.0, flag = 49 },
},
-- purge dye injection settings
DyeInstall = {
target = { icon = "fa-solid fa-syringe", label = "Inject Purge Dye", distance = 5.0 },
duration = 3000, -- ms to install the dye
},
-- efficiency percentages for burst, based on purge behavior
Efficiency = {
noPurge = 30, -- % efficiency if burst is used without purging
windowExpiry = 50, -- % efficiency once the efficiency window expires
purge = {
min = 70, -- % at 1-second purge
max = 100, -- % at full purge (up to burst kit threshold)
},
},
-- purge mechanics and notifications
Purge = {
ptfx_size = 0.35, -- size of purge particle effects
window = 2, -- minutes the efficiency window lasts for burst
cooldown = 1, -- minutes after window expires before a new one can start
gasLeak = {
duration = 1000, -- ms the leak ptfx plays
chance = 50, -- % chance of a leak occurring during cooldown purge
remove = { min = 1, max = 50 }, -- % of shots lost on leak
},
notify = {
showHeldDuration = true, -- notify every second while purge is held
showConsumption = true, -- notify shots consumed on release
showEfficiency = true, -- notify efficiency % gained on release
},
},
-- burst mechanics and notifications
Burst = {
cooldown = true, -- cooldown equal to how long burst was held
baseTorqueMultiplier = 1.8, -- multiplied with (maxSpeed / currentSpeed) — never go below 1.0
requiredEngineHealth = 500.0, -- 0.0-1000.0, minimum engine health to activate burst
screenShakeIntensity = 0.40, -- camera shake amplitude while bursting
engineDamage = {
noPurge = { chance = 70, engineHealth = 199.9 }, -- bursting without purging
windowExpiry = { chance = 25, engineHealth = 199.9 }, -- bursting after window expired
threshold = { chance = 90, engineHealth = 199.9 }, -- held past burst kit threshold
},
notify = {
showHeldDuration = true, -- notify every second while burst is held
showRemainingShots = true, -- notify remaining shots after use
},
},
-- points where tuners can refill empty bottles into 10-shot bottles, finite stock resets on restart
Refill = {
distance = 2.0,
blip = { name = "NOS Refill", sprite = 436, display = 4, scale = 0.65, color = 38 },
skillcheck = { enable = false, difficulty = { "easy", "easy" }, inputs = { "w", "a", "s", "d" } },
duration = 3000, -- ms to transform empty bottle into a nos bottle
label = "Refilling NOS Bottle",
anim = { dict = "mini@repair", name = "fixing_a_player", blendIn = 8.0, blendOut = -8.0, flag = 49 },
points = {
[1] = { pos = vector3(1697.86, -1696.32, 112.46), blip = true, size = 20 },
[2] = { pos = vector3(251.15, -2932.52, 5.75), blip = true, size = 20 },
[3] = { pos = vector3(1014.79, -2529.23, 28.30), blip = true, size = 20 },
[4] = { pos = vector3(1119.73, -1625.65, 34.87), blip = true, size = 20 },
[5] = { pos = vector3(-104.67, -2686.20, 5.99), blip = true, size = 20 },
[6] = { pos = vector3(-424.44, -2265.67, 7.59), blip = true, size = 20 },
},
},
}Last updated