Custom Combine Soldiers (npc_ccombine_s) Info!the_author has decide to let us create our own custom combine NPC's in SMOD2! While there are a lot of options at this point, it looks like there will be many more in future updates. Here is a brief look at the Custom combine script and how to get them working in game and through mapadds.
**NOTE**You can control the Custom Combine class in game with the ConVar
smod_npc_ccombine_s_defaultsmod_npc_ccombine_s_default normal_combine
// npc_ccombine_s will be "normal_combine" class. Map/mapadd takes priority.
Custom Combine class randomization is available by using multiple strings, seperated by spaces.
smod_npc_ccombine_s_default normal_combine combine2
// npc_ccombine_s will either be "normal_combine" or "combine2" class. Randomly chosen by game.
Here is the default Custom Combine Soldier script, it can be found at
smod2/scripts/smod_customcombines.txt"Combines" {
"normal_combine" {
"Model" {
"Body" "models/combine_super_soldier.mdl"
"Color" "255 255 255"
}
"Base" {
"Blood" "BLOOD_COLOR_RED"
"Health" "10"
"FOV" "-0.2"
"Speed" "1.0"
"MeleeDamage" "30"
"Weapons" "weapon_smg1 weapon_shotgun" // Map design takes first priority.
"IsElite" "0"
"Headshot" "2" // 0:no headshot 1:headshot 2:helmet
"Suppressivefire" "5"
"StartPatrol" "0"
"UseGrenade" "1"
"NumGrenades" "5"
"MoveAndShootDelay" "0.75"
"Grenade" { // Not impremented yet.
"Class" ""
"Keyvalues" {
"Type" ""
}
}
"Capabilities" {
"CAP_TURN_HEAD" "1"
"MOVE_GROUND" "1"
"AIM_GUN" "1"
"INNATE_MELEE_ATTACK1" "1"
"SQUAD" "1"
"USE_WEAPONS" "1"
"DUCK" "1"
"NO_HIT_SQUADMATES" "1"
"ANIMATEDFACE" "1"
"MOVE_SHOOT" "1"
"DOORS_GROUP" "1"
}
}
"TakeDamageScale" {
"Head" "1.0"
"Chest" "1.0"
"Stomach" "1.0"
"Arm" "1.0"
"Leg" "1.0"
"Blast" "1.0" // explode, fire damage.
"Melee" "1.0" // melee, stab, vehicle, physical damage.
"Other" "1.0"
}
}
"combine2" {
"Model" {
"Body" "models/combine_super_soldier.mdl"
"Color" "0 0 255"
}
"Base" {
"Blood" "BLOOD_COLOR_RED"
"Health" "1"
"FOV" "-0.5"
"Speed" "1.2"
"MeleeDamage" "300"
"Weapons" "weapon_ar2" // Map design takes first priority.
"IsElite" "1"
"Headshot" "1" // 0:no headshot 1:headshot 2:helmet
"Suppressivefire" "5"
"StartPatrol" "1"
"UseGrenade" "1"
"NumGrenades" "5"
"MoveAndShootDelay" "10.75"
"Grenade" { // Not impremented yet.
"Class" ""
"Keyvalues" {
"Type" ""
}
}
"Capabilities" {
"CAP_TURN_HEAD" "1"
"MOVE_GROUND" "1"
"AIM_GUN" "1"
"INNATE_MELEE_ATTACK1" "1"
"SQUAD" "1"
"USE_WEAPONS" "1"
"DUCK" "1"
"NO_HIT_SQUADMATES" "1"
"ANIMATEDFACE" "1"
"MOVE_SHOOT" "1"
"DOORS_GROUP" "1"
"MOVE_JUMP" "1"
"USE_SHOT_REGULATOR" "1"
}
}
"TakeDamageScale" {
"Head" "1.0"
"Chest" "1.0"
"Stomach" "1.0"
"Arm" "1.0"
"Leg" "1.0"
"Blast" "1.0" // explode, fire damage.
"Melee" "1.0" // melee, stab, vehicle, physical damage.
"Other" "1.0"
}
"ReplaceActivities" {
}
}
}
I. SCRIPT BREAKDOWNHere is a breakdown of each little section. Enjoy!
"Combines" {
"normal_combine" {
"Model" {
"Body" "models/combine_super_soldier.mdl"
"Color" "255 255 255"
}
"Combines" - SMOD engine stuff. Always include this at the top, DO NOT change remove or comment out.
"normal_combine" - This is an example of a Custom combine CLASS! You can change this name to whatever you want. This is what you will use to define what type of custom combine you want through mapadd or the
smod_npc_ccombine_s_default ConVar.
"Model" - This will define the combine's model attributes. It has the Following Keyvalues:
"Body" - defines the model file to use. Use full path from models folder!
"Color" - Defines a color tint to be applied to the model.
(RGB Code) format.
"Base" {
"Blood" "BLOOD_COLOR_RED"
"Health" "10"
"FOV" "-0.2"
"Speed" "1.0"
"MeleeDamage" "30"
"Weapons" "weapon_smg1 weapon_shotgun" // Map design takes first priority.
"IsElite" "0"
"Headshot" "2" // 0:no headshot 1:headshot 2:helmet
"Suppressivefire" "5"
"StartPatrol" "0"
"UseGrenade" "1"
"NumGrenades" "5"
"MoveAndShootDelay" "0.75"
"Base" - Base keyvalues for a custom soldier class:
"Blood" - Defines what type of blood and gore to use for the model. Known values:
BLOOD_COLOR_RED = Red Blood
BLOOD_COLOR_YELLOW = Yellow Blood
BLOOD_COLOR_GREEN = Similar to Yellow
BLOOD_COLOR_MECH = Sparks
BLOOD_COLOR_ANTLION = Glitchy X's?
BLOOD_COLOR_ZOMBIE = Similar to Yellow
BLOOD_COLOR_ANTLION_WORKER = Similar to blood_color_antlion
"Health" - Sets this classes health. Place a space in between multiple integers for a random chance to set health. Example:
"Health" "5 10 25 50"
// Soldier will spawn randomly with either 5, 10, 25, or 50 health!
"FOV" - Field of View. Not really sure exactly what this does. Recommended set to negative number. Closer to 0 seems to be farther distance to detect up enemies.
"Speed" - Movement speed multiplier!
"MeleeDamage" - Defines damage for melee strike (with weapon).
"Weapons" - Define weapon that class should be equipped with. Place a space between multiple strings for random chance. Map/mapadd takes first priority!
"IsElite" - Toggles Elite status. Drops AR2 and uses AR2 secondary fire occasionally.
"Headshot" - Not sure, all headshots seem to kill...
"Suppressivefire" - Larger number is how likely soldier is to get a clear shot, instead of spraying and praying?
"StartPatrol" - 1 = Begin patrolling when spawned, 0 = Hold position until alerted.
"UseGrenade" - 1 = Enable throwing grenades (Needs valid NumGrenades defined!).
"NumGrenades" - Number of grenades for this class to carry.
"MoveAndShootDelay" - Not sure...
"Grenade" { // Not impremented yet.
"Class" ""
"Keyvalues" {
"Type" ""
}
}
"Grenade" - This feature is not implemented yet but, it looks like you will be able to define custom explosives for each Custom Soldier class

"Capabilities" {
"CAP_TURN_HEAD" "1"
"MOVE_GROUND" "1"
"AIM_GUN" "1"
"INNATE_MELEE_ATTACK1" "1"
"SQUAD" "1"
"USE_WEAPONS" "1"
"DUCK" "1"
"NO_HIT_SQUADMATES" "1"
"ANIMATEDFACE" "1"
"MOVE_SHOOT" "1"
"DOORS_GROUP" "1"
}
"Capabilities" - These are pretty self explanatory. Maybe someone will write explanations for each individual one...
"TakeDamageScale" {
"Head" "1.0"
"Chest" "1.0"
"Stomach" "1.0"
"Arm" "1.0"
"Leg" "1.0"
"Blast" "1.0" // explode, fire damage.
"Melee" "1.0" // melee, stab, vehicle, physical damage.
"Other" "1.0"
}
"TakeDamageScale" - This array's keyvalues define damage multipliers for this combine class. Pretty self explanatory.
"ReplaceActivities" {
"ACTIVITY_NAME" "ACTIVITY_OVERRIDE_NAME"
}
"ReplaceActivities" - Override default animations for an activity with those from another.
Here is an example:
"ACT_RANGE_ATTACK_SMG1" "ACT_DIERAGDOLL"
That will cause soldier to go into T-Pose when shooting SMG1 at ranged enemy!
II. MAPADD IT!To spawn a Custom Combine Soldier via mapadd it would look like this:
Code:
"npc_ccombine_s" {
"origin" "322 -1629 -15" "angle" "0 100 0"
"keyvalues" {
"combinename" "normal_combine"
}
}
Adding the "combinename" keyvalue will tell the game which Custom Soldier class you want instead of letting it randomly pick one.