The only type of brush entity that can be pushed, pulled, lifted (not by the player) and fall, most commonly used with crates. It can also optionally be breakable.
Attributes
- Name (targetname) - Property used to identify entities.
- Material Type (material) - The type of material that a
func_breakable
or func_pushable
should act as. Options are:
- 0 = Glass
- 1 = Wood
- 2 = Metal
- 3 = Flesh
- 4 = Cinder Block
- 5 = Ceiling Tile
- 6 = Computer
- 7 = Unbreakable Glass
- 8 = Rocks
- Spawn on Break (spawnobject) - Used by
func_breakable
and func_pushable
. Determines what item is spawned when the entity is broken. Options are:
- 0 = Nothing
- 1 = Battery
- 2 = Health Kit
- 3 = 9mm Handgun
- 4 = 9mm Clip
- 5 = Machine Gun
- 6 = Machine Gun Clip
- 7 = Machine Gun Grenades
- 8 = Shotgun
- 9 = Shotgun Shells
- 10 = Crossbow
- 11 = Crossbow Bolts
- 12 = 357
- 13 = 357 Clip
- 14 = RPG
- 15 = RPG Clip
- 16 = Gauss Clip
- 17 = Hand Grenade
- 18 = Tripmine
- 19 = Satchel Charge
- 20 = Snark
- 21 = Hornet Gun
- Render FX (renderfx) - Gives objects special render effects. Think of it as modifying whatever the Render Mode puts out. The options are as follows:
- 0 = Normal
- 1 = Slow Pulse
- 2 = Fast Pulse
- 3 = Slow Wide Pulse
- 4 = Fast Wide Pulse
- 5 = Slow Fade Away
- 6 = Fast Fade Away
- 7 = Slow Become Solid
- 8 = Fast Become Solid
- 9 = Slow Strobe
- 10 = Fast Strobe
- 11 = Faster Strobe
- 12 = Slow Flicker
- 13 = Fast Flicker
- 14 = Constant Glow
- 15 = Distort
- 16 = Hologram (Distort and Fade)
- Render Mode (rendermode) - Controls the type of rendering that is used for an object. Options are:
- 0 = Normal
- 1 = Color
- 2 = Texture
- 3 = Glow
- 4 = Solid
- 5 = Additive
- Global Entity Name (globalname)
- Target on break (target) - If breakable, this event will be activated when broken.
- Strength (health) - If breakable, this is the amount of damage to be taken before breaking.
- Gibs Direction (explosion) - Direction the gibs will go when the brush is broken. Values:
- 0 = Random
- 1 = Relative to attack
- Delay before fire (delay) - Delay before Target on Break is triggered after being broken.
- Gib Model (gibmodel) - Specify a gib model to use. This overrides the default specified by Material Type.
- Explode Magnitude (explodemagnitude) - A non-zero value here creates an explosion when the object breaks.
- FX Amount (renderamt)
- FX Color (rendercolor)
- Light Origin Target (light_origin)
- Hull size (size) - The parameter is supposed to set the entity size, but it doesn't do anything. See Notes.
- Friction (friction) - This determines the amount of resistance the brush will give when the player pushes it. Range is 0 to 400, where 400 is the most resistance.
- Bouyancy (bouyancy) - Determines how well the brush floats on water.
- Minimum Light level (_minlight)
- ZHLT Lightflags (zhlt_lightflags)
Flags
- Breakable (128) - If this is enabled, the entity will act like a
func_breakable
.
Notes
- Can't be broken by impact like a
func_breakable
does with "Pressure" on.
- Deathmatch only: Items spawned by this entity will keep respawning eventually where it was broke after pick up.
-
The solid collision of a
func_pushable
, as well as the surface area for bouyancy, is defined by the bounding box instead of the individual brushwork. To change the bounding box you can incorporate a brush with the BOUNDINGBOX
tool texture into the entity - the axis-aligned bounding box of that brush will be the entity's bounding box instead. Brushwork outside this custom bounding box effectively becomes non-solid.
- The Hull-size parameter doesn't work as it's supposed to due to how it's implemented in code. The
size
key-value is a part of basic entvars, and the entity-specific key-value handler never runs to do the supposed work. And even if code is rewritten to handle the specified hull-size, it won't work correctly for the brush entity without an origin brush.
The Hull Size (size) determines which of the three cliphulls to test its own collisions against.
This is why a big pushable using HULL1 or HULL3 might be clipping into world geometry when pushed around.
("Am I colliding with the world?" from the pushable's perspective).
This isn't the same sort of collisions as when a player is touching/climbing the pushable, in which case it's the player testing collisions against the pushable's own cliphulls, which are similar to its shape regardless of size.
("Am I colliding with the pushable?" from the player's perspective).
If the entity is smaller than 32x32 it will act like it's 32x32.
If the entity is larger than 32x32 it will act like it's 64x64.
In both cases the effective size is aligned to the bottom left corner of the entity.
Yes, it's all counter to what we read in code. I have no explanation why.
https://twhl.info/thread/view/20806
Could never get the engine to use the pointhull for entity-world collisions. Will try to implement it myself someday when I get some free time.