ETWsk - ETW-FZ Enemy Territory Anti-Spawnkill Mod for ETpro

ETWsk is an etpro lua script that tries to reduce spawnkilling on public funservers.

Share your map-spawn config files

Map-share-site

Description

ETWsk aims to reduce spawnkilling (SK) on public funservers. An SK here is if someone kills an enemy near a fix spawn point. A fix spawn point means that it can not be cleared by the enemy. E.g. on radar map, the allied Side Gate spawn is not fix as the axis can destroy the command post. However, the Main Bunker spawn is fix after the Allies have destroyed the Main Gate. ETWsk does not prevent but it detects and counts SKs for every player. If a player has caused a certain number of SKs, he gets punished (putspec, kick, ban, ...). As the detection of fix spawns is difficult especially on custom maps, little configuration work has to be done.

Features:

Changelog

Installation

  1. Download ETWsk.zip and extract it in the etpro subfolder.
  2. Edit your server config file and add following cvar:
    set lua_modules "ETWsk.lua"
    If you already have one or more lua modules you can add them separated by a space like
    "ETWsk.lua otherscript.lua"
  3. Reset the server (reset_match is sufficient).

Configuration

Create a simple text file named as "mapname".lua and copy it to your mapSpawns folder. The general format for adding custom map settings is:

local c = {spawns = {}, actions = {}, defaults = true}
		<spawn definitions>
		<action definitions>
return c
where:

spawn definitions:
     c.spawn[<spawn-num>] = {<spawn-fields>}
spawn-num: spawn index (see /etwsk_spawns command)
spawn-fields: - comma-separated list of "key = value"
              - for existing spawns all fields are optional (they overwrite default values).
              - fields:
                    name = <String>  : name of spawn point
                    state = NO_PROTECT|PROTECT_ALLIES|PROTECT_AXIS
                    pos = {x,y,z}    : map coordinates of spawn point 
                    radius1 = <Int>  : protection radius for normal weapons
                    radius2 = <Int>  : protection radius for heavy weapons
action definitions: actions are definitions of transitions of one state of a spawn point into another one triggered by a message.
     c.action[<ction-num>] = {<action-fields>}
action-num: just an increment number
action-fields: - comma-separated list of "key = value"
                   - all fields are mandatory
                   - fields:
                       spawn = <pawn-num>
                       newstate = NO_PROTECT|PROTECT_ALLIES|PROTECT_AXIS
                       trigger = <String>: part of a message that is displayed  by the server on a specific event.

adding new protection areas to maps

  1. enter the map and walk to the location where you want to add the area
  2. type /etwsk_spawns and remember the highest spawn index number
  3. type /etwsk_pos and write down the coordinates
  4. add spawn to config with at least the name,state and pos field

default values

At mapstart, ETWsk scans for all spawnpoints and sets the state either to PROTECT_ALLIES or PROTECT_AXIS. It also scans for capturable flag poles and sets the state of a spawnpoint near a flag pole to NO_PROTECT. The location of a spawnpoint is taken from the WOLF_objective entity, the small spawn flag that can be selected in the command map. This entity is usually placed in the center of the individual player-spawnpoints. However, on some maps this is not the case. Check the positions of the small spawn flags on the command map or type /etwsk_pos after you have spawned to check the distance to protected areas. If needed, adjust the radius, or the pos or add a new protection area to the map. If you wish to set all protection areas manually in a map, add:

    c.defaults = false
to the definitions for a map.