Jump to content

kate

Administrators
  • Posts

    3,272
  • Joined

  • Days Won

    196

Posts posted by kate

  1. SDL with DevC++ - Basic SDL framework

    SDL with DevC++ - Basic SDL framework
    SDL Engine Requirements :
    - SDL Library installed with libraries and header files in the correct folders (use DevPack indicated in the "How To Start" section)

    After having very basic and disorganised code sections, we will now focus on getting a little SDL engine on feet. I think there's no point in detailing all the construction of this engine but mainly
    how it's structured, how to use it, and how to add stuff to it.
     

    Later on, we will extend this SDL graphics engine to handle sound, networking, open GL and much more. The framework code is fully commented, making it very easy to read through and understand. It is structured around the following elements:

    0. Engine config file
    The config.h file is there to group all the main settings of your engine together. That's where you can set your screen resolution, pixel colour depth, frames per second... etc... Don't hesitate to add stuff to here to enhance the contorls over your first SDL game

        // SDL Video mode information
        const int SCREEN_WIDTH = 1024;
        const int SCREEN_HEIGHT = 768;
        const int SCREEN_BPP = 32;
        
        // SDL Image structure information. Define the maximum number of images the game can load
        const int IMAGE_COUNT = 128;
        
        // Timer definitions. This forces the game to wait at least T_FRAME_INTERVAL milliseconds
        // between each frame. It is the only way to get the game to NOT run faster on a faster
        // computer... Indeed, without this test, the game loop would run as fast as the computer
        // processors allows it
        const int T_FRAME_INTERVAL = 25;     // time interval (ms) used for FPS rendering

    1. The CORE class
    As the name states it, the CORE class handles the game engine core. It's this class that have an infinite loop function that we call the gameLoop() function in this framework. It will loop for
    upcoming user events (mouse or keyboard inputs), perform the actions that correspond to those events and then render the graphics.

    2. The GRAPHICS class
    This class will give you full image control. When it's instanciated, it automatically calls its loadImageData() function. This function simply scans through the data/game_images.dat file for image information as below:

        # This file defines all the images loaded by the game
        # They are assigned in a static array and limited to 128 images by default
        #
        # If you need to re-assign the upper limit, you need to edit IMAGE_COUNT
        # field in config.h and recompile the game

        # Syntax to define an image
        # [image_number] [image_file_path] [RGB transparency key colour]
        
        # Also, note that all bright pink colours will be used for the transparency colour key
        # This means RGB colour [255, 0, 255] will be transparent in game
        # On the other hand, setting this to [-1 -1 -1] will disable transparency for that image</span>
        
        [0]    [data/img/ball.bmp]    [255 255 255]
        [1]    [data/img/steel.bmp]    [-1 -1 -1]

     

    The engine supports RGB transparency key colour for each image loaded. This colour can be specified in the image data file shown just above. RGB image transparency is something new to those who have only been through the first 2 SDL tutorials. Setting that value to [-1 -1 -1] will just disable transparency for that image. For each image, you can specify a colour which will be "substracted" to your image, making that colour transparent in game.

    Here's a very simple example. Consider the ball and steel images below, and the 2 different rendering results we obtained:

    Note that the ball is on a white background. Therefore, if you want to draw the ball in game, in front of the steel background, you will get the bad side effect of keeping the ball's white background. Using the transparency on the ball image for the white colour [255 255 255] will make all the white pixels of the image transparent and produce the correct effect you see on the 4th screenshot.

    The graphics class supports 8, 16, 24 and 32 bits per pixel colour depth raw pixel writing and line drawing functions
    Pixel reading functions allow advanced collisions detection using "pixel perfect" collision models

    3. What needs to be done
    The engine handles all the basic SDL stuff. Basically, all you need to do is:

    Find your bitmap images and fill the game_images.dat config file to get them loaded
    Create your game objects class that is instanciated and controlled by CORE class
    Update the gameLoop() function in the CORE class to get your object data and render it. Note that you can do this the other way round and have all your objects handle a CORE class instance pointed to render themselves. This will only require a little more adaptation.

    Download the Basic SDL Engine

     

    GDE_Framework_SDL_framework_1.zip

  2. SDL with DevC++ - Advanced SDL framework

    SDL with DevC++ - Advanced SDL framework
    SDL Engine Requirements :
    - SDL Library installed with libraries and header files in the correct folders (use DevPack indicated in the "How to Start" section)
    - SDL_Image library installed correctly. You can get ALL the Devpacks required HERE. Installation has to be done in a specific order (e.g you won't get SDL_Image installed until you have libpng Devpack installed ... etc...)
    - SDL_TTF library to render fonts on screen. You can get the SDL_TTF DevPack HERE
    - SDL_Mixer library to play sounds. You can get the SDL_Mixer DevPack HERE


    This SDL Game engine is a follow up and improvement of the GDO Basic SDL Engine. It is an enhanced version since it handles more data types (jpeg, bmp, tga and png image formats) in addition to sound. It also implements the SDL TTF library, letting you display custom fonts on screen.

    0. Engine config file
    The config.h file Has a few extra features compared with the SDL Basic engine. It now lets you set your audio sampling frequency, the maximum number of sounds to be loaded, the maximum number of fonts to initialize...

        // SDL Video mode information
        const int SCREEN_WIDTH = 1024;
        const int SCREEN_HEIGHT = 768;
        const int SCREEN_BPP = 32;
        
        // SDL Image structure information. Define the maximum number of images the game can load
        const int IMAGE_COUNT = 128;
        
        // SDL TTF Font structure information. Defines the maximum number of fonts loaded
        const int FONT_COUNT = 8;
        
        // SDL Audio information
        const int AUDIO_SOUND_COUNT  = 32;
        const int AUDIO_SAMPLE_FRQ = 22050; // Sampling frequency of audio
        const int AUDIO_CHUNK_SIZE  = 4096;  // This value determines the size of the memory chunks
                                           // used for storage and playback of samples. A value of
                                           // 4096 should be suitable for most games. Increasing
                                           // the value will decrease the CPU load but will also
                                           // decrease responsiveness of playback. If you find the
                                           // mixer's play/stop response times to be too slow, you
                                           // may wish to decrease this value.
        
        
        // Timer definitions. This forces the game to wait at least T_FRAME_INTERVAL milliseconds
        // between each frame. It is the only way to get the game to NOT run faster on a faster
        // computer... Indeed, without this test, the game loop would run as fast as the computer
        // processors allows it
        const int T_FRAME_INTERVAL = 25;     // time interval (ms) used for FPS rendering


    1. The CORE class
    As the name states it, the CORE class handles the game engine core. It's this class that have an infinite loop function that we call the gameLoop() function in this framework. It will loop for
    upcoming user events (mouse or keyboard inputs), perform the actions that correspond to those events and then render the graphics. This class hasn't changed in any way since the basic engine. It simply handles the audio class in addition to the video class...

    2. The GRAPHICS class
    This class will give you full image control. When it's instanciated, it automatically calls its loadImageData() function. This function simply scans through the data/bitmap_images.dat file for image information as below:

        # This file defines all the images loaded by the game
        # They are assigned in a static array and limited to 128 images by default
        #
        # If you need to re-assign the upper limit, you need to edit IMAGE_COUNT
        # field in config.h and recompile the game

        # Syntax to define an image
        # [image_number] [image_file_path] [RGB transparency key colour]
        
        # Also, note that all bright pink colours will be used for the transparency colour key
        # This means RGB colour [255, 0, 255] will be transparent in game
        # On the other hand, setting this to [-1 -1 -1] will disable transparency for that image
        
        [0]    [data/img/ball.bmp]    [255 255 255]
        [1]    [data/img/steel.bmp]    [-1 -1 -1]

     

    This enhanced framework has a new config file to handle non bitmap images. It's in this file that you'll specify all your jpeg, png, tiff... images to load in addition to whether or not you want to use their alpha channel

    # This file defines all the images loaded by the game
    # They are assigned in a static array and limited to 128 images by default
    #
    # If you need to re-assign the upper limit, you need to edit IMAGE_COUNT
    # field in config.h and recompile the game

    # Syntax to define an image
    # [image_number] [image_file_path] [alpha]
    # Alpha has to be set to 0 all the time, unless your image has
    # a transparency layer in which case you have to set alpha to 1

    # Make sure the image number you enter here DO NOT interfere with those
    # define in the bitmap image ressource definition file !!!</span>

    <span class='comment'># Loads tux.png with its alpha channel -> transparent background</span>
    [11]    [data/img/tux.png]    [1]
    <span class='comment'># Loads tux.png without its alpha channel -> white opaque background</span>
    [12]    [data/img/tux.png]    [0]

    The engine supports RGB transparency key colour for each image loaded. This colour can be specified in the image data file shown just above. RGB image transparency is something new to those who have only been through the first 2 SDL tutorials. Setting that value to [-1 -1 -1] will just disable transparency for that image. For each image, you can specify a colour which will be "substracted" to your image, making that colour transparent in game.

    The engine converts any non bitmap image to a surface on which alpha channel is omitted or not depending on the settings in the data/images.dat file. (The user can choose to load the image alpha channel or not). Note that alpha channel handling is heavier than simple opaque image blitting. You therefore must set the alpha switch only on images that really are transparent !

    The graphics class supports 8, 16, 24 and 32 bits per pixel colour depth raw pixel writing and line drawing functions
    Pixel reading functions allow advanced collisions detection using "pixel perfect" collision models directly onto an SDL Surface
    Truetype font blitting. The rendertext() function in the Graphics class will let you blit a Truetype font directly onto an SDL Surface

    3. The AUDIO class
    The audio class is still in a basic status. Indeed, it only lets you handle WAV files in this engine version. A better version will be released later to provide support for other music formats such as MP3. Loading audio files is just as easy as loading images. It is once again done via a config file which is extremely basic: you just specify a sound slot number to know in which array cell the sample has to be stored, then a path to the wav file you wish to load...

    # This file defines all the sounds loaded by the game

    # Syntax to define a sound
    # [sound_number] [sound_path]
    #
    # The audio sample format must be 16 bits audio

    [0]    [data/sound/online.wav]

    4. What needs to be done
    The engine handles all the basic SDL stuff. Basically, all you need to do is:

    Find your images and fill the game_images.dat and images.dat config files to get them loaded
    Find your wav sound samples and fill the sounds_wav.dat config file to get them loaded
    Find your fonts and fill the fonts.dat config file to get them loaded
    Create your game objects class that is instanciated and controlled by CORE class
    Update the gameLoop() function in the CORE class to get your object data and render it. Note that you can do this the other way round and have all your objects handle a CORE class instance pointed to render themselves. This will only require a little more adaptation.

    The sample provided with this framework will simply display the Tux PNG image on screen (once with and once without its alpha channel), will let you move a bitmap ball around the screen with its transparency key colour handling, and will play a sound when the left mouse button is clicked... very simple, but that's how you learn :)

     

    Download the Advanced SDL Engine

     

    SDL_engine_advanced.jpg

    GDE_Framework_SDL_framework_2.zip

  3. 1/Introduction
    This section is dedicated to game programming. Its main goal is to help beginers learn the basics and be able to quickly create fun games using powerfull libraries. In order to keep things simple,
    all tutorials are based on a free development program: DevC++ provided by Bloodshed software.
     The first tutorial will explain how to install it, how to get the SDL Devpacks for DevC++ and how to
    start your first SDL project.

    The section of tutorials below sums up the basics of computer gaming. It is illustrated by tutorials on the SDL (Simple Directmedia Layer) library.
    The tutorials aren't all ready yet but the first ones teach the first steps in game development:
     starting SDL, loading bitmap images and drawing them on screen, moving things around by taking keyboard inputs into account....

    2/ SDL Images and Events - Loading a bitmap and moving it on screen
    This tutorial will focus on getting a basic image rendered in the middle of the screen and let the user move it around with the arrow keys of the keyboard. The windows-only function from the first tutorial have been scrapped, making lighter code.

    We will stop using silly resolutions from now on and avoid having crappy colour depths. This tutorial uses 800x600 pixels screen resolution with a 32 bit per pixel colour depth. This will allow us to handle 255 layers for each colour: Red, Green, Blue and Alpha. Let's move onto the code...

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <SDL/SDL.h>
    We declare global variables here just to point them out and make you see what is really needed to render an image on screen. Note that in further tutorials, these variables will be encapsulated so as to have the cleanest code we can. The first new variable we declare is an SDL_Surface *image which is a pointer the the bitmap file that we load into an SDL_Surface. You therefore notice that we will be drawing an SDL_Surface on another SDL_Surface.... (drawing the *image on *screen). This drawing is done via the SDL_BlitSurface() (This performs a fast blit - copy an array of data to a bitmapped array destination - from the source surface to the destination surface)
    function. The function takes 4 parameters:

    the source SDL_Surface : this is simply the image surface you want to draw
    the source SDL_Surface SDL_Rect : we put NULL here because we just want the entire source SDL_rect to be drawn
    the target SDL_Surface : in our case, this is always the screen surface
    the target SDL_Surface SDL_Rect : we use the SDL_Rect rect variable we created at the top of the code. This lets us specify the offset from the top left corner of the screen at which our image will be rendered. As a result, it simply lets us set our image position on screen...
    // Allocate a pointer to an SDL_Surface for the screen buffer
    // and for the image we want to load and display on screen.
    SDL_Surface *screen = NULL;
    SDL_Surface *image = NULL; // We define a global SDL_Rect variable here. I know it isn't clean
    // but the only aim here is to point out WHAT has been added
    // from the basic tutorial to this one
    SDL_Rect rect;
    Our init() function start all the SDL components. The section that is really important here is the last part, where we allocate an SDL_surface according to a bitmap image path:

    image   = SDL_LoadBMP("GDO_El_Kef.bmp");

    The SDL_LoadBMP (Load a Windows BMP file into an SDL_Surface. Returns the new surface, or NULL if there was an error) function simply returns an SDL_Surface pointer if it manages to load the target file.

    // Function : init()    - Params : none
    // SDL Initialisation function
    // Instead of having a heavy and loaded main function, all the
    // setting up of our application is handled here</span>

    bool init()
    {
        // Initialize SDL
        if (SDL_Init (SDL_INIT_VIDEO) < 0)
        {
            printf ("Couldn't initialize SDL: %s\n", SDL_GetError ());
            exit (1);
        }
        
        atexit (SDL_Quit);

        // Set 800x600 32-bits video mode
        screen = SDL_SetVideoMode (800, 600, 32, SDL_SWSURFACE | SDL_DOUBLEBUF);
        if (screen == NULL)
        {
            printf ("Couldn't set 800x600 32b video mode: %s\n", SDL_GetError ());
            exit (2);
        }
        
        // Set the title of our application window handler
        SDL_WM_SetCaption ("SDL MultiMedia Application", NULL);
        
        // We now load our first bitmap image.
        image   = SDL_LoadBMP("GDO_El_Kef.bmp");
        if (!image)
        {
           printf("*** Error attempting to load file: GDO_El_Kef");
           exit (3);
        }
        
        
        // This lets us set the original coordinates of our image on the screen.
        // Don't forget that top left corner is the origin (0,0)
        rect.x = 200;
        rect.y = 200;

        // We activate <font color='green'><i>keyboard repetition</i></font>. Therefore, when a key stays pressed down
        // it will keep moving the image around the screen
        // To see prcisely what this toggle does, just comment the line and recompile
        // the code...
        SDL_EnableKeyRepeat(25, 20);
        
        return true;
    }
    Not much new stuff here, except the use of the SDL_BlitSurface() function to draw the bitmap where we want on screen.

    // Function : draw()    - Params : none
    // Frame rendering function
    // This function is called on every loop, to draw the scene
    // It draws then swaps the work and screen buffer to display the scene
    void draw ()
    {
        
        Uint32 color;

        // Create a black background using the screen pixel format (32 bpp)
        color = SDL_MapRGB (screen->format, 0, 0, 0);
        SDL_FillRect (screen, NULL, color);

        // Set the image offset
        SDL_BlitSurface(image, NULL, screen, &rect);
        
        // Flip the working image buffer with the screen buffer
        SDL_Flip (screen);
        
        // Add a little pause...
        SDL_Delay (1);
    }
    The main() function now handles extra events: Key Presses.

    Each time a key is pressed, it is take into account as an event, which is placed in an event queue (Internally, SDL stores all the events waiting to be handled in an event queue. Using functions like SDL_PollEvent, SDL_PeepEvents and SDL_WaitEvent you can observe and handle waiting input events). Each time we iterrate through our game loop, we take the
    first event placed in the queue and act accordinly. Event Queue is FIFO (First in first out. The first element to be inserted in the queue will be the first one retrieved) type.
    When an arrow key is pressed, we increment or decrement the rect.x and rect.y variables so as to set the new image offset on screen.

    // Function : main()    - Params : argc, argv
    // Main program function
    // This function calls the init() function then loops on draw function
    // until an escape condition is reached</span>
    int main (int argc, char *argv[])
    {
        // Used to loop
        int done = 0;
        // The keys variable is used to store the state of the keyboard at
        // each frame and see if which keys are pressed down
        Uint8 *keys;
        
        // Initialise SDL and all the rest...
        init();

        
        // Game Loop
        while (!done)
        {
            // This will let us track events
            SDL_Event event;

            // We fill 'event' with the first event in the event queue
            while (SDL_PollEvent (&event))
            {
                switch (event.type)
                {
                // If our event reports a key being pressed down
                // we process it
                case SDL_KEYDOWN:
                      keys = SDL_GetKeyState(NULL);
                      if ( keys[SDLK_LEFT] ) {  rect.x--;}
                      if ( keys[SDLK_RIGHT] ) { rect.x++;}
                      if ( keys[SDLK_UP] ) { rect.y--;}
                      if ( keys[SDLK_DOWN] ) { rect.y++;}
                      if ( keys[SDLK_ESCAPE] ) { done = 1;}
                      break;
                // If the event is a click on the close button in the top
                // right corner of the window, we kill the application
                case SDL_QUIT:
                    done = 1;
                    break;
                default:
                    break;
                }
            }

            // Render the scene
            draw ();
        }

        return 0;
    }

    Download the tutorial source HERE
    Copyright © 2007 Game Design Online, All Rights Reserved. Designed by Mark REEVE.

    sdl_2_blitimage.jpg

    Tutorial_SDL_2_move_bitmap.zip

  4. still in use but no more games updates and very helpfully program when you manage  games servers

    easy to manage the server with the rcon

  5. Qtracker Information

    If you've ever played a multiplayer game on your PC, the in-game server browser has probably left you wanting more. Qtracker lets you say goodbye to the in-game browser, forever!

    From the convenience of one program you can manage all of the games you play, whether they're on the Internet or your LAN, without ever having to load a game. Find your friends, find new servers, watch games in progress, administer servers, and tons more.

    Qtracker supports over 100 of the most popular multiplayer games, and is actively supported with regular updates. Complete listing of supported games.


    Easy, One-Click Connecting

    You're always one click away from playing. Once you've found a server to play on, just click connect and your game will load and automatically connect to the server, so there's no need to remember ip addresses. The Auto-Login feature can even log you in and pick your soldier
    for games like Battlefield 2142.

    If a server is full, Qtracker can automatically connect you as soon as a position is available!


    Players, Rules, Mapshots, and Administration

    View players, scores, teams, rules, and all other types of server details from one convenient window.
    Player names are rendered using in-game fonts to support fun-names and colors.
    Installable Mapshot Packs let you see images of the active map, and are available for most games and modifications.
     
     
    Using the Administration tab you can execute server commands remotely and see the results.
    You can even see formatted player conversations, deaths, and other log events on Half-Life 1 and Half-Life 2 engine games.


    Region Filtering

    Don't waste time querying servers you'll never play on. Over 400 regions are included with flag icons,
     covering all of the continents and most countries/states.
     
     
    Server Filtering

    Advanced filters allow you to see only the servers you want to.
    Many filters are available for download for most games and modifications, but it's easy to create your own filters with just a few clicks.


    Themes

    Express your individuality using Windows Theme (.msstyles) files.
    Thousands of Themes are freely available on the Internet from websites such as deviantART and SkinBase.org.

    Panes

    Panes allow you to arrange the interface to meet your needs. Panes can be moved, hidden, and inserted or tabbed into other panes.
    Auto-hide pins permit panes to conveniently collapse away when not in use, but will re-appear when you hover over them.


    Customization

    Menus, toolbars, and keyboard shortcuts can customized any way you like. Create your own menus, remove icons from toolbars, re-position or hide toolbars, edit or create your own keyboard shortcuts.
    It's completely up to you.

    info-application-window-main-50.jpg

    info-pane-floating-50.jpg

    info-pane-position-50.jpg

    info-regions-asia.jpg

    info-regions-southam.jpg

    info-regions-worldmap.jpg

    info-server-details-players2-50.jpg

    info-server-details-players-50.jpg

    info-theme-corner1.jpg

    info-theme-corner2.jpg

    info-theme-corner3.jpg

    info-theme-corner4.jpg

  6. Qtracker Information

    If you've ever played a multiplayer game on your PC, the in-game server browser has probably left you wanting more. Qtracker lets you say goodbye to the in-game browser, forever!

    From the convenience of one program you can manage all of the games you play, whether they're on the Internet or your LAN, without ever having to load a game. Find your friends, find new servers, watch games in progress, administer servers, and tons more.

    Qtracker supports over 100 of the most popular multiplayer games, and is actively supported with regular updates. Complete listing of supported games.


    Easy, One-Click Connecting

    You're always one click away from playing. Once you've found a server to play on, just click connect and your game will load and automatically connect to the server, so there's no need to remember ip addresses. The Auto-Login feature can even log you in and pick your soldier
    for games like Battlefield 2142.

    If a server is full, Qtracker can automatically connect you as soon as a position is available!


    Players, Rules, Mapshots, and Administration

    View players, scores, teams, rules, and all other types of server details from one convenient window.
    Player names are rendered using in-game fonts to support fun-names and colors.
    Installable Mapshot Packs let you see images of the active map, and are available for most games and modifications.
     
     
    Using the Administration tab you can execute server commands remotely and see the results.
    You can even see formatted player conversations, deaths, and other log events on Half-Life 1 and Half-Life 2 engine games.


    Region Filtering

    Don't waste time querying servers you'll never play on. Over 400 regions are included with flag icons,
     covering all of the continents and most countries/states.
     
     
    Server Filtering

    Advanced filters allow you to see only the servers you want to.
    Many filters are available for download for most games and modifications, but it's easy to create your own filters with just a few clicks.


    Themes

    Express your individuality using Windows Theme (.msstyles) files.
    Thousands of Themes are freely available on the Internet from websites such as deviantART and SkinBase.org.

    Panes

    Panes allow you to arrange the interface to meet your needs. Panes can be moved, hidden, and inserted or tabbed into other panes.
    Auto-hide pins permit panes to conveniently collapse away when not in use, but will re-appear when you hover over them.


    Customization

    Menus, toolbars, and keyboard shortcuts can customized any way you like. Create your own menus, remove icons from toolbars, re-position or hide toolbars, edit or create your own keyboard shortcuts.
    It's completely up to you.

    info-application-window-main-50.jpg

    info-pane-floating-50.jpg

    info-pane-position-50.jpg

    info-regions-asia.jpg

    info-regions-southam.jpg

    info-regions-worldmap.jpg

    info-server-details-players2-50.jpg

    info-server-details-players-50.jpg

    info-theme-corner1.jpg

    info-theme-corner2.jpg

    info-theme-corner3.jpg

    info-theme-corner4.jpg

  7. This tutorial is about to help random players who wanna know how to make binds, what key they can use and how to use shortcuts, first we need to start take a look to what key or button are available on both Keyboard and Mouse

    I- Available Keys

    1)Keyboard:

    Function keys:

    F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11 and F12

    Numbers Keys: (not the numeric pad)

    1, 2, 3, 4, 5, 6, 7, 8, 9 and 0

    Alphabet Keys: (uppercase letters or not! it's the same, A = a)

    Q, W, E, R, T, Y, U, ...M

    or

    A,Z,E,R,T,y.....

    Punctuation Keys:

    - [ ] / \ ' . , ; ~ =

     

    Special Keys:

    TAB -> TAB

    CAPSLOCK -> CAPSLOCK

    SHIFT -> SHIFT

    CTRL -> CTRL

    ALT -> ALT

    SPACEBAR -> SPACE

    INSERT -> INS

    DELETE -> DEL

    HOME -> HOME

    END -> END

    PAGEUP -> PGUP

    PAGEDOWN -> PGDN

    ↑ -> UPARROW

    ↠-> LEFTARROW

    → -> RIGHTARROW

    ↓ -> DOWNARROW

    Numbers Keys or Numeric Pad:

    . -> KP_DEL

    ENTER -> KP_ENTER

    + -> KP_PLUS

    - -> KP_MINUS

    * -> *

    / -> KP_SLASH

    0 -> KP_INS

    1 -> KP_END

    2 -> KP_DOWNARROW

    3 -> KP_PGDN

    4 -> KP_LEFTARROW

    5 -> KP_5

    6 -> KP_RIGHTARROW

    7 -> KP_HOME

    8 -> KP_UPARROW

    9 -> KP_PGUP

    fabind_keyb.png

    2) Mouse:

    Left Button <-> mouse1

    Right Button <-> mouse2

    Middle Button <-> mouse3

    Back Button <-> mouse4 (some mice have this extra button)

    Forward Button <-> mouse5 (some mice have this extra button)

    ScrollUP Button <-> MWHEELUP

    ScrollDown Button <-> MWHEELDOWN

    II- Basics Knowledge about Binds

    There are two kind of binds, bind Command or Bind say/vsay, in this tutorial we are going to focus in say/vsay command and how to use it. Say/Vsay can be used in different ways, Text or Voice or both, and we can classify say OR vsay in 3 categories:

    Global Chat/Voice :

    Say / VSay : Let all players read/hear your message

    Team Chat/Voice:

    Say_team / Vsay_team: Let only your team to read/hear your message

    Fireteam Chat/Voice:

    Say_fireteam: Let only your fireteam read your message

    Voice chat also available in fireteam, using this form:

    Vsay_buddy class_number number_of_players list_of_players_fireteam_IDs vsay_string

    class_number: -1: any class 0: Soldier 1: Medic 2: Engineer 3: Fieldops 4: Covertops

    Example:

    vsay_buddy 1 0 NeedMedic

    III- How to make Binds

    We gonna start by choosing what kind of binds we gonna use:

    Binds that will be used to show only TEXT MESSAGE

    Binds that will be used to show TEXT MESSAGE and Play SOUND(voice)

    that mean:

    TEXT: say/say_team/sayfireteam

    TEXT+VOICE: vsay/vsay_team/vsay_budy

    To bind a key with Text or Voice you need to use this form:

    TEXT FORM:

    bind KEY "Say CUSTOMTEXT"

    Example:

    Bind P "Say ^2I need help!!!"

    it will show to all players on server this text message:

    I need help

    TEXT + VOICE FORM:

    bind KEY "Vsay VOICECODE CUSTOMTEXT"

    Example:

    Bind P "Vsay Hi ^2Hello EveryBody On The Server!!!"

    it will Play Sound "Hi" and show your CUSTOMTEXT to all player on the server:

    Hello EveryBody On The Server!!! (With Voice Of "Hello")

    IV- Make Binds With Shortcuts:

    Shortcuts can be used in conjunction with binding keys. it come in ET MODS that use Shrubbot (like jaymod, etpub, nitmod or noquarter) All f|a Server have shortcuts enabled, Shortcuts can be used to make useful or funny customized vsay/say to all players or only to teammates

    There are others shortcuts that come in new update with different MODS, so you need to check mods site for more, but here we have the most common shortcuts for listed mods above.

    [A] - Past person who gave you ammo.
    [D] - Last person who killed you.
    [H] - Last person who gave you health.
    [K] - Last person you killed.
    [L] - Your current location. (Coordenates in where u are)
    [N] - Your nickname.
    [R] - Last person who revived you.
    [P] - Teammate you are pointing at.
    [S] - Your health (HP).
    [W] - Weapon you are currently holding.
    [T] - Ammo u have in current weapon. 

    You can use shortcuts with both form:

    bind KEY "Say CUSTOMTEXT+SHORTCUTS"

    bind KEY "Vsay VOICECODE CUSTOMTEXT+SHORTCUTS"

    Shortcuts can be used in conjunction with binding keys, in Or with CUSTOMTEXT

    Example:

    /bind P "vsay_team EnemyDisguised ^1Watch Out Guys!!! Enemy in disguise! Coming From [L]"

    Watch Out Guys!!! Enemy in disguise! Coming From E, 5

    /bind I "vsay NeedAmmo ^4Ammoooo Please!!! ^1Only [t] Ammo Left For My [w]!"

    Ammoooo Please!!! Only 11 Ammo Left For my Mortar!

    /bind O "vsay GreatShot [d] ^8You Are good, But Next Time You Will Taste My [w]!"

    ETs Pappy  You Are good, But Next Time You Will Taste My Knife!

    All binds can be added from Console or save in your config

    Voice Available:

    1.Statements

    11 - Path cleared. - PathCleared

    12 - The enemy is weakened. - EnemyWeak

    13 - All clear. - AllClear

    14 - Incoming! - Incoming

    15 - Fire in the hole! - FireInTheHole

    16 - I'm defending. - OnDefense

    17 - I'm attacking. - OnOffense

    18 - Taking fire! - TakingFire

    19 - Mines cleared. - MinesCleared

    10 - Enemy in disguise. - EnemyDisguised

    2. Requests

    21 - Medic! - Medic

    22 - I need ammo! - NeedAmmo

    23 - I need backup! - NeedBackup

    24 - We need an engineer! - NeedEngineer

    25 - Cover me! - CoverMe

    26 - Hold fire! - HoldFire

    27 - Where to? - WhereTo

    28 - We need Covert Ops! - NeedOps

    3. Commands

    31 - Follow me! - FollowMe

    32 - Let's go! - LetsGo

    33 - Move! - Move

    34 - Clear the path! - ClearPath

    35 - Defend our objective! - DefendObjective

    36 - Disarm the dynamite! - DisarmDynamite

    37 - Clear the mines! - ClearMines

    38 - Reinforce the offense! - ReinforceOffense

    39 - Reinforce the defense! - ReinforceDefense

    4. Talk

    41 - Yes! - Affirmative

    42 - No! - Negative

    43 - Thanks a lot! - Thanks

    44 - You're welcome. - Welcome

    45 - Sorry! - Sorry

    46 - Oops! - Oops

    5. Global

    51 - Yes! - Affirmative

    52 - No! - Negative

    53 - The enemy is weakened. - EnemyWeak

    54 - Hi! - Hi

    55 - Bye. - Bye

    56 - Great shot! - GreatShot

    57 - Yeah! - Cheer

    581 - Thanks a lot! - Thanks

    582 - You're welcome. - Welcome

    583 - Oops! - Oops

    584 - Sorry! - Sorry

    585 - Hold your fire! - HoldFire

    586 - Good game! - GoodGame

    7. Objectives

    71 - Command acknowledged! - CommandAcknowledged

    72 - Command declined! - CommandDeclined

    73 - Command completed! - CommandCompleted

    74 - Destroy the primary objective! - DestroyPrimary

    75 - Destroy the secondary objective! - DestroySecondary

    76 - Destroy the construction! - DestroyConstruction

    77 - Construction underway! - ConstructionCommencing

    78 - Repair the vehicle! - RepairVehicle

    79 - Destroy the vehicle! - DestroyVehicle

    70 - Escort the vehicle! - EscortVehicle

  8. Version Added: 1.3 test1
    Last Modified: 1.4 beta 1
    Documentation last modified: Oct 12, 2005

    WhaleClient now supports a lot of Shrub's text shortcuts and even adds a few more.
    Text shortcuts can be used in normal ((fire)team)chat, ((fire)team)voicechat or echo/cpm.
    List of supported Text Shortcuts:

    • [d] = last player who killed you. *
    • [dw] = the last weapon you got killed with. *
    • [k] = last player you killed. *
    • [kw] = the last weapon you killed with. *
    • [ks] = your health at the moment you killed the last player. *
    • [n] = your name.
    • [p] = last teammate you pointed at.
    • = your health.
    [t] = your current ammo. [w] = your current weapon. [l] = your current location (coordinates). [ln] = your current location (location name). (* = on shrub it requires g_logoptions bitflag 1 off, see explanation below)
    It's possible to disallow WhaleClient to scan for textshortcuts in your text:
    cg_noCustomVoiceChat (default: 0) is a bitflag variable with the following properties: (add up the values to disable multiple features)
    1 - Don't use text shortcuts in your chat messages. 2 - Don't use text shortcuts in your voicechat messages. 4 - Don't use text shortcuts in your echo/cpm messages.
    NOTE:
    You'll have to use "/say " command if you want to use text shortcuts directly via the console.
  9. Hitsounds
    Version Added: 1.0
    Last Modified: 1.4 beta 1
    Documentation last modified: Oct 12, 2005

    Whaleclient supports (client-sided) hitsounds for all bullet hits, with the exception of the crew-served MG.
    Hitsounds are sounds that play if you hit a player. Whaleclient supports different sounds for hiting a enemies head and body (everything else except the head).
    It can play a different sound when you hit your own teammate.
    You can toggle hitsounds with cg_hitsounds (default: 1).
    It's possible to use your own hitsounds (this is probably only useful if you play on a unpure server, or the server must add a pk3 with custom hitsounds).
    To add your own sounds (they'll have to be .wav sounds!), you'll have to zip the sound (it can be in a few folder levels, like "sound/mysounds/hithead.wav"), rename the zip file to a .pk3 extension and change one or more of the following settings in ET:

    Head hitsound
    You can change the sound played when you hit a enemies head by setting:
    cg_hitheadsound "[path and name of the wav file in the pk3 pack]" (default: "sound/whaleclient/wc_headshot.wav")
    Body hitsound
    You can change the sound played when you hit a enemies body by setting:
    cg_hitbodysound "[path in the pk3 and name of the wav file]" (default: "sound/whaleclient/wc_hit.wav")
    Teammate hitsound
    Finally you can change the sound played when you hit a teammate by setting:
    cg_hitteamsound "[path in the pk3 and name of the wav file]" (default: "sound/whaleclient/wc_headshot.wav")

    Setting cg_hitsounds "2" will enable serverside hitsounds for etpub (if the server has g_hitsounds enabled).

    Voicechats with custom text
    Version Added: 1.2
    Last Modified: 1.3 test1
    Documentation last modified: Apr 25, 2005

    With WhaleClient you can receive voicechats with custom texts, much like how it's done in ETpro.
    You can send such a voicechat with the following command with parameters:
    Syntax: vsay [@private client(s)] [voicechat] [soundnumber] [custom text]

    • [@private client(s)]: Voicechats can be send to a specific person or group(clan) by adding this (optional) parameter. The parameter has to start with a @ sign followed directly (no space!) by a partial string of the person or group you would like to send the voicechat to.
    • [voicechat]: the actual voicechat to be played, always has to be there.
    • [soundnumber]: The number of the sound and text as defined in the voicechat script. This can be used to always play the exact same voicechat every time. If soundnumber is greater then the number of defined in the voicechat script it will use a random soundnumber available.
    • [custom text]: The rest of the vsay command is shown as the text of the voicechat. This will override the standard voicechat text, so it's like normal chat with a added sound.
    • Every parameter is optional except the voicechat, but they have to be in this order.
      NOTE:Only players with WhaleClient (version 1.2 and upwards) installed will be able to receive these new voicechats, people without it will receive the normal one, unless it's a private voicechat in which case they'll receive nothing. Also note that people without it installed can still send these voicechats (but not receive them them self).

      A few examples:
      vsay goodgame : sends a normal voicechat for saying "Good game!".
      vsay @whale goodgame : sends a private voicechat to all people with "whale" in their name (case and color insensitive).
      vsay goodgame 1 : sends a normal voicechat to all people with always the same sound and text (the 2nd of the voicechat script).
      vsay goodgame gg : sends a normal voicechat to all people with a random soundnumber but with only the text "gg".
      vsay @whale goodgame 1 gg : combines everything above.

      You can choose to not receive these new voicechats:
      cg_noCustomVoiceChat (default: 0) is a bitflag variable with the following properties: (add up the values to disable multiple features)
    • 1 - Display voicechats normally (no custom text or sound).
    • 2 - Ignore private voicechats.
  10. Acknowledgements (in alphabetical order)
    The following people assisted in testing and/or contributed ideas or bug reports:
    • 1.4: Far to many people to name here, but you know who you are.
    • 1.3: The {AR} clan for support and especially Major Zeman (testing & reporting bugs).
    • 1.2: Major Zeman, Stonewall
    • 1.1: Major Zeman, eXistinZ
    Special Thanks:
    The ETpro team (bani, rain, fretn and more): their mod gave inspiration for a lot of features, also credit for some sounds and models goes to them.
    The ETpub team (tjw, josh and more): for allowing me to support their mod and for some pieces of their etpub_client code.
    Lastly thanks goes out to for the people who posted bugfixes on the SplashDamage forums, especially Chrunker (for a few of the Project Bugfix fixes).

     

    Changes from WhaleClient 1.3 are marked in red.


    What's New (lists the most major changes)
    • 1.4 Beta 1 - released 10/13/2005
      • Location names in teamchat (works with Etpro location files).
      • Optimized prediction: should increase FPS a lot in most cases.
      • Death ("bad day") spree messages.
      • Althud flags
      • Support for serverside killingspree messages (plays sounds).
      • Killingspree messages screen display location and global sound configurable.
      • ETpub: players can choose between client or serverside hitsounds.
      • Most of ETpub_client (20050927) integrated.
      • A lot of other small features and bugfixes.
    • 1.3 - released 06/15/2005
      • Added a new WhaleClient menu for setting most WhaleClient settings.
      • Redone the player's HUD and Scoreboard (see "Display changes" section).
      • Enhanced Spectator viewing.
      • Added multikill messages with sound.
      • Added textshortcuts (like in shrub).
      • Gib chunks are shown.
      • Bannerprinting support.
      • New custom menu system.
      • Added more small features, like altweap reloads.
      • Added new !pizza and !listmaps chatcommands.
      • Added support for map/team/class change autoexec scripts.
      • Added LOTS of new client fixes.
      • ETpub_client integrated. (Modified)
      • This version is built upon the 2.60 patch code.
    • 1.2 final - released 03/26/2005
      • Different Hitsounds when hitting a teammate.
      • Voicechats with custom text.
      • Level 4 soldiers can put their secundairy SMG in weaponbank 2.
      • Changed deathmessage display.
      • Killing sprees with sounds.
      • New text shrub text commands added.
      • Automaticly adapts to the servers ET version (2.55 or 2.56).
      • Fixed all known bugs/crashing problems with the previous version.
      • Fixed a lot of etmain bugs + added improvements.
      • Now supports Linux.
    • 1.1 - released 10/14/2004
      • Objective display popup.
      • Disable fireteam invitations.
      • Team/Class-changing menu's.
      • Custommenu1 and Custommenu2 for creating your own menu's (unpure servers).
      • Knifekill Goat sounds and First Blood sounds.
    • 1.0 - released 09/01/2004
      • Client-sided hitsounds (head and bodyshots) when you hit a enemy for all bullet shooting weapons (except crew-served MG's).
      • Friendly covert-ops in disguise get a disguised icon.
      • Scoreboard shows connecting status.
      • Ability to open voicechat menu as spectator.
      •  

     

  11. Introduction
    WhaleClient
    Version 1.3
    Released 06/15/2005
    By KillerWhale

    [email protected] (Please use the forum link below for questions/suggestions/bugreports)

    The latest version and answers to any questions are available online at the Rainhosting forums: http://forums.rainhosting.com/


    Installation

    WhaleClient is a client side mod for ET which can be used with multiple (serverside) ET mods.
    It's been tested to work with ETpub (up to the latest currently unreleased version 0.6.0 (dated 10/12/2005)) shrubET (1.1-b/1.2test13) and ETmain (2.55/2.56/2.60) but it should also work right with more mods though this is untested.
    It's recommended to remove any other client mods from the server/client before installing.

    WhaleClient can be installed on a server so all players must download and use it (serverside install) or installed by players for playing on unpure servers (client-only install):
    1. Serverside Installation:
      Just unzip the WhaleClient zip file into the mod folder you'll like to run it with on the server:
      So if you would like it to run with shrubET you should unzip it into the Enemy Territory/shrubet folder and for etpub it's the Enemy Territory/etpub folder.
      If you would like it to run with the standard ET (etmain/vanilla ET) you should unzip it into the Enemy Territory/etmain folder.
      IMPORTANT: Make sure players can download the WhaleClient-1_4_beta1.pk3 file from your server or redirect (like normal maps).
      For etpub: It's heavyly recommended that you set g_obituary to "1" on the server or some features won't work (properly).
      For shrubet: It's heavyly recommended that you set the g_logoptions bitflag 1 off (which means g_logoptions must set on a even value).
      There are some (optional) serverside settings which changes WhaleClient's behaviour listed 
      here.
    2. Client-only Installation: (for playing on unpure (sv_pure "0") servers)
      Just unzip the WhaleClient zip file into the mod folder you'll like to run it with:
      So if you would like it to run with shrubET you should unzip it into the Enemy Territory/shrubet folder. It's always best to make a backup of the files you overwrite, so you can put them back if you want to uninstall.
      If you would like it to run with the standard ET (etmain/vanilla ET) you should unzip it into the Enemy Territory/etmain folder.
      Important: If you play on pure servers without WhaleClient on it, you'll have to reinstall WhaleClient before using it again on a unpure server!

    Uninstallation

    Just remove both the "Whaleclient-1_4_beta1.pk3" and the "WhaleClient_CompassShaders.pk3" files out of your mod folder.
    Also you should replace the "cgame_mp_x86" and "ui_mp_x86" .dll/.so files with the regular client .dll/.so files (out of your etmain folder) (only needed if it's the server or you play on unpure servers).
  12. Client auto-scripts

    Client auto map scripts
    When a map loads or restarts, the client will look for the following scripts and run them if found:

    autoexec_(mapname).cfg
    autoexec_default.cfg

    For example if the map rotates to battery, the client would look for autoexec_battery.cfg and run it. If autoexec_battery.cfg is not found, it would try to run autoexec_default.cfg instead.

    Client auto team/class scripts
    When players spawn with a changed team or class, the client will look for the following scripts and run them if found:

    autoexec_axis.cfg
    autoexec_allies.cfg
    autoexec_spectator.cfg

    autoexec_soldier.cfg
    autoexec_medic.cfg
    autoexec_engineer.cfg
    autoexec_fieldops.cfg
    autoexec_covertops.cfg

    These are only run when the team or class changes, they are not run on every spawn.

    note: the files will be executed in following order:

    1. autoexec_<teamside>.cfg
    2. autoexec_<classtype>.cfg
    3. autoexec_<mapname>.cfg

  13. ET Pro is a mod specifically targeted at competition play, with features specifically designed for administration of competition servers. ET Pro has been chosen as the official tournament mod for STA, TWL, CAL, Clanbase, and ESL. The official IRC channel for ET Pro is #etpro on irc.freenode.net The ET Pro development team would like to extend thanks to the following who contributed significantly to the development of 2.0.0, without their help ET Pro would not be where it is today! ]eVe[LT_Winters, Skrappa[DSA], and STA League for 'keeping the faith' The players of clan [BoD] and =EFG= for testing and valuable input Clan [FuN] for hosting ET Pro servers in the UK Lot-Blue, Lot-Warpath, and everyone at TWL who helped with testing and bug reports Clan |NE| for managing to always break stuff in astonishing ways ikkyo for help with 1337 shader tricks fretn for help with multiview zinx for fixing the fireteam4 shader digibob for being teh silleh Activision for supporting our ET

    _____________________________

    new:

    •  
    • 2.60b support
    • bring client example.cfg up to date
    • bring server example.cfg up to date
    • mortis fixes for fueldump and railgun
    • |FF|Im2good4u ui update. Added cg_centertime and fixed menu box size
    • give semiadmins the same kick/mute protection as refs
    • Allow refs to surrender or callvote surrender even if vote is disabled
    • #944 - competition fueldump
      Tank is completely removed, first half of map is skipped.
      Depot side wall and depot gate are now dynamitable.
    • #964 - show who did team commands like pause, specinvite, readyteam
    • #959 - uncheatprotect cg_centertime
    • #967 - added 6 new crosshairs, which are variants of the orignal 0-5 that work better at small sizes
    • #960 - allow .config to require a particular mapscript
      syntax: in a (non default) map block put
      mapscripthash <40char sha1>

      if no mapscripthash is specified, any mapscript is allowed
      if a mapscripthash is specified, and the hash of the loaded mapscript does not match, an error message is sent to all clients, and the config is cleared.

      the hash of the current script is stored in the readonly server cvar b_mapscripthash, so clients or server admins can query it.
    • Also improved config error handling. Now all parse errors result in the config being completely cleared, and a message broadcast to connected clients.



    lua changes:

    •  
    • ps.viewangles added
    • s.eventParm added
    • ps.origin added



    specinvite improvements:

    •  
    • show spectator invite status in /players.
      Where /players previously showed a red X for axis or a blue L for allies, it shows the following for spectators
      SH shoutcaster
      SB invited both teams
      SX invited axis only
      SL invited allies only
      S not invited
      This could be made more verbose if people think it is too obscure.
    • add specuninvite command. Refs and shoutcasters may not be invited or uninvited



    bugfixes:

    •  
    • #935 - fireteam invite confused by numbers in names, breaks when using ft menu too
    • #936 - players may suddenly drown if they go directly from waterlevel 0 to/from 3
    • #939 - etpro doesn't play the the prepare and fight sounds when unpaused
    • #954 - setcs rcon abuse
    • #948 - using a fixed MG pauses panzerfaust
    • #955 - some trigger_objective_info fields cannot be modified from mapscript. We now allow trigger_objective_info fields to be changed in mapscript spawn section. Some (spawnflags, customimage, score, target, track, message) must be changed in the first frame, or first 3 frames.
    • #949 - don't leave the player with an empty grenade launcher (weapalt bug);
    • #962 - revive can leave you with an empty rifle grenade launcher
    • #957 - weaponbank 10 crashes the client
    • Prevent antiwarp circumvention via pmove_fixed
    • #961 - Having too many counters drawn crashes the cgame
    • #969 - accum buffer index validation is borked. allow 10 global or local accums, and correctly print an error if the script tries to use too many.
    • #970 - some items in the etpro config menu first page cannot be bound. make resettimer, opentimerinput selectbuddy 6 and 7 bindable in menu.
    • fix scripting bug with thinktime causing thinks to get missed
    • #965 - clients should no longer be able to get other client's ip
    • #966 - clients can force other clients to disconnect by generating a lot of commands
      Three server cvars were added for #966:
      b_floodKickRate - continuous commands/sec, default 15
      b_floodKickBurst - max commands in a burst, default 20
      b_floodKickTime - time to kick flooders for, default 0

      The default values should keep flooders from lagging others off the server.
    • #xxx - Fix a bug that let you use prone to go through walls via wedging yourself and turning, with the legs *slightly* a way from the wall, but not far enough
    • #xxx - Prevent players from shoving players that are stuck in another player - e.g. after revive, someone's standing in them.
    • #xxx - Fix g_initialCamera buffer overrun
    • #983 - mapscript cvar commands are broken
    • #977 - clients show wrong warmup info if match is paused in warmup before countdown
    • #984 - workaround for bug in nvidia 91.xx drivers not displaying commandmap icons properly

     

  14. Current ET Pro Release : Version 3.2.6 Sep 18 2006

    Latest News
    Sep 18, 2006 - ET Pro 3.2.6 released!
    Check the download page for details. List of changes from 3.2.6 is here

    Jan 26, 2006 - ET Pro 3.2.5 released!
    Check the download page for details. List of changes from 3.2.5 is here

    Nov 24, 2005 - ET Pro 3.2.4 released!
    Check the download page for details. List of changes from 3.2.4 is here

    Nov 22, 2005 - ET Pro 3.2.3 released!
    Check the download page for details. List of changes from 3.2.3 is here

    Aug 17, 2005 - ET Pro 3.2.1 released!
    Check the download page for details. List of changes from 3.2.0 is here

    May 26, 2005 - ET Pro 3.2.0 released!
    Check the download page for details. Extensive list of changes from 3.1.0 is here

    July 26, 2004 - ET Pro 3.1.0 released!
    Check the download page for details. Extensive list of changes from 3.0.1 is here

    April 11, 2004 - ET Pro 3.0.1 released!
    Check the download page for details. This release fixes all the known bugs reported in 3.0.0 and we are hoping this will be suitable for league play. The anticheat system has been updated and should no longer report false positives.

    April 4, 2004 - yahoo.com to be blocked from the forums
    Due to yahoo.com's incompetent abuse staff, all of yahoo.com will be blocked from the server. Read the details here.

    March 20, 2004 - ET Pro 3.0.0 released!
    Check the download page for details. The X-Cast Release Party was a huge success despite the technical problems, at one point peaking at nearly 500 listeners! The pickup game was a lot of fun to watch and everyone had a lot of fun on the new maps. ggs all!

    September 24, 2003
    Some german websites are spreading misinformation that the ET Pro website is infected with tftp.exe/msblast/saveblast trojans and worms. This is not true! If your antivirus/firewall software is reporting this, then it is broken.

    January 7, 2004
    Released version 2.0.7, which fixes a number of bugs with 2.0.5.

    October 5, 2003
    Released version 2.0.5, which fixes a number of bugs with 2.0.1.

    September 23, 2003
    Released version 2.0.1, which fixes a number of bugs with 2.0.0.

     

    What is it?
    ET Pro is a mod specifically targeted at competition play, with features specifically designed for administration of competition servers.

    ET Pro has been chosen as the official tournament mod for STA, TWL, CAL, Clanbase, and ESL.

    The official IRC channel for ET Pro is #etpro on irc.freenode.net

    The ET Pro development team would like to extend thanks to the following who contributed significantly to the development of 2.0.0, without their help ET Pro would not be where it is today!

    ]eVe[LT_Winters, Skrappa[DSA], and STA League for 'keeping the faith'
    The players of clan [BoD] and =EFG= for testing and valuable input
    Clan [FuN] for hosting ET Pro servers in the UK
    Lot-Blue, Lot-Warpath, and everyone at TWL who helped with testing and bug reports
    Clan |NE| for managing to always break stuff in astonishing ways
    ikkyo for help with 1337 shader tricks
    fretn for help with multiview
    zinx for fixing the fireteam4 shader
    digibob for being teh silleh
    Activision for supporting our ET mod development

     

    Changes
    Bug/Exploit Fixes
    • Ammopacks/medpacks no longer "bounce off" players if you are too close
    • Mounted tank browning/mg42 no longer fires low
    • K43/Garand unlimited grenade ammo exploit fixed
    • Spectating/demoplayback/multiview mg42/mortar viewpoints are much more accurate now
    • Battery mapscript - autospawn now works for west bunker captures
    • Compass now clips map icons correctly
    • Server no longer drops clients who haven't loaded completely on map_restart
    • Prone hitboxes fixed
    • Mine flags no longer block other mines from being spotted
      ...and many more...

      Optimizations
    • Corpses and items no longer eat bandwidth when disappearing
    • Unused code removed. server takes 1.3m less memory and less cpu

      Gameplay
    • Multiview from OSP
    • Wounded players now take 113 damage (6 shots) instead of 75 to force into limbo
    • Refs who have logged in via password may pass or cancel votes by voting yes or no on a vote

     

    For admins
    • Administrators may grant "semiadmin" access to give individuals limited rcon access without having to give full rcon access.
    • Custom configs for pub/competition settings, and per-map custom configs
    • Client cvar settings may be forced from the server
    • Endround intermission time is configurable
    • Rotating server banners are available
    • Per-weapon heavy weapon limits
      ...and much more...

     

    For matches
    • Server may be configured to start players at specific skill levels
    • The Skill system may be disabled entirely, for balanced competition play
    • STA, TWL, CAL, Clanbase, and ESL match configs built-in, no guessing if your server is set up correctly for a match!

     

    For players
    • "Stat saver" saves full XP,ranking,weaponstats,team/playerclass/weapon selection across disconnects
    • Multiview from OSP
    • Private messaging, including team-only private messages
    • Spectators may point at a player and +activate to spectate them directly
    • Player shoving. Shove those pesky door blockers / laggers / afk'ers out of the way.
  15. Cvars
    Commands
    Autoexec Files
    General Changes

    cvars

    cg_drawTime [0|1|2]

    Decides whether to draw the current local time beneath the FPS display. When set to 1, it will display 24 hour clock, when set to 2, it will display a 12 hour clock, with am/pm

    cg_drawTimeSeconds [0|1]

    When set to 1, will display the seconds as well on the time. Requires cg_drawTime set to either 1 or 2

    cg_hud

    The name of your current hud, which will be loaded upon startup

    cg_panzerhack [0|1]

    Put your SMG in weaponbank 2 (instead of bank 3) when you're a soldier with level 4 Heavy Weapons

    Default: 1

    cg_logConsole [bitmask]

    Log centerprints and/or banners to your console

    1
    Log centerprints
    2
    Log banners

    Default: 1

    cg_gun_fovscale [0|1]

    Scale the gun when you use different FOV

    Default: 1

    cg_weapaltReloads [0|1]

    Hitting altfire (usually right mouse button) when holding a weapon that doesn't have an alternative fire will reload the weapon

    Default: 0

    cg_drawRanks [0|1|2]

    When 1 the rank (for example "Private") will be shown in front of the name when you look at a player in your team. When 2 it will only show the short rank ("Pvt" for exmaple) and when 0 it won't show any rank.

    Default: 1

    cg_fireteamAlpha [0.0 - 1.0]

    Determines the level of transparency of the fireteam window

    Default: 0.6

    cg_lagometerAlpha [0.0 - 1.0]

    Determines the level of transparency of the lagometer

    Default: 1.0

    cg_chatAlpha [0.0 - 1.0]

    Determines the level of transparency of the chat texts at the bottom of your screen

    Default: 0.33

    cg_watermarkAlpha [0.0 - 1.0]

    Determines the level of transparency of the watermark, if the server has one. Note that the server might set a transparency themselves. In that case the watermark alpha will be the product of these transparency levels

    Default: 1.0

    cg_specAlpha [0.0 - 1.0]

    Determines the level of transparency of the SPECTATOR text

    Default: 1.0

    cg_dynoCounter [0|1]

    Displays a counter in your HUD that will countdown untill a dynamite on an objective explodes. This will not spam the chat/cpm

    1
    Visual
    2
    Textual

    Default: 1

    cg_maxTeamDynas [0-8]

    The number of dynamites of your own team that will be displayed in the counter

    Default: 4

    cg_maxEnemyDynas [0-8]

    The number of dynamites of your enemy that will be displayed in the counter

    Default: 4

    cg_drawClassIcons [bitmask]

    Changes Classtexts into ClassIcons

    1
    In crosshair names
    2
    In fireteam
    4
    On scoreboard

    Default: 7

    cg_drawCrosshairHP [0|1]

    Draw textual HP instead of the healthbar when aiming at someone

    Default: 0

    cg_autoSelectFTMembers [0|1]

    Toggles automatic selection of your fireteam members

    Default: 0

    cg_damageKick [0|1|2]

    Changes the way damage kick occurs (the screen shake when a player gets shot).

    0
    No damagekick.
    1
    Regular damagekick, variable shake, increases when player is low on health.
    2
    Simple damagekick, constant shake value.

    Default: 1

    cg_tracers [0|1|2]

    Enables/disables drawing the bullet tracers:

    0
    No tracers.
    1
    All tracers.
    2
    All but your own tracers.

    Default: 1

    cg_countryFlags [bitmask]

    Show the GeoIP country flags

    1
    On scoreboard
    2
    In crosshair names

    Default: 3

    cg_gibs [0|1]

    Toggles the display of gib models.

    Default: 1


    Commands

    m [partialname] [message]
    Send private message to all players matching the partial name
    mt [partialname] [message]
    Send private message to all players on your team that match the partial name
    loadhud
    used to load a custom hud from a .hud file contained in a pk3 file. Also able to "/loadhud ?" to show a list of available huds, "/loadhud blank" to load a blank hud, or "/loadhud" to load the default ET hud. When loading a hud, the default ET is loaded first, then the custom HUD overwrites any values specified. So if a HUD element isn't specifically disabled in a custom HUD, it will be in ET default position
    edithud
    Used to edit the hud in realtime. Can also be used to script a hud so that server admins don't have to package .hud files into pk3

    format: /edithud elementName [value1] [value2] . . . . [valueX]

    Current elementNames and (values) are as follows:

    • ammocount (x, y, scale)
    • chargebar (x, y, width)
    • compass (x, y, size)
    • upperright (y)
    • fireteam (x, y, width)
    • flagcov (x, y)
    • head (x, y, width, height)
    • healthbar (x, y, width)
    • healthtext (x, y, scale)
    • lagometer (x, y)
    • overheat (x, y, width, height)
    • skillbox1 (x, y, size)
    • skillbox2 (x, y, size)
    • skillbox3 (x, y, size)
    • skillpic1 (x, y, size)
    • skillpic2 (x, y, size)
    • skillpic3 (x, y, size)
    • skilltext1 (x, y, scale)
    • skilltext2 (x, y, scale)
    • skilltext3 (x, y, scale)
    • staminabar (x, y, width)
    • weaponcard (x, y, size)
    • xptext (x, y, scale)
    • cpmtext (x, y, scale)
    • chattext (x, y, scale)
    • votefttext (x, y)
    • livesleft (x, y)

     

    All items except skilltextX are part of the original ET hud. skillTextX is a textual representation of the xp levels, i.e. 0, 1, 2, 3, 4. The skill[box,pic,text] elements correspond as follows, 1 = class specific skills, 2 = battle sense, 3 = light weapons

    Default scale values, where used, is 25 in the default ET hud.

    upperright represents the spawn counter/game timer, clock, FPS normally displayed on the right side of the screen.

    (x,y) are based on a 640 x 480 scale, regardless of the actual screen resolution that ET is running. Therefore (0,0) is upper left, (640,480) is lower right and (320, 240) is crosshairs

    To disable an element entirely, set the first value to -1. Currently votefttext CANNOT be disabled

    dumphud
    Dumps the current hud settings to the console in format used to create a .hud file
    dropweapon
    Drops the player's primary weapon.
    sclogin [password]
    Logs the player into shoutcasting mode.
    sclogout
    Removes the player's own shoutcaster status.
    shoutcastlogin [password]
    Logs the player into shoutcasting mode.
    shoutcastlogout
    Removes the player's own shoutcaster status.
    timerSet [1-60]
    Sets enemy spawntimer (shown in red). You need to give the value for the timer. Not giving any value will disable the spawntimer.
    resetTimer
    Resets the enemy spawn timer to the value which was given when timerSet was called. This command will do nothing if timerSet hasn't been called before.
    lua_status
    Shows information about the scripts currently loaded by the Lua API engine.
    etpub_version
    Shows information about the running client and server version.

    Autoexec Files

    The etpub client now has the ability to automatically execute certain config (*.cfg) files upon certain events:

    autoexec_allies.cfg, autoexec_axis.cfg, autoexec_spectator.cfg

    Executed when you join a team (or become a spectator)

    autoexec_<mapname>.cfg, autoexec_default.cfg

    Executed when the map switches to <mapname>. autoexec_default.cfg is always executed after the autoexec_<mapname>.cfg file.

    autoexec_soldier.cfg, autoexec_medic.cfg, autoexec_engineer.cfg, autoexec_fieldops.cfg, autoexec_covertops.cfg

    Executed when you switch classes

    Please note that if any of these files do not exist they simply will not be executed, there will not be any error messages

    Also note that these filenames are casesensitive on linux


    General Changes

    • New etpub in-game menu for configuring the cg_drawTime cvars
    • Integrates many of Chruker's "Project: Bug Fix" fixes.
    • Support for the 'forcecvar' server command.
    • Uses etpub's player movement code, so client prediction will better match the server.
    • If ETPro's etpromapscripts are used, you won't see the message "You are near the Back Door" on battery unless you use it. (support for EF_FAKEBMODEL).
    • When playing dead, you don't see the text about being wonded and waiting for a medic.
    • On servers with the g_weapons flags 2 or 4, you won't hear the predicted 'click' sound when using syringe or pliers underwater.
    • '+lookdown' and '+lookup' commands are disabled to prevent scripted anti-recoil cheats.
  16.  

      • stats are not reset when a player changes teams
      • incorporated many of bani and rain's etpro weapon fixes that were published in the etpro forum.
      • used bani's self-headshot when prone fix published in the etpro forum.
      • used bani's oversize server command fix published in the etpro forum.
      • you can no longer steal a uniform from a corpse that has sunk into the world.
      • On limited lives servers running dual objective maps, people that join after the timelimit runs out no longer get unlimited lives.
      • XP shuffle now sorts players by the rate at which they have been gaining XP instead of the total amount of XP they have.
      • ref commands work in the server console.
      • shooting breakables (like windows) doesn't count for 'hits' anymore, but shooting wounded players now does.
      • players are no longer allowed to pick up weapons if they wouldn't be allowed to switch to that weapon in the limbo menu. (e.g. heavy weapon restrictions or the team_maxWEAPON cvars).
      • if the time has run out on a dual objective map on a limited lives server, the round will now end if one team runs out of lives even if the objective hasn't been completed.
      • On limited lives servers running dual objective maps, landmines can be diffused after the time runs out.
      • hitboxes are more accurate for several player states. (see g_hitboxes)
      • if a match is paused and nobody unpauses it, it will start back up again after match_timeoutlength seconds.
      • on non-limited lives servers, players will no longer have a skull next to their name after they switch teams.
      • teams are no longer locked when the warmup countdown starts.
      • added cp, cpmsay, cpm, chatclient, m, and priv console commands.
      • akimbo weapons can be reloaded if only one shot has been fired.
      • when wounded, viewlock should no longer lock on to non-medic teamates.
      • when following a teammate, you stop following them if they switch to the other team.
      • merged Chruker's bug fixes (Project: Bug Fix)
      • ignore and unignore client commands will now accept slot number or partial name match.
      • vsay* commands recognize the ignore list
      • clients are notified when you add/remove them from your ignore list
      • when ignoring another client their messages will be visible in the console (~), but not chat.
      • voting for Competition Settings (/callvote comp) makes the server try to "exec default_comp.cfg" instead of loading the built-in competition settings.
      • voting for Public Settings (/callvote pub) makes the server try to "exec default_pub.cfg" instead of loading the built-in pub settings.
      • voting for Next Map (/callvote nextmap) now loads the next map in the campaign instead of loading the next campaign.
      • added vote_allow_maprestart cvar to control the existing maprestart vote. etmain client will still show the button in the menu even if it is disabled though.
      • added Custom Obituaries.
  17. The settings file is a file that contains all the information about banners and about killingspree and multikill messages and sounds. See g_settings to see how you can enable this file.

    The settings file consists of four types of blocks (similar to shrubbot): [spree], [end], [kill] and [banner]. The [spree] blocks determine what should happen when someone has a killingspree. The [end] blocks determine what should happen when someone ends a killingspree and the [kill] blocks do the same for multikills. A [banner] block adds a banner to the server banner queue.

     

    A [spree] block has the following fields:

    [spree]
    number    = 5
    message   = [n] ^8is on a killing spree! (^35^8 kills)
    position  = chat
    display   = all
    sound     = sound/misc/killingspree.wav
    play      = all
    

    The "number" determines the amount of kills needed for "message" to be shown and "sound" to be played. After "position" you can add the location where the "messages" should be displayed. This can be chat, cpm (popup), cp (center), bp (banner) or print (console). "Display" can have the values "all" or "player". "All" means the "message" is broadcasted to all players on the server, and "player" means just to the player who is on the killingspree. "Play" can have the same values as "display" and the extra value "envi". This value means the "sound" will only be heared by players in the environment of the player who is on the killingspree.

     

    "Number" has to have a value. When two blocks have the same number, they both get executed at the same time. All other fields are optional ("position", "display" and "play" use default values then). [n] in the "message" will be replaced by the name of the player.

    When you set "number" to a negitive integer, you'll create a deathspree.

    A [end] block has the following fields:

    [end]
    number     = 5
    message    = [n]^8's killing spree (^3[k] kills^8) was cut short by ^7[a]^8.
    position   = chat
    display    = all
    sound      = sound/misc/end.wav
    play       = all
    tkmessage  = [n]^8's killing spree (^3[k] kills^8) was cut short by ^1TEAMMATE ^7[a]^8.
    tkposition = chat
    tkdisplay  = all
    tksound    = sound/misc/end.wav
    tkplay     = all
    skmessage  = [n]^8's killing spree (^3[k] kills^8) was cut short by ^1himself!
    skposition = chat
    skdisplay  = all
    sksound    = sound/misc/end.wav
    skplay     = all
    wkmessage  = [n]^8's killing spree (^3[k] kills^8) was cut short.
    wkposition = chat
    wkdisplay  = all
    wksound    = sound/misc/end.wav
    wkplay     = all
    

    The "number" determines the minimum amount of kills needed for "message" to be shown and "sound" to be played. After "position" you can add the location where the "messages" should be displayed. This can be chat, cpm (popup), cp (center), bp (banner) or print (console). "Display" can have the values "all" or "player". "All" means the "message" is broadcasted to all players on the server, and "player" means just to the player of which the killingspree is ended. "Play" can have the same values as "display" and the extra value "envi". This value means the "sound" will only be heared by players in the environment of the player of which the spree is ended.

     

    When a spree is ended, the server uses the [end] block which has the highest "number" which is less or equal to the amount of kills the player has. If the player is killed by an enemy, the normal fields are used. If the player is killed by a friend the tk fields are used. A selfkill means sk fields and a worldkill means wk fields.

    "Number" has to have a value. When two blocks have the same number, they both get executed at the same time. All other fields are optional ("position", "display" and "play" use default values then). [n] in the "message" will be replaced by the name of the player of which the spree gets ended. [k] will be replaced by the number of kills and [a] will be replaced by the name of the person who killed the player.

    When you set "number" to a negitive integer, you'll create the end of a deathspree. It has no use setting the tk, sk and wk fieds then, because a deathspree will never be ended that way.
    Note: [v] will be replaced by the victim who was killed by the player when a deathspree has ended.

    A [kill] block has the following fields:

    [kill]
    number     = 2
    message    = ^5Double Kill!
    position   = chat
    display    = player
    sound      = sound/misc/doublekill.wav
    play       = player
    

    The "number" determines the amount of kills needed for "message" to be shown and "sound" to be played. After "position" you can add the location where the "messages" should be displayed. This can be chat, cpm (popup), cp (center), bp (banner) or print (console). "Display" can have the values "all" or "player". "All" means the "message" is broadcasted to all players on the server, and "player" means just to the player who makes the multikill. "Play" can have the same values as "display" and the extra value "envi". This value means the "sound" will only be heared by players in the environment of the player who makes the multikill.

     

    "Number" has to have a value. When two blocks have the same number, they both get executed at the same time. All other fields are optional ("position", "display" and "play" use default values then). [n] in the "message" will be replaced by the name of the player.

    The time between two kills can be changed by changing g_multikillTime.

    A [banner] block has the following fields:

    [banner]
    message    = ^1Check out our banner!
    wait       = 30
    position   = bp
    

    The "message" is the actual message that is displayed to all the players on the server. The "wait" field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the "position" field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. "position" can have the values chat, cpm (popup), cp (center), bp (banner) or print (console).

     

    These are the limits on the settings file:

    Maximum number of sprees: 31
    Maximum number of ends: 31
    Maximum number of kills: 15
    Maximum number of banners: 31
    Maximum length of a banner: 255 characters
  18. shrubbot is an invention of Ryan Mannion. etpub tries to clone shubbot as accurately as possible, both in user interface and in the shrubbot configuration file (usually called "shrubbot.cfg").

    Below are the shrubbot commands that etpub currently supports and the corresponding flag to be used in the shrubbot config file to give permission to the command:

    The following flags are also supported:

    1
    cannot be vote kicked, vote muted, or complained against.
    2
    cannot be censored
    3
    Can run commands silently with /!COMMAND in the console
    4
    Can see Axis/Allies team chats as a spectator
    5
    can switch teams any time, regardless of balance
    6
    does not need to specify a reason for !kick or !ban
    7
    Can call a vote at any time (regardless of disabled voting or voting limitations)
    8
    does not need to specify a duration for a ban (defaults to PERMANENT)
    9
    Can do shrubbot commands via team and fireteam chats
    0
    is immune to g_inactivity and g_spectatorInactivity settings
    !
    is immune to all shrubbot commands (useful for server admins). NOTE: this flag must be specified explicitly the * flag does not grant it.
    @
    "incognito" flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. NOTE: this flag must be specified explicitly the * flag does not grant it.
    $
    Can do !admintest on other players
    ~
    Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat
    &
    Can rename himself regardless of g_maxNameChanges limit


    The following operators are supported in the flags field:

    *
    This means all all available flags are granted (except ! and @). Any flags that come after the * are negated. So for example:
    [level]
    level    = 5
    name     =
    flags    = *xU
    greeting =
    greeting_sound =
    
    would give level 5 admins all commands except !lol and !burn.
    -
    This subtracts the flags that follow it from the allowed flags. Example:
    [admin]
    name     = tjw
    guid     = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    level    = 5
    flags    = -bs
    greeting =
    greeting_sound =
    
    would give tjw all of the commands a level 5 admin has except !ban and !setlevel.
    NOTE: this operator is for admin flags only.
    +
    This is pretty useless since it is implied that any flags will be appended anyway unless they follow '-'. Therefore, the only use for this operator is for use after the '-' operator. Example:
    [admin]
    name     = tjw
    guid     = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    level    = 5
    flags    = -bs+U
    greeting =
    greeting_sound =
    
    would give tjw all of the commands a level 5 user has except !ban and !setlevel, but he also gets the !burn command which typical level 5 admins do not have.
    NOTE: this operator is for admin flags only.

    The configuration file itself is layed out in blocks serpated by blank lines. The three types of blocks supported are [level], [admin], and [ban]. If you ever need to edit the shrubbot.cfg file by hand, you need to run the !readconfig command (or restart etded) to load it.

    When setting up a new shrubbot.cfg file, simply set the g_shrubbot cvar to the name you want to use for the configuration file, then connect to the server with your et, and run the following command in the server console:

    !setlevel ETPlayer 5

    (where ETPlayer is your name). This will create the shrubbot.cfg file with default levels and your guid set to level 5 admin (the highest default level). You can then edit the level definitions in this file to match your preferences and run the !readconfig command to load them up.

     

    Starting with etpub 0.7.1, the new element [command] has been added to the shrubbot file format. This allows server admins to create their own shrubbot commands for executing server commands. Here are some examples:

    [command]
    command  = hello
    exec     = cp "hello world"
    desc     = Center Print the text "hello world" to all connected clients
    levels   = 0 1 2 3 4 5
    
    [command]
    command  = panzeroff
    exec     = set team_maxPanzers 0
    desc     = Turn off panzers
    levels   = 5
    
    [command]
    command  = havefun
    exec     = exec fun.cfg
    desc     = Load up some crazy settings/commands
    levels   = 5
    
    [command]
    command  = unlimitedpanzers
    exec     = cp "^1Unlimited panzers!"; set team_maxPanzers -1
    desc     = Everyone can have a panzerfaust!
    levels   = 5
    

    This would create 4 new commands, !hello, !panzeroff, !havefun, and !unlimitedpanzers. !hello can be run by any user with an admin level 0 through 5. !panzeroff, !havefun, and !unlimitedpanzers would be executable by only level 5 users. You must name each level in the space seperated level string (a higher level does not grant authority). As shown in !unlimitedpanzers, you can separate commands with a semicolon (;).

    Starting with etpub 0.8.1 [command] elements can use shortcut characters as described in g_shortcuts. Shortcuts will work with [command] elements regardless of the g_shortcuts settings. With etpub 0.9.1 you can use a new shortcut to replace it with the player ID of the calling player.

    Here are some samples:

    [command]
    command  = spec
    exec     = !putteam [n] s
    desc     = Become a spectator
    levels   = 0 1 2 3 4 5
    
    [command]
    command  = pizza
    exec     = cp "[n] ^7orders a big pizza for everyone except [d]^7!"
    desc     = Some message
    levels   = 3 4 5
    
    [command]
    command  = ms
    exec     = makeshoutcaster [i]
    desc     = Makes you a shoutcaster
    levels   = 5
    

    Also starting with etpub 0.8.1 [command] elements can use up to 9 parameter placeholders (from [1] to [9]) in the commands. For example, given the following definition:

    [command]
    command  = mynameis
    exec     = cp "[n]'s ^7real-life name is [1]^7!"
    desc     = Print real name
    levels   = 0 1 2 3 4 5
    

    When a user types the command like this:

    !mynameis bartholomew

    Will print out something like:

     

    [JJJJ]zuxx0r's real-life name is bartholomew

    Parameters that the user does not type in are left blank in your command. You can use the parameters in any order (so the user types the parameters in a different order than they are used).

    These commands will show up like any other shrubbot command in the output of !help and the !help command will also provide detailed info for the command using the 'desc' paramter (e.g. '!help hello')

    Starting with etpub 0.8.1 you can also add a greeting to [admin] and [level] blocks. This greeting will be displayed when a shrubbot admin connects to the server. Adding a greeting to a [level] block will show that greeting for every admin with that level, while adding a greeting to an [admin] block will only show the greeting when that particular admin connects. When both [level] and [admin] blocks contain a greeting, the [admin] greeting is used. When you type [n] in a greeting, it will be replaced by the name of the connecting admin. Example:

    [level]
    level    = 5
    name     = Admin
    flags    = *
    greeting = Level 5 admin [n] is on the floor
    greeting_sound =
    

    If TJW is the connecting admin, all players will see: "Level 5 admin TJW is on the floor".

    These are the limits on the shrubbot file:

    Maximum number of levels: 31 Maximum length of shrubbot level name: 35 (includes color codes) Maximum number of users with a set level: 32767 Maximum number of player bans: 1023 Maximum length of ban reason: 1023 Maximum number of admin-defined commands: 63 Maximum admin-defined command name length: 63 characters Maximum admin-defined command length (executable part): 1023 characters Maximum admin-defined command length (help string): 1023 characters Maximum number of warnings: 1023

     


    shrubbot1.PNG

    shrubbot2.PNG

    shrubbot3.PNG

    shrubbot4.PNG

  19. The following server console commands (for use in the server console or through rcon) commands have been added in etpub:


    bot [arguments]

    Omni-bot command. See the omni-bot 0.52 documentation for full details.

    chat [message]

    Display a message to all users in the chat area

    chatclient [slot#|name] [message]

    Display a message to a specific user in the chat area. A partial name match can be used, and in this case the message will be sent to all users that match the partial name

    clearxp

    Clears the XP of all users

    bp [message]

    Display a message to all users in the top of the screen (Requires etpub client >= 20051230)

    cp [message]

    Display a message to all users in the center of the screen

    cpmsay [message]

    Display a message to all users in the popup message area of the screen

    forcecvar [cvar] [value]

    Forces a client cvar to have a certain value for all clients

    krinfo

    List KillRating info by team, sorted.

    m [slot#|name] [message]

    Send a private message to a player. A partial name match can be used, and in this case the private message will be sent to all users that match the partial name

    playsound [slot#|name] [filename]

    Plays the specified sound file. The slot number/player name parameter is optional. If the slot number or playername is specified, only that player hears the sound, otherwise all players hear the sound. g_tyranny must be enabled in order to play a sound to a specific player.

    playsound_env [slot#|name] [filename]

    Plays the specified sound file, but the sound can be heard by everyone near the specified player. In contrast to playsound, both parameters are required for playsound_env. If playsound_env is used with one parameter (only the the filename is specified), then it is treated exactly as playsound [filename]. The further away nearby players are, the less they hear the sound. g_tyranny must be enabled in order to use this command.

    prinfo

    List PlayerRating info by team, sorted.

    prreseteverything

    Completely reset the PlayerRating system

    prresetplayers

    Reset only the player ratings part of the PlayerRating system

    ratingsinfo

    As of 0.7.1 this command has been replaced by the winprob command.

    readsettings

    Reloads the g_settings file. This is done by the server automatically, but if you decide to change the banners or sprees/multikills ingame, you can load the new settings with this command.

    readxp

    (Requires that g_tyranny be enabled) Loads the XPSave file from disk. There is no reason to call this function, etpub loads the XPSave file automatically as needed.

    winprob

    Prints information about the win probability model

    writexp

    Commits the in-memory XPSave info to disk. Normally, etpub does this automatically every time a map ends or the server is shut down.

    clearspreerecords

    Clears all the spreerecords stored in XPSave file (doesn't work during warmup or intermission)

    lua_status

    Shows information about the scripts currently loaded by the Lua API engine.

    makeshoutcaster [slot#|name]
    makeshoutcast [slot#|name]
    makesc [slot#|name]

    Promotes the player to be a shoutcaster. Shoutcasters can see floating player names, dynamite counter, truck and tank health and all mines.

    removeshoutcaster [slot#|name]
    removeshoutcast [slot#|name]
    removesc [slot#|name]

    Removes players shoutcaster status.

    etpub_version

    Shows information about the running etpub server version.

    Additionally, all of the shrubbot commands can be used on the server console as well, the leading "!" is optional.

  20. g_friendlyFireOpts [bitmask]

    Allows greater control over friendly fire events.

    Available options are:

    1
    Landmines ALWAYS damage teammates regardless of g_friendlyfire setting
    2
    Allow 'grenade boosting' when friendly fire is off
    4
    Non-engineer players do not trigger landmines on their own team

    Default is 0

    team_maxMedics [string]
    team_maxEngineers [string]
    team_maxFieldOps [string]
    team_maxCovertOps [string]

    Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up

    Starting with etpub 0.8.1, you can use a number such as "20%-" for this setting, in which case partial values will be rounded down

    Example:set team_maxMedics "5" This will limit each team to 5 medics, regardless of how many players are on the team

    Example:set team_maxMedics "15%"This will limit each team to having only 15% of their players as medics, and a team with few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players on the team.

    Example:set team_maxMedics "15%-"This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players on the team.

    Set this to -1 to disable limits

    Default is -1

    g_staminaRecharge [float]

    Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin. Setting this value is recommended only if you have etpub client versions 20050927 or later.

    Default is 1.0

    g_shortcuts [0|1]

    Turns on the replacement of the following keys in say messages

    [a]
    last player who gave you ammo
    [d]
    last player who killed you
    [g]
    the last 8 characters of your GUID
    [h]
    last player who gave you health
    [k]
    last player you killed
    [l]
    your location (letter,number)
    [n]
    your name
    [r]
    last player who revived you
    [p]
    last player you looked at
    health remaining
    [w] name of current weapon [t] ammo for current weapon

     

    Default is 0

    g_mineid [0|1]

    Turns on identification of your teammates landmines. (Requires etpub client 20051230 or later)

    Default is 0

    g_dropMsg [string]

    Message to add to the drop screen when a client is kicked or banned.

    Default is ""

    g_inactivity [integer]

    As of 0.7.1, etpub changes the behavior of this etmain cvar:

    g_inactivity is the number of milliseconds of player inactivity before the player is made a spectator. The player must be on a non-spectator team for this to happen, otherwise: If the player was already a spectator when the inactivity limit hits, then: 1) If the server is full (no more public slots left) then the player is kicked; 2) If the server is not full, then the player is allowed to remain as spectator for 60 more seconds at a time until the player is not inactive anymore or the server becomes full.

    A value of 0 means no time limit

    Default is 0

    g_spectatorInactivity [integer]

    As of 0.7.1, etpub changes the behavior of this etmain cvar:

    g_spectatorInactivity kicks only when the server is full.

    A value of 0 means no time limit

    Default is 0

    g_gametype [integer]

    As of 0.7.1, etpub added the game type 6 (map voting). Please see Map Voting

    g_etpub_stats_id [string]

    Unique ID for identifying the server to stats.etpub.org for player statistics posts. You must obtain an ID for your server by posting a request in http://etpub.org. DO NOT SET A RANDOM VALUE FOR THIS FIELD, ALWAYS REQUEST THAT AN ID BE ASSIGNED TO YOUR SERVER

    Default is ""

    g_tactics [0|1]

    Enable/disable tactics mode (more on this later). A value of 0 will disable g_tactics mode.

    Default is 0

    g_floodprotect [0|1]

    Enable/disable etpub flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine's sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.

    Default is 1

    g_floodthreshold [integer]

    The number of messages per second before ignoring the client's messages. Only in effect when g_floodprotect is turned on.

    Default is 6

    g_floodWait [integer]

    The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren't allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.

    Default is 1000

    g_mapVoteFlags [bitmask]

    Ways to change how map voting works
    Only valid when g_gametype is 6 (see Map Voting)

    Available options are:

    1 Changes the tie breaker so that the map not played in the longest wins 2 Intermission doesn't end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system) 4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one 8 Don't randomize the maps, so they will always appear in the same order 16 A passed nextmap vote (when g_gametype is 6) will start the intermission and lets players vote which map should be played next. NOTE: this makes one of the two teams be displayed as winner

    Default is 0

    g_maxMapsVotedFor [integer]

    How many maps are presented to users for voting upon during intermission
    Only valid when g_gametype is 6 (see Map Voting)

    Default is 6

    g_minMapAge [integer]

    How long a map is ineligible for voting, after it is played
    Only valid when g_gametype is 6 (see Map Voting)

    Default is 3

    g_resetXPMapCount [integer]

    How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored. Similarly, if g_resetXPMapCount is set to 0, it is the same as setting g_XPSave flag 4
    Only valid when g_gametype is 6 (see Map Voting)

    Default is 0

    g_excludedMaps [string]

    Used to exclude map that would otherwise be listed in the map voting list. The format is ":map1:map2:map3:", where mapX is the .bsp name. Note that each mapname must be fully surrounded by ":" otherwise the map will not be excluded.
    Only valid when g_gametype is 6 (see Map Voting)

    Default is ""

    g_minConnectLevel [integer]

    The minimum shrubbot adminlevel required for players to be able to connect.

    NOTE: this only works for positive levels, any value <= 0 will allow everyone to connect

    NOTE: Bots won't be enable to connect either.

    Default is 0

    omnibot_enable [0|1]

    When set to 1, OmniBot functionality is enabled. You still need to have OmniBots installed correctly in order for OmniBots to work.

    Default is 1

    omnibot_path [string]

    The path where the OmniBot dll/so file is installed. If you installed omni-bot correctly, then you do not need to modify this cvar. Leaving this cvar blank will search for the OmniBot file in the default locations.

    Default is ""

    g_bot_maxXP [integer]

    Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit.

    Set this to -1 to disable this feature

    Default is -1

    g_bot_minPlayers [integer]

    Ensures that there are at least g_bot_minPlayers playing (non-spec) in your server at any one time. If there are not enough human players playing, bots are added as needed. Once there are g_bot_minPlayers human players playing on the server there will be no bots.

    NOTES:

    Bots will only be added/removed during normal gameplay, never during the intermission You must have bots enabled and working on your server for this setting to work Do not set g_bot_minPlayers to the maximum number of players your server can have. If you do so, no one will be able to connect to your server since it will always be full. g_bot_minPlayers works by modifying the minbots and maxbots omni-bot values. If you activate g_bot_minPlayers, your current minbots/maxbots values will be overwritten.

    Set this to -1 to disable this feature

    Default is -1

    omnibot_flags [bitmask]

    This CVAR replaces the old g_bot_flags CVAR

    Customizes bot management/behavior

    Available options are:

    1 Disables XPSave for bots 2 Bots cannot mount tanks 4 Bots cannot mount emplaced guns 8 Don't track bot count in omnibot_playing cvar 65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !) 131072 Bots cannot be !kicked or !banned 262144 Disable shrubbot greeting for bots

    Default is 0

    g_unevenTeamDiff [integer]

    If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. See also g_unevenTeamFreq

    Set to 0 to disable this feature

    Default is 0

    g_unevenTeamFreq [integer]

    How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.

    See also g_unevenTeamDiff

    Default is 30

    g_greetingPos [integer]

    Location where the shrubbot greetings are displayed.

    0 Chat area 1 Center of screen 2 Left notification area 3 Top of the screen (requires etpub_client >= 20051230) 4 Console only

    Default is 0

    g_noVoteTime [integer]

    The minimum time (in seconds) that players must wait between two votes.

    Default is 0

    g_spreeOptions [bitmask]

    A few options to control the display of killingsprees. Note that the flags 1, 2 and 4 are just made for fast enabling / disabling and still require a g_settings file.

    1 Enable killingsprees ([spree] blocks) 2 Enable killingspree ends ([end] blocks) 4 Enable multikills ([kill] blocks) 8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map's longest killing spree will be printed every two minutes 16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown 32 /kill will end a spree 64 Teamswitching will end a spree 128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -> multikill -> megakill -> etc. flooding 256 Killing bots doesn't count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) 512 Display the map and overall spree record when entering intmission 1024 Summary: don't enable this flag if you don't have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t
    Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don't have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use !spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn't matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won't do much harm anyway (your server won't explode) 2048 Enable revivesprees ([revive] blocks)

    Default is 0

    g_multikillTime [integer]

    The time (in milliseconds) in which two kills should be made in order to count them as multikills.

    Default is 1000

    g_settings [filename]

    This should be set to the name of your settings.cfg file if you want to enable killingsprees, multikills or banners. See settings documentation for more information about this file.

    Example:

    g_settings "settings.cfg"

     

    Default is "" (Disabled)

    g_spoofOptions [bitmask]

    In etpub 0.8.1 some protection is build in which tries to limit IP and GUID spoofing / stealing. By default this protection kicks players that change their GUID or IP during gameplay.

    Note: this cvar has been changed a lot in etpub 0.9.1. All the kicks of innocent players should be gone now.

    Do NOT change this CVAR unless you encounter problems!

    1 Kick for GUIDspoofing. 2 Kick for IPspoofing. 4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work) 8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work) 16 Don't use the stored GUID when etpub 0.7.x didn't use it either. (This option is a higher security risk, but copies the 0.7.x behaviour of handling GUIDS) 32 Don't use the stored IP when etpub 0.7.x didn't use it either. (This option is a higher security risk, but copies the 0.7.x behaviour of handling IPS)

    Note: settings this CVAR to 48 causes the exact same behaviour as ETPub 0.7.x

    Default is 3 (Flag 1 + 2)

    g_warningOptions [bitmask]

    This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system

    1 Link stored warnings to the guid of a player 2 Link stored warnings to the ip of the player 4 Remove the oldest warning when the total maximum ammount of warnings is reached 8 Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings 16 Allow clients to see their own warnings with the /warnings command

    Default is 0

    g_maxWarnings [integer]

    The ammount of warnings that can be stored for 1 player

    Default is 3

    g_warningDecay [integer]

    The time in hours that a warning will be stored

    Default is 24

    g_antilagDelay [integer]

    Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk

    Default is 0

    g_fixedphysics [0|1]

    Creates a smoother movement when enabled

    Default is 0

    g_fixedphysicsfps [integer]

    Makes the fixedphysics act like all the clients have the same framerate, so that players with "magic" quake engine framerates don't have an unfair advantage. This CVAR must be between 60 and 333.

    Note: this doesn't actually change the framerate of clients, so clients can keep their own framerate

    Default is 125

    g_maxNameChanges [integer]

    Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second.

    Set to -1 to disable.

    Default is 3

    g_disableComplaints [bitmask]

    Disable teamkill complaints for some weapons.

    1 Landmines 2 Artillery and airstrikes 4 Mortar 8 Dynamite

    Default is 0

    g_medicSelfhealTime [integer]

    The time in milliseconds that a medic cannot heal himself after being hit

    Default is 0

    g_maxPanzerSuicides [integer]

    When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.

    The amount of suicides is reset every map.

    Set to -1 to disable, -2 to always enable (no normal panzers anymore)

    Default is -1

    g_panzerPackDistance [integer]

    Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled

    Set to 0 to use default (etmain)

    Default is 0

    g_watermark [string]

    Set a watermark that will be displayed to all clients. This requires an ETPubClient >= 20070213. The watermark must be put in a folder named "watermark" and then this whole folder needs to be zipped into a .pk3 file

    Default is "" (Disabled)

    g_watermarkFadeAfter [integer]

    When g_watermark is set, the watermark will fade out after [integer] number of seconds

    Default is 0 (No Fade)

    g_watermarkFadeTime [integer]

    When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds

    Default is 0

    g_voteResultsMinLevel [integer]

    Show results of votes per team to everyone with at least this shrubbot level. Set to -1 to disable. Referees can always see the results when this CVAR is set greater than 0

    Default is -1

    g_minCommandWaitTime [integer]

    Time you have to wait between using 2 shrubbot commands in milliseconds

    Default is 0

    g_antiwarp [integer]

    Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent

    Default is 1

    g_healthSpeedStart [float] g_healthSpeedBottom [float]

    Make people walk/run slower when they are damaged. g_healtSpeedStart is the percentage of the maxhealth of a player when the slowdowns starts. The slowdown is linear and holds until reaching 0 health. g_healthSpeedBottom is the minimum percentage of g_speed that every player will have.

    Example

    set g_speed 320
    set g_healthSpeedStart 64
    set g_healthSpeedBottom 50
    A player with a maxhealth of 100 (level 0 non medic) will have a speed of 320 until he reaches a health of 64. From that moment his health will be decreasing linear if he gets hurt. This linear decrement will continue untill he reaches a health of 1. At that moment his speed will be 50% of g_speed (so 160). At the moment he has 32 health, his speed will be 75% of g_speed (so 240). A speed decrement is not permanent: when he gets healed his speed will increase lineair or even be 320 again when he has 64 hp or more.

     

    Set g_healthSpeedStart to 0 to disable this feature.
    Note that settings this cvars higher than 100 or below 0 will not work.
    Also note that g_healthSpeedBottom should not be set to low to keep the game fair. g_healthspreeStart should not be set above �80 since players with level 3 battle sense and medics would be slowed down at start then

    Defaults are
    g_healthSpeedStart 0.0
    g_healthSpeedBottom 50.0
    (Disabled)

    g_damageBonus [float]

    The percentage of extra damage that is done when one of the g_damageBonusOpts conditions is reached or when there are g_damageBonusNearMedics near the attacker or when there are g_damageBonusTotalMedics. When one positive and one negative condition is reached, the damage will just be default. When two negative or two positive conditions occur, the damage will change only once

    Default is 20.0 (Max is 100.0)

    g_damageBonusOpts [bitflag]

    Some settings that change the behaviour of g_damageBonus

    1 Do less damage when there is no engi on the attackers team 2 Do extra damage when the attacker is no engi and is near an engi 4 When two or more negative/positive conditions occur, change the damage multiple times (cumulative) 8 Do the same checks at the target (when the target has no engi, the attacker does more damage, etc) 16 Print a lot of debug info (best used on listening servers)

    Note: this CVAR should have different values for different maps, since not every map requires an engi for example

    Default is 0

    g_damageBonusNearMedics [integer]

    When the attacker is a medic and is near at least this number of other medics, his damage is reduced by g_damageBonus percent

    Default is 0 (Disabled) (Recommended value when used, is 1 or 2)

    g_damageBonusTotalMedics [integer]

    When the attacker is a medic and there are at least this number of medics in the team, his damage is reduced by g_damageBonus percent

    Default is 0 (Disabled) (This field does NOT accept percentage values at this point)

    g_panzerwar [0|1]

    Enables/Disables Panzerwar. 1 is enabled, 0 is disabled

    Default is 0

    g_sniperwar [0|1]

    Enables/Disables Sniperwar. 1 is enabled, 0 is disabled

    Default is 0

    g_riflewar [0|1]

    Enables/Disables Riflewar. 1 is enabled, 0 is disabled

    Default is 0

    g_customVoiceChats [0|1]

    Sets the ability to use custom voice chats example: vsay hi Hey, how are you doing will write on the screen Hey, how are you doing, and also plays the voicechat 'hi"

    Note: this requires ETPub client > 20070825

    Default is 1

    g_countryFlags [0|1]

    Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard.

    Players can enable/disable it with cg_countryFlags (default 1).

    Note: this requires ETPub client > 20080505. Also, you will need the GeoIP.dat file in your server's etpub folder. You should read and accept the license of the GeoIP.dat database!

    Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt.
    Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz.

    Default is 1

    g_noSkillUpgrades [integer]

    When set to 1, disables player skill upgrades.

    Default is 0

    g_chargeType [0|1|2]

    Changes the way the charge bar works. Using g_slashKill will take precedence over this setting

    0 Old ETPub behaviour. 1 Does not reset the charge bar at respawn. 2 ETPro behaviour. Each class has its own charge bar, which fill up independently.

    Default is 2

    g_flushItems [0|1]

    Evens the dropped items out with the surface.

    Default is 1

    lua_modules [string]

    List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod's directory, and can optionally be placed inside pk3 archieves.

    We are aiming for compatibility with ETPro's Lua Mod API

    Default is ""

    lua_allowedModules [string]

    List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).

    Default is ""

    g_maxConnsPerIP [integer]

    Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.

    Default is 4

    shoutcastPassword [string]

    Enables shoutcaster status on the server.

    NOTE: Shoutcaster status is only available with installed etpub client > 20090112.

    Default is "none"

    g_headshot [integer]

    This is a bitflag cvar that supports the following values:

    1 Headshots only 2 Instagib damage (controlled by g_instagibDamage)

    Default is 0

    g_instagibDamage [integer]

    Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).

    Default is 400

    g_inactivityOptions [integer]

    This is a bitflag cvar that supports the following values:

    1 Don't drop shoutcasters 2 Don't drop spectators when in following mode 4 ETmain inactivity behavior (don't wait for a full server) 8 Shrubbot flag '0' admins will be moved to spectators due to team inactivity

    Default is 3

    g_ettvFlags [integer]

    This is a bitflag cvar that supports the following values:

    1 Prevent ettv slaves from being callvote kicked 2 Grant shoutcaster status to ettv slaves

    Default is 3

    g_firstBloodMsg [string]

    Displays the first kill of the round. [a] will be replaced by the name of the attacker and [v] will be replaced by the name of the victim.

    Note: To disable this message set this cvar to "".

    Default is "^7[a] ^7drew ^1FIRST BLOOD ^7from [v]"

    g_firstBloodMsgPos [integer]

    Location where the first blood message should be displayed. This can be 0 (chat area), 1 (center area), 2 (popup area), 3 (banner area) or 4 (console only).

    Default is 2

    g_lastBloodMsg [string]

    Displays the last kill of the round in intermission. [a] will be replaced by the name of the attacker.

    Note: To disable this message set this cvar to "".

    Default is "^8And the final kill of this round goes to [a]^8!"

    g_mode [integer]

    This is a bitflag cvar that supports the following values:

    1 Players will spawn instantly 2 Each class receives adrenaline 4 No damage on players 8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)

     

    Default is 0


    Map Voting

    With the release of etpub 0.7.1, a new g_gametype of 6 is introduced. This gametype allows, when used in conjunction with an etpub_client > 20060310, for the players to decide on the map that is played next. When g_gametype is set to 6, and the client is using the appropriate client, a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results

    The following cvars control how map voting operates

    g_mapVoteFlags g_maxMapsVotedFor g_minMapAge g_resetXPMapCount Miscellaneous notes about mapvoting: Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default "nextmap" cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format.
    set d1 "set g_gametype 6 ; map oasis ; set nextmap vstr d2"
    set d2 "set g_gametype 6 ; map battery ; set nextmap vstr d3"
    set d3 "set g_gametype 6 ; map goldrush ; set nextmap vstr d1"
    vstr d1

    This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc

    Statistics / Rankings Terms

    There are several settings in ETPub that attempt to determine how "good" a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:

    Kill Rating

    How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter's kill rating more than killing players with a low kill rating.

    Player Rating

    This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.

    Win Probability

    The probability that a team will win a map (based on the players' player rating, team size, and the map).

    These statistics are gathered by etpub and the data is saved to local files on disk.

    The etpub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen at: http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf

    If you cannot find the document at the above location, please visit http://etpub.org

  21. g_truePing [0|1]

    Allows players to see the true amount of time it takes until their actions are processed on the server. Pings will show around 50 ms higher than normal, but it's more accurate. Shows in the scoreboard.

    Default is 0

    g_dropObj [integer]

    Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.

    The parts are dropped by pressing the +activate key (usually bound to F) when there's nothing else around to be activated.

    Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don't want to set this very high.

    Starting in 0.4.4 players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife. This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.

    Default is 0.

    g_doubleJumpHeight [float]

    Adjusts the height of the second jump in a double jump. This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump. This setting has no effect if double jump is disabled in g_misc.

    The default value of 1.4 matches shrub's double jump.

    skill_soldier [string]
    skill_medic [string]
    skill_engineer [string]
    skill_fieldops [string]
    skill_covertops [string]
    skill_battlesense [string]
    skill_lightweapons [string]

    These variables allow customization of the experience points necessary to go up in ranks. These settings consist of four space-separated integers indicating the number of XP required to go up a rank. A string such as "3 10 10 10" indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the players has 10 points. If, for example, you want to grant akimbo pistols upon the first kill, you would set skill_lightweapons to "3 3 3 3". The default for each of these variables is "20 50 90 140". You can also grant levels upon connection byt using a value like "0 0 20 100". This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.

    g_serverInfo [bitmask]

    Use this cvar to change the behaviour of the 'serverinfo' string. This string is printed in response to the 'getstatus' primative command used by game browsers. This is a bitflag cvar that currently accepts the following flags:

    1
    Display player team information using the 'P' cvar in the server info string. (etpro and etmain 2.60 behaviour)
    2
    Display player team information using the 'Players_Axis' and 'Players_Allies' cvars in the server info string. (etmain < 2.60 behaviour)
    4
    Display the 'campaign_maps' cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.
    8
    Displays the 'C' CVAR in the server info string. This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of "xx,yy". Only works if you have g_gametype set to 4.
    16
    Starting with 0.5.1, the class charge times will not be present in the server info string unless this flag is set. They were removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.
    32
    Send KR (KillRating) instead of XP in SERVERINFO string. This is overriden by flag 64.
    64
    Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.

    NOTE: this cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded.

    NOTE: the serverInfo string has a fixed length of 1024 characters. This space is shared with any cvar you create on your server with the 'sets' command. If you use up too much space with 'sets', your server will fail to start. It will print the message "Info string length exceeded" if you don't have enough space left in your serverinfo string to handle the g_serverInfo flags you've selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.

    Default is 1.

    g_killRating [bitmask]

    When not set to 0 etpub will track a player's killing ability using an ELO type statistic similar to chess. Each kill will increase a player's kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points. Kill rating also takes into account the weapon used (less for arty, more for knife).

    Here are the bitflag options:

    1
    Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.
    2
    Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.
    4
    Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.

    NOTE: in 0.5.x there was a 4 flag that allowed killRating to be used for shuffle. This has been deprecated. This is now controlled through the g_shuffle_rating cvar.

    See also g_ATB_rating.

    See also g_shuffle_rating.

    Default is 3.

    g_playerRating [bitmask]

    When not set to 0 etpub will track a player's ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player's rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).

    Here are the bitflag options:

    1
    Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.
    2
    Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.
    4
    Put player rating on the scoreboard instead of the XP. This setting will likely go away when a new version of the etpub client has this built-in
    8
    Print out extra info at the end of a round that can be used to further refine the playerrating model.
    16
    The same as flag 8 except a lot more info is output
    32
    Track player rating changes on a per-skill basis

    See also g_ATB_rating.

    See also g_shuffle_rating.

    See also g_teamForceBalance_playerrating.

    Default is 3.

    g_playerRating_mapPad [integer]

    On an etpub installation with little statistics history, !howfair will not print out very accurate data. g_playerRating_mapPad is a cvar that attempts to stabilize early !howfair results by adding a number of fake wins to each team. If you set it to 50, it starts with Axis = 50, Allies = 50 wins. This yields a map rating of 50% for both teams on that map. For every 2 real games played, 1 map pad value is ignored. So after 100 games, map pad is ignored (replaced with real games).

    The higher map pad, the longer the values will stay near 50-50.

    Default is 50

    g_playerRating_minplayers [integer]

    The minimum number of players that must participate in a map in order for it to count towards each player's player rating.

    Default is 8 (e.g. 4v4)

    g_teamForceBalance_playerrating [0..100]

    Set to 0 to disable. If this setting is enabled, it overrides g_teamForceBalance. If g_teamForceBalance_playerrating is non-zero, etpub will not allow players to join a team whose chances of winning are already above g_teamForceBalance_playerrating. The winning chance is calculated using 3 things: the average player rating of the team, the number of players on each team, and how often each team wins the current map (e.g. Allies usually win tc_base). If the team being joined rates too highly, a message will tell the player to join the other team.

    Important Notes:
    First of all, g_teamForceBalance_playerrating WILL allow unbalanced numbers to offset map or team difficulty. If the Axis has VERY good players, it will allow the Allies to have a few more players than Axis, given a map that is equally difficult for both sides to win. Also, given teams equal in skill, g_teamForceBalance_playerrating will force Allies to have a large team if the map is almost always won by Axis.

    Because g_teamForceBalance_playerrating uses info tracked over time, it may be best to run through your cycle or campaign a few times without it before turning it on, so that it can learn how good the players are, and how hard the maps are.

    If you want an idea why it's working a certain way, use the !listteams command server console (or game). This will show you how many points each team is predicted to win. If a team is going to win less than 4 points, it's too good. The other information shows you the breakdown of how the points are calculated.

    Ratings       Win Prob       Win Points
    ---------------------------------------------
    Allies          0.65            5
    Axis            0.35           10
    
    The above says that Axis has a 35% chance of winning based on the players and map. It takes into account the number of players per team also. The points are calculated as 16*(1 - win prob). So there you have it.

    Remember, g_teamForceBalance_playerrating is contantly adapting, so if it seems dumb at first, give it some time to adapt to your server. Maybe don't turn it on for the first week.

     

    See also !listteams.

    See also g_ATB.

    Recommended Setting when used: 60

    Default is 0.

    g_stats [integer]

    This is a bitflag cvar used to control the way statistics are handled. The following flags are supported:

    1
    When shooting a corpse to gib, do not count it as a hit.
    2
    When shooting a corpse to gib, do not count it as a shot.

    Set this to 3 to use the behaviour of etmain and shrubet.

    Default is 0

    g_tyranny [0|1]

    This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.

    Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.

    g_tyranny must also be enabled in order to specify a client in using the 'playsound' server command.

    'g_tyranny' and its value appear in the serverInfo string to serve as a warning for perspective players.

    NOTE: If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting

    set g_tyranny 1 
    in the .cfg file that is exec'ed on server start. If you try to change this on a running server, you will get the message
    g_tyranny is read only.

     

    Default is 0

    g_mapScriptDirectory [string]

    Similar to ETPro's b_mapscriptsdirectory. Set it to the name of a directory in your fs_path that contains custom map scripts.

    For example you can copy the 'etpromapscripts' directory from the ETPro distribution to your 'etpub' directory and add:

    set g_mapScriptDirectory "etpromapscripts"
    to your cfg.

     

    NOTE: It is strongly recommended that you use the map scripts distributed with etpub since these updated scripts fix very important bugs in some of the original map scripts.

    Setting g_mapScriptDirectory to "" disables any use of map .script files.

    Default is ""

    g_campaignFile [string]

    Similar to ETPro's b_campaignFile. If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored.

    This is useful for making custom campaigns since you don't need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. Such information includes:

    • will not display in the VOTE -> MAP list
    • map locations will not draw on the map of Europe.
    • campaign description will not draw in the right panel
    • total number of maps and current maps order in the campaign will not be shown in the intermission screens.

     

    Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client's VOTE -> MAP menu. If a vote for one of them passes, nothing will happen.

    Setting this to "" disables it.

    Default is ""

    vote_allow_surrender [1|0]
    vote_allow_nextcampaign [1|0]
    vote_allow_restartcampaign [1|0]
    vote_allow_poll [1|0]
    vote_allow_maprestart [1|0]
    vote_allow_shufflenorestart [1|0]
    vote_allow_cointoss [1|0]
    vote_allow_putspec [1|0]
    (allow players to vote other player into spec)

    Cvars that restrict the rights of players to use the respective /callvote command.

    Default is 1 (allowed)

    g_fear [integer]

    If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR. Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.

    As of 0.7.2, g_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.

    In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.

    Set this to 0 to disable this behaviour.

    Default is 2000 (2 seconds)

    g_obituary [integer]

    This cvar controls how player Obituaries are handled. Obituarys are the messages normally printed in the cpm space with a skull next to them to notify all players of another player's death.

    Available options are:

    0
    Obituaries are disabled.
    1
    All Obituaries will ALWAYS be handled by the client with the EV_OBITUARY event. Since the etmain client does not know about some etpub MODs (e.g. MOD_GOOMBA) the default message will be printed for those deaths.
    2
    Only those Obituaries that the etmain client knows how to handle will be handled by the client. If someone is killed by a MOD that the etmain client doesn't know about, the Obituary is generated by the server.
    3
    All Obituaries are handled by the server and the EV_OBITUARY event is never sent to the client. This results in "Instant Obituaries". This comes at the cost of increased network bandwidth and absence of the skull icon in the obituaries. (when using this option, you can use Custom Obituaries starting with 0.6.1)

     

    See also g_logOptions.

    Default is 2

    g_minAirstrikeTime [integer]

    The time (in seconds) that must elapse between airstrikes PER TEAM.

    Default is 10

    g_minArtyTime [integer]

    The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get "Insuffient fire support" message.

    Default is 10

    g_throwableKnives [integer]

    Number of knives player starts with. Set to zero to disable. Player throws a knife with the /throwknife command. Use the /knives command to see how many knives you have left.

    Requires etpub_client >= 20050927 or /weapons/knife.weap in a pk3 file downloaded to the client

    Default is 0

    g_maxKnives [integer]

    Maximum number of knives a player can pick up

    Default it 5

    g_knifeDamage [integer]

    Maximum amount of damage a thrown knife will cause to enemy. Actual amount of damage is random.

    Default is 35

    g_throwKnifeWait [integer]

    How many seconds a player must wait between knife throws.

    As of 0.7.2, the minimum value for this setting is 0.2 seconds. This is to prevent an exploit where players can bind the mousewheel to /throwknife so they can throw many knives within a very short time.

    Default is 2

    g_constructibleXPSharing [1|0]

    When multiple engineers help build a constructible, each gets his share of XP once the constructible is build. The share of gained XP is proportional to how much the engineer built.

    Default is 0

    g_asblock [integer]

    Airstrike blocking.

    Available options are:

    1
    Make an announcement whenever an airstrike is blocked.
    2
    A player may easily block an airstrike by crouching, standing, or proning over the enemy's canister to block the airstrike.
    4
    Reserved.
    8
    Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.
    16
    Disables teammates blocking airstrikes.
    32
    Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.

     

    Default is 0

    g_partyPanzersEnabled [0|1]

    Set to 1 to enable party panzers.

    Default is 0

    g_partyPanzersPattern [string]

    The pattern of the drawn panzers. This is a string of "bits" that represents where the panzers shots are aimed. The default value of "10001,01010,00100,01010,10001" means there are five rows of panzers fired (rows are separated by the comma (,) character), and an X pattern is drawn as "1" represents a panzer and "0" represents a space without a panzer.

    There is no limit to the number of panzers that can be shot, although too many panzers will cause extreme lag on the server.

    NOTE: ETPub versions 0.7.1 and older used the semicolon (;) Character as the row separator. For backward compatibility the semicolon character can still be used, though use of the comma is highly recommended.

    Default is "10001,01010,00100,01010,10001"

    g_partyPanzersDamageMode [integer]

    Damage caused by the party panzers.

    Available options are:

    0
    No damage.
    1
    Normal damage. Each panzer does normal damage (see g_dmgPanzer).
    2
    Proportional. Each panzer does damage proportional to the number fired panzers. For example, if your pattern has 10 panzers, then each panzer will do 1/10 the damage that a normal panzer shot does (see g_dmgPanzer).

     

    Default is 2

    g_panzersVulnerable [0|1]

    If set to 1, panzers that are shot in mid-air will explode. If party panzers are on, nearby panzers will explode as well due to splash damage.

    Default is 0

    g_panzersSpeed [integer]

    Speed of the panzers (Applies to normal and party panzers). Normal panzer speed is 2500.

    Default is 2500

    g_panzersGravity [integer]

    If set to 1, panzer trajectory will be affected by gravity (Applies to normal and party panzers).

    Default is 0

    g_realHead [0|1]

    Head Box Positions

    Available options are:

    0
    Regular headbox positions.
    1
    Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.

     

    This code was originally from ETPro (b_realhead). It was contributed by zinx and added to etpub by forty.

    Default is 1

    g_dyno [bitmask]

    Dynamite Behaviour

    Available options are:

    1
    Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.
    2
    Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.
    4
    Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won't see the time remaining. This requires at least etpubclient 20070213
    8
    Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can difuse it
    16
    Enable dynamite ID. You can see the owner of a dynamite when you point at it. Requires at least ETPubClient 20070719

     

    Default is 0

    g_canisterKick [integer]

    Canister and grenade kicking.

    Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.

    Default is 0

    g_canisterKickOwner [0|1]

    Kicked Canister Ownership

     

    0
    Kicker does no take ownership of canister.
    1
    Kicker takes ownership of canister.

     

    Default is 0

    g_dmgKnife [integer]

    Amount of damage done by the knife.

    Default is 10

    g_dmgSten [integer]

    Amount of damage done by the sten.

    Default is 14

    g_dmgFG42 [integer]

    Amount of damage done by the FG-42

    Default is 15

    g_dmgPistol [integer]

    Amount of damage done by by pistol weapons

    Default is 18

    g_dmgSMG [integer]

    Amount of damage done by the SMG weapoins (MP40 and Thompson).

    Default is 18

    g_dmgMG42 [integer]

    Amount of damage done by the MG42.

    Default is 18

    g_dmgMG [integer]

    Amount of damage done by an emplaced MG.

    Default is 20

    g_dmgFG42Scope [integer]

    Amount of damage done by the FG-42 when scoped.

    Default is 30

    g_dmgInfRifle [integer]

    Amount of damage done by unscoped rifles (K43 and Garand).

    Default is 34

    g_dmgSniper [integer]

    Amount of damage done by a scoped Garand or K43.

    Default is 50

    g_dmgFlamer [integer]

    Amount of damage done, per tick, by a flamethrower.

    Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.

    Default is 5

    g_dmgGrenade [integer]

    Amount of damage done by a grenade

    Default is 250

    g_dmgGrenadeRadius [integer]

    Blast radius of a grenade

    Default is 250

    g_dmgGLauncher [integer]

    Amount of damage done by an engineer's grenade-launcher grenades

    Default is 250

    g_dmgGLauncherRadius [integer]

    Blast radius of an engineer's grenade-launcher grenades

    Default is 250

    g_dmgLandmine [integer]

    Amount of damage done by a landmine

    Default is 250

    g_dmgLandmineRadius [integer]

    Blast radius of a landmine

    Default is 250

    g_dmgSatchel [integer]

    Amount of damage done by a satchel

    Default is 250

    g_dmgSatchelRadius [integer]

    Blast radius of a satchel

    Default is 250

    g_dmgPanzer [integer]

    Amount of damage done by a panzerfaust rocket

    Default is 400

    g_dmgPanzerRadius [integer]

    Blast radius of a panzerfaust rocket

    Default is 300

    g_dmgMortar [integer]

    Amount of damage done by a mortar round

    Default is 400

    g_dmgMortarRadius [integer]

    Blast radius of a mortar round

    Default is 400

    g_dmgDynamite [integer]

    Amount of damage done by dynamite

    Default is 400

    g_dmgDynamiteRadius [integer]

    Blast radius of dynamite

    Default is 400

    g_dmgAir [integer]

    Amount of damage done PER BOMB by an airstrike

    Default is 400

    g_dmgAirRadius [integer]

    Blast Radius PER BOMB of an airstrike

    Default is 400

    g_dmgArty [integer]

    Amount of damage done PER BOMB by Artillery fire

    Note: if this value is non-zero, the spotting round will follow normal ET behavior (can do damage, but to a (VERY small radius, making damage unlikely)

    Default is 400

    g_dmgArtyRadius [integer]

    Blast Radius PER BOMB of Artillery fire

    Note: if this value is non-zero, the spotting round will follow normal ET behavior (can do damage, but to a (VERY small radius, making damage unlikely)

    Default is 400

    g_dmg [bitmask]

    Enables experimental advanced combat options

    Available options are:

    0
    Use traditional ET settings for combat.
    1
    Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage
    2
    Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.
    4
    Gives a damage bonus to short-range weapons when used in close combat situations. This will increase the effectiveness of these weapons at closer ranges.
    8
    Use bullet fall-off approximations when computing shot trajectory.
    16
    Improve accuracy of non-scoped single-shot rifles
    32
    Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.
    64
    Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.

    Default is 0

    g_dmgHeadShotMin [Integer]

    This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.

    Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin.

    Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio.

    (The actual damage may undergo additional modification due to range and other conditions)

    Default is 50

    g_dmgHeadShotRatio [float]

    This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.

    Default is 2.0

    g_reflectFriendlyFire [float]

    Similar to Shrub's g_friendlyfire 2 cvar.

    A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.

    A value of 1.0 would reflect full damage.
    A value of 0.5 would reflect half damage.
    Set to 0 to disable reflected friendly fire.

    Default is 0

    g_reflectFFWeapons [bitmask]

    Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.

    Note: Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.

    Available options are:

    1
    Enable reflected damage for Firearms (all types of guns)
    2
    Enable reflected damage for Grenades and grenade launchers
    4
    Enable reflected damage for Knives (includes thrown knives)
    8
    Enable reflected damage for Panzers
    16
    Enable reflected damage for Flamethrowers
    32
    Enable reflected damage for Mortars
    64
    Enable reflected damage for Satchel Charges
    128
    Enable reflected damage for Artillery and Air Strikes
    256
    Enable reflected damage for Dynamite and Construction Damage
    512
    Enable reflected damage for Landmines

    Default is 31 (Firearms + Grenades + Knives + Panzers + Flamers)


  22. cvars

    g_shrubbot [filename]

    This should be set to the name of your shrubbot.cfg file if you want to enable shrubbot. See shrubbot documentation for more information about this file.

    Example:

    g_shrubbot "shrubbot.cfg"

     

    This depends on punkbuster's guid, so don't turn this on unless you have punkbuster enabled on your server.

    Default is "" (Disabled)

    g_logAdmin [filename]

    The name of the file that all shrubbot commands will be logged to. For example,

    g_logAdmin "admin.log"

     

    Default is "" (no log file)

    g_hitsounds [integer]

    This is a bitflag cvar that supports the following values

    1
    enables hitsounds
    2
    disables hitsounds when shooting wounded players.
    4
    disable the headshot sounds when shooting wounded players in the head. default hitsound will be used in it's place unless the 2 flag is set.
    8
    disable the "hold your fire" sound that would normally be played when shooting a teammate for the first time.
    16
    disable hitsounds from poison damage.
    32
    disable hitsounds from explosive weapons.

    A client will hear a sound when they damage another player. The sounds it uses are ones that are included in the pak0.pk3 file so it does not require additonal file downloads to use this mod.

    A client can disable hitsounds by running

    /setu cg_hitsounds 0
    before connecting to the server, or toggle hitsounds on the fly with the /hitsounds command.

     

    Starting with 0.1.1, the hitsounds used are configurable with the following cvars:

    g_hitsound_default (Default is "sound/weapons/impact/flesh2.wav")
    g_hitsound_helmet (Default is "sound/weapons/impact/metal4.wav")
    g_hitsound_head (Default is "sound/weapons/impact/flesh4.wav")
    g_hitsound_team_warn_axis (Default is "sound/chat/axis/26a.wav")
    g_hitsound_team_warn_allies (Default is "sound/chat/axis/26a.wav")
    g_hitsound_team_helmet (Default is "sound/weapons/impact/metal4.wav")
    g_hitsound_team_head (Default is "sound/weapons/impact/flesh4.wav")
    g_hitsound_team_default (Default is "sound/weapons/impact/flesh2.wav")
    

     

    Note that these are server cvars. If you want to use hitsounds that are not included in the game you'll have to put them in a pk3 for all clients to download. Your custom hitsounds must be 22khz, 16 bit, mono WAV files in order for ET to be able to use them.

    g_shoveSound [string]

    The sound that a player emits when shoved. Set this to "" to disable it.

    Default is "sound/weapons/grenade/gren_throw.wav"

    g_poisonSound [string]

    The sound that a poisoned player emits every second. Set this to "" to disable it.

    Default is "sound/player/gurp2.wav"

    g_fightSound [string]

    The sound that will play at the end of warmup or when the match is unpaused.

    Example

    set g_fightSound "sound/world/rooster.wav"

     

    Set this to "" to disable it.

    Default is ""

    g_knifeKillSound [string]

    If a client was killed with a knife, all players close to the killed player will hear this sound. Kills on teammates will be ignored and so this sound won't be played then

    Example

    set g_knifeKillSound "sound/osp/goat.wav"

     

    Set this to "" to disable it.

    Default is ""

    g_firstBloodSound [string]

    The sound that will be played when the first kill of the map is made

    Example

    set g_firstBloodSound "sound/misc/firstblood.wav"

     

    Set this to "" to disable it.

    Default is ""

    g_playDead [0|1]

    Allows players use the 'playdead' command and their character will act like it is dead until the playdead command is issued again (or they really die).

    Default is 0

    g_shove [integer]

    Allows players to push other players with the "use" key. The integer adjusts the amount of force players shove with. 80 seems fair.

    NOTE: starting with etpub 0.5.1, this number has been changed to (hopefully) be more compatible with the value used in shrubet. You will need to turn down this value greatly when upgrading from earlier versions of etpub.

    Default is 0.

    g_shoveNoZ [0|1]

    Set this to 1 if you want to disable shove in the up/down direction (a.k.a "boosting").

    Default is 0

    g_dragCorpse [0|1]

    Allows players do drag wounded players with the use key when moving backward slowly. Works best when crouching or prone.

    Default is 0

    g_classChange [0|1]

    Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals a uniform. Class changing does not latch, so the original class the player had will be restored on respawn.

    Default is 0

    g_forceLimboHealth [0|1]

    If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.

    Default is 1

    g_privateMessages [0|1]

    If set to 1, players can send private messages to one another with the m command. Example:

    /m tjw you totally suck!

     

    Starting in 0.2.1 players can also type '/m tjw you totally suck' in the 'chat' dialog box and it will be recognized as a private message.

    Starting in 0.5.1, clients can reject private message from other individual clients with the /ignore client command.

    Default is 0

    g_privateMessageSound [string]

    If set a sound is played to every player that receives a private message

    Default is "" (Disabled)

    g_XPSave [integer]

    If set to 1, XP and number of lives remaining will be saved if a player disconnects and reconnects later during the same campaign. As of 0.1.1, this is now a bitflag with the following values:

    1
    store xp when a client disconnects
    2
    don't reset xp to the pre-map start values on a map restart, shuffle, etc.
    4
    never reset xp (ever).
    8
    force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.
    This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3's on your server often because stored XP will be lost over disconencted downloads.
    16
    store the xp at restarts, nextmaps, mapvotes, campaignvotes and similar cases.

    Storing XP on disconnect depends on the punkbuster guid, so don't turn this on unless you have punkbuster enabled on your server.

    Default is 0

    g_XPSaveFile [string]

    Set this to the filename you want XPSave to store data in. This file will be relative to your fs_game directory (like g_shrubbot).

    Default is "xpsave.cfg"

    g_XPSaveMaxAge_xp [integer]

    The number of seconds that must pass without a connection from this player before XPSave forgets his/her xp skills.

    Starting with 0.8.1, you can use a modifier for this value. Here are some examples:

    set g_XPSaveMaxAge_xp "1o" - 1 month
    set g_XPSaveMaxAge_xp "2w" - 2 weeks
    set g_XPSaveMaxAge_xp "5d" - 5 days
    set g_XPSaveMaxAge_xp "36h" - 36 hours
    set g_XPSaveMaxAge_xp "120m" - 120 minutes

    NOTE: if g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.

     

    Default is 1d

    g_XPSaveMaxAge [integer]

    The number of seconds that must pass without a connection from this player before XPSave forgets his/her skills/killrating/playerrating/mute status.

    Starting with 0.8.1, you can use a modifier for this value. Here are some examples:

    set g_XPSaveMaxAge "1o" - 1 month
    set g_XPSaveMaxAge "2w" - 2 weeks
    set g_XPSaveMaxAge "5d" - 5 days
    set g_XPSaveMaxAge "36h" - 36 hours
    set g_XPSaveMaxAge "120m" - 120 minutes

    See also g_XPSaveMaxAge_xp

     

    Default is 1w

    g_XPDecay [integer]

    This is a bitmask that controls the XP decay feature. The following bitflags are supported:

    1
    Enable XP Decay
    2
    Do not decay a player's XP when they are disconnected from the server.
    4
    Do not decay a player's XP for the class they are currently playing as (e.g. Medic).
    8
    Do not decay a player's XP while they are spectating.
    16
    Do not decay a player's XP during warmup/intermission.
    32
    Do not decay a player's XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.
    64
    Do not decay a player's Battle Sense XP when he/she is playing.
    128
    Do not decay a player's Light Weapons XP when he/she is playing.

    See also g_XPDecayRate.

    This feature was created in response to the g_XPSave 4 flag which allows XP to continue building forever.

    Default is 0

    g_XPDecayRate [float]

    This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.

    Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.

    Starting with 0.8.1, you can use a modifier for this value. Here are some examples:

    set g_xpDecayRate "5000/o" - Decay 5000xp per skill per month
    set g_xpDecayRate "1000/w" - Decay 1000xp per skill per week
    set g_xpDecayRate "500/d" - Decay 500xp per skill per day
    set g_xpDecayRate "40/h" - Decay 40xp per skill per hour
    set g_xpDecayRate "2/m" - Decay 2xp per skill per minute

    Default is 0.0

    g_XPDecayFloor [float]

    This is the minimum that any particular skill can be reduced to by g_XPDecay.

    For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay.

    Default is 0.0

    g_maxXP [integer]

    This is a vicious cvar that will reset a players XP once their overall XP score reaches it. It has been requested by those who run servers with XPSave that never resets.

    Set this to -1 to disable it.

    Default is -1 (disabled)

    g_maxXPResetWarn [integer]

    Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.

    This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.

    This setting can also have percentage value (eg, "90%"), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.

    If you specify a negative value, players will be warned when that offset is hit. For example:

    For a value of -75, warnings will to display then players have g_maxXP - 75 XP

    For a value of -2%, warnings will display when players have 98% of g_maxXP

    Set this to 0 to disable it.

    Default is 0

    g_damageXP [integer]

    Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.

    Available options are:

    0
    disabled: use normal ET XP awarding methods
    1
    1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.
    2
    1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).

    Default is 0

    g_damageXPLevel [integer]

    This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.

    default is 50

    g_weapons [bitmask]

    This is meant to match the shrubmod g_weapons cvar, but so far the only implemented flags are:

    1
    Level 0 field ops doesn't get binoculars (unless he has >= level 1 Battle Sense)
    2
    syringes work underwater
    4
    pliers work underwater
    8
    Fully restore Field ops charge bar if airstrike is aborted
    16
    Half restore FIeld ops charge bar if airstrike is aborted
    32
    ammo packs restore helmets
    64
    drop binoculars if player has them (requires etpub_client >= 20050927 or /weapons/binocs.weap in a pk3 file downloaded to the client)
    128
    soldiers with level 4 heavy weapons don't lose their pistols
    256
    garands can reload when clip is not empty
    512
    balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.
    1024
    creates a hitbox for mortar shells. This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.
    2048
    Knifes will always gib a body (not a player, use g_dmgKnife instead if you want that)

    Default is 0

    g_mg42 [bitmask]

    This is a bitflag cvar that currently supports the following flags:

    1
    mg's can make headshots
    2
    mg's can reload when clip is not empty

    Default is 0

    g_goomba [integer]

    If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on. Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally. It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.

    Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall. So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.

    See also g_goombaFlags

    Set this to 0 to disable it

    Default is 0

    g_goombaFlags [integer]

    This is a bitflag cvar that controls the way g_goomba is handled. Currently the following flags are supported:

    1
    Cannot do goomba damage to teammates
    2
    Short falls (hopping) on another player does no damage.
    4
    Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)
    8
    Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).
    16
    Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.
    32
    Falling corpses won't cause damage

     

    Set this to 31 to have g_goomba work like shrubet.

    Default is 0

    g_spawnInvul [integer]

    The number of seconds players will be invincible after they spawn.

    Default is 3

    g_alliedSpawnInvul [integer]

    The number of seconds Allied players will be invincible after they spawn. This will override g_spawnInvul if not 0

    Default is 0

    g_axisSpawnInvul [integer]

    The number of seconds Axis players will be invincible after they spawn. This will override g_spawnInvul if not 0

    Default is 0

    g_spawnInvulFair [0|1]

    Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)

    Default is 1

    g_spinCorpse [0|1]

    Allow players to use +left and +right binds to spin their corpse when dead or playing dead.

    Default is 0

    g_teamChangeKills [1|0]

    If set to 0, players are allowed one non-killing team change per respawn cycle. If a player changes teams, he will be instantly spawned in the other teams default spawn point. Players will die (but not lose a life) if they change teams a second time in one spawn cycle.

    Default is 1

    g_ATB [0|1|2]
    g_ATB_diff [integer]

    g_ATB controls the type of active team balancing you want to use. Active team balancing will automatically move one of the top three player(s) from the team more likely to win, to the team more likely to lose. There are currently two versions. One uses XP, the other playerrating. Set g_ATB to choose between them. Note that g_ATB only decides WHEN to move a player, and NOT which player to move. See g_ATB_rating to see how ATB chooses which player to move.

    0
    No active team balancing.
    1
    Use team XP to balance the teams. Uses the following cvars:
    g_ATB_minXP [integer]
    g_ATB_minPlayers [integer]
    g_ATB_axisHoldoff [integer]
    g_ATB_alliedHoldoff [integer]

    Active Team Balance watches the team XP during the match and will force one of the top 3 players from the dominant team to switch teams when his/her team hits it's respawn time if the following criteria is met:

    1. One team has at least g_ATB_minXP (default 300) team XP.
    2. There are at least g_ATB_minPlayers (default 5) players playing
    3. The resulting team change will not give one team an advantage by number of players unless:
      1. If 16 or more people are playing, the losing team may get up to a 1 player advantage.
      2. If 26 or more people are playing, the losing team may get up to a 2 player advantage.
    4. The winning team is ahead in team XP by a margin of g_ATB_fidd percent.

    For example, setting

    g_ATB_diff 50
    a player would be moved if he/she was the top player on the team and his/her team had 750XP and the other team had 500XP.

     

    You can also adjust the rate at which ATB moves players with the g_ATB_axisHoldoff (default 5) and g_ATB_alliedHoldoff (default 5) cvars. For example, if g_ATB_axisHoldoff is set to 5 and an axis player is moved to the allied team, ATB will take no other action until the axis spawn timer cycles 5 times.

    NOTE: this calculation is based on TeamXP NOT the total XP of all the players on the team. TeamXP is the total score earned for the team by all players on the team during the map. When a player changes teams, the TeamXP they earned for their team does not move with them.

    Default values:

    g_ATB_diff: 70
    g_ATB_minXP: 300
    g_ATB_minPlayers: 5
    g_ATB_axisHoldoff: 5
    g_ATB_alliedHoldoff: 5

    2
    Use player rating to balance the teams. This will balance the teams by moving one of the the top 3 players when the probability of one team winning exceeds g_ATB_diff. g_ATB_diff is an integer and defaults to 70 meaning 70%. If the Axis team has more than a 70% chance of winning, ATB will move one of its players to the Allies, and this will often instantly lower the probability enough that another move will not be necessary. This version will not use any of the XP version's variables and it uses g_playerRating_minplayers instead of g_ATB_minPlayers as the minimum number of players that must be playing before it will act. It will also not swap players between teams since unbalanced team numbers is fine with player rating. It will actually stack team numbers on purpose to even out the teams unless g_ATB_swap is set.

    Note: Read g_teamForceBalance_playerrating carefully also. You probably don't want to turn option 2 on until after running your server long enough to learn map and player stats.

    NOTE: If you set g_ATB to 2, g_ATB_rating must have a value of 4 and g_shuffle_rating must have a value of 4 or 5 or ATB will be hyperactive and ineffective. For this reason, when g_ATB is 2, g_ATB_rating is forced to have a value of 4, and if g_shuffle_rating does not have a value of 4 or 5, it is forced to have a value of 5

    g_ATB_swap [1|0]

    If set to 1, one of 3 loweset scoring players on the losing team will be moved to the winning team when ATB acts (unless the losing team has less players).

    Default is 1

    g_ATB_offtime [integer]

    Sets the time in minutes after the beginning of the map, that ATB should be disabled. Set to 0 to don't disable ATB after a certain amount of time

    Default is 0

    g_ATB_rating [integer]

    Sets the rating system used by Active Team Balance. This is how ATB chooses which players to move, it is NOT how ATB decides WHEN to move them. That is g_ATB. The following options are supported:

    1
    Use player XP
    2
    Use the rate at which players have gained XP since connecting.
    3
    Use the killRating (g_killRating must be nonzero)
    4
    Use the playerRating (g_playerRating must be nonzero)

     

    NOTE: When g_ATB is set to 2, g_ATB_rating is forced to have a value of 4

    Default is 3

    g_shuffle_rating [integer]

    Sets the rating system used by shuffle. The following options are supported:

    1
    Use player XP
    2
    Use the rate at which players have gained XP since connecting.
    3
    Use the killRating (g_killRating must be nonzero)
    4
    Use the playerRating (g_playerRating must be nonzero)
    5
    Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50

     

    NOTE: When g_ATB is set to 2, g_shuffle_rating must be set to 4 or 5, otherwise it is forced to have a value of 5

    Default is 3

    g_maxTeamLandmines [integer]

    Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.

    Default is 10

    team_maxPanzers [integer]
    team_maxMortars [integer]
    team_maxFlamers [integer]
    team_maxMG42s [integer]
    team_maxGrenLaunchers [integer]

    Limits the number of the given weapon per team.

    You can either set it to a whole number to set a hard limit, or, starting with etpub 0.8.1, you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up

    You can also use a number such as "20%-" for this setting, in which case partial values will be rounded down

    Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!

     

    Example:set team_maxFlamers "2" This will limit each team to 2 flamethrowers, regardless of how many players are on the team

    Example:set team_maxFlamers "10%"This will limit each team to having only 10% of their players as flamethrowers, and a team with few players (for example, 5) will be able to have 1 flamethrower. They will be able to have their second flamethrower when they have 11 players on the team.

    Example:set team_maxFlamers "10%-"This will limit each team to having only 10% of their players as flamethrowers, and a team will not be able to have any flamethrowers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players on the team.

    Set this to -1 to disable limits

    Default is -1

    g_mapConfigs [string]

    When a new map starts, load the map specific config file named [mapname].cfg in the folder [string]. For example if you set g_mapConfigs to 'mapcfg', when the map fueldump starts, the server will try to exec 'mapcfg/fueldump.cfg'.

    Set this to "" to disable it.

    Set this to "." to look for the cfg file in the current directory (fs_home_path).

    When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec'ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec'ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2.

    Default is ""

    g_packDistance [integer]

    Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain. The settings should be similar to shrubet so set this to 2 for a subtle improvement.

    Default is 0

    g_dropHealth [integer]

    If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed. If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death.

    Set this to 0 to turn it off.

    Default is 0

    g_dropAmmo [integer]

    If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed. If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death.

    Set this to 0 to turn it off.

    Default is 0

    g_tossDistance [integer]

    Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.

    Default is 0

    g_logOptions [integer]

    This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:

    1
    Use server-side obituaries displayed in chat instead of cpm. Will increase bandwidth usage. This will not have any effect unless g_obituary is set to 3.
    2
    Adrenaline countdown displayed
    4
    Disable display of tap-out confirmation box
    8
    Display connection attempts by banned players
    16
    Display gib reports ("<victim> was gibbed by <attacker>")
    32
    Omit "item" lines from log file
    128
    GUID's are logged in the game log
    256
    Log all private messages (/m commands). Starting with 0.5.1, this setting won't have any effect unless g_tyranny is enabled.
    512
    Logs the real time into logs, instead of the normal uptime of the server.
    2048
    Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.

    Default is 0

    g_censor [string]

    A comma delimited string of words that will be censored from chat.

    Default is ""

    g_censorNames [string]

    A comma delimited string of words that will be censored from player names.

    Default is ""

    g_censorPenalty [bitmask]

    This is a bitflag that currently supports the following flags:

    1
    kill the player
    2
    kick players with names containing words in g_censorNames
    4
    kill, but don't gib
    8
    Auto-mute for g_censorMuteTime [60] seconds.
    16
    Lose the amount of xp specified in g_censorXP
    32
    Burn

    Note: If you use both 1 and 4, it will gib (like shrub did).

    Default is 0

    g_censorNeil [1|0]

    Use Neil Toronto's censor filter. It'll catch some symbol and number replacements, and spaces now. It also adds some common words and common words with "swears" in them that should really be OK. For example, it will not censor "assassin" but it will censor "ass".

    Default is 0

    g_censorNeilNames [1|0]

    Use Neil Toronto's censor filter for player names. See g_censorNeil description for details.

    Default is 0

    g_censorMuteTime [integer]

    The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.

    Default is 60

    g_censorXP [integer]

    The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.

    Default is 5

    g_intermissionTime [integer]

    Set the length of time the end of game screens displays before loading the next map.

    Default is 60

    g_intermissionReadyPercent [integer]

    The percent of connected players who need to hit the "READY" button to move on to the next map without waiting g_intermissionTime to run out.

    Default is 100

    g_skills [integer]

    This is a bitflag cvar that currently supports the following flags:

    1
    players with level 4 battle sense can spot landmines for teammates.
    2
    players with level 4 engineering can keep the flak jacket for other classes.
    4
    players with level 4 first aid can keep adrenaline for other classes.

    Default is 0

    g_hitboxes [integer]

    This is a bitflag cvar that currently supports the following flags:

    1
    lower the standing player's body hitbox to the shoulders.
    2
    lower the crouching player's body hitbox to the shoulders.
    4
    lower the wounded player's body hitbox to a reasonable height
    8
    lower the prone player's body hitbox to a reasonable height
    16
    lower the playdead player's body hitbox to a reasonable height

    The default is 31 which means use all of the improved hitboxes. Set it to 0 to use the unmodified hitboxes from etmain.

    See http://et.tjw.org/etpub/hitboxes/ for comparision screen shots.

    g_misc [integer]

    This is a bitflag cvar that currently supports the following flags:

    1
    Enable double jump.
    2
    Enable binoc master competition. Requires g_weapons 64 to be set. (etpubclient >= 20050927 required)
    4
    When a player is killed he'll see the HP the killer has left (as a centerprint)
    8
    Disable self damage
    16
    Players can not jump if stamina is too low. (etpubclient > 20050927 required)
    32
    Players cannot put their heads into other solids when prone/playdead. This is the behaviour of etpub 0.5.x. (etpubclient required). If using etpubclient before 20050927, this must be enabled.
    64
    Disable Falling Damage.
    128
    Announce revives.
    256
    Considers heads, bodies, and leg boxes in collision detections.
    512
    Stock Et prone box height.
    1024
    Old crouch box height (= crouch viewheight).

    Imporant note: in etpub 0.8.1 the flags 256, 512 and 1024 were added, because some server admins had problems with the collision boxes. Enabling 256 and 1024 might bring back some old prone bugs, so use them at own risk. See this topic for more information.

     

    Default is 256

    g_skipCorrection [1|0]

    Set this to 1 to enable Neil Toronto's unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro's antiwarp, but has some differences. Neil likes this version better, bani likes his better.

    This replaces g_smoothClients from etmain.

    You can find a demo that shows g_skipCorrection in action at: http://et.tjw.org/etpub/skipCorrection/

    Defaults to 1 (on)

    g_maxWarp [integer]

    This allows you to control the amount of "warping" that players with high packet loss can do. The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.

    A server frame is 50ms on a typical server (sv_fps set to 20). This means that if you set g_maxWarp to 5 you won't allow players to warp from point A to point B if that distance takes an normal player 1/4 of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.

    As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.

    You can find a demo that shows g_maxWarp in action at: http://et.tjw.org/etpub/skipCorrection/

    Defaults to 4

    g_teamDamageRestriction [integer]

    When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.

    Default is 0

    g_minHits [integer]

    Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.

    Default is 6

    g_autoTempBan [bitmask]

    When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds

    1
    Tempban when reaching g_teamDamageRestriction
    2
    Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds
    4
    Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds

    Default is 0

    g_autoTempBanTime [integer]

    The number of seconds kicked for when g_autoTempBan is set

    Default is 1800

    g_voting [integer]

    This is a bitflag cvar that supports the following flags:

    1
    votes will pass on the number of votes cast rather than total eligible voters.
    2
    votes that pass do not count against the vote_limit for the caller.
    4
    " (called by NAME)" is appended to the vote description where NAME is the name of the player that called the vote.
    8
    Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.

    Default is 0

    g_moverScale [float]

    Multiply the speed of movers (e.g. tanks) by float.

    Defaults to 1.0

    g_poison [integer]

    Gives medics the ability to poison enemies by sticking with their medic syringe. Enemies will be damaged at g_poison/second when g_poison is set to a value more than 0. Setting to 0 will disable poison needles.

    Default is 0

    g_poisonFlags [integer]

    This bitflag cvar controls the effects of g_poison. The following flags are supported:

    1
    Poisoned player's screen shakes.
    2
    Other players see the poisoned player's head shaking.
    4
    Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)
    8
    Poisoned player cannot use +attack. NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.
    16
    Poisoned player is disoriented (view turned upside down).

     

    Default is 7

    g_slashKill [bitmask]

    Bitmask that controls the behavior of the /kill command.

    1
    Player spawns with half charge bar after /kill
    2
    Player spawns with 0 charge bar after /kill
    4
    Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)
    8
    Disable /kill when player is frozen
    16
    Disable /kill when player is poisoned

     

    See also g_fear and g_maxSelfkills

    Default is 0

    g_maxSelfkills [integer]

    Amount of times a player can use /kill per map.

    Setting this to -1 will result in normal behaviour (infinite selfkills).

    Setting this to 0 will disable /kill.

    Default is -1

    g_ammoCabinetTime [integer]

    The time between ammo cabinet regenerations in milliseconds.

    Default is 60000.

    g_healthCabinetTime [integer]

    The time between health cabinet regenerations in milliseconds.

    Default is 10000.

    g_spectator [integer]

    This is a bitmask that controls spectator behaviour. It supports the following flags:

    1
    When in freelook mode, you can 'fire' at a player to follow. If you miss a player, nothing happens.
    2
    When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.
    4
    When the player you're following goes into limbo, don't move to the next available player.
    8
    When the player you're following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)

    Default is 0 (no changes from etmain).

    g_medics [bitmask]

    Bitmask to control various aspects of the medic, to nerf or otherwise change their behavior. Currently supported flags include:

    1
    Medics can't pick up their own health packs to cure themselves of poison needle effects
    2
    Medics can't pick up their own health packs at all
    4
    A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is)
    16
    Medics do not spawn with akimbo pistols, regardless of their light weapons skill
    32
    Medics spawn with pistol only, and can't pick up SMG of either team However, any class can steal a medics uni, if g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG
    64
    Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.
    128
    Level 4 medics can inject other players with their adrenaline. This can be done when holding the revive needle by pressing the alt-fire button on the etpub client, or with the /adrenother client command. (Requires etpub client >= 20060606 for alt-fire button functionality).
    256
    Level 4 medics cannot adrenaline self. If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won't affect flag 128)

    Default is 0

    g_medicHealthRegen [integer]

    The rate at which medics regenerate health (in HP per second). This rate is divided into two parts: The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that. The system default is 3/2 (3 HP per second, then 2 HP per second).

    Possible values are:

    0
    3/2
    1
    2/2
    2
    2/1
    3
    2/0
    4
    1/1
    5
    1/0
    6
    0/0 (no health regeneration)
    7
    0/1
    8
    0/2

    Default is 0

    g_coverts [bitmask]

    Bitmask to control various aspects of the Covert Op class. Currently supported flags include:

    1
    Level 4 Coverts have more accurate scoped weapons.
    2
    Disguised coverts can only be identified with the "crosshair name" by level 4 Field Ops. (requires etpub_client >= 20051016)
    4
    After detonating a satchel charge, the primary weapon will be selected instead of satchel again. (requires etpub_client >= 20051016)
    8
    Coverts in disguise take half the normal combat damage.
    16
    Coverts in disguise take no splash damage.
    32
    Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.
    64
    Coverts do not automatically lose their uniform if they fire a non-silent weapon.
    128
    Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon. Note that this flag has nothing to do with firing. (etpub_client 20051030 required for proper client side prediction).
    256
    Coverts are awarded xp for constructive use of smoke.
    512
    Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).
    1024
    A disguised covert can still steal enemy uniforms

    Default is 0

  23. ET Domination is a powerball' mod and ctf too.

    Code updated to 2.60.
    hitsounds implemented.
    Speaker announcer implemented (fight! etc)
    Tackle implemented, stealing the ball from the carrier in Powerball.
    If you're within a certain distance you can "hand over" the ball to a team mate.
    Hud updated to show who has the flag or the ball.
    Added TEAM AXIS or TEAM ALLIES in the hud in in red and blue to make it more obvious what color their team has.
    CTF added, with proper scoring for assists, defence etc.
    CTF Flag models created.
    All maps supports both game types.
    Some of the standard maps support the new game types, more to come (oasis and fueldump for now).
    New fancy menus.
    New fancy loading screen.
    New fancy ball model.
    Ball velocity tweaked.
    ALL maps can now be made to work as a CTF or Powerball map with the new map script commands "create", "remove" and "set" (set was already available in et 2.60)
    Pluggable config files implemented like in ETPro.
    Several of the key functions like throwing velocity, tackle, passing etc is changeable with a cvar.
    There's also a cvar that might be a fun twist to the game, g_noWeaponFire. With it enabled, the only way to get the ball is to tackle your opponent.
    g_weaponRestrictions, limits all heavy weapons and rifle grenades.
    g_maxTeamLandmines, limits landmines (duh)
    g_maxFiresupport, limits air- and artillery strikes.
    XP removed, you know get the score but not the upgrade levels.
    added dom_muzzleFlash cvar 1/0
    Balanced k43/garand, difference in reload etc.
    Fixed bug in throwing code that could trigger off several EV_THROW_BALL events at the same time
    Fixed scoreboard bug with duplicated playernames if > 32 players.
    Backstab knife damage on players waiting for medic exploit.
    Stats implemented for game types in +stats and intermission.
    New intermission awards implemented for the game types.
    ETPro's realHead code implemented, thanks a lot for making this code public Zinx Verituse!
    Body hitbox made more close to ETPro.
    The maps have been updated to suit competitive play better, moved spawn points, adjusted respawn times etc.
    New map added, dom_steelplant, map made by Drakir, converted by me to suit ctf an Powerball.
    Class limitation implemented, changed limbo to reflect available classes, buttons become gray if not available.
    Added new changeable cvar settings to the ref and vote misc menu.
    Weapon spread when fireing will be as if having light weapons level 4.
    g_fear implemented (thanks ETPub) if you self kill within g_fear time it will give the kill to the last player who hurt you and write out a "was scared to death by" message.
    Added dom_muzzleFlash to enable/disable weapon muzzle flash.
    Added dom_drawWeaponTrace to draw weapon traces from others, everyone or none
    Added assist score in PB

  24. I think so cuz the name of the pic is with your name and we don’t have an other Pappy around since our older rar pappy had an horrible accident  and had to stop to play,

×
×
  • Create New...