HLE Server FAQ

Q: How do I configure my server’s game settings?
Q: How do I configure the mapcycle?
Q: What kind of maps does hle have?
Q: How do I configure a map to work with ctp mode?
Q: What is vadmin.txt and how does it relate to rcon?
Q: How can I control voting?
Q: What is a match?
Q: How do I edit prevent entities from spawning?
Q: How can I control which game modes can be played?
Q: What are the new commands I need to know as an admin?

New server commands
New server cvars

Q: How do I configure my server’s game settings?

A: HLE works a bit different than any other mod. There is an order of operations with the configuration files (*.cfg) The first file to get executed is game.cfg. This file is only executed once when the server is created. Its primary responsibly is initiating the first game mode to be played. This file is relatively unimportant because once its only called upon once. The next config file to be executed is the mode specific config file. This file is different for each mode. The mode config files can be found in the modes/ dir. Each game mode has its own sub directory and inside that lies the config file for that mode among other files. The config file for whichever mode is running on your server will be called each time the level ends or changes. Is it a bad idea to include global settings inside these config files such as rcon_password or password. Those settings are best left for the finial config file. The finial config file called will be one of two files depending on which type of server you are running. The two possible files are server.cfg for dedicated servers or listenserver.cfg for non dedicated servers. In either case this file will be executed immediately after the mode config file each time the level end or changes. Settings such as max_players, rcon_password or sv_lan are best left for this file while the more game specific commands like mp_fraglimit, mp_weaponstay should be left for the mode specific config files. Note that mp_gamemode should not be place is any config file other then game.cfg

back to questions

Q: How do I configure the mapcycle?

A: The old mapcycle.tvt file is no longer used. Because HLE has many game modes and some of them require specialized maps, it was necessary to have discrete mapcyle.txt files for each gamemode. The mapcycle.txt files can be found inside the modes/ dir. Each game mode has a sub dir inside the modes dir and that’s where you will find the mapcycle.txt for that gamemode. Think of each mapcycle.txt as tracks. HLE will stay on that track until the game mode is changed. Note that some maps may not work for some gamemodes so its up to the admin to configure these correctly. HLE maps have prefixes which help clients understand what they are for.

back to questions

Q: What kind of maps does hle have?

A: There are three different kind of maps. The first map is standard map which has no prefix or simply hle_. Any gamemode expect ctf can be played on these maps. However ctp mode will only work correctly if there is an existing ctp file for that map inside the modes/ctp/ dir. The second type of map is the dual map which is prefixed hledual_ Only lms, lts, action, teamaction, practice, and duel are allowed of these maps. The finial type of map is the ctf map which is prefixed hlectf_. The only gamemodes allowed on this type of map are ctf, lms, lts, action, teamaction, practice, and duel.

back to questions

Q: How do I configure a map to work with ctp mode?

A: To create a ctp file for a map, type "create_ctp_file" in the console. You must be the server admin and the server must be local unless you use "rcon". Creating a file will delete any old ctp files for that particular level. ctp files have no file extension. They are named after the map they are created in. After you have created the file, anyone in the server may then type "add_flag" and a ctp flag will be dropped. If the flag is not placed correctly it may fall through the level. If this occurs you need to start over by typing "create_ctp_file" again. All the flags will be deleted as will the file. After you are done placing the flags, type "complete_ctp_file" in the console. If you do not complete the file, may not be saved. After you complete the file, you may play. No restart is necessary.

back to questions

Q: What is vadmin.txt and how does it relate to rcon?

A: Virtual admin is a new feature build into HLE which helps admins abstract the power of the rcon password to clients without giving the rcon password away. Vadmin also lets you restrict any number of commands you wish. In a way, it’s like creating groups with permissions or restrictions. Vadmin is also more convenient in the sense that no passwords are required. If a player belongs in a vadmin group he or she is automatically op’ed to his or her position upon joining the server. Vadmin is a very complex feature and there is an entire document written about it in the help/ dir. If you plan on hosting a dedicated server, we strongly recommend you read about vadmin and use it!
(refer to vadmin.html)

back to questions

Q: How can I control voting?

A: Voting is pretty easy to control. There is a vote.txt file inside each hle dir. That file corresponds to which commends and settings clients are allowed to vote for. Any word not found in that file will not be allowed to be voted on by any client. If you wish to turn off voting altogether set sv_allowvotes to 0. If you only wish to disable voting during matches then set mp_allowmatchvotes to 0. Both those commands should be placed in the game.cfg file.

back to questions

Q: What is a match?

A: A match is when a matchstart is evoked by an admin or by clients who voted for it. Matches can only be started in gamemodes which tolerate them namely teamplay game modes. During match play, clients can not join the match if they are spectating. Clients are also restricted from changing teams during the match without a vote being passed. Voting can also be restricted during a match by the mp_allowmatchvotes variable.

back to questions

If clients who are in the match drop or get disconnected they have a resume time set by mp_resumetime for which they are allowed to rejoin the server and automatically spawn back into he match with the same score. Matches always start with a timer countdown from 5 seconds to 0. Upon the start of the match, all scores and entities are reset as if the server restarted. There are 3 types of matches. matchstart 1, 2, or 3. matchstart 1 is the standard matchstart which respawns all entities, resets the scores and locks the teams, but does not load players. Matchstart 2 is like 1 expect is also loads the players and matchstart 3 simply locks the teams and resets the scores without a countdown. To evoke a matchstart type “matchstart x” Where x is a number 0-3. matchstart 0 cancels the match.

back to questions

Q: How do I edit prevent entities from spawning?

A: Some admins dislike weapons and we are aware of this so we coded a special cvar which is called "sv_banentities". This cvar is a string of entities or entity prefixes which are not allowed to spawn. We took advantage of this cvar for action duel and lms game modes. You can see an example of how it works in those corresponding game mode config files inside the modes dir. sv_banentities works like this:

Each word is separated with a semicolon ; When half-life elite spawns an entity it first checks to see if any part of the name of that entity is in sv_banentities string. For example if the string looked like this “weapon_shotgun” then the shotgun would never spawn. However if you wanted to ban all weapons, you would not need to type each of them out, you could simply have “weapon” and then each entity whose name started with weapon would not spawn.

Now let’s say you wanted all the weapons banned expect for the shotgun. Then you can do this: “weapon;~weapon_shotgun” The tilde character is the exclusion character. And it reverses the restriction for that one word. So in other words, all weapons are banned expect the shotgun. But a more efficient way of writing this would be “weapon;~weapon_sh” which means all weapons are banned expect any weapon starting with weapon_sh. However only one weapon starts with that string (namely, the shotgun). The reason for using the prefixes is that the entire string can not be longer then 128 letters total including semicolons. The shorthand method makes the string much more efficient. Take a look at the examples inside action mode.

back to questions

Q: How can I control which game modes can be played?

A: mp_banmodes controls which modes are not allowed on a server. Each mode added to this string will be restricted on the server. For example mp_banmodes “ffa;teamplay;action”. Nor ffa, teamplay and action would not be allowed if this was the value of the mp_banmodes string. Notice each game mode is separated with a semicolon. Leave this string blank if you wish to allow all modes. Note that this cvar dose not check prefixes therefore you must put the entire name of the game mode in the string if you wish to ban it.

back to questions

Q: What are the new commands I need to know as an admin?

A: Here is a complete list of the new commands and variables you should know

back to questions

New server commands:

"matchstart" | 0-3 (0 cancels, 1 starts unloaded, 2 starts loaded, 3 does not respawn players)
"create_ctp_file" | (opens or overwrites a ctp file for a map and removes all flags in a level)
"complete_ctp_file" | (closes and locks the ctp file)
"create_loc_file" | (opens or overwrites a loc file for a map)
"complete_loc_file" | (closes and locks the loc file)
"add" | (refer to vadmin.html)
"remove" | (refer to vadmin.html)
"emit" | <serverID#> <teamname> (emits a player into the play queue for a round based mode, or emits a player into a match with the given team name if provided; example "emit 4 red" that will force the 4th player to spawn under the red team. to find the players serverID# number type "status")
"eject" | <serverID#> (this is the opposite of emit, it will force a player into spectator mode, thus removing him from the play queue or a match if started. To find a players serverID#, type "status"; example "eject 5")
"start" | string (string will be the name of your config file for a particular tournament inside the tournament dir. This command starts the tourney)
"action" | (changes game mode; teamplay:NO, matchstart: NO)
"duel" | (changes game mode; teamplay:NO, matchstart: NO)
"lms" | (changes game mode; teamplay:NO, matchstart: NO)
"tournament" | (changes game mode; teamplay:NO, matchstart: NO)
"lts" | (changes game mode; teamplay:YES, matchstart: NO)
"teamaction" | (changes game mode; teamplay:YES, matchstart: NO)
"ffa" | (changes game mode; teamplay:NO, matchstart: YES)
"teamplay" | (changes game mode; teamplay:YES, matchstart: YES)
"ctp" | (changes game mode; teamplay:YES, matchstart: YES)
"ctf" | (changes game mode; teamplay:YES, matchstart: YES)
"practice" | (changes game mode; teamplay:NO, matchstart: NO)

back to questions

New server cvars:

"nextmap" | (overwrites mapcycle for the nextlevel, the nextlevel will be nextmap string)
"mp_maxteams" | 2-6 (# of allowed teams, will work in this order: blue,red,green,yellow,purple,orange)
"mp_flaghandicap" | 0-1 (% of gauss jump reduction when clients have flags in ctf mode)
"mp_gamemode" | string (current gamemode)
"mp_spawnlimit" | 0-* (or tourney mode only, this controls the number of frags which determines the end of the match) again by holding the jump button, this evens the playing field against bunny hop scripters)
"mp_roundtime" | 0-* (for duel/lms/tournament rounds, this appears at the top of the screen opposed to mp_timelimit which is at the bottom)
"mp_winlimit" | 0-* (for ctf, lms, tournament and duel. this controls the number of wins to end the level)
"mp_spawnform" | 0-1 (0 = start normal, 1 = start loaded)
"mp_tossitem" | 0-1 (prevents dropping items like the longjump)
"mp_corpsequeue" | 0-* (# of dead bodies allowed at once)
"mp_loselongjump" | 0-1 (forces the longjump to fall off a player after he/she dies)
"mp_showlongjump" | 0-1 (if on, this will hide the third person longjump on players backs, restart or changelevel is required)
"mp_satchelexplode" | 0-1 (If set to 1, this will allow other players to blow up your satchels with other explosives, this is used for CTF and CTP modes to prevent flag camping.
"mp_radar" | 0-1 (turns on and off the radar for all clients, restart or changelevel required)
"mp_allowmatchvotes" | 0-1 (turns voting off during a match, in which case only a server admin can alter server settings)
"mp_resumetime" | 0-* (number of seconds a player is allowed to join back into a match after a disconnect. The players score will be restored.)
"mp_banmodes" | string (ban all game modes you don't wish for clients to vote on)
"mp_allowvotes" | 0-1 (enables/disables all voting)
"mp_banentities" | string (ban weapons and entities here, if you only give part of the string, it bans every entity example "weapon_" bans every weapon)

back to questions