Difference between revisions of "Servers"
(→Update history: added more recent updates) |
m (→Update history) |
||
(68 intermediate revisions by 39 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Like all multiplayer games based on Valve's [[Source Engine]], ''[[Team Fortress 2]]'' uses a [[w:client-server model|client-server model]]. The client is the copy of the game running on a player's computer, while the server is the software which players connect to. There are currently several thousand ''Team Fortress 2'' '''servers''' running worldwide. | |
− | + | A server is responsible for many aspects of ''Team Fortress 2'' gameplay. It responds to players' actions by updating their respective locations and states, e.g. firing a weapon, before determining an appropriate response, e.g. dealing damage to a target, and then broadcasting the results to the players, e.g. displaying a damage dealt value. The server also handles events that are not controlled by players, e.g. map time, [[Sentry Gun]] behavior, etc. | |
− | |||
− | |||
== Benefits == | == Benefits == | ||
− | Instead of | + | Instead of joining an existing server, players can opt to create their own servers to host the game. This can allow the host player to set the [[map]] rotation, determining which particular maps and subsequent [[game mode]]s are played. Additionally, other built-in settings can be altered, such as gravity, class slot limit, [[Highlander]] limitations, and so on. Custom [[mods|modifications]] may also be installed on the server to provide alternate gameplay. |
== Types == | == Types == | ||
Line 12: | Line 10: | ||
=== Listen/Local server === | === Listen/Local server === | ||
− | A Listen Server is a basic server running within a player's TF2 client. It can be easily created through selecting the Create Server button at the main menu. Other players can connect to the server, but the | + | A Listen Server is a basic server running within a player's TF2 client. It can be easily created through selecting the Create Server button at the main menu. Other players can connect to the server, but the overhead of running a regular client on the same system will often strain the host player's hardware. These types of servers are best suited to LAN-based events. |
=== Dedicated server === | === Dedicated server === | ||
− | A | + | {{see also|Dedicated server configuration}} |
+ | |||
+ | A Dedicated Server is a standalone server that does not require Steam to run. Dedicated servers are preferred due to decreased overhead, among other factors. Additionally, many dedicated servers are run on high-end hardware in [[w:data center|data centers]], providing high performance and fast, reliable connections to players, which can seldom be guaranteed on residential connections. Dedicated servers often run on ports 27000 to 27050, but mainly port 27015. | ||
== Requirements == | == Requirements == | ||
While GSPs (Game Server Providers) generally use high-end dedicated hardware to run game servers, anybody can create a server by using a computer running: | While GSPs (Game Server Providers) generally use high-end dedicated hardware to run game servers, anybody can create a server by using a computer running: | ||
+ | |||
=== Listen server === | === Listen server === | ||
* '''Mac OS X''' 10.5.8 or 10.6.3 and higher meeting the game's requirements. | * '''Mac OS X''' 10.5.8 or 10.6.3 and higher meeting the game's requirements. | ||
− | * '''Windows''' XP | + | * '''Windows''' XP or higher meeting the game's requirements. |
=== Dedicated server === | === Dedicated server === | ||
− | * '''Linux''' (x86 or amd64) running | + | * '''GNU/Linux''' (x86 or amd64) running [[w:glibc|glibc]] 2.3.2 or later. |
* '''FreeBSD''' (x86 or amd64) running the Linux compatibility code in the kernel and a recent base Linux system from the ports collection. | * '''FreeBSD''' (x86 or amd64) running the Linux compatibility code in the kernel and a recent base Linux system from the ports collection. | ||
− | * '''Windows''' 2000 | + | * '''Windows''' 2000 or later. |
== Update history == | == Update history == | ||
− | + | {{update history|1= | |
− | ''' | + | '''{{Patch name|9|20|2007}}''' |
* Linux Dedicated Server beta release. | * Linux Dedicated Server beta release. | ||
− | ''' | + | '''{{Patch name|9|26|2007}}''' |
* The affinity of the main thread is not set explicitly for dedicated servers. This will properly load balance multiple instances of the dedicated server running on a multi-processor machine. The affinity is still set to CPU 1 for clients and listen servers. | * The affinity of the main thread is not set explicitly for dedicated servers. This will properly load balance multiple instances of the dedicated server running on a multi-processor machine. The affinity is still set to CPU 1 for clients and listen servers. | ||
* Removed mp_friendlyfire cvar for servers. Team Fortress 2 breaks in a number of ways if this is on. | * Removed mp_friendlyfire cvar for servers. Team Fortress 2 breaks in a number of ways if this is on. | ||
− | ''' | + | '''{{Patch name|9|28|2007}}''' |
* Fixed rare server crash due to data corruption in networking. | * Fixed rare server crash due to data corruption in networking. | ||
− | ''' | + | '''{{Patch name|10|2|2007}}''' |
* Fixed server crash related to Spy Sappers. | * Fixed server crash related to Spy Sappers. | ||
* Extra options added to 'Game' tab in "Create server" menu option. | * Extra options added to 'Game' tab in "Create server" menu option. | ||
− | ''' | + | '''{{Patch name|10|9|2007}}''' |
* Improved startup network initialization to catch issues with server firewalls popping up in the background. | * Improved startup network initialization to catch issues with server firewalls popping up in the background. | ||
− | ''' | + | '''{{Patch name|10|25|2007}}''' |
* Fixed issues on [[Dustbowl]] and [[Hydro]] that could occur when a server emptied in the middle of a round. | * Fixed issues on [[Dustbowl]] and [[Hydro]] that could occur when a server emptied in the middle of a round. | ||
* Fixed honeypot server problems. | * Fixed honeypot server problems. | ||
− | ''' | + | '''{{Patch name|11|20|2007}}''' |
* Added sv_pure to the server, currently defaults to off. Type "sv_pure" in the console to get the full description. | * Added sv_pure to the server, currently defaults to off. Type "sv_pure" in the console to get the full description. | ||
* Added server log entries for: Round_Start, Round_Setup_Begin, Round_Setup_End, Round_Overtime, Round_SuddenDeath, Round_Stalemate, Round_Win, Round_Length, Mini_Round_Selected, Mini_Round_Start, Mini_Round_Win, and Mini_Round_Length. | * Added server log entries for: Round_Start, Round_Setup_Begin, Round_Setup_End, Round_Overtime, Round_SuddenDeath, Round_Stalemate, Round_Win, Round_Length, Mini_Round_Selected, Mini_Round_Start, Mini_Round_Win, and Mini_Round_Length. | ||
Line 60: | Line 61: | ||
* Fixed an error when updating name of 32nd player on server. | * Fixed an error when updating name of 32nd player on server. | ||
− | ''' | + | '''{{Patch name|12|20|2007}}''' |
* Sudden death mode is now a server option (a convar) and defaults to OFF. | * Sudden death mode is now a server option (a convar) and defaults to OFF. | ||
* Fixed an rcon/console command that could cause server crashes. | * Fixed an rcon/console command that could cause server crashes. | ||
Line 66: | Line 67: | ||
* Added the ability for servers to have map-specific .cfg files in the cfg folder. | * Added the ability for servers to have map-specific .cfg files in the cfg folder. | ||
− | ''' | + | '''{{Patch name|12|31|2007}}''' |
* Added player position data to server logging of events (player_death, player_builtobject, teamplay_flag_event, object_destroyed, teamplay_point_captured, teamplay_capture_blocked). | * Added player position data to server logging of events (player_death, player_builtobject, teamplay_flag_event, object_destroyed, teamplay_point_captured, teamplay_capture_blocked). | ||
− | ''' | + | '''{{Patch name|1|7|2008}}''' |
+ | * Added an option in the Options -> Multiplayer dialog to filter custom game files being downloaded from servers. | ||
+ | |||
+ | '''{{Patch name|1|14|2008}}''' | ||
* Added "nextlevel" server cvar. If set to a valid map name, server will change to that map during the next changelevel. | * Added "nextlevel" server cvar. If set to a valid map name, server will change to that map during the next changelevel. | ||
− | ''' | + | '''{{Patch name|2|14|2008}}''' |
* Added server log entry for buildings destroyed by their owner. | * Added server log entry for buildings destroyed by their owner. | ||
+ | * Fixed idle players not being kicked from the server if mp_allowspectators was set to 0. | ||
− | ''' | + | '''{{Patch name|2|15|2008}}''' |
* Game server will now try 32 sequential ports to start up on if they are all originating on the same machine. Previously it would stop at 10. | * Game server will now try 32 sequential ports to start up on if they are all originating on the same machine. Previously it would stop at 10. | ||
* Fixed server crash with mp_forcecamera set to 1 (reverted to pre-release behavior). | * Fixed server crash with mp_forcecamera set to 1 (reverted to pre-release behavior). | ||
+ | * Fixed the [[SourceTV]] changes not working unless servers launched with +tv_enable 1 in the command line. | ||
− | ''' | + | '''{{Patch name|2|28|2008}}''' |
* Servers can now specify metatags describing the custom rules they've adopted. | * Servers can now specify metatags describing the custom rules they've adopted. | ||
* Added options for servers who want to become custom games: Disable Critical hits (tf_weapon_criticals), eliminate respawn times (mp_disable_respawn_times), and raise maxplayers above 24. | * Added options for servers who want to become custom games: Disable Critical hits (tf_weapon_criticals), eliminate respawn times (mp_disable_respawn_times), and raise maxplayers above 24. | ||
Line 85: | Line 91: | ||
* Fixed "-maxplayers" on the command line not correctly setting the maxplayers value for the server. | * Fixed "-maxplayers" on the command line not correctly setting the maxplayers value for the server. | ||
− | ''' | + | '''{{Patch name|3|6|2008}}''' |
* Removed sv_alltalk from the list of convars that affect custom server tags. | * Removed sv_alltalk from the list of convars that affect custom server tags. | ||
* Fixed servers with maxplayers <= 24 that are running SourceTV having the "increased_maxplayers" tag added for their server. | * Fixed servers with maxplayers <= 24 that are running SourceTV having the "increased_maxplayers" tag added for their server. | ||
− | ''' | + | '''{{Patch name|3|13|2008}}''' |
* Fixed Linux dedicated server map load problems on certain Athlon processors. | * Fixed Linux dedicated server map load problems on certain Athlon processors. | ||
− | ''' | + | '''{{Patch name|3|20|2008}}''' |
* Fixed Linux build not handling FCVAR_REPLICATED and FCVAR_NOTIFY cvars correctly. | * Fixed Linux build not handling FCVAR_REPLICATED and FCVAR_NOTIFY cvars correctly. | ||
* Plugged an exploit where the server could send executable code to the client. | * Plugged an exploit where the server could send executable code to the client. | ||
* Added mp_stalemate_at_timelimit ConVar for server admin to allow SuddenDeath when mp_timelimit hits on non-Valve maps. | * Added mp_stalemate_at_timelimit ConVar for server admin to allow SuddenDeath when mp_timelimit hits on non-Valve maps. | ||
− | ''' | + | '''{{Patch name|4|1|2008}}''' |
* Fixed problem that was preventing some dedicated servers from uploading gamestats. | * Fixed problem that was preventing some dedicated servers from uploading gamestats. | ||
− | ''' | + | '''{{Patch name|4|2|2008}}''' |
* Fixed Linux dedicated [[server]] crash on map change. | * Fixed Linux dedicated [[server]] crash on map change. | ||
− | ''' | + | '''{{Patch name|4|30|2008}}''' |
* Fixed clients being able to trigger sv_soundscape_printdebuginfo on the server. | * Fixed clients being able to trigger sv_soundscape_printdebuginfo on the server. | ||
* Fixed potential "nuke" exploit in rcon subsystem. | * Fixed potential "nuke" exploit in rcon subsystem. | ||
− | ''' | + | '''{{Patch name|8|4|2008}}''' |
* Fixed _resetgamestats command causing server crash. | * Fixed _resetgamestats command causing server crash. | ||
− | ''' | + | '''{{Patch name|7|14|2009}}''' |
* Improved connection logic to help servers that aren't automatically reconnecting to Steam. | * Improved connection logic to help servers that aren't automatically reconnecting to Steam. | ||
* Fixed setinfo exploit that allowed restricted convars to be set while connected to a server. | * Fixed setinfo exploit that allowed restricted convars to be set while connected to a server. | ||
* Fixed "sensitivity" ConVar not capping the upper value which sometimes caused a server crash. | * Fixed "sensitivity" ConVar not capping the upper value which sometimes caused a server crash. | ||
− | '''[[ | + | '''{{Patch name|5|27|2010}}''' |
+ | * Added client/server version check on client connect. | ||
+ | |||
+ | '''{{Patch name|6|11|2010}}''' | ||
+ | * Fixed a case where servers could get stuck in an infinite loop while spawning bots. | ||
+ | |||
+ | '''{{Patch name|7|13|2010}}''' | ||
+ | * Fixed a server crash related to carrying [[buildings]] at round start. | ||
+ | |||
+ | '''{{Patch name|2|14|2011}}''' | ||
* Improved the version mismatch error message received when connecting to a server with a different version than your client. | * Improved the version mismatch error message received when connecting to a server with a different version than your client. | ||
− | ''' | + | '''{{Patch name|2|22|2011}}''' |
* Fixed a server crash exploit caused by malformed network packets. | * Fixed a server crash exploit caused by malformed network packets. | ||
− | ''' | + | '''{{Patch name|2|24|2011}}''' ([[Community Map Pack Update]]) |
* Fixed another server crash exploit caused by malformed network packets. | * Fixed another server crash exploit caused by malformed network packets. | ||
* {{Undocumented}} Fixed trades only displaying one of the items traded to the server. | * {{Undocumented}} Fixed trades only displaying one of the items traded to the server. | ||
− | ''' | + | '''{{Patch name|3|10|2011}}''' ([[Shogun Pack]]) |
* Added check to prevent multiplayer servers from transmitting 1 as their maxplayers value to connecting clients. | * Added check to prevent multiplayer servers from transmitting 1 as their maxplayers value to connecting clients. | ||
* Fixed clients being able to use particle exploits on sv_pure servers. | * Fixed clients being able to use particle exploits on sv_pure servers. | ||
− | ''' | + | '''{{Patch name|3|15|2011}}''' |
+ | * Fixed a server crash caused by using the Half-Zatoichi to hit someone not holding a weapon. | ||
+ | |||
+ | '''{{Patch name|4|15|2011}}''' | ||
* Fixed a server crash caused by the server triggering a nextlevel vote. | * Fixed a server crash caused by the server triggering a nextlevel vote. | ||
− | |||
− | |||
− | ''' | + | '''{{Patch name|4|18|2011}}''' |
* Fixed a server crash that could occur if [[TFBots]] were used across map changes. | * Fixed a server crash that could occur if [[TFBots]] were used across map changes. | ||
− | ''' | + | '''{{Patch name|5|9|2011}}''' |
− | |||
− | |||
− | |||
* Replay publishing system will try to do a rename for local HTTP mode but will manually copy and delete the file if the rename fails, which can happen if the source and destination are on different volumes. | * Replay publishing system will try to do a rename for local HTTP mode but will manually copy and delete the file if the rename fails, which can happen if the source and destination are on different volumes. | ||
* Fixed threading issues on Linux, which was causing major lag spikes. | * Fixed threading issues on Linux, which was causing major lag spikes. | ||
* Fixed replay data cleanup system, which cleans up stale data at the end of each round. This asynchronous operation can be explicitly invoked by executing a replay_docleanup command on the server. | * Fixed replay data cleanup system, which cleans up stale data at the end of each round. This asynchronous operation can be explicitly invoked by executing a replay_docleanup command on the server. | ||
+ | |||
+ | ''' {{Patch name|5|10|2011}}''' | ||
+ | * [[Replay]] | ||
+ | ** Fixed a server lockup during data cleanup. | ||
+ | |||
+ | '''{{Patch name|5|13|2011}}''' | ||
+ | * Fixed a server crash caused by a mismatched items schema. | ||
+ | |||
+ | '''{{Patch name|5|25|2011}}''' | ||
+ | * Fixed a few server crashes caused by the [[Replay|replay system]]. | ||
+ | * Fixed a server crash caused by the vote system. | ||
+ | |||
+ | '''{{Patch name|6|17|2011}}''' | ||
+ | * Fixed a server crash caused by the [[replay]] system. | ||
+ | * Fixed a server crash caused by [[disguise|disguising]] [[Spy|Spies]]. | ||
+ | * Fixed a server crash on startup caused by writing to the [[console]]. | ||
+ | * Fixed a server crash triggered during entity cleanup. | ||
+ | |||
+ | '''{{Patch name|6|27|2011}}''' | ||
+ | * Added a server console message when a player is sent to the server via the matchmaking system. | ||
+ | |||
+ | '''{{Patch name|7|5|2011}}''' | ||
+ | * Fixed a Linux dedicated server crash in vphysics.so | ||
+ | |||
+ | '''{{Patch name|7|28|2011}}''' | ||
+ | * Fixed a damage calculation in the [[Mantreads]] on Linux server, which could cause a physics crash. | ||
+ | |||
+ | '''{{Patch name|9|2|2011}}''' | ||
+ | * Fixed a server crash exploit caused by invalid player viewangles. | ||
+ | |||
+ | '''{{Patch name|10|17|2011}}''' | ||
+ | *Fixed a server crash that occurred when running both [[SourceTV]] and [[Replay]]. | ||
+ | |||
+ | '''{{Patch name|10|18|2011}}''' | ||
+ | * Fixed a frequent server crash related to packfiles. | ||
+ | |||
+ | '''October 18, 2011 Patch #2''' | ||
+ | * Fixed a server error about unprecached models. | ||
+ | |||
+ | '''{{Patch name|2|2|2012}}''' | ||
+ | * Adjusted error messages on servers when players drop due to [[Steam]] authentication failure to be more clear. | ||
+ | * Additional important server messages now go to the server log instead of just the console. | ||
+ | * Fixed a server crash caused by [[Holiday Punch]] [[critical hit|critical attacks]] on physics objects. | ||
+ | |||
+ | '''{{patch name|2|16|2012}}''' | ||
+ | * Fixed dedicated server not receiving restart requests when updates are released. | ||
+ | |||
+ | '''{{patch name|2|23|2012}}''' | ||
+ | * Fixed {{code|+randommap}} not working correctly on server startup. | ||
+ | * Fixed dedicated server console spew related to the [[Replay]] client and viewangles. | ||
+ | |||
+ | '''{{patch name|3|8|2012}}''' | ||
+ | * Fixed a client crash that could occur when a server used <code>SetCustomModel</code> to change the player model. | ||
+ | |||
+ | '''{{Patch name|5|10|2012}}''' | ||
+ | * Fixed a bug that sometimes prevented servers from reconnecting to the item server after dropping connection. | ||
+ | |||
+ | '''{{Patch name|5|17|2012}}''' | ||
+ | * Added changelevel_next server command which changes to the next map in the map cycle. | ||
+ | |||
+ | '''{{Patch name|6|27|2012}}''' ([[Pyromania Update]]) | ||
+ | * Added ConVars <code>sv_rcon_maxpacketsize</code> and <code>sv_rcon_maxpacketbans</code> to allow server admins to control the maximum RCON packet size and whether or not users get banned for exceeding that limit. The defaults reflect the existing behavior. | ||
+ | * Fixed map triggered annotation events not working on dedicated servers. | ||
+ | * Votes created by a dedicated server no longer trigger a failed vote cooldown. | ||
+ | * Using a Name Tag while in game notifies everyone of the name change. | ||
+ | * {{undocumented}} Servers no longer require a restart during the [[full moon]] period to allow players to equip [[Halloween]] items. | ||
+ | |||
+ | '''{{Patch name|7|2|2012}}''' | ||
+ | * Fixed a problem that allowed spoofed IP addresses to make connections to the game server. | ||
+ | |||
+ | '''{{Patch name|7|10|2012}}''' | ||
+ | * Fixed a client/server crash when re-connecting to the item server. | ||
+ | |||
+ | '''{{Patch name|7|20|2012}} #1''' | ||
+ | * Added <code>sv_namechange_cooldown_seconds</code>, to throttle clients from changing their name too rapidly. (Defaults to 20 seconds) | ||
+ | * Added <code>sv_netspike_on_reliable_snapshot_overflow</code> to selectively enable the automatic dumping of netspike file if a client drops due to "reliable snapshot overflow". (defaults to 0, which disables the debugging) | ||
+ | * Added check to prevent player names from containing color codes. | ||
+ | * Fix a bug that caused gameservers to not properly receive client inventory updates. (Frequent cause of the "The server you are playing on has lost connection to the item server" error message.) | ||
+ | |||
+ | '''{{Patch name|7|23|2012}}''' | ||
+ | * Fixed dedicated servers not being able to set <code>sv_region</code>. | ||
+ | |||
+ | '''{{Patch name|8|3|2012}}''' | ||
+ | * Fix server crash bug caused by setting <code>tf_mm_servermode</code> before map command. | ||
+ | |||
+ | '''{{Patch name|8|17|2012}} #1''' | ||
+ | * Updated the dedicated server to exit when attempting to start a [[Mann vs. Machine (game mode)|Mann vs. Machine]] map with less than 32 maxplayers. | ||
+ | * Fixed <code>mp_timelimit</code> causing Mann vs. Machine mode to not reset properly when the defenders lose. | ||
+ | * Updated the matchmaking ConVar <code>tf_mm_strict</code>. | ||
+ | ** A value of 2 will hide the server from the server browser but will still allow direct connections. | ||
+ | |||
+ | '''August 17, 2012 Patch #2''' | ||
+ | * Fixed a bug where rejected players could leave a "ghost" player that takes up a slot on the server browser. | ||
+ | |||
+ | '''{{Patch name|8|21|2012}}''' | ||
+ | * Fixed a rare server crash when firing [[hitscan]] weapons. | ||
+ | |||
+ | '''{{Patch name|8|23|2012}}''' | ||
+ | * Added a command "<code>kickall</code>" which kicks all connected clients except for replay, HLTV, and the listenserver host if applicable. | ||
+ | |||
+ | '''{{Patch name|9|10|2012}}''' | ||
+ | * Fixed a bug that allowed malicious servers to execute restricted console commands on players. | ||
+ | * Fixed a bug that allowed malicious servers to prevent players from executing console commands. | ||
+ | |||
+ | '''{{Patch name|9|21|2012}} #1''' | ||
+ | * Fixed a server crash related to [[Demoman]] [[bot]] AI. | ||
+ | * Community requests: | ||
+ | ** Add a new server ConVar "<code>tf_avoidteammates_pushaway</code>" to control whether or not teammates push each other away when occupying the same space. | ||
+ | ** Add a new server ConVar "<code>tf_arena_override_team_size</code>" to allow server owners to set the maximum team size in arena mode. | ||
+ | |||
+ | '''September 21, 2012 Patch #2''' | ||
+ | * Fixed bug causing gameservers to report themselves as full to the matchmaking system. | ||
+ | |||
+ | '''{{Patch name|10|9|2012}}''' | ||
+ | * Fixed a server crash that could occur if a [[Spy]] was disguised holding the [[Gunslinger]]. | ||
+ | |||
+ | '''{{Patch name|10|27|2012}}''' | ||
+ | * Fixed a Linux dedicated server crash related to [[Mann vs. Machine]]. | ||
+ | |||
+ | '''{{Patch name|11|21|2012}}''' | ||
+ | * Fixed a dedicated server hang in bot pathfinding | ||
+ | |||
+ | '''{{Patch name|3|19|2013}}''' | ||
+ | * Fixed a server crash related to game stats. | ||
+ | |||
+ | '''{{Patch name|4|3|2013}}''' | ||
+ | * Prevent game servers from opening the MOTD panel more than once if the player connected through matchmaking or quickplay | ||
+ | * Improved performance of Linux dedicated server binaries | ||
+ | |||
+ | '''{{Patch name|4|18|2013}}''' | ||
+ | * Disabled plug-ins that would allow users to connect to secure game servers even when -insecure is specified on the command line. | ||
+ | * Added ConVar sv_motd_unload_on_dismissal to allow server ops to control the default behavior of their MOTD. | ||
+ | |||
+ | '''{{Patch name|4|19|2014}}''' | ||
+ | * {{undocumented}} Fixed server, client, and engine problems. | ||
+ | |||
+ | '''{{Patch name|1|9|2015}}''' | ||
+ | * Fixed a dedicated server crash related to invalid client commands. | ||
+ | |||
+ | '''{{Patch name|11|7|2017}}''' | ||
+ | * Fixed a rare client crash related to community server mods. | ||
+ | |||
+ | '''{{Patch name|11|15|2021}}''' | ||
+ | * Fixed servers not being able to load Mann vs. Machine .pop files for workshop maps. | ||
+ | |||
+ | '''{{Patch name|7|25|2023}}''' | ||
+ | * Added {{code|-unrestricted_maxplayers}} to raise the {{code|maxplayer}} count to 100 (feature is unsupported and not recommended) | ||
+ | }} | ||
== See also == | == See also == | ||
* [[Linux dedicated server]] | * [[Linux dedicated server]] | ||
* [[Windows dedicated server]] | * [[Windows dedicated server]] | ||
+ | * [[List of useful console commands]] | ||
== External links == | == External links == | ||
* {{vdc|Source Dedicated Server}} | * {{vdc|Source Dedicated Server}} | ||
− | * [https:// | + | * [https://help.steampowered.com/en/faqs/view/0E82-09BC-324C-CB12 Setting up a Steam Source Dedicated Server] – Steam Support site |
[[Category:Servers]] | [[Category:Servers]] |
Latest revision as of 04:44, 8 November 2023
Like all multiplayer games based on Valve's Source Engine, Team Fortress 2 uses a client-server model. The client is the copy of the game running on a player's computer, while the server is the software which players connect to. There are currently several thousand Team Fortress 2 servers running worldwide.
A server is responsible for many aspects of Team Fortress 2 gameplay. It responds to players' actions by updating their respective locations and states, e.g. firing a weapon, before determining an appropriate response, e.g. dealing damage to a target, and then broadcasting the results to the players, e.g. displaying a damage dealt value. The server also handles events that are not controlled by players, e.g. map time, Sentry Gun behavior, etc.
Contents
Benefits
Instead of joining an existing server, players can opt to create their own servers to host the game. This can allow the host player to set the map rotation, determining which particular maps and subsequent game modes are played. Additionally, other built-in settings can be altered, such as gravity, class slot limit, Highlander limitations, and so on. Custom modifications may also be installed on the server to provide alternate gameplay.
Types
There are 2 types of servers that can be run using the Source engine.
Listen/Local server
A Listen Server is a basic server running within a player's TF2 client. It can be easily created through selecting the Create Server button at the main menu. Other players can connect to the server, but the overhead of running a regular client on the same system will often strain the host player's hardware. These types of servers are best suited to LAN-based events.
Dedicated server
A Dedicated Server is a standalone server that does not require Steam to run. Dedicated servers are preferred due to decreased overhead, among other factors. Additionally, many dedicated servers are run on high-end hardware in data centers, providing high performance and fast, reliable connections to players, which can seldom be guaranteed on residential connections. Dedicated servers often run on ports 27000 to 27050, but mainly port 27015.
Requirements
While GSPs (Game Server Providers) generally use high-end dedicated hardware to run game servers, anybody can create a server by using a computer running:
Listen server
- Mac OS X 10.5.8 or 10.6.3 and higher meeting the game's requirements.
- Windows XP or higher meeting the game's requirements.
Dedicated server
- GNU/Linux (x86 or amd64) running glibc 2.3.2 or later.
- FreeBSD (x86 or amd64) running the Linux compatibility code in the kernel and a recent base Linux system from the ports collection.
- Windows 2000 or later.
Update history
- Linux Dedicated Server beta release.
- The affinity of the main thread is not set explicitly for dedicated servers. This will properly load balance multiple instances of the dedicated server running on a multi-processor machine. The affinity is still set to CPU 1 for clients and listen servers.
- Removed mp_friendlyfire cvar for servers. Team Fortress 2 breaks in a number of ways if this is on.
- Fixed rare server crash due to data corruption in networking.
- Fixed server crash related to Spy Sappers.
- Extra options added to 'Game' tab in "Create server" menu option.
- Improved startup network initialization to catch issues with server firewalls popping up in the background.
- Fixed issues on Dustbowl and Hydro that could occur when a server emptied in the middle of a round.
- Fixed honeypot server problems.
- Added sv_pure to the server, currently defaults to off. Type "sv_pure" in the console to get the full description.
- Added server log entries for: Round_Start, Round_Setup_Begin, Round_Setup_End, Round_Overtime, Round_SuddenDeath, Round_Stalemate, Round_Win, Round_Length, Mini_Round_Selected, Mini_Round_Start, Mini_Round_Win, and Mini_Round_Length.
- Server log entries for Round_Win and level changes will now detail the team scores and player counts.
- Updated server log entries for flag captures to detail the number of captures and the tf_flag_caps_per_round value.
- Fixed Windows dedicated server running in -console mode moves its window to the front instead of the back upon startup.
- Fixed Windows dedicated server bug (in -console mode) where typing anything in the console window was slow and tedious.
- Fixed an error when updating name of 32nd player on server.
- Sudden death mode is now a server option (a convar) and defaults to OFF.
- Fixed an rcon/console command that could cause server crashes.
- Fixed a rare crash that can happen when a player being healed leaves the server suddenly.
- Added the ability for servers to have map-specific .cfg files in the cfg folder.
- Added player position data to server logging of events (player_death, player_builtobject, teamplay_flag_event, object_destroyed, teamplay_point_captured, teamplay_capture_blocked).
- Added an option in the Options -> Multiplayer dialog to filter custom game files being downloaded from servers.
- Added "nextlevel" server cvar. If set to a valid map name, server will change to that map during the next changelevel.
- Added server log entry for buildings destroyed by their owner.
- Fixed idle players not being kicked from the server if mp_allowspectators was set to 0.
- Game server will now try 32 sequential ports to start up on if they are all originating on the same machine. Previously it would stop at 10.
- Fixed server crash with mp_forcecamera set to 1 (reverted to pre-release behavior).
- Fixed the SourceTV changes not working unless servers launched with +tv_enable 1 in the command line.
- Servers can now specify metatags describing the custom rules they've adopted.
- Added options for servers who want to become custom games: Disable Critical hits (tf_weapon_criticals), eliminate respawn times (mp_disable_respawn_times), and raise maxplayers above 24.
- Made several improvements to server-side stat reporting (not related to individual player stats).
- Fixed "-maxplayers" on the command line not correctly setting the maxplayers value for the server.
- Removed sv_alltalk from the list of convars that affect custom server tags.
- Fixed servers with maxplayers <= 24 that are running SourceTV having the "increased_maxplayers" tag added for their server.
- Fixed Linux dedicated server map load problems on certain Athlon processors.
- Fixed Linux build not handling FCVAR_REPLICATED and FCVAR_NOTIFY cvars correctly.
- Plugged an exploit where the server could send executable code to the client.
- Added mp_stalemate_at_timelimit ConVar for server admin to allow SuddenDeath when mp_timelimit hits on non-Valve maps.
- Fixed problem that was preventing some dedicated servers from uploading gamestats.
- Fixed Linux dedicated server crash on map change.
- Fixed clients being able to trigger sv_soundscape_printdebuginfo on the server.
- Fixed potential "nuke" exploit in rcon subsystem.
- Fixed _resetgamestats command causing server crash.
- Improved connection logic to help servers that aren't automatically reconnecting to Steam.
- Fixed setinfo exploit that allowed restricted convars to be set while connected to a server.
- Fixed "sensitivity" ConVar not capping the upper value which sometimes caused a server crash.
- Added client/server version check on client connect.
- Fixed a case where servers could get stuck in an infinite loop while spawning bots.
- Fixed a server crash related to carrying buildings at round start.
- Improved the version mismatch error message received when connecting to a server with a different version than your client.
- Fixed a server crash exploit caused by malformed network packets.
February 24, 2011 Patch (Community Map Pack Update)
- Fixed another server crash exploit caused by malformed network packets.
- [Undocumented] Fixed trades only displaying one of the items traded to the server.
March 10, 2011 Patch (Shogun Pack)
- Added check to prevent multiplayer servers from transmitting 1 as their maxplayers value to connecting clients.
- Fixed clients being able to use particle exploits on sv_pure servers.
- Fixed a server crash caused by using the Half-Zatoichi to hit someone not holding a weapon.
- Fixed a server crash caused by the server triggering a nextlevel vote.
- Fixed a server crash that could occur if TFBots were used across map changes.
- Replay publishing system will try to do a rename for local HTTP mode but will manually copy and delete the file if the rename fails, which can happen if the source and destination are on different volumes.
- Fixed threading issues on Linux, which was causing major lag spikes.
- Fixed replay data cleanup system, which cleans up stale data at the end of each round. This asynchronous operation can be explicitly invoked by executing a replay_docleanup command on the server.
- Replay
- Fixed a server lockup during data cleanup.
- Fixed a server crash caused by a mismatched items schema.
- Fixed a few server crashes caused by the replay system.
- Fixed a server crash caused by the vote system.
- Fixed a server crash caused by the replay system.
- Fixed a server crash caused by disguising Spies.
- Fixed a server crash on startup caused by writing to the console.
- Fixed a server crash triggered during entity cleanup.
- Added a server console message when a player is sent to the server via the matchmaking system.
- Fixed a Linux dedicated server crash in vphysics.so
- Fixed a damage calculation in the Mantreads on Linux server, which could cause a physics crash.
- Fixed a server crash exploit caused by invalid player viewangles.
- Fixed a frequent server crash related to packfiles.
October 18, 2011 Patch #2
- Fixed a server error about unprecached models.
- Adjusted error messages on servers when players drop due to Steam authentication failure to be more clear.
- Additional important server messages now go to the server log instead of just the console.
- Fixed a server crash caused by Holiday Punch critical attacks on physics objects.
- Fixed dedicated server not receiving restart requests when updates are released.
- Fixed
+randommap
not working correctly on server startup. - Fixed dedicated server console spew related to the Replay client and viewangles.
- Fixed a client crash that could occur when a server used
SetCustomModel
to change the player model.
- Fixed a bug that sometimes prevented servers from reconnecting to the item server after dropping connection.
- Added changelevel_next server command which changes to the next map in the map cycle.
June 27, 2012 Patch (Pyromania Update)
- Added ConVars
sv_rcon_maxpacketsize
andsv_rcon_maxpacketbans
to allow server admins to control the maximum RCON packet size and whether or not users get banned for exceeding that limit. The defaults reflect the existing behavior. - Fixed map triggered annotation events not working on dedicated servers.
- Votes created by a dedicated server no longer trigger a failed vote cooldown.
- Using a Name Tag while in game notifies everyone of the name change.
- [Undocumented] Servers no longer require a restart during the full moon period to allow players to equip Halloween items.
- Fixed a problem that allowed spoofed IP addresses to make connections to the game server.
- Fixed a client/server crash when re-connecting to the item server.
- Added
sv_namechange_cooldown_seconds
, to throttle clients from changing their name too rapidly. (Defaults to 20 seconds) - Added
sv_netspike_on_reliable_snapshot_overflow
to selectively enable the automatic dumping of netspike file if a client drops due to "reliable snapshot overflow". (defaults to 0, which disables the debugging) - Added check to prevent player names from containing color codes.
- Fix a bug that caused gameservers to not properly receive client inventory updates. (Frequent cause of the "The server you are playing on has lost connection to the item server" error message.)
- Fixed dedicated servers not being able to set
sv_region
.
- Fix server crash bug caused by setting
tf_mm_servermode
before map command.
- Updated the dedicated server to exit when attempting to start a Mann vs. Machine map with less than 32 maxplayers.
- Fixed
mp_timelimit
causing Mann vs. Machine mode to not reset properly when the defenders lose. - Updated the matchmaking ConVar
tf_mm_strict
.- A value of 2 will hide the server from the server browser but will still allow direct connections.
August 17, 2012 Patch #2
- Fixed a bug where rejected players could leave a "ghost" player that takes up a slot on the server browser.
- Fixed a rare server crash when firing hitscan weapons.
- Added a command "
kickall
" which kicks all connected clients except for replay, HLTV, and the listenserver host if applicable.
- Fixed a bug that allowed malicious servers to execute restricted console commands on players.
- Fixed a bug that allowed malicious servers to prevent players from executing console commands.
- Fixed a server crash related to Demoman bot AI.
- Community requests:
- Add a new server ConVar "
tf_avoidteammates_pushaway
" to control whether or not teammates push each other away when occupying the same space. - Add a new server ConVar "
tf_arena_override_team_size
" to allow server owners to set the maximum team size in arena mode.
- Add a new server ConVar "
September 21, 2012 Patch #2
- Fixed bug causing gameservers to report themselves as full to the matchmaking system.
- Fixed a server crash that could occur if a Spy was disguised holding the Gunslinger.
- Fixed a Linux dedicated server crash related to Mann vs. Machine.
- Fixed a dedicated server hang in bot pathfinding
- Fixed a server crash related to game stats.
- Prevent game servers from opening the MOTD panel more than once if the player connected through matchmaking or quickplay
- Improved performance of Linux dedicated server binaries
- Disabled plug-ins that would allow users to connect to secure game servers even when -insecure is specified on the command line.
- Added ConVar sv_motd_unload_on_dismissal to allow server ops to control the default behavior of their MOTD.
- [Undocumented] Fixed server, client, and engine problems.
- Fixed a dedicated server crash related to invalid client commands.
- Fixed a rare client crash related to community server mods.
- Fixed servers not being able to load Mann vs. Machine .pop files for workshop maps.
- Added
-unrestricted_maxplayers
to raise themaxplayer
count to 100 (feature is unsupported and not recommended)
See also
External links
- Source Dedicated Server on the Valve Developer Community
- Setting up a Steam Source Dedicated Server – Steam Support site