Files
2026-03-20 00:13:24 -07:00

673 lines
22 KiB
Lua

Config = {
initialPressure = 330, -- what the bottle starts at
dialMax = 400, -- what the UI face is drawn to
unit = 'bar', -- bar or psi
nuiPos = 'br', -- br , bm ,bl, tl, tr
ServerDebug = false,
keys = {
scba = 'J',
scbaLight = 'K',
scbaPass = 'H',
},
oxygenBarPerSecond = 0.5,
runningDrain = { walk = 1.0, run = 1.15, sprint = 1.35 },
-- Command to automatically add outfits to the outfits.json
addOutfitCommand = "addoutfit",
StrictClothingCheck = false,
-- Do not touch unless you know what you're doing.
audio = {
soundset = "scba",
scba = {
breatheName = "breathe_loop",
breatheIntervalMs = 3000, -- Recommended.
breathRange = 12.0,
networkedBreath = true,
},
pass = {
passFullName = 'pass_full',
idleSeconds = 30, -- time without movement to auto-trip
intervalMs = 6000, -- retrigger cadence for pass sound
range = 25.0, -- PlaySoundFromCoord radius
networked = true, -- let others hear it in range
moveThreshold = 0.06 -- meters to count as “moved”
}
},
light = {
distance = 18.0,
brightness = 0.3,
radius = 10.0,
falloff = 2.0,
hardness = 0.2,
headOffset = vector3(0.0, 0.0, 0.13),
chestOffset = vector3(0.16, 0.03, -0.02),
color = { r = 255, g = 255, b = 240 },
followHead = true, -- if true and mode=head: aim light where the player looks
syncedHeadLight = true, -- syncs where the player is aiming for other players.
},
smoke = {
enabled = true,
tickMs = 500,
respectSafeZones = true,
-- Simpler Boost consumption
boostConsumption = 0.50, -- Extra SCBA drain in HOT/WARM smoke (only when protected). boostConsumption * (tickMs/1000). Example: 0.5 & 500ms → 0.25/tick (~0.5/sec).
coughAnim = { dict = 'timetable@gardener@smoking_joint', name = 'idle_cough', timeMs = 3100, flag = 49 },
-- per-tier extra drain (bar/sec). if present, overrides boostConsumption.
tierBoost = { haze = 0.10, warm = 0.30, hot = 0.50 },
tiers = {
hot = { radius = 5.0, dps = 15.0, lungDps = 6.5, cough = true, coughCooldownMs = 3500},
warm = { radius = 12.0, dps = 5.0, lungDps = 3.0, cough = true, coughCooldownMs = 6000},
haze = { radius = 20.0, cough = true, coughCooldownMs = 8000, notify = true, notifyText = 'Your throat burns. The air tastes like smoke.' }
},
intensity = {
rings = {
{ radius = 4.0, weight = 1.0 },
{ radius = 8.0, weight = 0.6 },
{ radius = 14.0, weight = 0.3 }
},
thresholds = { haze = 0.25, warm = 1.0, hot = 2.0 },
occlusionPenalty = 0.5, -- LOS blocked → score *= this
minFireCount = 1 -- if total fires in 14m < this, treat as none
}
},
refillPoints = {
enabled = true,
allowCommand = true,
commaneName = "scbarefill",
radius = 2.0,
locations = {
vec3(202.72, -1645.52, 29.8)
}
},
ScbaOffsets = {
radius = 1.4,
VehicleSettings = {
[`firetruk`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`20ramcsquad`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`20ramambo`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdbatt`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdxt6700`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdcab`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdtiller`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdxt6700`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`enforcer`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`EnforcerEng`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`enforcerf`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`enladder`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`f250ambo`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fd14tahoe`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fireburb`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`firef350`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`Commandcenterr`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`ram20pov`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`rescue1`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`walkin`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`walkinarrow`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`commandtruckr`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`arrowxt1`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`21fireladder`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`16ramambo`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`16ramcsquad`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`23sierrafire`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`24ramambo`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`heavypump`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`heavytank`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`heavywild`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`heavyrescue`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`202346gmc`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`e350vanb`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`e450ambo`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`f550csquad`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`FIRE03sierra`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fire22exp`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fire22exp`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fire23f150xlt`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fire2014silvc`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`firef250`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`firegmc23sirhd`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`firetahoe`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`fordfire`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`ftanker`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdbat`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdbug`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`LACoFDDurango`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdeng`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdfoam`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdpat`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdrs`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdsup`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdt3`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdusartrk`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdusartrlr`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lacofdutil`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lsfd20fpiu`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`lafdtahoe`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`safe33f`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`ramfire`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`x3bearcat`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`arrowxt1`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`25fpiupov`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`24sub`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`engine51`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`ra51`] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[` `] = {
offsets = {
{ x = 1.15, y = -2.45, z = 0.55 },
{ x = -1.15, y = -2.45, z = 0.55 },
}
},
[`britishladder`] = {
offsets = {
{ x = -0.6, y = -3.8, z = 0.5 },
}
},
[`rearmount`] = {
offsets = {
{ x = -1.29, y = -1.83, z = 0.48 },
}
},
}
},
safeZones = {
{ coords = vector3(13.31, -1103.53, 29.8), radius = 30.0}, -- ammunation example.
},
safeProps = {
{ model = 'prop_beach_fire', radius = 5.0 },
},
safeZoneCheckMs = 500,
safePropScanRadius = 35.0,
debugSafeZones = false, -- For PolyZones only
EnablePositioningCommand = false,
PositioningControls = {
down = 207, -- Page Up
up = 208, -- Page Down
backwards = 173, -- Arrow Down
forwards = 172, -- Arrow Up
left = 174, -- Arrow Left
right = 175, -- Arrow Right
enter = 191, -- Enter Key
},
peds = {
male = {
model = `mp_m_freemode_01`,
scbaComponentIds = {8},
components = {},
props = {}
},
female = {
model = `mp_f_freemode_01`,
scbaComponentIds = {8},
components = {},
props = {}
},
firemanNpc = {
model = `s_m_y_fireman_01`,
scbaComponent = 8,
scbaDrawableOff = 1,
scbaDrawableOn = 2,
scbaTexture = 0
}
},
JobCheck = {
EnablePermissions = false, -- If set to false, all below job checks will be disabled, even if they are enabled in the config.lua
AcePermissions = {
Enabled = false,
Permission = "usescba"
},
ESX = {
Enabled = false,
CheckJob = {
Enabled = false, -- Enable this to use ESX job check
Jobs = {"fireman"} -- A user can have any of the following jobs, allowing you to add multiple
}
},
-- We've added vRP integration. All you need to do is enable it below. Then, configure if you wish to check for groups or permissions, or even both
vRP = {
Enabled = false,
CheckGroup = {
Enabled = false, -- Enable this to use vRP group check
Groups = {"fireman"}, -- A user can have any of the following groups, meaning you can add different jobs
},
CheckPermission = {
Enabled = false, -- Enable this to use vRP permission check
Permissions = {"fireman.usescba"} -- A user can have any of the following permissions, allowing you to add multiple
},
},
-- We've added QBCore integration. All you need to do is enable it below. Then, configure if you wish to check for jobs or permissions, or even both
QBCore = {
Enabled = false,
CheckJob = {
Enabled = false, -- Enable this to use QBCore job check
Jobs = {"fireman"}, -- A user can have any of the following jobs, meaning you can add different jobs
},
CheckPermission = {
Enabled = false, -- Enable this to use QBCore permission check
Permissions = {"fireman.usescba"}, -- A user can have any of the following permissions, allowing you to add multiple
},
},
-- We've added QBX integration. All you need to do is enable it below. Then, configure if you wish to check for jobs or permissions, or even both
QBX = {
Enabled = false,
CheckJob = {
Enabled = false, -- Enable this to use QBX job check
Jobs = {"fireman"}, -- A user can have any of the following jobs, meaning you can add different jobs
}
},
},
Inventory = {
scbaItemName = "scba",
ropeItemName = "scbarope",
oxInventory = false,
coreInventory = false,
ESX = false,
vRP = false,
qbCore = false,
},
Notifications = {
Enabled = true,
HelpTextSound = false,
Framework = {
QBCore = false,
QBX = false,
ESX = false,
vRP = false,
okok = false,
}
},
Translations = {
noPermission = "You do not have access to use this!",
noItem = "You do not have the required item.",
notWearingScba = "You are not wearing a SCBA.",
scbaEnabled = "SCBA Enabled",
scbaDisabled = "SCBA Disabled",
alreadyEquipped = "SCBA already equipped!",
turnoff = "Turn off SCBA air first.",
tankFull = "SCBA tank is already full",
tankRefilled = "SCBA tank refilled.",
lightOn = "SCBA Light: ON",
lightOff = "SCBA Light: OFF",
smokeDamageOn = "Smoke damage: enabled",
smokeDamageOff = "Smoke damage: disabled",
nearby = "No player nearby.",
eupOnly = "SCBA can only be worn on freemode peds.",
scbaRefill = "Press E to refill SCBA",
scbaSwapBottle = "Press E to replace air bottle",
scbaRetrieve = "Press E to retrieve SCBA",
scbaRemove = "Press G to remove SCBA",
ropeAttach = '~INPUT_SPRINT~ + ~INPUT_CONTEXT~ Attach Rescue Rope',
ropeDetach = '~INPUT_SPRINT~ + ~INPUT_CONTEXT~ Detach Rescue Rope',
passKeyMapping = "Toggle Pass",
scbaKeyMapping = "Toggle SCBA Air",
lightmodeKeyMapping = "Switch light mode",
lightKeyMapping = "Toggle SCBA Light",
shakeToReset = "~INPUT_CONTEXT~ Shake to reset PASS alarm",
},
}