Wildfires in A Hexcrawl
This post on reddit asks how to rule a forest fire started by player characters.
My day job involves running forest growth and wildfire simulations. I got into it via GIS & R coding and have little formal forestry/forest-ecology background, but I work closely with ecologists and have learned a lot from conversing with them and reading their research.
TL;DR you probably don't need hexmap-scale wildfire rules because there are good reasons why a fire in a typical fantasy milieu wouldn't burn out of control. But if you want them anyways, see below for a rough stab at it.
Historical/anthropological notes
FIrst (if you'll indulge a bit of soapboxing), indigenous and pre-modern societies used controlled fire to shape landscapes pretty-much universally around the world.1 Even areas that don't have many natural ignitions (like the west side of the Cascade Mountains) have evidence of burn scars that appear consistently up until the mid-1800s.

From what I understand, this is even true in Europe, especially in Mediterranean climates.2
Cultural burning practices provided a wide variety of benefits:3
- Starting controllable fires depletes fuels (dry leaves, twigs, dead trees) that would cause fires to burn out of control during peak dry season.
- Mild fires can clear away shade-tolerant understory trees to preserve food-bearing overstory trees like oaks and hickories.
- Fires remove underbrush to make forests traversable on foot, and to make hunting easier.
- Fires create space for prey animals to graze, and sight-lines for bow hunting.
- Fires can select for useful vegetation (e.g. indigenous Californians burned to promote the growth of fire-tolerant tubers and basketry fibers).
- Fires can create defensible sightlines around a settlement (raids are easier if you can sneak up through the underbrush).
Techniques for igniting & controlling these fires vary. Most involve taking advantage of circumstances that naturally keep fires in check, like wetter seasons or starting fires at high elevations (usually fires are worse when burning up a slope).4
Anyways, the point is that fire suppression as the default form of forest management (and it is a form of management, one that requires massive amounts of effort, lives, funds, and toxic chemicals to maintain) is a historical anomaly. For tens of thousands of years, humans have been using fire to sustainably create landscapes amenable to human flourishing. The disappearance of these techniques is part of a broader story of land enclosure, primitive accumulation, and colonialism. The aim of fire suppression is not to preserve forests, but to enable speculative housing developments (in the short term), maximize profits from logging, and make indigenous lifeways untenable. Smokey the bear is a fascist.
So the perception of wildfire inferred from news of catastrophic events in the US mountain west is a product of capitalist white-supremacist modernity, and (hopefully) not necessarily applicable to your campaign setting. If your murderhobo players start a fire in the woods, there's a good chance that the locals have quietly taken steps to ensure the result is fairly trivial.
Technical notes
What it means for a fire to "burn" an area is not cut & dry. Some concepts:
Size: Fires burn an area of land, often called a "footprint". These are usually contiguous but blowing embers can create discontinuities. Within a landscape, the set of fire sizes usually approximates a power law distribution, which essentially means that there are very few big fires and lots and lots of tiny fires that don't spread much. Most fires do not reach the size where they would be relevant at the scale of a 6-mile or even 3-mile hex -- I queried the data for my study landscape in eastern WA and found that only 27 fires in the last 40 years had a footprint at least half the size of a 6-mile hex -- this is in a fire-prone area.
Spread: Fires exist as a "front" or "fireline" that changes over time. Where the fireline goes depends on the location of burnable fuel, which way the wind is blowing, terrain, and the vegetation structure (see below).
Severity: an intuitive concept that gets tricky upon examination.
- Intensity: how much energy is released by a fire, literally flame length and heat. Affects how deeply organic matter in the soil is scorched, which affects what starts growing back in the wake of a fire.
- Mortality: what percentage of trees are killed by a fire. The tricky thing is that this varies by what's there to burn -- a low intensity fire can wipe out an area of saplings or shrubs, but a high intensity fire may still only kill 50% of old growth fire-resistant trees.
- Structure: trees are 3d. Fires usually start on the ground. How burnable a tree is is a function of size. Accordingly, fire-adapted trees often shed their lower branches and leaves so that a fire on the ground can't reach easily-ignitable bits. A fire that meets a patch of old growth forest with little underbrush will thus burn through the bed of leaves/needles on the ground more or less harmlessly. On the other hand, a forest with closely-packed smaller trees or trees of lots of different ages creates what is called a "fuel ladder" -- a fire that starts on the ground can burn into the branches of a sapling, then jump to a juvenile tree, then into the canopy of the oldest trees to become a "crown fire". Trees that have their crowns burn die. This is the forest structure that fire suppression is really good at creating.
Ok, but if you were going to do it...
The following is a vibes-based synthesis of things I've learned about wildfire and is NOT empirically grounded. The percentages reflect my impression of the magnitude of different risk factors, but you will almost certainly need to tinker with the exact values to achieve a satisfying result.
First, decide on your setting's overall fire risk. Risk factors:
- Dry climate: dry areas burn more readily.
- Especially if paired with a wet season, where vegetation grows a lot and then dries out.
- Especially if it's currently well into the dry season
- Fire exclusion: if an area hasn't had a fire in a while, fuels will have built up.
Based on these, consider modifying the base chance of fire spread by +/- 0-15%. Generally, areas with an active fire regime have a specific fire season (or seasons) in which fires are possible, with almost no notable amount of fire outside it.
I am only familiar with north American montane forests and chaparral, and again, as noted above, my knowledge is mostly confined to what is needed for broad-scale modeling. Adjustments will be needed to simulate other types of environment.
Fuel mapping
Next, map your area in terms of fuel types. Applicable categories:
| Fuel type | Explanation | Base spread % | Base canopy % | Canopy spread % |
|---|---|---|---|---|
| Grassland | Grasses can convey fire rapidly but have no overstory to generate high-intensity fire. | 25% | N/A | N/A |
| Shrubland | Ditto. | 25% | N/A | N/A |
| Young forest | Ditto. | 25% | N/A | N/A |
| Riparian | Wet areas around a river tend to act as a barrier to fire spread | 10% | 5% | 15% |
| Mixed-age forest | Trees of varied sizes and ages in close proximity create "fuel ladders" with a high risk of igniting crown fires. | 25% | 45% | 65% |
| Old forest | Old trees outcompete young to create sparse understory vegetation | 15% | 5% | 55% |
| Bare ground / water | Sand deserts, mountaintops, etc. | 0% | N/A | N/A |
| Urban (pre-modern) | Wooden buildings burn easily and can transmit fire to canopy. | 20% | 20% | 50% |
| Recently burned at low severity (any previous type) | Fuel depleted areas act as barriers to fire spread. | 5% | 5% | 40% |
| Recently burned at high severity (forests only) | Burned areas with high tree mortality quickly end up creating new fuels as branches fall from dead trees and shrubs establish. | 25% | 25% | 40% |
Assigning these to an existing hexmap is up to the referee's judgement. Obviously grassland and riparian areas are self-explanatory. Notes on fictional ecology may help with the placement of forest types (e.g. the presence of Elves or Dryads indicates an old forest; ecologically irresponsible Brigands might create mixed-age forests by over-harvesting firewood from the surrounding hexes).
Consider running the fire procedure a few times on randomly-selected hexes to generate a rudimentary fire history for your setting.
Fire procedure
To simulate a fire:
- Mark the ignition hex as burning.
- Determine wind direction, wind speed, and rain (see table below, or using your own weather rules).
- Check for spread from ground to canopy.
- Roll d% against the hex's canopy spread type
- Check all neighboring unburned hexes for ground spread.
- Sum the hex's base spread % (above) with modifiers (below), then check with a d% roll-under.
- (If canopy burning) check all neighboring unburned hexes for canopy spread.
- Sum the hex's base canopy spread % (above) with modifiers (below), then check with a d% roll-under.
- If canopy fire is initiated, ground fire spread occurs as well even if ground spread check failed.
- Mark previously burning hexes as no longer burning. Resolve damage to characters and structures.
- Repeat for all currently burning hexes.
| Factor | Ground spread % | Canopy spread % |
|---|---|---|
| Downwind from burning hex (within one directional step) | +10% | +10% |
| Upwind from burning hex | -10% | -10% |
| Currently raining | -15%, -25% if grassland.5 | -15% |
| Recent rain (3 days) | -10% | -20% |
| Abundant fuel | +5-20% | +5-20% |
| Per adjacent burning hex | +5% | +5% |
| Per adjacent crown fire hex | +25% | +25% |
| Uphill from burning hex | +10% | +10% |
| Downhill from burning hex | -10% | -10% |
Weather table for a high-fire-risk scenario. Adjust the Rain column as necessary to reflect local climate.
| d6 | Wind direction | Wind speed | Rain |
|---|---|---|---|
| 1 | N | 0% | N |
| 2 | NE | 5% | N |
| 3 | SE | 5% | N |
| 4 | S | 10% | N |
| 5 | SW | 15% | N |
| 6 | NW | 50% | Y |
Effects
Parentheticals denote number of years after fire. E.g. a young forest reverts to bare ground for a year, then grass for years 2-3, then shrubland for years 4-5, then young forest for years 6-20, then mixed-age forest for years 21-100, then old forest.6
Note that you will have to decide the "peak" vegetation condition of each hex -- in a real-world landscape, some grasslands exist because the land/climate cannot support trees, but others exist because of regular wildfires.
| Previous terrain | New terrain (ground fire only) | New terrain (canopy fire) |
|---|---|---|
| Grassland | Bare (1), grass | N/A |
| Shrubland | Bare (1), grass (3), shrub | N/A |
| Young forest | Bare (1), grass (3), shrub (5), young forest (20), mixed age forest (100), old forest | N/A |
| Riparian | Riparian | Bare (1), grass (3), shrub (5), young forest (20), riparian |
| Mixed-age forest | Old forest | Bare (1), grass (3), shrub (5), young forest (20), mixed age forest (100), old forest |
| Old forest | Old firest | Bare (1), grass (3), shrub (5), young forest (20), mixed age forest (100), old forest |
| Bare ground / water | N/A | N/A |
| Urban (pre-modern) | 3d20% of structures damaged | Burned down. |
| Wilderness structure (hut, bandit camp, castle) | 50% chance of damage, reduce to 25% if ditches or bucket brigade are feasible. | 75% chance of damage. |
For a verisimilitudinous landscape, select a "fire regime" die and roll it every year to determine number of ignitions, then simulate a fire for each ignition.
See here for a good summary synthesizing fire ecology with indigenous knowledge for the US.↩
My knowledge is very US-centric, and I would love to know more about practices from elsewhere in the world.↩
Mostly drawn from Fire in California's Ecosystems by Van Wagtendonk et al., but also informed by conversations with fire ecologists.↩
A cool example I learned about is a tribe in northern California that would plant lodgepole pine trees on ridge tops (where they wouldn't usually grow) to act as lightning rods to start fires that proceed down from high elevations. Another method was to cram kindling into cracks in dead logs, set it alight, and then rolling the logs down a hill to spread embers around.↩
Grasses, being small, absorb water rapidly and can quickly transition from flammable to fire-resistant based on recent rainfall.↩
These numbers probably aren't a realistic successional timeline but the gist is there.↩