Core settings and performance

Everything lives in firescriptv2/config.lua.

Limits

  • MaxFires — hard ceiling on simultaneous fires
  • MaxFlames — most flames one /startfire may create
  • MaxSpread — largest spread distance /startfire may use

Ranges

  • FireDetectionRange — fires within this distance of a player are rendered (default 100 m)
  • FireParticlesRange — far clip for fire and smoke particles
  • Config.Scenarios.RenderRange — where scenario dressing spawns (default 150 m)

The game's fire pool — important

GTA keeps script fires in a pool of 128, and a full pool does not refuse a new fire, it drops an old one. That is how a big scene used to put itself out flame by flame.

  • MaxNativeFires — the most native fires this client holds at once (76). 0 measures the pool at start-up and holds NativeFireShare of it
  • NativeFireStride — native fires go on every Nth flame (2). The native fire is what burns the player and what the vanilla cannon puts out
  • NativeFireRange — only fires within this distance hold native fires (60 m). Further out they burn as particles and pick natives back up as you approach. Keep it above the hose's reach
  • ScriptFireChildren — how many times each native fire may spread on its own (0-25). Keep it at 0. Every child is another fire the hose has to find, it relights the flame next to it, and a big scene fills the pool so later fires silently fail

Particle budget

The game can only draw so many particle effects at once; past that they exist but render nothing, and whole fires look like they vanished.

  • FlameParticleStride — one flame particle per this many burning flames (2). Carriers are re-chosen as flames go out, so the fire visibly shrinks
  • ParticleScaleBoost — how much bigger a shared effect is drawn (1.3) to cover the flames it stands in for
  • MaxFlameParticles — hard cap on flame effects drawn at once (96), nearest fire first
  • SmokeFlameStride — smoke on every Nth drawn flame (2)

Every flame still burns, damages and is put out on its own — only the drawing is pooled.

Ground snapping

GroundSnapTolerance — every flame is dropped onto the surface under it, but never further than this, so a fire on an upper floor whose slab has not streamed in is not dragged down through the building to the street.

Putting fires out (Extinguish)

  • RelightChance — 0..1 chance a knocked-down flame relights at all. 0 = out is out, always
  • RelightDelayMin / RelightDelayMax — seconds a relighting flame stays out first. Both default to 0, so a hosed flame either dies on the spot or is straight back one step smaller
  • MinScale — each relight shrinks the flame; the last is this fraction of full size
  • NearCheckInterval — how often (ms) a flame is checked within 60 m. Lower is more responsive
  • NativeFireRefresh — every flame relights its native fire this often, so a burn-out can never happen and a flame going out can only mean water

At the default RelightChance of 0.35, roughly two hits in three kill a flame outright.

Persistent smoke

Enabled, Duration, FadeOut, FadeTime. Requires the fire type's smoke.playafter = true. Per-type override with FireTypes[type].smoke.persistDuration.

Heat damage (HeatDamage)

Off by default so it never surprises firefighters doing their job. Enabled, Radius (metres from a flame, not the fire's centre), Damage, Interval.

It counts every burning flame, not just the ones holding a native fire — and still picks up fire from any other source: a burning car, an explosion, another resource.

Can't find what you need? Ask on Discord — response in under 5 hours.