Brush entity

From Valve Developer Community
Jump to navigation Jump to search
English (en)Español (es)Português (pt)Русский (ru)中文 (zh)Translate (Translate)

A Brush Entity is an entity type in the GoldSrc GoldSrc and Source Source engines, created by tying an entity to a model made out of BSP geometry (brushes) in the map, giving the brush a specific effect or ability defined by the entity tied to it. (The default shortcut is Ctrl + T after selecting a brush)

Purpose and Uses

Brush entities are used for entities that require an area or trigger zone to be touched, hit, or used in order to perform a specific task.

Another use of brush entities is to create a physical object that can move, such as an elevator, or a door (can be made by many brushes selected together and tied as a whole to a brush entity, forming a brush model).

A great example of a brush entity that implements both of these designs is a func_button, which requires a brush to specify the area the player must press, touch, or shoot to activate the button; the button can be made using any shape of brush, or even a group of brushes, and can be textured to give the appearance of a real button.

Brush entities such as the func_button have special features that affect the physical brush they're tied to, such as moving the brush in a general direction when activited, giving the effect of the button being pushed in and then popping back out.

Another example of a brush entity is a trigger_multiple which can fire some outputs once the player walks into its area of effect (the volume of which is defined by the volume of the original brush used to make the trigger).

Tip.pngTip:Many brush entities work when spawned dynamically via commands/vscript and setting keyvalue solid 2 and desired mins/maxs after the entity has been spawned. This is useful when needing to create non-visual brush entities without recompiling the map. It's also possible to reuse bmodel of other brush entities used in the given map.
PlacementTip.pngExample:Making trigger_multiple by console commands which will break any prop_physics that touch it
ent_create trigger_multiple targetname test spawnflags 1032 OnStartTouch "!activator,Break";
ent_fire test addoutput "solid 2";
ent_fire test addoutput "maxs 100 100 100";
ent_text test; ent_bbox test;

(not all games' ent_create command supports more parameters beyond classname in which case they need to be set via ent_fire addoutput)

General types

Trigger brush entities

These are invisible during normal play and fire outputs or affect entities when they touch the trigger's brush. They are subclasses of CBaseTrigger and their visibility can be toggled using showtriggers_toggle if their brush used a visible texture like toolstrigger.

Nav controlling brush entities

These aid in controlling or creating the navmesh and are also invisible.

Visual brush entities

Brush entities whose brush is intended to be seen by the player and may add some special functionality to it.

Other

See also