Zombie:Reloaded User Manual

Targets plugin version 3.0.0 Beta 2, 2009.12.11
Written by Richard Helgeby

Manual last modified: 2009.12.11

Index

  1. Introduction
    1. About The Plugin
    2. Game Objectives
    3. Credits
  2. Installation
    1. Requirements
    2. Plugin Installation
    3. Test Run
    4. Upgrading
  3. Configuration
    1. Understanding syntax
      1. Optional Parameters
      2. Required Parameters
      3. Multiple Options In The Same Parameter
      4. Text As Parameters
    2. Configuration Files
    3. Logging
      1. Log Flags
      2. List Of Modules
    4. Custom Map Configuration Files
      1. Types
    5. Model Configuration
    6. Download List
    7. Class Configuration
      1. Class Types
      2. Class Attributes
      3. Class Requirements
      4. Class Console Variables
      5. Modifying Class Attributes
      6. Attribute Multipliers
      7. Reloading Attributes
      8. Dumping Attributes
      9. Dumping Multipliers
    8. Weapon Configuration
      1. Attributes
      2. Weapon List
      3. Console Commands
    9. Hit Group Configuration
    10. Infection Module
    11. Damage Control Settings
    12. Overlay Settings
    13. Money Settings
    14. Visual Effects Configuration
    15. Sound Effects Configuration
    16. Respawn Configuration
    17. Spawn Command Configuration
    18. Spawn Protect Configuration
    19. Teleport Configuration
    20. HP Display Settings
    21. Jump Boost Settings
    22. Anti-Stick Configuration
    23. Volumetric Feature Configuration
      1. Creating A Volume
      2. Volume Attributes
      3. Volume Commands
      4. Anti-Camp
      5. Class Editor
    24. Admin Authentication
      1. Admin Flags Used In Zombie:Reloaded
      2. Predefined Admin Groups
      3. Console Variables
  4. How To Play
    1. Game Rules
    2. Commands
    3. Menus
    4. Teamwork
    5. Playing As Human
      1. Finding A Place To Hide
      2. Making Barricades
      3. Playing Fair
    6. Playing As Zombie
      1. Chasing Humans
      2. Avoiding Knock Back
      3. Taking Advantage Of Class Skills
    7. Physics Stuff
      1. Glitching Trough Walls
      2. Jumping Through Non-Solid Props
      3. Jumping Fast In Small Areas
  5. Troubleshooting
    1. Verifying Requirements
    2. Startup
    3. Error and Warning Messages
    4. Common Problems
  6. Server Administration Guide
    1. Adding Custom Content
    2. Briefing - Map Configuration Files
    3. Map Balance
    4. Tuning Knock Back
    5. Map Time
    6. Servers With Unlimited Ammo and No Reloading
  7. Reporting Bugs and Improvements

1. Introduction

1.1 About The Plugin

Zombie:Reloaded a alternative to Zombie Mod with a lot of new features and improvements. It's open source and made for Counter-Strike: Source and runs on a powerful scripting platform called SourceMod.

1.2 Game Objectives

The objectives is to change the game into humans versus zombies. Humans try to survive by camping, barricading and hiding. Zombies try to zombify humans by using their knife.

At a random time after the round starts, one or more random humans are turned into zombies. Zombies have certain advantages as running faster and more health points. Humans have huge amounts of ammo (or unlimited), and their bullets knock back zombies. A lot more attributes can be adjusted for both zombies and humans in different classes.

For best results the server should have Counter-Strike: Source maps made for Zombie Mod.

1.3 Credits

Concept
Developers and testers
  • Greyscale / sumguy14

    Author of Zombie:Reloaded. The one who started remaking Zombie Mod for the SourceMod platform.

    Made overlays and zombie ambient sound file.

    Related server: "#1 Pro's Playground - 24/7 Zombie Mod [ Rank / Reload / Napalm ]" (74.201.57.54:27015) - USA, Washington

  • Richard Helgeby

    Zombie:Reloaded developer. Started working on the plugin from version 2.5.1. Fixed bugs and made new features and is now one of the head developers.

    Related server: (same as Cpt. Moore below)

  • Cpt. Moore and SwissQuake

    Helped debuging issues and made some new features. Most credits go for letting us use the SwissQuake zombie server for testing.

    Related server: "Zombie World Domination by SwissQuake" (85.195.74.201:13010) - Switzerland, Basel

Game resources
  • robot - Zombie models
  • ICS - The hellknight zombie model (from ICS' CS:S Skins)
  • fischfasch - Team win overlays
  • Greyscale - ZVision zombie overlay and ambience sound file
Additional testers and contributors from the forums
  • daleGEND
  • Darkthrone
  • DreamState
  • exvel
  • Grey Echo
  • NouveauJoueur
  • TESLA-X4
  • thetwistedpanda
  • zhelev81
  • And more people we haven't listed yet...

2. Installation

2.1 Requirements

Zombie: Reloaded requires that the following stuff is installed on the server:

  1. Metamod:Source - A simplified API for server plugins. It makes it easier for developers to make plugins like SourceMod:

  2. SourceMod - A scripting platform:

  3. ZRTools extension (bundled). Provides some extra functions needed by Zombie:Reloaded. See Plugin Installation (2.2).

    - Or, depending on Zombie:Reloaded release -

    SDK Hooks Extension (version 1.1 or newer).

2.2 Plugin Installation

Extract the content of the zip file into "cstrike" on the server. The folder and file structure is already set up correctly and ready to be extracted into "cstrike".

2.3 Test Run

The plugin should work with default configuration. Start the server and join a team. Once the round starts there sould be some messages at the chat with "[ZR]". Or type "!zmenu" in the chat to bring up the zombie menu to confirm that the plugin is running.

Next check error logs from SourceMod and look if there are any entries from "zombiereloaded.smx". If the plugin doesn't work at all or there are errors logged, see Troubleshooting (5).

2.4 Upgrading

When upgrading there might be changes to configuration files. They must either be reconfigured or merged with old settings.

Reloading Zombie:Reloaded with SourceMod is not recommended. Changing the map works in most cases, but some console variables might not be updated. Do a server restart for a complete refresh of console variables.

3. Configuration

3.1 Understanding Syntax

In this manual commands or paths may be written in a certain style that tells how to use it.

Note that the style itself is not written, but it's used as an indicator to tell if a parameter is optional or not.

Example syntax of a command:

zr_class_modify <classname|"zombies"|"humans"|"admins"> <attribute> <value> [is_multiplier]

Some paths may look like:

cfg/sourcemod/zombiereloaded/<mapname>.cfg

How to read syntaxes like this is explained below.

1. Optional Parameters

Optional parameters is not required and usually have a default value or action. They are marked with brackets.

Example:

zr_somecommand [number]

Usage examples:

zr_somecommand
zr_somecommand 10

2. Required Parameters

Required parameters must be specified for the command to function. Usually if no parameters are written the command replies with some info about the syntax.

Less than (<) and greather than (>) symbols marks required parameters.

Examples:

zr_somecommand <number>
zr_infect <target>

Usage examples:

zr_somecommand 100
zr_infect "unnamed"

3. Multiple Options In The Same Parameter

Some commands have parameters that support multiple pre defined options. Usually it's specifying a name, a index or a predefined value. Each option is separated by a "|" symbol. Only one of the options listed is used in a command.

Example:

zr_do_something <index|name|"all">

Usage examples:

zr_do_something 1
zr_do_something "all"
zr_do_something "unnamed"

4. Text As Parameters

Since parameters are separated by spaces, text (strings) should be quoted. It's a good habit to do this on all string parameters to avoid parsing mistakes.

Example:

zr_infect "unnamed" "player"
zr_do_something "example text. test."

Example of bad usage:

zr_do_something example text. test.

The last example actually have 3 parameters while it should be only one. This may cause unexpected results and is an example of why strings should be quoted.

3.2 Configuration Files

These are the default configuration files. The paths are relative to the "cstrike" folder.

Default Configuration Files
Type: File:
Main conf. cfg/sourcemod/zombiereloaded/zombiereloaded.cfg
Map config. cfg/sourcemod/zombiereloaded/<mapname>.cfg
Post map conf. cfg/sourcemod/zombiereloaded/<mapname>.post.cfg
Hitgroup conf. addons/sourcemod/configs/zr/hitgroups.txt
Class conf. addons/sourcemod/configs/zr/playerclasses.txt
Weapon conf. addons/sourcemod/configs/zr/weapons.txt
Download list addons/sourcemod/configs/zr/downloads.txt
Model list addons/sourcemod/configs/zr/models.txt

The post map configuration file is executed after all features of ZR is done loading. Commands that modify loaded data must be put in post configuration files. How to configure each file is explained in their own sections.

Configuration files also can be reloaded in-game when testing or tuning stuff.

Configuration File Console Commands
Syntax:
zr_config_reload <file alias>

Reloads a config file.

Parameters:

file alias The module to reload. Available options:
  • models
  • downloads
  • classes
  • weapons
  • hitgroups
zr_config_reloadall

Reloads all config files.

3.3 Logging

The log system used in Zombie:Reloaded is pretty powerful and customizable. It's based on logging flags and a module filter.

The flags tell what kind of events to log. Those flags are stored as a numeric value in a bit field where each bit tell wether to log a certain event or not. See Bit field for technical details.

The module filter is a list of modules to enable log events from. This filter gives extra control of what stuff to log. Use console commands below in the main configuration file to add or remove modules to the filter.

These commands might not work properly until bug 3828 in SourceMod is fixed. It's a bug where console commands in plugin configuration files are executed late so a command like zr_log_add_module is too late.

There are console variables for different log settings and exceptions. Place them in the main configuration file.

Log Console variables
Console variable: Default:
zr_log "1"

Enable logging of events in the plugin. Fatal errors or errors are independendt on this setting and always logged.

Options:
0 or 1

zr_log_flags "2"

A bit field that specify what event types to log.

Options:
Number - See Log Flags (3.3.1)

zr_log_module_filter "0"

Enable module filtering. Only log events from listed modules will be logged. Use console commands below to add or remove modules from the filter.

Options:
0 or 1

zr_log_ignore_console "1"

Don't log events triggered by console that are executed by the console itself, like commands in configs. Enable this command to avoid spamming logs with events like weapon restrictions.

Options:
0 or 1

zr_log_print_admins "0"

Print log events to admin chat in addition to the log file.

Options:
0 or 1

zr_log_print_chat "0"

Print log events to public chat in addition to the log file.

Options:
0 or 1

Log Console commands
Syntax:
zr_log_add_module <module> [modules...]

Adds one or more modules to the module filter. Use short module names, see List Of Modules (3.3.2).

Parameters:

moduleName of the module to add.
modulesAdditional modules to add.
zr_log_remove_module <module> [modules...]

Removes one or more modules from the module filter. Use short module names, see List Of Modules (3.3.2).

Parameters:

moduleName of the module to remove.
modulesAdditional modules to remove.
zr_log_list

Lists current log flag settings and module filtering settings.

1. Log Flags

Log Flags
Flag: Bit No.: Value: Description:
LOG_CORE_EVENTS 1 1 Log events from the plugin core like config validation and other messages.
LOG_GAME_EVENTS 2 2 Log admin commands, console commands, and game related events from modules like, suicide attempts and weapon restrictions.
LOG_PLAYER_COMMANDS 3 4 Log events that are triggered by players, like chat triggers, teleporting and class changes.
LOG_DEBUG 4 8 Log debug messages, if any. Usually only developers need to enable this log flag.
LOG_DEBUG_DETAIL 5 16 Log additional debug messages with more details. May cause spam depending on module filter settings. Usually only developers need to enable this log flag.

To combine several logging flags use the sum of their values. A combination could be "3", which is these log flags:

LOG_CORE_EVENTS + LOG_GAME_EVENTS
1 + 2

Most server setups donesn't need different flag settings. Default is fine.

To decode the value you must convert it from decimals to binary, and count from right to left what bits that are 1. Look up the bit number (not value) in the table above.

As an example on using the number 11 it's 1011 in binary. Counting from right we see that the following bit numbers are on: 1, 2, and 4. That is the flags:

LOG_CORE_EVENTS + LOG_GAME_EVENTS + LOG_DEBUG
1 + 2 + 8

Most operating systems or distributions have a calculator that can convert between binary and decimal numbers with scientific mode enabled. An online unit converter like below can also be used.

Decimals to binary conversion

2. List Of Modules

List Of Modules
Short name: Description:
account Money manager
antistick Anti-Stick feature
config Configuration file manager
cvars Console variables
damage Damage manager
downloads File download manager
hitgroups Hit group feature
infect Infection manager
models Model list file manager
playerclasses Class manager
veffects Visual effect manager
seffects Sound effect manager
tools Helper functions (offsets)
volfeatures Volumetric features
weapons Weapon manager
weaponrestrict Weapon restriction manager
zspawn Spawn command manager
ztele Teleport manager

3.4 Custom Map Configuration Files

Configuration files for each map is supported. They're executed after the main configuration files are executed, and are ideal for customizing map settings. These files are just regular configuration files and can also have standard console commands like setting map time. Map configuration files are optional.

The main purpose of these files is to make it possible to change settings for Zombie:Reloaded on certain maps. That could be scaling knockback, restricting certain weapons, changing class attributes or changing ambience sound.

Other map configuration plugins should also work if certain features that doesn't exist in Zombie:Reloaded map configurations is needed.

1. Types

There are two kinds of map configs; pre and post. Pre map configuration files are executed before the modules and data is loaded. They're useful for changing configuration sets for certain modules like classes. Post map configuration files are executed after the modules are loaded. Certain stuff have to be placed in this one to be effective, like changing class attributes.

Map Configuration File Types
Type: Executed: Path:
Pre Before modules and data loading cfg/sourcemod/zombiereloaded/<mapname>.cfg
Post After modules cfg/sourcemod/zombiereloaded/<mapname>.post.cfg

If not explicit specified in the module documentation, use pre configuration.

3.5 Model Configuration

The model configuration file is a list of models used on the server stored in Valve's key/value format.

The models listed in this file are also precached when the server starts. Custom models used, but not listed in this file will cause a "model not precached" error on the server, so they must be listed in this file.

In addition models can be restricted to certain groups using the "access" attribute.

List of available model attributes:

Model Attributes
Attribute: Value type:
name text

File name of model file, without extension.

path text

Path to model files. Must end with "/". Windows servers can use "\" in paths, but they also work with "/".

The path is relative to "cstrike".

team text

What team the model belongs to.

Options:

zombiesZombie players. Includes mother zombies.
humansHuman players.
access text

Access mode of the model.

Options:

publicEveryone can use the model. Included in public random selections.
adminsModel can only be used by admins. Included in public random selections but only applied to admins.
hiddenModel is excluded from public random selections.
motherzombiesModel can only be used by mother zombies.
groupUse group authentication. See "group" attribute.
group text

Name of SourceMod group to use for model authentication if access is "group". If access is anything else than "group" this setting is ignored and can be blank ("").

Only players that is a member of this group can use this model. Root admins can't use this model if they're not a member.

For example usages see examples in default model configuration.

Put the list of models in:

addons/sourcemod/configs/zr/models.txt

3.6 Download List

Custom materials and overlays must be listed in the download list so clients will download them. Use one line per file, with paths relative to the "cstrike" folder.

List files to be downloaded in the following file:

addons/sourcemod/configs/zr/downloads.txt

Look at the default downloads in that file for an example on how to list files to be downloaded.

Note: The ambiecne sound file doesn't need to be listed.

3.7 Class Configuration

The class system makes it possible to have different zombies and humans with customized skills. It cannot be turned off, but class selection menus can be disabled. If there is only one class in each team, the class selections menus are automatically disabled.

The class configurations are stored in Valve's key/value format, and the file that's loaded should be specified in the "zr_config_path_playerclasses" console variable. It's possible to change this variable with per-map configuration files to have different sets of classes on one or more maps.

Default path is:

configs/zr/playerclasses.txt

Note: The path is relative to the "sourcemod" folder.

The file contains a short description of all attributes. Details are explained below.

1. Class Types

There are three class types; zombies, humans and admin-mode. Default classes are selected on the player depending on console variables and the class file.

Admin-mode classes are currently incomplete and will be validated, but ignored in the game. This is a special mode in the game, but not the same as admin-only classes. To get admin-only classes set the admin-only flag in the flags attribute.

2. Class Attributes

The list below explains all available class attributes in detail:

Class Attributes
Attribute: Value type: Limits/Requirements:
enabled text "yes" or "no"

Enables or disables the class. Disabled classes won't show up in the class selection menus. Also, if some attributes failed to validate the class will be disabled.

team number 0 - 2

Specifies the class type (team ID). Class types are filtered in the class selection menus, so only zombies can use zombie class types, and only humans can use human class types. These are the allowed team IDs:

0Zombie classes
1Human classes
2Admin-mode classes

The admin-mode class type sets the player in spectacting like mode, but allow admins to walk around. They can't take or give damage, and they won't affect the game rules in any way. Admin-mode is incomplete and classes of this type is ignored in the game.

See the flags attribute for admin-only classes.

team_default text "yes" or "no"

Marks the class as the default class for its specified team. This class will be automatically selected on new players when they join the server, depending on what's specified as default in the main configuration file (zr_classes_default_*). If multiple classes in the same team is marked as default the first class marked as default will be used.

flags number 0 - 3

Special class flags that are stored in a bit field (explained in Log Flags (3.3.1)). Available flags:

1 Admins only
Marks the class to be used by admins only. Classes with this option on will not be visible for regular players in the class menu.
2 Mother zombie.
Marks the class as a mother zombie class. These classes will be used on mother zombies. Note that zr_classes_default_mother_zombie setting must be set to motherzombies for this flag to be effective.

These flags can be used in a combination (1 + 2), so it could be a mother zombie class for admins only.

group text Name of a valid SourceMod group

Rescrict class to members of this SourceMod group. Useful for making VIP-only classes. Leave blank to allow everyone to use this class.

name text Unique, not empty, max 64 charact.

A unique name for the class that is displayed in the class selection menus. Cannot be empty. If multiple classes have the same name, the first one found is used.

This name is also refered to by cvars that set default classes.

description text Max 256 characters, not empty

The description of the class, used in class selection menus. Cannot be empty.

model_path text Max 256 characters, not empty

Model file path to use on the player, relative to the "cstrike" folder. There are a few presets supported by this attribute:

default Use default CS models. The one players select when selecting team.
random Selects a random public or admin model for the current team. Admin models are only applied to admins.
random_public Selects a random public model for the current team.
random_admin Selects a random admin model for the current team. Model permissions will be ignored.
random_hidden Selects a random hidden model for the current team.
random_mother_zombie Zombies only. Selects a random mother zombie model.
no_change Don't change model. Use this setting to keep default Counter-Strike: Source model, or to fix a compatibility issue with other plugins that change model on players.
alpha_spawn number 0 - 255

The initial transparency value on the player, where 255 is fully visible and 0 is invisible.

alpha_damaged number 0 - 255

Transparency on the player when a certain amount of damage is done. 255 is fully visible and 0 is invisible.

alpha_damage number 0 - 20000

How much damage that needs to be done before the players alpha changes from "aplha_spawn" to "aplha_damaged".

overlay_path text Max 256 characters

Optional. Overlay texture to be displayed at the player. It can be controlled by the night vision key ("n" by default). The path is relative to "cstrike/materials". Leave blank to disable.

nvgs text "yes" or "no"

Gives night vision to the player.

fov number 15 - 165

The field of view on the player. Note that the weapon hud disappear if FOV is anything else than 90.

has_napalm text "yes" or "no"

Human classes only. Specifies whether the human can trow napalm grenades or not.

napalm_time decimal 0.0 - 600.0

Zombie classes only. Specifies how long in seconds zombies will burn when hit by napalm grenades. 0.0 or a negative value will disable this feature on the current class. This attribute has no effect on human classes.

immunity_mode number 0 - 2

Note: Incomplete feature!

The immunity mode. This feature is currently incomplete and values are ignored.

immunity_amount decimal (incomplete)

Note: Incomplete feature!

The value for the specified immunity mode. This feature is currently incomplete and values are ignored.

health number 0 - 20000

Initial health points on the player.

health_regen_interval decimal 0.0 - 900.0

The health regeneration interval, in seconds. Use 0.0 to disable regeneration.

health_regen_amount number 0 - 10000

How many health points to give per interval. Regeneration stops when the players health is above the initial health.

health_infect_gain number 0 - 20000

Zombie classes only. How many health points to give the zombie each time it infect a human.

kill_bonus number 0 - 16

Zombie classes only. How many extra points to give the killer of this zombie. If this is 0, the default value of 1 point will be given.

speed decimal 10.0 - 2000.0

The player's running speed.

knockback decimal -30.0 - 30.0

Zombie classes only. Force to apply on the zombie when shot at. The zombie is pushed in the same direction as the bullet.

jump_height decimal 0.0 - 5.0

Jump height multiplier. Extra upward boost when jumping. If 1.0 or 0.0 no boost will be applied.

jump_distance decimal 0.0 - 5.0

Jump distance multiplier. Extra forward boost when jumping. If 1.0 or 0.0 no boost will be applied.

3. Class Requirements

At least one zombie class and one human class with no special flags set is required. Otherwise the plugin will fail to load.

Requirements:

Errors are logged to SourceMod error logs if it can't parse the file or if class attributes have invalid values.

In case of incorrect values a warning will be logged and the class will be disabled. The class index and the error flags (bit field) in the log message tells what attributes that failed to validate.

Attribute Flags
Attribute: Bit: Value:
enabled 1 1
team 2 2
team_default 3 4
flags 4 8
group 5 16
name 6 32
description 7 64
model_path 8 128
alpha_initial 9 256
alpha_damaged 10 512
alpha_damage 11 1024
overlay_path 12 2048
nvgs 13 4096
fov 14 8192
has_napalm 15 16384
napalm_time 16 32768
immunity_mode 17 65536
immunity_amount 18 131072
no_fall_damage 19 262144
health 20 524288
health_regen_interval 21 1048576
health_regen_amount 22 2097152
infect_gain 23 4194304
kill_bonus 24 8388608
speed 25 16777216
knockback 26 33554432
jump_height 27 67108864
jump_distance 28 134217728

The error flags are stored in a bit field (explained in Logging (3.3)).

Another quick way to decode it would be to use the calculator in Windows. Enable scientific mode and enter the decimal value. Then switch to binary mode (F8) and count from right to left what bits that are 1. Look up the bit numbers in the table above to see what attributes that didn't validate.

4. Class Console Variables

There are several console variables to set default class settings for players. Place these console variables in the main configuration file:

cfg/sourcemod/zombiereloaded/zombiereloaded.cfg

And/or in a map config file:

cfg/sourcemod/zombiereloaded/<map name>[.post].cfg

Example map config files:

cfg/sourcemod/zombiereloaded/zm_panic.cfg
cfg/sourcemod/zombiereloaded/zm_panic.post.cfg

Class Console Variables
Console variable: Default:
zr_config_path_playerclasses "configs/zr/playerclasses.txt"

Specifies what class configuration file to load. Several class templates can be used with map configurations.

Path is relative to "sourcemod".

If used in map configuration files this console variable must be placed in pre map configuration files. Post configuration files won't have any effect because the class module is already done loading.

zr_classes_spawn 0

Re-display class menu every spawn.

Options:
0 or 1

zr_classes_random 0

Assign random classes to all players each round.

This setting overrides zr_classes_save.

Options:
0 or 1

zr_classes_change_timelimit 20

The time limit to change human classes with instant change after spawning. So humans don't have to set class before spawning. Time is in seconds.

zr_classes_save 1

Save players' class selections in server cookies. Class selections are restored next time players connect.

This setting overrides zr_classes_default_*, but on first-time connecting players the default classes are assigned.

This setting also override zr_classes_*_select. If players have saved class indexes in cookies they will be restored.

Disabling this option won't erase saved settings, they just won't be restored when players connect.

Options:
0 or 1

zr_classes_default_zombie "random"

Default zombie class selected for all players when they connect.

Options:

<class name>Specify a class name to use as default zombie.
"default"Use the default class in the class configuration.
"random"Select a random zombie class from the class configuration.
zr_classes_default_mother_zombie "motherzombies"

Default mother zombie class to be set on mother zombies. If no mother zombie class exist it will use the class selected by the player.

Options:

<class name>Specify a class name to use as default mother zombie.
"random"Select a random regular zombie class.
"motherzombies"Select a random zombie class with mother zombie flag.
"disabled"No change. Use the zombie class selected by the player.
zr_classes_default_human "random"

Default human class selected for all players when they connect.

Options:

<class name>Specify a class name to use as default human.
"default"Use the default class in the class configuration.
"random"Select a random human class from the class configuration.
zr_classes_default_admin "random"

Note: This feature is incomplete!

Default admin-mode class selected for all players when they connect, if found. This feature is incomplete and ignored.

Do not confuse this with admin-only classes. Admin-mode is a special spawn mode for admins.

Options:

<class name>Specify a class name to use as default admin-mode class.
"default"Use the default class in the class configuration.
"random"Select a random admin-mode class from the class configuration.
zr_classes_zombie_select 1

Allow players to select zombie classes. Disable this option to force certain classes on players depending on what zr_classes_default_zombie is set to.

Options:
0 or 1

zr_classes_human_select 1

Allow players to select human classes. Disable this option to force certain classes on players depending on what zr_classes_default_human is set to.

Options:
0 or 1

zr_classes_admin_select 1

Note: This feature is incomplete!

Allow admins to select admin classes. Disable this option to force certain classes on admins depending on what zr_classes_default_admin is set to, - and if admin mode is enabled on the player.

Options:
0 or 1

5. Modifying Class Attributes

Classes can be modified after they're loaded. This is useful in map configs to do stuff like scaling knockback to tune map balance.

All attributes can be modified, and some can also be scaled with a multiplier. The value in the original class cache is multiplied with the specified value and written back to the modified cache.

When multiplying, the value is always based on the original value, not multiplying the earlier multiplied value. This also makes it easy to restore the original value.

Note:These commands must be used in a post map config files, otherwise they won't have any effect because class data isn't loaded yet.

Modifying Class Command
Syntax:
zr_class_modify <class|team> <attribute> <value> [is_multiplier]

Modify settings on one or more classes.

Parameters:

class|team The class to modify. Can be any valid class name, or one of the following team names:
"all", "humans", "zombies" or "admins".
attribute The name of the class attribute to modify.
value Value to set, or multiplier if a multiplier.
is_multiplier Optional. Specifies wether the original value should be multiplied by the specified value. Default is false.

6. Attribute Multipliers

Making a balanced zombie map is difficult, and all maps have different balance. The knock back and other settings may work fine on one map, but not on other maps. This is where multipliers are useful.

With class attribute multipliers, numeric class attributes can be scaled and configured with map configuration files. There's a set of multipliers for both humans and zombies.

Warning: Currently these multipliers aren't validated, so using too high or negative values may cause unexpected behaviour, or even crash the plugin.

Attribute multipliers are set using this console command:

Attribute Multiplier Command
Syntax:
zr_class_set_multiplier <team> <attribute> <value>

Sets the multiplier on a class attribute.

Parameters:

team What multiplier set to use. Options:
"zombies" or "humans"
attribute A numeric class attribute. See Class Attributes (3.7.2) for details on attributes. Valid attribute multipliers:
  • health
  • health_regen_interval
  • health_regen_amount
  • speed
  • jump_height
  • jump_distance
Multipliers for zombies only:
  • napalm_time
  • health_infect_gain
  • knockback
value Value to set, or multiplier if a multiplier.

Multipliers can also be adjusted in the zombie admin menu, but the changes aren't saved. The menu is useful for finding the correct value, and then use it in a map configuration file.

7. Reloading Attributes

While testing or adjusting class attributes they must be reloaded before they will be effective. This only applies to players who already are the same class.

Reload Attributes Command
Syntax:
zr_class_reload <target>

Refreshes the player cache and reloads class attributes on one or more players.

Parameters:

targetTarget player(s) to refresh cache on. A name or a SourceMod target specifier.

8. Dumping Attributes

For debug purposes class attributes also can be dumped.

Dump Attributes Command
Syntax:
zr_class_dump <cachetype> <index|targetname>

Dumps class data at a specified index in the specified cache.

Parameters:

cachetype Cache to read from. Cache types:
"original"Unmodified raw class data.
"modified"Modified class data with multipliers.
"player"Player cache, with multipliers.
index|targetname Class index, or name of player if "player" cache type is used.

9. Dumping Multipliers

Dumping multipliers is another command for debug purposes. It will dump the current state of multipliers.

Dump Multipliers Command
Syntax:
zr_class_dump_multipliers <team>

Dumps class attribute multipliers for the specified team.

Parameters:

teamThe multiplier set to dump. Valid options are:
"humans" or "zombies"

3.8 Weapon Configuration

The weapon module can be used to restict weapons or scale knockback.

1. Weapon Attributes

Weapon attributes are stored by default in:

addons/sourcemod/configs/zr/weapons.txt

Custom file may be specified in the console variable "zr_config_path_weapons". If used in per map configuration files it must be in a pre configuration file.

These are the allowed attributes:

Weapon Attributes
Attribute: Type: Limits/Requirements:
weaponentity text Name of a valid weapon entity

Name of the weapon entity. See Weapon List (3.8.2) for a list of valid weapon names.

weapontype text Separate items with ", "

The weapon type and a optional list of custom weapon groups.

Pre-defined options:

  • All
  • Pistol
  • Shotgun
  • SMG
  • Rifle
  • Sniper
  • Machine Gun
  • Melee
  • Projectile
  • Equipment
weaponslot number 0 - 3

The slot index the weapon resides in. It's just here to avoid hard coding indexes. Don't change this in the default configuration!

Options:

0Primary weapon slot
1Secondary weapon slot
2Knife slot
3Equipment slot
restrictdefault text "yes" or "no"

The default restricted status of the weapon on map start.

Options:

"yes"Enable
"no"Disable
toggleable text "yes" or "no"

Enable weapon to have restrictions toggled mid-game.

Options:

"yes"Enable
"no"Disable
ammotype text -

Ammo entity that belongs to weapons. Don't change this!

Options:

ammo_50aedeagle
ammo_762mmscout, ak47, g3sg1, aug
ammo_556mm_boxm249
ammo_556mmgalil, sg552, famas, m4a1, sg550
ammo_338magawp
ammo_9mmmp5navy, tmp, glock, elite
ammo_buckshotm3, xm1014
ammo_45acpump45, mac10, usp
ammo_357sigP228
ammo_57mmp90, fiveseven
ammoprice number -

Price of ammo for this weapon.

knockback decimal -

The knock back multiplier for the weapon. 1.0 is no change, 0.5 give half knock back, and 2.0 gives double knock back.

zmarketprice number -

The price of the weapon in ZMarket. Default in configuration file is CS:S buymenu price.

zmarketpurchasemax number -

The max number of purchases allowed per spawn for the weapon.

The file structure is Valve's key/value format where the root section is named "weapons" and a sub section for each weapon using short names from the list below.

2. Weapon List

Weapon List
Weapon name: Type: Full name:
Glock Pistol Glock 18 Select Fire (9X19mm Sidearm)
USP Pistol .45 USP (K&M .45 Tactical)
P228 Pistol 228 Compact
Deagle Pistol Desert Eagle .50C (Night Hawk .50C)
Elite Pistol .40 Dual Elites
Fiveseven Pistol ES Five-Seven
M3 Shotgun Benelli M3 (Leone 12 Gauge Super)
XM1014 Shotgun Benelli XM1014 (Leone YG1265 Auto Shotgun)
Mac10 SMG Ingram MAC-10
TMP SMG Steyr TMP (Schmidt Machine Pistol)
MP5Navy SMG HK MP5 Navy (KM Sub-Machine Gun)
UMP45 SMG K&M UMP45
P90 SMG FN P90 (ES C90)
Galil Rifle IMI Galil (IDF Defender)
Famas Rifle Giat FAMAS (Clarion 5.56)
AK47 Rifle AK-47 (CV-47)
M4A1 Rifle M4A1 Carbine (Maverick M4A1 Carbine)
SG552 Rifle SIG SG552 (Krieg 552 Commando)
AUG Rifle Steyr AUG (Bullpup)
M249 Machine gun FN M249 (ES M249 Para)
Scout Sniper Steyr Scout (Schmidt Scout)
SG550 Sniper SIG SG550 (Krieg 550 Commando)
G3SG1 Sniper G3/SG-1 (D3/AU-1)
AWP Sniper Arctic Warfare Magnum (Magnum Sniper Rifle)
hegrenade Projectile High explosive grenade
flashbang Projectile Flash bang
smokegrenade Projectile Smoke grenade
NVGs Equipment Night vision goggles
knife Melee Knife

3. Weapon Commands

Available commands for managing weapon restrictions. These can be used in the main configuration file, or on a per-map basis with map configuration files.

Weapon Commands
Syntax:
zr_restrict <weapon|weapon type> [weapon|weapontype] ...

Restricts one or more weapons or weapon types (group).

Parameters:

weaponThe weapon name.
weapon typeThe weapon type group.
zr_unrestrict <weapon|weapon type> [weapon|weapontype] ...

Unrestricts one or more weapons or weapon types (group).

Parameters:

weaponThe weapon name.
weapon typeThe weapon type group.
zmarket
Displays the ZMarket weapon menu.

3.9 Hit Group Configuration

Hit group configuration makes it possible to disable damage or adjust knock back per hit group. This is useful for fine tuning game balance.

The hit group configuration file is a file in Valve's key/value format with the root key "hitgroups" and a sub key for each hit group.

The default file is:

addons/sourcemod/configs/zr/hitgroups.txt

Hit Group Commands
Syntax:
zr_hitgroup <hitgroup name> [value]

Toggles or sets if a zombie's hitgroup can be damaged.

Parameters:

hitgrup name Name of the hit group to adjust. Options:
  • generic
  • head
  • chest
  • stomach
  • leftarm
  • rightarm
  • leftleg
  • rightleg
  • gear
valueOptional. Enable hit group damage. Default action is to toggle setting. Options: 0 or 1

1. Hit Group Attributes

Hit Group Attributes
Attribute: Type: Limits/Requirements:
index number -

The hit group index.

Options:

0Generic
1Head
2Chest
3Stomach
4Left Arm
5Right Arm
6Left Leg
7Right Leg
8Gear
damage text "yes" or "no"

Allows damage to be done on the specified hit group for zombies.

Options:

yesAllow damage
noIgnore damage
knockback decimal -

The knock back multiplier for the hitgroup. 1.0 for no change.

3.10 Infection Module

The infection module handles all infection events and does random infection on mother zombies. It's the core part of the plugin that creates this human vs. zombies game.

Number of mother zombies is based on a ratio setting, so on server with many players more mother zombies will be spawned than on a server with few players. Server admins can adjust this ratio to tune game balance.

In addition several infection effects can be enabled or disabled.

These are the console variables for the infection module:

Infection Console Variables
Console variable: Default:
zr_infect_mzombie_ratio 5

Mother zombie ratio. Every random n-th player is infected. In this case it's 5 where every fifth player will be infected. If it's set to 0 there will only be 1 mother zombie every time.

Note that this is NOT a percentage value. The ratio 5 does not mean 5%, but every fifth player. To get the percentage you need to do ratio / player slots. Like 5 / 24 = 0.20 ⇒ 20% infection rate.

Conversion formula from percent to ratio:

ratio = (percent / 100) * player slots

Decimals are stripped from the ratio because it's a integer value.

Options:
0 or a positive number up to max server slots

zr_infect_mzombie_respawn 0

Teleport mother zombies to spawn place when infected.

Options:
0 or 1

zr_infect_spawntime_min 30.0

Minimum time when mother zombies spawn. Time is in seconds.

zr_infect_spawntime_max 50.0

Maximum time when mother zombies spawn. Time is in seconds.

zr_infect_consecutive_block 1

Blocks players from being mother zombie twice in a row.

Options:
0 or 1

zr_infect_weapons_drop 1

Force players to drop weapons and grenades when infected. So other players can use them.

Options:
0 or 1

zr_infect_sound npc/fast_zombie/fz_scream1.wav

Sound played when infected. The file path is relative to the "sound" folder. Leave blank ("") to disable infection sound.

zr_infect_explosion 1

Enable explosion effects. If disabled, this setting will also disable the following CVARs:

  • zr_infect_fireball
  • zr_infect_smoke
  • zr_infect_smoke

Options:
0 or 1

zr_infect_fireball 1

Spawn a fire ball effect around the player on infection.

Options:
0 or 1

zr_infect_smoke 1

Spawn a smoke cloud effect around the player on infection.

Options:
0 or 1

zr_infect_sparks 1

Emit sparks from the the player on infection.

Options:
0 or 1

zr_infect_esplash 1

Emit an energy splash effect from the player on infection.

Options:
0 or 1

zr_infect_shake 1

Shake the player's view on infection.

Options:
0 or 1

zr_infect_shake_amp 15.0

Shake amplitude, how strong the shake is. Amplitude is in units.

zr_infect_shake_frequency 1.0

Shake frequency, how fast the shake is. Frequency is in hertz (cycles per second).

zr_infect_shake_duration 5.0

Duration of shake, how long the shake lasts. Time is in seconds.

Infect Commands
Syntax:
zr_infect <target> [respawn]

Infects one or more players.

Parameters:

targetA SourceMod target string with one or more players.
respawnTeleport players to spawn.
zr_human <target> [respawn]

Turn one or more zombies into humans.

Parameters:

targetA SourceMod target string with one or more players.
respawnTeleport players to spawn.

3.11 Damage Control Settings

With damage control it's possible to block suicide attempts, fall damage, blast damage and hit group damage. See Hit Group Configuration (3.9) on how to configure hit groups.

Damage Control Console Variables
Console variable: Default:
zr_damage_hitgroups 1

Enables hit group damage control. See Hit Group Configuration (3.9) on how to configure hit groups.

Options:
0 or 1

zr_damage_block_ff 1

Block friendly fire between zombies.

Options:
0 or 1

zr_damage_block_blast 1

Block blast damage inflicted on self or teammates.

Options:
0 or 1

zr_damage_suicide_zombie 0

Block suicide attempts by regular zombies.

Options:
0 or 1

zr_damage_suicide_mzombie 1

Block suicide attempts by mother zombies.

Options:
0 or 1

zr_damage_suicide_human 0

Block suicide attempts by humans.

Options:
0 or 1

zr_damage_suicide_cmds "kill, spectate, jointeam"

List of console commands that are treated as suicide attempts. Separated by ", ". These commands are often bound to a key on the client, like "m" is bound to "jointeam".

3.12 Overlay Settings

Overlays are pictures displayed on players' screen on certain events. However, these overlays require DirectX 9 or newer to work. Players with lower DirectX version won't see these overlays.

Since these overlays doesn't last forever, they must be redisplayed at a certain interval. A refresh once per second seems to be enough.

When the round ends, overlays for either humans or zombies are displayed, depending on the winning team.

Overlays are also used as a class attribute, like the zombie vision effect.

Overlay Console Variables
Console variable: Default:
zr_overlays_update_time 1.0

How often overlays are refreshed. Time is in seconds.

zr_roundend_overlay 1

Show overlays for the winning team when the round ends.

Options:
0 or 1

zr_roundend_overlays_human overlays/zr/humans_win

Overlay to be displayed when humans win. Path is relative to the "materials" folder.

zr_roundend_overlays_zombie overlays/zr/zombies_win

Overlay to be displayed when zombies win. Path is relative to the "materials" folder.

3.13 Money Configuration

Players' cash can be modified and reset on every spawn if enabled.

Money Console Variables
Console variable: Default:
zr_account_cashfill 1

Resets player's cash every spawn. Cash amount is specified in zr_account_cashfill_value.

Options:
0 or 1

zr_account_cashfill_value 12000

How much cash to give each spawn, if enabled.

Options:
0 or 1

zr_account_cashdmg 0

Attacker receives amount of cash equivalent to the damage that was inflicted. If this one is enabled, the zr_account_cashfill and zr_account_cashfill_value console variables is ignored.

Options:
0 or 1

3.14 Visual Effects Configuration

With visual effects it makes it possible to give a creepy ambience. It's possible to change light style in maps and set dissolve effects on players' bodies when they die.

It's supposed to have support for adding fog, but because of technical limits in SourceMod it's not fully functional yet. For developers who wonder why, it's because there must be a env_fog_controller entity in the map. That entity isn't networked so SourceMod can't create that entity type (Logical Entity Support is a work in progress by the SourceMod team).

Currently, fog can only be modified if the map already has a env_fog_controller entity.

Visual Effect Console Variables
Console variable: Default:
zr_veffects_lightstyle 0

Change light style (brightness) in the map.

Options:
0 or 1

zr_veffects_lightstyle_value b

Light brightness value. The brightness is represented by characters from "a" to "z" where "a" is dark, "n" is normal, and "z" is bright.

Options:
a (dark) to z (bright)

zr_veffects_sky 0

Change skybox of the map.

Options:
0 or 1

zr_veffects_sky_path sky_borealis01up.vmt

The skybox to use, if enabled. Path is relative to "materials/skybox".

zr_veffects_sun_disable 0

Remove the sun entity on the map. Disables sun rendering on the map.

Options:
0 or 1

zr_veffects_fog 0

Note: Incomplete. May or may not work.

Enable fog on the map.

Options:
0 or 1

zr_veffects_fog_override 0

Note: Incomplete. May or may not work.

Override existing fog on the map. If fog exists already on the map, replace it with the new modified fog.

Options:
0 or 1

zr_veffects_fog_pcolor "255 255 255"

Note: Incomplete. May or may not work.

Sets the primary fog color. Three values from 0 to 255 separated by a space, representing amount of red, green and blue.

Examples

255 255 0Yellow
255 0 255Purpule
96 96 96Dark grey
zr_veffects_fog_scolor "255 255 255"

Note: Incomplete. May or may not work.

Sets the secondary fog color. Three values from 0 to 255 separated by a space, representing amount of red, green and blue.

Examples

255 255 0Yellow
255 0 255Purpule
96 96 96Dark grey
zr_veffects_fog_density 0.8

Note: Incomplete. May or may not work.

Density (thickness) of the fog. The value is in percent, 0.0 to 1.0.

Options:
0.0 to 1.0

zr_veffects_fog_startdist 0

Note: Incomplete. May or may not work.

Distance from player to start rendering foremost fog. Distance is in game units (1 unit is ~1 inch). For reference, default player models are ~75 units tall.

zr_veffects_fog_enddist 400

Distance from player to stop rendering fog. Distance is in game units (1 unit is ~1 inch). For reference, default player models are ~75 units tall.

zr_veffects_fog_farz 2000

Distance to stop render everything, for optimizing purposes. This should be equal to or bigger than fog end distance. There's no reason to render stuff that can't be seen anyways.

zr_veffects_ragdoll_remove 1

Remove players' bodies when dying.

Options:
0 or 1

zr_veffects_ragdoll_dissolve -1

Dissolve effect to use when removing bodies.

Options:

-2No effect
-1Random effect
0Energy dissolve
1Heavy electrical dissolve
2Light electrical dissolve
3Core dissolve
zr_veffects_ragdoll_delay 0.5

Time to wait before removing dead bodies. Time is in seconds.

zr_napalm_ignite 1

Ignite grenades that players throws. Humans need the class attribute "has_napalm" set for this setting to be effective.

Options:
0 or 1

3.15 Sound Effects Configuration

The sound effects make zombies groan, in addition to the ambience sound file that can be played.

Currently it doesn't support any other custom files than the ambience file. Other sounds are pre-configured. Instead it's possible to specify how often the sounds should be played, if enabled.

The lenght of the ambience file must be specified because SourceMod currently can't detect lenght of MP3 files.

Sound Effect Console Variables
Console variable: Default:
zr_seffects_moan 30.0

Time between emission of a moan sound from a zombie. Time is in secons.

zr_seffects_groan 5

The probability that a groan sound will be emitted from a zombie when shot. Probability is in percent.

Options:
0 to 100

zr_seffects_death 1

Emit a death sound when a zombie dies.

Options:
0 or 1

zr_ambientsounds 1

Enable ambient sound (background sound) to all players during gameplay.

Options:
0 or 1

zr_ambientsounds_file ambient/zr/zr_ambience.mp3

The ambient sound file to play as ambienece. Path is relative to the "sound" folder, and MP3 files are supported. This sound is also looped so only use sounds that can be looped. Otherwise it might sound wierd when it restarts.

zr_ambientsounds_length 60.0

Length of the ambient sound. Length is in seconds. If the specified length is shorter than the real sound length, the sound will play again before the previous sound finished playing.

zr_ambientsounds_volume 0.8

Volume of ambient sound file. Volume is in percent.

Options:
0 or 1

3.16 Respawn Configuration

Respawning makes players spawn into the game again after death. It keeps the game active and is less annoying for people who don't like to wait too much.

If the mother zombie haven't spawned yet, players are always spawned as humans.

Respawn Console Variables
Console variable: Default:
zr_respawn 1

Enable respawning.

Options:
0 or 1

zr_respawn_delay 1.0

Time after death to respawn. Time is in seconds.

zr_respawn_team_zombie 1

Respawn as zombie. If the mother zombie haven't spawned yet, players are always respawned as humans.

Options:
0 or 1

zr_respawn_team_zombie_world 1

Respawn as zombie if a zombie was killed by world damage (doors, elevators, explosions, or any kind of suicide). If the mother zombie haven't spawned yet, players are always respawned as humans.

Options:
0 or 1

3.17 Spawn Command Configuration

The spawn command (zspawn) lets players join the game late, depending on the time configured. To avoid abusing there are settings that decides what team to spawn on, and a time limit when the command is allowed to be used.

ZSpawn Console Variables
Console variable: Default:
zr_zspawn 1

Enable spawn command.

Options:
0 or 1

zr_zspawn_team_overrride 1

Override what team to spawn to when using the spawn command. If disabled it will use the same as zr_respawn_team_zombie.

Options:
0 or 1

zr_zspawn_team_zombie 0

Spawn as zombie if override setting is enabled.

Options:
0 or 1

zr_zspawn_timelimit 1

Enable time limit on the spawn command.

Options:
0 or 1

zr_zspawn_timelimit_time 120.0

How long the spawn command is available after round start, if enabled. Time is in seconds.

zr_zspawn_timelimit_zombie 1

Spawn as zombie if using the spawn command after the time is up.

Options:
0 or 1

3.18 Spawn Protect Configuration

Humans can have spawn protection settings that give them certain advantages for a limited time right after they've spawned.

Spawn Protection Console Variables
Console variable: Default:
zr_spawnprotect 1

Enable spawn protection for humans.

Options:
0 or 1

zr_spawnprotect_time 10

How long the spawn protection lasts. Time is in seconds.

zr_spawnprotect_speed 600.0

Running speed for spawn protected players. Normal running speed is 300.0, double is 600.0.

zr_spawnprotect_alpha 0

Transparency setting on spawn protected players.

Options:
0 (invisible) to 255 (fully visible)

ZSpawn Command
Syntax:
zr_zspawn_force <target> [spawn team]

Force one or more players to spawn.

Parameters:

targetA SourceMod target string with one or more players.
spawn teamOptional. Specify what team to spawn to. Options:
0 (humans) or 1 (zombies)

3.19 Teleport Configuration

Zombie:Reloaded has a built in teleport feature with support for limits, delays and abuse protection.

Teleport Console Variables
Console variable: Default:
zr_ztele_zombie 1

Allow zombies to use the teleporter.

Options:
0 or 1

zr_ztele_human_before 1

Allow humans to use the teleporter before mother zombies have spawned.

Options:
0 or 1

zr_ztele_human_after 1

Allow humans to use the teleporter after mother zombies have spawned.

Options:
0 or 1

zr_ztele_delay_zombie 3.0

Delay between teleport command and teleport for zombies. Time is in seconds.

zr_ztele_delay_human 3.0

Delay between teleport command and teleport for humans. Time is in seconds.

zr_ztele_max_zombie 3

Maximum number of teleports a zombie can do in a round.

zr_ztele_max_human 1

Maximum number of teleports humans can do in a round.

zr_ztele_autocancel 1

Automatically cancel a teleport in progress if moving a certain distance.

Options:
0 or 1

zr_ztele_autocancel_distance 20

Maximum distance for automatically canceling a teleport. Distance is in feet. 1 feet is 16 game units where a game unit is ~1 inch. For reference a player is ~75 units tall.

Teleport Console Command
Syntax:
zr_tele_force <client>

Force teleport on a player. Does not add delay or add to teleport count.

Parameters:

clientSingle target player. Support SourceMod targets like @me and @aim.

3.20 HP Display Settings

The HP display is a small panel on the center at the bottom of the screen that displays players' health. Players can disable this, and the setting can also be saved in player cookies.

HP Display Console Variables
Console variable: Default:
zr_zhp 1

Enable HP display for zombies.

Options:
0 or 1

zr_zhp_default 1

Default HP display state on connecting players.

Options:
0 or 1

3.21 Jump Boost Settings

Jump boost can be abused to do bunny hops. There are settings for configuring maximum allowed velocity when jumping. If maximum speed is reached no jump boost is applied.

Note: This is not a real bunny hop protection feature. Players who do bunny jumping will still be able to do it, but they won't get jump boost after a certain speed if the speed limit is enabled.

Jump Boost Console Variables
Console variable: Default:
zr_jumpboost_bhop_protect 1

Enable bunny hop protection.

Options:
0 or 1

zr_jumpboost_bhop_max 300.0

Maximum horizontal velocity allowed when jumping. Normal running speed for the player is 300.0

Note: The first jump does not have a speed limit, but subsequent jumps won't get any boost if the speed limit is reached.

3.22 Anti-Stick Settings

The anti-stick system is a automatic no-block system that turn off collisions on players that are stuck together, and enable collision again when they're unstuck.

(Note: This file is obsolete!) To know if players are stuck, it needs some extra info about each model used in the game. Data for these models are stored in the following file (relative to "sourcemod" folder):

data/antistick.dat

Anti-Stick Console Variables
Console variable: Default:
zr_antistick 1

Enable anti-stick system.

Options:
0 or 1

zr_antistick_default_width 32.0

Note: Obsolete! Do not chnage default value!

Default model width used to detect if players are stuck together. Width is in game units.

zr_antistick_file_path data/antistick.dat

Note: Obsolete! Just ignore this file.

File to store anti-stick model hull data. Path is default to the "sourcemod" folder.

3.23 Volumetric Feature Configuration

Volumetric Features is a way to do various stuff on players when they enter custom created volumes in a map. A volume is rectangular and is created by using two coordinates in the map that defines the three-dimensional area.

Visualized anti-camp volume
This is a visualized volume where the red border is the volume, and the blue or green circles are examples of what points in the map that could be used.

Known issues/bugs:

  • Volumes placed in spawn areas won't take effect on them until they leave the area and go back in. There's a bug where it doesn't apply to spawned players.
  • Avoid overlapping volumes of same type. There's currently no conflict handling and whichever volume the player enter or leave last will be triggered.

1. Creating A Volume

To create a volume go into spectactor mode (or no-clip). Enable position display in the client (cl_showpos 1), the numbers appear in the top right corner of the scteen. Visualize a rectangular area and move to one of its corners. Get the x, y and z coordinates (make sure you don't miss the "-" if it's a negative number). Go to the diagonally oposite corner, in the oposite height and get the second set of coordinates.

Use the zr_vol_add console command in map configs to add volumes.

Short summary:

  1. Go into spectator mode or no-clip
  2. Enable position display: cl_showpos 1
  3. Go to one of the corners, get the coordinates
  4. Go to the diagonally oposite corner, in the oposite height and get the second set of coordinates.
  5. Use these coordinates in the zr_vol_add command along with additional attributes.

Note: Make sure all volumes start a little bit below players' feet so they are covered by the volume. Otherwise nothing will happend.

2. Volume Attributes

Each volume has a set of standard attributes that tell how it should behave and look like. In addition each feature has a set of attributes. All attributes have default values and are not required, except the type attribute.

These are the generic attributes and apply to all volumes:

Generic Volume Attributes
Attribute: Value type: Default:
type text -

Note: This attribute is required!

Specified the volumetric feature type.

Valid options:

anticampAnti-Camp volume.
classeditClass editor volume.
teamfilter text "all"

Sets the team filtering settings.

Valid options:

allApplies to all players.
humansApplies to humans only.
zombiesApplies to zombies only.
delay number 0

Trigger delay. Number of seconds to wait when a player enter the volume before triggering actions. Time is in seconds.

effect text "none"

Note: Incomplete, this attribute is ignored.

What effect to apply to the volume

Valid options:

noneNo effect.
wireframeDraw a wireframe.
smokePut smoke in the volume.
firePut fire in the volume.
effect_color text "0,0,0"

Note: Incomplete, this attribute is ignored.

Color of the effect. RGB format, represented by three numbers from 0 to 255 separated by a comma. Syntax: <red>,<green>,<blue>

enabled boolean 1

Set the initial enabled setting on the volume. Usually this attribute won't be used.

3. Volume Commands

Volume Commands
Syntax:
zr_vol_add <x1> <y1> <z1> <x2> <y2> <z2> <type> [params]

Creates a rectangular volume in the map.

Parameters:

x1, y1, z1First set of coordinates.
x2, y2, z2Second set of coordinates.
typeVolumetric feature type. Described in Volume Attributes.
paramsAdditional key-value chain of volume attributes, separated by space. Syntax: attribute=value attribute=value ...
zr_vol_remove <volume index>

Removes an existing volume in the map.

Parameters:

volume indexZero-based index of volume (ID) to remove.
zr_vol_list [volume index]

Lists existing volumes in the map, or dumps volume details.

Parameters:

volume indexOptional. Zero-based index of volume (ID) to dump.
zr_vol_dumpstates <userid|targetname>

Dumps a list of all volumes and a indicator whether the target is in it or not.

Parameters:

userid|targetnameA SourceMod target string to a single player.

4. Anti-Camp

The anti-camp feature can be used to force players to leave areas that are considered unfair or not allowed. It uses a timer to trigger actions at a specified interval. In addition warning messages can be displayed to player that enter the volume.

Do not overuse anti-camp volumes in maps, players don't like that. Instead look for alternate solutions like using a class editor volume to set knock back in tubes/vents.

Anti-Camp Attributes
Attribute: Value type: Default:
interval number 5

Trigger interval. How often to apply actions on players in the volume. Time is in seconds.

action text "damage"

What kind of action to apply.

Valid options:

noneDo nothing. Useful for just giving warning messages.
damageHurt player.
slayKill player.
drug(Incomplete!) Drug player. Players will be un-drugged when leaving volume.
igniteSet player on fire. Players will be extinguished when leaving volume.
amount decimal 5.0

Specifies amount to apply depending on action type.

Amount type for action:

none(ignored)
damageHealth points
slay(ignored)
drugTime in seconds
igniteTime in seconds
warning text "chat"

Where to show warning message.

Valid options:

noneDon't show a warning message.
chatDisplay in client's chat area.
centerDisplay warning text centered on the screen.
menuDisplay warning in a menu panel, stays open for 30 seconds or when closed.
message text ""

Note: Incomplete, this attribute is ignored.

Use custom warning message (max 255 byte). Leave blank to use default warning message.

5. Class Editor

(Docs incomplete.)

3.24 Admin Authentication

Zombie:Reloaded use SourceMod to authenticate players. There are two ways to do this; flag based or group based. With flag authentication a certain admin flag is required to be set, and with group authentication the player must be member of a certain group to do certain types of operations.

The reason to use group authentication could be to let admins have full access in SourceMod so they get access to configure all plugins, but still limit access to commands in Zombie:Reloaded. When using flag authentication the permissions will be global across all plugins, including Zombie:Reloaded.

1. Admin Flags Used In Zombie:Reloaded

Admins must have the appropriate SourceMod admin flags to do certain types of operations. Below is a list of all flags used in Zombie:Reloaded and what type of operation they grant:

Admin Flags Used In Zombie:Reloaded
Flag: Operation type:
generic Access to generic operations like infecting, teleporting, and spawning players.
config Access to operations that change settings in Zombie:Reloaded.

2. Predefined Admin Groups

If group authentication is used, admins must be member of one of these SourceMod groups to do the following operations:

Predefined Admin Groups
Group: Operation type:
zr_admins Full access to all commands in Zombie:Reloaded.
zr_moderators Access to generic operations like infecting, teleporting, and spawning players.
zr_configurators Access to operations that change settings in Zombie:Reloaded.

3. Console Variables

Permission Console Variables
Console variable: Default:
zr_permissions_use_groups 0

Use group authentication instead of flags to access admin features. Generic admin flag is still required on some features.

Options:
0 or 1

4. How To Play

(Incomplete) Feel free to contribute to this section. Make a new thread with suggestions in the Zombie:Reloaded Forum.

(how to defend against zombies, in a fair way)

(zombie tricks, getting through non-solid props)

4.1 Game Rules

4.3 Commands

4.2 Menus

4.4 Teamwork

4.5 Playing As Human

4.5.1 Finding A Place To Hide

4.5.2 Making Barricades

4.5.3 Playing Fair

4.6 Playing As Zombie

4.6.1 Chasing Humans

4.6.2 Avoiding Knock Back

4.6.3 Taking Advantage Of The Class Skills

(bunny jump)

(almost invisible zombies, act as a spy and surprise humans)

4.7 Physics Stuff

There are glitches and simplified physics stuff that can be used to get an advantage. Some servers may not allow all of these tricks because they could be unfair.

4.7.1 Glitching Through Walls

(bad thing to do, and should not be allowed)

4.7.2 Jumping Through Non-Solid Props

Realistic physics in multiplayer games is a expensive task for the server and it appears to be laggy for players. The solution to this is simplified physics on props (that is simplified collision detection).

Some props aren't solid but pushes players away from it's origin (center of the object). This is NOT a engine bug, but a simplified solution. These props are useful to _delay_ zombies in barricades, but they're still fair to use. If players got enough speed they can run and jump through them.

There's another trick that works quite good if the knock back is balanced correctly. If a player look straight down or straight up it's possible to simply walk through non-solid props, or at the same time, jumping slowly through them.

This simplified physics is used by default on regular Counter-Strike: Source maps. There's something called turbo physics which is enabled on most zombie servers, where all props are solid so players can stand on them. Players can't push props, but move them by shooting or using their use key (E by default) while aiming at the object.

4.7.3 Jumping Fast In Small Areas

When zombies have to crouch to enter a area where humans camp (like tubes and vents), jumping fast might help.

When jumping it's not easy for humans to hit the head and they can't get that good knock back anymore. With multiple zombies jumping fast, pushing eachother on their way into a tube, the humans are doomed. The tube camping problem much better balanced. This problem can also be solved by using a class editor volume or anti-camp in tubes and vents.

5. Troubleshooting

5.1 Verifying Requirements

5.2 Startup

5.3 Error Messages

There are several error levels that are handled differently in the plugin. Fatal errors will stop the plugin, errors might disable features, and warnings will usually fall back to a default action.

Error Messages
Module: Type: Message:
- fatal Unexpected error encountered loading: <file>

Description: Something wrong happened when trying to parse/open a configuration file.

Cause: File does not exist, file permissions, or (for developers:) that invalid file structure were specified when loading.

account fatal Offset "CCSPlayer::m_iAccount" was not found.

Description: The required offset for accessing players' money value wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

config error Invalid reload function for config: <module config>

Description: Couldn't get the function for reloading the specified module. This should never happend, unless someone tampered with the code.

For developers: If you're doing modifications/additions in the config system make sure you "register" the module as described in top of config.inc.

downloads fatal Missing downloads file: <file>

Description: Startup validation failed because the list of downloads could not be found.

downloads error Missing file <file>

Description: Couldn't find the specified file during validation of download list content. Verify that the path is correct (path is relative to the cstrike folder). Check for typos.

hitgroups fatal Missing hitgroups file: <file>

Cause:Startup validation failed because the hit groups file could not be found.

hitgroups error No usable data found in hitgroups config file: <file>

Cause: The hit groups file is empty, - or there's a typo so the parser think it's empty. Check for missing quotes (") or brackets ({ }).

hitgroups error Unexpected error caching data from hitgroups config file: <file>

Description: Something wrong happened when trying to parse/open a configuration file.

Cause: Usually file permissions, or (for developers:) that invalid file structure were specified when loading.

hitgroups error Couldn't cache hitgroup data for: <hit group name>

Description: Couldn't find the specified hit group name in the configuration file.

Cause: A quote is missing somewhere, or the hit group section is actually missing.

models fatal Missing model list: <file>

Description: Startup validation failed because the list of models could not be found.

models fatal Can't find any models in<file>

Description: The model file is empty or corrupt. Check for missing quotes, etc.

models warning Warning: Maximum number of models reached (<max models>). Skipping other models.

Description: There's too many models in the model list, and the rest of the list is ignored.

models warning Warning: Invalid model name/path setting at index <index>. File not found: <model file>.

Description: The specified model file could not be found, verify path and name attributes. Path must end with "/".

models warning Warning: Invalid model team setting at index <index>: <attribute value>.

Description: Model team attribute failed validation. Check for typos and that it has a valid value.

models warning Warning: Invalid model access setting at index <index>: <attribute value>.

Description: Model access attribute failed validation. Check for typos and that it has a valid value.

models warning Warning: Invalid model group setting at index <index>. Couldn't find SourceMod group <group name>.

Description: The specified group name does not exist in the SourceMod group list.

models error Error opening directory: <directory>

Description: Couldn't open the directory specified in path attribute. Verify that the game server has read access, and access to list files in that directory.

models error Couldn't find any model files for <model name>. Check name and path.

Description: Files starting with the model name could not be found in the specified path. Verify that the name attribute only contains the model name, and not the path.

models fatal Missing public model in <model list file>. There must be at least one public model.

Description: There's no public models to be assigned either/both zombies and humans. Verify that access attribute is "public" on at least one model per team.

offsets fatal Offset "CBaseEntity::m_nWaterLevel" was not found.

Description: The required offset for getting players' water level wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Offset "CBasePlayer::m_vecVelocity[0]" was not found.

Description: The required offset for getting players' velocity wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Offset "CCSPlayer::m_flLaggedMovementValue" was not found.

Description: The required offset for getting players' speed/movement wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Offset "CCSPlayer::m_bHasNightVision" was not found.

Description: The required offset for getting players' night vision settings wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Offset "CCSPlayer::m_bNightVisionOn" was not found.

Description: The required offset for getting players' night vision setttings wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Offset "CBasePlayer::m_iFOV" was not found.

Description: The required offset for getting players' field of view setting wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Can't load game config file (plugin.zombiereloaded.txt) from the gamedata directory.

Description: The required configuration file with offsets and function signatures wasn't found, or couldn't be loaded.

Cause: Usually file permissions.

offsets fatal Signature "CGameRules::TerminateRound" was not found.

Description: The required function signature for terminating the round wasn't found

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

offsets fatal Signature "CBasePlaye::CSWeaponDrop" was not found.

Description: The required function signature for dropping players' weapons wasn't found

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

playerclasses warning Failed to set <class name> as default spawn class for team <team id>. The class doesn't exist or the team IDs doesn't match. Falling back to the first class in the team.

Description: Couldn't find the specified class name, or there's no class with that name and team id. Default class in class configuration will be used.

Cause: Typo in plugin configuration or class configuration, the specified class is a human class while it expected a zombie class (or oposite), - or the class has wrong team id set.

playerclasses fatal Missing playerclasses config file <file>

Description: Couldn't find the specified class configuration file. Verify that the zr_config_path_playerclasses console variable is correct.

playerclasses fatal Can't find any classes in <file>

Description: There's no classes.

Cause: Usually a missing quote (") or bracket ({ }).

playerclasses warning Warning: Maximum classes reached (<max classes>). Skipping other classes.

Description: Maximum number of classes reached during parsing. Additional classes are skipped.

playerclasses warning Warning: Invalid class at index <class index>, disabled class. Class error flags: <flags>.

Description: The specified class has one or more invalid attribute values. Class will be disabled. Check the flag value to find out what attributes that are invalid.

playerclasses fatal The class configuration doesn't match the team requirements.

Description: Class requirement conditions not met. See Class Requirements (3.7.3) for details. Zombie:Reloaded will not start without valid classes.

playerclasses fatal Couldn't find a default class for one or more teams. At least one class per team must be marked as default.

Description: Missing a default class for humans or zombies. See Class Requirements (3.7.3) for details. Zombie:Reloaded will not start without valid classes.

playerclasses warning Warning: Failed to get the specified zombie class, falling back to default class in class config. Check spelling in "zr_classes_default_zombie".

Description: Couldn't find the class specified in zr_classes_default_zombie. Check for typos.

playerclasses warning Warning: Failed to get the specified human class, falling back to default class in class config. Check spelling in "zr_classes_default_human".

Description: Couldn't find the class specified in zr_classes_default_human. Check for typos.

soundeffects error Invalid sound file specified in "zr_ambientsounds_file": <file>

Description: Couldn't find the sound file. The path is relative to the cstrike/sound folder. Check for typos.

soundeffects error Ambient sound volume specified in "zr_ambientsounds_volume" is either muted or invalid.

Description: Volume has a invalid value (zero or negative). Valid range is from 0.1 to 1.0.

soundeffects error Ambient sound length specified in "zr_ambientsounds_length" is invalid.

Description: The specified sound file length is zero or negative. Must be positive.

visualeffects fatal Offset "CCSPlayer::m_hRagdoll" was not found.

Description: The required offset for getting players' ragdoll wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

visualeffects error Couldn't find handle to cvar: "sv_skyname"

Description: Couldn't find cvar sv_skyname.

Cause: This is most likely caused by running Zombie:Reloaded on another mod than it's made for. Counter-Strike: Source is required.

volfeatures warning Warning: Invalid interval <interval> in anticamp volume <id>.

Description: Invalid attribute value. Must be positive and non-zero. Volume will be disabled.

volfeatures warning Warning: Console variable "zr_vol_update_interval" is zero or negative. Must be positive. Volumetric Features will be disabled.

Description: Invalid value. Must be positive and non-zero.

volfeatures warning Warning: Console variable "zr_vol_trigger_interval" is zero or negative. Must be positive. Volumetric Features will be disabled.

Description: Invalid value. Must be positive and non-zero.

weapons fatal Offset "CBaseCombatWeapon::m_iClip1" was not found.

Description: The required offset for getting players' primary ammo value wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

weapons fatal Offset "CBaseCombatWeapon::m_iClip2" was not found.

Description: The required offset for getting players' secondary ammo value wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

weapons fatal Offset "CBasePlayer::m_iAmmo" was not found.

Description: The required offset for getting players' reserve ammo value wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

weapons fatal Offset "CBasePlayer::m_hActiveWeapon" was not found.

Description: The required offset for getting players' active weapon index wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

weapons error Missing weapons config file: <file>

Description: Could not find the weapons configuration file. Check for typos in console variable zr_config_path_weapons.

weapons error No usable data found in weapons config file: <file>

Cause: The weapon config file is empty, - or there's a typo so the parser think it's empty. Check for missing quotes (") or brackets ({ }).

weapons error Couldn't cache weapon data for: <weapon name> (check weapons config)

Description: The specified weapon name wasn't found in weapon configuration file.

weapons fatal Offset "CCSPlayer::m_bInBuyZone" was not found.

Description: The required offset for getting players' buy zone state wasn't found.

Cause: Usually a update by Valve. Report to a Zombie:Reloaded developer.

weapons error Invalid weapon (<weapon name>) selected from the ZMarket menu.

Description: Something went wrong when converting a weapon name to a weapon index. This should never happend, and if so it's a bug.

weapons error Client <player name> attempted to buy weapon entity <weapon name> marked as a projectile. Check your weapon config.

Description: The weapon is probably not a grenade type. Check the weapontype attribute of that weapon.

5.4 Common Problems

Unable to load extension "zrtools.ext.so": Could not find interface: IPlayerManager

ZR Tools in beta 1 was compiled based on a development snapshot of SourceMod so it requred a newer version of SourceMod than the latest stable release at that time. It's now compiled based on SourceMod 1.2.

Solution: Update SourceMod.

"ERROR" models or pink (checkerboard) models

Big "ERROR" models on zombies/humans is usually caused by missing files. Common causes are:

  • Model files missing in download list
  • Model files missing on server
  • Typo in model list
  • Typo in class configuration ("model_path" attribute)
  • Missing or incorrect whitelist settings on pure servers

Model not precached

This is usually caused by classes that specify models that isn't added to the model list.

The model list is limited and models after that limit is ignored. Check error logs for warnings about full model list.

Freeze/lag on infection

When a human get infected the server freeze for a short amount of time. This might be caused by too detailed models, or a cache problem.

Solution: Try "sv_forcepreload 1" in the server's configuration file. "cl_forcepreload 1" on the client might help too, but servers can't set that console variable on clients.

Bouncing props

This is bug in the Source engine and we can't do anything about it, but avoid stuff that is known to trigger this bug.

Anti-Stick might trigger this bug in some cases, but it also might depend on the map.

More info: Engine Bug: "Physical Mayhem" Discussion

Compatibility problems with Duke Hacks

This is not confirmed, but ZR Tools and Duke Hacks might not work well together on the same server. Try disable plugins that use Duke Hacks if wierd problems show up.

Deleting/removing all main plugin configuration files solved random crashes

We got reports about random crashes and one discovered that deleting main plugin configuration files so they are regenerated stopped random crashes. This might work because some configs might have invalid values that could crash some plugins.

Instead of deleting configuration files, they can be moved outside the mods root folder so they're not loaded. Don't move all files at once, move one by one so it's possible to figure out what plugin that is causing random crashes.

Server is crashing on certain maps after a few seconds

We've seen servers that crash only on certain maps. The map is loaded but after a few seconds the server crash (probably when a mother zombie is infected).

The problem was a typo in the map config file for that map (a missing quote (") in this case). Rename the map config so it's not executed and try again. If the crash disappeared look for typos.

Problem with big config files

The main plugin configuration file is sometimes executed late, after map configs. This is caused by a bug in SourceMod where commands are executed late. The bug is already fixed, but in the 1.3 branch.

Because of this bug map configs might be useless to change settings (cvars), but some commands still work (like setting multipliers and adding volumes).

Zombie:Reloaded conflicts with plugins that change player model/skin and speed

Other mods and plugins that change player models (like Mani Admin Pugin) is conflicting with Zombie:Reloaded because of the class system.

A possible solution is to use "no_change" in the model_path class attribute on all human classes. Then human players' model control will be released to other plugins.

Do not run ESTools, it's not compatible with SourceMod

ESTools is causing wierd problems when running along with SourceMod.

6. Server Administration Guide

6.1 Adding Custom Content

6.1.1 Managing Resources

Resources like models, materials and sounds must be made available for download to players on the server. Zombie:Reloaded need a list of what files do be downloaded on the players' client. Currently it's only two lists; models and downloads.

Note: The ambiecne sound file doesn't need to be listed.

6.1.2 Adding Models

When adding models, update following modules:

6.1 Briefing - Map Configuration Files

6.2 Map Balance

6.3 Tuning Knock Back

A guide on tuning knock back. It will help finding the default knock back that is used as base value for all classes.

  1. Make a new zombie class with normal Counter-Strike: Source settings:
    fov90
    speed300
    knockback1.0
    jump_height1.0
    jump_distance1.0
  2. Disable hit groups module.
  3. Set all weapon knock back multipliers to 1.0 in weapon configuration.
  4. Join the game and get someone to help. Use that new zombie class.
  5. Open knock back multiplier menu and leave it open: !zadmin > Class Multipliers > Zombies > Knock Back
  6. Experiment by increasing or decreasing multiplier to get a good feeling on its sensitivity. Then start testing in an open area to make a good balance between zombies and humans. Also test it while climbing on boxes.
  7. Once the balance is good, note the multiplier value. This is the actual value since all other multipliers are 1.0. This value will be used as base knock back and can be set on all zombies. Currently there's no in-game multiplier menu for hit groups, but it can be reloaded after changes are made, whithout restarting the server.
  8. Set knock back on other zombie classes in class configuration based on this vlaue, whether they should be stronger or weaker.
  9. Enable hit groups and adjust the knock back multiplier per hit group. Note that it's a multiplier and there should be only tiny changes from 1.0.
  10. Adjust weapon knock back in weapon configuration. The best is to keep these as close to 1.0 as possible. Knock back also depends on how much damage that's done, so pistols could have increased values, and shot guns can be decreased.

6.4 Map Time

6.5 Servers With Unlimited Ammo And No Reloading

7. Reporting Bugs And Problems

Currently we have no public bug tracker, so issues have to be reported in the Zombie:Reloaded forum.

A few guidelines while posing issues or questions:

  • Check if you use the newest official release of Zombie:Reloaded.
  • Use a single thread per topic. It's much easier to browse a few pages of threads than browsing 1000 posts. Make new threads - or post in existing threads if someone have the same issue. If you're unsure about this, just make new threads.
  • Tell us what version you use. If you use a old version the problem might be solved in a newer version.
  • Use a short thread title that describes your problem (some keywords is enough).
  • If you found a bug, start the thread title with [BUG] or similar.
  • If your problem were solved you could share the solution in your thread. Also add [SOLVED] or similar in the thread title.

Browseable source code repositories: Zombie:Reloaded Source

Valid XHTML 1.0 Strict