ZHLT Keyvalues

Modified

06-Jul-2023

Advanced Light, ZHLT and Vluzacn's keyvalues. Sven Co-op FGD includes those keys in entities that support ZHLT keyvalues. ZHLT keyvalues are resolved at compile time to alter light settings or add special effects to improve lightning on your map. More info about ZHLT/VHLT compile tools can be found here.

Minimum light level _minlight : Brush entities only, supports value '0' for default, and '1' for full brightness on this entity. This is useful when you need textures of this entity be always visible by ignoring the light level e.g. computer screen in the darkness or hologram. Similar effect for models in point entities can be achieved by setting "Render Mode" to "Additive".

ZHLT1

ZHLT Template Model Target zhlt_usemodel :

  • Brush entities: sets brush model template of this entity. Set it to the name of other brush entity (now called a template) and it's brush model will be used instead. Templates might save server resources by "copying" single brush entity (template identified by name) and using it in multiple places (can be used for entities like tables, columns, barrels, cars e.t.c.). Also one template occupies only one entity slot when compiling a map, no matter how many entities refers to it.
  • Model-based point entities: copy display model of specified entity, to use it's model instead. Using "Custom model" is more appropriate in most cases, however, when it's not possible, use zhlt_copylight.

ZHLT Copy Lighting From Target zhlt_copylight :

  • Brush entities: copies light info from specified entity. This can be useful when we want this entity to be light up in a similar way the other entity of the map is, e.g. we have few func_pushables on map, and they are lit differently, tough they can be moved (and lightning is not updated on dynamic entities), it may looks shabby. With this keyvalue we can prevent this making all func_pushables received light in a same way. Another example: we have few windows in corridor (e.g. func_breakables), all of them receive a light in acceptable way, but the last window receive part of the light from another room and breaking whole atmosphere. We can set this window "Copy Lightning From Target" to any other window to fix this. Note that this can be also used for completely different entities, so we copy lightning from func_door to func_breakable as well.
  • Model-based point entities: if model lightning does not satisfy you (e.g. it's too dark) you can specify a name of entity here to copy it's lightning values- it can be other model-based entity or simply info_target.

ZHLT Disable Clipping zhlt_noclip : Enable or disable collision of entity. Use it in case when entity have no build-in collision disabling ability (e.g. by selecting "Passable" flag in func_door) and you much desire to disable collision for this entity.

  • 0 : Default : Keep default collision.
  • 1 : Always non-solid : This makes entity non-solid- all collision info from this entity will be ignored.

ZHLT Light Flags zhlt_lightflags : Brush entities only. Changes light casting or receiving setting.

  • 0 : Default : Let the entity decide about lightning setting.
  • 1 : Embedded Fix : Disables bleed fix on given entity. Sometimes when entity gets trough the wall, it may get wrong lighting in one of the site. Use this flag when this problem appear.
  • 2 : Opaque (blocks light) : May be useful for func_door or func_illusionary to generate shadows.
    ZHLT1
    Can also generate shadows on transparent '{' textures with 'Solid' Render Mode (amount: 255). Note that shadow sharpness depends on '-blur' compile value. The blur value of map above is 0.5 (it's 1.5 by default).
    ZHLT1
  • 3 : Opaque + Embedded fix : both 'Opaque' and 'Embedded Fix' settings.
  • 6 : Opaque + Concave Fix : Instead of using 'Embedded Fix' you can use 'Concave Fix'. It's generally used for curved entities, use it when you spot a black seems on curved (arched) entities.

ZHLT Light Origin Target light_origin : Brush entities only. Set it to the name of info_target, this entity will receive lights from specified info_taget position instead of it's own position. As a lot of entites can moves and lightning is not updated dynamically you can choose how your entity will be lit in game (e.g. elevators, pushables e.t.c.). Now you don't need to put the whole entity in the well-lit room at map start to make them look desirable.

ZHLT Invisible zhlt_invisible : Brush entities only. Determines if entity should be visible.

  • 0 : Visible (default)
  • 1 : Invisible

ZHLT Custom Shadow (when opaque) zhlt_customshadow : Opaque brush entities only. If "ZHLT Ligth Flags" of this entity uses any of the option with "Opaque" word, this will allow to customize shadow dropped by this entity. Value format: [0 - 1.0] [0 - 1.0] [0 - 1.0], use three values for color or only one for transparency: ZHLT1

ZHLT Embed Light Map (when translucent) zhlt_embedlightmap : Transparent brush entities only. Set it to 'Yes' and this transparent entity will take a light from environment making it looks much more natural. Use it when entities (e.g. glass represented by func_wall) omits lightning from surrounding. Note that this is expensive so shouldn't be used too often, but resolution of those lightmaps can be controlled by keyvalue explained below.
ZHLT1

ZHLT Embed Light Map Resolution zhlt_embedlightmapresolution : Value of power of two that controls the resolution of embedded lightmaps of transparent textures (see keyvalue above). Higher value for better optimization. Default and recommended value is 4.