Skip to content

Other entities

Roman Chistokhodov edited this page Jan 18, 2025 · 121 revisions

Changes to Half-Life entities

Common changes

  • Reaction of entity to its master's state can be reverted by adding ~ symbol at the start of the referred name.

Changes to specific entities

ambient_generic

  • New parameters Entity to play from and Channel to use for that entity. This allows to play a sound on the channel of another entity. Note that the entity can override the played sound through its own behavior if they decide to play something else on the selected channel. If ambient_generic plays a looped sound on another entity, the channel must be Static.

env_beverage

  • Health for pickup parameter.
  • Customizable can model.

env_explosion

  • New parameter Initial position to define a dynamic explosion position.
  • New parameter Fireball Sprite to configure the explosion sprite.
  • New parameter Custom sprite scale to configure the explosion sprite scale.
  • New parameter Custom Smoke Sprite to configure the smoke sprite.
  • New flag No sound to prevent playing an explosion sound.
  • New flag Activator is attacker to send the entity's activator as an attacker when dealing damage (e.g. to make monsters angry at the activator).

env_funnel

  • Repeatable flag.
  • Custom particle sprite.

env_global

See Global variables.

env_render

  • New parameter Scale - change the object scale (applies to sprites and models).
  • New parameter Fade Time - the time in seconds during which the object render parameters gradually change to the specified ones. Also affects the Scale change if it's specified.
  • New parameter Fade Coarseness - time in seconds between the fading updates.
  • New parameter Trigger after fading - fire after the object render parameter have changed.

env_shooter

  • New flag Don't wait till land, so the spawned gibs may start fading out before landing.

env_spark

  • New flag Cyclic for playing spark effect once on triggering.
  • Sound volume and radius are now configurable.
  • Configurable spark sprite, duration and scale.
  • Configurable number of streaks.
  • env_spark entities no longer transit to other level by default. The server feature env_spark_transit controls the behavior.

env_sprite

  • env_sprite can be attached to entity (or an attachment point).
  • Once + Remove flag to remove sprite after playing it once.
  • New parameter Start frame to configure the starting frame. Useful if you want to desync animations of several env_sprite instances located in the same area and using the same sprite (e.g. waterfall splatters). Negative values mean the random starting frame.

func_breakable

  • Fixed func_breakable taking damage from some attacks even if Only Trigger spawnflag is set (original Half-Life bug).
  • Most of spawnobject values are compatible with those in Sven Co-op.
  • New flag Explosive Only to make the breakable resistant to any non-explosive damage.
  • New flag Op4Mortar only to make the breakable resistant to anything besides op4mortar shells.
  • Relative to attack option is now working as intended (was buggy in Half-Life).
  • Not solid flag to make breakable non-solid (can be destroyed only with trigger).
  • Smoke trails on gibs flag to add gray particle trails on gibs (using the default effect from the engine).
  • Transparent gibs flag to make gibs semi-transparent.

func_button, func_rot_button

  • New flag Direct use only to require a non-occluded view of entity in order to use it (superceded by a new parameter Player use policy)
  • New parameter Player use policy to choose an algorithm of detecting if player can use a button.
  • New flag Player Can't Use to disallow player use (button still can be called via other entities)
  • Custom sounds (including locked and unlocked sounds and sentences).
  • func_rot_button is no sparking anymore if flag 64 is set. In Half-Life the conflicting flag from func_button was being applied unintentionally.
  • New parameter Use Type to set the passed use type to a button's target (On or Off).

func_door

  • New parameter Direct use only to require a non-occluded view of entity in order to use it.
  • New flag Force Touchable allows to open named doors by touching.
  • New parameter Ignore Targetname allows to open named doors by touching (same as the flag above, but in the parameter form).
  • Custom Move and Stop sounds.
  • Custom Locked and Unlocked sounds and sentences.
  • New parameter Sound radius to configure door sounds attenuation.
  • New parameters Fire On Open Start, Fire On Close Start, Fire On Open End and Fire On Close End and corresponding parameters to denote trigger states.
  • New parameter Obey Trigger Mode to make doors interpret the use-type when triggered.
  • New parameter Collision with corpses allows to ignore collision with dead monsters. Corpses won't block this door and won't get crushed.
  • New parameter Continue moving if blocker is crushed. By default this behavior is controlled globally by the doors_blocked_recheck feature. This option allows to configure the behavior specifically for the door instance.
  • New parameter If locked, play locked sound on use allows to enable playing the locked sounds for usable doors when the door is locked by a master. In Half-Life usable doors don't play the locked sounds.

func_healthcharger and func_recharge

  • Can be turned off and on by a trigger.
  • New parameter Custom Juice Amount.
  • New parameters Custom Loop Sound, Custom Denied Sound and Custom Start Sound.
  • New parameter Custom Recharge Sound.
  • New parameters Trigger On Empty and Trigger On Recharged.
  • New parameter Trigger On First Use.

func_ladder

  • Can be turned off and on. New flag Start Off.

func_pushable

  • New parameter Collision with corpses allows to ignore collision with dead monsters. This will ensure that the dead body won't block the pushable.

func_tank

  • New parameter Bullet count to configure a limited number of bullets for tank.
  • Controllable tanks now can be removed from the map without a risk of crashing the game if tank was removed during the player's usage.
  • New flag Laser spot.
  • New parameter Behavior.

func_tracktrain

  • Custom move, start and brake sounds.
  • New parameter Sound radius to configure platform sounds attenuation.

func_train

  • New parameter Custom move sound.
  • New parameter Custom stop sound.
  • New flag Origin on paths.
  • New flag Initially On.
  • New parameter Sound radius to configure platform sounds attenuation.
  • Fixed a bug when train did not stop playing its sound when stopped by trigger.
  • New parameter Obey Trigger Mode to make train interpret the use-type when triggered.
  • Move sound pitch can be configured.

func_wall

  • New flag Use angles to make the func_wall use angles defined in the map source file for the entity. Note that the angle will be applied only in the game, you can't preview the result in the editor.

info_player_deathmatch

  • Can be turned on and off.

monstermaker

See Monstermaker.

game_counter

  • New flag Fire if over limit

momentary_rot_button

  • Entity now respects its master value (in Half-Life it did not care).

multi_manager

  • Configuring use-types using delay value suffixes: #0 for Off, #1 for On, #2 for Kill. In addition to Sven Co-op like suffixes, the following are implemented as alternatives to digit suffixes: #off, #on, #kill.
  • Two additional suffixes are #forward and #reverse used to forward or forward-reversed the use type the multi_manager was triggered with. Example: if multi_manager was triggered with On use type, all targets which have #forward suffix in the delay value will be triggered with On. All targets which have #reverse suffix in the delay will be triggered with Off.
  • Same changes regarding the delay value suffixes are applied to multi_trigger and multi_sequence entities.
  • Once only flag to remove multi-manager after it fires all its targets.

scripted_sentence

  • New parameter Required state to require a certain monster state for saying a sentence.
  • New parameter Follow action to make a monster start or stop following upon saying a sentence.
  • New parameter Apply search radius to do the radius check when searching for monster by its targetname.
  • New parameter Speaker Search Origin to set a different entity to search the speaker around instead of the scripted_sentence itself.
  • More options for Sound Radius parameter.
  • New parameter Target's Activator allows to set activator to either script itself or the speaking monster when triggering the script target.
  • Speaker can be *locus (!activator) for chained scripted sentences.
  • Require listener flag to make sentence playable only if listener is present.
  • Listener type can be *locus (!activator).
  • New parameter Allow use during speech to allow monster start or stop following the player when +use is pressed while the monster is speaking its scripted sentence.
  • Buttons and cyclers can be speakers for scripted sentences (like in HL 25 anniversary).

scripted_sequence

See Scripted Sequences

trigger_camera

  • The camera view is getting restored on save/restore (was bugged in Half-Life).
  • New spawnflag Player Invulnerable to make player invulnerable to attacks while they're using the camera.
  • New spawnflag Ignore Hold Time.
  • New spawnflag Alive player only to prevent camera activating on the dead player (which is possible in Half-Life).
  • New spawnflag Don't fire look target to prevent firing the entity the camera looks at (we keep this weird behavior from Half-Life by default in order to maintain compatibility).
  • New parameter Stop by player input - allow player to press '+use' in order to stop watching at the camera.
  • New parameter Target when turned off.

trigger_multiple, trigger_once

  • New flag Everything else to accept anything else besides players, monsters and pushables as activator on touching.
  • New parameter Triggered only by entity to filter touchers by targetname or classname.

trigger_push

  • New flag No clients.
  • New flag No monsters.

trigger_relay

  • New flag Forward activator flag to pass the original activator when triggering targets.
  • New Pass caller as activator flag to pass the caller as activator when triggering the target. This has higher priority than Forward activator.
  • New parameter Delay Before Reset. Time, in seconds, the trigger_relay can fire its target again after being triggered. Flag "Remove on fire" must be disabled for this to work.

trigger_teleport

  • New parameter Start Inactive to make teleport inactive until it's triggered by name.
  • New flags Keep angles and Keep velocity to keep player's angles and velocity upong teleporting.
  • New flag Relative Teleport. The player's destination will be the location of the destination plus his offset from the trigger_teleport's origin in the moment of the player entering the trigger. If you decide to use this, you need to add an origin brush to your trigger_teleport.

See also: trigger_teleport on svenmanor

xen_spore, xen_plantlight, xen_hair, xen_tree

  • New flag Drop to Floor.
  • New flag Non Solid.

New entities

Player related entities

Player entities

Sound related entities

ambient_random

Similar to ambient_generic, but plays a random .wav sound from the set.

trigger_mp3audio

Plays mp3 audio file from the mod directory using the Music volume set by client.

trigger_sound

A brush trigger that changes the player's room type upon touching. An alternative to env_sound.

Position, direction and number calculations

See also: Locus system, Math.

calc_numfromvec

Calculates a single numeric value from the vector. Can be used in LR parameters.

calc_position

Calculates a position value based on the position of another entity. Can be used in LP parameters.

calc_ratio

Calculates a number value from another entity. Can be used in LR parameters.

calc_subvelocity

Calculates a vector value based on the velocity or angles of another entity. Can be used in LV parameters.

calc_vecfromnums

Calculates the vector from three LR parameters. Can be used in LV and LP parameters.

calc_velocity_path

Calculates a vector between start position and destination. Can be used as offset in LV parameters.

calc_velocity_polar

Calculates a vector value using the other vector and angle offset. Can be used as offset in LV parameters.

calc_eval_number

Evaluates a binary operation on two LR operands. See Math#calc_eval_number.

trigger_compare

Compares two LR operands and fires appropriate targets. Can be used as a master.

Effect entities

env_decal

Dynamically creates a decal.

Reaction to use-type:

  • The use-type is ignored. The entity always spawns a decal upon activation.

env_dlight

Creates a dynamic light.

Reaction to use-type:

  • Handles use-types to turn the light off or on.
  • It's not possible to prolong the dynamic light lifetime when it's already active.

env_model

The (optionally) animated model that can play two different sequences depending on its state.

  • New parameter Start frame to configure the starting frame. Useful if you want to desync animations of several env_model instances located in the same area and using the same model. Negative values mean the random starting frame.
  • New parameters Framerate when on and Framerate when off to configure the animation framerate.

Reaction to use-type:

  • Handles use-types to switch the animation depending on its state.

env_modeltrain

Similar to func_train, but always non-solid and represented by a .mdl model instead of brushes.

Reaction to use-type:

  • Always percieved as Toggle (due to compatibility with Half-Life trains) unless Obey Trigger Mode parameter is enabled. Activates or stops the train.

env_shockwave

Creates various wave effects (similar to houndeye's wave attack).

env_smoker

Technically the env_smoker existed in Half-Life, but it was an auxiliary entity, not intended for use by level-designers. Now it got proper implementation and additional parameters.

  • If the Scale unit type is not set, the scale should be specified in deciles (tenths), i.e. scale 10 means the sprite of scale 1. This is to keep compatibility with original Half-Life entity. If Scale unit type is set to Normal the scale value is percieved normally, like in other entities.
  • Use Target to smoke at or Direction parameter to set the direction of the smoke.
  • If Target to smoke at and Direction are omitted and Directed spawnflag is set, the entity will use its angles to emit smoke.
  • It's recommended to use sprites which have a natural fading in their animation. With other sprites you can force a gradual fading by setting the Fade sprite spawnflag.
  • The life duration of each smoke depends on the framerate and number of frames.
  • You can use particle_shooter as an alternative.

env_spritetrain

Similar to func_train, but always non-solid and represented by a sprite instead of brushes.

Reaction to use-type:

  • Always percieved as Toggle (due to compatibility with Half-Life trains) unless Obey Trigger Mode parameter is enabled. Activates or stops the train.

Notes:

  • If render amount is not specified or 0 it's set automatically to 255.
  • If render mode is not specified or 0 it's set automatically to Additive (Opposing Force compatibility).

env_streak

Generates streaks - temprary effects similar to sparks or traces.

env_warpball

Easy way to create a teleportation effect for monster spawns. Also can be set as a template effect for monstermaker.

See Warpball-templates.

env_xenmaker

Teleportation effect + optional monster spawn. Can be set as a template effect for monstermaker.

Notes:

  • This entity was added for compatibility with Sven Co-op. Prefer using env_warpball on your maps.

locus_beam

Create a beam between two Locus Positions.

Reaction to use-type:

  • Creates a new beam independently of the use-type.

particle_shooter

Produces particles. Can be used to create a constant source of smoke/steam/etc. Designed after the Day Of Defeat entity of the same name.

Weather effects

For env_fog, env_rain and env_snow see Weather.

World objects

env_rope

A segmented climbable rope with physics simulation.

Note about ropes

Opposing Force ropes use many entities and this may cause bugs with attachments on the certain maps. If you want to avoid this you can increase the number of bits for skin field of entity_state_t in the delta.lst (just copy it from Half-Life to your mod directory and modify), from 9 to 12. The sample mod of Featureful SDK already provides a custom delta.lst, so you can take it from here.

env_electrified_wire

An electrified segmented wire with physics simulation.

Reaction to use-type:

  • Always percieved as Toggle (due to Opposing Force compatibility) unless Obey Trigger Mode spawnflag is ticked - in this case the entity handles On and Off use-types as well. Changing the state makes electricity to turn off or on.

item_eyescanner

A modelled eye scanner from PS2 version of HL.

  • By default eye scanner will not unlock for the player and will play the denied sound.
  • The mapper can provide custom Granted, Denied and Beep sounds.
  • The mapper also can provide the Granted and *Denied sentences.
  • Set Unlockers name to player to allow eye scanner activation by players.
  • If Unlockers name is not defined, the eye scanner will unlock for any activator besides player. If it's defined it will unlock only if the activator has a targetname or classname equal to the specified name.
  • If the item_eyescanner is called without an activator the caller will be used instead to detect whether it should grant or deny.

item_generic

A static model. A simple alternative to env_model. Despite the name this item is neither pickable nor usable in any way.

  • By default item_generic stays at the same spot as it's set in the editor. Set Drop to floor to make the model automatically drop when the level is loaded.

op4mortar

The player controllable mortar weapon. Use it with func_op4mortarcontroller.

Triggers, states, logic

calc_state

Calculates state (On or Off) using logical operators on two operands. See Master entities.

env_state

A simpler alternative to multisource, can be used as a master to lock some entities.

Reaction to use-type:

  • Handles use-type to change its state.
  • When going to Off state env_state fires its target with Off use-type (SoHL compatibility).
  • When going to On state env_state fires its target with On use-type (SoHL compatibility).

multi_trigger

An alternative to multi_manager for which J.A.C.K. can show connections to its targets.

multi_sequence

Similar to multi_trigger, but delays are relative to the time the previous target is fired.

trigger_check_state

Tests the state of another entity and fires the appropriate targets.

Notes:

  • Use trigger_check_state with Master entities capable of reporting their state.

trigger_entity_iterator

Allows you to simulate one or multiple entities triggering a specific other entity.

Notes:

  • Constant and multi-threaded modes from Sven Co-op are not implemented.

See also: trigger_entity_iterator on svenmanor

trigger_random

Fires a random target out of the defined set of targets.

Reaction to use-type:

  • Ignores the use-type. If the trigger_random is timed, it toggles its state. Otherwise it just fires a random target.

See also: trigger_random on svenmanor

Notes:

  • Unlike Sven Co-op the Target Count parameter is not required. If it's omitted or set to 0, the trigger_random automatically calculates the target count from the defined targets.
  • trigger_random_time and trigger_random_unique exist for Sven Co-op compatibility.
  • For timed firing capability prefer using trigger_timer

trigger_timer

Continuously fires the same target over random delays.

Reaction to use-type:

  • Respects the use-type.
  • When going to Off it stops firing its targets and resets the trigger counter to 0 (unless Don't reset trigger counter on deactivation spawnflag is set).
  • When going to On it starts firing the targets periodically (the first fire is not delayed if Don't delay first fire spawnflag is set).

Brush entities

func_breakable_effect

Invisible non-solid brush entity that can be triggered to create the same effect as from breaking the func_breakable, i.e. sounds and gibs.

func_illusionary_toggle

Similar to func_wall_toggle, but non-solid.

NPC and combat related

env_soundmark

Allows to insert a world sound or smell. Some monsters are aware of those.

monster_target, monster_bullseye

A fake monster for other monsters to target as if it was their enemy.

Reaction to use-type:

  • Handles the use-type to change its state. When the monster_target is off, it's invisible to other monsters.

See also: npc_bullseye in Source games

squadmaker

Just an alias for monstermaker, for compatibility with Sven Co-op.

trigger_change_class

Dynamically change the classification of the monster. This entity was added for compatibility with Sven Co-op and it's recommended to use trigger_configure_monster instead.

See also: trigger_change_class on svenmanor

trigger_configure_monster

Configures monster's parameters during the game.

trigger_hurt_remote

A point entity, alternative to the trigger_hurt that can deal damage to a specific target.

Reaction to use-type:

  • If set to Constant mode, it respects the use-type, starting or stopping dealing damage.
  • If not in Constant mode it deals damage once per activation, unless the input use-type is Off.

See also: trigger_hurt_remote on svenmanor

trigger_killmonster

Kills a monster playing random death animation (or gibbing depending on the option).

trigger_startpatrol

Makes a monster to start patrolling on path of path_corners.

Notes:

  • path_corner Wait here parameter is respected - it's the time the monster will wait at the patrol point.
  • If path_corner speed is 200 or above, the monster will run instead of walking.

Object motion

motion_manager

Allows to sync a motion of one entity with another.

Reaction to use-type:

  • Off stops the motion syncing.
  • Toggle and On enable the motion syncing (TODO: this needs to be revisited).

trigger_motion

Syncs a motion of one entity with another one time per activation.

Miscellaneous

trigger_changevalue

Change the arbitrary value of entity by key.

Notes:

  • Actions that require the old value are valid only for entvars properties (like health, max_health, etc.). Reading of arbitrary parameters is not supported.
  • Using trigger_changevalue may bring unexpected results. Don't use this entity unless you absolutely have to.
  • The current implementation is not as rich as the one from Sven Co-op.

See also: trigger_changevalue on svenmanor

trigger_command

Executes server command.

Notes:

  • We don't recommend executing server commands by entities because their effect might not persist on the save-restore.

trigger_look

A brush entity used to trigger something when the player look at something while standing in the trigger area. Similar to the Source entity of the same name.

See also: trigger_look in Source games

trigger_respawn

Respawns players (in multiplayer).

See also: trigger_respawn on svenmanor

trigger_skill_test

Fire a trigger depending on the current game difficulty.

Projectiles

env_blowercannon

Shoots various projectiles (e.g. spores or shockbeams).

Reaction to use-type:

  • The use-type is ignored. The entity is always getting toggled.

env_stompshooter

Generates Gargantua stomps on each fire. Should be placed on the floor.

Displacer related

info_displacer_earth_target

The earth destination for displacer teleportation. Use it together with trigger_xen_return.

Reaction to use-type:

  • Can be turned on and off (unlike Opposing Force where it wasn't triggerable).

info_displacer_xen_target

The Xen destination for displacer teleportation.

Reaction to use-type:

  • Can be turned on and off (unlike Opposing Force where it wasn't triggerable).

Notes:

  • If there're no enabled destination points on the map, the displacer will refuse to teleport the player. Disable all Xen destination points in situations when you need to ensure the player shouldn't be able to displace themselves to Xen.

trigger_xen_return

A brush entity that teleports player to info_displacer_earth_target, playing the teleportation sound and resetting gravity to default value on Earth.

Boss related

info_pitworm_steam_lock

Special entity for constrolling the pit worm position.

pitworm_gibshooter

Spawns Pitworm gibs. Used in Opposing Force after the Pitworm is defeated.

trigger_geneworm_hit

A brush entity that marks the area of Geneworm melee hit.

Clone this wiki locally