Effect flags

From Valve Developer Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
English (en)Translate (Translate)

A set of bitflags for configuring client-side visual effects.

Usage From Hammer

Effect flags can be configured from Hammer. To do so, turn off SmartEdit and add a new keyvalue pair:

effects <n>

"n" is the sum total of the flags you want to use. For example, 66 would mean EF_BRIGHTLIGHT and EF_NORECEIVESHADOW.

Alternatively, you can add the following code (or similar) to the FGD entries of entities you wish to use effect flags on:

effects(choices) : "Effect Flags" : 0 : "For configuring visual effects. If you want to combine effects, simply type in the sum of the effect numbers, e.g., '72' for 64+8." =
[
	0: "0 - None"
	1: "1 - EF_BONEMERGE: Bonemerge always (very expensive!)"
	2: "2 - EF_BRIGHTLIGHT: Bright, dynamic light at entity origin"
	4: "4 - EF_DIMLIGHT: Dim, dynamic light at entity origin"
	8: "8 - EF_NOINTERP: No movement interpolation"
	16: "16 - EF_NOSHADOW: Don't cast shadows"
	32: "32 - EF_NODRAW: Don't draw entity (entity is fully ignored by clients, NOT server; can cause collision problems)"
	64: "64 - EF_NORECEIVESHADOW: Don't receive dynamic shadows"
	128: "128 - EF_BONEMERGE_FASTCULL: Bonemerge only in PVS, better performance but prone to disappearing. Use with Bonemerge."
	256: "256 - EF_ITEM_BLINK: Unsubtle blink"
	512: "512 - EF_PARENT_ANIMATES: Flag parent as always animating and realign each frame"
]

If you wish to use effect flags on enough entity classes, it may be worthwhile to create or modify a BaseClass instead of adding code to numerous entity classes individually.

Tip.pngTip:Effect flags are enabled by default in TeamSpen's Hammer Addons TeamSpen's Hammer Addons.

Flags

EF_BONEMERGE : [1]

Merges bones of names shared with a parent entity to the position and direction of the parent's.

EF_BRIGHTLIGHT : [2]

Emits a dynamic light of RGB(250,250,250) and a random radius of 400 to 431 from the origin.

EF_DIMLIGHT : [4]

Emits a dynamic light of RGB(100,100,100) and a random radius of 200 to 231 from the origin.

EF_NOINTERP : [8]

Don't interpolate on the next frame.
Icon-Bug.pngBug:Causes crashes.  [todo tested in ?]

EF_NOSHADOW : [16]

Don't create a render-to-texture shadow, does not affect projected texture shadows.
Note.pngNote:Same as disableshadows 1.

EF_NODRAW : [32]

Entity is completely ignored by the client, and stops drawing the entity.
Icon-Important.pngImportant:Can cause prediction errors if a player proceeds to collide with it on the server, so use rendermode 10 instead if this is a problem.


EF_NORECEIVESHADOW : [64]

Don't receive dynamic shadows.
Note.pngNote:Same as disablereceiveshadows 1.

EF_BONEMERGE_FASTCULL : [128]
EF_ITEM_BLINK : [256]

Blink an item so that the user notices it. Added for original Xbox, and not very subtle.

EF_PARENT_ANIMATES : [512]

Assume that the parent entity is always animating. Causes it to realign every frame.
Note.pngNote:Does not function with the effects keyvalue.

EF_MARKED_FOR_FAST_REFLECTION : [1024] (in all games since Portal 2)

Marks the entity to render in fast water reflections.
Note.pngNote:Same as drawinfastreflection 1.

EF_NOSHADOWDEPTH : [2048] (in all games since Portal 2)

Stops env_cascade_light and env_projectedtexture from making shadows for this entity.
Note.pngNote:Same as disableshadowdepth 1.

EF_SHADOWDEPTH_NOCACHE : [4096]

Don't cache this entity into shadow depthmaps, update it every frame.

EF_NOFLASHLIGHT : [8192] (in all games since Portal 2)

Stops projected textures from making shadows for this entity.
Note.pngNote:Same as disableflashlight 1.

EF_NOCSM : [16384] (in all games since Counter-Strike: Global Offensive)

Don't cast shadows from cascade shadow maps.

Functions

Warning.pngWarning:Make sure not to confuse EF_ effect flags with EFL_ entity flags (aka EFlags). Always use the following AddEffects series of functions for the EF_ flags on this page, and never AddEFlags. Even some of Valve's own code and past versions of this article have made this mistake!
  • AddEffects() / SetEffects()
  • RemoveEffects()
  • GetEffects()
  • IsEffectActive()

See also