Skip to content

Releases: FreeSlave/halflife-featureful

Half-Life Featureful SDK 2025-01-25

25 Jan 20:31
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Bugfixes

  • Fixed delays between monster's consecutive attacks being longer than expected. Thanks @Drayce0 for reporting.
  • Fixed func_pushable not behaving truthfully to HL 25 anniversary behavior.
  • Monsters use the classic path finding again in order to actively try to get to the goal (e.g. scripted sequence) even if they can't reach it at the moment. This fixes some issues that rose from the previous path finding changes. Thanks @Alex-98X for reporting.
  • Fixed JSON schema for configurable Visuals.
  • Fixed JSON parsing errors not being cleared up when server JSON files get reparsed.
  • Fixed Desert Eagle shell being ejected at wrong place and direction (original Half-Life: Opposing Force bug). Thanks MariusMaximus for reporting.

Monster changes

  • Heavy weapon grunt performs a suppressing fire when enemy hides behind an obstacle. He also can break func_breakable if his target uses it as a cover.
  • Heavy weapon grunt now needs his gun to cool off after shooting for some time. That allows player to have a window of opportunity to run through.
  • Fixed panthereye size. Increased the panthereye melee distance.

Entities

  • The pickable item_ and ammo_ now can use an own visual defined in the entity template.
  • Added trigger_changemaxclip that allows to change the max clip for the certain player weapon.

Inventory system changes

  • Inventory item types in templates/inventory.json now can define an entity template used by default for the item_pickup of specified inventory item type. The property is pickup_template.
  • item_pickup definition in fgd no longer defines the model or pickup sound by default.
  • New soundscript Inventory.Pickup that allows to set a default sound for picking up the item_pickup or to change it via entity template.

Entity templates changes

  • New property collision_box to define an object collisition box. In general it is not the same as size.

New configurable visuals

  • Added configurable visuals for monster_flybee.
  • Added configurable visuals for monster_robocop.

New cvars

  • Setting npc_get_to_enemy_nearest to 1 makes melee-focused monsters try to get to their enemy closer even if they can't build a path to the enemy. For example, this might help them to target the player standing on the small elevation (e.g. table).
  • Setting npc_trace_hull_attack_retry to 1 makes melee monsters more likely to hit the target when it's on some small elevation.

64-bit support

  • Some fixes and improvements for 64-bit build support (for Xash3D-FWGS). Thanks @a1batross
  • Fixed reading the node graph files in 64-bit build.

Codebase changes

  • Implemented the better weapons system. This allows less boilerplate when adding a new weapon. Now weapons must be linked with LINK_WEAPON_TO_CLASS macro, not LINK_ENTITY_TO_CLASS.

Half-Life Featureful SDK 2025-01-14

14 Jan 18:20
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

JSON configs reloading

  • In the developer mode (when developer cvar is 1 or higher) the .json configuration files are reloaded automatically on the save-restore or level transition. This allows for easier testing that doesn't require the full game restart.

Bugfixes

  • Fixed a bug that prevented usage of temporary func_wall_toggle hack in node graph generation (used in Blue Shift, e.g. on the map ba_tram2). Thanks @Alex-98X for reporting.
  • Monsters can open named doors again (like in vanilla Half-Life). The ability of monsters to open named doors was disabled in previous versions in order to fight the exploit that allowed to open doors that were missing the Monsters can't spawnflag by pushing npcs to them on some Half-Life maps. However some maps legitimately rely on this behavior (e.g. ba_security2 in Blue Shift), so we're returning to the vanilla behavior by default. Thanks @Alex-98X for reporting.
  • Fixed corpses blocking npc path finding when the corpse lies at the top of the stairs and the npc is going up the stairs (original Half-Life bug).
  • Added an attempt to fight the engine bug when the brush entities wrongfully get player as their blocker while the player stands on the corpse nearby (example: if player stands on the barney's dead body near the fan on the c1a2 map in Half-Life, the player will be killed by a fan even though he doesn't touch the fan). Added corpse_player_collision_fix server feature and cvar that controls whether the fix is applied.

New entity parameters

  • Continue moving if blocker is crushed parameter for doors - allows to configure the behavior per door instance. Previously it was only available to configure globally via doors_blocked_recheck feature.
  • If locked, play locked sound on use parameter for doors - 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.
  • Track position updates spawnflag for env_dlight - makes the dynamic light update the position when the calculated Position is changing.
  • Position is Locus Entity spawnflag for env_dlight - makes treating the Position parameter as Locus Entity instead of Locus Position. The resulting light position is the entity origin. When Track position updates is ticked using the entity as a reference point may produce better results (smooth movement of the dynamic light), at the expense of not letting to set the arbitrary position.
  • Disallow changelevel and autosave spawnflag for player_loadsaved. When played_loadsaved is active, the presence of this spawnflag ensures that the player won't trigger changelevel or autosave. The usable changelevels become unusable and touchable trigger_changelevel entities become solid.

New featureful_server.cfg features

  • monsters_open_named_doors - when monsters can open doors with a targetname unless Monsters can't is set on the door (true by default).
  • corpse_player_collision_fix - when player stands on the monster's dead body, the nearby brush entities like func_door, func_rotating and func_train might get "blocked" by the player. This is an engine bug. Set this feature to true to enable the game library side fix.
  • hev_dead_requires_suit - whether the suit is required to play HEV_DEAD sentence group (the beeping alarm when player dies). In Half-Life it plays even if player doesn't have a suit.

New soundscripts

  • Added Player.Death and Player.DeathUnderwater soundscripts (empty by default). When defined, the Player.Death will play on player's death (along with HEV_DEAD sentence). Player.DeathUnderwater will play if player dies underwater.

The demo maps changes

  • Added the examples of attachable env_dlight to the featureful_demo map.
  • The blocked_demo map is now bundled with a sample mod. It demonstrates some issues with entities being blocked by others in Half-Life and ways to fix these issues.

Half-Life Featureful SDK 2025-01-07

07 Jan 18:20
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Bugfixes

  • Fixed poison time-based damage effect wearing off on reloading or level transition (original Half-Life bug).
  • Fixed wrong spray decal being painted after reloading the save if tempdecal.wad file doesn't exist (original Half-Life bug).
  • Fixed crowbar applying breakable glass decals to pushable objects of unbreakable glass material (original Half-Life bug).
  • Fixed weapons dropped from some NPCs (e.g. human grunts) ending up in the solid geometry on some occasions (original Half-Life bug).
  • The controller entvar property is now properly handled again.
  • Fixed player_weaponstrip not precaching its sound (if set).

Door changes

  • New feature doors_blocked_fade_corpses in featureful_server.cfg - when set to true the monster's corpses will fade away if they block the door movement.
  • New parameter Collision with corpses for func_door and func_door_rotating allows to ignore collision with dead monsters. This will ensure that the dead body won't block the door.

Pushable changes

  • New parameter Collision with corpses for func_pushable allows to ignore collision with dead monsters. This will ensure that the dead body won't block the pushable.
  • The parameter Hull Size has been removed from fgd, as it didn't work anyway (the feature was never implemented properly in original Half-Life).

scripted_sentence changes

  • Now the player must be in the range of the talking monster if scripted_sentence has Require listener spawnflag (before this rule was applied only to monsters).
  • 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.
  • Listener type now supports !activator as a parameter.
  • 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.

Gonarch (Big Momma) changes

  • Added Forget enemies spawnflag for info_bigmomma - to make Big Momma forget all its enemies once it reaches the node.
  • Added Lay Crabs Policy parameter for info_bigmomma - to control the giving birth behavior depending on the node progression.
  • New feature bigmomma_lastnode_fix in featureful_server.cfg to fix Big Momma being able to utilize the last node two or more times.

New soundscripts

  • Added soundscripts HAssassin.Pain and HAssassin.Die for female assassins pain and death sounds. The soundscripts are empty by default, but they allow to add pain and death sounds to the assassins.

Half-Life Featureful SDK 2024-12-31

31 Dec 18:38
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Bugfixes

  • Fixed joystick support on HL 25 anniversary version of the engine.
  • weapon_satchel is not getting packed into the weaponbox on player's death in multiplayer if the player has thrown all satchels before.
  • Fixed sk_plr_hand_grenade not affecting the hand grenade damage (original Half-Life bug)
  • player_weaponstrip doesn't turn off the flashlight anymore (unless it strips off the flashlight). This behavior was an oversight. The spawnflag Don't turn off suit light has been removed.
  • Fixed crossbow bolts not pushing the func_pushables.
  • Crossbow bolts don't stay on brush entities anymore. Instead they disappear like in original Half-Life. Crossbow bolts staying on brush entities led to situations when bolts remained in the air if the brush entity has been moved or rotated.

New entities

  • player_stash - allows to stash the player's weapons and inventory, and unstash (give back) them on the subsequent use.

Half-Life Featureful SDK 2024-12-19

19 Dec 16:08
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

New animation events

Introduced more animation events:

  • 1012 - expects a sound path. Plays the sound on the voice channel with normal attenuation. Opposing Force compatible.
  • 1013 - expects a sound path. Plays the sound on the weapon channel with normal attenuation. Opposing Force compatible.
  • 1014 - expects a soundscript name. Plays the soundscript according to its parameters.

NPC changes

  • Female assassins now check for potential friendly fire before shooting and throwing grenades.
  • Made voltigore and voltigore's projectile behave closer to the Opposing Force implementation.
  • Removed precaching of some unused NPC sounds in order to reduce the number of precached resources a bit.
  • Xen plants now have configurable models.

Weapon changes

  • Increased the maximum number of weapons from 32 to 64 (actually 63 as the first one is used as no weapon). The new weapons themselves will be added in future updates.
  • Dropping the last weapon is now allowed in multiplayer.
  • If previously thrown satchels were crashed by the door and player still have some satchels in the inventory, the satchel view model will be drawn automatically instead of the radio view model.

New soundscripts and visuals

  • Added visuals for the voltigore's beam effects and the bolt projectile.
  • Added soundcripts for flashlight and NVG: Player.FlashlightOn, Player.FlashlightOff, Player.NVGOn and Player.NVGOff. Note that soundscripts for NVG supersede the nvg_sound_on and nvg_sound_off entries in the features/featureful_server.cfg. The latter features are now deprecated and will be removed in future.
  • Added XenLight.Glow visual for the xen_plantlight. If the visual is missing color, alpha or renderfx, these parameters for the glow sprite are still taken from the xen_plantlight itself (compatibility with default behavior).

New properties for entity templates

  • sound_replacement - an alternative to sound list files. Now sound replacemnet can be defined for the entity template. The old sound replacement system will probably be deprecated and removed in future in favor of templated approach.
  • precached_sounds - the array of sound paths to precache for the entity with this template. This is useful if you use a custom model with custom sound events and want to tell the game code which sounds should be precached.
  • precached_soundscripts - the array of soundscript names to precache for the entity with this template. This is useful if you use a the new 1014 animation event in the model and want to tell the game code which soundscripts should be precached.
  • autoprecache_sounds - an option to automatically precache sounds defined in the animation events of the entity model. Events 1004, 1008, 1011, 1012 and 1013 are considered for sound autoprecaching. This is an alternative to otherwise manual precached_sounds.
  • autoprecache_soundscripts - an option to automatically precache soundscripts defined in the animation events of the entity model (event 1014). This is an alternative to otherwise manual precached_soundscripts.

Bugfixes

  • Fixed animation events sometimes playing again after the attack animation ends (observable on gonome and pitdrone attacks). As this is an experimental fix, it's controlled by anim_attack_reset_fix cvar for now.
  • Fixed gonome playing melee sounds on the wrong channel.
  • Fixed redifinitions of soundscripts and visuals in entity templates being processed incorrectly if the entity template is named after the entity classname (e.g. monster_gonome).
  • Fixed flybees not finishing their death schedule if they fall into water.

Disabling standard Half-Life weapons

Now it's possible to remove the standard Half-Life weapons from the mod. This is configured via features/featureful_weapons.cfg. Disabling the standard Half-Life weapons can help to reduce the number of precached resources (as player weapons are always getting precached). E.g. if your mod campaign doesn't feature the hornetgun and gluon gun (egon) you can add the following lines:

-egon
-hornetgun

Console command changes

  • Now dump_precached_sounds and dump_precached_models can take arguments which are processed as path prefixes for filtering. Examples:
    • dump_precached_sounds items/ will show all precached sounds from the items/ directory.
    • dump_precached_models models/w_ will show all precached models starting with w_.
    • dump_precached_models sprites/ will show all precached sprites.
  • impulse 103 now also reports the current sequence name and illumination value of the monster.

Sample mod changes

  • The flyers_demo map has been updated to include ichthyosaur and leeches.
  • delta.lst has been updated for the increased max weapons limit.

Some models distributed with the sample mod got few changes:

  • massn.mdl - set the head hitgroup for the head hitbox (the original Opposing Force model didn't set the proper hitgroup for the assassin's head).
  • strooper.mdl - replaced shocktrooper/shock_trooper_attack with shocktrooper/shock_trooper_attack.wav in the frontkick animation event (the event data in the original Opposing Force model was missing the .wav extension).
  • voltigore.mdl - removed voltigore/voltigore_die2 and voltigore/voltigore_die3 sound events from death sequences (the event data in the original Opposing Force model was missing the .wav extension). The death sound is played via the Voltigore.Die soundscript independent of the sequence.
  • zombie_soldier.mdl - set appropriate hitgroups for the hitboxes (the original Opposing Force model had all hitgroups set to 0, i.e. generic).

Codebase changes

This version introduces pretty big changes to the codebase. So if you maintain a fork of Featureful SDK it's better if you read this.

  • Removed m_iId data member from the CBasePlayerWeapon class. Now weapons must define the WeaponId() override.
  • The weapon bits now should be accessed via the m_WeaponBits instead of pev->weapons. The helper functions HasWeaponBit, SetWeaponBit and ClearWeaponBit have been added - they accept the weapon id as a parameter.
  • Matching the actual C++ data type with field type in the save-data is now enforced at compile time.
  • Completely got rid off BOOL typedef and TRUE and FALSE definitions for non-Windows systems. All instances of BOOL in the game library code are replaced with standard bool. TRUE and FALSE are replaced with true and false. The FIELD_BOOLEAN now expects the data variable to be bool. As some virtual functions used BOOL either in return type or in the arguments, their interface now has been changed to use bool. This should be taken into account if you forked the Featureful SDK and override some of the virtual functions:
    • CBaseEntity functions: IsAlive, IsAllowedToSpeak, IsBSPModel, IsInWorld, IsNetClient, IsPlayer, OnControls, PlayScriptedSentence, ReflectGauss.
    • CBaseToggle functions: IsAllowedToSpeak, PlayScriptedSentence
    • CBaseMonster functions: CanPlaySentence, CanPlaySequence, CheckEnemy, CheckRangeAttack1, CheckRangeAttack2, CheckMeleeAttack1, CheckMeleeAttack2, FCanCheckAttacks, FInViewCone, FVisible, HasTarget, IsMoving, ShouldFadeOnDeath, StopFollowing
    • CBasePlayerWeapon functions: CanDeploy, CanHolster, Deploy, IsUseable, PlayEmptySound, ShouldWeaponIdle, UseDecrement
    • CItem functions: MyTouch
  • Following globals changed from BOOL/int to bool:
    • g_fGameOver
    • gDisplayTitle
    • gInitHUD
    • gTouchDisabled

Half-Life Featureful SDK 2024-12-08

08 Dec 13:27
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Configurable materials system

Now new texture material types can be added and predefined ones can be customized. This includes configuring of the footstep and hit sounds, wallpuff color and some other parameters. The sample mod includes the features/materials_example.json demonstrating the addition of the new material type.

Read wiki page on Materials.

Removed features

  • Removed the compatibility with the old trigger_compare entity interaface (specifically the support for the target parameter) that has been deprecated 7 months ago.

Player changes

  • When exiting noclip the sound of emerging from water is not played anymore.

Changes to soundscripts and visuals

  • The decay parameter now can be configured via visuals for dynamic lights and entity lights.
  • Added configurable visuals for the torch effect used by the HECU engineer.
  • Added configurable visuals for floater's effects.
  • Added soundscripts for soda cans. Now you can configure the 'drink' sound played on soda pickup.
  • Added soundscripts for item_airtank.
  • Added sounscripts for env_extinguisher.
  • Added the soundcript for the player spray.
  • Added soundscript for the spark sound that is played along with spark effect when player hits the computer material.
  • Added configurable visuals for Nihilanth and its projectiles.

Bugfixes

  • Fixed the game crash when using a custom model for the HECU engineer which doesn't have the 4th attachment. Thanks White Liquid for reporting.
  • Fixed gonome's guts projectile being invisible. Thanks gameaddict117o7 for reporting.

Half-Life Featureful SDK 2024-11-26

26 Nov 02:32
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Bugfixes

  • Fix playing and stopping some sounds.

New soundscripts

  • Added soundscripts for health and suit chargers (both brush-based and model-based).
  • Added soundscript for func_pushable when it's moving.
  • Added some soundscripts related to player being underwater and emerging from water.

Codebase changes

  • Added symbolic constants for water levels and used them instead of "magic" numbers.

Repository changes

  • The libraries for Linux are now built in the latest Scout Steam Runtime container.

Half-Life Featureful SDK 2024-11-21

21 Nov 17:40
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

New visuals and soundscripts

  • Added visuals and soundscripts for the Displacer Ball projectile. Now the look and the sounds of the Displacer Ball are configurable.

Changes to entities

  • Added No camera punch spawnflag for env_beam and env_laser to disable player's camera "punching" when the beam deals damage to the player (trigger_hurt and trigger_hurt_remote already have the spawnflag with the same name). Thanks paperboy for suggestion.
  • Added Start Sprite parameter for env_laser.
  • The footstep sounds of monster_human_assassin now have longer delays between them if assassin is walking. In original Half-Life assassins play footstep sounds with same frequency independent of whether they run or walk.

Bugfixes

  • Fixed Pitworm's eye blast soundscript not being precached (thanks @Alex-98X for reporting).
  • Fixed trigger_xen_return not choosing the right info_earth_target (thanks @Alex-98X for reporting).
  • Fixed some mistakes in JSON schemas.

Sample mode changes

  • Floater and Flybee monsters are now enabled by default. The skill values for them have been added to the skill.cfg shipped with the sample mod.

Repository changes

  • Automated tests for some functions and data structures now run along with the autobuild. The number of tests will grow with each release to cover as much code as possible.

Half-Life Featureful SDK 2024-10-31

31 Oct 11:43
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Notice (please read)

When updating to this version you'll need to fix the templates/warpball.json file in your mod. The line "sound2": "debris/beamstart7.wav" should be "sound": "debris/beamstart7.wav" in the "xen" template definition. If you didn't do any changes to the file comparing to the one from the sample mod you may simply copy the corresponding file from the sample mod.

Introducing Object Hint system

The Object Hint system allows to mark usable objects (similar to PS2 version of Half-Life) or important items (e.g. inventory items put on the map with item_pickup). Read the wiki article for more information.

Entity changes

  • Items, ammo and weapon entities now can have a Master to prevent them from being picked up by the player.
  • Dead ally monsters are no longer considered as valid targets for player's Use command.

Other changes

  • The schemas for JSON config files are now more strict and don't allow for unknown properties. This is done to exclude the mistakes/typos related to the property names spelling. This helped to find a mistake in the previously distributed version of templates/warpball.json file.

Sample mod changes

  • Fixed templates/warpball.json file.
  • Removed hud_color.enabled_by_default entry from features/featureful_client.cfg. It wasn't a real option and it did nothing.
  • The file templates/followers.json has been deleted. It was a mistake and the expected filepath for this config is features/followers.json (already exists in the mod).

Notable codebase and repo changes

  • Moved CBaseButton and CMultisource class declarations from dlls/cbase.h to dlls/buttons.cpp.
  • Ninja generator is used instead of Unix Makefiles in the github actions for Linux to improve the build times.

Half-Life Featureful SDK 2024-10-18

18 Oct 15:21
Compare
Choose a tag to compare

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Introducing Entity Templates

A new concept called Entity Templates allows to define custom defaults for some entities (currently mostly monsters).

Read the wiki article on entity templates

delta.lst included

delta.lst is now included in the sample mod. Thanks @down23 for pointing out this overlooked mistake.

This version fixes potential problems with attachments (sprites, beams) on maps with large numbers of entities. It's recommended to add this file to your mod folder.

Visuals

Added configurable visuals for pitdrone, shock trooper, shock beam (the shockrifle projectile), spore (sporelauncher projectile) and apache.

Bugfixes

  • Fixed crash when using trigger_teleport with the random destination, but no destination exists.
  • Fixed crash when game_score is called without an activator (original Half-Life bug).
  • Fixed missing precache when spawning dead monsters (e.g. monster_barney_dead, etc.).
  • Fixed env_beam incorrect beam direction on save-restore when the env_beam is set to be its own Start Entity (original Half-Life bug). Thanks @down23 for reporting.
  • Fixed monsters not spawning gibs if the monster is set to Don't Bleed but normally has blood.
  • Fixed the pitdrone spike scale (was half of its size).

Other changes

  • impulse 103 now also reports the monster's entity template, the gib model, the bounding box, the the grapple target type and render properties.
  • Removed precaching of some unused resources.
  • The map flyers_demo has been updated to include flying monsters. Note that you need to enable floater and flybee monsters in order to have them on that map.
  • The female civilian NPC is now made via Entity Template instead of manually set parameters in the entity parameters and sound replacement file.

Codebase and repository changes

  • Linux artifacts are now built with Ninja instead of Make (to speed up the autobuild).
  • Added build instructions using podman. Thanks @L-P