Skeletons, Vampires and TF_Zombies, oh my!

Spooky scary skeletons!
Spooky scary skeletons!

“Medic, it’s not Halloween.”

I know, but since it’s January and everyone’s depressed, I thought I’d write something about one of the lesser known TF2 commands. The TF_Zombie is a sight to admire, and there’s some rather cool stuff about them that you might like to learn about! Plus, you liked the skeletons on Helltower, right? Yeah, I thought so.

Sentries shoot them too!
Most things recognize that skeletons are baaaad.

So, first things first, the TF_Zombie entity was first used officially in the 2013 Scream Fortress event, as the driving force behind the skeletons on Helltower. The skeletons are AI characters that cannot jump or crouch, are unaffected by knockback, Jarate and other types of status effect and use the animations of the Sniper. On Helltower, they spawned in bunches of 5 and turned into more skeletons when killed. They are considered as enemies to other AI entities, such as sentry guns, MONOCULOUS and TF_Bots (the AI behind the MvM robots).

Skeletons and TF_Zombies track the closest player, and will run to them and attack them until the player dies or is out of reach. If they’re out of reach, the skeletons will chase the next closest player. If they can’t find anyone, they’ll just stand still.

ZOMBIES! And Spies...
ZOMBIES! And Spies…

Originally, the TF_Zombie entity used the TF2 classes with the zombie misc items. Unless they were Spies. At first, Spies appeared as human Spies, but this was fixed in a later patch. All TF_Zombies were BLU, but could be killed by either team. They ran around with invisible melee weapons, punching people to death. Looked good on Heavy, looked rather weird on Spies and Scouts. Oh, and at first, they had the odd issue of dying should too many of them group up together.

How do we spawn them then? With commands of course! There are several commands needed, and for best results, you need 2 humans on the server, one on each team, as they don’t seem to spawn or spawn sporadically if there’s only one person on the server. You also need sv_cheats enabled (set to 1) and Halloween Mode enabled, with TF_Forced_Holiday 2.

To spawn a single zombie, you use the command ent_create tf_zombie. This created one skeleton, which, when killed, will split into 3 smaller baby zombies.

To enable the skeleton hordes, use the command tf_halloween_zombie_mob_enabled 1. This will create what you see in a normal Helltower server on pretty much any official map. With the commands tf_halloween_zombie_mob_spawn_count <amount> and tf_halloween_zombie_mob_spawn_interval <amount>, you can change how many spawn at a time and how often they spawn. You can also alter the speed and damage that the skeletons do with tf_halloween_zombie_damage <amount> and tf_halloween_zombie_speed <amount>. The defaults for all four values are 5, 480, 10 and 300.

Now, with skeletons, if there’s too many around, spawning any more causes them to explode into bones. But back when they were BLU zombies, you could, theoretically, have hundreds of them. You can still have vast quantities of skeletons now, even with a full server of 32 players! The TF_Zombie entity is, as the name suggests, an entity, and is counted by the Source Engine as an NPC, NOT a player slot. That way, you can have hordes of monsters chasing you. This opens up huge possibilities, both for players and for modders.

Well, that’s about it, there’s not much else to say, apart from the fact that the AI behind the skeletons isn’t THAT smart…

They'll literally run around in circles, desperate to kill you!
They’ll literally run around in circles, desperate to kill you!

Medic

Medic, also known as Phovos (or occasionally Dr Retvik Von Scribblesalot), writes 50% of all the articles on the Daily SPUF since she doesn't have anything better to do. A dedicated Medic main in Team Fortress 2 and an avid speedster in Warframe, Phovos has the unique skill of writing 500 words about very little in a very short space of time.

Leave a Reply

Your email address will not be published. Required fields are marked *