Super Zombie Fortress How to map for SZF: Guide

JugadorXEI

I'm my own master now
Super Zombie Fortress is one of the most popular gamemode for redsun, however not many maps have been made for SZF, and not a lot of people know how to map for it, which is understandable. This guide will tell you the basics on how to make a SZF map, telling you all the necessary entities to place, then later expands into list of extra entities you can use to make gameplay more balanced/fun. This guide assumes you know how to use Hammer Editor at a basic level, so please, don't ask basic things in this thread.

1) Weapons:
Guns in SZF come in four varieties: the spawn weapons (known as common), the weapons outside of spawn (known as uncommon), rare weapons and pickups (health and ammo packs). These are, actually, prop_dynamic entities with specific names given to them so they can be used in the gamemode.
In order to make a weapon grabbable for the mode, you have to place a prop_dynamic entity, and give it the c_shotgun model (models/weapons/c_models/c_shotgun/c_shotgun.mdl), but technically any model with a physics mesh will do. It is recommended that any collision-related variable is left by default. Then, you need to give it an specific name to make them work. These are:
  • szf_weapon_spawn: these weapons won't go away after being picked up or being replaced.
    • These weapons will always be common, never uncommon and rare.
  • szf_weapon: these weapons will go away after being picked up, or replaced by weapon you previously have.
    • These weapons can be anything, including rare weapon and pickups (health and ammo packs).
  • szf_weapon_rare: these weapons will always be rare as long as the gamemode's rare weapon cap per round (as of writing this, 15) has not been reached.
  • szf_weapon_nopickup: acts like szf_weapon, but pickups (health and ammo packs) will never spawn.
  • szf_weapon_static: works similary to szf_weapon, but you can make almost any TF2 weapon spawn as long as you assign it the appropriate model, which is always c_models.
    • Almost always used for rare weapons, but they don't have to be.
  • szf_weapon_static_spawn: acts like szf_weapon_spawn and szf_weapon_static combined, non-expiring of almost any weapons you want.
  • szf_weapon_rare_spawn: acts like szf_weapon_spawn and szf_weapon_rare combined, non-expiring rare weapon.
    • Unlike szf_weapon_rare, it does not affect rare weapon cap, so it will always be a rare weapon no matter what.
    • Since it a rare weapon that never expires, you should never use this unless if absolute needed.
Here's an example of a prop_dynamic with all the criteria I mentioned:


It doesn't matter that the same name is used for multiple prop_dynamic entities. The mode will assign them different weapons to pick up for survivors, and their orientation in the world will also be mimicked.

If you want to control multiple weapons while having different names, you can use szf_weapon_spawn_example and it will still act like a szf_weapon_spawn.

Another neat thing with the weapons, whenever a survivor picks up a weapon it will trigger OnUser1 output (only once per entity), and OnUser2 if the weapon entity is about to be removed/killed, along with survivor as a activator of the output.
This for example, whoever first pickup this weapon gains 100 health. And if weapon get removed, a trapdoor will open.


2) Control Points:
Control Points should be placed through the map route in order to give an idea for survivors on where to go. Oftentimes the CPs cannot be blocked by zombies (except for the first CP) through the use of filters (explained below), but you may change this as you wish. It is your map, after all.

How to make the CP unblockable by Zombies:
1) Make a filter (filter_activator_tfteam) for the RED team. The filter mode should be "Allow entities that match criteria", and you should give it a descriptive name (in my case, redfilter).

You can also make it the other way around: make a filter for the BLU team, and make its filter mode "Disallow entities that match criteria".

2) Open the properties of the trigger_capture_area of your CP, disable SmartEdit (click on it), then click Add.
The "key" will be "filtername" and the value will be the name of our filter (in this case, "redfilter") Don't forget to apply these changes and save your map.


3) The CP will filter out BLUs from this point onward in all cases.


3) Pickups:
Another neat addition in SZF is the ability to pickup certain items similar to HL2/L4D. This means you can grab certain items that may aid you during gameplay, or necessary items for a scavenge map.
These entities need to be either prop_physics or prop_physics_override, and should have a name szf_carry, szf_pick, gascan or redsun_pickup. Names like szf_carry1 will still work. these items will be able to be carried in the gamemode.

Similar to weapons, OnUser1 will be triggered whenever someone picks up a carry item, and OnUser2 if dropped.

One obvious use for these items are scavenge maps: basically, survivors look for key items and place an specific number of them in a certain spot in order to win. Since explaining how these maps work would require some time, here's an example file for scavenge maps you can use, including an explanation on how it works.
There's multiple uses for these items, apart from scavenge items: you can make a grabbable key made to open doors, make a keyblade to slice zombies, etcetera. It's up to you on what kind of item you want to make with this system.

4) Director Overrides:
There can be some cases where SZF plugin can annoy or screw over something you don't want for your map. With this, there several options you can enable/disable director (SZF plugin) by placing down info_target with specific names. This includes:
  • szf_survivalmode: Enables survival mode, this changes slightly on balances to be more accurate for survival maps, changes include:
    • Only one health regen per second.
    • Higher zombie damage scale based on amount of survivors and zombies.
    • No Frenzy and Tank from director.
  • szf_nomusic: Disable all SZF musics, use this if you want to use your own musics for map.
  • szf_director_notank: Disables tank from director.
  • szf_director_norage: Disables frenzy from director.
  • szf_director_spawnteleport: Force all zombies to use frenzy's teleport to nearby players on spawn 24/7 of the time.
    • This does not include instant respawn.
    • Director may not always be able to find a spot to teleport, which you would still need to place some spawnpoints as normal.
So if you want to disable SZF musics, simply create an entity named info_target anywhere in the map, named szf_nomusic then your job is done.


4) Relay Triggers:
There also relays with specific name you can use to trigger events, this include:
  • szf_zombietank: Force a tank, this also bypasses info_target named szf_director_notank.
  • szf_zombierage: Force a frenzy, this also bypasses info_target named szf_director_norage.
For example, capturing a control point forces a tank to spawn.


5) Capture Scale:
Director use CP capture progress to calculate and scale how many zombies and survivor there should be. However there may be some maps where CP captures may not be a good solution for it.

If that happens, you can use math_counter named szf_cp_scale to tell director what value to use while ignoring current CP progress, scaling between 0.0 to 1.0

For example if you set value 0.0, director expects the round has started. 0.5 when round is half-way there, 1.0 when at last area, etc.



6) Goo defences:
Standing inside Scout's goo damages you, and if long enough it deal a lot of damage and can be a big pain. With this, people tends to wait at capture point to progress through the map, so director allows you to take less damage by standing inside capture point.

However there may still be some places where you have to wait that's not in capture zone. With that, you can use trigger_multiple named szf_goo_defense. This acts like a capture point, players standing inside the trigger allows him to take less damage from Scout's goo.


---
There is a lot of things you can do with it, but you don't have to use all of it. Ideally you only need to place some szf_weapon and prevent zombies from capturing, which that should be enough to make your SZF map playable.
Hope this guide helped!
 
Last edited by a moderator:

Lvl. 100 Spycrab

name paint guru
Donator
I didn't expect to have basically nothing to change from older szf maps other than getting rid of the info_target that isn't needed anymore.
 

Leechertyper

Mexico North Mexisyrup
Donator
Developer
This should be stickied or moved to a Template section of sorts
 

42

Fixes everything
Senior Dev
Server Moderator
Donator
Developer
Updated main post to include rest of new features since almost 3 years.