SilEnT Installation

From Fearless Assassins Wiki

SilEnT Mod Enemy Territory Mod Installation

This page describes the installation of the silent mod to an already installed Enemy Territory server. If you need help just visit us at Fearless Assassins or use this WIKI, if you experience any problems during installation or while in-game.

Installation of 0.9.0 Package

Rented Game Server Hosting

  • Unzip the file on your local PC.
  • Upload all the contents of silent folder to your server FTP next to etmain folder.
  • Go to the game server control panel and change the fs_game setting to silent. Change the executed config to silent.cfg.

VPS and Dedicated Server with Shell Access

  • Backup old etmain and silent folders if you have them but do not delete the etmain folder.
  • Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.
  • Unzip the silent.zip.
    • Start your Windows server with command line "etded +set dedicated 2 +set fs_game silent +exec silent.cfg".
    • Start your Linux server with command line "etded +set dedicated 2 +set fs_game silent +set fs_homepath /path/to/your/et/ +exec silent.cfg".

Config files

With silEnT mod there are many config files. Some of the config files are important to get the server running and fully operational. Other config files are only meant for customizing the server to your and your community's needs. Note, if you are experienced with configuring your own Enemy Territory servers, you can of course create your own config file structure. This document describes only what is available in the default installation.

silent.cfg

The silent.cfg will set all the settings for the Enemy Territory server and for the silEnT mod. This config file is large and also has lot of commenting. A comment is a descriptive text that comes after "//" sequence in the file. Notice that there is no space in between the two "/" characters. Infact, everything on a line after these characters is a comment. After all the settings are done, the config file executes objectivecycle.cfg. The objectivecycle config file will launch the mod and load the specified map. The cvars that are set inside this config file can be mostly found from the chapters silEnT Mod Server Cvar and Generic Server Cvar and will not be handled in this document.

You can place this file either in the etmain folder or in the silent folder. The etmain folder was chosen for the default installation based on the current practices of the time. However, do not place this file to both of the folders because that will make it harder to know which version is being executed.

At the end of the config file you will find the following exec objectivecycle.cfg set com_watchdog 60 set com_watchdog_cmd "exec objectivecycle.cfg"

The first line executes the map rotation cfg of your server. This must be placed at the end of the config file because this config file will also launch the silEnT mod. There are certain settings that cannot be altered anymore after the mod is launched. Also, some settings such as g_XPSave should be set to the correct value. If the g_XPSave is 0 when the mod is launched and then set to the desired value. It will result all the players losing XP at every server start. You can create different map rotations and just change the config file name on this line.

The second line sets the interval for the watchdog. The watchdog is an inbuilt feature of the engine which will automatically execute any specified command if the mod hangs for any reason. Reason can be a programming error in the mod or a configuration error in the server. The value is in seconds. In this case, if the mod will stop responding to the engine for 60 seconds, the engine will execute the command specified with com_watchdog_cmd.

The last line is the command the engine will execute when the watchdog time trigers. In this case it will execute the objectivecycle.cfg, which will restart the server.

objectivecycle.cfg

This config file defines the map rotation on your server. The default content of the config file is set d1 "set g_gametype 2 ; map oasis ; set nextmap vstr d2" set d2 "set g_gametype 2 ; map battery ; set nextmap vstr d3" set d3 "set g_gametype 2 ; map goldrush ; set nextmap vstr d4" set d4 "set g_gametype 2 ; map radar ; set nextmap vstr d5" set d5 "set g_gametype 2 ; map railgun ; set nextmap vstr d6" set d6 "set g_gametype 2 ; map fueldump ; set nextmap vstr d1" vstr d1

Commands used in the config file:

  • set: This command sets the value of a cvar. If the cvar does not exist, the cvar will be created. Created cvars are custom cvars that do not mean anything to the mod or to the game. But they can be usefull for configuring the server. In this case the cvars from d1 to d6 are custom cvars.
  • map: This command starts the silEnT mod to play the specified map. The map name used with the command must be the raw bsp name of the map. For custom maps, you can find the map name by unzipping the pk3 file (pk3 files are infact just zipped files with changed file ending) and looking inside the maps folder.
  • vstr: This command expands the value of a cvar when executed. This feature is necessary to be able to create automatic map rotation.

Each lines that define cvars from d1 to d6 are infact one map. The g_gametype is set to objective, the map is launched and the inbuilt cvar nextmap is set to contain the vstr of the next map in the rotation. Note that the vstr is important here because it allows creating a loop in the nextmap rotating back to the beginning. Even without the loop, trying to expand the d1 to d6 by hand would not look good.

mapvotecycle.cfg

This config file is otherwise similar to the objectivecycle.cfg, except that it sets the g_gametype to 6. Which is the map voting game type. This cfg file is an alternative for the objectivecycle.cfg. Replacing the objectivecycle.cfg in the silent.cfg, you can easily change your server to map voting gametype.

banners.cfg

This config file is located in the silent folder. The config file is not required for your server to run, it is used only to create banners to your server. Detailed description how to configure banners and use this config file is found from the Banners.

shrubbot.cfg

Finally, this config file is used to configure the admin levels of your server. Also, this file will store all the warnings, bans, subnet bans and custom commands you add to your server. Detailed description of the shrubbot.cfg can be found from the Shrubbot and User Database. Read the sub paragraph Shrubbot Files.

Omni-Bots

Omni-bots provide a method to the admins for adding artificial players to the server to fill the teams when there aren't much real players. The bots can be recognized from the real players in the score board from their flag if GeoIP is enabled and from '-' in the ping column.

The recommended version at the time of this writing for silEnT mod is 0.82. Omni-bot has migrated to Github and can now be found here Up to silEnT 0.8.2, some defected maps can cause the server to crash. The work around for these maps is to disable trip mines or Omni-Bots using map configs. Those maps are rare and can be identified from an "ERROR: No 'script_multiplayer' found in map" entry in the server log.

Advanced

Important Command Line Parameters

  • fs_basepath: This is the path to the installation of the Enemy Territory. From this path, the etded.x86/etded.exe is found.
  • fs_homepath: This is the path where the Enemy Territory will save your config files and downloaded pk3 files. For Linux server, this path is often manually set to the same location as the fs_basepath. In Windows, the fs_basepath and fs_homepath always point to the same location. For silEnT database, it is important that this is set so that the database path can be constructed to the valid location.
  • fs_game: This is the mod folder under the fs_basepath from where the mod files are loaded.
  • com_hunkMegs: This value tells how much memory the spawned ET server should allocate for its use. Note that this value is latched and can not be changed when the server is running.
  • net_ip: This is the IP address of the server. If you don't set this value, it will be localhost by default. The difference between the localhost and defined IP address is that if this value is set to localhost, it will receive and send the game packets from all the interfaces of the server. And it will bind the game server port defined with net_port to all of these interfaces for the use of the game server. This affects your server if it has multiple interfaces with multiple IP addresses.
  • net_port: This is the port the game server uses to send and receive game packets. By default this is set to 27960 and if this port is not available, the server will attempt to find a free port stepping up one by one until it has failed with the port 27969. If you do set the port to a custom value that is not available, the same stepping will still happen starting from the port you defined.

Notes

  • In linux, the fs_homepath is by default a hidden folder in the user home directory. If this path is not set to the server installation, the silEnT will not be able to function fully. This value is usually set to have the same value as the fs_basepath.
  • Often the default com_hunkMegs setting (56) is not enough for a customized server. Increase this value to avoid problems. We recommend either any value from 128M to 256M.

LUA

  • silEnT servers support Lua 5.1.4 scripts up till version 0.8.2.
  • Since version 0.9.0 silEnT mod supports Lua 5.3.1 compiled to be compatible with Lua version 5.2.
  • Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT's Lua API is aiming to be fully compatible to ETPro's Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.

LUA Resources

silEnT Lua API

Major Features of silEnT Mod 0.9.0

  • Server customizable menu that is opened in addition to the silEnT mod menu.
  • Possibility for admins to modify the loading screen of their server. As opposed to modifying the loading screen of every server.
  • New client command mem_report. This command prints diagnostics of the client memory pooling.
  • New client cvars: cg_numPopups, cg_popupStayTime and cg_popupFadeTime for controlling popup behaviour.
  • Server checks the setup and refuses to start if problems are found. This includes checks that official menus are not modified.
  • New option g_forceLimboHealth 2, which matches the ETPro gib damage (125).The option 1 remains as the original ETPub gib health (150).
  • Rate setting is incresed automatically step by step if fragmented snapshots are received from the server. This improves the playability and removes the need to force this setting to players.
  • Server extension modules. With this technology, server functionality can be expanded to various tasks without bloating the qagame library or forcing every admin to use same extension.
  • Statistics module. This module collects various game play data into a relational database. Current choices are SQLit3 and PostgreSQL.
  • Censor module. This module can be configured to censor names and chat with real regular expressions.
  • new fun wars: !knifewar, !stenwar, !riflenadewar, !rifleshootwar, !pistolwar (added g_headshot bitmask value 4 to control instagib of headshot for pistolwar).
  • New server cvar: g_incognitoCountryFlag to control the country flag displayed for the incognito admin.
  • If g_dmg is set server side, body hitsounds have different volumes depending of the damage. This can be disabled by the players.
  • Forcing some cvars is now restricted. These include the client side hitsound selection and theme.
  • Player screenshots. Now admins can take player screenshots which works same as PB screenshots. 2.6b clients supported. Screenshot will have Server name, IP, Player Name, silEnT GUID, PB GUID and Player IP in it.
  • G_QueryClientCvar/et_CvarValue can no longer be used to query rcon password.
  • In silEnT AC a part of the Anti-Cheat was not compiled into the mod in version 0.8.2. This resulted some previously known cheats to not getting detected.
  • The arm hit detection was not working correctly from the side shots. Fixed by adding additional temporary box for the torso.
  • !rename admin command doesn't allow adding backslashes to names anymore.
  • sv_cvar OUT handling.
  • Objective carry icon counting spectators too.
  • Crashes related to UI_Alloc running out of memory. It does not run out of memory.
  • Ties on highest fragger are solved by comparing kill/death difference. I.e. less deaths will win.
  • When g_realbody was set to 1. With certain crouch animations the middle box was not high enough to cover shoulders.
  • Ties on the most headshots are solved by comparing the amount of shots fired to reach the amount. The player with less shots fired will win.
  • et_UpgradeSkill Lua hook was passing invalid client numbers to scripts.
  • Allied hand grenades erroneously recorded kills as axis hand grenades. This change should be noted by all log parsers that parse MOD_ values from kills.
  • g_headshot bitmask value 2. It used to apply the g_instagibDamage to every hit. Fixed to apply the damage to only headshots.
  • tripmine palcement bug leading to exploit (thanks to Beck for the report).
  • theme bug regarding small titled windows.
  • report bug official menu had bad background definition (with widescreen).
  • The g_weapons flag 32768 was treated as always enabled if any of the g_weapons flags was set.
  • Missing ETPro icon from the SD credits menu.
  • Non-literal characters not allowed in names anymore.
  • Omni-bot + tripmine crash when the map script is missing "script_multiplayer".
  • rifle war nade shooting is not influenced by the charge bar anymore.
  • Menus cleaned. All options can be found under the Options button.