Fire & rescue
Fire
A logical, non-griefing fire simulation with arson controls, firefighting equipment, rescue gameplay, and property protection.
01
What it handles
Logical fire nodes
Intensity, fuel, spreading, merging, rain cooling, and visual range are simulated without uncontrolled block grief.
Heat & smoke danger
Distance-based damage, lingering fire, regeneration suppression, and smoke exposure create rescue urgency.
Property policy
WorldGuard and Property rules govern deliberate ignition, spreading, protected areas, and reignition cooldowns.
Firefighting equipment
Water and dry extinguishers, fire blankets, and turnout gear provide configurable cooling and heat protection; SCBA is currently an RP-only item.
Stop, drop & roll
Players can complete a movement sequence to smother personal flames without a special item.
Vehicle fires
Destroyed vehicles and minimum fuel intensity can feed controlled incidents through the Vehicles bridge.
Arson tools
Accelerant and ignition integrations allow deliberate scenarios within explicit region and cooldown policy.
Dispatch & administration
Location alerts, node status, and controlled admin ignition/extinguishing support fire department testing; investigation kits are currently RP-only.
02
Detailed guide
Fire is MC Skylines' logical fire and rescue system for Paper 1.21.11. Every flame is a server-owned simulation node: it can spread, merge, produce heat and smoke, and be extinguished, but it never places vanilla fire or destroys blocks. This guide describes the behavior that is implemented now, including equipment that is only reserved for a future workflow.
Install and verify the system
- Install WorldGuard. Fire declares it as a required dependency and will not start without it.
- Put the current
MCSkylines-Fire-*.jarin the server'spluginsfolder, then start and stop Paper once. - Review
plugins/Fire/config.yml,items.yml,recipes.yml, andmessages.ymlbefore opening the server to players. - Start the server and run
/fire statuswithfire.admin.status. A healthy response shows the active node count and current Property policy. - Decide where player arson is allowed. Configure the WorldGuard
fire-igniteandfire-spreadflags and then choose the Property policy described below. - Give production permissions only to approved roles. Craft permissions control who can manufacture equipment; they do not control who can use an existing item.
Start a fire
Controlled admin ignition
For the quickest test, stand within 30 blocks of a solid target, place the crosshair on that block, and run /fire ignite. The command requires fire.admin.ignite and must be run by a player. Fire searches for a safe surface on or near the target and creates a node at the configured simulation.initial-intensity, which is 55 by default.
The target still has to pass WorldGuard and Property protection. The command's confirmation text does not currently distinguish a successful ignition from a protection rejection, so verify the visible flame or check /fire status after running it.
Player ignition and arson testing
Ordinary gameplay has two direct ignition items:
- Flint and steel: hold it in the main hand and right-click the face of a block. Fire cancels vanilla ignition and asks the logical simulation to create a node on the adjacent surface.
- Accelerant Can: hold the genuine Fire item in the main hand and right-click a block. A successful ignition consumes the one-use can. A denied or cooldown-blocked attempt does not consume it.
No fire.* permission is checked when a player uses flint and steel or an Accelerant Can. Access is governed by possession of the item, WorldGuard flags, and the Property policy. If arson must be restricted by role, control access to flint and steel/accelerant through server rules, inventory policy, recipes, shops, or another protection layer.
An ignition can fail when the fire-ignite WorldGuard flag is denied, the Property policy blocks that origin, the area is inside its reignition cooldown, the selected point is liquid, or Fire cannot find a passable space over a supporting surface.
Configure where ignition and spread are allowed
Fire registers two WorldGuard state flags. fire-ignite governs new player, admin, integration, and vehicle ignitions. fire-spread governs nodes created by spread. Both flags default to allow, so deny them anywhere that must never participate in the simulation.
Use the normal WorldGuard region command format, for example:
/rg flag <region> fire-ignite allow
/rg flag <region> fire-spread allow
/rg flag <region> fire-ignite deny
/rg flag <region> fire-spread denyThe properties.policy setting adds a second check when the Property plugin identifies a managed parcel:
DENY_ALLblocks deliberate, system, vehicle, and spread ignition inside managed properties.SPREAD_ONLYblocks player/admin ignition. Spread is allowed, and system or vehicle ignition is allowed only whenproperties.system-ignitionistrue.ALLOW_WITH_COOLDOWNallows all origins, but a successful player ignition startsproperties.reignition-cooldownfor that property. The default is 30 minutes. Admin and system ignition do not claim this cooldown.ALLOWallows every origin that passes WorldGuard.
When Property is absent or the location is unmanaged, Fire cannot apply a parcel policy. Player cooldowns are instead grouped into square cells using properties.unmanaged-grid-size, which defaults to 32 blocks.
Understand fire intensity, fuel, spread, and merging
Each visible flame is one node with its own intensity and remaining fuel. The default node starts at 55% intensity with 180 seconds of fuel. While fuel remains, intensity decays slowly. After fuel expires, it falls quickly until the node disappears.
With the default configuration, each eligible node checks for spread once per second. A node must have at least 35 intensity, must pass the 12% spread roll, and must find a supported flammable destination within 1.75 blocks. Flammable destinations include Minecraft-flammable materials plus wool, planks, coal blocks, and hay blocks. The destination must independently pass fire-spread and the Property policy.
Nodes within the 0.85-block merge radius combine instead of stacking at nearly the same point. The existing node gains 40% of the incoming intensity, capped at 100, and its fuel is restored to at least the configured full duration. Multiple nearby nodes that do not merge contribute heat and smoke independently, so clustered fires are substantially more dangerous.
Rain cools exposed nodes at five intensity per second by default. A node in liquid is removed. Fire never changes the underlying block, burns inventory contents, spreads vanilla fire, or leaves permanent world damage.
Heat, smoke, burning, and medical effects
Heat and smoke are separate exposures:
- Heat: within the default 2.5-block radius, damage scales with node intensity and distance. At the exact center of one 100-intensity node, the configured maximum is 14 health points, or seven hearts, per second before turnout protection. Nearby nodes add together.
- Lingering fire: any nonzero heat exposure refreshes the player's fire timer to at least 100 ticks, or five seconds by default.
- Regeneration suppression: saturated food regeneration is blocked for 80 ticks, or four seconds, after exposure by default.
- Smoke: smoke reaches five blocks by default and affects players at or above the node's height. Moderate smoke applies Darkness. Heavier accumulated smoke deals damage at the configured rate.
- Health integration: accumulated heat can create first-, second-, or severe-burn conditions. Severe smoke can create smoke inhalation when Health is installed.
Moving away from the incident reduces both exposures. Going below the height of a fire node avoids that node's smoke calculation, which makes low movement useful during interior rescue RP.
Turnout suit protection
Only genuine plugin items worn in armor slots count as turnout gear. Renaming ordinary leather armor does nothing. The default equipment.turnout-piece-protection is 18% and the complete four-piece set receives another 10% bonus:
- One turnout piece reduces direct heat damage and accumulated burn dose by 18%.
- Two pieces reduce them by 36%.
- Three pieces reduce them by 54%.
- Helmet, coat, trousers, and boots together reduce them by 82%.
Protection is capped at 95% if an administrator raises the configuration. Turnout gear does not reduce smoke exposure or smoke damage. It also does not stop the lingering fire timer, the Darkness effect, or regeneration suppression; firefighters still need distance, extinguishment, and medical support.
The suit pieces have no Fire-specific durability or consumable-use counter. They remain ordinary leather armor items for normal Minecraft durability behavior unless another plugin or server rule changes it.
Extinguishers and fire blankets
Water and dry chemical extinguishers
Hold a genuine extinguisher in the main hand, aim along the desired line, and right-click. One stored use is consumed immediately, and a cloud effect shows the discharge direction. Both extinguisher types currently use the same equipment.extinguisher-range and equipment.extinguisher-cooling settings; the defaults are eight blocks and 38 total cooling distributed along the spray line.
The Water Extinguisher begins with 12 uses. The Dry Chemical Extinguisher begins with 10. When the counter reaches zero, the item remains in the player's hand but reports that it is empty. There is currently no refill action or separate performance model for water versus dry chemical units.
Aim through the visible fire nodes rather than merely at the supporting blocks. A large or merged incident may require several discharges. Because the line samples overlapping areas, placement and aim affect how much cooling a particular node receives.
Fire blankets
Hold a genuine Fire Blanket and right-click. One of its four default uses is consumed, the holder's personal fire ticks are cleared, and nearby nodes within 1.2 blocks lose 30 intensity. A fresh default 55-intensity node therefore usually survives one blanket use; move close and use it again if the area remains on fire.
Blankets are best suited to a burning person and a very small fire. They do not project cooling down a line like an extinguisher.
SCBA and investigation kits: current behavior
The SCBA Mask is currently an identified, craftable equipment item only. Wearing it does not reduce smoke, Darkness, smoke damage, or Health smoke-inhalation conditions in the present implementation. Do not tell testers that it provides respiratory protection yet.
The Fire Investigation Kit is also an identified, craftable item only. It is created with 16 stored uses, but no click action consumes those uses and there is no implemented cause/evidence inspection workflow yet. It can be used as an RP prop while the investigation system is unfinished.
These limitations are documented deliberately so admins can distinguish finished mechanics from reserved content.
Stop, drop, and roll
A player whose Minecraft fire timer is active can extinguish themselves without equipment:
- Stop horizontal movement and remain still for one second. Moving early resets the progress.
- Crouch and look down at least 55 degrees. The action bar changes from
STOPtoDROPand thenROLLas the requirements are met. - While still crouching and looking down, move a total of 2.5 horizontal blocks.
- On completion, Fire clears the player's fire ticks and confirms that the flames were smothered.
This removes the player's personal burning state; it does not cool nearby fire nodes. Use an extinguisher or blanket for the incident itself.
Craft, issue, and identify Fire equipment
When Core is installed, staff can issue an exact registered item through the shared item command, for example:
/skylines give fire:extinguisher_water <player> 1
/skylines give fire:extinguisher_dry <player> 1
/skylines give fire:fire_blanket <player> 1
/skylines give fire:turnout_helmet <player> 1
/skylines give fire:turnout_coat <player> 1
/skylines give fire:turnout_trousers <player> 1
/skylines give fire:turnout_boots <player> 1
/skylines give fire:scba <player> 1
/skylines give fire:accelerant_can <player> 1
/skylines give fire:investigation_kit <player> 1Every item also has a shaped recipe in recipes.yml. The matching fire.craft.<item_id> permission controls whether the recipe produces a result. fire.craft.* grants every Fire recipe. Craft permission does not grant admin commands and is not required to use an already-created extinguisher, blanket, turnout piece, accelerant can, SCBA mask, or investigation kit.
Names, base materials, item models, kinds, and starting uses live in items.yml. Recipes, ingredient materials, shapes, and craft permissions live in recipes.yml. Fire relies on hidden persistent item identity, so visually similar or renamed vanilla items do not become Fire equipment.
Vehicle fires and fire-engine water
With Vehicles installed and vehicles.ignite-at-zero-durability enabled, a wrecked vehicle creates a falling fire node unless the wreck is in liquid. Initial intensity is based on remaining fuel: the formula starts at 35 plus 65% of the fuel percentage, is capped at 100, and never goes below vehicles.minimum-fuel-intensity, which defaults to 35.
The node initially follows the vehicle's wreck velocity, falls under gravity, and becomes stationary when it reaches a surface. Vehicle ignition still has to pass the fire-ignite flag and applicable Property policy. Fire-engine water discharge calls the same logical line-cooling system with the range and cooling values supplied by Vehicles.
Dispatch and incident status
When Government is installed, every new non-spread ignition sends a dispatch message to online players who are on duty in the fire duty track. The message includes world, block coordinates, and starting intensity. Spread nodes do not generate additional dispatch spam.
/fire status reports active incidents, nodes, and the current Property policy. In the current implementation, the incident count equals the node count; nearby nodes are not grouped into a larger incident record.
/fire extinguish requires fire.admin.extinguish and removes every node within 12 blocks of the player by applying overwhelming cooling. Use it for test cleanup or a stuck scene, not as ordinary firefighter equipment.
Configuration reference
The most important config.yml settings and their defaults are:
simulation.update-ticks: 5— simulation update interval.simulation.spread-check-ticks: 20— one spread check per second.simulation.spread-chance: 0.12— chance per eligible spread check.simulation.spread-radius: 1.75— horizontal destination radius.simulation.merge-radius: 0.85— distance at which a new node merges.simulation.initial-intensity: 55.0— ordinary player/admin ignition strength.simulation.fuel-seconds: 180— full fuel duration.simulation.rain-cooling-per-second: 5.0— cooling for exposed nodes during storms.danger.radius: 2.5anddanger.smoke-radius: 5.0— heat and smoke reach.danger.damage-per-second-at-full-intensity: 14.0— center heat damage before protection.danger.lingering-fire-ticks: 100— minimum burning time refreshed by heat.danger.regeneration-suppression-ticks: 80— food-regeneration lockout after exposure.danger.smoke-damage-per-second: 1.0— multiplier once smoke is sufficiently dense.properties.reignition-cooldown: 30m— player-arson cooldown underALLOW_WITH_COOLDOWN.self-extinguish.stop-millis: 1000,roll-distance: 2.5, andlook-down-pitch: 55.0— stop/drop/roll thresholds.equipment.turnout-piece-protection: 0.18andfull-set-bonus: 0.10— suit protection formula.equipment.extinguisher-range: 8.0andextinguisher-cooling: 38.0— both handheld extinguisher types.
Run /fire reload with fire.reload after editing configuration, messages, item definitions, or recipes. If reload fails, the command reports the validation error instead of silently accepting a broken configuration.
Admin testing runbook
- Create an isolated WorldGuard test region and explicitly allow
fire-igniteandfire-spreadthere. Deny both flags in neighboring protected builds. - Set the Property policy you intend to use, run
/fire reload, and confirm it with/fire status. - Aim at a wooden, wool, coal, or hay test surface and run
/fire ignite. Confirm one visible node and a one-node increase in/fire status. - Wait through several spread checks and confirm spread stays inside allowed areas and chooses supported flammable surfaces.
- Try flint and steel as an ordinary player. Then use an Accelerant Can and confirm only a successful ignition consumes it.
- Under
ALLOW_WITH_COOLDOWN, immediately repeat player ignition in the same property or unmanaged grid cell and confirm the cooldown message. Verify admin ignition remains separate from that player cooldown. - Measure heat once without turnout gear and again with one, two, three, and four genuine pieces. Expect the default reductions of 18%, 36%, 54%, and 82%.
- Stand in smoke with and without an SCBA Mask. Both should currently behave the same; this confirms the documented unfinished SCBA mechanic instead of hiding it.
- Discharge each extinguisher down the fire line and confirm its use counter decreases. Empty the unit and confirm further right-clicks report that it is empty.
- Use a Fire Blanket while burning, confirm personal fire clears, and check whether a stronger nearby node needs another blanket use.
- Trigger stop/drop/roll: stand still for one second, crouch, look down, and move 2.5 blocks. Confirm this clears the player but not the incident.
- Test rain on an exposed node and liquid on a node. Confirm both cool or remove the logical fire without changing blocks.
- If Vehicles is installed, wreck a test vehicle at several fuel levels and test a fire-engine water discharge.
- Put a Government firefighter on duty in the
firetrack and confirm the initial dispatch contains usable coordinates while spread nodes remain quiet. - Finish with
/fire extinguish, then confirm/fire statusreports zero nodes.
03
Commands
| Command | Usage | Description | Permission |
|---|---|---|---|
/fire | /fire <status|ignite|extinguish|reload> | Fire system status and administration. | Subcommand-based |
04
Permissions
| Node | Default | Description / children |
|---|---|---|
fire.admin | No additional description.Includes fire.admin.status, fire.admin.ignite, fire.admin.extinguish, fire.reload, fire.craft.* | |
fire.admin.status | No additional description. | |
fire.admin.ignite | No additional description. | |
fire.admin.extinguish | No additional description. | |
fire.reload | No additional description. | |
fire.craft.* | No additional description. | |
fire.craft.extinguisher_water | No additional description. | |
fire.craft.extinguisher_dry | No additional description. | |
fire.craft.fire_blanket | No additional description. | |
fire.craft.turnout_helmet | No additional description. | |
fire.craft.turnout_coat | No additional description. | |
fire.craft.turnout_trousers | No additional description. | |
fire.craft.turnout_boots | No additional description. | |
fire.craft.scba | No additional description. | |
fire.craft.oxygen_tank | No additional description. | |
fire.craft.accelerant_can | No additional description. | |
fire.craft.investigation_kit | No additional description. |
Command and permission references reflect the current plugin.yml manifests in this workspace.