Silent Mod Installation
Installation Guide
This document describes the installation of the silEnT mod to an already installed Enemy Territory server.
Download silEnT
Download the latest copy of the silEnT mod from here
Quick Install
Rented Game Server Hosting
1. Unzip the file on your local PC.
2. Upload all the contens of silent folder to your server FTP next to etmain folder.
3. 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
1. Backup old etmain and silent folders if you have them but do not delete the etmain folder.
2. Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.
3. Unzip the silent.zip.
4a. Start your Windows server with command line "etded +set dedicated 2 +set fs_game silent +exec silent.cfg".
4b. 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 best place to find the installation instructions how to install the Omni-bot is the official Wiki.
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. |
dedicated | This value tells the type of the server to spawn. Value 2 means dedicated internet server. Value 1 means dedicated LAN server. |
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.