===============================================================================

                          Zombie:Reloaded User Manual

              Targets plugin version 3.0.0 Beta 2, (not released)
                          Written by Richard Helgeby

                       Manual last modified: 2009.10.10

===============================================================================

INDEX
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.0 . . Introduction
1.1 . . . About The Plugin
1.2 . . . Game Objectives
1.3 . . . Credits

2.0 . . Installation
2.1 . . . Requirements
2.2 . . . Plugin Installation
2.3 . . . Test Run

3.0 . . Configuration
3.1 . . . Understanding Syntax
3.1.1 . . . Optional Parameters
3.1.2 . . . Required Parameters
3.1.3 . . . Multiple Options In The Same Parameter
3.1.4 . . . Text As Parameters
3.2 . . . Configuration Files
3.3 . . . Logging
3.3.1 . . . Log Flags
3.3.2 . . . List Of Modules
3.4 . . . Custom Map Configuration Files
3.4.1 . . . Types
3.5 . . . Model List
3.6 . . . Download List
3.7 . . . Class Configuration
3.7.1 . . . Class Types
3.7.2 . . . Class Attributes
3.7.3 . . . Class Requirements
3.7.4 . . . Class Console Variables
3.7.5 . . . Modifying Class Attributes
3.7.6 . . . Attribute Multipliers
3.7.7 . . . Reload Attributes
3.7.8 . . . Dumping Attributes
3.7.9 . . . Dumping Multipliers
3.8 . . . Weapon Configuration
3.8.1 . . . Attributes
3.8.2 . . . Weapon List
3.8.3 . . . Console Commands
3.9 . . . Hit Group Configuration
3.10  . . Infection Module
3.11  . . Damage Control Settings
3.12  . . Overlay Settings
3.13  . . Money Settings
3.14  . . Visual Effects Configuration
3.15  . . Sound Effects Configuration
3.16  . . Respawn Configuration
3.17  . . Spawn Command Configuration
3.18  . . Spawn Protect Configuration
3.19  . . Teleport Configuration
3.20  . . HP Display Settings
3.21  . . Jump Boost Settings
3.22  . . Anti-Stick Configuration
3.23  . . Volumetric Feature Configuration
3.23.1  . . Volume Attributes
3.23.2  . . Feature Attributes
3.23.3  . . Anti-Camp Feature

4.0 . . How To Play
4.1 . . . Game Rules
4.2 . . . Chat Commands
4.3 . . . Using The 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 Knockback
4.6.3 . . . Taking Advantage Of The Class Skills
4.7 . . . Physics Stuff
4.7.1 . . . Glitching Through Walls
4.7.2 . . . Jumping Through Non-Solid Props
4.7.3 . . . Jumping Fast In Small Areas

5.0 . . Troubleshooting
5.1 . . . Verifying Requirements
5.2 . . . Startup
5.3 . . . Error and Warning Messages
5.4 . . . Common Problems

6.0 . . Gameplay Guidelines
6.1 . . . Briefing - Map Configuration Files
6.2 . . . Map Balance
6.3 . . . Knockback Settings
6.4 . . . Map Time
6.5 . . . Servers With Unlimited Ammo And No Reloading

7.0 . . Reporting Bugs and Improvements


1.0  INTRODUCTION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.1  ABOUT THE PLUGIN
-----------------------

Zombie:Reloaded remake of Zombie Mod with a lot of new features and
improvements. It's made for a Counter-Strike: Source server 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.


1.3  CREDITS
--------------

Concept:
  c0ldfyr3
    - The developer of Zombie Mod <www.zombiemod.com>.

Developers and testers:
  Greyscale
    - Author of Zombie:Reloaded. The one who started remaking Zombie Mod for the
      SourceMod platform.
      
      Related server: "Zombie Strippers - Zombie:Reloaded"
                      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.
      
      Related server: (same as Cpt. Moore)

  Cpt. Moore
    - Helped debuging issues and made some new features. Used the server for
      testing.
      
      Related server: "Zombie World Domination by SwissQuake"
                      85.195.74.201:13010 - Switzerland, Basel


Additional testers and contributors:
  Grey Echo
  zhelev81


2.0  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. The original
        Zombie Mod is run on this one. It makes it easier for developers to
        make plugins like SourceMod:
        
            <http://wiki.alliedmods.net/Installing_Metamod:Source>

    2.  SourceMod - A scripting platform:

            <http://wiki.alliedmods.net/Installing_SourceMod>
            <http://wiki.alliedmods.net/index.php/Category:SourceMod_Documentation>

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


2.2  PLUGIN INSTALLATION
--------------------------

Extract the content of the zip file into "cstrike/" on the server.

This plugin is often confused by Zombie Mod, which is actually ovbious since
Zombie:Reloaded is a SourceMod alternative to Zombie Mod.


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 error
logs, see Troubleshooting at section 5.0.


3.0  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.


3.1.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


3.1.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.1.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"


3.1.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.

    Type:           File:
    ===========================================================================
    Main conf.      cfg/sourcemod/zombiereloaded/zombiereloaded.cfg
    Map conf.       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.


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 <http://en.wikipedia.org/wiki/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
(http://bugs.alliedmods.net/show_bug.cgi?id=3828). 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.

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                        "3"
    ---------------------------------------------------------------------------
        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

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:
            module      Name of the module to add.
            modules     Additional 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:
            module      Name of the module to remove.
            modules     Additional modules to remove.
    
    zr_log_list
    ---------------------------------------------------------------------------
        Lists current log flag settings and module filtering settings.


3.3.1  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 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
                                    enable this log flag.

To combine several logging flags use the sum of their values. The default
value is 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

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.

    <http://www.unitconversion.org/numbers/decimals-to-binary-conversion.html>


3.3.2  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. These 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.


3.4.1  TYPES

There are two kinds of map configs; pre and post. Pre map configuration files
are executed before the modules are 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 take effect, like changing class attributes.

    Type:   Executed:       Path:
    ===========================================================================
    Pre     Before modules  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
--------------------------

Note: Work in progress. Some flags explained in this section doesn't exist yet.

The model configuration file is a list of models used on the server. Each line
contains the path including the model name, but not the file extension.

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 remember to list them in this file.

In addition certain flags can be added to mark the model as special, such as
only for admins/donators, hidden from random selection or only for mother
zombies.

Each line is separated into two fields with ";". The last field is optional and
if no flag is specified it's treated as a regular public model.

Model line syntax:

    <model path>[; flag]

Available flags:

    "adminonly"     - Model can only be used by admins.
    "donator"       - Model can only be used by donators.
    "hidden"        - Model is not included in random selections.
    "motherzombie"  - Model can only be used on mother zombies.

Example usages:

    models/player/zh/zh_charple001
    models/player/zh/zh_corpse002; adminonly
    models/player/zh/zh_zombie003; hidden
    models/player/ics/hellknight_red/t_guerilla; motherzombie

Put the list of models in:

    addons/sourcemod/configs/zr/models.txt


3.6  DOWNLOAD LIST
--------------------

Custom models, materials and overlays must be listed in the download list so
clients will download them. The paths must be relative to the "cstrike" folder.

List files to be downloaded in:

    addons/sourcemod/configs/zr/downloads.txt


3.7  CLASS CONFIGURATION
--------------------------

The class system makes it possible to have different zombies and humans with
customized skills. It cannot be turned off. 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_classes_file" 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.


3.7.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.


3.7.2  CLASS ATTRIBUTES

The list below explains all available class attributes in detail:

    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:
        
            0 - Zombie classes
            1 - Human classes
            2 - Admin-mode classes
        
        The admin class type sets the player in spectacting like mode, but
        allows admins to walk around. They can't take or give damage, and they
        won't affect the game rules in any way. This feature 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 is
        used.
    
    flags                   number          0 - 3
    ---------------------------------------------------------------------------
        Special class flags that are stored in a bit field (explained in 3.3,
        Logging section). 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 take
            effect.
        
        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.
    
    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
    ---------------------------------------------------------------------------
        The model file to use on the player, path is relative to the "cstrike"
        folder. There are a few special values supported by this attribute:
        
            "default"   - Use default CS models. The one players select when
                          selecting team.
            "random"    - Selects a random model for the current team.
            "nochange"  - Don't change model. To be used in combination 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
    ---------------------------------------------------------------------------
        The immunity mode. This feature is currently incomplete and values are
        ignored.
    
    immunity_amount         decimal         (incomplete)
    ---------------------------------------------------------------------------
        The value for the specified immunity mode. This feature is currently
        incomplete and values are ignored.
    
    no_fall_damage          text            "yes" or "no"
    ---------------------------------------------------------------------------
        Blocks fall damage on the player.
    
    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.7.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:

    - At least one human class (teamid 1).
    - At least one zombie class (teamid 0).
    - In addition both above classes shouldn't have special flags set. They
      must be clean classes, which is flags set to "0".

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 the log configuration
in section 3.2).

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.


3.7.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 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.
        
        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 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 class from the class configuration.
    
    zr_classes_default_admin            "random"
    ---------------------------------------------------------------------------
        Default admin-mode class selected for all players when they connect, if
        found. This feature is incomplete and ignored.
        
        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 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
    ---------------------------------------------------------------------------
        (Incomplete feature! This setting is ignored.)
        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


3.7.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.

Console commands:

    Syntax:
    ===========================================================================
    zr_class_modify <class|team> <attribute> <value> [is_multiplier]
    ---------------------------------------------------------------------------
        Modify settings on one or more classes.
        
        Parameters:
        class           The class to modify. Can be any class name, or one of
                        the following team names: "all", "humans", "zombies" or
                        "admins".
        attribute       The name of the class attribute.
        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.


3.7.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:

    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:
                        "napalm_time" (zombies only)
                        "health"
                        "health_regen_interval"
                        "health_regen_amount"
                        "health_infect_gain" (zombies only)
                        "speed"
                        "knockback" (zombies only)
                        "jump_height"
                        "jump_distance"
        value           The multiplier to set. Note that a multiplier might be
                        very sensitive to big change.
                        Default: 1.0

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.


3.7.7  RELOAD ATTRIBUTES

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

    Syntax:
    ===========================================================================
    zr_class_reload <target>
    ---------------------------------------------------------------------------
        Refreshes the player cache and reloads class attributes on one or more
        players.
        
        Parameters:
        target          Target player(s) to refresh cache on.


3.7.8  DUMPING ATTRIBUTES

For debug purposes class attributes also can be dumped.

    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.


3.7.9  DUMPING MULTIPLIERS

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

    Syntax:
    ===========================================================================
    zr_class_dump_multipliers <team>
    ---------------------------------------------------------------------------
        Dumps class attribute multipliers for the specified team.
        
        Parameters:
        team            The 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.


3.8.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:

    Attribute:              Type:       Limits/Requirements:
    ===========================================================================
    weapontype              text        Separate items by ", ".
    ---------------------------------------------------------------------------
        A list of weapon groups and the weapon type.
        
        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. Don't change this!
        
        Options:
        0 - Primary weapon slot
        1 - Secondary weapon slot
        2 - Knife slot
        3 - Equipment 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_50ae       - deagle
        ammo_762mm      - scout, ak47, g3sg1, aug
        ammo_556mm_box  - m249
        ammo_556mm      - galil, sg552, famas, m4a1, sg550
        ammo_338mag     - awp
        ammo_9mm        - mp5navy, tmp, glock, elite
        ammo_buckshot   - m3, xm1014
        ammo_45acp      - ump45, mac10, usp
        ammo_357sig     - P228
        ammo_57mm       - p90, 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" gives
        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.


3.8.2  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"     Grenade         High explosive grenade
    "flashbang"     Grenade         Flash bang
    "smokegrenade"  Grenade         Smoke grenade
    
    "NVGs"          Equipment       Night vision goggles


3.8.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.

    Syntax:
    ===========================================================================
    zr_restrict <weapon|weapon type> [weapon|weapontype] ...
    ---------------------------------------------------------------------------
        Restricts one or more weapons or weapon types (group).
        
        Parameters:
            weapon          The weapon name.
            weapon type     The weapon type group.
    
    zr_unrestrict
    ---------------------------------------------------------------------------
        Unrestricts one or more weapons or weapon types (group).
        
        Parameters:
            weapon          The weapon name.
            weapon type     The 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

Console 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"
        value           Optional. Enable hit group damage. Default action is
                        to toggle setting. Options: 0 or 1


3.9.1  HIT GROUP ATTRIBUTES

    Attribute:              Type:       Limits/Requirements:
    ===========================================================================
    index                   number      -
    ---------------------------------------------------------------------------
        The hit group index.
        
        Options:
        0 - Generic
        1 - Head
        2 - Chest
        3 - Stomach
        4 - Left Arm
        5 - Right Arm
        6 - Left Leg
        7 - Right Leg
        8 - Gear
    
    damage                  text        "yes" or "no"
    ---------------------------------------------------------------------------
        Allows damage to be done on the specified hit group for zombies.
        
        Options:
        "yes" - Allow damage
        "no"  - Ignore 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.

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:

    Console variable:                   Default:
    ===========================================================================
    zr_infect_mzombie_ratio             5
    ---------------------------------------------------------------------------
        Mother zombie ratio. Every random N-th player is infected, in this case
        it's 5. If it's set to 0 there will be only 1 mother zombie.
        
        Options:
        0 or a positive number
    
    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.

Console commands:

    Syntax:
    ===========================================================================
    zr_infect <target> [respawn]
    ---------------------------------------------------------------------------
        Infects one or more players.
        
        Parameters:
        target      A SourceMod target string with one or more players.
        respawn     Teleport players to spawn.
    
    zr_human <target> [respawn]
    ---------------------------------------------------------------------------
        Turn one or more zombies into humans.
        
        Parameters:
        target      A SourceMod target string with one or more players.
        respawn     Teleport 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 higher 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 seconds 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.

These are the 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 on every spawn if enabled.

    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.
        
        Min: 0
        Max: 16000
    
    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 supposed to have support for adding fog, but because of technical limits in
SourceMod it's not possible yet. For developers who wonder why, it's because
it must be a env_fog_controller entity in the map. That entity isn't networked
so SourceMod can't modify or create that entity type. SourceMod may get this
feature in future versions.

Console variables for visual effects:

    Console variable:                   Default:
    ===========================================================================
    zr_veffects_lightstyle              1
    ---------------------------------------------------------------------------
        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                     1
    ---------------------------------------------------------------------------
        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             1
    ---------------------------------------------------------------------------
        Remove the sun entity on the map. Disables sun rendering on the map.
        
        Options:
        0 or 1
    
    zr_veffects_fog                     0
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        Enable fog on the map.
        
        Options:
        0 or 1
    
    zr_veffects_fog_override            0
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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"
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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 0" - Yellow
        "255 0 255" - Purpule
        "96 96 96"  - Dark grey
    
    zr_veffects_fog_scolor              "255 255 255"
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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 0" - Yellow
        "255 0 255" - Purpule
        "96 96 96"  - Dark grey
    
    zr_veffects_fog_density             0.8
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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
    ---------------------------------------------------------------------------
        (NOT SUPPORTED!)
        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:
        -2  No effect
        -1  Random effect
        0   Energy dissolve
        1   Heavy electrical dissolve
        2   Light electrical dissolve
        3   Core 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 take effect.
        
        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
        "sounds" folder, and MP3 files are supported. This sound is also
        looped, so only use sounds that support loops. Otherwise it might sound
        bad 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 start play
        again before the previous sound finished.
    
    zr_ambientsounds_volume             0.8
    ---------------------------------------------------------------------------
        Volume of ambient sound file. Volume is in percent.
        
        Options
        0.0 to 1.0


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 spawned as humans.
        
        Options:
        0 or 1
    
    zr_respawn_team_zombie_world        1
    ---------------------------------------------------------------------------
        Respawn as zombie if the player was killed by world damage. If the
        mother zombie haven't spawned yet, players are always spawned 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 zr_respawn_team_zombie setting.
        
        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
    ---------------------------------------------------------------------------
        Put a 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 limit is up.
        
        Options:
        0 or 1


3.18  SPAWN PROTECT CONFIGURATION
-----------------------------------

Spawning humans can have spawn protection settings that give them certain
advantages for a limited time.

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.
    
    zr_spawnprotect_alpha               0
    ---------------------------------------------------------------------------
        Transparency setting on spawn protected players.
        
        Options:
        0 (transparent) to 255 (fully visible)

Console commands:

    Syntax:
    ===========================================================================
    zr_zspawn_force <target> [spawn team]
    ---------------------------------------------------------------------------
        Force one or more players to spawn.
        
        Parameters:
        target      A SourceMod target string with one or more players.
        spawn team  Optional. 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 commands:

    Syntax:
    ===========================================================================
    zr_tele_force <client>
    ---------------------------------------------------------------------------
        Force teleport on a player. Does not add delay or add to teleport
        count.
    
        Parameters:
            client      Single 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.

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.

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


3.22  ANTI-STICK SETTINGS
---------------------------

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

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:

    "data/antistick.dat"

The file path is relative to the "sourcemod" folder.

Console variables:

    Console variable:                   Default:
    ===========================================================================
    zr_antistick                        1
    ---------------------------------------------------------------------------
        Enable anti-stick system.
        
        Options:
        0 or 1
    
    zr_antistick_default_width          32.0
    ---------------------------------------------------------------------------
        Default model width used to detect if players are stuck together. Width
        is in game units.
        
        Do not touch this variable if you don't know what you're doing!
    
    zr_antistick_file_path              "data/antistick.dat"
    ---------------------------------------------------------------------------
        File to store anti-stick model hull data. Path is default to the
        "sourcemod" folder.


3.23  VOLUMETRIC FEATURE CONFIGURATION
----------------------------------------

3.23.1  VOLUME ATTRIBUTES

3.23.2  FEATURE ATTRIBUTES

3.23.3  ANTI-CAMP FEATURE


4.0  HOW TO PLAY
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(how to defend against zombies, in a fair way)
(zombie tricks, getting through non-solid props)

4.1  GAME RULES
-----------------


4.2  CHAT COMMANDS
--------------------


4.3  USING THE 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 KNOCKBACK


4.6.3  TAKING ADVANTAGE OF THE CLASS SKILLS

(bunny jump)
(invisible, 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.


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.


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 helps a lot.

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.


5.0  TROUBLESHOOTING
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.1  VERIFY REQUIREMENTS
--------------------------


5.2  STARTUP
--------------


5.3  ERROR MESSAGES
---------------------


5.4  COMMON PROBLEMS
----------------------


6.0  GAMEPLAY GUIDELINES
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

6.1  BRIEFING - MAP CONFIGURATION FILES
-----------------------------------------


6.2  MAP BALANCE
-------------------


6.3  KNOCKBACK SETTINGS
-------------------------


6.4  MAP TIME
---------------


6.5  SERVERS WITH UNLIMITED AMMO AND NO RELOADING
---------------------------------------------------


7.0  REPORTING BUGS AND IMPROVEMENTS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
