A tutorial on how to use and learn entmod for any mod you want.
If you wish to install entmod, then go to this article.
Finding the mod FGD
Go to your mod folder, which is located at “steamapps<your account>Half-Life<mod>”. When you open that folder, search for a file with FGD extension.

Pic. 1: Example of FGD file for mod Sven Co-op
Open it with notepad or other simple text editor.
The FGD is the file that contains all the information needed to make maps for a mod. It contains all the entities and key-values they should use, and you can use too in entmod!
Understanding the FGD
There is two types of entities: Solid and Point, you can identify them on the FGD by @SolidClass and @PointClass. Solids are entities that have affect on the world and point are mostly logic entities and they do not require a model.

Here we have the example of a point entity named “trigger_changemodel”. From these 3 lines you can see all the information it requires to work properly.
First of all you can see the classname, which is “trigger_changemodel”, then there is a small description in this case “Change model”. As for the key-values information, notice there is “base(Targetname, Target)”, this means it will inherit keyvalues from these bases (if you search the FGD you’ll find a @Baseclass targetname and target). For last, it will add “model” keyvalue. So on final, we have: trigger_changemodel, with key-values: targetname, target and model. It does not tell you exactly how the entity work but you can have a fair good guess. “Targetname” is always the name to be used for calling this entity, “target” is the target we want to change the model and “model” is the model to change to.
Applying this entity in-game
In entmod there is multiple ways to create entities but I’ll only discuss 2 here.
You can create this entity using “e_add” command. The syntax is:
e_add <classname>:<key 1>:<value 1>:<key 2>:<value 2>:<key 3>:<value 3>:<key …>:<value …>
So, for adding the entity I’ve explained above, you could use:
e_add trigger_changemodel:targetname:cmodel1:target:myentity:model:models/player.mdl:
This command is good for adding small entities but it will not work well for adding solid or entities with a lot of keyvalues. In this case you’ll have to use a more time-consuming method but it will give you a better result.
Copy a solid entity (a func_wall would be nice), place it and then you’ll use these commands:
e_classname <classname>
entmod_keyvalue <key> <value>
When you’re done with key-values, save it, remove it and load it:
e_start temp;wait;es_grab;wait;es_save 0;wait;e_kill;wait;es_load
The command above will do all that for you in a blink.
So for the entity I’ve explained before you would do:
e_classname trigger_changemodel
entmod_keyvalue targetname cmodel1
entmod_keyvalue target myentity
entmod_keyvalue model models/player.mdl
e_start temp;wait;es_grab;wait;es_save 0;wait;e_kill;wait;es_load
Some warnings
Try to avoid to use e_add for adding solid entities, if you don’t make them correctly you will crash the server.









