Releases: FreeSlave/halflife-featureful
Half-Life Featureful SDK 2024-01-12
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!
Changelog
Support for subtitles
Mods can use sound/captions.txt and sound/captions_profiles.txt files to define captions.
Sample files defining captions for some sentences on the first two maps of "Anomalous Materials" chapter are packed with the mod sample.
HUD scaling
Added hud_scale
client cvar to control HUD scaling. 1 means the original scale. 0 means autoscale depending on the screen resolution. Note that support for high definition sprites from the anniversary patch will be added later.
Configurable Weapon Layout
Weapon layout can be configured in features/hud_weapon_layout.cfg file. The format is described in the sample file.
Entities
trigger_configure_monster
can configure more monster's parameters: Free Roaming, Gib Policy and Size For Grapple.- Added dead turret entities:
monster_miniturret_dead
,monster_sentry_dead
andmonster_turret_dead
- Added
Custom amount
parameter for ammo entities. - Added
Custom Initial Ammo
parameter for weapons. - Added
Delay after blocked
parameter for monstermaker. If not zero, this is used instead of spawn delay before trying to to spawn the monster again, if the spawn was blocked before. - Added
Don't fire look target
fortrigger_camera
. - Added
scripted_following
entity and theFollowage policy
parameter for following monster (Experimental).
Bugfixes
- Fixed HUD not showing after 'fullupdate' command.
- Fixed repeatable
scripted_sequence
with Walk or Run move type not properly working after it got interrupted and triggered again (Half-Life bug). Thanks @Aynekko for reporting. - Fixed
scripted_sequence
being unresponsive when it has Idle Animation and Turn to Face move type (Half-Life bug).
Configurable features
- Color values in hexadecimal form can be prefixed with
#
symbol instead of0x
. hud_autoscale_by_default
- whetherhud_scale
value is 0 by default (meaning autoscale).crosshair_colorable
feature and corresponding cvar. Allows crosshair color to depend on the chosen HUD color. Requires a sprite with white crosshairs to apply colors properly. Experimental feature, not enabled by default.
Half-Life Featureful SDK 2023-12-11
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!
Changelog
- The glow shell effect (applied by the shockroach projectiles) now wears off over time from osprey and apache.
- Fixed Desert Eagle not ejecting a shell upon firing.
- Fixed the Half-Life path finding bug when the fleeing monster couldn't choose a spot as a cover because the enemy couldn't build a path to this spot.
- Don't report missing
HG_HOSTILE
andST_HOSTILE
sentences (as they're optional) - The entity with
game_playerdie
targetname is now triggered upon the player's death in singleplayer as well. - The pain indicator sprite color doesn't blend with the HUD color anymore. This prevents pain sprite rendering green or other weird colors depending on the HUD color.
Half-Life Featureful SDK 2023-11-10
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!
Changelog
BugFixes
- Fixed Pitworm entity light, laser attack sprite, strafe beam and missing sound precache.
- Fixed barnacle grapple physics to match Opposing Force.
- Fixed
player_weaponstrip
unintentionally removing player's flashlight or NVG. - Fixed
trigger_camera
no longer prevents enabling the control if player dies while using the camera. - Level transition won't be activated if player is dead, to avoid strange situation when player gets transitioned to another level in a dead state (which is possible if
trigger_changelevel
is triggered by something else with a delay). - When
trigger_camera
entity gets removed it automatically releases the player who activated it.
Entities
- Added
Ignore Armor
flag fortrigger_hurt
andtrigger_hurt_remote
- Added
No Camera Punch
flag fortrigger_hurt
andtrigger_hurt_remote
- Added
Alive player only
flag fortrigger_camera
to ensure that the camera won't start if player is dead. It also makes camera release the player's view if player died while camera was activated. - Allow opfor human grunts to have no weapons if weapons are set to "None".
- Opfor medics and torch grunts can be set to throw hand grenades. FGD was changed accordingly.
Client cvars and commands
hud_min_alpha
cvar to control the minimum HUD alpha value.hud_color
is now a client command. The color is now getting saved to the player's configuration.
Server cvars
- Added
items_physics_fix
server cvar in attempt to fix items and ammo sometimes falling through the floor (e.g. if spawned from afunc_breakable
on a shelf). Changing this cvar may have some unwanted side-effects. Read description infeatureful_exec.cfg
Configurable features
monsters_spawned_named_wait_trigger
. When set to false, named monsters spawned from monstermaker won't wait 5 seconds before entering their regular AI loop, unlike they do in Half-Life. Previously the default behavior in this SDK was the same as having this feature set to false, and while it's usually desirable, it might break some existing maps. So now it's set to true by default in order to match original Half-Life behavior.vortigaunt_squad
allows to add a capability to form squads for vortigaunts. In original Half-Life they don't have this capability set.
Half-Life Featureful SDK 2023-10-09
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!
Changelog
Configurable features
- Wall puff sprites (
cl_weapon_wallpuff
) can be configured viafeatureful_server.cfg
. Up to 4 sprites can defined (wall_puff1 - wall_puff4) which allows to set sprites from Counter Strike. By defaultsprites/stmbal1.spr
is used as a sole wall puff sprite.
BugFixes
- Fixed opfor ropes physics on high framerates.
- Fixed spore launcher not playing a pet sound.
- Fixed some HUD issues when player has both flashlight and NVG.
- Fixed FG_CURE sentence group (a resource change)
- Replaced fgrunt/checkin (a missing sound) with fgrunt/check in sentences.txt (a resource change).
Entities
- Each global variable has one integer number associated with them, in addition to the state value. The number can be changed via
game_counter_set
targetingenv_global
withModify/Set value
triggermode. Also, triggering suchenv_global
with 'On' or 'Toggle' use-type increments the global variable number by 1. Triggering it with 'Off' use-type decrements the number by 1. - New parameter
Obey Use-type
forenv_global
which allows to change the global variable state accordingly to the input use-type. - New spawnflag
Act as Master
forenv_global
which allows to use the global variable state as a master. - New entity
trigger_compare
for comparing constant numbers and numbers associated with entities (so called Locus Ratio) and triggering different targets depending on the result of comparison. - New entity
calc_state
to evaluate the state from boolean operation where the 'On' state corresponds to True and 'Off' state corresponds to False. Can be used as a master. Copy Input
andReverse Input
trigger modes fortrigger_relay
.- New entity
calc_eval_number
to evaluate the math expression based on constant numbers and calc ratios of entities. - New entity
game_number
for storing floating point numbers (you can still usegame_counter
to store and retrieve integer values). Can be used as a storage or parameter ofcalc_eval_number
. - New entity
trigger_check_state
to check the master entity state and trigger the target depending on the check result. - Customizable smoke sprite for
env_explosion
. monster_human_assassin_dead
.- Barnacles can't grab victims possessed by non-interruptible scripts anymore.
Server commands
set_global_state
- set the state of global variable. Available only when sv_cheats is enabled.set_global_value
- set the number value associated with global variables. Available only when sv_cheats is enabled.- ReportAIState (impulse 103) now reports the name of the scripted sequence entity if monster is currently possessed by a script. The command also draws the current monster route and the nearest node using temporary beams.
calc_ratio
- calculate a ratio values associated with entity and report the result to developer console.calc_state
- calculate/get the entity state and report the result to developer console.
Other
- Support for snow texture material.
- Added
item_sodacan
to FGD.
New pages on wiki: Math and Master entities.
Half-Life Featureful SDK 2023-09-08
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!
Changelog:
- New parameter
Gravity Setting
for pickups (items, weapons and ammo) - Customizable models for ammo entities.
- Add
Master
parameter forscripted_sequence
. If the script has a master, then it won't possess the monster until the master is enabled. Sound Radius
parameter forfunc_tracktrain
- Add
HG_HOSTILE
sentence group for human grunts to use against non-player non-alien enemies (in Half-Life they use HG_ALERT only against player and HG_MONSTER against alien monsters). - Add
Speech Group
parameter for talk monsters. It's a custom prefix used by a monster. E.g. you can make Barney talk like scientists by specifying theSC
Speech group. Note that the monster will still use its original pain and death sounds in this case. - Add
bigmomma_wait_fix
configurable feature infeatureful_server.cfg
. When enabledinfo_bigmomma
entities actually use the provided Wait value (bugged in original Half-Life). - Fix the upper rope segment sometimes incorrectly aligned.
env_warpball
can create AI sounds now (e.g. combat sounds).- New flags
Relative Teleport
andRandom Destination
fortrigger_teleport
. - Allow +use, flashlight and other impulse commands during weapon reload (those commands are locked during reload in original Half-Life).
Half-Life Featureful SDK 2023-08-07
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!
Changelog:
Target on pickup
now works on ammo entities too.- Disable check for
FL_ONGROUND
in default melee attack check to fix zombies not being able to attack sentry turrets (original Half-Life bug). Note: if this change brings any issues, it must be looked at again. - Implement 'Fire if over limit' for
game_counter
. - Add
Looped
flag fortrigger_mp3audio
. trigger_mp3audio
is now use-type aware (On & Off).- Removed
stopaudio
andplayaudio
commands as they are redundant. Just usemp3 stop
andmp3 play
instead. - Fix forcing a flashlight when getting a suit from
impulse 101
command. Now NVG is given if it's the default option in the mod (suit_light
feature infeatureful_server.cfg
). func_ladder
can be turned on and off.- Add
Don't mess Yaw
spawnflag forenv_sprite
. In Half-Life the yaw value set in the editor forenv_sprite
is used as a roll value in the game. It's programmed this way due to some historical reasons and it makes oriented sprites setup harder. The new spawnflag is added to overcome this problem. - Precache unlocked and locked sounds for
func_rot_button
. - Female assassin cloaking ability can be controlled by
sk_hassassin_cloaking
skill cvars. If they're missing, the original behavior from Half-Life is used (cloaking enabled only on Hard difficulty). - Configuring custom amount of gibs for
func_breakable
andfunc_breakable_effect
.
Half-Life Featureful SDK 2023-07-06
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!
Changelog:
- IMPORTANT: Featureful configs now should be placed in features/ subdirectory of the mod directory. The previous approach (configs in the mod directory) will work too, but now is deprecated.
- The features directory, containing the config files, is now bundled with game libraries and fgd in github artifacts (autobuilds).
- !!! Removed
cl_viewroll
cvar andview_roll
configurable feature. Usecl_rollangle
cvar to control the rolling. When rollangle is set to 0, the view roll is practically disabled. - Added
func_illusionary_toggle
. - "Victory dance" AI schedules of human grunts and alien grunts are now interrupted by danger sounds (e.g. grenades).
- "Move away" AI schedules (when the ally monster is "pushed" by a player) are now interrupted by damage and danger sounds.
- M249 now alternates between the shell and link ejection (like in Opposing Force).
- New configurable feature
scientist_random_heads
that allows to control randomizing of scientists heads (e.g. if your mod has different number of scientists heads than Half-Life or you want to limit the random to the firstn
heads. Example: Opposing Force has 6 scientists submodels but the random still should be limited to 4). - New configurable feature
doors_open_in_move_direction
to allow opening rotating doors in the direction of player's moving instead of facing. - Fixed a crash when controllable
func_tank
is triggered with null activator (original Half-Life bug). - Fixed rendering a black frame when fog is enabled for the first time in the game.
- Fixed fog not working when prediction is disabled (
cl_lw 0
). - Voice pitch of talking monsters is now customizable in entity properties.
Half-Life Featureful SDK 2023-06-05
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!
Changelog:
- Fix baby voltigores using the wrong gib model. Thanks @LambdaLuke87 for reporting the issue.
- The gonome's ability to lock the player is now a configurable feature (via
featureful_server.cfg
) - Delay values in multi_manager now support suffixes
#off
,#on
, and#kill
(as alternative to Sven Co-op-like#0
,#1
and#2
). - New flag
Remove on interruption
forscripted_sequence
. - New parameter
Fire on Possession
forscripted_sequence
. env_fog
no longer affects the sky by default. AddedAffect skybox
spawnflag.
Half-Life Featureful SDK 2023-05-04
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!
Changelog:
- Added
trigger_look
- Fixed human grunts and blackops assassins dropping their weapons again if player saved and loaded the game during the grunt/assassin death animation.
- The
view_roll
feature and correspondingcl_viewroll
cvar are considered deprecated as they seem redundant. View roll can be controlled by therollangle
feature andcl_rollangle
cvar. When rollangle is 0, view roll is essentially disabled. Sound radius
parameter forenv_sparks
Special Attack
activity set viascripted_action
now is used to make a vortigaunt (alien slave) to perform a coil attack.
Half-Life Featureful SDK 2023-04-03
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!
Changelog:
- Night-Vision Goggles now can be enabled as default light provider via
featureful_server.cfg
file. NVG features (color, sounds, sprites) can be configured via configuration files. - The client dll is now compiled with support for fog by default.
env_fog
can configure density and OpenGL fog mode (linear vs exponential).- Monsters now sense enemies even when they're out of player's PVS if they're attacked by other monsters.
- Added
env_dlight
. featureful_exec.cfg
file gets executed as normal Half-Life config file on server dll initialization. This allows to set default values for some server cvars.- Fixed a bug with Timed Unique Non-reusable
trigger_random
that might have crashed the game.