SIMPLE CONSOLE COMMAND
As requested by Spas. Some simple console commands as shown in this video. Spas, skip down to Section V
I. DEVELOPER CONSOLEThe first step is to enable the developer console. Once enabled you can pull it up with the tilde key (~). This is where we will be doing most of our work in this tutorial.
1.) Launch SMOD or your favorite SMOD mod.
2.) In the main menu, click on 'Options'

3.) In the options menu, select the 'Keyboard' tab at the top.
3b.) Under the Keyboard tab, click on the 'Advanced...' button near the bottom.

4.) A dialog box will pop-up and all you need to do is check the 'Enable Developer Console' box.
Optional5. Now that you have the developer console enabled, you can also turn on developer mode. While this is not a necessary step, this tutorial will assume that you have this enabled.
All you have to do is open the developer console and input this command
developer 1
* developer modes - 0=off, 1=on, 2=verbose.
II. SPAWN AN NPCThis is a good starting point. Lets spawn a Combine Soldier NPC. Open the console and enter this:
npc_create npc_combine_s

If your NPC doesn't have a weapon, you can enter this into console:
npc_create_equipment <weapon_name>
Note* You need to enter the create equipment command before spawning an NPC. Replace <weapon_name> with the name of the weapon you want to have them equipped with.
III. NAME YOUR NPCAlright now, if you want to start doing some cool shit, you will need to name your NPC. To do this simply point your crosshair at the NPC and enter this into console.
ent_setname <your_name>
You will need to replace <your_name> with whatever the hell you want to call your NPC. I decided to call my combine douchey.

If your want your NPC to have the cool little name tag like mine does, simply point at it and enter:
ent_name
* You need to have the developer cvar set to 1 or higher for this to work.
IV. FIRING AN INPUT FROM CONSOLEIf you want your NPC to do something other than just stand around, you are going to need to send it an input. We can do this using the ent_fire command. Here is how it looks in console

ent_fire <targetname> <action> "<value>" <delay>
Breakdown:ent_fire - the cvar, sends an input to an entity.
<targetname> - This is our target, or the entity we will send the input to. Replace this with a targetname or a classname.
<action> - This is the actual input we will send. You can find inputs for entities here:
http://developer.valvesoftware.com/wiki/Main_Page"value" - Some actions need a value argument, if necessary include it here. Always put the value in "quotation marks".
<delay> - set a delay from the time you send the input to the entity until the time it executes.
V. ENT_FIRE EXAMPLESOK time for some quick examples!
Forming an NPC SquadSquads share info between their members on enemies and their current locations. Helps improve the AI.
1.) Spawn a few combine and give them all the same name.

2.) Set them to a squad using the following input:
ent_fire hello setsquad "squad1"
Breakdown again:hello - This is our target entities name. Since all our NPC share this name the input will be sent to all of them.
setsquad - This is our action. Tells the NPC's that they should form a squad.
"squad1" - This is our value. The name of the squad the NPC's should join.

Now if you want the cool little squad/health/enemy layout I have like in the pic above, you simply need to point your crosshair at an NPC and enter this command in console:
npc_squads
* Again, needs
developer 1 to work.
Send an Input to Classname and add a delay!Example of firing an input to a class and adding in a delaytime.
1.) Spawn some zombies using this command:
npc_create npc_zombie

3.) Now lets light them on fire! Input this command into console.
ent_fire npc_zombie ignite "0" 5
Breakdown:npc_zombie - The target. I used a classname here instead of a targetname.
ignite - The action. Burst into flames.
"0" - The value. The ignite action doesn't need a value argument, so we send 0 (null). Otherwise we can't include a delay.
5 - This is our delaytime. Zombies will catch on fire 5 seconds after you send the input. Wait for it!
Setting RelationshipsHere is an easy way of how to set a relationship. This can be useful for making an NPC attack a specific target

1.) Spawn a combine and name him 'traitor'.

2.) Lets set his relationship. Input this command into console.
ent_fire traitor setrelationship "npc_combine_s D_HT 999"
Breakdown:traitor - This is our target.
setrelationship - The action.
"npc_combine_s D_HT 999" - The value. The argument needed for this action is actually a string.
SetRelationship <string|targetname or classname> <string|disposition> <int|rank>
Changes whether this NPC likes or dislikes certain others. Used like the ai_relationship entity, with this NPC as the subject.
Values for disposition are:
* D_HT: Hate
* D_FR: Fear
* D_LI: Like
* D_NU: Neutral
3.) Now spawn some more combine soldiers and watch the traitor mow them down!