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 mapba_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). Addedcorpse_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 viadoors_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 forenv_dlight
- makes the dynamic light update the position when the calculatedPosition
is changing.Position is Locus Entity
spawnflag forenv_dlight
- makes treating thePosition
parameter as Locus Entity instead of Locus Position. The resulting light position is the entity origin. WhenTrack 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 forplayer_loadsaved
. Whenplayed_loadsaved
is active, the presence of this spawnflag ensures that the player won't trigger changelevel or autosave. The usable changelevels become unusable and touchabletrigger_changelevel
entities become solid.
New featureful_server.cfg features
monsters_open_named_doors
- when monsters can open doors with a targetname unlessMonsters 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 playHEV_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.