func_null

From Valve Developer Community
Jump to: navigation, search
Class hierarchy
CNullEntity
CBaseEntity
subs.cpp

func_null is a brush entity available in Mapbase Mapbase. It is a brush version of of info_null. This can be used for creating texlights that don't have a visible brush in-game, such as for prop-based lights or accentuating lighting coming in from a window.

Because this entity isn't removed on compile, it still counts toward the edict limit for a split second until removed on map spawn.

Cpp-16px.pngCode:This entity uses the same C++ class as info_null. As such, the same behavior can be achieved in any game simply by manually setting a brush entity's classname to info_null.
Note.pngNote:Hammer will strip brushes from entities which are defined in the FGD as point entities. It also does not allow a point entity and brush entity to share the same classname, as it will only use the most recently defined version. This be circumvented by using TeamSpen's Hammer Addons comp_kv_setter to change the classname from func_null to info_null.
Alternatively, add a func_null FGD entry to base.fgd; it will spit out an error in the console when loading the map, but will otherwise be ignored by the game, and will never count as an edict, unlike info_null.
AltNames.pngAltNames: This entity is also tied to info_null.

Keyvalues

Origin:

Origin (X Y Z) (origin) <origin>
The position of this entity's center in the world. Rotating entities typically rotate around their origin.
Name (targetname) <string>
Name of this entity. Can be used by compile tools as a spotlight target or a prop_static's lighting origin.
Also displayed in Hammer's 2D views and Entity Report.

Internal keyvalues used by VRAD:

Shadows (vrad_brush_cast_shadows) <boolean> (in all games since Source 2007)
Determines if this entity will cast lightmap shadows.

FGD entry

If using func_null outside of Mapbase, add this FGD entry to the end of base.fgd:

@SolidClass base(Origin) = func_null : 
	"A nonexistent entity that gets ignored by the game (will cause an error in the console, but this can be ignored." 
	+ "Useful for invisible texlights, such as those appearing to be cast by props or which accentuate the light coming in through a window."
[
	targetname(target_source) : "Name" : : "Name to use if this is a target for lighting calculations"
	vrad_brush_cast_shadows(choices) : "Cast Baked Shadows" : 0 : "Set this if this brush casts lightmap shadows." =
	[
		0 : "No"
		1 : "Yes"
	]
]