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.luaandshared/config/*.luaare copied into the sharedoxide_settingstable. - 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-firelast started.
What that means in practice:
- 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. - 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. - 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 settingsAdmin 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:
| Category | Groups |
|---|---|
| Core | General, Duty & Payroll, Stations, Apparatus |
| Fires | Fires & Calls, Safety, Station Life |
| Integration | Framework 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
| Setting | Default | What it does |
|---|---|---|
| Multi-department enrollment | Off | Lets 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
| Setting | Default | What it does |
|---|---|---|
| Require station clock-in | On | Firefighters 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 interval | 900000 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 accounts | On | Department 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 balance | 30000 | What a department's bank account is created with, the first time the department loads. Only used with Use banking accounts on. |
| Treasury-funded salaries | On | Salaries 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 days | Back pay nobody settled is dropped when the server starts, once it is this old. 0 keeps it forever. |
| Boss menu → Host in oxide-tablet | On | When 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
| Setting | Default | What it does |
|---|---|---|
| Locker slots | 40 | Slots in each firefighter's personal locker. Allowed: 1 to 200. |
| Locker max weight | 100000 | How much each locker holds. Allowed: 1000 to 1000000. |
| Station zone radius | 1.0 m | The default size of a station or bay interaction point. A size set while placing a point overrides this. |
| Station zone distance | 1.5 m | How close a player must be for a station option to be usable. |
| Loadout item limit (advanced) | 50 | The most items one gear-room loadout can hold. |
| Approved gear items | scba, radio, the fire extinguisher and the hatchet (both spellings of each weapon), 1 of each | The 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
| Setting | Default | What it does |
|---|---|---|
| Apparatus catalog | 2 entries | The 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) | 10 | The most units of one catalog entry a boss or admin can add at once. Allowed: 1 to 50. |
| Refill on return | On | A 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:
| Field | What it is |
|---|---|
| Model | The vehicle's spawn name |
| Label | The name players see |
| Class | Engine, Ladder, Rescue, Chief or Brush. Sets the tanks, hose outlets and equipment compartment, see Apparatus classes |
| Type | Car, 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 |
| Cost | What the boss pays from the treasury per unit. Also the unit's replacement cost |
It ships with:
| Model | Label | Class | Type | Cost |
|---|---|---|---|---|
firetruk | Engine | Engine | Car | 60000 |
lguard | Chief Car | Chief | Car | 30000 |
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:
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
| Setting | Default | What it does |
|---|---|---|
| Fire difficulty | Standard | Casual: 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 generator | see below | Fire calls raised on their own at the incident sites and wildfire zones you set up in /fire admin. |
| Game feedback | see below | Points as burning spots go out, deductions for mistakes, and how far the fire is from out. |
Call generator
| Field | Default | What it does |
|---|---|---|
| Generate calls | On | Turns the generator on or off. The admin panel's Call Generator screen has the same switch. |
| Shortest wait | 10 min | The least time between calls. |
| Longest wait | 20 min | The most time between calls. |
| Firefighters needed | 2 | No calls start with fewer firefighters around. |
| Count only on-duty firefighters | On | Only clocked-in firefighters count toward Firefighters needed. Off: everyone holding a fire department job counts. |
| Calls at once | 2 | The generator waits while this many calls are burning. Allowed: 1 to 6. |
| Call mix | vehicle 4, brush 3, structure 3 | How 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.
| Field | Default | What it does |
|---|---|---|
| Points and progress | On | Off: no points, pop-ups, fire card, bars over the flames or their sounds. Firefighting itself works the same either way. |
| Sounds | On | A chime for points, a buzz for mistakes and a tone when a fire is out. |
| Points | see below | Points for each event. Negative numbers take points away. 0 turns one off. Allowed: -100 to 100. |
| Assist window | 10000 ms | How recently a firefighter must have sprayed a spot to get an assist when someone else puts it out. |
| Wrong agent below | 0.5 | Water 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 cooldown | 10000 ms | The same mistake costs points at most once in this long. |
Points
| Field | Default | When |
|---|---|---|
| Put out a burning spot | 10 | Your water, foam, extinguisher or cannon puts a burning spot out. |
| Assist | 5 | You sprayed a spot within the assist window and someone else put it out. |
| Soak a smouldering spot | 5 | Your water finishes soaking a smouldering spot. |
| Overhaul a smouldering spot | 5 | Your axe finishes a smouldering spot. |
| Fire out | 25 | The fire is out. Everyone who scored points on it gets this. |
| A spot flares up again | -5 | A spot you put out flares up again because nobody soaked or overhauled it. |
| Water on a fuel fire | -3 | Plain water on a fire it barely touches. Switch to foam. |
| Spraying a player | -5 | Your stream hits another player. |
| Breathing smoke without a mask | -5 | You 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)
| Field | Default | What it does |
|---|---|---|
| SCBA item | scba | The inventory item that puts the mask on and takes it off. Leave it empty to need no item. |
| Air per cylinder | Casual 1800 s, Standard 900 s, Realistic 600 s | Seconds of air in a full cylinder, at each fire difficulty. Allowed: 60 to 3600 seconds. |
| Head-out warning | 50% | Air left when the firefighter is told to head out. |
| Low-air alarm | 33% | Air left when the alarm starts. Everyone nearby hears it. Must be lower than Head-out warning. |
| Refill time | 6000 ms | How long a refill at a gear room or an apparatus takes. |
| Apparatus refill reach | 6.0 m | How close to the apparatus a refill works. |
| Other refill vehicles | firetruk | Vehicles outside the department fleet that also carry spare cylinders. Fleet engines, ladders and rescues always do. |
| Face piece | see below | The clothing piece put on with the mask and taken off with it. |
Face piece
| Field | Default | What it does |
|---|---|---|
| Component | 1 | The clothing slot. 1 is masks. |
| Drawable | 175 | Which mask in that slot. |
| Texture | 0 | Which colour of that mask. |
| Female drawable | -1 | The mask for female characters. -1 uses Drawable. |
| Female texture | -1 | The 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
| Field | Default | What it does |
|---|---|---|
| Smoke hurts | On | Off: smoke is only seen, never breathed. |
| Damage | 4 hp/s | Health 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 breath | 3 s | Seconds in smoke before it starts to hurt. |
| Smoke around flames | 4.0 m | How close to a burning or smouldering point counts as smoke. 0 turns off the smoke around flames. |
| Thickness around flames | 0.5 | How thick that smoke is, from 0.05 (a haze) to 1 (the thickest). Damage is multiplied by this. |
Rescue carries
| Field | Default | What it does |
|---|---|---|
| Carry and drag | On | Lets on-duty firefighters carry and drag players. |
| Casualties only | On | Only players who are down (or dead) can be picked up. Off: any player. |
| Reach | 2.5 m | How close the casualty must be. |
Victim search
| Field | Default | What it does |
|---|---|---|
| People inside | On | Off: structure fires never have anyone inside. |
| Chance | 70% | How often a structure fire at a site with victim spots has someone inside. |
| How many | at least 1, at most 2 | How many casualties. Never more than the site has victim spots. |
| Time to get them out | Casual 900 s, Standard 600 s, Realistic 360 s | How long a casualty lasts inside, at each fire difficulty. |
| Safe distance | 20 m | How far from the fire, and out of its smoke, a casualty must be set down to count as rescued. |
| Wait for a medic | 5 min | How long a rescued casualty waits for a medic before an ambulance takes them away. |
| Medic jobs | ambulance, ems | Jobs that get the rescue alert and can take over a casualty. Use your EMS job names. |
| Casualty models | 10 ped models | The 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
| Field | Default | What it does |
|---|---|---|
| Station tone | On | A new call rings the bell at every station. |
| Bell heard within | 60 m | How far from a station the bell can be heard. |
| Rings | 3 | How many times the bell rings. |
| Page-out | On | On-duty firefighters get a phone notification for every new call, when a phone resource is running. |
| Rig checks | see below | Pay for checking over a unit parked at its bay. |
Rig checks
| Field | Default | What it does |
|---|---|---|
| Rig checks | On | Turns rig checks on or off. |
| Pay | 150 | Paid per check. From the department treasury when Treasury-funded salaries is on. |
| Time to check | 20000 ms | How long a check takes. |
| Cooldown | 30 min | How long before the same unit, or the same firefighter, can be paid for another check. |
| Bay distance | 30 m | How close to its home bay the unit must be parked. |
Lightning fires
| Field | Default | What it does |
|---|---|---|
| Lightning starts fires | On | A lightning strike from oxide-weather landing inside an enabled wildfire zone can start a brush fire call. |
| Chance | 25% | The chance a strike inside a wildfire zone starts a fire. |
| Follow the call generator | On | Only 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
| Field | Default | What it does |
|---|---|---|
| Enabled | Off | Writes 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 start | On | Sync when oxide-fire starts. |
| Sync on change | On | Sync whenever a department or grade changes. |
| Zero framework salary | On | Writes 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 type | fire | Written 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
| Field | Default | What it does |
|---|---|---|
| Mirror employment | On | Mirrors 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:
oxide-fire (type restart oxide-fire in your server console), or restart the whole server.| Setting | File | What it controls |
|---|---|---|
Config.Fire | shared/config.lua | How fires are drawn, their limits, and how they spread |
Config.FirePresets | shared/config.lua | The numbers behind the Casual, Standard and Realistic difficulties |
Config.Calls | shared/config.lua | Call codes, sizes, wreck models, how long calls last, and the alert blip |
Config.Tools | shared/config.lua | The axe, the fire extinguisher and the water cannon |
Config.Apparatus | shared/config.lua | Hose outlet positions on known models, and the defaults for other vehicles |
Config.Hydrants | shared/config.lua | Which props count as hydrants, and where lines connect to them |
Config.Supply | shared/config.lua | Supply line length and refill rate |
Config.Hose | shared/config.lua | Attack line length, patterns and keys |
Config.HudLayout | shared/config.lua | Where the attack line HUD, the SCBA air ring and the fire card sit on screen |
Config.UseHudAccent | shared/config.lua | Whether Fire's on-screen panels use the server's accent colour from Oxide HUD |
Config.ModelSwaps | shared/config.lua | Replacing a model your game build does not have |
Config.ModelHints, Config.SettingsCommand | shared/config.lua, shared/config/department.lua | Wording of model warnings. Leave these alone |
Config.ApparatusClasses | shared/config/apparatus.lua | Tanks, outlets, spare air and compartments for each apparatus class |
Config.SafetyFx | shared/config/safety.lua | SCBA, smoke, carry and casualty animations and sounds |
Config.StationFx | shared/config/station.lua | The station bell sound and the rig-check animation |
Times are in milliseconds (1000 = 1 second) and distances in metres, unless noted.
Config.Fire
| Setting | Default | What it does |
|---|---|---|
renderDistance | 300.0 | Players load a fire within this distance. |
flameDistance | 150.0 | Flames are drawn within this distance. Beyond it, only the smoke column shows. |
nativeFireDistance | 60.0 | The game's own fire, the part that burns you, is placed within this distance. |
maxNodesPerIncident | 35 | The most burning points one fire can have. Also the most fire points a structure site can have. |
maxNodesTotal | 70 | The most burning points across the whole server. |
maxIncidents | 6 | The most fires burning at once. |
tickMs | 1000 | How often the server heals, burns and spreads fires. |
flushMs | 250 | How often fire changes are sent to nearby players. |
nodeSpacing | 1.6 | The distance between points of a new fire. |
hitRadius / hitHeight | 1.2 / 2.5 | How close water must land to a point to reach it. |
maxHp | 100.0 | A point's strength before the difficulty's multiplier. |
spread | see code | Spread 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. |
classes | A, B, vehicle, brush | How each class reacts to water and foam, how strong it is, whether it spreads, and how long brush burns. See Features. |
smoulder / smoke | particle effects | The smoke over smouldering points, and the smoke column. |
hotspot | see below | The marker on each smouldering point. |
nativeFire | true | Places the game's own fire under each point, so standing in it burns. |
respawnMs | 1500 | A point whose game fire went out is lit again after this. |
cancelMatchingFireEvents | true | Stops the game copying these fires between players. Every player draws the fire themselves. Leave this on. |
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.
| Setting | Default | What it does |
|---|---|---|
enabled | true | false turns the marker off. Smouldering points then show only their smoke. |
distance | 60.0 | Points are marked within this distance of the player. |
maxMarkers | 16 | Each player marks at most this many points, the nearest first. |
decals | grey ash, then a dark burnt patch | The 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. |
embers | ent_amb_fbi_cinder | The embers rising from the point. |
glow | orange, 2.2 m | The glow over the ash: color (red, green, blue), range, intensity, height above the ground, and the distance within which it shows. |
prop | false | A model to lay on each point as well, such as a pile of debris. It is never solid. false: none. |
soaked | fire_extinguish, 2.5 s | The steam when a point is soaked. ms is how long it steams before the marker goes. |
overhauled | ent_dst_wood_chunky | The debris thrown up when a point is pulled apart with an axe. embersScale is how much the embers flare, and ms how long. |
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.
| Setting | What it does |
|---|---|
nodeHp | A point's strength, as a multiple of Config.Fire.maxHp |
damage | How hard water, foam, extinguishers and the cannon hit |
regen | A point heals perSecond once delayMs have passed since it was last hit |
spread | Every intervalMs, each healthy point spreads with this chance |
smoulder | false: 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) |
overhaulMs | How long the axe takes |
The default values are in the difficulty table in Features.
Config.Calls
| Setting | Default | What it does |
|---|---|---|
vehicle.code | '10-73' | The vehicle fire alert code. |
vehicle.nodes | 5 | Burning points on the car. |
vehicle.models | emperor2, tornado3, tornado4, voodoo2, rebel | The wrecks picked from. The first one is also the preview when you place a vehicle site. |
vehicle.wreckMs | 300000 (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.spacing | 2.5 | Distance between them. |
structure.code | '10-70' | The structure fire alert code. |
structure.startShare | 0.5 | The share of the building's fire points that start burning. |
expireMs | 1800000 (30 min) | A call nobody puts out ends on its own after this. |
alertExpireMinutes | 30 | How long the dispatch alert lasts. |
priority | 1 | The alert priority. |
blip | sprite 436, colour 1, scale 1.0 | The alert's map blip. |
Config.Tools
| Setting | Default | What it does |
|---|---|---|
overhaul.weapons | WEAPON_HATCHET, WEAPON_BATTLEAXE, WEAPON_STONE_HATCHET | Weapons that work as an axe on smouldering points. |
overhaul.reach | 2.5 | How close to a smouldering point the axe works. |
overhaul.swings | ground_attack_0 / small_melee_wpn_long_range_0 from melee@small_wpn@streamed_core | The axe swing for a point on the ground (ground) and one at waist height or higher (high). |
overhaul.groundBelow | 0.6 | A point lower than this many metres above the player's feet gets the ground swing. |
overhaul.key | 38 (E) | The key that starts pulling a point apart. |
extinguisher.weapon | WEAPON_FIREEXTINGUISHER | The extinguisher weapon. |
extinguisher.range / halfAngle | 8.0 / 35.0 | How far and how wide the extinguisher reaches. |
extinguisher.damagePerSecond | 8.0 | How fast it puts out each point in its cone, per second. Weaker than an attack line on purpose. |
cannon.models | firetruk | Vehicles whose water cannon puts out fires. |
cannon.controls | 69, 70 | The vehicle attack controls that fire the cannon. |
cannon.range | 45.0 | How far the cannon reaches. |
cannon.damagePerReport | 15.0 | How 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
| Setting | Default | What it does |
|---|---|---|
models | firetruk | Known 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. |
anyVehicle | false | Lines 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. |
defaultTank | 3000.0 | The water tank of a vehicle that is not a fleet unit or a known model. |
defaultOutlets | 2 | Its number of outlets. |
outlet / intake | y = 0.35, z = 0.45 / y = 0.65, z = 0.4 | Where outlets and the intake go on a vehicle with no ports set, as a share of its length and height. |
takeDistance | 8.0 | How close to the vehicle a line can be taken. |
Config.ApparatusClasses
| Class | label | tank (L) | foam (L) | outlets | air | stash |
|---|---|---|---|---|---|---|
engine | 'Engine' | 3000 | 200 | 3 | true | 30 slots, 150000 weight |
ladder | 'Ladder' | 1000 | 0 | 2 | true | 40 slots, 200000 weight |
rescue | 'Rescue' | 0 | 0 | 0 | true | 50 slots, 250000 weight |
chief | 'Chief' | 0 | 0 | 0 | – | 15 slots, 60000 weight |
brush | 'Brush' | 1500 | 100 | 2 | – | 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.
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
| Setting | Default | What it does |
|---|---|---|
models | prop_fire_hydrant_1, prop_fire_hydrant_2, prop_fire_hydrant_2_l1, prop_fire_hydrant_4 | Props that count as hydrants. |
findRadius | 3.0 | How far from the player a hydrant is looked for. |
ports | per model | Where the supply line and the attack line connect on each hydrant model. |
takeDistance | 4.0 | How close to the hydrant a line can be taken or connected. |
knownOnly | true | Lines 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. |
extra | empty | Hydrants 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
| Setting | Default | What it does |
|---|---|---|
length | 30.0 | The furthest a unit can be from the hydrant when the supply line is connected. |
slack | 5.0 | Extra distance before the line pulls loose. |
refillPerSecond | 40.0 | Litres per second a connected hydrant puts back into the tank. |
maxRopes | 4 | How many supply lines each player draws at once. |
rope | thickness and look | How the supply line looks. |
Config.Hose
| Setting | Default | What it does |
|---|---|---|
length | 30.0 | How long an attack line is. |
warnAt | 0.85 | Warn the holder when this share of the line is used. |
maxTargets | 6 | The most burning points one line's water reaches at once. |
renderDistance / fxDistance | 80.0 / 50.0 | How far away other players' hoses and water are drawn. |
maxRopes | 8 | How many hose lines each player draws at once. |
leashSlack | 6.0 | Extra distance the server allows past the line's length. |
pressure | minRangeScale = 0.6, sputterBelow = 0.05 | As the tank empties, reach drops to 60%, and the stream sputters below 5%. |
patterns | Jet, Fog, Foam | Each 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. |
keys | spray = 24, patternUp = 241, patternDown = 242, putBack = 194 | Left 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.
| Field | Default | What it does |
|---|---|---|
topLeft.top | 30 | How far down from the top of the screen the left panel starts. |
topLeft.side | 3 | How far in from the left edge it sits. |
topRight.top | 30 | How far down from the top of the screen the right-hand stack starts. |
topRight.side | 3 | How 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:
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:
Config.UseHudAccent = falseConfig.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:
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.maleandfemaleare the pack models (other peds wear the male one),beltthe waist belt,boneandbeltBonewhere they hang (24818SKEL_Spine3 and11816SKEL_Pelvis). The shipped models fit those bones with nooffsetorrotation; set those only for your own models.hideInVehicles(true) hides them in a seat.Config.SafetyFx.warnSoundandalarmSound: 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.carryanddrag: 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, andhearRadius(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:
locales/en.json to a new file named after your language code, for example locales/de.json.%s and %d.server.cfg, for example setr ox:locale "de".Installation Guide
Install oxide-fire — required and optional resources, start order, the database, the fire job, the scba item, a full server restart and first-time setup in game.
QBCore Installation
Install oxide-fire on QBCore — the fire job in qb-core, the scba item, the item image and the resources that work with it.