-
Notifications
You must be signed in to change notification settings - Fork 7
Base the mod on Featureful SDK
So, you want to port your mod or create a new one using Featureful SDK.
You can grab the archive with the mod sample from the Releases (download the associated halflife_featureful zip asset). Install it like you install other mods, i.e. unpack the archive into your Half-Life directory, so the featureful directory ends up being a subdirectory of Half-Life directory.
From now you can edit the liblist.gam and rename the directory to whatever you want for your mod.
The downside is that you may not need all resources packed with a mod sample (e.g. if you don't need all custom weapons and monsters in your mod), so you'll need to manually clear out the unneeded resources if you don't want redundant files in your mod.
If you already have a mod directory or if you created a fresh one, you'll need to copy cl_dlls/, dlls/ and optionally features/ subdirectories and delta.lst file from either the mod sample or from the automated build to your mod directory.
Then make sure liblist.gam in your mod directory points to dlls/hl.dll
.
liblist.gam
example:
game "My Mod"
startmap "c0a0"
trainmap "t0a0"
sp_entity "info_player_start"
mp_entity "info_player_deathmatch"
gamedll "dlls\hl.dll"
gamedll_linux "dlls/hl.so"
secure "0"
The main point of Featureful SDK is being configurable via a set of configuration files.
For a quick start you can just copy features/ subdirectory from a mod sample to the directory of your mod.
If you decided to start with a mod sample instead, the subdirectory should be already present.
From now you can configure various aspects of the game by editing the configuration files in features/ directory (e.g. change the default HUD color or change the flashlight to NVG). Read the Feature-configuration wiki page about the files format.
Decide which of the available new weapons you want to include in your mod. Based on that you should put all required resources to your mod either from the mod sample or other sources (e.g. from gearbox/ folder of Opposing Force). The resources vary depending on the weapon and usually include:
- Models (
v_
,p_
andw_
) - HUD sprites and .txt file describing the weapon hud (e.g. weapon_eagle.txt)
- Projectile sprites and models (for some weapons, e.g. shock rifle, spore launcher)
- Sounds
-
events/*.sc
file (the Grapple doesn't need.sc
file) - Additional skill cvars in skill.cfg.
Open featureful_weapons.cfg
in your mod directory and configure the list of enabled custom weapons. The list of all available weapons:
pipewrench
knife
medkit
grapple
eagle
m249
displacer
sniperrifle
sporelauncher
shockrifle
penguin
uzi
Decide which of available non-standard Half-Life monsters you want to be use in the mod. Monsters need new resources to be included in the mod directory.
- Models (the monster's model itself; sometimes gibs and projectiles)
- Sounds
- Sprites (visual effects related to the monster)
- Additional skill cvars in skill.cfg
- Some monsters need additional entries in the
sound/sentences.txt
. E.g. Otis needs sentences withOT_
prefix.
Open featureful_monsters.cfg
in your mod directory and configure the list of enabled monsters. The list of all available custom monsters:
cleansuit_scientist
rosenberg
keller
otis
barniel
kate
babygarg
gonome
zombie_barney
zombie_soldier
human_grunt_ally
human_grunt_medic
human_grunt_torch
hwgrunt
male_assassin
blkop_apache
blkop_osprey
robogrunt
pitdrone
shocktrooper
shockroach
voltigore
babyvoltigore
pitworm
geneworm
drillsergeant
recruit
floater
flybee
panthereye
robocop
featureful_monsters.cfg
defines the list of enabled monsters. To configure the aspects of monster behavior, edit the featureful_server.cfg
.
You can edit some server-side features via featureful_server.cfg
. The file provided in the repo or mod sample directory contains comments describing the features, so we don't go into detail on each feature here.
There's also a featureful_exec.cfg
file which is getting executed by the engine and needs to be in the regular .cfg
format (like server.cfg or skill.cfg). In this file you can set some cvars to values specific for your mod for features that are currently implemented as cvars only (e.g. pushablemode
cvar).
Read some recommendations on configuring the mod.
You can edit some client-side features via featureful_client.cfg
. The file provided in the repo or mod sample directory contains comments describing the features, so we don't go into detail on each feature here.
During development it's recommended to launch your mod in the developer mode to see all diagnostics messages shown on the game or level start up and during the mod testing. This might help you to trace the issues with the mod configuration or with the levels.
To launch the game in the developer mode add +developer 1
to your mod launch options. Set +developer 4
to see even more diagnostic messages (mostly related to monsters AI).
If you're ready to publish the mod, read this first: Shipping your mod