Configuration Reference

Every oxide-fire setting, what it does and its default — settings live in the database and are edited in game with /fire settings, and fire, hose and tool tuning stays in the config files.

Every setting in oxide-fire, what it does, and what it is set to out of the box.

Where settings actually live

This is the most important thing to understand before you change anything.

oxide-fire keeps most of its settings in a database table, not in its config files.

  • On the very first start, the values in shared/config.lua and shared/config/*.lua are copied into the shared oxide_settings table.
  • From then on, the database is what the server reads for those settings.
  • You change them in game with /fire settings. Changes save to the database and take effect straight away. No restart is needed, with the few exceptions noted below.
  • Each setting has a Reset to default button. It puts back the value your config file had when oxide-fire last started.

What that means in practice:

  1. Editing a config file on a server that has already started once does not change a setting that lives in the database. To use a value from the file, edit and save the file, restart oxide-fire (or the whole server), then press Reset to default on that setting in /fire settings.
  2. When you update oxide-fire, settings that are new in the update are copied from the new config files automatically. Your existing settings keep your values.
  3. If you want to set things up before the server ever starts, editing the config files works fine. That is what they are for.

Opening the editor:

/fire settings

Admin only. The editor has a search box, a Basic and an Advanced tier (Advanced shows the settings most servers never need to touch), and three categories in the sidebar:

CategoryGroups
CoreGeneral, Duty & Payroll, Stations, Apparatus
FiresFires & Calls, Safety, Station Life
IntegrationFramework Compat

Settings that stay in the config files

Some settings are not in the editor and never go into the database: how fires burn, the hose, the tools, the apparatus classes, hydrants, model swaps and the sounds and animations. You change those in the config files, then restart oxide-fire. They are listed in Settings that stay in the config files at the bottom of this page.

What is not a setting at all

Departments, stations, interaction points, grades, apparatus bays, apparatus, uniforms, gear-room loadouts, radio channels, incident sites and wildfire zones are not settings. You build them in game with /fire admin, and they are stored in their own database tables. See Admin.

Core

General

SettingDefaultWhat it does
Multi-department enrollmentOffLets one character belong to several fire departments at once, each with its own grade and badge, working whichever department's job they have active. Off: a character belongs to one department, and hiring somebody who already works for another department is refused.

Config key: Config.AllowMultiDepartment in shared/config/department.lua.

Duty & Payroll

SettingDefaultWhat it does
Require station clock-inOnFirefighters must clock in at a station's Clock In point. Off: /fire duty toggles duty from anywhere, and the shift counts against the department's first station.
Salary interval900000 ms (15 min)How often an on-duty firefighter is paid. Allowed: 1 minute to 2 hours. Applies from each firefighter's next clock-in.
Use banking accountsOnDepartment treasuries are real job bank accounts, which needs a banking resource that o-link supports (for example oxide-banking, qb-banking, Renewed-Banking). Off: oxide-fire keeps the balance itself.
Starting treasury balance30000What a department's bank account is created with, the first time the department loads. Only used with Use banking accounts on.
Treasury-funded salariesOnSalaries come out of the department treasury. When the treasury cannot cover one, it is recorded as back pay for a boss to settle. Off: salaries are paid directly and never touch the treasury.
Owed salary expiry (advanced)30 daysBack pay nobody settled is dropped when the server starts, once it is this old. 0 keeps it forever.
Boss menu → Host in oxide-tabletOnWhen oxide-tablet is running, the boss desktop opens as a "Fire Command" app inside the tablet, both from the station's Management point and from the tablet's home screen. Off, or without oxide-tablet: the boss desktop opens in its own window from the Management point.

About the two salary modes. With Treasury-funded salaries on, a department that runs out of money stops paying, but nothing is lost. Each unpaid salary is recorded as back pay, the firefighter is told (at most once a minute), and a boss sees the total in the Payroll app and can pay it once the treasury has money again.

Without a banking resource, turn off Use banking accounts. Otherwise the treasury reads 0 and every payment from it fails. With it off, a new department's balance starts at 0, so fund it from the admin panel's Overview screen.

Config keys: Config.RequireStationClockIn, Config.SalaryInterval, Config.UseBankingAccount, Config.BankingAccountStartBalance, Config.PlayerManagement, Config.UnpaidPayrollDecayDays and Config.Boss in shared/config/department.lua.

Stations

SettingDefaultWhat it does
Locker slots40Slots in each firefighter's personal locker. Allowed: 1 to 200.
Locker max weight100000How much each locker holds. Allowed: 1000 to 1000000.
Station zone radius1.0 mThe default size of a station or bay interaction point. A size set while placing a point overrides this.
Station zone distance1.5 mHow close a player must be for a station option to be usable.
Loadout item limit (advanced)50The most items one gear-room loadout can hold.
Approved gear itemsscba, radio, the fire extinguisher and the hatchet (both spellings of each weapon), 1 of eachThe items a boss may put in a gear-room loadout, and Most per entry, the most of each one loadout entry may hold. Admins can stock any item. Add items with the picker. Loadouts already saved keep their items.

Lockers are per character, per station. A locker that has already been opened since the server started keeps its old size until the next restart.

Config keys: Config.LockerSlots, Config.LockerMaxWeight, Config.StationZoneRadius, Config.StationZoneDistance and Config.MaxLoadoutItems in shared/config/department.lua.

Apparatus

SettingDefaultWhat it does
Apparatus catalog2 entriesThe fire vehicles a boss can buy from the treasury, and the list admins pick from when adding units. Up to 50 entries.
Units per purchase (advanced)10The most units of one catalog entry a boss or admin can add at once. Allowed: 1 to 50.
Refill on returnOnA unit put back at a bay is refilled with water and foam. Off: it keeps whatever it came back with.

Apparatus catalog

Each entry has:

FieldWhat it is
ModelThe vehicle's spawn name
LabelThe name players see
ClassEngine, Ladder, Rescue, Chief or Brush. Sets the tanks, hose outlets and equipment compartment, see Apparatus classes
TypeCar, Bike, Quad, Boat, Helicopter or Plane. What the model really is: units spawn as this type, so a motorbike set to Car (or the other way round) spawns broken
CostWhat the boss pays from the treasury per unit. Also the unit's replacement cost

It ships with:

ModelLabelClassTypeCost
firetrukEngineEngineCar60000
lguardChief CarChiefCar30000

Add entries for the fire vehicles installed on your server. An entry can also carry its own tank, foam and outlets numbers instead of its class's. Those three can only be written in the config file:

shared/config/apparatus.lua
Config.ApparatusCatalog = {
    { model = 'firetruk', label = 'Engine', class = 'engine', type = 'car', cost = 60000 },
    { model = 'lguard', label = 'Chief Car', class = 'chief', type = 'car', cost = 30000 },
    -- An example with its own tank sizes (litres) and outlets:
    -- { model = 'my_engine', label = 'Engine 7', class = 'engine', type = 'car', cost = 75000, tank = 4000, foam = 300, outlets = 4 },
}

After editing the file on a running server, restart oxide-fire and press Reset to default on Apparatus catalog. That replaces the whole saved list with the file's list.

Config keys: Config.ApparatusCatalog, Config.MaxApparatusPurchase and Config.RefillOnReturn in shared/config/apparatus.lua.

Fires

Fires & Calls

SettingDefaultWhat it does
Fire difficultyStandardCasual: fires go out fast and stay out. Standard: two firefighters clear a typical call in 5 to 10 minutes, and knocked-down fire smoulders until it is soaked or opened up with an axe. Realistic: tougher fires that spread faster, reignite more and need the axe in buildings. Applies to fires started after the change. Full comparison in Features.
Call generatorsee belowFire calls raised on their own at the incident sites and wildfire zones you set up in /fire admin.
Game feedbacksee belowPoints as burning spots go out, deductions for mistakes, and how far the fire is from out.

Call generator

FieldDefaultWhat it does
Generate callsOnTurns the generator on or off. The admin panel's Call Generator screen has the same switch.
Shortest wait10 minThe least time between calls.
Longest wait20 minThe most time between calls.
Firefighters needed2No calls start with fewer firefighters around.
Count only on-duty firefightersOnOnly clocked-in firefighters count toward Firefighters needed. Off: everyone holding a fire department job counts.
Calls at once2The generator waits while this many calls are burning. Allowed: 1 to 6.
Call mixvehicle 4, brush 3, structure 3How often each type comes up compared to the others. 0 turns a type off. A type with no enabled incident sites (or wildfire zones, for brush) is skipped.

Game feedback

Game-style feedback while fighting a fire: points pop up as burning spots go out, mistakes take points away, and a card on the right shows the player's points and how far the fire is from out. See Features for what each player sees.

Points are feedback only. They are never paid and never saved. Salaries stay as they are.

FieldDefaultWhat it does
Points and progressOnOff: no points, pop-ups, fire card, bars over the flames or their sounds. Firefighting itself works the same either way.
SoundsOnA chime for points, a buzz for mistakes and a tone when a fire is out.
Pointssee belowPoints for each event. Negative numbers take points away. 0 turns one off. Allowed: -100 to 100.
Assist window10000 msHow recently a firefighter must have sprayed a spot to get an assist when someone else puts it out.
Wrong agent below0.5Water counts as the wrong agent on a fire class where it works less well than this (1 is normal). With the shipped classes that is fuel fires (class B).
Mistake cooldown10000 msThe same mistake costs points at most once in this long.

Points

FieldDefaultWhen
Put out a burning spot10Your water, foam, extinguisher or cannon puts a burning spot out.
Assist5You sprayed a spot within the assist window and someone else put it out.
Soak a smouldering spot5Your water finishes soaking a smouldering spot.
Overhaul a smouldering spot5Your axe finishes a smouldering spot.
Fire out25The fire is out. Everyone who scored points on it gets this.
A spot flares up again-5A spot you put out flares up again because nobody soaked or overhauled it.
Water on a fuel fire-3Plain water on a fire it barely touches. Switch to foam.
Spraying a player-5Your stream hits another player.
Breathing smoke without a mask-5You breathe smoke with your SCBA mask off, while working a fire.

Config keys: Config.FireDifficulty, Config.FireCalls and Config.FireFeedback in shared/config.lua.

Safety

Breathing air (SCBA)

FieldDefaultWhat it does
SCBA itemscbaThe inventory item that puts the mask on and takes it off. Leave it empty to need no item.
Air per cylinderCasual 1800 s, Standard 900 s, Realistic 600 sSeconds of air in a full cylinder, at each fire difficulty. Allowed: 60 to 3600 seconds.
Head-out warning50%Air left when the firefighter is told to head out.
Low-air alarm33%Air left when the alarm starts. Everyone nearby hears it. Must be lower than Head-out warning.
Refill time6000 msHow long a refill at a gear room or an apparatus takes.
Apparatus refill reach6.0 mHow close to the apparatus a refill works.
Other refill vehiclesfiretrukVehicles outside the department fleet that also carry spare cylinders. Fleet engines, ladders and rescues always do.
Face piecesee belowThe clothing piece put on with the mask and taken off with it.

Face piece

FieldDefaultWhat it does
Component1The clothing slot. 1 is masks.
Drawable175Which mask in that slot.
Texture0Which colour of that mask.
Female drawable-1The mask for female characters. -1 uses Drawable.
Female texture-1The colour for female characters. -1 uses Texture.

Set the face piece to a mask your clothing pack actually has. If you use a clothing script that swaps in a full SCBA outfit, see the oxide-fire:client:scbaMask event in Exports.

Renaming the SCBA item takes effect straight away. The old item name stays usable until the next restart, but no longer does anything. A change to Air per cylinder reaches each firefighter's cylinder at their next refill.

Smoke

FieldDefaultWhat it does
Smoke hurtsOnOff: smoke is only seen, never breathed.
Damage4 hp/sHealth lost per second in the thickest smoke. Thinner smoke costs less. With oxide-medical running this is not used: the smoke goes to it as smoke inhalation, tuned by its Config.Exposure.
Held breath3 sSeconds in smoke before it starts to hurt.
Smoke around flames4.0 mHow close to a burning or smouldering point counts as smoke. 0 turns off the smoke around flames.
Thickness around flames0.5How thick that smoke is, from 0.05 (a haze) to 1 (the thickest). Damage is multiplied by this.

Rescue carries

FieldDefaultWhat it does
Carry and dragOnLets on-duty firefighters carry and drag players.
Casualties onlyOnOnly players who are down (or dead) can be picked up. Off: any player.
Reach2.5 mHow close the casualty must be.
FieldDefaultWhat it does
People insideOnOff: structure fires never have anyone inside.
Chance70%How often a structure fire at a site with victim spots has someone inside.
How manyat least 1, at most 2How many casualties. Never more than the site has victim spots.
Time to get them outCasual 900 s, Standard 600 s, Realistic 360 sHow long a casualty lasts inside, at each fire difficulty.
Safe distance20 mHow far from the fire, and out of its smoke, a casualty must be set down to count as rescued.
Wait for a medic5 minHow long a rescued casualty waits for a medic before an ambulance takes them away.
Medic jobsambulance, emsJobs that get the rescue alert and can take over a casualty. Use your EMS job names.
Casualty models10 ped modelsThe people casualties are picked from. Needs at least one.

The default casualty models are a_m_m_business_01, a_f_y_business_01, a_m_y_hipster_01, a_f_m_bevhills_01, a_m_m_skater_01, a_f_y_tourist_01, a_m_y_genstreet_01, a_f_m_downtown_01, a_m_o_genstreet_01 and a_f_o_genstreet_01.

Config keys: Config.Scba, Config.Smoke, Config.Carry and Config.Rescue in shared/config/safety.lua.

Station Life

Station

FieldDefaultWhat it does
Station toneOnA new call rings the bell at every station.
Bell heard within60 mHow far from a station the bell can be heard.
Rings3How many times the bell rings.
Page-outOnOn-duty firefighters get a phone notification for every new call, when a phone resource is running.
Rig checkssee belowPay for checking over a unit parked at its bay.

Rig checks

FieldDefaultWhat it does
Rig checksOnTurns rig checks on or off.
Pay150Paid per check. From the department treasury when Treasury-funded salaries is on.
Time to check20000 msHow long a check takes.
Cooldown30 minHow long before the same unit, or the same firefighter, can be paid for another check.
Bay distance30 mHow close to its home bay the unit must be parked.

Lightning fires

FieldDefaultWhat it does
Lightning starts firesOnA lightning strike from oxide-weather landing inside an enabled wildfire zone can start a brush fire call.
Chance25%The chance a strike inside a wildfire zone starts a fire.
Follow the call generatorOnOnly start a fire when there are enough firefighters around and room for another call, using the Call generator's Firefighters needed and Calls at once.

Config keys: Config.Station and Config.Lightning in shared/config/station.lua.

Integration

Framework Compat (advanced)

Each block only applies when that framework or resource is running.

ESX

Job table sync

FieldDefaultWhat it does
EnabledOffWrites your fire departments and grades into ESX's own jobs and job_grades tables, so xPlayer.job works for your department names. This writes to your framework's tables, so turn it on deliberately.
Sync on startOnSync when oxide-fire starts.
Sync on changeOnSync whenever a department or grade changes.
Zero framework salaryOnWrites 0 as the ESX grade salary. oxide-fire pays its own duty salaries, so leaving an ESX salary in place would pay firefighters twice.
Job typefireWritten to the jobs.type column, if your jobs table has one.

Changes to job sync fully apply after a restart of oxide-fire. See the ESX guide.

g-multijob

FieldDefaultWhat it does
Mirror employmentOnMirrors hires, dismissals and promotions into g-multijob's menu. Does nothing unless g-multijob is installed and Multi-department enrollment (under General) is on.

QBCore and Qbox

No settings. Both work through o-link with nothing to switch on.

Config key: Config.Compatibility in shared/config/department.lua.

Settings that stay in the config files

These settings are not in /fire settings and are never stored in the database. The config file is always what the server uses.

To change one:

Open the file named in the table below in a text editor.
Change the value and save the file.
Restart oxide-fire (type restart oxide-fire in your server console), or restart the whole server.
SettingFileWhat it controls
Config.Fireshared/config.luaHow fires are drawn, their limits, and how they spread
Config.FirePresetsshared/config.luaThe numbers behind the Casual, Standard and Realistic difficulties
Config.Callsshared/config.luaCall codes, sizes, wreck models, how long calls last, and the alert blip
Config.Toolsshared/config.luaThe axe, the fire extinguisher and the water cannon
Config.Apparatusshared/config.luaHose outlet positions on known models, and the defaults for other vehicles
Config.Hydrantsshared/config.luaWhich props count as hydrants, and where lines connect to them
Config.Supplyshared/config.luaSupply line length and refill rate
Config.Hoseshared/config.luaAttack line length, patterns and keys
Config.HudLayoutshared/config.luaWhere the attack line HUD, the SCBA air ring and the fire card sit on screen
Config.UseHudAccentshared/config.luaWhether Fire's on-screen panels use the server's accent colour from Oxide HUD
Config.ModelSwapsshared/config.luaReplacing a model your game build does not have
Config.ModelHints, Config.SettingsCommandshared/config.lua, shared/config/department.luaWording of model warnings. Leave these alone
Config.ApparatusClassesshared/config/apparatus.luaTanks, outlets, spare air and compartments for each apparatus class
Config.SafetyFxshared/config/safety.luaSCBA, smoke, carry and casualty animations and sounds
Config.StationFxshared/config/station.luaThe station bell sound and the rig-check animation

Times are in milliseconds (1000 = 1 second) and distances in metres, unless noted.

Config.Fire

SettingDefaultWhat it does
renderDistance300.0Players load a fire within this distance.
flameDistance150.0Flames are drawn within this distance. Beyond it, only the smoke column shows.
nativeFireDistance60.0The game's own fire, the part that burns you, is placed within this distance.
maxNodesPerIncident35The most burning points one fire can have. Also the most fire points a structure site can have.
maxNodesTotal70The most burning points across the whole server.
maxIncidents6The most fires burning at once.
tickMs1000How often the server heals, burns and spreads fires.
flushMs250How often fire changes are sent to nearby players.
nodeSpacing1.6The distance between points of a new fire.
hitRadius / hitHeight1.2 / 2.5How close water must land to a point to reach it.
maxHp100.0A point's strength before the difficulty's multiplier.
spreadsee codeSpread rules: which points spread, how far, how much wind steers it, how much rain slows it, and how far a structure fire reaches between its fire points.
classesA, B, vehicle, brushHow each class reacts to water and foam, how strong it is, whether it spreads, and how long brush burns. See Features.
smoulder / smokeparticle effectsThe smoke over smouldering points, and the smoke column.
hotspotsee belowThe marker on each smouldering point.
nativeFiretruePlaces the game's own fire under each point, so standing in it burns.
respawnMs1500A point whose game fire went out is lit again after this.
cancelMatchingFireEventstrueStops the game copying these fires between players. Every player draws the fire themselves. Leave this on.
shared/config.lua
Config.Fire = {
    renderDistance = 300.0,
    flameDistance = 150.0,
    nativeFireDistance = 60.0,
    maxNodesPerIncident = 35,
    maxNodesTotal = 70,
    maxIncidents = 6,
    -- ...
    spread = {
        enabled = true,
        minHp = 0.6,            -- only points above this share of their strength spread
        minDistance = 1.8,
        maxDistance = 3.2,
        windBias = 0.6,         -- how strongly wind steers the spread (0 = not at all)
        windSpeed = 3.0,        -- m/s used when no weather resource reports wind
        windChance = 0.1,
        rainSlow = 0.7,         -- heavy rain cuts the spread chance by this share
        structureReach = 6.0,   -- a structure fire spreads to unburnt fire points this close
    },
    -- ...
}

Raising the limits costs frame rate. About 35 burning points cost roughly 6% of a player's frame rate, and the game keeps about 128 fires per player.

Config.Fire.hotspot

Each smouldering point is marked with burnt ash on the ground, embers and a faint orange glow, so firefighters can see where to soak it or pull it apart with an axe (see Features). Each player's game draws the marker from the fire it already knows about, so nothing extra is sent over the network, and nothing in it is solid.

SettingDefaultWhat it does
enabledtruefalse turns the marker off. Smouldering points then show only their smoke.
distance60.0Points are marked within this distance of the player.
maxMarkers16Each player marks at most this many points, the nearest first.
decalsgrey ash, then a dark burnt patchThe ash on the ground. Each entry is a decal type from the game, its size in metres and its alpha (0 to 1). Not drawn on burning cars.
embersent_amb_fbi_cinderThe embers rising from the point.
gloworange, 2.2 mThe glow over the ash: color (red, green, blue), range, intensity, height above the ground, and the distance within which it shows.
propfalseA model to lay on each point as well, such as a pile of debris. It is never solid. false: none.
soakedfire_extinguish, 2.5 sThe steam when a point is soaked. ms is how long it steams before the marker goes.
overhauledent_dst_wood_chunkyThe debris thrown up when a point is pulled apart with an axe. embersScale is how much the embers flare, and ms how long.
shared/config.lua
Config.Fire.hotspot = {
    enabled = true,
    distance = 60.0,
    maxMarkers = 16,
    decals = {
        { type = 4421, size = 1.8, alpha = 0.85 },
        { type = 4425, size = 1.1, alpha = 0.95 },
    },
    embers = { asset = 'core', name = 'ent_amb_fbi_cinder', scale = 0.8 },
    glow = { color = { 255, 96, 24 }, range = 2.2, intensity = 2.5, height = 0.3, distance = 40.0 },
    prop = false,
    soaked = { asset = 'core', name = 'fire_extinguish', scale = 1.0, ms = 2500 },
    overhauled = { asset = 'core', name = 'ent_dst_wood_chunky', scale = 1.2, embersScale = 1.8, ms = 1500 },
}

Config.FirePresets

The numbers behind each difficulty. The difficulty itself is picked in /fire settings.

SettingWhat it does
nodeHpA point's strength, as a multiple of Config.Fire.maxHp
damageHow hard water, foam, extinguishers and the cannon hit
regenA point heals perSecond once delayMs have passed since it was last hit
spreadEvery intervalMs, each healthy point spreads with this chance
smoulderfalse: a knocked-down point is simply out. Otherwise: soak (water needed to put it out), reigniteMs and reigniteChance (how often it may flare up), reigniteHp (how strong it comes back), burnoutMs (when it goes out on its own), and deepStructure (soaked points inside buildings still need the axe)
overhaulMsHow long the axe takes

The default values are in the difficulty table in Features.

Config.Calls

SettingDefaultWhat it does
vehicle.code'10-73'The vehicle fire alert code.
vehicle.nodes5Burning points on the car.
vehicle.modelsemperor2, tornado3, tornado4, voodoo2, rebelThe wrecks picked from. The first one is also the preview when you place a vehicle site.
vehicle.wreckMs300000 (5 min)How long the burnt-out car stays after the fire is out.
brush.code'10-74'The brush fire alert code.
brush.nodes{ 6, 10 }Between 6 and 10 burning points.
brush.spacing2.5Distance between them.
structure.code'10-70'The structure fire alert code.
structure.startShare0.5The share of the building's fire points that start burning.
expireMs1800000 (30 min)A call nobody puts out ends on its own after this.
alertExpireMinutes30How long the dispatch alert lasts.
priority1The alert priority.
blipsprite 436, colour 1, scale 1.0The alert's map blip.

Config.Tools

SettingDefaultWhat it does
overhaul.weaponsWEAPON_HATCHET, WEAPON_BATTLEAXE, WEAPON_STONE_HATCHETWeapons that work as an axe on smouldering points.
overhaul.reach2.5How close to a smouldering point the axe works.
overhaul.swingsground_attack_0 / small_melee_wpn_long_range_0 from melee@small_wpn@streamed_coreThe axe swing for a point on the ground (ground) and one at waist height or higher (high).
overhaul.groundBelow0.6A point lower than this many metres above the player's feet gets the ground swing.
overhaul.key38 (E)The key that starts pulling a point apart.
extinguisher.weaponWEAPON_FIREEXTINGUISHERThe extinguisher weapon.
extinguisher.range / halfAngle8.0 / 35.0How far and how wide the extinguisher reaches.
extinguisher.damagePerSecond8.0How fast it puts out each point in its cone, per second. Weaker than an attack line on purpose.
cannon.modelsfiretrukVehicles whose water cannon puts out fires.
cannon.controls69, 70The vehicle attack controls that fire the cannon.
cannon.range45.0How far the cannon reaches.
cannon.damagePerReport15.0How hard the cannon hits each point it reaches, twice a second (30 a second). The strongest tool.

The serverRange, reportMs, maxReportsPerSecond and maxIdsPerReport values are anti-cheat limits. Leave them alone.

Config.Apparatus

SettingDefaultWhat it does
modelsfiretrukKnown models with their water tank, number of outlets and the exact position of each outlet and the supply intake. For other models, set ports in the admin panel's Models screen instead.
anyVehiclefalseLines come only from fire apparatus: department units, the models listed above and models given ports in the admin panel's Models screen. Set true to let any vehicle supply a line, for example to try an add-on truck before setting its ports.
defaultTank3000.0The water tank of a vehicle that is not a fleet unit or a known model.
defaultOutlets2Its number of outlets.
outlet / intakey = 0.35, z = 0.45 / y = 0.65, z = 0.4Where outlets and the intake go on a vehicle with no ports set, as a share of its length and height.
takeDistance8.0How close to the vehicle a line can be taken.

Config.ApparatusClasses

Classlabeltank (L)foam (L)outletsairstash
engine'Engine'30002003true30 slots, 150000 weight
ladder'Ladder'100002true40 slots, 200000 weight
rescue'Rescue'000true50 slots, 250000 weight
chief'Chief'000–15 slots, 60000 weight
brush'Brush'15001002–20 slots, 100000 weight

air = true means the class carries spare SCBA cylinders firefighters can refill from. stash is the size of every unit's equipment compartment.

shared/config/apparatus.lua
Config.ApparatusClasses = {
    engine = { label = 'Engine', tank = 3000, foam = 200, outlets = 3, air = true, stash = { slots = 30, weight = 150000 } },
    ladder = { label = 'Ladder', tank = 1000, foam = 0, outlets = 2, air = true, stash = { slots = 40, weight = 200000 } },
    rescue = { label = 'Rescue', tank = 0, foam = 0, outlets = 0, air = true, stash = { slots = 50, weight = 250000 } },
    chief  = { label = 'Chief', tank = 0, foam = 0, outlets = 0, stash = { slots = 15, weight = 60000 } },
    brush  = { label = 'Brush', tank = 1500, foam = 100, outlets = 2, stash = { slots = 20, weight = 100000 } },
}

Units already in the fleet keep the tank, foam and outlet numbers they were created with. Change those per group in the admin panel's Apparatus screen.

Config.Hydrants

SettingDefaultWhat it does
modelsprop_fire_hydrant_1, prop_fire_hydrant_2, prop_fire_hydrant_2_l1, prop_fire_hydrant_4Props that count as hydrants.
findRadius3.0How far from the player a hydrant is looked for.
portsper modelWhere the supply line and the attack line connect on each hydrant model.
takeDistance4.0How close to the hydrant a line can be taken or connected.
knownOnlytrueLines come only from hydrants the server knows: every one the game map places, plus those in extra. false lets any hydrant prop a player stands at give water.
extraemptyHydrants from an add-on map, one vec3(x, y, z) each. When a line is refused at a hydrant, the server console prints the vec3 to paste here.

Weapon item names depend on your inventory, so the approved gear list carries both spellings: ox_inventory uses WEAPON_FIREEXTINGUISHER and WEAPON_HATCHET, qb-inventory uses weapon_fireextinguisher and weapon_hatchet.

Config.Supply

SettingDefaultWhat it does
length30.0The furthest a unit can be from the hydrant when the supply line is connected.
slack5.0Extra distance before the line pulls loose.
refillPerSecond40.0Litres per second a connected hydrant puts back into the tank.
maxRopes4How many supply lines each player draws at once.
ropethickness and lookHow the supply line looks.

Config.Hose

SettingDefaultWhat it does
length30.0How long an attack line is.
warnAt0.85Warn the holder when this share of the line is used.
maxTargets6The most burning points one line's water reaches at once.
renderDistance / fxDistance80.0 / 50.0How far away other players' hoses and water are drawn.
maxRopes8How many hose lines each player draws at once.
leashSlack6.0Extra distance the server allows past the line's length.
pressureminRangeScale = 0.6, sputterBelow = 0.05As the tank empties, reach drops to 60%, and the stream sputters below 5%.
patternsJet, Fog, FoamEach pattern's agent (water or foam), reach, flow (litres per second from the tank), knockdown (how fast it puts out each burning point it reaches, per second: Jet 20, Fog 15, Foam 15) and look. A wider pattern reaches more points; it does not spread the same water thinner. A pattern you add without knockdown uses 15, and the server console names it at start. See Features.
keysspray = 24, patternUp = 241, patternDown = 242, putBack = 194Left mouse sprays, mouse scroll switches pattern, Backspace puts the line back.

The models, hand, sockets, nozzleFallback, couplings and anim values place the nozzle in the hand and the couplings on the caps. Leave them alone.

Config.HudLayout

Most servers keep their own HUD in the top corners of the screen: the player's name, money, job and ID, a server logo, a compass. Chat, notifications and dispatch alerts often sit just below. Fire's on-screen panels start lower down so they leave that space clear:

  • Top left: the attack line panel (pattern, water and foam), and the carry, drag and axe panels.
  • Top right: the SCBA air ring, with the fire card (points and how far the fire is knocked down) under it.
FieldDefaultWhat it does
topLeft.top30How far down from the top of the screen the left panel starts.
topLeft.side3How far in from the left edge it sits.
topRight.top30How far down from the top of the screen the right-hand stack starts.
topRight.side3How far in from the right edge it sits.

All four are a percentage of the screen height, so they look the same at every resolution. On a 1080p screen, 1 is about 11 pixels: the default 30 puts the panels about 324 pixels from the top. Allowed: 0 to 90.

If your server's corner HUD is taller and still sits under Fire's panels, raise top. If there is empty space above them, lower it. For example, to start both panels a little higher:

shared/config.lua
Config.HudLayout = {
    topLeft = { top = 24, side = 3 },
    topRight = { top = 24, side = 3 },
}

The bars along the bottom of the screen (line length and keys) and the markers over the truck and the flames do not move.

With Oxide HUD (free) installed, these values are not used. The HUD knows where its own widgets and minimap are, so it places both panels just clear of them, together with the controls along the bottom of the screen: the keys, the line length bar above them, and the controls admins see while placing points. Each player can drag any of the three to another spot in the HUD editor (/hud), or switch any of them off in game from the editor's Layers tab. While the editor is open, each one shows a sample so the player can see what they are moving. Each corner panel shares its spot with other jobs' panels that use Oxide HUD, and the controls share theirs with other resources' key prompts, since only one shows at a time. Everything Fire draws over the game, the markers over the truck and the flames included, hides whenever the HUD hides: in the pause menu, during a cinematic, while the player is dead or downed, and during character selection. It stays on screen while a Fire menu, the tablet or the phone is open.

Without Oxide HUD (or with an older o-link), the panels sit exactly where these values put them, and the controls stay at the bottom centre. There is nothing else to set up.

Config.UseHudAccent

Fire's on-screen panels (attack line, carry, drag and axe, the SCBA air ring, the fire card, and the keys and line length bar along the bottom) pick up the server's accent colour from Oxide HUD's Config.Theme when it is set. Green, amber and red keep their meaning. Without Oxide HUD, or with no accent set there, the panels keep Fire's own red.

Default true. To always keep Fire's own colours:

shared/config.lua
Config.UseHudAccent = false

Config.ModelSwaps

If a model is missing from a player's game build, admins on the server get a notification naming the model, and it is written to the console. The notification points here: set the replacement in Config.ModelSwaps in shared/config.lua and restart oxide-fire. Model swaps are not in /fire settings.

Each swap is a row with the shipped model name and your replacement:

shared/config.lua
Config.ModelSwaps = {
    { from = 'voodoo2', to = 'voodoo' },  -- example: use a different wreck model
}

The hose nozzle (oxide_fire_nozzle), the coupling (oxide_fire_coupling_attack) and the SCBA backpack and belt (oxide_fire_scba_m, oxide_fire_scba_f, oxide_fire_scba_belt) ship in this resource's stream/ folder. If one of those is reported missing, the install is incomplete: check the stream/ folder is there and restart the whole server.

Config.SafetyFx and Config.StationFx

Animations, sounds and screen effects, all from the base game:

  • Config.SafetyFx.maskAnim: putting the mask on.
  • Config.SafetyFx.pack: the SCBA worn on the back while the mask is on. male and female are the pack models (other peds wear the male one), belt the waist belt, bone and beltBone where they hang (24818 SKEL_Spine3 and 11816 SKEL_Pelvis). The shipped models fit those bones with no offset or rotation; set those only for your own models. hideInVehicles (true) hides them in a seat.
  • Config.SafetyFx.warnSound and alarmSound: the head-out sound and the low-air alarm. alarmSound.range (15.0) is how far other players hear the alarm.
  • Config.SafetyFx.smoke: the screen effect in smoke, and the cough animation.
  • Config.SafetyFx.carry and drag: the carry and drag animations and positions. drag.turnRate (60.0) is how fast A and D turn while dragging.
  • Config.SafetyFx.victim: how casualties lie, and hearRadius (10.0), how close a firefighter must be to hear someone trapped.
  • Config.StationFx.bell: the station bell sound.
  • Config.StationFx.rigCheckAnim: the clipboard animation during a rig check.

Translations

Every message players see is in locales/en.json. To translate:

Copy locales/en.json to a new file named after your language code, for example locales/de.json.
Translate the text on the right of each line. Keep the names on the left, and keep every %s and %d.
Set your language in server.cfg, for example setr ox:locale "de".
Restart the server.