User Tools

Site Tools


en:games:star_trek_-_voyager_elite_force:setting_up_game_servers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:games:star_trek_-_voyager_elite_force:setting_up_game_servers [2023-12-28-16-11] – [Game Types and Modes] 7saturnen:games:star_trek_-_voyager_elite_force:setting_up_game_servers [2024-01-07-08-33] (current) – [Bots Filling Up the Server] 7saturn
Line 87: Line 87:
   * //pak3.pk3//   * //pak3.pk3//
 You may also extend that folder with your own maps, models, and so on. Just be aware: A player will download those files, if needed, unless either the server or the client forbids it. So if you add custom content, make sure a player has some convenient means to get those contents (e.g. map downloads on or a map package of sorts). You may also extend that folder with your own maps, models, and so on. Just be aware: A player will download those files, if needed, unless either the server or the client forbids it. So if you add custom content, make sure a player has some convenient means to get those contents (e.g. map downloads on or a map package of sorts).
 +
 +So the final folder structure should look somewhat like this:
 +  * //ef_server/liliumvoyhm.x86_64//
 +  * //ef_server/baseEF/pak0.pk3//
 +  * //ef_server/baseEF/pak1.pk3//
 +  * //ef_server/baseEF/pak2.pk3//
 +  * //ef_server/baseEF/pak3.pk3//
 +
 ==== Creating a Config ==== ==== Creating a Config ====
 For the server to do something customized to your needs, you will have to create a new text file with ''.cfg'' extension in the //baseEF// folder. In principle, the name for the config doesn't matter. However, when named //autoexec.cfg// the config is loaded automatically during start-up and map running. This special config file is used **always**. It might contain default definitions (e.g. having the same rcon password for all servers or turning off bot chat). A minimal server config could look like this: For the server to do something customized to your needs, you will have to create a new text file with ''.cfg'' extension in the //baseEF// folder. In principle, the name for the config doesn't matter. However, when named //autoexec.cfg// the config is loaded automatically during start-up and map running. This special config file is used **always**. It might contain default definitions (e.g. having the same rcon password for all servers or turning off bot chat). A minimal server config could look like this:
Line 218: Line 226:
 ==== Placing Files Properly ==== ==== Placing Files Properly ====
 Config files have to be stored in folder //baseEF//, even if you want to start the dedicated with active mods. The server initially searches for its files there, including the maps, before it starts. Under Linux some dedicated servers search in the folder //~/.stvef/baseEF// resp. //~/.local/share/lilium-voyager/baseEF//. So it may also depend on the user you run the server as, where it will actually be searching for its files. Config files have to be stored in folder //baseEF//, even if you want to start the dedicated with active mods. The server initially searches for its files there, including the maps, before it starts. Under Linux some dedicated servers search in the folder //~/.stvef/baseEF// resp. //~/.local/share/lilium-voyager/baseEF//. So it may also depend on the user you run the server as, where it will actually be searching for its files.
 +
 +When done, you should end up with a file like this:
 +  * //ef_server/baseEF/my_super_duper_config.cfg//
 +Or maybe like this:
 +  * ///home/your_user_name/.local/share/lilium-voyager/baseEF/my_super_duper_config.cfg//
  
 For further settings in the config, see the [[..:star_trek_-_voyager_elite_force#Config Parameters]]. For further settings in the config, see the [[..:star_trek_-_voyager_elite_force#Config Parameters]].
Line 239: Line 252:
 If you don't want to start a dedicated server with standard EF but with a mod active, you have to pass this to the server **at start-up**, e.g. for Pinball by adding ''+set fs_game pinball''. For the use of mods the specification //fs_game// might be absolutely necessary **as start start parameter** (not to be set in the config, that's too late to be found). The name of the mod normally corresponds with the name of directory in which the mod data is stored. This will also be the location where the game will be looking for its config files. You could say that for standard EF the mod folder is //baseEF//. But it doesn't have to be specified separately, because the data is searched for in this directory by default. If you don't want to start a dedicated server with standard EF but with a mod active, you have to pass this to the server **at start-up**, e.g. for Pinball by adding ''+set fs_game pinball''. For the use of mods the specification //fs_game// might be absolutely necessary **as start start parameter** (not to be set in the config, that's too late to be found). The name of the mod normally corresponds with the name of directory in which the mod data is stored. This will also be the location where the game will be looking for its config files. You could say that for standard EF the mod folder is //baseEF//. But it doesn't have to be specified separately, because the data is searched for in this directory by default.
 ==== Game Types and Modes ==== ==== Game Types and Modes ====
 +A //Game Type// is kind of the base variation of the game (e.g. team play vs. each player on their own), while a //Mode// varies a Game Type (e.g. with special classes or one player having a special role).
 +
 Here is a brief overview of which game types and which modes belong to which config variables: Here is a brief overview of which game types and which modes belong to which config variables:
-^  Name   //g_gametype//  ^  +^  Game Type   //g_gametype//  ^  
-|  Free for all (DM) |  ''0'' +|  Free for all ([[en:gaming_theory:deathmatch|DM]]) |  ''0'' 
-|  Tournament |  ''1''  |+|  [[en:gaming_theory:Tournament]] |  ''1''  |
 |  Solo* |  ''2''  | |  Solo* |  ''2''  |
-|  Team Deathmatch |  ''3'' +|  [[en:gaming_theory:Team Deathmatch]] |  ''3'' 
-|  Capture the Flag |  ''4''  |+|  [[en:gaming_theory:Capture the Flag]] |  ''4''  |
  
 If other numbers are used, the game mode is set to FFA. If other numbers are used, the game mode is set to FFA.
  
-* Note: Solo is only here for the sake of completeness and is not actually a game type for servers. This mode is set when starting a solo match via GUI in Elite Force, i.e. without other human players. In principle this mode can also be used via console parameters or in a config, but then it is not possible for other players to join the game. Accordingly, it cannot be reached via network (not even via stating ''localhost'' / ''127.0.0.1'').+* Note: //Solo// is only here for the sake of completeness and is not actually a game type for servers. This mode is set when starting a solo match via GUI in Elite Force, i.e. without other human players. In principle this mode can also be used via console parameters or in a config, but then it is not possible for other players to join the game. Accordingly, it cannot be reached via network (not even via stating ''localhost'' / ''127.0.0.1'').
 ^  Mode  ^  Variable  ^ ^  Mode  ^  Variable  ^
-|  Assimilation |  ''<nowiki>g_pModAssimilation = "1"</nowiki>''  |+|  [[Assimilation Mode|Assimilation]] |  ''<nowiki>g_pModAssimilation = "1"</nowiki>''  |
 |  [[en:gaming_theory:last_man_standing|Elimination]] |  ''<nowiki>g_pModElimination = "1"</nowiki>''  | |  [[en:gaming_theory:last_man_standing|Elimination]] |  ''<nowiki>g_pModElimination = "1"</nowiki>''  |
 |  Specialties |  ''<nowiki>g_pModSpecialties = "1"</nowiki>''  | |  Specialties |  ''<nowiki>g_pModSpecialties = "1"</nowiki>''  |
 |  [[en:gaming_theory:action_hero|Action Hero]] |  ''<nowiki>g_pModActionHero = "1"</nowiki>''  | |  [[en:gaming_theory:action_hero|Action Hero]] |  ''<nowiki>g_pModActionHero = "1"</nowiki>''  |
 |  [[en:gaming_theory:instagib|Disintegration]] |  ''<nowiki>g_pDisintegration = "1"</nowiki>''  | |  [[en:gaming_theory:instagib|Disintegration]] |  ''<nowiki>g_pDisintegration = "1"</nowiki>''  |
-==== Permitted combinations of game type and mode ====+==== Permitted Combinations of Game Type and Mode ====
 Not all combinations of game type and mode are allowed. Below is an overview of which combinations of modes are allowed with game types and with modes among each other. Not all combinations of game type and mode are allowed. Below is an overview of which combinations of modes are allowed with game types and with modes among each other.
 === Game Type and Mode === === Game Type and Mode ===
Line 264: Line 279:
 |  Tournament |  no  |  yes  |  yes  |  yes  |  yes  | |  Tournament |  no  |  yes  |  yes  |  yes  |  yes  |
 |  Capture the flag |  no  |  yes  |  yes  |  no  |  no  | |  Capture the flag |  no  |  yes  |  yes  |  no  |  no  |
-=== Modes with each other ===+=== Modes With Each Other ===
 ^  ^ Assimilation ^ Specialties ^ Disintegration ^ Elimination ^ Action Hero ^ ^  ^ Assimilation ^ Specialties ^ Disintegration ^ Elimination ^ Action Hero ^
 |  Assimilation |  yes  |  yes  |  no  |  no  |  no  | |  Assimilation |  yes  |  yes  |  no  |  no  |  no  |
Line 272: Line 287:
 |  Action Hero |  no  |  no  |  no  |  no  |  yes  | |  Action Hero |  no  |  no  |  no  |  no  |  yes  |
  
 +===== Assimilation Mode Full Server Bug =====
 +==== Bots Filling Up the Server ====
 +Beware of a glitch that comes around when using //bot_minplayers// > 0 in conjunction with //g_pModAssimilation// = 1. When certain game event orders occur, the server gets filled up with bots, up to the point where nobody can join it any longer (not even reserved slots are free). To understand this, keep the following things in mind:
 +
 +  - //bot_minplayers// adds a new bot, whenever one team is dropping below the number of players defined by it.
 +  - In //Assimilation// mode after a short while you cannot join either team any longer but are forced to spectate (= being part of no team, or the pseudo-team spectator).
 +  - Whenever Borg assimilate a player from the Starfleet team, the player gets re-assigned to the Borg team, leaving the Starfleet team one player shorter than before. (And the Borg team one player bigger.)
 +
 +So for the //Assimilation// mode a team falling below the value of //bot_minplayers// is normal operations for the Starfleet team. This also means, unless //bot_minplayers// is set to zero or the Borg queen gets killed before that happens, the Starfleet team **will** drop below the //bot_minplayers// value at some point. What happens then is, the game will -- as usual -- try to add a new bot to the Starfleet team, to compensate the lack of players.
 +
 +This however will fail, if the timeout for joining a team has already hit. In turn, the new bot will be re-assigned to the spectator-non-team -- leaving the Starfleet team one player short, still. So the game will again add another player to team Starfleet, starting the circle anew. This goes on until the server is stacked full with players and/or bots. The bad thing about this is, this also uses up reserved slots, making it impossible for anybody to join the server, as it will be full after this cycle of death hit.
 +
 +Here is a video showing that phenomenon: [[https://www.youtube.com/watch?v=No1yFRQb-04]]
 +
 +==== Preventing the Problem ====
 +In order to get around this problem, whenever playing //Assimilation//, make sure to set //bot_minplayers// to 0. This of course means, by default, no bots will populate the server. This however, can be achieved manually with help of the following commands:
 +
 +  * ''addbot //<name>// //<level>// //<team>//'': Adds a bot of given level to the given team. The name is mandatory. The other values are optional. //<team>// should be either ''borg'' or ''starfleet''. You could also use the regular ''blue'' and ''red'' values. But then the assignment of the bots to Borg or Starfleet team may be random, as the Borg teams may be chosen to be red or blue, and Starfleet the according opposite. //<level>// should be between 1 and 5. The default is 3.
 +  * ''kickbots'': This kicks all bots from the server. This is particularly useful, when you work from within a mapcycle, that used //bot_minplayers// before, so the server is already filled with bots. First kick all bots, then re-add the ones you want to have.
 +
 +Example:
 +
 +''set bot_minplayers = 0; kickbots; addbot 2_of_3 3 borg; addbot wortsla 3 starfleet;''
 +
 +This fills the server with one player for each team.
 ===== Accessibility ===== ===== Accessibility =====
-When creating an EF 1 game server yourself, you only need to open port 27960 (UDP) in a firewall (or alternatively the port you have chosen yourself). You shouldn't have to share a specific port to join. However, you have to distinguish between LAN server and Internet server when creating the server. LAN servers are, as the name says, only accessible via LAN, not via the Internet. In principleyou can also run multiple servers by selecting multiple ports. Some ports can be searched automatically by EF, so that even a second server running in parallel does not have to be entered manually in EF. The automatically scanned UDP ports for LAN search are 27960-27963, which of course must also be forwarded if you are behind a firewall or NAT.+When creating an EF 1 game server yourself, you only need to open port 27960 (UDP) in a firewall (or alternatively the port you have chosen yourself). You don't have to select a specific port to join, just as long as NAT forwarding and/or firewall allow for it to be use. However, you have to distinguish between LAN server and Internet server when creating the server. LAN servers are, as the term implies, only accessible via LAN, not via the Internet. In principle you can also run multiple servers by using different ports for the different servers. Some ports can be found automatically by EF, so that even a second or third game server running in parallel does not have to be entered manually in EF. The automatically scanned UDP ports for LAN search are 27960-27963.
 ===== IPv6 ===== ===== IPv6 =====
 If you are hosting a match on a computer with an IPv6 address, the game also waits for connections via your IPv6 stack, when using [[versions#Lilium Voyager]] or cmod. If a player decides to connect to that server via IPv6, he has to enter the address in the fashion ''[block1:block2:...:blockn]'' into the //Specify Server// fields. Notice the brackets around, they are required. The ''::'' abbreviations are also allowed. The following two [[en:game_tech:cvar|cvars]] may be of particular interest in this case: If you are hosting a match on a computer with an IPv6 address, the game also waits for connections via your IPv6 stack, when using [[versions#Lilium Voyager]] or cmod. If a player decides to connect to that server via IPv6, he has to enter the address in the fashion ''[block1:block2:...:blockn]'' into the //Specify Server// fields. Notice the brackets around, they are required. The ''::'' abbreviations are also allowed. The following two [[en:game_tech:cvar|cvars]] may be of particular interest in this case:
en/games/star_trek_-_voyager_elite_force/setting_up_game_servers.1703776293.txt.gz · Last modified: 2023-12-28-16-11 by 7saturn

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki