Func_detail is useful brush entity, similar to func_wall except it doesn't support Render Modes. Detailed brushes like tables, signs, computers, pipes, cars e.t.c. should be turned into func_detail instead of func_wall. Brushes tied into func_detail are Detail Brushes. Detail brushes don't block vis, nor slowing vis processing down. It won't chop other brushes- it helps to avoid many compiling warnings. The one of most important feature of func_detail is that detail brushes won't count into models limit (just like func_walls) which is very easy to exceed in Sven Co-op. You can customize detail level (description below), and collision of func_brush (it's better than func_illusionary because of better lightning receiving and in-game decals support). Using this brush in replace of func_wall is highly recommended. Every keyvalue are optional, it's recommended to leave them as they are (with an except of "Passable" key) for beginner mappers.


Detail level zhlt_detaillevel : The brush's detail level. Each level will be chopped by brushes of equal or lower detail level, and always be chopped by world brushes, and only chop brushes of equal or greater level. Use higher amount for smaller details. Try to avoid too many detail levels in the map (it increases .bsp file size). Example: func_detail table made of brushes have detail level of 1. On the table there are another func_details that represents computer screen, keyboard and mug. Those should have detail level value of 2 so they won't chop the faces of the table.

Lower its level to chop others zhlt_chopdown : If you set this value to no less than a detail level, this brush can chop world brushes (if 'detail level' minus 'lower it's level to chop others' is equal to 0) and brushes from lower detail levels.

Raise its level to get chopped zhlt_chopup : Specify to chop brushes from higher detail levels than this func_detail.

Priority when faces overlap zhlt_coplanarpriority : Helps prevent z-fighting between two or more overlapping detail brush faces by giving each detail its own priority. Note that both of those brushes must have the same detail level to make use of this priority (use detail level 0 to work with world brushes).

Detail level of clip hulls zhlt_clipnodedetaillevel : Should always be '0' or '1' unless you are grappling with cliphull errors.

Disable clipping zhlt_noclip : Specify whenever func_detail can be walked through ('Yes') or have full collision ('No'). Note that bullets will still hit this entity when it's passable.

  • 0 : Default
  • 1 : Always non-solid

Detail layers uses an advanced method to decide leafnode content, so they won't cause "Ambiguous leafnode contents" compile warning.

Despite becoming an ordinary world brush during compilation, it cannot be used to seal the map. It is kept separate from ordinary world brushes during processing of Hull 0 and as such cannot be used to prevent leaks. Only ordinary world brushes should be used to close up a map.

Even if Passable is set to Yes (zhlt_noclip 1) it will still be affected by decals such as sprays and bullet holes.