Features
What oxide-fire does — departments, stations, duty and pay, gear and uniforms, radio channels, apparatus, synced fires, fire calls, hoses and tools, breathing air, smoke, rescue and station life.
What oxide-fire does, from a server owner's point of view. For how to set any of it up, see Admin. For the settings behind it, see Configuration.
Departments
A department is one fire service. Most servers need exactly one, but you can create as many as you want.
A department has:
- an internal name, which must match a job in your framework (for example
fire). Hiring a firefighter sets their framework job to this name. - a display label, which is what players see.
- grades: the ranks inside it, each with a salary and an optional boss flag.
- stations: the buildings.
- apparatus bays and the apparatus (fire vehicles) parked in them.
- uniforms and gear-room loadouts.
- radio channels, if you use
oxide-radio. - a treasury.
A department can be disabled without deleting it. A disabled department refuses clock-ins, and its map blips, station points and bays disappear. Firefighters already on duty stay on duty until they clock out. With the clock-in points gone, they clock out with /fire duty.
Deleting a department removes everything under it. Anyone on duty in it is clocked out and told why.
Hiring, dismissing and your framework's job system
There are three ways a firefighter gets hired, and they all end the same way:
- an admin runs
/fire hire - a department boss offers the job from the management desk, and the player accepts it
- somebody sets the player's framework job to the department's name in any other way: a job command, a city hall script, a multi-job menu
That last one matters. oxide-fire watches for framework job changes, so setting a player's job to your fire department's name enrolls them, and setting it to unemployed dismisses them. Switching to any other named job is ignored, so multi-job scripts that swap a player's active job never dismiss anyone.
New firefighters get a badge number automatically: one higher than the highest badge in that department.
One character, several departments
With Multi-department enrollment turned on, one character can belong to several fire departments at once, each with its own grade and badge. Whichever department's job they currently have active is the one they work.
With it off (the default), a character belongs to one department. /fire hire and the boss's hire button refuse somebody who already works for another department. Setting their framework job to the new department's name moves them across instead.
When g-multijob is installed and Multi-department enrollment is on, hires, promotions and dismissals are mirrored into its menu.
Stations
A station is a building on the map. You create it by placing its position in the world, and then you place its interaction points in the world from the admin panel.
| Point | What firefighters can do there |
|---|---|
| Clock In | Clock in, clock out, and open the call board |
| Management | Open the boss desktop. Boss-graded firefighters of that department only |
| Lockers | Open their personal locker, a private stash for each character at each station |
| Gear Room | Take equipment from the Gear Room, change into a uniform, and refill their SCBA |
A station can have several of each point (up to 32 of each). Clock In shows for members of that station's department. Lockers, the gear room and the call board need the firefighter to be on duty in that department. The management desk does not need duty.
Each station also has a map blip with its own icon, colour, size and an optional name. Left blank, the blip is named "Department - Station".
Duty and pay
Firefighters clock in at a Clock In point. By default this is required. Turn off Require station clock-in and /fire duty toggles duty from anywhere instead.
Clocking in:
- sets the firefighter's duty in your framework
- starts their salary timer
- hands back any apparatus they left out on their last shift
- tunes them to their department's default radio channel, if you use
oxide-radio
Clocking out:
- changes them back into their own clothes, if they were wearing a uniform
- stops the salary
- puts down anyone they were carrying
- leaves their apparatus where it is, until somebody puts it back
Logging out or disconnecting also takes the firefighter off duty.
Salaries
While on duty, a firefighter is paid their grade's salary into their bank on an interval (every 15 minutes by default).
There are two ways salaries are paid:
- Treasury-funded (default): the salary comes out of the department treasury. If the treasury cannot cover it, the salary is recorded as back pay instead of being lost, the firefighter is told, and a boss can pay it later from the management desk.
- Direct: salaries are paid without touching the treasury. Back pay never builds up.
Back pay nobody settles is cleared after 30 days by default.
Treasury
Each department has a treasury. With Use banking accounts on and a banking resource running, the treasury is a real job bank account, created with a starting balance (30,000 by default) the first time the department loads. With it off, oxide-fire keeps the balance itself, starting at 0.
Money comes in from boss deposits and admin funding. It goes out through salaries, back-pay settlements, boss withdrawals, gear-room purchases (when the treasury pays for gear), rig-check pay, apparatus purchases and apparatus replacements. Every movement is written to a history the boss can read.
Spending never takes the treasury below zero, even when two bosses spend at the same moment or the banking resource itself would allow an overdraft: each spend is checked against the balance as it happens, and one that does not fit is refused.
Gear room and uniforms
Gear-room loadouts
A loadout is a named kit of items, for example "Engine company": an scba, a fire extinguisher and a hatchet. Each item has a count and a price per item, and each loadout can require a minimum grade.
Bosses build loadouts from the Approved gear items an admin lists in /fire settings, up to the number of each the list allows. Admins can stock any item.
At a Gear Room point, an on-duty firefighter sees the loadouts for their grade and can take a whole loadout or single items from it. A take tops them up to the loadout's counts: what they already carry is not handed out or paid for again. Items that do not fit in their inventory are refunded.
Each department chooses who pays for gear:
- Treasury pays (default): the department treasury pays.
- Firefighter pays: the cost comes out of the firefighter's own bank.
Admins switch this on the department's Overview screen, and bosses switch it in the Gear Room app. A loadout with all prices at 0 is free either way.
Uniforms
Uniforms are built in game, not in a config file. For each uniform you choose which clothing slots it controls, for example just the shirt, pants and shoes. Only those slots change. Everything else, such as hair and accessories, stays the firefighter's own.
The slots are the twelve clothing components (head, mask, hair, arms, pants, bag, shoes, accessory, undershirt, body armor, decals, shirt) and five props (hat, glasses, ear, watch, bracelet).
Male and female versions are stored separately, and the right one is applied automatically. Uniforms can require a minimum grade.
Firefighters change at a Gear Room point using Uniforms, which also has Wear Civilian Clothes. It only takes off a department uniform, and still does after oxide-fire restarts. Uniforms come off automatically at clock-out.
Uniforms need a clothing resource that o-link supports.
Radio channels
With oxide-radio installed, departments own numbered radio channels. Each channel has a frequency, a label, a minimum rank, an optional duty requirement, and an optional default flag. Firefighters are tuned to their department's default channel automatically when they clock in.
Only that department's firefighters can tune in, and only at or above the minimum rank (and only while on duty, for a duty-only channel). Renaming or deleting a department updates or removes its channels at once.
Frequencies are globally unique. Trying to take one that another department or resource already owns is refused with a clear message.
Without oxide-radio installed, the radio screen in the admin panel says so and nothing is registered. Channels saved there are registered as soon as oxide-radio starts.
Apparatus
Apparatus are the department's own fire vehicles. They are bought or added into a station bay, taken out by on-duty firefighters, and put back at a bay. Every unit is a real, tracked vehicle with its own plate, fuel, damage, water and foam.
Classes
Every unit belongs to a class. The class sets its water tank, foam tank, number of hose outlets, whether it carries spare breathing air, and the size of its equipment compartment.
| Class | Water | Foam | Hose outlets | Spare air | Equipment compartment |
|---|---|---|---|---|---|
| Engine | 3000 L | 200 L | 3 | Yes | 30 slots |
| Ladder | 1000 L | 0 L | 2 | Yes | 40 slots |
| Rescue | 0 L | 0 L | 0 | Yes | 50 slots |
| Chief | 0 L | 0 L | 0 | No | 15 slots |
| Brush | 1500 L | 100 L | 2 | No | 20 slots |
A catalog entry or an admin-added unit can use its own water, foam and outlet numbers instead of the class's.
The catalog
The apparatus catalog is the list of vehicles a boss can buy with treasury money. It is edited in /fire settings under Apparatus. It ships with two entries:
| Model | Label | Class | Cost |
|---|---|---|---|
firetruk | Engine | Engine | 60,000 |
lguard | Chief Car | Chief | 30,000 |
Add the fire vehicles installed on your server. The cost, label, class and type always come from the catalog on the server, so a modified game cannot buy a unit for less.
Each unit spawns as the type an admin gave it (car, bike, quad, boat, helicopter or plane), in the catalog or on the Apparatus screen. Nothing a player's game reports can change it.
Admins can also add units directly in /fire admin, for free, with any model.
Taking a unit out and putting it back
A firefighter can have one unit out at a time. Units and bays can require a minimum grade.
With Refill on return on (the default), a unit put back is refilled with water and foam.
Units stay in the world
- Clocking out leaves the unit where it is. Clocking back in hands it back to the same firefighter, or brings it back where it was left if it is gone.
- A unit out on the road survives a server restart. It comes back where it was left, with its fuel, damage and water.
- A unit is marked destroyed when the server itself reads it as wrecked (body and engine both gone, or it exploded) or sees it under the sea, the Alamo Sea, the Land Act Reservoir or Lake Vinewood. A firefighter's report alone never writes a unit off. A boss replaces destroyed units from the management desk at their replacement cost.
Equipment compartment
Every unit has an Equipment option for on-duty firefighters of its department, standing next to it. It opens a stash belonging to that unit. Its size depends on the class (see the table above).
Tanks, foam and outlets
Each unit carries water and foam in its tanks. Hose lines draw from them. A unit with an empty tank cannot supply water until it is put back at a bay (with Refill on return on) or connected to a hydrant with a supply line.
Hose outlets are the caps where attack lines start. For the stock firetruk, the outlet positions are already set. For other vehicle models, the admin panel's Models screen lets you set exactly where each outlet and the supply intake sit on the model. A department unit whose model has no ports set gets outlets placed from its size. Outside the department's fleet, only the stock firetruk and models with ports set in Models supply lines.
Fires
Every fire in oxide-fire is run by the server, so every player sees the same fire burning in the same places, and it is put out for everyone at the same time.
A fire (an incident) is made of several burning points. Each point has its own strength. Water, foam and extinguishers wear a point down. When it reaches zero it is knocked down.
How a fire behaves
- Burning points heal if nobody hits them for a few seconds. Half-hearted spraying loses.
- Healthy points spread, starting a new point nearby. Wind steers the spread, and heavy rain slows it. With
oxide-weatherrunning, the real wind and rain at the fire are used. Without it, each fire gets a random wind. - Brush fires run out of fuel and burn out after a while if nobody puts them out.
- Brush fire points start on the ground once an on-duty firefighter comes within 150 m; every player sees the flames on the ground either way.
- Knocked-down points smoulder on Standard and Realistic difficulty. A smouldering point shows smoke and a hot spot marker instead of flames. It goes out for good when it is soaked with enough water, pulled apart with an axe, or burns out. Left alone, it can reignite.
- On Realistic, water alone does not finish a smouldering point inside a building. It needs the axe, or it smoulders until it burns out.
- Standing in the flames burns, close to the fire.
- A fire call nobody puts out ends on its own after 30 minutes.
Smouldering hot spots
Every smouldering point is marked where it sits, so firefighters can see which spots still need work:
- Burnt ash on the ground, with embers and a faint orange glow under a thin wisp of smoke. On a burning car, the embers and glow sit on the car, with no ash.
- Soaked with water: the spot gives off a puff of steam, then the marker goes.
- Pulled apart with an axe: the debris is thrown up in a burst of embers, and the marker goes.
- If the spot flares up again, burns out, or the fire ends, its marker goes with it.
- Every player sees the same spots. Each player shows the nearest 16 within 60 m. The marker is never solid, so it never blocks players or vehicles.
The marker can be changed or turned off in Config.Fire.hotspot (see Configuration).
Fire classes
| Class | Burns like | Water | Foam |
|---|---|---|---|
| A | Ordinary fire, used for structure fires | Normal | Normal |
| B | A fuel spill | Weak (35%) | Strong (150%) |
| Vehicle | A burning car. Does not spread | 80% | 120% |
| Brush | Grass and scrub. Weaker, and each point burns out on its own after 150 seconds | Strong (120%) | Normal |
The built-in calls use the Vehicle, Brush and A classes. Class B is there for other scripts that start fires through the exports.
Difficulty
Pick a difficulty under Fires & Calls → Fire difficulty in /fire settings. It applies to fires started after the change.
| Casual | Standard (default) | Realistic | |
|---|---|---|---|
| Feel | Fires go out fast and stay out | Two firefighters clear a typical call in 5 to 10 minutes | Tougher fires that spread faster and reignite more |
| Point strength | 0.9× | 1.6× | 2.6× |
| Water and foam effect | 1.25× | 1.0× | 0.9× |
| Heals after | 6 s without a hit | 4 s | 3 s |
| Spread check | every 15 s, 10% chance | every 12 s, 15% | every 10 s, 22% |
| Smouldering | No: knocked down is out | Yes | Yes, and soaked points inside buildings still need the axe |
| Reignite | – | 50% chance every 45 s | 70% chance every 30 s |
| Smoulder burns out after | – | 2 minutes | 4 minutes |
| Axe takes | 2.5 s | 4 s | 6 s |
| SCBA air per cylinder | 30 minutes | 15 minutes | 10 minutes |
| Trapped casualty survives | 15 minutes | 10 minutes | 6 minutes |
Limits
To protect the frame rate, at most 6 fires burn at once, with up to 35 burning points per fire and 70 in total across the server. Players draw a fire within 300 m, flames within 150 m, and the game's own fire (the part that burns you) within 60 m.
Fire calls
A fire call is a fire plus a dispatch alert. There are three kinds:
| Call | Code | Where it happens | What burns |
|---|---|---|---|
| Vehicle fire | 10-73 | At a vehicle incident site | A locked, burning wreck spawns at the site, standing on its wheels and facing the way set in the incident editor. The burnt-out car stays for 5 minutes after the fire is out |
| Brush fire | 10-74 | Inside a wildfire zone | 6 to 10 points of burning brush. The fire only spreads inside the zone |
| Structure fire | 10-70 | At a structure incident site | Half of the building's fire points start burning, and the fire spreads to the others nearby. A point that burnt out does not light again |
You set up incident sites and wildfire zones in /fire admin. A structure site can also have victim spots where people may be trapped (see Victim search and rescue).
The call generator
The call generator starts calls on its own. By default it:
- waits a random 10 to 20 minutes between calls
- only starts a call while at least 2 firefighters are on duty
- waits while 2 calls are already burning
- picks vehicle, brush and structure fires at a 4 : 3 : 3 mix, among the types you have places for
All of this is under Fires & Calls → Call generator in /fire settings. The admin panel's Call Generator screen shows what the generator is waiting for and lets you start a call straight away.
Alerts
Each call raises an alert with its code, a title and the site or zone name, sent to every enabled fire department. With oxide-dispatch, the alert closes itself when the fire is out. See Installation for how alerts work with other dispatch resources.
Fighting fires
Hoses
An attack line is a hose a firefighter holds. On-duty firefighters take one with their target key:
- Take attack line on a fire apparatus gives you a line from the hose outlet nearest you, so stand by the outlet you want. Units with no outlets (rescue and chief units) and ordinary cars don't offer it.
- Attack line from hydrant on a fire hydrant gives you a line straight from the hydrant.
Nobody can take a line while already holding one, carrying someone or sitting in a vehicle.
While holding a line:
- Left mouse sprays.
- Mouse scroll switches the pattern.
- Backspace puts the line back.
- The Attack line HUD shows the pattern and how full the water (and foam) tank is on the left, below where most servers put their own HUD, with the same levels on a ring over the truck or hydrant the line comes from (labelled Tank, Hydrant or Supply line). A bar at the bottom shows how much of the line is out, and the keys sit under it.
| Pattern | Agent | Reach | Flow | Good for |
|---|---|---|---|---|
| Jet | Water | up to 45 m | 10 L/s | Hitting fires from a distance |
| Fog | Water | about 7 m, wide | 12 L/s | Close work over a wide area |
| Foam | Foam | up to 26 m | 8 L/s | Fuel spills and car fires |
Up to six burning points the water reaches are put out at the same time, so a wide pattern on a cluster of points works through them together. On Standard difficulty, one point takes about 10 seconds with the jet and about 14 with fog or foam, from knocked down to soaked. Plain water barely touches fuel fires: use foam there.
A line is 30 m long. You are warned when it is nearly at full length, and if you walk past the end the line is put back. The line is also put back if you die, get into a vehicle, fall over, draw a weapon, start swimming or go off duty.
As a tank empties, the water loses pressure: the stream reaches less far and starts to sputter when nearly empty. Water also pushes what it hits: props, vehicles and people.
Foam comes from a unit's own foam tank. Hydrants do not refill foam.
Hydrants and supply lines
The four stock fire hydrant models in the world work as hydrants. The server knows where every hydrant on the game map stands and gives water only there; hydrants from an add-on map are added in shared/config.lua (see Configuration).
- A line taken from a hydrant never runs dry.
- A supply line joins a hydrant to an apparatus within 30 m. Stand at the hydrant and use Supply line to engine; it goes to the nearest apparatus in reach. While it holds, the unit's attack lines never run out of water and its tank refills.
- Take supply line off, at the truck or at its hydrant, removes it. If the unit drives too far from the hydrant, the supply line pulls loose on its own.
Fire extinguisher
A player holding the game's fire extinguisher puts out fire in a cone in front of them, about 8 m deep. Anyone with an extinguisher can help, firefighter or not. It is meant for small fires: a point takes about 25 seconds on Standard, so an attack line is much faster on anything bigger.
The water cannon
The driver of a stock firetruk fires its roof cannon with the vehicle attack controls. The cannon reaches about 45 m and is the strongest tool, for knocking a big fire down from outside: it puts out every point it reaches in about 7 seconds on Standard.
The axe
A player holding a hatchet, battle axe or stone hatchet next to a smouldering point gets a Hot spot prompt, with a marker on the point. Pressing E starts pulling it apart. When the progress bar finishes, the point is out for good. How long it takes depends on the difficulty.
Fire extinguishers and axes are normal weapons from your inventory. The easiest way to hand them out is in a gear-room loadout.
Game feedback
Firefighting gives game-style feedback, so players can see they are getting somewhere. Here a spot is one burning point of a fire, to keep it apart from the points you score.
- Points pop up where they were earned, with a chime: +10 for each burning spot you put out, +5 for an assist when someone else puts out a spot you were spraying, +5 for soaking or overhauling a smouldering spot, and +25 for everyone who scored when the fire is out.
- Mistakes take points away, with a buzz: -5 when a spot you put out flares up again, -3 for plain water on a fuel fire (switch to foam), -5 for spraying another player and -5 for breathing smoke without your mask. Mistakes only count on a fire you have sprayed, and the same mistake costs points at most once every 10 seconds.
- A fire card on the right, under the air ring, shows your points on this fire and how far it is knocked down, with how many spots still burn and smoulder. It drops back when the fire spreads, and turns green when the fire is out. Where these panels sit is set in
Config.HudLayout. With Oxide HUD (free) installed, the HUD places them clear of its own widgets instead, players can move them or switch them off with/hud, and they hide when the HUD hides (see Configuration). - Every spot your water, extinguisher or axe reaches gets a bar over it showing the flames left, or Smouldering once it is knocked down.
Each player has their own points for each fire. Several firefighters on one fire see the same progress. The server counts everything, so a player cannot give themselves points.
Points are feedback only: they are never paid and never saved, and pay stays as it is. All of it can be switched off, or each amount changed, in /fire settings under Fires & Calls → Game feedback.
Firefighter safety
Breathing air (SCBA)
The SCBA is the mask and air cylinder firefighters breathe from in smoke.
- Using the
scbaitem puts the mask on (or takes it off). Players can also bind a key under Settings → Key Bindings → FiveM → "Fire: SCBA mask on/off". It has no key by default. - Putting the mask on plays an animation and puts a face piece on the character. Taking it off puts back what they wore before.
- While the mask is on, the SCBA itself is on their back: an air cylinder on a backplate with shoulder straps, and a waist belt. Every player sees it. It is shaped to the male and the female body, and hidden while they sit in a vehicle.
- While the mask is on, an SCBA ring on the right, below where most servers put their own HUD, shows the air left as a timer and a percentage. It turns amber at the head-out warning and flashes red with Low air at the alarm.
- Air only runs down while the mask is on. How long a full cylinder lasts depends on the difficulty (15 minutes on Standard).
- At 50% the firefighter is told to head out, with a sound.
- At 33% the low-air alarm starts beeping. Other players within 15 m hear it too.
- When the cylinder is empty, the mask no longer protects from smoke.
- If the
scbaitem leaves their inventory, the mask comes off. - Air is remembered per character across reconnects, until the server restarts.
Refilling. On-duty firefighters with the item refill their cylinder at a station Gear Room point (Refill SCBA), or with Refill SCBA at an apparatus that carries spare air: the department's engines, ladders and rescue units, plus any vehicle outside the fleet whose model is listed under Other refill vehicles (the stock firetruk by default). A refill takes 6 seconds with a progress bar. A refill also sets the cylinder to the size for the current difficulty.
Face piece. The piece put on with the mask is set under Safety → Breathing air (SCBA) → Face piece. Set it to the mask your clothing pack has.
Smoke
Smoke around a fire hurts anyone breathing it without air, firefighter or not.
- Every burning or smouldering point is surrounded by smoke, 4 m around it by default.
- Standing in smoke darkens the view. Without a working mask, the player coughs and is told to mask up or get out.
- After a few seconds holding their breath (3 by default), they start losing health: 4 health per second in the thickest smoke, and less in thinner smoke. Smoke around flames is half thickness by default, so it costs about 2 health per second.
- With
oxide-medicalrunning, what they breathe after the held breath goes to it instead, and it decides the harm: smoke inhalation that starts as a cough, turns into shortness of breath, dizziness and weakness, and ends in failing to breathe, losing health faster as it worsens. It lowers blood oxygen on a medic's vitals and clears in clean air, or at once with a medic's treatment. See theoxide-medicaldocs. - A mask with air in the cylinder stops all of it.
Rescue carries
On-duty firefighters can pick up a casualty and get them out:
- Carry puts them over the shoulder.
- Drag pulls them along the ground by the shoulders. S pulls, A and D turn.
Both are target options on another player. By default only players who are down (or dead) can be picked up. Once carrying, E puts them down and G switches between carry and drag; the keys show at the bottom of the screen. Players can rebind both under Settings → Key Bindings → FiveM.
The carry ends if the two players get more than 10 m apart, or when the carrier clocks out or disconnects. A casualty who is down cannot climb off by themselves.
Victim search and rescue
Structure fires can have people trapped inside.
ambulance and ems by default).Once a casualty is rescued, their survival clock stops.
If the survival clock runs out first, the casualty dies and is removed a minute later.
A fire that is put out, or burns out, leaves its casualties to be found. A fire stopped any other way (by an admin, or after running for 30 minutes) takes its casualties with it.
Station life
Station bell
A new call rings the bell at the stations. Anyone within 60 m of a station (by default) hears it ring three times. On-duty firefighters who hear it also get a notification naming the call.
Page-outs
With a phone resource that o-link supports, every on-duty firefighter gets a phone notification for each new call.
Call board
At a Clock In point, on-duty firefighters can open the call board. It lists every call burning right now with its code, type, place, how long it has been burning and how far away it is. Picking a call sets the GPS to it.
Rig checks
An on-duty firefighter can do a Rig check on a unit of their department that is parked within 30 m of its home bay. It takes 20 seconds and pays 150 by default.
- Each unit can be checked once every 30 minutes, and each firefighter can do one check every 30 minutes.
- With treasury-funded salaries on, the pay comes out of the department treasury, and no rig check is paid while the treasury is empty.
Lightning
With oxide-weather running, a lightning strike that lands inside an enabled wildfire zone has a 25% chance (by default) of starting a brush fire call. By default lightning follows the call generator's rules: no fire unless enough firefighters are on duty and there is room for another call.
Settings and administration
Almost every setting is edited in game through /fire settings: a searchable editor with Basic and Advanced tiers, grouped into Core, Fires and Integration. Settings are stored in the database and take effect without a restart. Any setting can be reset to its factory default.
Everything else, from departments and stations to apparatus, uniforms, loadouts, radio channels, incident sites and wildfire zones, is built in /fire admin, which also shows a setup checklist for each department and a live view of every fire burning.
Full details: Admin and Configuration.
ESX Installation
Install oxide-fire on ESX — the fire job in the jobs tables or by job table sync, the scba item, the department treasury and the ESX settings.
Exports & API Reference
The developer side of oxide-fire — server exports to start, read and clear fires and calls, report lightning and read settings, plus global state, state bags, events and integrations.