Welcome to The Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads

Mapping Guide


->SK<-
 Share

Recommended Posts

NOTE : A basic knowledge and experience of Hammer is needed. I.E don't do what some people do and make a huge spike that impales you from a roof so so high.

 

Welcome everyone, boys and girls, and Atrocity :^)

 

This mapping guide is for you! Yes you! You that be so interested in knowing how to do this, that and the other! You've come to the right place!

 

This guide will be split up into sections with new bits added all the time. So scroll down to the section you want to look at!

________________________________________________________________________________________________________________

 

Section A : Separating your map as a better map from the others.

 

Map design, map design, map design. It's everything. And ZS is no exception. Maps are chosen for a variety of reasons, not just if they look pretty but also if they play well game play wise, show a good map awareness (i.e the map can identify itself as something and not just be "Somewhere in Nevada") and be able to give players a good experience overall.

 

For a ZS map to stand out more than others, it needs to fulfill these requirements;

  1. Multiple unexploitable zombie spawns.
  2. Humans even if they are outnumbered can have a huge battle and it be drawn down to the absolute wire.
  3. Multiple points of entry for areas such as rooms, basements and such.
  4. Balance it for both sides. Do not guarantee an easy walk through for humans nor allow zombies to have a free munch too easily.
  5. Map itself is of better quality that is usually found. Maybe has a thought out area, or has multiple thought out area's.

Fulfilling these requirements alone should get your map played and people will take a liking to it!

________________________________________________________________________________________________________________

 

Section B : What should my map have in terms of goals/things to do?

 

This is a legit question I got asked a while back. Might not have been in that sort of form but it is what the question was driving at.

 

For normal Zombie Survival Maps :

 

Your map should realistically be a "defend and hold" scenario. Allow for at least a few (we're talking 3-4 at the very least) areas to be strong-points for humans to hold off the zombie horde as it advanced and tries to nom on some delicious human brain (which might've been yours if you read this guide while actually playing Zombie Survival. If I ate your brain, I will say it could've used a bit of salad, otherwise it was juicy, nice and there was a lot of it. You should be proud!)

 

A good example would be...

 

Probably as a sort of bog standard for you to improve on, zs_highschool_beta is a good baseline to start off with as well as zs_ancientsands. It's got quite a few cading area's and usually you'd find at least 3 if the server is very populated dotted around the place.

 

If you want a gold standard, most likely Mall. Or any map that isn't just so fucking rigged for humans really. I look now at office with it's fucking bullshit doors.

 

For Objective Zombie Survival Maps :

 

Objective maps pretty much spell out what happens in them. Humans attempt to work towards an objective of some sort, which is most of the time to get the fuck outta there and zombies attempt to stop them like cops stopping convict escapee's. Your objective map absolutely needs multiple stops, artificially or otherwise (such as having for an event of some sort to advance to the next "phase") and multiple tasks for the humans to complete. This will generally entail flipping some switches to get past something or something along the lines.

 

A good example would be...

 

The gold standard for me would absolutely be zs_obj_evac or zs_obj_enervation. And no not because I just fixed the maps, because the original map designers genuinely did a very good job. The objectives are fun to do, tense as can be and shit your pants funny if humans are spanners and fuck it all up.

________________________________________________________________________________________________________________

 

Section C : What entities would I most likely need?

 

There's actually quite a lot of entities that ZS introduces if you download the FGD for ZS. This will make your life so much easier.

 

I will not run through these individually, because it'd take a long ass time and halfway down the page you'd die of old age, so I've included a complete list of entities that come as part of the ZS FGD in the spoiler below.

 

Anything marked in bold is the absolute minimum requirement for a ZS map of any kind to function properly.

Anything marked in italic is needed for an objective map only.

Anything marked in both should be self explanatory.

 

[spoiler=Entities for ZS]

 

info_player_human - Humans can spawn here.

 

info_player_zombie - Zombies can spawn here.

 

info_player_redeemed - Redeemed players can spawn here. Use of this is theoretically optional if you do not want redeemers, otherwise is needed.

 

Spawnpoints have a keyvalue "disabled" 1/0 and an input "disable" and "enable" to make it so players can't spawn at them dynamically.

 

 

logic_beats - Allows you to turn beats (the ambient music) on or off.

 

Keyvalues:

  • enabled <0/1> - Should beats be on or off.

Inputs:

  • enable - Enables beats.
  • disable - Disables beats.

logic_dynamicspawning - Allows you to control dynamic spawning.

 

This is ON by default for normal ZS maps. It's OFF by default for objective maps.

 

Keyvalues:

  • enabled <0/1> - Should dynamic spawning be on/off?

Inputs:

  • enable - Enables dynamic spawning.
  • disable - Disables dynamic spawning.

trigger_zombieclass - You can directly control the changing of classes with this.

 

Keyvalues:

  • enabled <0/1> - Should it be on or off.
  • touchclass - Any living zombie touching the brush will be set to this class name. Example: ghoul, poison zombie, fast zombie, fresh dead, runner.
  • endtouchclass - Same as above but for when leaving the brush.
  • touchdeathclass - Same as above but sets the class you respawn as instead of what class you are now.
  • endtouchdeathclass - Same as above but sets the class you respawn as instead of what class you are now on endtouch.
  • onetime <0/1> - If set to 1 then anyone who gets swapped will be respawned as the last class they were before the change. Default is 0.
  • instantchange <0/1> - If set to 1 then anyone who gets swapped will instantly be changed right on the spot. They won't be even need to respawn. Default is 1.

Inputs:

  • enable - Enables.
  • disable - Disables.
  • seton <0/1> - Same as key value "enabled".
  • settouchclass, setendtouchclass, settouchdeathclass, setendtouchdeathclass, setonetime, setinstantchange - Same as the key value versions

func_noair - Simulate an area where a human cannot breathe. Acts similar to being under water but without the physics or effects.

 

Keyvalues:

  • enabled <0/1> - Should it be on or off.

Inputs:

  • enable - Enables.
  • disable - Disables.
  • toggle - Alternate the enabled state.

logic_pantsmode - Allows you to turn pants mode on or off. Zombie players will be stuck as the Zombie Legs class at all times as well as some other slight changes.

 

Keyvalues:

  • enabled <0/1> - Should it be on or off.

Inputs:

  • enable - Enables.
  • disable - Disables.

logic_startingloadout - Allows you to control what people start with.

 

Keyvalues:

  • startingloadout (see below)
  • redeemloadout (see below)

Inputs:

  • setstartingoadout - Sets the starting load out for all new humans.

This is a comma-separated list of entity classes which is then separated by colons. For example :

"weapon_zs_peashooter:1,weapon_zs_axe:1,item_ammo_pistol:2" would give everyone a peashooter, an axe, and spawn two boxes of pistol ammo on them.

It also accepts "none" for absolutely no starting items and "worth" for using the worth menu (default).

  • setredeemloadout - Sets the load out for humans that redeem. Same as above.

logic_brains - All inputs and outputs are the same as logic_points but this works for brains (kills as a zombie). Two new inputs are added.

 

Keyvalues: None

 

Inputs:

  • redeemactivator - Instantly redeems the activator.
  • redeemcaller - Instantly redeems the caller.
  • setredeembrains - Sets the amount of brains required for a zombie to automatically redeem. Setting it to 0 means no automatic redemptions.

logic_worth - Allows you to control Worth.

 

Keyvalues:

  • startingworth - The amount of Worth to start with. Use 0 to disable Worth.

Inputs:

  • setstartingworth - Sets the amount of worth to start with.

logic_pickups - Allows you to control how much stuff people can pickup in the map. Only things placed by the mapper work with this system. Stuff from dead humans doesn't count.

 

Keyvalues:

  • maxweaponpickups - How many weapons a player can pickup from the map.
  • maxammopickups - How many ammo boxes a player can pickup from the map.
  • maxflashlightpickups - How many flashlight batteries a player can pickup from the map.
  • weaponrequiredforammo <0 or 1> - If 1 then players must have a weapon that takes the ammo before being able to pick up an ammo box.

Inputs:

  • setmaxweaponpickups - Same as above.
  • setmaxammopickups - Same as above.
  • setmaxflashlightpickups - Same as above.
  • setweaponrequiredforammo <0 or 1> - Same as above.

logic_classunlock - Allows you to control class unlocks.

 

Keyvalues:

  • class - Sets the name of the class to watch for any outputs.

Outputs:

  • OnClassUnlocked - Called when the class we're watching's class is unlocked by the game. This output isn't called if the class is unlocked by any logic_classunlock entities, only by the game.

Inputs:

  • unlockclass - Forces a class to be unlocked.
  • lockclass - Forces a class to be locked.

point_worldhint - Allows you to create 3D hints and information tags.

 

Keyvalues:

  • hint - The hint to display.
  • viewer - The team that can view us. Use 0 for everyone, -1 for no one (inactive), 3 for zombie, and 4 for human.
  • range - The range from the player's camera we must be in to see this hint. It can also be 0 for infinite which is the default.

Inputs:

  • sethint - Same as the hint key value.
  • setviewer - Same as the viewer key value.
  • setrange - Same as the range key value.

The above two entities are ABSOLUTELY VITAL for objective maps. Otherwise your hapless survivors will not know where the fuck they're meant to go.

 

 

logic_winlose

 

Inputs:

  • win: Humans win the game, map over.
  • lose: Humans lose the game, map over.

Outputs:

  • OnWin: Called when humans win even if not by this entity.
  • OnLose: Vice versa.

logic_pickupdrop

 

Keyvalues:

  • EntityToWatch - targetname of the entity to watch for the below OUTPUTS.

Outputs:

  • OnPickedUp - Activator is the player, caller is the entity that was picked up.
  • ondropped - Activator is the player, caller is the entity that was picked up.

Inputs:

  • ForceDrop - arguments is the targetname of what you want to use. Forces the dropping of something that's picked up by a human.
  • DisablePickup - arguments is the targetname of what you want to use. Disables human pickups. Does not force dropping if currently carried, use the above input.
  • EnablePickup - arguments is the targetname of what you want to use. Enables human pickups.

logic_waves

 

Keyvalues:

  • wave - any On* outputs will watch for this wave. Use -1 for all waves.

Outputs:

  • OnWaveEnd - Called when the wave ends.
  • OnWaveStart - Called when the wave starts.

Inputs:

  • AdvanceWave - Advances to the next wave and sets the wave to active.
  • EndWave - Sets the time that the wave ends to this very moment.
  • StartWave - Sets the time that the wave begins to this very moment.
  • SetWave - Sets the wave to . This does not change the wave state between active and inactive.
  • SetWaves - Sets the total amount of waves to . Don't worry about class unlocks, the gamemode does not use the max waves value directly.
  • SetWaveStart - Sets the time that the wave will start to TimeNow + . You should use this instead of delayed entity inputs.
  • SetWaveEnd - Same as above but for the time that the wave ends.

I'm putting this as both as it's so useful to a mapper it might as well be the part of your map at some stage. Evac for example starts out as a normal zs map, then switches to objective mode using this.

 

 

point_zsmessage

 

Keyvalues:

  • team ("zombie", "human", "private", or "all"): Filter which team gets the message. You can use private if you only want the activator to get the message.

Inputs:

  • message ("msg"): What to display. Supports the markup library.

 

 

________________________________________________________________________________________________________________

 

Section D : Level Design

 

Since the fuckers SpawnMatrix and Atrocity decided to derail my thread, I will turn those tables right back at the fuckers :^)

 

But seriously apart from derailing the thread, they did hit on a very important point.

 

DO NOT FOR THE LOVE OF JESUS MAKE A HALLWAY THAT DOES NOTHING OTHER THAN BE SO OP FOR HUMAN IT'LL JUST BE A LAUGHING STOCK. OR MAKE IT OP FOR HUMANS.

 

I will personally slap you.

 

A level design should feature the following :

  1. Have multiple unique area's with a decent and varied selection of props. Not too many and not too much high HP props.
  2. As said before; make individual areas and rooms with multiple points of entry.
  3. Give good lighting, atmosphere and theme to every room you design. Don't skimp on detail, give it a good look!

A good example of this would include :

  • zs_obj_evac
  • zs_obj_enervation
  • zs_obj_vertigo (I know people will go "WHAT?" but this is level design. Not just how much trolls play on it)
  • zs_abandoned_mall (Not gold standard, but good enough)
  • zs_ancientsands
  • And many more...

A bad example of this would include :

  • zs_bungalows (I have MULTIPLE problems with this)

Remember : Give humans a fighting chance if they put the effort in themselves, but don't give them freebies like these nerds :

 

On 7/6/2015 at 8:57 PM, TheAtrocity said:

So like a map with a very long hallway and multiple 1100 hp props with 50 med stations should be viable for ZS.

 

:^)

 

On 7/6/2015 at 8:59 PM, SpawnMatrix said:

nope add a very very long hallway with 300 1100 hp props and 1000 med stations.. Now that will work.

 

Not only will this NOT WORK, this will just give more reason not to have your map liked, added or touchedi n any way shape or form.

________________________________________________________________________________________________________________

 

Section E : Useful Links

 

Will be aded to later.

________________________________________________________________________________________________________________

 

Section F : Pictures of good mapping and bad mapping

 

Will be aded to later.

  • Like 7
Link to comment
Share on other sites

How about a maze? There are four large room in the map and only two rooms are filled with props. Humans have to find there way through the maze to get to the correct room filled with props in order to cade and survive.

 

Oh and thank you sooo much to SKay for this tutorial. Lots of info and helped me a lot! Thank you!!!! <3

Edited by Spazer
Link to comment
Share on other sites

How about a maze? There are four large room in the map and only two rooms are filled with props. Humans have to find there way through the maze to get to the correct room filled with props in order to cade and survive.

 

Oh and thank you sooo much to SKay for this tutorial. Lots of info and helped me a lot! Thank you!!!! <3

 

it doesn't take long for humans to figure out maps and all just go directly to the best cade spot, ignoring the rest of the map. multiple good places to cade keeps humans guessing of where the cade is. This allows less clusterfucking of the people making the cade.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share