Skip to content

Feature configuration

Roman Chistokhodov edited this page Sep 12, 2024 · 14 revisions

Some features can be adjusted for the mod based on the Half-Life Featureful SDK without rebuilding the game libraries.

The list of featureful configuration files:

  • featureful_client.cfg allows configuring client-side features, like HUD color, allowed client-side cvars and their default values.
  • featureful_server.cfg allows configuring server-side features, related to different aspects of the game, like monsters and items.
  • featureful_monsters.cfg is the list of enabled custom monsters (i.e. non-standard for the original Half-Life).
  • featureful_weapons.cfg is the list of enabled custom weapons (i.e. non-standard for the original Half-Life).
  • featureful_exec.cfg is the config file that gets executed on game dll initialization.
  • ammo_amounts.cfg - configuring default ammo amounts per weapon and ammo entities.
  • hud_weapon_layout.cfg - configuring layout of weapons in HUD (slots and positions).
  • maxammo.cfg - configuring max ammo amount for each ammo type.

These files should be placed in the features/ subdirectory of your mod. All the featureful configuration files are optional.

If you modify these files you must restart the game in order for these changes to take effect.

File format

The format for featureful_client.cfg and featureful_server.cfg is basically the same.

The comments start with //. Features are defined as key-value pairs separated by spacebars. There're boolean, integer, color and floating-point parameters.

Boolean parameters can take values true, yes, 1 and false, no, 0.

Color parameters can be either the hexadecimal number (e.g. 0xFFA000) or RGB values separated by spacebars (e.g. 255 160 0)

The format for featureful_monsters.cfg and featureful_weapons.cfg is a bit different. The comments start with // and non-empty lines specify which weapons and monsters should be enabled in the mod.

featureful_exec.cfg, unlike others, is a real configuration file, i.e. it will be executed as other .cfg files by the engine server-side. Thus it has a different format compared to other featureful file. Usually you want to put some server cvars here. But remember that that these cvars can be overriden by a user's game.cfg or changed in console during the game. Our current philosophy regarding that is simple: if the user changes something in the console, he knows what he's doing. Still in future we might provide an option to remove undesired cvars and set the constant values instead.

Distributing

The files should be put in the features/ subdirectory of your mod directory.

If a feature config file doesn't exist the default parameters will be used in game. If some feature in the config file is omitted or commented out, the default behavior will be used.

You must disable weapons unused in your mod. Otherwise if your mod is lacking the resources for these weapons there will be a precache error.

You also should disable unused monsters. Even if you don't use some non-standard monster on the mod maps, there can be some errors in console about missing cvars if skill cvars related to this monster are not present in skill.cfg.

Recommendations

Some features are set by default to conform to the vanilla Half-Life behavior, so there's less chance of breaking the existing maps. However, if your mod utilizes its own maps (I hope so!), it's better to change some options to avoid undesired behaviors.

Here's the list of recommendations for featureful_server.cfg:

  • Set items_instant_drop to false to make healthkits and batteries fall from the center of the func_breakable instead of appearing on the floor right away.
  • Set monsters_spawned_named_wait_trigger to false to fix problems with unresponsiveness of the monsters who come from monstermaker and have a targetname.
  • Set vortigaunt_squad to true so vortigaunts could form squads.
  • Set bigmomma_wait_fix to true so wait values of info_bigmomma are actually used.
  • Set doors_blocked_recheck to true so doors continue moving in case they crashed the monster to the gibs (instead of returning to "open" position).
  • Set door_rotating_starts_open_fix to true to fix the bug with func_door_rotating becoming unresponsive after the first use if it has Starts Open spawnflag.

Some Half-Life behavior aspects were changed from vanilla to better alternatives by default, as these changes weren't observed to cause troubles. Still, if you're interested, here's the list of server features that are set to be non-vanilla by default (consult featureful_server.cfg for descriptions):

  • satchels_pickable
  • monsters_delegate_squad_leadership
  • monsters_eat_for_health
  • sentry_retract
  • Features related to new vortigaunts and bullsquid abilities.

There're also some cvars that you might be interested in changing in featureful_exec.cfg:

  • npc_forget_enemy_time
  • npc_tridepth
  • npc_active_after_combat

Be mindful when deciding on what custom weapons and monsters should be enabled in your mod. Featureful SDK provides many new weapons and monsters, but it's not the reason to throw all of them into your mod! First think of what actually belongs to the campaign you're making. It's better to utilize less to its full extent instead of turning your mod into a zoo.

Clone this wiki locally