This article's documentation is for anything that uses the Source engine. Click here for more information.

env_fire

From Valve Developer Community
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
The modern, particle-based env_fire effects.
The classic, sprite-based env_fire effects.
Env fire.png

env_fire is a point entity available in all Source Source games. It handles a single flame (_firesmoke) at its origin. The flame causes heat "damage" to other env_fire entities around it and will eventually ignite them, causing the fire to spread. env_firesource will add heat damage to nearby env_fire entities and ignite them/maintain ignition.

Prior to the Orange Box, fire had a different effect made up of sprites generated dynamically through code instead of a particle system. The modern effects are defined in a PCF file, meaning they can be customized without code modifications, but they are far less dynamic than the classic effects, having only four premade sizes and no ability to set the attack/grow time through Hammer. All of Valve's games were updated or later shipped with only the particle-based fire effects, but the classic fire was eventually reimplemented as a setting in the Half-Life 2 Half-Life 2 20th Anniversary Update. Many of the settings on this entity were designed with only the classic fire in mind, so it is documented here.

Note.pngNote:The fire may fall through the world on spawn if placed exactly at ground level. Place it a little bit above the ground to fix this, or enable the "don't drop" spawnflag.
Icon-Bug.pngBug*:While still available, it does not have particle effects in Portal Portal or Team Fortress 2 Team Fortress 2. See Portal:Env Fire fix and TF2/Creating fire for fixes/workarounds.
Class hierarchy
CFire
CBaseEntity
fire.cpp

Keyvalues

Name (targetname) <string>
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Duration (health) <integer>
Amount of time the fire will burn.
Size (firesize) <integer>
Height (in world units) of the flame.
Note.pngNote:While still affecting the hitbox normally, the modern particle-based fire only visually supports four preset sizes corresponding to specific ranges:
  • 35 or less: tiny
  • 36-71: small
  • 72-107: medium
  • 108 or greater: large
Attack (fireattack) <integer>
Amount of time the fire takes to grow to full strength.
Note.pngNote:Has no visual effect for modern particle-based fire (the hitbox is still affected though).
Type (firetype) <choices>
Either Natural or Plasma. Natural is a general all purpose flame, like a wood fire.
  • 0: Natural
  • 1: Plasma
    Icon-Bug.pngBug*:Doesn't work. Code for the plasma effect does exist in the SDK, however.
Ignition Point (ignitionpoint) <float>
Amount of heat 'damage' to take before this flame should ignite.
Damage Scale (damagescale) <float>
Multiplier of the burn damage done by the flame.
Light Color (LightColor) <color255> (in all games since Alien Swarm)
Color of dynamic light for this fire.
Light Radius Scale (LightRadiusScale) <float> (in all games since Alien Swarm)
Multiplier for the glow radius.
Light Brightness (LightBrightness) <integer> (in all games since Alien Swarm)
Integer exponent for the glow brightness.
Loop sound (LoopSound) <sound> (in all games since Alien Swarm)
Looping sound to play while this fire is burning.
Ignite sound (IgniteSound) <sound> (in all games since Alien Swarm)
One shot sound to play when the fire starts.
Start Disabled (StartDisabled) <boolean> Obsolete
Deprecated.
Stay dormant until activated. Doesn't work, use "start on" flag instead.

Flags

Infinite Duration : [1]

Note.pngNote:In Alien Swarm, an env_fire cannot be extinguished with the fire extinguisher unless Infinite Duration is set.

Smokeless : [2]
Start On : [4]

Start Full : [8]

Confirm:Makes the classic fire effects start at full size instead of growing?

Don't drop : [16]
No glow : [32]
Delete when out : [128]

Visible from above : [256] (removed since Alien Swarm)

Note.pngNote:Has no effect for modern particle-based fire, which is always visible from above.

No sound : [256] (in all games since Alien Swarm)
No ignite sound : [512] (in all games since Alien Swarm)
No fueling once lit : [1024] (in all games since Alien Swarm)
Fast burn think : [2048] (in all games since Alien Swarm)

Inputs

StartFire
Start the fire.
Extinguish <float>
Puts out the fire permanently in the number of seconds specified.
ExtinguishTemporary <float>
Puts out the fire temporarily in the number of seconds specified.

EnableDisable:

Enable / Disable
Enable/disable this entity from performing its task. It might also disappear from view.

Outputs

OnIgnited
Fires when the fire is first ignited.
OnExtinguished
Fires when the fire is fully extinguished.

ConVars/Commands

Cvar/CommandParameters or default valueDescriptorEffect
fire_maxabsorb50Arbitrary number (float)Upper limit for how much heat "damage" a fire can take before the damage begins to force the flame to grow. Heat is usually absorbed from other env_fires.
fire_absorbrate3Multiplier (float)Scalar for how fast fires can absorb heat.
fire_extscale12Multiplier (float)Effectively only a scalar for the Strength of an env_extinguisherjet.
fire_extabsorb5Multiplier (float)
Todo: Effect description.
fire_heatscale1.0Multiplier (float)Scalar for how much damage a fire can do (both to fires and other objects such as the player).
fire_incomingheatscale0.1Multiplier (float)Scalar for how much heat a fire can take from other fires if it is already ignited.
fire_dmgscale0.1Multiplier (float)
Todo: Effect description.
fire_dmgbase1Health AmountBase damage that a fire does to objects such as the player. This amount multiplies depending on the user's difficulty setting:
  • Easy: x1
  • Normal: x2
  • Hard: x3
fire_growthrate1.0Multiplier (float)Scalar for how much heat a fire can passively add to itself at once. Thinking interval is 0.1 seconds.
fire_dmginterval1.0SecondsOnce a fire has damaged something, it will wait this long before it can damage anything again.