<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://pavlovwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rain</id>
	<title>Pavlov VR Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://pavlovwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rain"/>
	<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php/Special:Contributions/Rain"/>
	<updated>2026-05-12T23:53:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1011</id>
		<title>User:Rain/Sandbox2</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1011"/>
		<updated>2024-06-14T14:22:41Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Crossplay ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Crossplay&lt;br /&gt;
!&lt;br /&gt;
!PCVR&lt;br /&gt;
!PSVR&lt;br /&gt;
!Shack&lt;br /&gt;
|-&lt;br /&gt;
|PCVR&lt;br /&gt;
|&lt;br /&gt;
|✓&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|PSVR&lt;br /&gt;
|✓&lt;br /&gt;
|&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|Shack&lt;br /&gt;
|⨉&lt;br /&gt;
|⨉&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Due to PSVR having no UGC, crossplay between PSVR and PCVR is limited to lobbies using vanilla maps only.&lt;br /&gt;
&lt;br /&gt;
[note: is this true or can PSVR players join unmodded PCVR dedicated servers?]&lt;br /&gt;
&lt;br /&gt;
=== Modding capabilities ===&lt;br /&gt;
*PCVR: Full Modkit 3.0 [note: add link to modkit wiki page]&lt;br /&gt;
*PSVR: None&lt;br /&gt;
*Shack: Limited Modkit 3.0 [^]&lt;br /&gt;
PSVR has no UGC because a pipeline for delivering mods to PS5 was unable to be worked out between Vankrupt and Sony. [citation: Status of PS5 and Mods in https://store.steampowered.com/news/app/555160/view/4182228661128474316]&lt;br /&gt;
&lt;br /&gt;
Shack has only a limited modding capabilities because of the hardware limitations of the Quest headsets.&lt;br /&gt;
&lt;br /&gt;
==== Limitations of Modkit on Shack ====&lt;br /&gt;
*Limit 1&lt;br /&gt;
*Limit 2&lt;br /&gt;
*...&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1010</id>
		<title>User:Rain/Sandbox2</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1010"/>
		<updated>2024-06-14T14:17:00Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Crossplay&lt;br /&gt;
!&lt;br /&gt;
!PCVR&lt;br /&gt;
!PSVR&lt;br /&gt;
!Shack&lt;br /&gt;
|-&lt;br /&gt;
|PCVR&lt;br /&gt;
|&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot;&amp;gt;Due to there being no UGC on PSVR, crossplay with PCVR is only possible in lobbies running vanilla maps.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|PSVR&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot; /&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|Shack&lt;br /&gt;
|⨉&lt;br /&gt;
|⨉&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Modding capabilities:&lt;br /&gt;
&lt;br /&gt;
*PCVR: Full Modkit 3.0 [note: add link to modkit wiki page]&lt;br /&gt;
*PSVR: None&lt;br /&gt;
*Shack: Limited Modkit 3.0&lt;br /&gt;
&lt;br /&gt;
Limitations of Modkit on Shack:&lt;br /&gt;
&lt;br /&gt;
*Limit 1&lt;br /&gt;
*Limit 2&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1009</id>
		<title>User:Rain/Sandbox2</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1009"/>
		<updated>2024-06-14T14:15:41Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Crossplay&lt;br /&gt;
!&lt;br /&gt;
!PCVR&lt;br /&gt;
!PSVR&lt;br /&gt;
!Shack&lt;br /&gt;
|-&lt;br /&gt;
|PCVR&lt;br /&gt;
|&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot;&amp;gt;Due to there being no UGC on PSVR, crossplay with PCVR is only possible in lobbies running vanilla maps.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|PSVR&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot; /&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|Shack&lt;br /&gt;
|⨉&lt;br /&gt;
|⨉&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modding capabilities:&lt;br /&gt;
&lt;br /&gt;
*PCVR: Full Modkit 3.0 [note: add link to modkit wiki page]&lt;br /&gt;
*PSVR: None&lt;br /&gt;
*Shack: Limited Modkit 3.0&lt;br /&gt;
&lt;br /&gt;
Limitations of Modkit on Shack:&lt;br /&gt;
&lt;br /&gt;
*Limit 1&lt;br /&gt;
*Limit 2&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1008</id>
		<title>User:Rain/Sandbox2</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1008"/>
		<updated>2024-06-14T14:15:06Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Crossplay&lt;br /&gt;
!&lt;br /&gt;
!PCVR&lt;br /&gt;
!PSVR&lt;br /&gt;
!Shack&lt;br /&gt;
|-&lt;br /&gt;
|PCVR&lt;br /&gt;
|&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot;&amp;gt;Due to there being no UGC on PSVR, crossplay with PCVR is only possible in lobbies running vanilla maps.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|PSVR&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot; /&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|Shack&lt;br /&gt;
|⨉&lt;br /&gt;
|⨉&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modding capabilities:&lt;br /&gt;
&lt;br /&gt;
*PCVR: Full Modkit 3.0 [note: add link to modkit wiki page]&lt;br /&gt;
*PSVR: None&lt;br /&gt;
*Shack: Limited Modkit 3.0&lt;br /&gt;
&lt;br /&gt;
Limitations of Modkit on Shack:&lt;br /&gt;
&lt;br /&gt;
*Limit 1&lt;br /&gt;
*Limit 2&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
{{reflist}}&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1007</id>
		<title>User:Rain/Sandbox2</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox2&amp;diff=1007"/>
		<updated>2024-06-14T14:14:42Z</updated>

		<summary type="html">&lt;p&gt;Rain: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+Crossplay ! !PCVR !PSVR !Shack |- |PCVR | |✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot;&amp;gt;Due to there being no UGC on PSVR, crossplay with PCVR is only possible in lobbies running vanilla maps.&amp;lt;/ref&amp;gt; |⨉ |- |PSVR |✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot; /&amp;gt; | |⨉ |- |Shack |⨉ |⨉ | |}   Modding capabilities:  *PCVR: Full Modkit 3.0 [note: add link to modkit wiki page] *PSVR: None *Shack: Limited Modkit 3.0  Limitations of Modkit on Shack:  *Limit 1 *Limit 2 *...  &amp;lt;references /&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Crossplay&lt;br /&gt;
!&lt;br /&gt;
!PCVR&lt;br /&gt;
!PSVR&lt;br /&gt;
!Shack&lt;br /&gt;
|-&lt;br /&gt;
|PCVR&lt;br /&gt;
|&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot;&amp;gt;Due to there being no UGC on PSVR, crossplay with PCVR is only possible in lobbies running vanilla maps.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|PSVR&lt;br /&gt;
|✓&amp;lt;ref name=&amp;quot;vanilla&amp;quot; /&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|⨉&lt;br /&gt;
|-&lt;br /&gt;
|Shack&lt;br /&gt;
|⨉&lt;br /&gt;
|⨉&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modding capabilities:&lt;br /&gt;
&lt;br /&gt;
*PCVR: Full Modkit 3.0 [note: add link to modkit wiki page]&lt;br /&gt;
*PSVR: None&lt;br /&gt;
*Shack: Limited Modkit 3.0&lt;br /&gt;
&lt;br /&gt;
Limitations of Modkit on Shack:&lt;br /&gt;
&lt;br /&gt;
*Limit 1&lt;br /&gt;
*Limit 2&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=1005</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=1005"/>
		<updated>2024-06-09T14:38:35Z</updated>

		<summary type="html">&lt;p&gt;Rain: Adds GiveAll command output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR. It does not allow for reading server log messages.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ClearEmptyVehicles&lt;br /&gt;
|none&lt;br /&gt;
|Removes all vehicles that are not occupied by a player.&lt;br /&gt;
|&lt;br /&gt;
 ClearEmptyVehicles&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveAll&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
 &amp;quot;ItemID&amp;quot;: &amp;quot;galul&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|UGCAddMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Adds the mods to the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCAddMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCClearModList&lt;br /&gt;
|&lt;br /&gt;
|Removes all mods from the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCClearModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCModList&lt;br /&gt;
|&lt;br /&gt;
|Lists all mods currently on the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCRemoveMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Removes specified mod from the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCRemoveMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=1001</id>
		<title>PC Mod Managers</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=1001"/>
		<updated>2024-05-06T11:57:53Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to manage and update your content for Pavlov on PC you can use these external clients to manage, download, and update your content.&lt;br /&gt;
&lt;br /&gt;
=== Generating a Mod.io OAuth Token ===&lt;br /&gt;
To acquire a Mod.io OAuth Token, navigate to https://mod.io/me/access and give the token a name. Ensure the token has Read+Write access if you want to get the most out of the mod downloader's functionality.&lt;br /&gt;
&lt;br /&gt;
[[File:Authtoken1.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the + button to generate the new token string.  As the warning suggests, you will only be able to view this string once so save it if you know the mod downloader installation may change. The token will become inactive after one year so your new token will not last forever. Tokens can be freely generated if you need a new one, delete any token you are not using when possible. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Pasted image 20240423200855.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each mod downloader has a method for taking the Mod.io auth token. Follow the setup instructions on the README page of the downloader for further instruction.&lt;br /&gt;
&lt;br /&gt;
= Mod Managers =&lt;br /&gt;
&lt;br /&gt;
=== DownloadPavlovMapsFromModIO by RainOrigami ===&lt;br /&gt;
[[File:DownloadPavlovMapsFromModIO_Screenshot.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
.NET 6.0 based command line download tool. This tool will download and update your subscribed Mod.io Pavlov VR mods and also existing mods you have already downloaded. It is primarily made to run without user intervention for automating the downloads, for example using Windows Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/RainOrigami/DownloadPavlovMapsFromModIo&lt;br /&gt;
==='''PyPavlovUpdater''' by TotalJTM ===&lt;br /&gt;
[[File:PyPavlovUpdater.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:PyPavlovUpdater2.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Python based GUI tool to update out-of-date mods, install mods not installed, subscribe to mods you have used but have not subscribed to, and view the mods you have installed (with a filter) without needing to open Mod.io in a browser. To use this program, download the executable from the 'Releases' page, put it in a folder somewhere on your computer (not the Pavlov mod directory) and run the executable. If running for the first time, input your API key in the 'Options' menu. Then you can use the 'Download' menu to update your mod directory or subscribe to mods. Use the 'Subscribed Mods' menu to view your subscribed mods. Find new mods in the 'Full Mods' menu.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/TotalJTM/PyPavlovUpdater&lt;br /&gt;
&lt;br /&gt;
==='''Pavlov map manager''' '''by Rumrobot''' ===&lt;br /&gt;
[[File:PavlovMapManager.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Javascript based GUI mod/map downloader.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Rumrobot/pavlov-map-manager/&lt;br /&gt;
&lt;br /&gt;
===Pavlov mod manager by Aptimex===&lt;br /&gt;
Python based command line download tool.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Aptimex/pavlov-mod-manager &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=1000</id>
		<title>PC Mod Managers</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=1000"/>
		<updated>2024-05-06T11:55:53Z</updated>

		<summary type="html">&lt;p&gt;Rain: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to manage and update your content for Pavlov on PC you can use these external clients to manage, download, and update your content.&lt;br /&gt;
&lt;br /&gt;
=== Generating a Mod.io OAuth Token ===&lt;br /&gt;
To acquire a Mod.io OAuth Token, navigate to https://mod.io/me/access and give the token a name. Ensure the token has Read+Write access if you want to get the most out of the mod downloader's functionality.&lt;br /&gt;
&lt;br /&gt;
[[File:Authtoken1.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the + button to generate the new token string.  As the warning suggests, you will only be able to view this string once so save it if you know the mod downloader installation may change. The token will become inactive after one year so your new token will not last forever. Tokens can be freely generated if you need a new one, delete any token you are not using when possible. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Pasted image 20240423200855.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each mod downloader has a method for taking the Mod.io auth token. Follow the setup instructions on the README page of the downloader for further instruction.&lt;br /&gt;
&lt;br /&gt;
= Mod Managers =&lt;br /&gt;
&lt;br /&gt;
=== DownloadPavlovMapsFromModIO by RainOrigami ===&lt;br /&gt;
[[File:DownloadPavlovMapsFromModIO Screenshot.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.NET 6.0 based command line download tool. This tool will download and update your subscribed Mod.io Pavlov VR mods and also existing mods you have already downloaded. It is primarily made to run without user intervention for automating the downloads, for example using Windows Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/RainOrigami/DownloadPavlovMapsFromModIo &lt;br /&gt;
&lt;br /&gt;
==='''PyPavlovUpdater''' by TotalJTM ===&lt;br /&gt;
[[File:PyPavlovUpdater.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:PyPavlovUpdater2.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Python based GUI tool to update out-of-date mods, install mods not installed, subscribe to mods you have used but have not subscribed to, and view the mods you have installed (with a filter) without needing to open Mod.io in a browser. To use this program, download the executable from the 'Releases' page, put it in a folder somewhere on your computer (not the Pavlov mod directory) and run the executable. If running for the first time, input your API key in the 'Options' menu. Then you can use the 'Download' menu to update your mod directory or subscribe to mods. Use the 'Subscribed Mods' menu to view your subscribed mods. Find new mods in the 'Full Mods' menu.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/TotalJTM/PyPavlovUpdater&lt;br /&gt;
&lt;br /&gt;
==='''Pavlov map manager''' '''by Rumrobot''' ===&lt;br /&gt;
[[File:PavlovMapManager.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Javascript based GUI mod/map downloader.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Rumrobot/pavlov-map-manager/&lt;br /&gt;
&lt;br /&gt;
===Pavlov mod manager by Aptimex===&lt;br /&gt;
Python based command line download tool.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Aptimex/pavlov-mod-manager &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=999</id>
		<title>PC Mod Managers</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=PC_Mod_Managers&amp;diff=999"/>
		<updated>2024-05-06T11:55:11Z</updated>

		<summary type="html">&lt;p&gt;Rain: Added screenshot and adjusted description for DownloadPavlovMapsFromModIO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to manage and update your content for Pavlov on PC you can use these external clients to manage, download, and update your content.&lt;br /&gt;
&lt;br /&gt;
=== Generating a Mod.io OAuth Token ===&lt;br /&gt;
To acquire a Mod.io OAuth Token, navigate to https://mod.io/me/access and give the token a name. Ensure the token has Read+Write access if you want to get the most out of the mod downloader's functionality.&lt;br /&gt;
&lt;br /&gt;
[[File:Authtoken1.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the + button to generate the new token string.  As the warning suggests, you will only be able to view this string once so save it if you know the mod downloader installation may change. The token will become inactive after one year so your new token will not last forever. Tokens can be freely generated if you need a new one, delete any token you are not using when possible. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Pasted image 20240423200855.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each mod downloader has a method for taking the Mod.io auth token. Follow the setup instructions on the README page of the downloader for further instruction.&lt;br /&gt;
&lt;br /&gt;
= Mod Managers =&lt;br /&gt;
&lt;br /&gt;
=== DownloadPavlovMapsFromModIO by RainOrigami ===&lt;br /&gt;
[[File:DownloadPavlovMapsFromModIO Screenshot.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.NET 6.0 based command line download tool. This tool will download and update your subscribed Mod.io Pavlov VR mods and also existing mods you have already downloaded. It is primarily made to run without user intervention for automating the downloads, for example using Windows Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/RainOrigami/DownloadPavlovMapsFromModIo &lt;br /&gt;
&lt;br /&gt;
==='''PyPavlovUpdater''' by TotalJTM ===&lt;br /&gt;
[[File:PyPavlovUpdater.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:PyPavlovUpdater2.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Python based GUI tool to update out-of-date mods, install mods not installed, subscribe to mods you have used but have not subscribed to, and view the mods you have installed (with a filter) without needing to open Mod.io in a browser. To use this program, download the executable from the 'Releases' page, put it in a folder somewhere on your computer (not the Pavlov mod directory) and run the executable. If running for the first time, input your API key in the 'Options' menu. Then you can use the 'Download' menu to update your mod directory or subscribe to mods. Use the 'Subscribed Mods' menu to view your subscribed mods. Find new mods in the 'Full Mods' menu.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/TotalJTM/PyPavlovUpdater&lt;br /&gt;
&lt;br /&gt;
==='''Pavlov map manager''' '''by Rumrobot''' ===&lt;br /&gt;
[[File:PavlovMapManager.png|left|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Javascript based GUI mod/map downloader.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Rumrobot/pavlov-map-manager/&lt;br /&gt;
&lt;br /&gt;
===Pavlov mod manager by Aptimex===&lt;br /&gt;
Python based command line download tool.&lt;br /&gt;
&lt;br /&gt;
Link: https://github.com/Aptimex/pavlov-mod-manager &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=File:DownloadPavlovMapsFromModIO_Screenshot.png&amp;diff=998</id>
		<title>File:DownloadPavlovMapsFromModIO Screenshot.png</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=File:DownloadPavlovMapsFromModIO_Screenshot.png&amp;diff=998"/>
		<updated>2024-05-06T11:50:08Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A screenshot of the DownloadPavlovMapsFromModIO tool downloading mods&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Default_Maps&amp;diff=997</id>
		<title>Default Maps</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Default_Maps&amp;diff=997"/>
		<updated>2024-05-05T20:56:34Z</updated>

		<summary type="html">&lt;p&gt;Rain: Update 30 Autumn, Carnival&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map ID List ==&lt;br /&gt;
Here is the list of item IDs for the default maps. This is mainly useful for community servers and is the correct mapID for each map: &lt;br /&gt;
&lt;br /&gt;
'''Both shack and PC'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Autumn&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Bridge&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Bunker&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Carnival&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Datacenter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Industry&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Sand&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Santorini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Siberia&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Station&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Hospital&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Range&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WW2range&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Tutorial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Killhouse&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shack Only'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Stalingrad_shack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Foundation&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Haguenau&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;OGcontainers&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PC only'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;containeryard&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Stalingrad_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Datacenter_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;santorini_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sand_night&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Siberia_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;station_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;industry_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;containeryard_night&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autumn ==&lt;br /&gt;
Autumn was added to Pavlov in '''Update 30'''.&lt;br /&gt;
&lt;br /&gt;
==Bridge==&lt;br /&gt;
[[File:Bridge Top-Down.jpg|thumb|Birdseye View of Bridge.]]&lt;br /&gt;
&lt;br /&gt;
Bridge was added to Pavlov in '''Update 10''' and was redesigned in '''Update 24''', set in a canal-heavy city in Europe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Bunker==&lt;br /&gt;
[[File:Bunker Top-Down.jpg|thumb|‍ ‍Birdseye view of Bunker.]]&lt;br /&gt;
Bunker is a map that came to Pavlov during '''Update 28'''. It supports all modes in Pavlov and was mainly designed for SND. It has two bombsites, one in the generator/turbine room, and one in the radar room. It is a Soviet style bunker featuring living quarters, a large hangar, and an empty missile silo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
== Carnival ==&lt;br /&gt;
Carnival was added to Pavlov in '''Update 30'''.&lt;br /&gt;
&lt;br /&gt;
==Container Yard==&lt;br /&gt;
[[File:Container Yard Top-Down.jpg|thumb|Birdseye view of Container Yard.]]&lt;br /&gt;
[[File:Container Yard.jpg|thumb|400x400px|Container Yard, looking at the house from T spawn. |none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Datacenter==&lt;br /&gt;
[[File:Datacenter Top-Down.jpg|thumb|Birdseye view of Datacenter.]]&lt;br /&gt;
Datacenter is Pavlov's first default map. It is symmetrical in design, has long hallways and corridors, a garage area, and two bombsites: one in the '''server room''', the other in the second floor on the back of a '''pillar'''. It can be played in both [[Gamemodes|Search and Destroy]] and [[Gamemodes|Team Deathmatch]].[[File:Datacenter middle.jpg|thumb|400px|Datacenter's Middle area.|none]]&lt;br /&gt;
==Datacenter &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Datacenter &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Datacenter at night time. It is an zombies, infection, and hide exclusive map (PC &amp;amp; PSVR2 ONLY).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
==Foundation &amp;lt;small&amp;gt;(Shack Only)&amp;lt;/small&amp;gt;==&lt;br /&gt;
[[File:Foundation TopDown.png|thumb|Bird's Eye view of Foundation]]&lt;br /&gt;
&lt;br /&gt;
Foundation is a community map created by IL PRIMO and resembles a construction site. It consists of two bombsites which are both located on the base of cranes.[[File:Foundation.jpg|thumb|Foundation, overlooking A from CT spawn.|none]]&lt;br /&gt;
==Haguenau &amp;lt;small&amp;gt;(Shack Only)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Hagnueau is a shack exclusive map designed by il Primo[[File:Haguenau.jpg|thumb|Haguenau, looking at B.|none]]&lt;br /&gt;
&lt;br /&gt;
==Harbor (Shack Only)==&lt;br /&gt;
[[File:Harbor TopDown.png|thumb|Bird's Eye view of Harbor]]&lt;br /&gt;
Harbor is an SnD map originally created by wsly and watevs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Industry==&lt;br /&gt;
[[File:Industry Top-Down.jpg|thumb|Birdseye view of Industry.]]&lt;br /&gt;
Industry was added to Pavlov during '''Update 26''' and was originally designed by a member of the Pavlov community named Voxie. The map features a lobby area, a parking garage, and a warehouse. This map was designed for SND but supports all modern game modes. The two bombsites on this map are located on the van in the garage and on the pillar of the raised section in the warehouse.&lt;br /&gt;
&lt;br /&gt;
Industry was later released on the Meta Quest in '''RC3'''.[[File:Pavlov Industry.jpg|thumb|Industry's Warehouse and Office|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Industry &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Industry &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Industry at night time. It is a zombies, infection, and hide exclusive map.&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
==OG Containers &amp;lt;small&amp;gt;(Shack Only)&amp;lt;/small&amp;gt;==&lt;br /&gt;
[[File:OGContainers.jpg|thumb|OG Containers, floating nearby CT spawn.|none]]&lt;br /&gt;
==Sand==&lt;br /&gt;
[[File:Sand Top-Down.jpg|thumb|Birdseye view of Sand.]]&lt;br /&gt;
Sand was added in '''Update 12''', along with support for community maps. Sand has a visual style similar to [[http://counterstrike.wikia.com/wiki/Dust Dust from Counter Strike]], using a similar Middle Eastern setting and Islamic architecture. Sand was the first Search and Destroy map and was designed with the game mode in mind. It has a variety of ways to enter the two bombsites, a distinct middle area that connects all parts of the map, and various strategies in which to attack or defend either bombsite. &lt;br /&gt;
[[File:Sand_B_site.jpg|thumb|400px|Sand ('''Update 12''' ver. ), overlooking B site from CT spawn. |none]]Sand was redesigned in '''Update 29''' to match with Vankrupt's map standards in 2023. All of the textures, models, and bombsites were all changed, although the map layout stayed relatively the same.[[File:Sand Upd29.jpg|thumb|400x400px|Sand ('''Update 29''' ver.) overlooking B site from CT spawn.|none]]&lt;br /&gt;
==Sand &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Sand &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Sand at night time. It is a zombies, infection, and hide exclusive map. (ONLY ON PC &amp;amp; PSVR2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Santorini==&lt;br /&gt;
[[File:Santorini Top-Down.jpg|thumb|Birdseye view of Santorini.]]Set in the Greek Island of the Aegean Sea, Santorini is an inclined map in a lovely blue and white color tones with the traditional 3 lanes of movement the Search and Destroy is known for. Come to the market and buy some fish![[File:Santorini.jpg|thumb|400x400px|Santorini, hovering over B site from CT spawn.|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
== Santorini &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Santorini &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Santorini at night time. It is a zombies, infection, &amp;amp; hide exclusive map (PC &amp;amp; PSVR2 ONLY).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
==Siberia==&lt;br /&gt;
[[File:Prisonbreak Top-Down.jpg|thumb|Birdseye view of Siberia.]]&lt;br /&gt;
Siberia represents a prison in a snow biome and was released in '''Update 22'''. [[File:Siberia.jpg|thumb|400x400px|Siberia, looking over the prison bombsite from T spawn.|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Siberia &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; ==&lt;br /&gt;
Siberia &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Siberia at night time.The map is extended outside of the fence and walls of the original. It is a zombies, infection, and hide exclusive map (PC &amp;amp; PSVR2 ONLY).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
==Stalingrad==&lt;br /&gt;
[[File:Stalingrad Top-Down.jpg|thumb|Birdseye view of Stalingrad.]]&lt;br /&gt;
Named after Pavlov VRs namesake, the battle of Stalingrad laid host to Sergeant Yakov Pavlov's fortified defense from the German Wehrmacht during the fall season of 1942. Intended to provide wide lands of traversal for tanks to navigate and various demolished buildings to have close combat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stalingrad was added to Pavlov in '''Update 24'''.Stalingrad was later added to Pavlov Shack in '''RC3'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Stalingrad &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Stalingrad &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Stalingrad at night time. It is a zombies, infection, and hide exclusive map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
==Station==&lt;br /&gt;
[[File:Subway Top-Down Upper.jpg|thumb|250x250px|Birdseye view of the top floor of Station.]]&lt;br /&gt;
[[File:Subway Top-Down Middle.jpg|thumb|250x250px|Birdseye view of the middle floor of Station.]]&lt;br /&gt;
[[File:Subway Top-Down Lower.jpg|thumb|250x250px|Birdseye view of the lower floor of Station.]]Station is an underground map set in a US subway station. With 3 layers of movement and a risk of dying from falling in the train tracks, this closed transit system with a cold atmosphere is a different change-up from a normal flat structure to a layered system.&lt;br /&gt;
&lt;br /&gt;
Station was added to Pavlov in '''Update 24'''[[File:Station.jpg|thumb|400x400px|Station, looking at the train bombsite from T spawn.|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍&lt;br /&gt;
‍&lt;br /&gt;
&lt;br /&gt;
==Station &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; ==&lt;br /&gt;
Station &amp;lt;small&amp;gt;(Night)&amp;lt;/small&amp;gt; resembles Station at night time where most of the lights in the original are turned off. It is a zombies, infection, and hide exclusive map (PC &amp;amp; PSVR2 ONLY).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
‍ &lt;br /&gt;
‍&lt;br /&gt;
==Hospital ==&lt;br /&gt;
Hospital is a zombies mode exclusive map released in '''Update 22''' and is a relatively small map with one floor. Its interior represents a run down hospital.    &lt;br /&gt;
&lt;br /&gt;
‍ &lt;br /&gt;
&lt;br /&gt;
==Tutorial==&lt;br /&gt;
Tutorial is the first map in the &amp;quot;TRAINING&amp;quot; tab in the main menu. Its purpose is to help newer players learn the basics of Pavlov.&lt;br /&gt;
&lt;br /&gt;
It's map resembles a killhouse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Map Description:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;Learn the basic mechanics and controls.&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn the basic mechanics before jumping onto the battlefield.&lt;br /&gt;
&lt;br /&gt;
Here you will know about:&lt;br /&gt;
&lt;br /&gt;
*Team Communication&lt;br /&gt;
*Basic movement&lt;br /&gt;
*Equipment and use of fire weapons and grenades&lt;br /&gt;
*Use of the bomb of Search &amp;amp; Destroy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Video of the Pavlov Tutorial:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/DywgkSqblfY&lt;br /&gt;
&lt;br /&gt;
==Shooting Range &amp;lt;small&amp;gt;(Modern)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Shooting Range (Modern) is the second map in the &amp;quot;TRAINING&amp;quot; tab found in the main menu. Its main purpose is to help you practice your aim with modern weapons.&lt;br /&gt;
Its map resembles an indoor shooting range. The doors to the left lead to Killhouse. The doors to the right lead to Shooting Range (WW&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Map Description:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;Test weapons shooting to static or mobile targets.&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here you can test and practice with all the modern weapons in the game.&lt;br /&gt;
&lt;br /&gt;
You will also find moving targets and various exercises to improve your aim.&lt;br /&gt;
&lt;br /&gt;
==Shooting Range &amp;lt;small&amp;gt;(WW2)&amp;lt;/small&amp;gt;==&lt;br /&gt;
Shooting Range (WW&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;) is the third map in the &amp;quot;TRAINING&amp;quot; tab found in the main menu. Its main purpose is to help you practice your aim with WW&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; weapons.&lt;br /&gt;
&lt;br /&gt;
Its map resembles an indoor shooting range. The doors to the left bring you to Shooting Range (Modern). The doors to the right bring you to Killhouse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Map Description:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;Test weapons shooting to static or mobile targets.&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here you can test and practice with WW&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; weapons.&lt;br /&gt;
&lt;br /&gt;
You will also find moving targets and various exercises to improve your aim.&lt;br /&gt;
&lt;br /&gt;
== Killhouse==&lt;br /&gt;
Killhouse is the last map in the &amp;quot;TRAINING&amp;quot; tab found in the main menu. Its main purpose is to help you practice your aim.&lt;br /&gt;
Its map resembles a killhouse. There is a door to the left of the main entrance of the &amp;quot;Circuit&amp;quot; that leads to another door which brings you too Shooting Range &amp;lt;small&amp;gt;(Modern).&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Map Description:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;Put your skills to the test in a circuit.&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choose a weapon and enter the circuit.&lt;br /&gt;
&lt;br /&gt;
The objective is to shoot all the targets and complete the circuit in the shortest time possible.&lt;br /&gt;
&lt;br /&gt;
*Shots to the body score 1 point.&lt;br /&gt;
* Shots to the head score 2 points.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Video of Killhouse:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/avGOm9EgjEc&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=976</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=976"/>
		<updated>2024-04-17T23:14:17Z</updated>

		<summary type="html">&lt;p&gt;Rain: UGC*Mod* commands are no longer shack only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR. It does not allow for reading server log messages.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ClearEmptyVehicles&lt;br /&gt;
|none&lt;br /&gt;
|Removes all vehicles that are not occupied by a player.&lt;br /&gt;
|&lt;br /&gt;
 ClearEmptyVehicles&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|UGCAddMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Adds the mods to the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCAddMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCClearModList&lt;br /&gt;
|&lt;br /&gt;
|Removes all mods from the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCClearModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCModList&lt;br /&gt;
|&lt;br /&gt;
|Lists all mods currently on the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCRemoveMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Removes specified mod from the server.&lt;br /&gt;
|&lt;br /&gt;
 UGCRemoveMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=975</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=975"/>
		<updated>2024-04-15T19:31:20Z</updated>

		<summary type="html">&lt;p&gt;Rain: Adds new ClearEmptyVehicles RCON command from Update 30 to Commands list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR. It does not allow for reading server log messages.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ClearEmptyVehicles&lt;br /&gt;
|none&lt;br /&gt;
|Removes all vehicles that are not occupied by a player.&lt;br /&gt;
|&lt;br /&gt;
 ClearEmptyVehicles&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|UGCAddMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Adds the mods to the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCAddMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCClearModList&lt;br /&gt;
|&lt;br /&gt;
|Removes all mods from the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCClearModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCModList&lt;br /&gt;
|&lt;br /&gt;
|Lists all mods currently on the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCRemoveMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Removes specified mod from the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCRemoveMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=940</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=940"/>
		<updated>2023-11-08T13:13:47Z</updated>

		<summary type="html">&lt;p&gt;Rain: Added UGC*Mod* Shack commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR. It does not allow for reading server log messages.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|UGCAddMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Adds the mods to the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCAddMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCClearModList&lt;br /&gt;
|&lt;br /&gt;
|Removes all mods from the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCClearModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCModList&lt;br /&gt;
|&lt;br /&gt;
|Lists all mods currently on the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCModList&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|UGCRemoveMod&lt;br /&gt;
|[UGCModID]&lt;br /&gt;
|Removes specified mod from the server. Shack only.&lt;br /&gt;
|&lt;br /&gt;
 UGCRemoveMod UGC3267926&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=772</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=772"/>
		<updated>2023-07-06T08:47:10Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What does and does not belong on this page==&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR dedicated servers works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to dedicated servers, like how to get an MD5 checksum from text, how to use bash, execute files, use (s)ftp, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page. That's what guides are for and wikis do not contain guides! Guides may be linked at the bottom of the article.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
DO NOT REPLICATE INFORMATION THAT IS AVAILABLE IN OTHER PAGES OR WIKIS. LINK TO THEM INSTEAD!&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to dedicated server software.&lt;br /&gt;
&lt;br /&gt;
==Grammar and syntax==&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=771</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=771"/>
		<updated>2023-07-06T08:46:17Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''TODO: Rename the page to &amp;quot;Dedicated server&amp;quot; because THIS IS NOT A GUIDE!'''&lt;br /&gt;
&lt;br /&gt;
== Hosting ==&lt;br /&gt;
&lt;br /&gt;
'''There are no Windows binaries'''&lt;br /&gt;
=== Server requirements ===&lt;br /&gt;
'''OS''': Linux (Ubuntu 18.04 x86_64, Ubuntu 19/04 amd64, Ubuntu 20.04, and Rocky Linux 8 are confirmed working) &lt;br /&gt;
&lt;br /&gt;
'''Memory''': 2GB RAM + 1GB RAM per each additional server with 10 players. More RAM is recommended for larger maps, higher player counts, or complex game modes. &lt;br /&gt;
&lt;br /&gt;
'''CPU''': A ~2.5Ghz CPU will comfortably support a 10 player server. A ~4Ghz CPU will comfortably support 24 players. &lt;br /&gt;
&lt;br /&gt;
'''Note''': These are '''not''' hard limits for requirements, just suggestions for the best performance, based on experiences with many server providers on different grades of hardware.&lt;br /&gt;
&lt;br /&gt;
Pavlov servers are functionally single threaded.&lt;br /&gt;
&lt;br /&gt;
=== Software dependencies ===&lt;br /&gt;
&lt;br /&gt;
* gdb (TODO: do you actually need gdb to run a server? wtf?)&lt;br /&gt;
* curl (TODO: do you actually need curl to run a server? does pavlov download stuff using curl?)&lt;br /&gt;
* lib32gcc1(-s1)&lt;br /&gt;
* libc++-dev&lt;br /&gt;
&lt;br /&gt;
=== SteamCMD ===&lt;br /&gt;
The app ID for Pavlov VR dedicated servers is &amp;lt;code&amp;gt;622970&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Instructions on how to use SteamCMD are available in the [https://developer.valvesoftware.com/wiki/SteamCMD Valve Developer Community Wiki].&lt;br /&gt;
&lt;br /&gt;
To host '''Shack Live''' (Quest) use &amp;lt;code&amp;gt;-beta shack&amp;lt;/code&amp;gt;, to host '''Shack RC''' (Quest) use &amp;lt;code&amp;gt;-beta shack_beta&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Update 29 of the PCVR version of Pavlov VR dedicated servers require you to completely break your system:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo rm /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt; &lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ln -s /usr/lib/x86_64-linux-gnu/libc++.so.1 /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO: By all that is good and fair, modifying system files like this for one piece of software is unacceptable. This can be done in a different, less intrusive way.'''&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Moderators, Blacklist, Whitelist ===&lt;br /&gt;
The following three files allow you to specify moderators, banned players, and whitelist players.&lt;br /&gt;
&lt;br /&gt;
They are required to be able to use &amp;lt;code&amp;gt;AddMod&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ban&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Banlist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ModeratorList&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RemoveMod&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Unban&amp;lt;/code&amp;gt; [[Rcon Overview and Commands|RCON commands]] but are otherwise optional.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/mods.txt&lt;br /&gt;
Pavlov/Saved/Config/blacklist.txt&lt;br /&gt;
Pavlov/Saved/Config/whitelist.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;'''TODO: Describe the file contents, give examples.'''&lt;br /&gt;
&lt;br /&gt;
=== Game.ini ===&lt;br /&gt;
This file contains the majority of server configuration keys. &lt;br /&gt;
It is automatically created when first starting a server, it can also be created manually. &amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/LinuxServer/Game.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keys ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game.ini keys&lt;br /&gt;
!Key&lt;br /&gt;
!Allowed values&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|bEnabled&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables registering with the master server to show or hide the server from the server list&lt;br /&gt;
'''TODO: confirm that this is true''', and why is this even a thing, you can't direct connect to servers anyways...&lt;br /&gt;
|-&lt;br /&gt;
|ServerName&lt;br /&gt;
|Any ASCII text value up to 35 characters&lt;br /&gt;
|&amp;lt;code&amp;gt;DedicatedServer&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the name with which the server will be listed as&lt;br /&gt;
'''TODO: confirm exact maximum character limit and which characters are allowed (utf8? unicode?)'''&lt;br /&gt;
|-&lt;br /&gt;
|MaxPlayers&lt;br /&gt;
|Integer&lt;br /&gt;
Maximum 10 for Shack, 24 for PC.&lt;br /&gt;
|&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the amount of available player slots&lt;br /&gt;
|-&lt;br /&gt;
|ApiKey&lt;br /&gt;
|Obsolete, leave empty.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bSecured&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables Valve Anti-Cheat (VAC)&lt;br /&gt;
|-&lt;br /&gt;
|bCustomServer&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables &amp;quot;some new modding tools&amp;quot;. Save and HTTP functions.&lt;br /&gt;
Required to write to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt; for bans.&lt;br /&gt;
'''TODO: specify exactly what those new modding tools are.'''&lt;br /&gt;
|-&lt;br /&gt;
|bCompetitive&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables competitive mode for SND&lt;br /&gt;
|-&lt;br /&gt;
|bVerboseLogging&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Verbose logging mostly consists of [[Setting up a dedicated server#Verbose Logging|detailed statistics]].&lt;br /&gt;
This will significantly increase logging.&lt;br /&gt;
|-&lt;br /&gt;
|bWhitelist&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables usage of the whitelist, allowing only users in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; to join&lt;br /&gt;
|-&lt;br /&gt;
|RefreshListTime&lt;br /&gt;
|Integer, seconds&lt;br /&gt;
|&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the interval at which the server reads changes from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LimitedAmmoType&lt;br /&gt;
|Integer, Type ID&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the limited ammo type, see [[Setting up a dedicated server#Limited Ammo Types|Limited Ammo Types]]&lt;br /&gt;
|-&lt;br /&gt;
|TimeLimit&lt;br /&gt;
|Integer, minutes&lt;br /&gt;
|&amp;lt;code&amp;gt;60&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the time limit for each map&lt;br /&gt;
|-&lt;br /&gt;
|TickRate&lt;br /&gt;
|Integer, ticks per second&lt;br /&gt;
Recommended between 50 and 120&lt;br /&gt;
|&amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the rate at which the server processes and updates game state information and network events.&lt;br /&gt;
Changes weapon de-spawn time and breaks some game modes. Recommended to leave at default value.&lt;br /&gt;
'''TODO: what game modes? breaks how? needs clarification.'''&lt;br /&gt;
|-&lt;br /&gt;
|Password&lt;br /&gt;
|Integer, 1 to 4 digit pin&lt;br /&gt;
|&amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the server PIN that is required to be entered before being able to join the server.&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
Commenting out or leaving the value empty will remove the pin.&lt;br /&gt;
|-&lt;br /&gt;
|BalanceTableURL&lt;br /&gt;
|Text formatted as &amp;lt;code&amp;gt;user/repository/branch&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;vankruptgames/BalancingTable/main&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the balance table Git URL to be used by the server.&lt;br /&gt;
See [https://github.com/vankruptgames/BalancingTable Balancing Table] for instructions.&lt;br /&gt;
|-&lt;br /&gt;
|AFKTimeLimit&lt;br /&gt;
|Integer, seconds&lt;br /&gt;
|&amp;lt;code&amp;gt;60&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the maximum amount of time a player can be idle before being automatically kicked.&lt;br /&gt;
Setting this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; will disable AFK kicking.&lt;br /&gt;
'''TODO: Pretty sure this is incorrect, while testing I've set it to 0 and got kicked nonetheless. Only being moderator prevents afk kicking. Requires further testing.'''&lt;br /&gt;
|-&lt;br /&gt;
|bInitialized&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|'''TODO: What does this do?'''&lt;br /&gt;
|-&lt;br /&gt;
|DepotURL&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: What does this do?'''&lt;br /&gt;
|-&lt;br /&gt;
|bBroadcast&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Probably enables or disables broadcasting to pavtv?&lt;br /&gt;
'''TODO: What does this do?'''&lt;br /&gt;
|}&lt;br /&gt;
'''TODO: Verify all default values, right now I'm just guessing'''&lt;br /&gt;
&lt;br /&gt;
'''TODO: Sort alphabetically'''&lt;br /&gt;
&lt;br /&gt;
For maps running a Custom gamemode (CodZ, BR, Duel, etc.) it doesn't matter which gamemode you choose, as the map will automatically override it with the custom mode.&lt;br /&gt;
&lt;br /&gt;
==== Limited Ammo Types ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!AmmoType&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Unlimited&lt;br /&gt;
|Players have unlimited ammo, carry no ammo boxes and do not display an ammo count on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Limited Generic&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon class (Pistol, Submachine gun, Rifles/MGs, Shotgun, Sniper).&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Limited Specific&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon.&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Custom&lt;br /&gt;
|Allows for full control over ammo by the map.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
| Limited Special&lt;br /&gt;
|'''All weapons except &amp;quot;special&amp;quot; weapons are unlimited, more clarification is needed.''' &lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Boxless&lt;br /&gt;
|'''Like limited generic but without boxes? Clarification is needed.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Map rotation ====&lt;br /&gt;
The map rotation is defined in the &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Upon server start, the first map in the rotation will be started.&lt;br /&gt;
&lt;br /&gt;
When a map has ended, the next map in the rotation will be started.&lt;br /&gt;
&lt;br /&gt;
When the end of the rotation has been reached, it will start from the beginning again.&lt;br /&gt;
&lt;br /&gt;
Mod.io maps will be downloaded and updated automatically, if required, when they are rotated to.&lt;br /&gt;
&lt;br /&gt;
Each entry requires a separate line of the following format:&amp;lt;pre&amp;gt;&lt;br /&gt;
MapRotation=(MapId=&amp;quot;Name or ID&amp;quot;, GameMode=&amp;quot;Game Mode&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;code&amp;gt;Name or ID&amp;lt;/code&amp;gt;: See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Game Mode&amp;lt;/code&amp;gt;: See [[Gamemodes|Game Modes]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game modes&lt;br /&gt;
!GameMode &lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|DM&lt;br /&gt;
|Death match&lt;br /&gt;
|-&lt;br /&gt;
|KOTH&lt;br /&gt;
|King of the hill&lt;br /&gt;
|-&lt;br /&gt;
|GUN&lt;br /&gt;
| Gun game&lt;br /&gt;
|-&lt;br /&gt;
|OITC&lt;br /&gt;
| One in the chamber&lt;br /&gt;
|-&lt;br /&gt;
|SND&lt;br /&gt;
|Search and destroy&lt;br /&gt;
|-&lt;br /&gt;
|TANKTDM&lt;br /&gt;
|WW2 Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
| TDM&lt;br /&gt;
|Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
|TTT&lt;br /&gt;
|Trouble in Terrorist Town&lt;br /&gt;
|-&lt;br /&gt;
|WW2GUN&lt;br /&gt;
|WW2 gun game&lt;br /&gt;
|-&lt;br /&gt;
|ZWV&lt;br /&gt;
| Zombie wave survival&lt;br /&gt;
|-&lt;br /&gt;
|HIDE&lt;br /&gt;
|The Hidden &lt;br /&gt;
|-&lt;br /&gt;
|INFECTION&lt;br /&gt;
|Hidden infection&lt;br /&gt;
|-&lt;br /&gt;
|PUSH&lt;br /&gt;
|Push&lt;br /&gt;
|-&lt;br /&gt;
|PH&lt;br /&gt;
|Prop hunt&lt;br /&gt;
|}&lt;br /&gt;
'''TODO: move this to game modes page.'''&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[/Script/Pavlov.DedicatedServer]&lt;br /&gt;
# This is a comment&lt;br /&gt;
bEnabled=True&lt;br /&gt;
ServerName=Your server&lt;br /&gt;
MaxPlayers=10&lt;br /&gt;
bSecured=True&lt;br /&gt;
bCustomServer=True&lt;br /&gt;
bWhitelist=False&lt;br /&gt;
RefreshListTime=120&lt;br /&gt;
LimitedAmmoType=0&lt;br /&gt;
TickRate=90&lt;br /&gt;
TimeLimit=60&lt;br /&gt;
Password=1234&lt;br /&gt;
bInitialized=False&lt;br /&gt;
DepotURL=&lt;br /&gt;
ApiKey=&lt;br /&gt;
bCompetitive=False&lt;br /&gt;
bBroadcast=True&lt;br /&gt;
BalanceTableURL=vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
bVerboseLogging=True&lt;br /&gt;
AFKTimeLimit=0&lt;br /&gt;
&lt;br /&gt;
MapRotation=(MapId=&amp;quot;datacenter&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC3094680&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2996823&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;sand&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2841131&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2829349&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;container&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2844898&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2804502&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCON ===&lt;br /&gt;
The RCON password and port are configured in &amp;lt;code&amp;gt;RconSettings.txt&amp;lt;/code&amp;gt;. If the file does not exist or if the values in it are empty, no RCON will be provided.&amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/RconSettings.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keys ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Allowed values&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Password&lt;br /&gt;
|Text&lt;br /&gt;
|&amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the password used to authenticate with RCON&lt;br /&gt;
|-&lt;br /&gt;
|Port&lt;br /&gt;
|Integer, 0-65535&lt;br /&gt;
|&amp;lt;code&amp;gt;9100&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the port at which RCON will listen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password=very secure password&lt;br /&gt;
Port=9100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
==== Startup parameters ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 -PORT=7777&lt;br /&gt;
|Sets the server port to listen to.&lt;br /&gt;
Secondary port is &amp;lt;code&amp;gt;port + 400&amp;lt;/code&amp;gt;.&lt;br /&gt;
For example: Base port &amp;lt;code&amp;gt;7777&amp;lt;/code&amp;gt;, secondary port &amp;lt;code&amp;gt;8177&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 -COMPETITIVE=1&lt;br /&gt;
|Enables competitive mode.&lt;br /&gt;
This is the same as enabling competitive move in the &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Ask dev for complete list of arguments or, much easier and faster, decompile the binary and find them.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server executable ====&lt;br /&gt;
With the server files, a startup script &amp;lt;code&amp;gt;PavlovServer.sh&amp;lt;/code&amp;gt; is shipped. It adds global execution privileges to the server executable, and adds an argument &amp;lt;code&amp;gt;Pavlov&amp;lt;/code&amp;gt; to the startup parameters.&lt;br /&gt;
&lt;br /&gt;
The server executable is located in &amp;lt;code&amp;gt;Pavlov/Binaries/Linux/PavlovServer-Linux-Shipping&amp;lt;/code&amp;gt; and can be executed directly. It already has global execution privileges by default.&lt;br /&gt;
&lt;br /&gt;
Either of these can be used to start the server, the &amp;lt;code&amp;gt;PavlovServer.sh&amp;lt;/code&amp;gt; script will forward all startup parameters to the server executable.&lt;br /&gt;
&lt;br /&gt;
== Shack ==&lt;br /&gt;
Shack servers and PCVR servers have a few differences which will be described in this section.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Since there are also 2 shack versions, documenting all this is a huge chore, especially for someone who doesn't touch this sh..izzle.'''&lt;br /&gt;
&lt;br /&gt;
=== Game.ini keys ===&lt;br /&gt;
The following keys do not exist for Shack servers.&lt;br /&gt;
&lt;br /&gt;
* '''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Custom maps ===&lt;br /&gt;
Shack (both versions??) do not support Mod.io and require manual upload of any custom map.&lt;br /&gt;
&lt;br /&gt;
Also players download the custom maps directly from the server?&lt;br /&gt;
&lt;br /&gt;
'''TODO: Needs figuring out!'''&lt;br /&gt;
&lt;br /&gt;
To use custom maps, the maps folder first needs to be created manually.&lt;br /&gt;
 Pavlov/Saved/maps&lt;br /&gt;
Custom map folders will need to be placed into this folder.&lt;br /&gt;
&lt;br /&gt;
For example:&amp;lt;pre&amp;gt;Pavlov/Saved/maps&lt;br /&gt;
|- SVR_Arena&lt;br /&gt;
 |- metadata.json&lt;br /&gt;
 |- other mod files&lt;br /&gt;
|- SRV_Industrial&lt;br /&gt;
 |- metadata.json&lt;br /&gt;
 |- ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Downloading Shack maps ====&lt;br /&gt;
There are multiple places where you can download shack maps. Some maps are provided by the map creator.&lt;br /&gt;
&lt;br /&gt;
* https://www.pavlovquest.com/maps&lt;br /&gt;
* https://pavlovhorde.com/mapsList&lt;br /&gt;
* #shack-map-showcase in the Pavlov VR Discord ('''TODO: link it!''')&lt;br /&gt;
&lt;br /&gt;
=== Server executable ===&lt;br /&gt;
PavlovServer.sh exists for shack? does it do the same useless additional stuff?&lt;br /&gt;
&lt;br /&gt;
Is the name of the executable the same? For both shack versions?&lt;br /&gt;
&lt;br /&gt;
'''TODO: Needs figuring out!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Shack Maps (Quest) ====&lt;br /&gt;
&lt;br /&gt;
If you try to use the steps above to add maps for Shack, youll run into issues very quickly. This is because Shack has no affiliation to Steam, and therefore cannot use Steam Workshop maps like above. In the future, these steps will apply to PC servers as well, allowing a server to hold the map itself, instead of offloading to Steam.&lt;br /&gt;
&lt;br /&gt;
To get started, first create the directory to hold the maps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use any number of methods to move the map files onto the server, but ill go over the two simplest, starting with a GUI approach&lt;br /&gt;
&lt;br /&gt;
Download and install CyberDuck onto your &amp;quot;home&amp;quot; PC (Whatever PC you use for access to the server, but not the server itsself): https://cyberduck.io/&lt;br /&gt;
&lt;br /&gt;
Next, download and unzip your map of choice from https://www.pavlovquest.com/ , https://pavlovhorde.com/mapsList, or look in #shack-map-showcase channel in the discord server.  I'm going to use Cheeto's WW2 Items test (http://www.mediafire.com/file/emyt9bs1z9u9ykw/SVR_Cheeto_Items.zip/file ) for this example, you do what you like&lt;br /&gt;
&lt;br /&gt;
In the top left corner, open a connection, set the connection type to SFTP, and fill in the rest of the information. User will be root, password is whatever you set the root pw as (toor in Ubuntu by default)&lt;br /&gt;
&lt;br /&gt;
In the directory dropdown (itll say /root) go back to /&lt;br /&gt;
&lt;br /&gt;
Follow the directories until we arrive back at our &amp;quot;maps&amp;quot; folder &amp;lt;pre&amp;gt;/home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drag and drop the unzipped map folder into the main window, in this case itll be SVR_Cheeto_Items&lt;br /&gt;
&lt;br /&gt;
Hit Allow&lt;br /&gt;
&lt;br /&gt;
Youll now see a folder named SVR_Cheeto_Items, and within it should be nothing but 3 files. If there is another folder in it, move this folder to the maps directory, otherwise the server wont work. The 3 files (2 .PAK one .JSON) should be in home/steam/pavlovserver/Pavlov/Saved/maps/SVR_Cheeto_Items, no more, no less.&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
To play the map, you can either use RCON switch map command, or to add the map to your servers automatic map rotation list, add the map's folder name to your Game.ini. This replaces the MapID section, so for our example it would be &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And thats all! Disconnect CyberDuck from your server before playing, otherwise youll have difficulty joining.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RCON automation]]&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=770</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=770"/>
		<updated>2023-06-30T12:24:56Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''TODO: Rename the page to &amp;quot;Dedicated server&amp;quot; because THIS IS NOT A GUIDE!'''&lt;br /&gt;
&lt;br /&gt;
== Hosting ==&lt;br /&gt;
&lt;br /&gt;
'''There are no Windows binaries'''&lt;br /&gt;
=== Server requirements ===&lt;br /&gt;
'''OS''': Linux (Ubuntu 18.04 x86_64, Ubuntu 19/04 amd64, Ubuntu 20.04, and Rocky Linux 8 are confirmed working) &lt;br /&gt;
&lt;br /&gt;
'''Memory''': 2GB RAM + 1GB RAM per each additional server with 10 players. More RAM is recommended for larger maps, higher player counts, or complex game modes. &lt;br /&gt;
&lt;br /&gt;
'''CPU''': A ~2.5Ghz CPU will comfortably support a 10 player server. A ~4Ghz CPU will comfortably support 24 players. &lt;br /&gt;
&lt;br /&gt;
'''Note''': These are '''not''' hard limits for requirements, just suggestions for the best performance, based on experiences with many server providers on different grades of hardware.&lt;br /&gt;
&lt;br /&gt;
Pavlov servers are functionally single threaded.&lt;br /&gt;
&lt;br /&gt;
=== Software dependencies ===&lt;br /&gt;
&lt;br /&gt;
* gdb (TODO: do you actually need gdb to run a server? wtf?)&lt;br /&gt;
* curl (TODO: do you actually need curl to run a server? does pavlov download stuff using curl?)&lt;br /&gt;
* lib32gcc1(-s1)&lt;br /&gt;
* libc++-dev&lt;br /&gt;
&lt;br /&gt;
=== SteamCMD ===&lt;br /&gt;
The app ID for Pavlov VR dedicated servers is &amp;lt;code&amp;gt;622970&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Instructions on how to use SteamCMD are available in the [https://developer.valvesoftware.com/wiki/SteamCMD Valve Developer Community Wiki].&lt;br /&gt;
&lt;br /&gt;
To host '''Shack Live''' (Quest) use &amp;lt;code&amp;gt;-beta shack&amp;lt;/code&amp;gt;, to host '''Shack RC''' (Quest) use &amp;lt;code&amp;gt;-beta shack_beta&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Update 29 of the PCVR version of Pavlov VR dedicated servers require you to completely break your system:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo rm /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt; &lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ln -s /usr/lib/x86_64-linux-gnu/libc++.so.1 /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO: By all that is good and fair, modifying system files like this for one piece of software is unacceptable. This can be done in a different, less intrusive way.'''&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Moderators, Blacklist, Whitelist ===&lt;br /&gt;
The following three files allow you to specify moderators, banned players, and whitelist players.&lt;br /&gt;
&lt;br /&gt;
They are required to be able to use &amp;lt;code&amp;gt;AddMod&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ban&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Banlist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ModeratorList&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RemoveMod&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Unban&amp;lt;/code&amp;gt; [[Rcon Overview and Commands|RCON commands]] but are otherwise optional.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/mods.txt&lt;br /&gt;
Pavlov/Saved/Config/blacklist.txt&lt;br /&gt;
Pavlov/Saved/Config/whitelist.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;'''TODO: Describe the file contents, give examples.'''&lt;br /&gt;
&lt;br /&gt;
=== Game.ini ===&lt;br /&gt;
This file contains the majority of server configuration keys. &lt;br /&gt;
It is automatically created when first starting a server, it can also be created manually. &amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/LinuxServer/Game.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keys ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game.ini keys&lt;br /&gt;
!Key&lt;br /&gt;
!Allowed values&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|bEnabled&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables registering with the master server to show or hide the server from the server list&lt;br /&gt;
'''TODO: confirm that this is true''', and why is this even a thing, you can't direct connect to servers anyways...&lt;br /&gt;
|-&lt;br /&gt;
|ServerName&lt;br /&gt;
|Any ASCII text value up to 35 characters&lt;br /&gt;
|&amp;lt;code&amp;gt;DedicatedServer&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the name with which the server will be listed as&lt;br /&gt;
'''TODO: confirm exact maximum character limit and which characters are allowed (utf8? unicode?)'''&lt;br /&gt;
|-&lt;br /&gt;
|MaxPlayers&lt;br /&gt;
|Integer&lt;br /&gt;
Maximum 10 for Shack, 24 for PC.&lt;br /&gt;
|&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the amount of available player slots&lt;br /&gt;
|-&lt;br /&gt;
|ApiKey&lt;br /&gt;
|Obsolete, leave empty.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bSecured&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables Valve Anti-Cheat (VAC)&lt;br /&gt;
|-&lt;br /&gt;
|bCustomServer&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables &amp;quot;some new modding tools&amp;quot;. Save and HTTP functions.&lt;br /&gt;
Required to write to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt; for bans.&lt;br /&gt;
'''TODO: specify exactly what those new modding tools are.'''&lt;br /&gt;
|-&lt;br /&gt;
|bCompetitive&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables competitive mode for SND&lt;br /&gt;
|-&lt;br /&gt;
|bVerboseLogging&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Verbose logging mostly consists of [[Setting up a dedicated server#Verbose Logging|detailed statistics]].&lt;br /&gt;
This will significantly increase logging.&lt;br /&gt;
|-&lt;br /&gt;
|bWhitelist&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables or disables usage of the whitelist, allowing only users in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; to join&lt;br /&gt;
|-&lt;br /&gt;
|RefreshListTime&lt;br /&gt;
|Integer, seconds&lt;br /&gt;
|&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the interval at which the server reads changes from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LimitedAmmoType&lt;br /&gt;
|Integer, Type ID&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the limited ammo type, see [[Setting up a dedicated server#Limited Ammo Types|Limited Ammo Types]]&lt;br /&gt;
|-&lt;br /&gt;
|TimeLimit&lt;br /&gt;
|Integer, minutes&lt;br /&gt;
|&amp;lt;code&amp;gt;60&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the time limit for each map&lt;br /&gt;
|-&lt;br /&gt;
|TickRate&lt;br /&gt;
|Integer, ticks per second&lt;br /&gt;
Recommended between 50 and 120&lt;br /&gt;
|&amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the rate at which the server processes and updates game state information and network events.&lt;br /&gt;
Changes weapon de-spawn time and breaks some game modes. Recommended to leave at default value.&lt;br /&gt;
'''TODO: what game modes? breaks how? needs clarification.'''&lt;br /&gt;
|-&lt;br /&gt;
|Password&lt;br /&gt;
|Integer, 1 to 4 digit pin&lt;br /&gt;
|&amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the server PIN that is required to be entered before being able to join the server.&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
Commenting out or leaving the value empty will remove the pin.&lt;br /&gt;
|-&lt;br /&gt;
|BalanceTableURL&lt;br /&gt;
|Text formatted as &amp;lt;code&amp;gt;user/repository/branch&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;vankruptgames/BalancingTable/main&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the balance table Git URL to be used by the server.&lt;br /&gt;
See [https://github.com/vankruptgames/BalancingTable Balancing Table] for instructions.&lt;br /&gt;
|-&lt;br /&gt;
|AFKTimeLimit&lt;br /&gt;
|Integer, seconds&lt;br /&gt;
|&amp;lt;code&amp;gt;60&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the maximum amount of time a player can be idle before being automatically kicked.&lt;br /&gt;
Setting this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; will disable AFK kicking.&lt;br /&gt;
'''TODO: Pretty sure this is incorrect, while testing I've set it to 0 and got kicked nonetheless. Only being moderator prevents afk kicking. Requires further testing.'''&lt;br /&gt;
|-&lt;br /&gt;
|bInitialized&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|'''TODO: What does this do?'''&lt;br /&gt;
|-&lt;br /&gt;
|DepotURL&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: What does this do?'''&lt;br /&gt;
|-&lt;br /&gt;
|bBroadcast&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;&lt;br /&gt;
|Probably enables or disables broadcasting to pavtv?&lt;br /&gt;
'''TODO: What does this do?'''&lt;br /&gt;
|}&lt;br /&gt;
'''TODO: Verify all default values, right now I'm just guessing'''&lt;br /&gt;
&lt;br /&gt;
'''TODO: Sort alphabetically'''&lt;br /&gt;
&lt;br /&gt;
For maps running a Custom gamemode (CodZ, BR, Duel, etc.) it doesn't matter which gamemode you choose, as the map will automatically override it with the custom mode.&lt;br /&gt;
&lt;br /&gt;
==== Limited Ammo Types ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!AmmoType&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Unlimited&lt;br /&gt;
|Players have unlimited ammo, carry no ammo boxes and do not display an ammo count on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Limited Generic&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon class (Pistol, Submachine gun, Rifles/MGs, Shotgun, Sniper).&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Limited Specific&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon.&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Custom&lt;br /&gt;
|Allows for full control over ammo by the map.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
| Limited Special&lt;br /&gt;
|'''All weapons except &amp;quot;special&amp;quot; weapons are unlimited, more clarification is needed.''' &lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Boxless&lt;br /&gt;
|'''Like limited generic but without boxes? Clarification is needed.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Map rotation ====&lt;br /&gt;
The map rotation is defined in the &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Upon server start, the first map in the rotation will be started.&lt;br /&gt;
&lt;br /&gt;
When a map has ended, the next map in the rotation will be started.&lt;br /&gt;
&lt;br /&gt;
When the end of the rotation has been reached, it will start from the beginning again.&lt;br /&gt;
&lt;br /&gt;
Each entry requires a separate line of the following format:&amp;lt;pre&amp;gt;&lt;br /&gt;
MapRotation=(MapId=&amp;quot;Name or ID&amp;quot;, GameMode=&amp;quot;Game Mode&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;code&amp;gt;Name or ID&amp;lt;/code&amp;gt;: See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Game Mode&amp;lt;/code&amp;gt;: See [[Gamemodes|Game Modes]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game modes&lt;br /&gt;
!GameMode &lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|DM&lt;br /&gt;
|Death match&lt;br /&gt;
|-&lt;br /&gt;
|KOTH&lt;br /&gt;
|King of the hill&lt;br /&gt;
|-&lt;br /&gt;
|GUN&lt;br /&gt;
| Gun game&lt;br /&gt;
|-&lt;br /&gt;
|OITC&lt;br /&gt;
| One in the chamber&lt;br /&gt;
|-&lt;br /&gt;
|SND&lt;br /&gt;
|Search and destroy&lt;br /&gt;
|-&lt;br /&gt;
|TANKTDM&lt;br /&gt;
|WW2 Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
| TDM&lt;br /&gt;
|Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
|TTT&lt;br /&gt;
|Trouble in Terrorist Town&lt;br /&gt;
|-&lt;br /&gt;
|WW2GUN&lt;br /&gt;
|WW2 gun game&lt;br /&gt;
|-&lt;br /&gt;
|ZWV&lt;br /&gt;
| Zombie wave survival&lt;br /&gt;
|-&lt;br /&gt;
|HIDE&lt;br /&gt;
|The Hidden &lt;br /&gt;
|-&lt;br /&gt;
|INFECTION&lt;br /&gt;
|Hidden infection&lt;br /&gt;
|-&lt;br /&gt;
|PUSH&lt;br /&gt;
|Push&lt;br /&gt;
|-&lt;br /&gt;
|PH&lt;br /&gt;
|Prop hunt&lt;br /&gt;
|}&lt;br /&gt;
'''TODO: move this to game modes page.'''&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[/Script/Pavlov.DedicatedServer]&lt;br /&gt;
# This is a comment&lt;br /&gt;
bEnabled=True&lt;br /&gt;
ServerName=Your server&lt;br /&gt;
MaxPlayers=10&lt;br /&gt;
bSecured=True&lt;br /&gt;
bCustomServer=True&lt;br /&gt;
bWhitelist=False&lt;br /&gt;
RefreshListTime=120&lt;br /&gt;
LimitedAmmoType=0&lt;br /&gt;
TickRate=90&lt;br /&gt;
TimeLimit=60&lt;br /&gt;
Password=1234&lt;br /&gt;
bInitialized=False&lt;br /&gt;
DepotURL=&lt;br /&gt;
ApiKey=&lt;br /&gt;
bCompetitive=False&lt;br /&gt;
bBroadcast=True&lt;br /&gt;
BalanceTableURL=vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
bVerboseLogging=True&lt;br /&gt;
AFKTimeLimit=0&lt;br /&gt;
&lt;br /&gt;
MapRotation=(MapId=&amp;quot;datacenter&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC3094680&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2996823&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;sand&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2841131&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2829349&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;container&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2844898&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC2804502&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCON ===&lt;br /&gt;
The RCON password and port are configured in &amp;lt;code&amp;gt;RconSettings.txt&amp;lt;/code&amp;gt;. If the file does not exist or if the values in it are empty, no RCON will be provided.&amp;lt;pre&amp;gt;&lt;br /&gt;
Pavlov/Saved/Config/RconSettings.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keys ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Allowed values&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Password&lt;br /&gt;
|Text&lt;br /&gt;
|&amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the password used to authenticate with RCON&lt;br /&gt;
|-&lt;br /&gt;
|Port&lt;br /&gt;
|Integer, 0-65535&lt;br /&gt;
|&amp;lt;code&amp;gt;9100&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the port at which RCON will listen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password=very secure password&lt;br /&gt;
Port=9100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Shack Maps (Quest) ====&lt;br /&gt;
&lt;br /&gt;
If you try to use the steps above to add maps for Shack, youll run into issues very quickly. This is because Shack has no affiliation to Steam, and therefore cannot use Steam Workshop maps like above. In the future, these steps will apply to PC servers as well, allowing a server to hold the map itself, instead of offloading to Steam.&lt;br /&gt;
&lt;br /&gt;
To get started, first create the directory to hold the maps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use any number of methods to move the map files onto the server, but ill go over the two simplest, starting with a GUI approach&lt;br /&gt;
&lt;br /&gt;
Download and install CyberDuck onto your &amp;quot;home&amp;quot; PC (Whatever PC you use for access to the server, but not the server itsself): https://cyberduck.io/&lt;br /&gt;
&lt;br /&gt;
Next, download and unzip your map of choice from https://www.pavlovquest.com/ , https://pavlovhorde.com/mapsList, or look in #shack-map-showcase channel in the discord server.  I'm going to use Cheeto's WW2 Items test (http://www.mediafire.com/file/emyt9bs1z9u9ykw/SVR_Cheeto_Items.zip/file ) for this example, you do what you like&lt;br /&gt;
&lt;br /&gt;
In the top left corner, open a connection, set the connection type to SFTP, and fill in the rest of the information. User will be root, password is whatever you set the root pw as (toor in Ubuntu by default)&lt;br /&gt;
&lt;br /&gt;
In the directory dropdown (itll say /root) go back to /&lt;br /&gt;
&lt;br /&gt;
Follow the directories until we arrive back at our &amp;quot;maps&amp;quot; folder &amp;lt;pre&amp;gt;/home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drag and drop the unzipped map folder into the main window, in this case itll be SVR_Cheeto_Items&lt;br /&gt;
&lt;br /&gt;
Hit Allow&lt;br /&gt;
&lt;br /&gt;
Youll now see a folder named SVR_Cheeto_Items, and within it should be nothing but 3 files. If there is another folder in it, move this folder to the maps directory, otherwise the server wont work. The 3 files (2 .PAK one .JSON) should be in home/steam/pavlovserver/Pavlov/Saved/maps/SVR_Cheeto_Items, no more, no less.&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
To play the map, you can either use RCON switch map command, or to add the map to your servers automatic map rotation list, add the map's folder name to your Game.ini. This replaces the MapID section, so for our example it would be &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And thats all! Disconnect CyberDuck from your server before playing, otherwise youll have difficulty joining.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
==== Adding Shack Maps over Command Line Interface ====&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
A bit more complicated, but adding maps over CLI has its benefits&lt;br /&gt;
&lt;br /&gt;
First, CD to the maps directory you made above&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the map files from whatever you use to upload them. To do this, you can either use curl or wget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O insertURLhere&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;'''If you download your map from Google Drive''', make sure that your .zip folder is shared to anyone.&amp;lt;/p&amp;gt;&lt;br /&gt;
Then, get the file's url from the shared link. &amp;lt;p&amp;gt;Example : ''&amp;lt;nowiki&amp;gt;https://drive.google.com/file/d/19bI8gUHaN5tUrDvnadAacUnchQf6_k/view&amp;lt;/nowiki&amp;gt;''&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;will be ''19bI8gUHaN5tUrDvnadAacUnchQf6_k''&amp;lt;/p&amp;gt;&lt;br /&gt;
Edit &amp;quot;fileId&amp;quot; and &amp;quot;fileName&amp;quot; before you execute the command. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fileId=19bI8gUHaN5tUrDvnadAacUnchQf6_k&lt;br /&gt;
fileName=SVR_USER_MAPNAME&lt;br /&gt;
curl -sc /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;id=${fileId}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
code=&amp;quot;$(awk '/_warning_/ {print $NF}' /tmp/cookie)&amp;quot;  &lt;br /&gt;
curl -Lb /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;confirm=${code}&amp;amp;id=${fileId}&amp;quot; -o ${fileName} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To keep with the Items example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O https://cdn.discordapp.com/attachments/744185280759857234/745027406695366788/SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, unzip the file. If this next step errors out, saying the command is unknown, switch back to the root user (su root), and install unzip (sudo apt install unzip), then return to the steam user, and continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now finish like before by adding the map to your Game.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Admin/Moderator list (optional) ====&lt;br /&gt;
&lt;br /&gt;
The only working in-game admin menu is through Arctic VR server hosting (see below).  &lt;br /&gt;
&lt;br /&gt;
If you add moderators to your server, they will not be subject to vote kicks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/pavlovserver/Pavlov/Saved/Config/mods.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Mod List:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
76541198397498572 #Optional Comment: Player name&lt;br /&gt;
76541198397498573 #Some Other Player&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ArcticVR Admin Menu ====&lt;br /&gt;
&lt;br /&gt;
[[File:Arcticmenu.jpg|500px|link=https://www.arctic-vr.com/server-admin-menu]]&lt;br /&gt;
&lt;br /&gt;
Arctic-VR Offers an advanced In-Game Admin menu that is exclusive to their hosting service. Features include: &lt;br /&gt;
* Switch Maps+Modes&lt;br /&gt;
* Teleport Players to Players&lt;br /&gt;
* Change Player Skins&lt;br /&gt;
* Control Player Buying+Cash&lt;br /&gt;
* Spawn Items&lt;br /&gt;
* Clean up corpses + guns&lt;br /&gt;
* Spawn Bots&lt;br /&gt;
* Spawn Items for other players&lt;br /&gt;
* Control Teams + Balance/Shuffle Teams&lt;br /&gt;
* ResetSND&lt;br /&gt;
* And More&lt;br /&gt;
&lt;br /&gt;
You can read more about the ArcticVR admin menu on their website: https://www.arctic-vr.com/server-admin-menu&lt;br /&gt;
&lt;br /&gt;
==== Handy tools for finding steamIDs ==== &lt;br /&gt;
&lt;br /&gt;
Steam ID finder: https://steamidfinder.com/lookup/ or https://steamid.xyz/&lt;br /&gt;
&lt;br /&gt;
You want to enter in the steamID64 format. &lt;br /&gt;
&lt;br /&gt;
This tool can convert or lookup IDs:  https://steamid.io/&lt;br /&gt;
&lt;br /&gt;
If you are looking for a steamID of a player that has been on your server recently this is technique to find them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grep -i playername ~/pavlovserver/Pavlov/Saved/Logs/* | grep TicketValidation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Rcon ===&lt;br /&gt;
To enable Rcon access create config file:&lt;br /&gt;
&amp;lt;pre&amp;gt; nano /home/steam/pavlovserver/Pavlov/Saved/Config/RconSettings.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy in the following text - change password, and if desired the port:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password=ChangeThisPassword&lt;br /&gt;
Port=9100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You must specify a port for the Rcon server to use as well as a Password (use a different port per sever instance if running multiple server instances off the same hardware)&lt;br /&gt;
&lt;br /&gt;
=== Starting the server ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/pavlovserver &amp;amp;&amp;amp; ./PavlovServer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it, your server will be automatically broadcast to the master server! :) &lt;br /&gt;
&lt;br /&gt;
Two handy tools to determine quickly if your server is broadcasting are [https://pablub.xyz/ Pablub] (PC only) and [https://pavlovhorde.com/ Horde] (Shack) and [https://pavlovhorde.com/pcServers Horde] (PC version)&lt;br /&gt;
&lt;br /&gt;
Note that when you close your terminal, the server will go down. See the &amp;quot;supervisors&amp;quot; section below for how to prevent this.&lt;br /&gt;
&lt;br /&gt;
=== Auto-updating the server ===&lt;br /&gt;
&lt;br /&gt;
Assuming you have followed this guide and used the default paths, users, and install instructions, you can paste the following into your terminal to auto-update your Pavlov server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt; 'EOF' &amp;gt; $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
USER=&amp;quot;steam&amp;quot;&lt;br /&gt;
SERVICENAME=&amp;quot;pavlovserver.service&amp;quot;&lt;br /&gt;
INSTALLDIRNAME=&amp;quot;pavlovserver&amp;quot;&lt;br /&gt;
USERHOME=&amp;quot;/home/$USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Beginning Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl stop &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 5&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +force_install_dir &amp;quot;$USERHOME/$INSTALLDIRNAME&amp;quot; +app_update 622970 +exit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +app_update 1007 +quit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/.steam/sdk64/steamclient.so&amp;quot;&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/pavlovserver/Pavlov/Binaries/Linux/steamclient.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl start &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Ending Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
chmod +x $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
mkdir $HOME/pavlov_update_logs &amp;amp;&amp;amp; touch $HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log&lt;br /&gt;
CRONLINE=&amp;quot;00 2 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
(sudo crontab -u root -l; echo &amp;quot;$CRONLINE&amp;quot; ) | sudo crontab -u root -&lt;br /&gt;
unset CRONLINE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These commands will:&lt;br /&gt;
&lt;br /&gt;
1. Create a shell script in the &amp;quot;steam&amp;quot; user's home directory that automatically stops the Pavlov server, pulls any updates via steam, pull updates to the Steamworks SDK Redist, and copies the latest version of steamclient.so to the Pavlov server directory&lt;br /&gt;
&lt;br /&gt;
2. Make the shell script executable&lt;br /&gt;
&lt;br /&gt;
3. Create a new directory called &amp;quot;pavlov_update_logs&amp;quot; in the &amp;quot;steam&amp;quot; user's directory, and create a logfile inside that directory called &amp;quot;pavlov_daily_update_and_restart.sh.log&amp;quot;. You can check this logfile to see the output of the Pavlov and Steam SDK update commands.&lt;br /&gt;
&lt;br /&gt;
4. Create a crontab entry for the root user that runs this shell script automatically every day at 2:00AM local time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to change the time that this script runs, edit the numbers &amp;quot;00 2&amp;quot; in the line that starts with &amp;quot;CRONLINE=&amp;quot;. In the example provided, 00 is the minutes column, and 2 is the hour column. For example, if you wanted the server to automatically update and restart at 4:17AM every day, change the line starting with &amp;quot;CRONLINE=&amp;quot; to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRONLINE=&amp;quot;17 4 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the time is PM, use 24-hour time format, e.g. &amp;quot;32 18&amp;quot; for 6:32PM.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Supervising the server using systemd ===&lt;br /&gt;
&lt;br /&gt;
Running '''./PavlovServer.sh''' in your interactive shell is easy, but the server will shut down when you close your terminal. If you want to run the server in the background,&lt;br /&gt;
you'll want to run it under a supervisor. There are many options, ranging from the simple (nohup, screen or tmux), to the&lt;br /&gt;
more robust (supervisord, systemd).&lt;br /&gt;
&lt;br /&gt;
Systemd is running by default on Ubuntu Linux, so we'll use that here.&lt;br /&gt;
&lt;br /&gt;
To run the server as a systemd service, create the file '''/etc/systemd/system/pavlovserver.service''' (as root) by typing &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
sudo nano /etc/systemd/system/pavlovserver.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy contents below into the file and save.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Pavlov VR dedicated server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
WorkingDirectory=/home/steam/pavlovserver&lt;br /&gt;
ExecStart=/home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
&lt;br /&gt;
RestartSec=1&lt;br /&gt;
Restart=always&lt;br /&gt;
User=steam&lt;br /&gt;
Group=steam&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like your server to start as competitive without editing the game.ini, change the line &amp;quot;ExecStart=/home/steam/pavlovserver/PavlovServer.sh&amp;quot; to look like this below. Though it's much easier to just use the game.ini to enable competitive instead. &amp;lt;pre&amp;gt;ExecStart=/home/steam/pavlovserver/PavlovServer.sh -COMPETITIVE=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the user or paths as appropriate. After saving the service file, to start, restart, stop, or monitor the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl start pavlovserver&lt;br /&gt;
sudo systemctl restart pavlovserver&lt;br /&gt;
sudo systemctl stop pavlovserver&lt;br /&gt;
sudo systemctl status pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To view the logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -u pavlovserver&lt;br /&gt;
# to live-tail the logs&lt;br /&gt;
sudo journalctl -u pavlovserver -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to run the pavlov server as soon as your server boots (e.g. a VPS you turn on and off), add pavlov as a startup service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Advanced Server Administration ==&lt;br /&gt;
&lt;br /&gt;
=== Running multiple servers on one host ===&lt;br /&gt;
&lt;br /&gt;
* Pavlovserver is functionally single threaded (there are multiple threads, but vast majority of work occurs in the primary one). Make sure you have # of pavlovservers + 1 CPU available. More CPUs= more servers. Faster CPU = more players. &lt;br /&gt;
* Make multiple server installs by defining a separate install dir for each server.&lt;br /&gt;
* Run each server with a unique port. eg: '''./PavlovServer.sh -PORT=&amp;quot;Desired Port&amp;quot;'''&lt;br /&gt;
* The Server will use the Desired Port and the Port 400 above (Example: You choose 8200 as Port. So Port 8600 will be used as well)&lt;br /&gt;
* If you are using RCON, each server will need a unique port defined in RconSettings.txt &lt;br /&gt;
* Ensure the ports are forwarded and opened in your firewall &lt;br /&gt;
&lt;br /&gt;
To duplicate directories:&lt;br /&gt;
&lt;br /&gt;
be in the steam home folder&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r pavlovserver pavlovserver1&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -PORT=[Desired Port]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting server in competitive mode ===&lt;br /&gt;
Competitive mode will prevent dead teammates from being able to see the match, to prevent ghosting.&lt;br /&gt;
You can either enable this via Game.ini (described in Game.ini file), or using the -COMPETITIVE=1 parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -COMPETITIVE=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Useful Linux Commands ===&lt;br /&gt;
List files / folders in directory, print current working directory, &lt;br /&gt;
&amp;lt;pre&amp;gt;ls -la                                    #list files/directories along with authorities and ownership&lt;br /&gt;
pwd                                       #print working directory&lt;br /&gt;
sudo chown &amp;lt;owner&amp;gt; &amp;lt;file/directory&amp;gt;       #change owner of file/directory.  If root created something and you need to change it to steam&lt;br /&gt;
sudo chgrp &amp;lt;group&amp;gt; &amp;lt;file/directory&amp;gt;       #change group of file/directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check if pavlov is running by checking process status.  If the only row you see is the grep command, pavlov server is not started.&lt;br /&gt;
&amp;lt;pre&amp;gt; ps -ef | grep pav &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
steam      34044       1  0 16:52 ?        00:00:00 /bin/sh /home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
steam      34066   34044 80 16:52 ?        00:00:04 /home/steam/pavlovserver/Pavlov/Binaries/Linux/PavlovServer&lt;br /&gt;
zombies+   34101   34013  0 16:52 pts/0    00:00:00 grep --color=auto pav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kill a process.  Note this command uses 34044, which is a process id from the command output above.&lt;br /&gt;
&amp;lt;pre&amp;gt; kill -9 34044           &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dump the log to the console so you can scroll through it:&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search the log for a string - replace my_string with case-sensitive string&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log | grep my_string &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RCON automation]]&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=769</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=769"/>
		<updated>2023-06-30T11:19:41Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What does and does not belong on this page==&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR dedicated servers works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to dedicated servers, like how to get an MD5 checksum from text, how to use bash, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page. That's what guides are for and wikis do not contain guides! Guides may be linked at the bottom of the article.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
DO NOT REPLICATE INFORMATION THAT IS AVAILABLE IN OTHER PAGES OR WIKIS. LINK TO THEM INSTEAD!&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to dedicated server software.&lt;br /&gt;
&lt;br /&gt;
==Grammar and syntax==&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=768</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=768"/>
		<updated>2023-06-30T11:10:01Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Grammar and syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What does and does not belong on this page==&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR dedicated servers works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to dedicated servers, like how to get an MD5 checksum from text, how to use bash, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page. That's what guides are for and wikis do not contain guides! Guides may be linked at the bottom of the article.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to dedicated server software.&lt;br /&gt;
&lt;br /&gt;
==Grammar and syntax==&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=767</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=767"/>
		<updated>2023-06-30T11:09:54Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What does and does not belong on this page==&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR dedicated servers works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to dedicated servers, like how to get an MD5 checksum from text, how to use bash, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page. That's what guides are for and wikis do not contain guides! Guides may be linked at the bottom of the article.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to dedicated server software.&lt;br /&gt;
&lt;br /&gt;
==Grammar and syntax==&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=766</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=766"/>
		<updated>2023-06-30T11:08:06Z</updated>

		<summary type="html">&lt;p&gt;Rain: Clarification that RCON does not replicate server console output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR. It does not allow for reading server log messages.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=765</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=765"/>
		<updated>2023-06-30T11:05:06Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up a dedicated server ==&lt;br /&gt;
&lt;br /&gt;
'''There are no Windows binaries''' &lt;br /&gt;
&lt;br /&gt;
This guide is written exclusively for Linux and covers Ubuntu/Debian/Debian-like and Red Hat RPM-based distros. Possible to run with other distros, but some of the commands won't work and you will need to know enough to figure out the software install of dependencies on your own. &lt;br /&gt;
&lt;br /&gt;
If you are considering hosting from home, please read that section of the wiki first. &lt;br /&gt;
&lt;br /&gt;
This guide assumes you know the basics of using a bash terminal: ssh'ing into a server, running bash commands, editing text files, etc.&lt;br /&gt;
&lt;br /&gt;
If you have no experience using bash, maybe start [https://www.howtogeek.com/140679/beginner-geek-how-to-start-using-the-linux-terminal/ here]. Editing text files via commandline is often a challenge. Suggest using nano and reading guide [https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/ here]&lt;br /&gt;
&lt;br /&gt;
If you are new to linux and accessing your server from Windows, highly suggest using MobaXterm as your SSH client as that can make required editing of text files easier using built in editor instead of the native linux command line editors.&lt;br /&gt;
&lt;br /&gt;
And finally, ask yourself why you want to setup a server? If you look at the list, there are many, many more servers than players. If you don't have a team, discord community, or group of friends ready to play on your server, chances are it will go unused. Got one of these... great, let's go. &lt;br /&gt;
&lt;br /&gt;
If you don't want to go through the hassle yourself and want to pay for a hosting service Arctic VR (PC and Shack) and Horde (Shack) provide a server hosting services and are trusted in the community. See links below.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Server Requirements ===&lt;br /&gt;
&lt;br /&gt;
'''Pavlovserver can only be hosted under Linux.''' &lt;br /&gt;
&lt;br /&gt;
This can be running as a VM under windows, but this will increase the complexity of the setup beyond this guide. &lt;br /&gt;
&lt;br /&gt;
Ubuntu 18.04 x86_64, Ubuntu 19/04 amd64, Ubuntu 20.04, and Rocky Linux 8 are confirmed working. Ubuntu 15.04 x86 is known to fail to install using this guide. Recommend not running on &amp;quot;minimal&amp;quot; images as some tools are missing. &lt;br /&gt;
&lt;br /&gt;
* 2GB RAM + 1GB RAM per each additional server with 10 players. More RAM is recommended for larger maps, higher player counts, or complex gamemodes. Not having enough RAM is a common cause of server crashes.&lt;br /&gt;
&lt;br /&gt;
* A ~2.5Ghz CPU will comfortably support a 10 player server.&lt;br /&gt;
 &lt;br /&gt;
* A ~4Ghz CPU will comfortably support 24 players. This is a limit built into Pavlov itself, no server will allow players to join over 24. Lower player counts are recommended for complex gamemodes (E.g. CodZ) and/or highly detailed maps, so that maximum number will often be lower.&lt;br /&gt;
&lt;br /&gt;
(Note that these are '''not''' hard limits for player counts, just suggestions for the best performance, based on experiences with many server providers on different grades of hardware.)&lt;br /&gt;
 &lt;br /&gt;
* Pavlovserver is functionally single threaded (one thread does vast majority of work). More CPUs only help if you are running more servers. More clockspeed = higher performance = more users per server. &lt;br /&gt;
The maximum number of servers you can run is dependent on how many CPUs you have. For example, if you have an 8 core CPU, the maximum number of servers would be 7. You should always have at least one CPU free as overhead, as Pavlov servers can use slightly more than one thread.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Hosting at home ====&lt;br /&gt;
When hosting at home there are additional requirements regarding networking: Your router has to support port-forwarding, hair-pinning/LoopbackNAT, and respond to ping requests.  These techniques are necessary to allow your server to be found and to talk back to the client. please see https://en.wikipedia.org/wiki/Port_forwarding,  https://en.wikipedia.org/wiki/Hairpinning, and https://www.speedguide.net/faq/how-to-become-pingable-behind-a-routerfirewall-376 for more info and google for these terms in addition to your router model to find guides on how to enable/configure it properly. If you have modern Router, it may have these features already enabled, in this case you just have to configure port-forwarding. If you can see your server but not join it while others can, this is indicative of a failure of LoopbackNAT. &lt;br /&gt;
&lt;br /&gt;
A second challenge to hosting at home is CGNAT (Carrier grade NAT: https://www.a10networks.com/blog/carrier-grade-nat/). Just like NAT on your home network that has to be gotten around w/ port-forwarding, CGNAT breaks the ability of external connections to be made back to your server, but the controls are solely in your ISPs hands. Sometimes if you ask, you can be removed from CGNAT pools and/or assigned a static IP. CGNAT rollouts are becoming very common now, so if your server worked then doesn't allow connections now, your ISP may have made this change. &lt;br /&gt;
&lt;br /&gt;
You can check whether you’re on a CGNAT network by visiting a Web site such as ipaddress.com or whatsmyip.com and comparing the IP address listed to the public/WAN IP address assigned to your Internet gateway. To find your gateway’s public IP address, check the status page in the administrative interface. If the two IP addresses differ, you’re likely on a CGNAT network. If so, this problem must be resolved before you go any further. &lt;br /&gt;
&lt;br /&gt;
'''Not understanding these requirements and configuration is a frequent cause of failed setups and questions in discord. Don't skip this if you are trying to host from home'''&lt;br /&gt;
&lt;br /&gt;
'''There are serious security implications of hosting this software at home.''' None of the devs are security experts and there has been no security review of the code. You are opening up your system to the world and publicity advertising this fact. Expect that any system hosting this software is open to compromise from the Internet and act accordingly. If your router offers a DMZ network, use it. Consider hosting on a cloud based server and think twice before running this software on any system that contains data you care about or has access to networks and computers you care about.&lt;br /&gt;
&lt;br /&gt;
If you're hosting at home using Oracle's VirtualBox, there are steps you can take to prevent double NAT (which can cause issues later on)&lt;br /&gt;
&lt;br /&gt;
1. Select your VM and then click Settings in VirtualBox's main window.&lt;br /&gt;
&lt;br /&gt;
2. Click on Network and change Attached To from NAT to Bridged Adapter. &lt;br /&gt;
&lt;br /&gt;
Once you've done this, your VM should be connected directly to your home router and double NAT should no longer be a issue.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Starting Server Install ====&lt;br /&gt;
&lt;br /&gt;
====Obtaining an ApiKey====&lt;br /&gt;
For your server to show up in the server list, there is now a requirement to have an ApiKey issued by vankrupt. This is to prevent DOS attacks against the master server&lt;br /&gt;
&lt;br /&gt;
Get the key by going here: https://pavlov-ms.vankrupt.com/servers/v1/key and using your mobile number to get a SMS &lt;br /&gt;
(note that there have been reported failures of this SMS system for non-US mobiles. In this case DM davevillz your mobile and ask for a key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Put this key in your Game.ini as follows:&lt;br /&gt;
    ApiKey=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
or if you would like (personally untested..I would use game.ini) you can call it at server runtime with flag as follows:&lt;br /&gt;
   -KEY=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This key can be re-used for a reasonable number of servers (a limit of 10 has been mentioned). Contact the Devs if you need more servers per key.&lt;br /&gt;
&lt;br /&gt;
====System setup and software installation====&lt;br /&gt;
&lt;br /&gt;
Install dependencies and create the `steam` user. (You only need to do this once):&lt;br /&gt;
&lt;br /&gt;
Confirm Linux version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsb_release -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 20.04'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gdb curl lib32gcc1 libc++-dev unzip&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 20.10 or higher'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gdb curl lib32gcc-s1 libc++-dev unzip&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rocky Linux, CentOS 8, and RHEL 8'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/g' /etc/selinux/config&lt;br /&gt;
sudo setenforce 0&lt;br /&gt;
sudo yum install gdb curl glibc.i686 libstdc++.i686 libstdc++-devel.i686 libstdc++-devel.x86_64 unzip wget -y&lt;br /&gt;
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libcxx-3.8.0-3.el7.x86_64.rpm&lt;br /&gt;
sudo rpm -i libcxx-3.8.0-3.el7.x86_64.rpm&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Optional] Set a password for steam.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo passwd steam&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Login as the steam user. ('''You will need to do this each time you connect to your server'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su -l steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install Steam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/Steam &amp;amp;&amp;amp; cd ~/Steam &amp;amp;&amp;amp; curl -sqL &amp;quot;https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz&amp;quot; | tar zxvf -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different dedicated server versions for Pavlov Server - choose which server version you want to host (PC non-beta, PC Beta, Shack Live, or Shack RC)&lt;br /&gt;
(You will need to run this command each time there is a Pavlov Server update). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To host '''PC Server (non-beta)''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta default +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''PC BETA''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta beta_server +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''Shack Live''' (Quest):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta shack +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''Shack RC''' (Quest): &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta shack_beta +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that we've installed the server, all pavlov server versions should continue.  &amp;lt;br /&amp;gt;&lt;br /&gt;
Install a fresh copy of steamclient.so (May have to do this after each update):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +login anonymous +app_update 1007 +quit&lt;br /&gt;
mkdir -p ~/.steam/sdk64&lt;br /&gt;
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/steamclient.so&lt;br /&gt;
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/pavlovserver/Pavlov/Binaries/Linux/steamclient.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The update 29 of the PCVR version of pavlov and after added a requirement to run these commands to change the steamclient.so:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo rm /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt; &lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ln -s /usr/lib/x86_64-linux-gnu/libc++.so.1 /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make the PavlovServer script executable. (You only need to do this once):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x ~/pavlovserver/PavlovServer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Server Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before starting the server we need to configure it. Start by creating some directories: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/Logs&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mods/Blacklist/Whitelist (optional)  ====&lt;br /&gt;
&lt;br /&gt;
The following three files allow you to specify mods, banned players, and whitelist players.  These are optional, but go ahead and create them.  Populating the files is described later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/mods.txt&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/blacklist.txt&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/whitelist.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configuring Game.ini====&lt;br /&gt;
Create a new Game.ini file using following command to open an editor and copy/paste the following block into it then save it. Note not all of these options are required. For instance remove or comment out the Password=0000 line to make a public server with no pin. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[/Script/Pavlov.DedicatedServer]&lt;br /&gt;
bEnabled=true&lt;br /&gt;
ServerName=&amp;quot;My_private_idaho&amp;quot;&lt;br /&gt;
MaxPlayers=10     #Set this to 10 for Shack. 24 is the max for PC, setting it higher will not allow players to join. &lt;br /&gt;
ApiKey=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
bSecured=true&lt;br /&gt;
bCustomServer=true &lt;br /&gt;
bVerboseLogging=false &lt;br /&gt;
bCompetitive=false #This only works for SND&lt;br /&gt;
bWhitelist=false &lt;br /&gt;
RefreshListTime=120 &lt;br /&gt;
LimitedAmmoType=0 &lt;br /&gt;
TickRate=90&lt;br /&gt;
TimeLimit=60&lt;br /&gt;
#Password=0000 &lt;br /&gt;
#BalanceTableURL=&amp;quot;vankruptgames/BalancingTable/main&amp;quot;&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC1758245796&amp;quot;, GameMode=&amp;quot;GUN&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;datacenter&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;sand&amp;quot;, GameMode=&amp;quot;DM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''bEnabled''' - whether the server appears in the server list (unconfirmed)&lt;br /&gt;
* '''ServerName''' - name it will be listed as. (approx 35 chars max)&lt;br /&gt;
* '''MaxPlayers''' - See suggested specs for limits. 10 standard (10 for shack), 20-24 is max recommended for large maps like Stalingrad or PUSH/RUSH modes, and servers allow a maximum of 24 players.&lt;br /&gt;
* '''ApiKey''' - Unique ApiKey required to register server with master server. Replace with your key&lt;br /&gt;
* '''bSecured''' - enabled Valve Anti-Cheat (VAC)&lt;br /&gt;
* '''bCustomServer''' - activates some new modding tools (save and http functions. Required to write to blacklist.txt for bans)&lt;br /&gt;
* '''bCompetitive''' - sets the server to competitive mode for SND. If removed the server will default to false&lt;br /&gt;
* '''bVerboseLogging''' - enables verbose logging, mostly detailed statistics.  Be prepared for significant increase in logging.&lt;br /&gt;
* '''bWhitelist''' - Only allow users in whitelist.txt to join&lt;br /&gt;
* '''RefreshListTime''' - sets how often the running server checks for updates in ban/whitelist/mod files&lt;br /&gt;
* '''LimitedAmmoType''' - sets limited ammo mode, see Limited Ammo Types table below&lt;br /&gt;
&lt;br /&gt;
* '''TimeLimit''' - sets time limit for each map&lt;br /&gt;
* '''TickRate''' - sets the server tickrate. (so far minimum stable seems around 50 and max around 120. Beware setting this changes weapon despawn time and breaks some game modes. Recommend not touching)&lt;br /&gt;
* '''Password''' - PIN number for server #FYI - this is now also changeable via rcon.&lt;br /&gt;
* '''BalanceTableURL''' - Points to a custom balance table from github. See https://github.com/vankruptgames/BalancingTable for instructions. This line isn't needed if you don't have one. &lt;br /&gt;
* '''MapRotation''' - you can add multiple of these. The map system has switched from the steam workshop to modio which means that the server rotation will need to be redone with modio UGCs. &amp;lt;nowiki&amp;gt;https://mod.io/g/pavlov&amp;lt;/nowiki&amp;gt;. This is done by taking the resource ID from the modio page, adding “UGC” in front of it and then adding that to the rotation. For example the map gravity &amp;lt;nowiki&amp;gt;https://mod.io/g/pavlov/m/gravity1&amp;lt;/nowiki&amp;gt; has a resource ID of 2773760 so the map ID to add to the server would be “UGC2773760”. When a match ends, the server will load the next map in the rotation.  &lt;br /&gt;
* '''AFKTimeLimit''' There is now a feature to kick players who are idle in the game. Integers are measured in seconds and 0 disables AFK kicking completely.&lt;br /&gt;
&lt;br /&gt;
Available game modes as of 09/06/2022: See Game modes table below&lt;br /&gt;
&lt;br /&gt;
For maps running a Custom gamemode (CodZ, BR, Duel, etc.) it doesn't matter which gamemode you choose, as the map will automatically override it with the custom mode.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Limited Ammo Types&lt;br /&gt;
!AmmoType&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Unlimited&lt;br /&gt;
|Players have unlimited ammo, carry no ammo boxes and do not display an ammo count on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Limited Generic&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon class (Pistol, Submachine gun, Rifles/MGs, Shotgun, Sniper).&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Limited Specific&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon.&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Custom&lt;br /&gt;
|Allows for full control over ammo by the map.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
| Limited Special&lt;br /&gt;
|'''All weapons except &amp;quot;special&amp;quot; weapons are unlimited, more clarification is needed.''' &lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Boxless&lt;br /&gt;
|'''Like limited generic but without boxes? Clarification is needed.'''&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game modes&lt;br /&gt;
!GameMode &lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|DM&lt;br /&gt;
|Death match&lt;br /&gt;
|-&lt;br /&gt;
|KOTH&lt;br /&gt;
|King of the hill&lt;br /&gt;
|-&lt;br /&gt;
|GUN&lt;br /&gt;
| Gun game&lt;br /&gt;
|-&lt;br /&gt;
|OITC&lt;br /&gt;
| One in the chamber&lt;br /&gt;
|-&lt;br /&gt;
|SND&lt;br /&gt;
|Search and destroy&lt;br /&gt;
|-&lt;br /&gt;
|TANKTDM&lt;br /&gt;
|WW2 Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
| TDM&lt;br /&gt;
|Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
|TTT&lt;br /&gt;
|Trouble in Terrorist Town&lt;br /&gt;
|-&lt;br /&gt;
|WW2GUN&lt;br /&gt;
|WW2 gun game&lt;br /&gt;
|-&lt;br /&gt;
|ZWV&lt;br /&gt;
| Zombie wave survival&lt;br /&gt;
|-&lt;br /&gt;
|HIDE&lt;br /&gt;
|The Hidden &lt;br /&gt;
|-&lt;br /&gt;
|INFECTION&lt;br /&gt;
|Hidden infection&lt;br /&gt;
|-&lt;br /&gt;
|PUSH&lt;br /&gt;
|Push&lt;br /&gt;
|-&lt;br /&gt;
|PH&lt;br /&gt;
|Prop hunt&lt;br /&gt;
|}&lt;br /&gt;
= Default Map ID's =&lt;br /&gt;
datacenter &lt;br /&gt;
&lt;br /&gt;
sand&lt;br /&gt;
&lt;br /&gt;
bridge&lt;br /&gt;
&lt;br /&gt;
containeryard&lt;br /&gt;
&lt;br /&gt;
siberia (Prison Break)&lt;br /&gt;
&lt;br /&gt;
hospital (Zombies map)&lt;br /&gt;
&lt;br /&gt;
killhouse&lt;br /&gt;
&lt;br /&gt;
range&lt;br /&gt;
&lt;br /&gt;
tutorial&lt;br /&gt;
&lt;br /&gt;
santorini&lt;br /&gt;
&lt;br /&gt;
station&lt;br /&gt;
&lt;br /&gt;
industry&lt;br /&gt;
&lt;br /&gt;
ogcontainers (Shack only)&lt;br /&gt;
&lt;br /&gt;
haguenau (Shack only)&lt;br /&gt;
&lt;br /&gt;
foundation (Shack only)&lt;br /&gt;
&lt;br /&gt;
stalingrad (PC only)&lt;br /&gt;
&lt;br /&gt;
stalingrad_night (PC only)&lt;br /&gt;
&lt;br /&gt;
santorini_night (PC only)&lt;br /&gt;
&lt;br /&gt;
sand_night (PC only)&lt;br /&gt;
&lt;br /&gt;
station_night (PC only)&lt;br /&gt;
&lt;br /&gt;
industry_night (PC only)&lt;br /&gt;
&lt;br /&gt;
bunker (PC only)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Firewall/Port forwarding ====&lt;br /&gt;
Using the default settings there are two UDP ports (7777, 8177) that need to be allowed to access the server either by firewall setup or port forwarding. &lt;br /&gt;
&lt;br /&gt;
'''Ubuntu''' firewall commands to check firewall and open ports:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ufw status&lt;br /&gt;
sudo ufw allow 7777&lt;br /&gt;
sudo ufw allow 8177&lt;br /&gt;
sudo ufw allow 9100&lt;br /&gt;
sudo ufw status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rocky Linux''' firewall commands to check firewall and open ports:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=7777/tcp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=7777/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=8177/tcp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=8177/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=9100/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=9100/tcp&lt;br /&gt;
sudo firewall-cmd --list-ports&lt;br /&gt;
firewall-cmd --runtime-to-permanent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to allow Pings (ICMP) for the server's true latency to appear in the master list.&lt;br /&gt;
&lt;br /&gt;
If you are running multiple servers and have set additional ports (see http://wiki.pavlov-vr.com/index.php?title=Dedicated_server#Running_multiple_servers_on_one_host) then you need to allow access to the defined port plus the port 400 higher. So if you use 7000 as your port, then UDP 7000 and 7400 need to be open&lt;br /&gt;
&lt;br /&gt;
If you have setup rcon via RconSettings.txt (below) then that port also need to be allowed access via TCP&lt;br /&gt;
&lt;br /&gt;
If you are running Shack/Quest and want to have maps that are downloadable from your server, your server ports (ex. 7777 &amp;amp; 8177) must also be open via TCP&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Shack Maps (Quest) ====&lt;br /&gt;
&lt;br /&gt;
If you try to use the steps above to add maps for Shack, youll run into issues very quickly. This is because Shack has no affiliation to Steam, and therefore cannot use Steam Workshop maps like above. In the future, these steps will apply to PC servers as well, allowing a server to hold the map itself, instead of offloading to Steam.&lt;br /&gt;
&lt;br /&gt;
To get started, first create the directory to hold the maps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use any number of methods to move the map files onto the server, but ill go over the two simplest, starting with a GUI approach&lt;br /&gt;
&lt;br /&gt;
Download and install CyberDuck onto your &amp;quot;home&amp;quot; PC (Whatever PC you use for access to the server, but not the server itsself): https://cyberduck.io/&lt;br /&gt;
&lt;br /&gt;
Next, download and unzip your map of choice from https://www.pavlovquest.com/ , https://pavlovhorde.com/mapsList, or look in #shack-map-showcase channel in the discord server.  I'm going to use Cheeto's WW2 Items test (http://www.mediafire.com/file/emyt9bs1z9u9ykw/SVR_Cheeto_Items.zip/file ) for this example, you do what you like&lt;br /&gt;
&lt;br /&gt;
In the top left corner, open a connection, set the connection type to SFTP, and fill in the rest of the information. User will be root, password is whatever you set the root pw as (toor in Ubuntu by default)&lt;br /&gt;
&lt;br /&gt;
In the directory dropdown (itll say /root) go back to /&lt;br /&gt;
&lt;br /&gt;
Follow the directories until we arrive back at our &amp;quot;maps&amp;quot; folder &amp;lt;pre&amp;gt;/home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drag and drop the unzipped map folder into the main window, in this case itll be SVR_Cheeto_Items&lt;br /&gt;
&lt;br /&gt;
Hit Allow&lt;br /&gt;
&lt;br /&gt;
Youll now see a folder named SVR_Cheeto_Items, and within it should be nothing but 3 files. If there is another folder in it, move this folder to the maps directory, otherwise the server wont work. The 3 files (2 .PAK one .JSON) should be in home/steam/pavlovserver/Pavlov/Saved/maps/SVR_Cheeto_Items, no more, no less.&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
To play the map, you can either use RCON switch map command, or to add the map to your servers automatic map rotation list, add the map's folder name to your Game.ini. This replaces the MapID section, so for our example it would be &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And thats all! Disconnect CyberDuck from your server before playing, otherwise youll have difficulty joining.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
==== Adding Shack Maps over Command Line Interface ====&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
A bit more complicated, but adding maps over CLI has its benefits&lt;br /&gt;
&lt;br /&gt;
First, CD to the maps directory you made above&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the map files from whatever you use to upload them. To do this, you can either use curl or wget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O insertURLhere&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;'''If you download your map from Google Drive''', make sure that your .zip folder is shared to anyone.&amp;lt;/p&amp;gt;&lt;br /&gt;
Then, get the file's url from the shared link. &amp;lt;p&amp;gt;Example : ''&amp;lt;nowiki&amp;gt;https://drive.google.com/file/d/19bI8gUHaN5tUrDvnadAacUnchQf6_k/view&amp;lt;/nowiki&amp;gt;''&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;will be ''19bI8gUHaN5tUrDvnadAacUnchQf6_k''&amp;lt;/p&amp;gt;&lt;br /&gt;
Edit &amp;quot;fileId&amp;quot; and &amp;quot;fileName&amp;quot; before you execute the command. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fileId=19bI8gUHaN5tUrDvnadAacUnchQf6_k&lt;br /&gt;
fileName=SVR_USER_MAPNAME&lt;br /&gt;
curl -sc /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;id=${fileId}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
code=&amp;quot;$(awk '/_warning_/ {print $NF}' /tmp/cookie)&amp;quot;  &lt;br /&gt;
curl -Lb /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;confirm=${code}&amp;amp;id=${fileId}&amp;quot; -o ${fileName} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To keep with the Items example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O https://cdn.discordapp.com/attachments/744185280759857234/745027406695366788/SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, unzip the file. If this next step errors out, saying the command is unknown, switch back to the root user (su root), and install unzip (sudo apt install unzip), then return to the steam user, and continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now finish like before by adding the map to your Game.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Admin/Moderator list (optional) ====&lt;br /&gt;
&lt;br /&gt;
The only working in-game admin menu is through Arctic VR server hosting (see below).  &lt;br /&gt;
&lt;br /&gt;
If you add moderators to your server, they will not be subject to vote kicks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/pavlovserver/Pavlov/Saved/Config/mods.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Mod List:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
76541198397498572 #Optional Comment: Player name&lt;br /&gt;
76541198397498573 #Some Other Player&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ArcticVR Admin Menu ====&lt;br /&gt;
&lt;br /&gt;
[[File:Arcticmenu.jpg|500px|link=https://www.arctic-vr.com/server-admin-menu]]&lt;br /&gt;
&lt;br /&gt;
Arctic-VR Offers an advanced In-Game Admin menu that is exclusive to their hosting service. Features include: &lt;br /&gt;
* Switch Maps+Modes&lt;br /&gt;
* Teleport Players to Players&lt;br /&gt;
* Change Player Skins&lt;br /&gt;
* Control Player Buying+Cash&lt;br /&gt;
* Spawn Items&lt;br /&gt;
* Clean up corpses + guns&lt;br /&gt;
* Spawn Bots&lt;br /&gt;
* Spawn Items for other players&lt;br /&gt;
* Control Teams + Balance/Shuffle Teams&lt;br /&gt;
* ResetSND&lt;br /&gt;
* And More&lt;br /&gt;
&lt;br /&gt;
You can read more about the ArcticVR admin menu on their website: https://www.arctic-vr.com/server-admin-menu&lt;br /&gt;
&lt;br /&gt;
==== Handy tools for finding steamIDs ==== &lt;br /&gt;
&lt;br /&gt;
Steam ID finder: https://steamidfinder.com/lookup/ or https://steamid.xyz/&lt;br /&gt;
&lt;br /&gt;
You want to enter in the steamID64 format. &lt;br /&gt;
&lt;br /&gt;
This tool can convert or lookup IDs:  https://steamid.io/&lt;br /&gt;
&lt;br /&gt;
If you are looking for a steamID of a player that has been on your server recently this is technique to find them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grep -i playername ~/pavlovserver/Pavlov/Saved/Logs/* | grep TicketValidation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Rcon ===&lt;br /&gt;
To enable Rcon access create config file:&lt;br /&gt;
&amp;lt;pre&amp;gt; nano /home/steam/pavlovserver/Pavlov/Saved/Config/RconSettings.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy in the following text - change password, and if desired the port:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password=ChangeThisPassword&lt;br /&gt;
Port=9100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You must specify a port for the Rcon server to use as well as a Password (use a different port per sever instance if running multiple server instances off the same hardware)&lt;br /&gt;
&lt;br /&gt;
=== Starting the server ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/pavlovserver &amp;amp;&amp;amp; ./PavlovServer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it, your server will be automatically broadcast to the master server! :) &lt;br /&gt;
&lt;br /&gt;
Two handy tools to determine quickly if your server is broadcasting are [https://pablub.xyz/ Pablub] (PC only) and [https://pavlovhorde.com/ Horde] (Shack) and [https://pavlovhorde.com/pcServers Horde] (PC version)&lt;br /&gt;
&lt;br /&gt;
Note that when you close your terminal, the server will go down. See the &amp;quot;supervisors&amp;quot; section below for how to prevent this.&lt;br /&gt;
&lt;br /&gt;
=== Auto-updating the server ===&lt;br /&gt;
&lt;br /&gt;
Assuming you have followed this guide and used the default paths, users, and install instructions, you can paste the following into your terminal to auto-update your Pavlov server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt; 'EOF' &amp;gt; $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
USER=&amp;quot;steam&amp;quot;&lt;br /&gt;
SERVICENAME=&amp;quot;pavlovserver.service&amp;quot;&lt;br /&gt;
INSTALLDIRNAME=&amp;quot;pavlovserver&amp;quot;&lt;br /&gt;
USERHOME=&amp;quot;/home/$USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Beginning Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl stop &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 5&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +force_install_dir &amp;quot;$USERHOME/$INSTALLDIRNAME&amp;quot; +app_update 622970 +exit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +app_update 1007 +quit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/.steam/sdk64/steamclient.so&amp;quot;&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/pavlovserver/Pavlov/Binaries/Linux/steamclient.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl start &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Ending Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
chmod +x $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
mkdir $HOME/pavlov_update_logs &amp;amp;&amp;amp; touch $HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log&lt;br /&gt;
CRONLINE=&amp;quot;00 2 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
(sudo crontab -u root -l; echo &amp;quot;$CRONLINE&amp;quot; ) | sudo crontab -u root -&lt;br /&gt;
unset CRONLINE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These commands will:&lt;br /&gt;
&lt;br /&gt;
1. Create a shell script in the &amp;quot;steam&amp;quot; user's home directory that automatically stops the Pavlov server, pulls any updates via steam, pull updates to the Steamworks SDK Redist, and copies the latest version of steamclient.so to the Pavlov server directory&lt;br /&gt;
&lt;br /&gt;
2. Make the shell script executable&lt;br /&gt;
&lt;br /&gt;
3. Create a new directory called &amp;quot;pavlov_update_logs&amp;quot; in the &amp;quot;steam&amp;quot; user's directory, and create a logfile inside that directory called &amp;quot;pavlov_daily_update_and_restart.sh.log&amp;quot;. You can check this logfile to see the output of the Pavlov and Steam SDK update commands.&lt;br /&gt;
&lt;br /&gt;
4. Create a crontab entry for the root user that runs this shell script automatically every day at 2:00AM local time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to change the time that this script runs, edit the numbers &amp;quot;00 2&amp;quot; in the line that starts with &amp;quot;CRONLINE=&amp;quot;. In the example provided, 00 is the minutes column, and 2 is the hour column. For example, if you wanted the server to automatically update and restart at 4:17AM every day, change the line starting with &amp;quot;CRONLINE=&amp;quot; to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRONLINE=&amp;quot;17 4 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the time is PM, use 24-hour time format, e.g. &amp;quot;32 18&amp;quot; for 6:32PM.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Supervising the server using systemd ===&lt;br /&gt;
&lt;br /&gt;
Running '''./PavlovServer.sh''' in your interactive shell is easy, but the server will shut down when you close your terminal. If you want to run the server in the background,&lt;br /&gt;
you'll want to run it under a supervisor. There are many options, ranging from the simple (nohup, screen or tmux), to the&lt;br /&gt;
more robust (supervisord, systemd).&lt;br /&gt;
&lt;br /&gt;
Systemd is running by default on Ubuntu Linux, so we'll use that here.&lt;br /&gt;
&lt;br /&gt;
To run the server as a systemd service, create the file '''/etc/systemd/system/pavlovserver.service''' (as root) by typing &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
sudo nano /etc/systemd/system/pavlovserver.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy contents below into the file and save.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Pavlov VR dedicated server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
WorkingDirectory=/home/steam/pavlovserver&lt;br /&gt;
ExecStart=/home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
&lt;br /&gt;
RestartSec=1&lt;br /&gt;
Restart=always&lt;br /&gt;
User=steam&lt;br /&gt;
Group=steam&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like your server to start as competitive without editing the game.ini, change the line &amp;quot;ExecStart=/home/steam/pavlovserver/PavlovServer.sh&amp;quot; to look like this below. Though it's much easier to just use the game.ini to enable competitive instead. &amp;lt;pre&amp;gt;ExecStart=/home/steam/pavlovserver/PavlovServer.sh -COMPETITIVE=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the user or paths as appropriate. After saving the service file, to start, restart, stop, or monitor the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl start pavlovserver&lt;br /&gt;
sudo systemctl restart pavlovserver&lt;br /&gt;
sudo systemctl stop pavlovserver&lt;br /&gt;
sudo systemctl status pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To view the logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -u pavlovserver&lt;br /&gt;
# to live-tail the logs&lt;br /&gt;
sudo journalctl -u pavlovserver -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to run the pavlov server as soon as your server boots (e.g. a VPS you turn on and off), add pavlov as a startup service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Advanced Server Administration ==&lt;br /&gt;
&lt;br /&gt;
=== Running multiple servers on one host ===&lt;br /&gt;
&lt;br /&gt;
* Pavlovserver is functionally single threaded (there are multiple threads, but vast majority of work occurs in the primary one). Make sure you have # of pavlovservers + 1 CPU available. More CPUs= more servers. Faster CPU = more players. &lt;br /&gt;
* Make multiple server installs by defining a separate install dir for each server.&lt;br /&gt;
* Run each server with a unique port. eg: '''./PavlovServer.sh -PORT=&amp;quot;Desired Port&amp;quot;'''&lt;br /&gt;
* The Server will use the Desired Port and the Port 400 above (Example: You choose 8200 as Port. So Port 8600 will be used as well)&lt;br /&gt;
* If you are using RCON, each server will need a unique port defined in RconSettings.txt &lt;br /&gt;
* Ensure the ports are forwarded and opened in your firewall &lt;br /&gt;
&lt;br /&gt;
To duplicate directories:&lt;br /&gt;
&lt;br /&gt;
be in the steam home folder&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r pavlovserver pavlovserver1&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -PORT=[Desired Port]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting server in competitive mode ===&lt;br /&gt;
Competitive mode will prevent dead teammates from being able to see the match, to prevent ghosting.&lt;br /&gt;
You can either enable this via Game.ini (described in Game.ini file), or using the -COMPETITIVE=1 parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -COMPETITIVE=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Useful Linux Commands ===&lt;br /&gt;
List files / folders in directory, print current working directory, &lt;br /&gt;
&amp;lt;pre&amp;gt;ls -la                                    #list files/directories along with authorities and ownership&lt;br /&gt;
pwd                                       #print working directory&lt;br /&gt;
sudo chown &amp;lt;owner&amp;gt; &amp;lt;file/directory&amp;gt;       #change owner of file/directory.  If root created something and you need to change it to steam&lt;br /&gt;
sudo chgrp &amp;lt;group&amp;gt; &amp;lt;file/directory&amp;gt;       #change group of file/directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check if pavlov is running by checking process status.  If the only row you see is the grep command, pavlov server is not started.&lt;br /&gt;
&amp;lt;pre&amp;gt; ps -ef | grep pav &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
steam      34044       1  0 16:52 ?        00:00:00 /bin/sh /home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
steam      34066   34044 80 16:52 ?        00:00:04 /home/steam/pavlovserver/Pavlov/Binaries/Linux/PavlovServer&lt;br /&gt;
zombies+   34101   34013  0 16:52 pts/0    00:00:00 grep --color=auto pav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kill a process.  Note this command uses 34044, which is a process id from the command output above.&lt;br /&gt;
&amp;lt;pre&amp;gt; kill -9 34044           &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dump the log to the console so you can scroll through it:&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search the log for a string - replace my_string with case-sensitive string&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log | grep my_string &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RCON automation]]&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=764</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=764"/>
		<updated>2023-06-30T11:05:02Z</updated>

		<summary type="html">&lt;p&gt;Rain: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=763</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=763"/>
		<updated>2023-06-30T11:04:38Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up a dedicated server ==&lt;br /&gt;
&lt;br /&gt;
'''There are no Windows binaries''' &lt;br /&gt;
&lt;br /&gt;
This guide is written exclusively for Linux and covers Ubuntu/Debian/Debian-like and Red Hat RPM-based distros. Possible to run with other distros, but some of the commands won't work and you will need to know enough to figure out the software install of dependencies on your own. &lt;br /&gt;
&lt;br /&gt;
If you are considering hosting from home, please read that section of the wiki first. &lt;br /&gt;
&lt;br /&gt;
This guide assumes you know the basics of using a bash terminal: ssh'ing into a server, running bash commands, editing text files, etc.&lt;br /&gt;
&lt;br /&gt;
If you have no experience using bash, maybe start [https://www.howtogeek.com/140679/beginner-geek-how-to-start-using-the-linux-terminal/ here]. Editing text files via commandline is often a challenge. Suggest using nano and reading guide [https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/ here]&lt;br /&gt;
&lt;br /&gt;
If you are new to linux and accessing your server from Windows, highly suggest using MobaXterm as your SSH client as that can make required editing of text files easier using built in editor instead of the native linux command line editors.&lt;br /&gt;
&lt;br /&gt;
And finally, ask yourself why you want to setup a server? If you look at the list, there are many, many more servers than players. If you don't have a team, discord community, or group of friends ready to play on your server, chances are it will go unused. Got one of these... great, let's go. &lt;br /&gt;
&lt;br /&gt;
If you don't want to go through the hassle yourself and want to pay for a hosting service Arctic VR (PC and Shack) and Horde (Shack) provide a server hosting services and are trusted in the community. See links below.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Server Requirements ===&lt;br /&gt;
&lt;br /&gt;
'''Pavlovserver can only be hosted under Linux.''' &lt;br /&gt;
&lt;br /&gt;
This can be running as a VM under windows, but this will increase the complexity of the setup beyond this guide. &lt;br /&gt;
&lt;br /&gt;
Ubuntu 18.04 x86_64, Ubuntu 19/04 amd64, Ubuntu 20.04, and Rocky Linux 8 are confirmed working. Ubuntu 15.04 x86 is known to fail to install using this guide. Recommend not running on &amp;quot;minimal&amp;quot; images as some tools are missing. &lt;br /&gt;
&lt;br /&gt;
* 2GB RAM + 1GB RAM per each additional server with 10 players. More RAM is recommended for larger maps, higher player counts, or complex gamemodes. Not having enough RAM is a common cause of server crashes.&lt;br /&gt;
&lt;br /&gt;
* A ~2.5Ghz CPU will comfortably support a 10 player server.&lt;br /&gt;
 &lt;br /&gt;
* A ~4Ghz CPU will comfortably support 24 players. This is a limit built into Pavlov itself, no server will allow players to join over 24. Lower player counts are recommended for complex gamemodes (E.g. CodZ) and/or highly detailed maps, so that maximum number will often be lower.&lt;br /&gt;
&lt;br /&gt;
(Note that these are '''not''' hard limits for player counts, just suggestions for the best performance, based on experiences with many server providers on different grades of hardware.)&lt;br /&gt;
 &lt;br /&gt;
* Pavlovserver is functionally single threaded (one thread does vast majority of work). More CPUs only help if you are running more servers. More clockspeed = higher performance = more users per server. &lt;br /&gt;
The maximum number of servers you can run is dependent on how many CPUs you have. For example, if you have an 8 core CPU, the maximum number of servers would be 7. You should always have at least one CPU free as overhead, as Pavlov servers can use slightly more than one thread.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Hosting at home ====&lt;br /&gt;
When hosting at home there are additional requirements regarding networking: Your router has to support port-forwarding, hair-pinning/LoopbackNAT, and respond to ping requests.  These techniques are necessary to allow your server to be found and to talk back to the client. please see https://en.wikipedia.org/wiki/Port_forwarding,  https://en.wikipedia.org/wiki/Hairpinning, and https://www.speedguide.net/faq/how-to-become-pingable-behind-a-routerfirewall-376 for more info and google for these terms in addition to your router model to find guides on how to enable/configure it properly. If you have modern Router, it may have these features already enabled, in this case you just have to configure port-forwarding. If you can see your server but not join it while others can, this is indicative of a failure of LoopbackNAT. &lt;br /&gt;
&lt;br /&gt;
A second challenge to hosting at home is CGNAT (Carrier grade NAT: https://www.a10networks.com/blog/carrier-grade-nat/). Just like NAT on your home network that has to be gotten around w/ port-forwarding, CGNAT breaks the ability of external connections to be made back to your server, but the controls are solely in your ISPs hands. Sometimes if you ask, you can be removed from CGNAT pools and/or assigned a static IP. CGNAT rollouts are becoming very common now, so if your server worked then doesn't allow connections now, your ISP may have made this change. &lt;br /&gt;
&lt;br /&gt;
You can check whether you’re on a CGNAT network by visiting a Web site such as ipaddress.com or whatsmyip.com and comparing the IP address listed to the public/WAN IP address assigned to your Internet gateway. To find your gateway’s public IP address, check the status page in the administrative interface. If the two IP addresses differ, you’re likely on a CGNAT network. If so, this problem must be resolved before you go any further. &lt;br /&gt;
&lt;br /&gt;
'''Not understanding these requirements and configuration is a frequent cause of failed setups and questions in discord. Don't skip this if you are trying to host from home'''&lt;br /&gt;
&lt;br /&gt;
'''There are serious security implications of hosting this software at home.''' None of the devs are security experts and there has been no security review of the code. You are opening up your system to the world and publicity advertising this fact. Expect that any system hosting this software is open to compromise from the Internet and act accordingly. If your router offers a DMZ network, use it. Consider hosting on a cloud based server and think twice before running this software on any system that contains data you care about or has access to networks and computers you care about.&lt;br /&gt;
&lt;br /&gt;
If you're hosting at home using Oracle's VirtualBox, there are steps you can take to prevent double NAT (which can cause issues later on)&lt;br /&gt;
&lt;br /&gt;
1. Select your VM and then click Settings in VirtualBox's main window.&lt;br /&gt;
&lt;br /&gt;
2. Click on Network and change Attached To from NAT to Bridged Adapter. &lt;br /&gt;
&lt;br /&gt;
Once you've done this, your VM should be connected directly to your home router and double NAT should no longer be a issue.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Starting Server Install ====&lt;br /&gt;
&lt;br /&gt;
====Obtaining an ApiKey====&lt;br /&gt;
For your server to show up in the server list, there is now a requirement to have an ApiKey issued by vankrupt. This is to prevent DOS attacks against the master server&lt;br /&gt;
&lt;br /&gt;
Get the key by going here: https://pavlov-ms.vankrupt.com/servers/v1/key and using your mobile number to get a SMS &lt;br /&gt;
(note that there have been reported failures of this SMS system for non-US mobiles. In this case DM davevillz your mobile and ask for a key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Put this key in your Game.ini as follows:&lt;br /&gt;
    ApiKey=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
or if you would like (personally untested..I would use game.ini) you can call it at server runtime with flag as follows:&lt;br /&gt;
   -KEY=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This key can be re-used for a reasonable number of servers (a limit of 10 has been mentioned). Contact the Devs if you need more servers per key.&lt;br /&gt;
&lt;br /&gt;
====System setup and software installation====&lt;br /&gt;
&lt;br /&gt;
Install dependencies and create the `steam` user. (You only need to do this once):&lt;br /&gt;
&lt;br /&gt;
Confirm Linux version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsb_release -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 20.04'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gdb curl lib32gcc1 libc++-dev unzip&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 20.10 or higher'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gdb curl lib32gcc-s1 libc++-dev unzip&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rocky Linux, CentOS 8, and RHEL 8'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/g' /etc/selinux/config&lt;br /&gt;
sudo setenforce 0&lt;br /&gt;
sudo yum install gdb curl glibc.i686 libstdc++.i686 libstdc++-devel.i686 libstdc++-devel.x86_64 unzip wget -y&lt;br /&gt;
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libcxx-3.8.0-3.el7.x86_64.rpm&lt;br /&gt;
sudo rpm -i libcxx-3.8.0-3.el7.x86_64.rpm&lt;br /&gt;
sudo useradd -m steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Optional] Set a password for steam.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo passwd steam&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Login as the steam user. ('''You will need to do this each time you connect to your server'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su -l steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install Steam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/Steam &amp;amp;&amp;amp; cd ~/Steam &amp;amp;&amp;amp; curl -sqL &amp;quot;https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz&amp;quot; | tar zxvf -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different dedicated server versions for Pavlov Server - choose which server version you want to host (PC non-beta, PC Beta, Shack Live, or Shack RC)&lt;br /&gt;
(You will need to run this command each time there is a Pavlov Server update). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To host '''PC Server (non-beta)''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta default +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''PC BETA''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta beta_server +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''Shack Live''' (Quest):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta shack +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To host '''Shack RC''' (Quest): &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta shack_beta +exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that we've installed the server, all pavlov server versions should continue.  &amp;lt;br /&amp;gt;&lt;br /&gt;
Install a fresh copy of steamclient.so (May have to do this after each update):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/Steam/steamcmd.sh +login anonymous +app_update 1007 +quit&lt;br /&gt;
mkdir -p ~/.steam/sdk64&lt;br /&gt;
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/steamclient.so&lt;br /&gt;
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/pavlovserver/Pavlov/Binaries/Linux/steamclient.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The update 29 of the PCVR version of pavlov and after added a requirement to run these commands to change the steamclient.so:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo rm /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt; &lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ln -s /usr/lib/x86_64-linux-gnu/libc++.so.1 /usr/lib/x86_64-linux-gnu/libc++.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make the PavlovServer script executable. (You only need to do this once):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x ~/pavlovserver/PavlovServer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Server Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before starting the server we need to configure it. Start by creating some directories: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/Logs&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer&lt;br /&gt;
mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mods/Blacklist/Whitelist (optional)  ====&lt;br /&gt;
&lt;br /&gt;
The following three files allow you to specify mods, banned players, and whitelist players.  These are optional, but go ahead and create them.  Populating the files is described later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/mods.txt&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/blacklist.txt&lt;br /&gt;
touch /home/steam/pavlovserver/Pavlov/Saved/Config/whitelist.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configuring Game.ini====&lt;br /&gt;
Create a new Game.ini file using following command to open an editor and copy/paste the following block into it then save it. Note not all of these options are required. For instance remove or comment out the Password=0000 line to make a public server with no pin. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[/Script/Pavlov.DedicatedServer]&lt;br /&gt;
bEnabled=true&lt;br /&gt;
ServerName=&amp;quot;My_private_idaho&amp;quot;&lt;br /&gt;
MaxPlayers=10     #Set this to 10 for Shack. 24 is the max for PC, setting it higher will not allow players to join. &lt;br /&gt;
ApiKey=&amp;quot;ABC123FALSEKEYDONTUSEME&amp;quot;&lt;br /&gt;
bSecured=true&lt;br /&gt;
bCustomServer=true &lt;br /&gt;
bVerboseLogging=false &lt;br /&gt;
bCompetitive=false #This only works for SND&lt;br /&gt;
bWhitelist=false &lt;br /&gt;
RefreshListTime=120 &lt;br /&gt;
LimitedAmmoType=0 &lt;br /&gt;
TickRate=90&lt;br /&gt;
TimeLimit=60&lt;br /&gt;
#Password=0000 &lt;br /&gt;
#BalanceTableURL=&amp;quot;vankruptgames/BalancingTable/main&amp;quot;&lt;br /&gt;
MapRotation=(MapId=&amp;quot;UGC1758245796&amp;quot;, GameMode=&amp;quot;GUN&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;datacenter&amp;quot;, GameMode=&amp;quot;SND&amp;quot;)&lt;br /&gt;
MapRotation=(MapId=&amp;quot;sand&amp;quot;, GameMode=&amp;quot;DM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''bEnabled''' - whether the server appears in the server list (unconfirmed)&lt;br /&gt;
* '''ServerName''' - name it will be listed as. (approx 35 chars max)&lt;br /&gt;
* '''MaxPlayers''' - See suggested specs for limits. 10 standard (10 for shack), 20-24 is max recommended for large maps like Stalingrad or PUSH/RUSH modes, and servers allow a maximum of 24 players.&lt;br /&gt;
* '''ApiKey''' - Unique ApiKey required to register server with master server. Replace with your key&lt;br /&gt;
* '''bSecured''' - enabled Valve Anti-Cheat (VAC)&lt;br /&gt;
* '''bCustomServer''' - activates some new modding tools (save and http functions. Required to write to blacklist.txt for bans)&lt;br /&gt;
* '''bCompetitive''' - sets the server to competitive mode for SND. If removed the server will default to false&lt;br /&gt;
* '''bVerboseLogging''' - enables verbose logging, mostly detailed statistics.  Be prepared for significant increase in logging.&lt;br /&gt;
* '''bWhitelist''' - Only allow users in whitelist.txt to join&lt;br /&gt;
* '''RefreshListTime''' - sets how often the running server checks for updates in ban/whitelist/mod files&lt;br /&gt;
* '''LimitedAmmoType''' - sets limited ammo mode, see Limited Ammo Types table below&lt;br /&gt;
&lt;br /&gt;
* '''TimeLimit''' - sets time limit for each map&lt;br /&gt;
* '''TickRate''' - sets the server tickrate. (so far minimum stable seems around 50 and max around 120. Beware setting this changes weapon despawn time and breaks some game modes. Recommend not touching)&lt;br /&gt;
* '''Password''' - PIN number for server #FYI - this is now also changeable via rcon.&lt;br /&gt;
* '''BalanceTableURL''' - Points to a custom balance table from github. See https://github.com/vankruptgames/BalancingTable for instructions. This line isn't needed if you don't have one. &lt;br /&gt;
* '''MapRotation''' - you can add multiple of these. The map system has switched from the steam workshop to modio which means that the server rotation will need to be redone with modio UGCs. &amp;lt;nowiki&amp;gt;https://mod.io/g/pavlov&amp;lt;/nowiki&amp;gt;. This is done by taking the resource ID from the modio page, adding “UGC” in front of it and then adding that to the rotation. For example the map gravity &amp;lt;nowiki&amp;gt;https://mod.io/g/pavlov/m/gravity1&amp;lt;/nowiki&amp;gt; has a resource ID of 2773760 so the map ID to add to the server would be “UGC2773760”. When a match ends, the server will load the next map in the rotation.  &lt;br /&gt;
* '''AFKTimeLimit''' There is now a feature to kick players who are idle in the game. Integers are measured in seconds and 0 disables AFK kicking completely.&lt;br /&gt;
&lt;br /&gt;
Available game modes as of 09/06/2022: See Game modes table below&lt;br /&gt;
&lt;br /&gt;
For maps running a Custom gamemode (CodZ, BR, Duel, etc.) it doesn't matter which gamemode you choose, as the map will automatically override it with the custom mode.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Limited Ammo Types&lt;br /&gt;
!AmmoType&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Unlimited&lt;br /&gt;
|Players have unlimited ammo, carry no ammo boxes and do not display an ammo count on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Limited Generic&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon class (Pistol, Submachine gun, Rifles/MGs, Shotgun, Sniper).&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Limited Specific&lt;br /&gt;
|Players carry ammo boxes with a limited amount of ammo.&lt;br /&gt;
One box for each weapon.&lt;br /&gt;
&lt;br /&gt;
Mags and ammo boxes can be put on the chest of the player to consolidate the ammo.&lt;br /&gt;
&lt;br /&gt;
An ammo count is displayed on the wrist.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Custom&lt;br /&gt;
|Allows for full control over ammo by the map.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
| Limited Special&lt;br /&gt;
|'''All weapons except &amp;quot;special&amp;quot; weapons are unlimited, more clarification is needed.''' &lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Boxless&lt;br /&gt;
|'''Like limited generic but without boxes? Clarification is needed.'''&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Game modes&lt;br /&gt;
!GameMode &lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|DM&lt;br /&gt;
|Death match&lt;br /&gt;
|-&lt;br /&gt;
|KOTH&lt;br /&gt;
|King of the hill&lt;br /&gt;
|-&lt;br /&gt;
|GUN&lt;br /&gt;
| Gun game&lt;br /&gt;
|-&lt;br /&gt;
|OITC&lt;br /&gt;
| One in the chamber&lt;br /&gt;
|-&lt;br /&gt;
|SND&lt;br /&gt;
|Search and destroy&lt;br /&gt;
|-&lt;br /&gt;
|TANKTDM&lt;br /&gt;
|WW2 Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
| TDM&lt;br /&gt;
|Team Death Match&lt;br /&gt;
|-&lt;br /&gt;
|TTT&lt;br /&gt;
|Trouble in Terrorist Town&lt;br /&gt;
|-&lt;br /&gt;
|WW2GUN&lt;br /&gt;
|WW2 gun game&lt;br /&gt;
|-&lt;br /&gt;
|ZWV&lt;br /&gt;
| Zombie wave survival&lt;br /&gt;
|-&lt;br /&gt;
|HIDE&lt;br /&gt;
|The Hidden &lt;br /&gt;
|-&lt;br /&gt;
|INFECTION&lt;br /&gt;
|Hidden infection&lt;br /&gt;
|-&lt;br /&gt;
|PUSH&lt;br /&gt;
|Push&lt;br /&gt;
|-&lt;br /&gt;
|PH&lt;br /&gt;
|Prop hunt&lt;br /&gt;
|}&lt;br /&gt;
= Default Map ID's =&lt;br /&gt;
datacenter &lt;br /&gt;
&lt;br /&gt;
sand&lt;br /&gt;
&lt;br /&gt;
bridge&lt;br /&gt;
&lt;br /&gt;
containeryard&lt;br /&gt;
&lt;br /&gt;
siberia (Prison Break)&lt;br /&gt;
&lt;br /&gt;
hospital (Zombies map)&lt;br /&gt;
&lt;br /&gt;
killhouse&lt;br /&gt;
&lt;br /&gt;
range&lt;br /&gt;
&lt;br /&gt;
tutorial&lt;br /&gt;
&lt;br /&gt;
santorini&lt;br /&gt;
&lt;br /&gt;
station&lt;br /&gt;
&lt;br /&gt;
industry&lt;br /&gt;
&lt;br /&gt;
ogcontainers (Shack only)&lt;br /&gt;
&lt;br /&gt;
haguenau (Shack only)&lt;br /&gt;
&lt;br /&gt;
foundation (Shack only)&lt;br /&gt;
&lt;br /&gt;
stalingrad (PC only)&lt;br /&gt;
&lt;br /&gt;
stalingrad_night (PC only)&lt;br /&gt;
&lt;br /&gt;
santorini_night (PC only)&lt;br /&gt;
&lt;br /&gt;
sand_night (PC only)&lt;br /&gt;
&lt;br /&gt;
station_night (PC only)&lt;br /&gt;
&lt;br /&gt;
industry_night (PC only)&lt;br /&gt;
&lt;br /&gt;
bunker (PC only)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Firewall/Port forwarding ====&lt;br /&gt;
Using the default settings there are two UDP ports (7777, 8177) that need to be allowed to access the server either by firewall setup or port forwarding. &lt;br /&gt;
&lt;br /&gt;
'''Ubuntu''' firewall commands to check firewall and open ports:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ufw status&lt;br /&gt;
sudo ufw allow 7777&lt;br /&gt;
sudo ufw allow 8177&lt;br /&gt;
sudo ufw allow 9100&lt;br /&gt;
sudo ufw status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rocky Linux''' firewall commands to check firewall and open ports:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=7777/tcp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=7777/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=8177/tcp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=8177/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=9100/udp&lt;br /&gt;
sudo firewall-cmd --zone=public --add-port=9100/tcp&lt;br /&gt;
sudo firewall-cmd --list-ports&lt;br /&gt;
firewall-cmd --runtime-to-permanent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to allow Pings (ICMP) for the server's true latency to appear in the master list.&lt;br /&gt;
&lt;br /&gt;
If you are running multiple servers and have set additional ports (see http://wiki.pavlov-vr.com/index.php?title=Dedicated_server#Running_multiple_servers_on_one_host) then you need to allow access to the defined port plus the port 400 higher. So if you use 7000 as your port, then UDP 7000 and 7400 need to be open&lt;br /&gt;
&lt;br /&gt;
If you have setup rcon via RconSettings.txt (below) then that port also need to be allowed access via TCP&lt;br /&gt;
&lt;br /&gt;
If you are running Shack/Quest and want to have maps that are downloadable from your server, your server ports (ex. 7777 &amp;amp; 8177) must also be open via TCP&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Shack Maps (Quest) ====&lt;br /&gt;
&lt;br /&gt;
If you try to use the steps above to add maps for Shack, youll run into issues very quickly. This is because Shack has no affiliation to Steam, and therefore cannot use Steam Workshop maps like above. In the future, these steps will apply to PC servers as well, allowing a server to hold the map itself, instead of offloading to Steam.&lt;br /&gt;
&lt;br /&gt;
To get started, first create the directory to hold the maps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir -p /home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use any number of methods to move the map files onto the server, but ill go over the two simplest, starting with a GUI approach&lt;br /&gt;
&lt;br /&gt;
Download and install CyberDuck onto your &amp;quot;home&amp;quot; PC (Whatever PC you use for access to the server, but not the server itsself): https://cyberduck.io/&lt;br /&gt;
&lt;br /&gt;
Next, download and unzip your map of choice from https://www.pavlovquest.com/ , https://pavlovhorde.com/mapsList, or look in #shack-map-showcase channel in the discord server.  I'm going to use Cheeto's WW2 Items test (http://www.mediafire.com/file/emyt9bs1z9u9ykw/SVR_Cheeto_Items.zip/file ) for this example, you do what you like&lt;br /&gt;
&lt;br /&gt;
In the top left corner, open a connection, set the connection type to SFTP, and fill in the rest of the information. User will be root, password is whatever you set the root pw as (toor in Ubuntu by default)&lt;br /&gt;
&lt;br /&gt;
In the directory dropdown (itll say /root) go back to /&lt;br /&gt;
&lt;br /&gt;
Follow the directories until we arrive back at our &amp;quot;maps&amp;quot; folder &amp;lt;pre&amp;gt;/home/steam/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drag and drop the unzipped map folder into the main window, in this case itll be SVR_Cheeto_Items&lt;br /&gt;
&lt;br /&gt;
Hit Allow&lt;br /&gt;
&lt;br /&gt;
Youll now see a folder named SVR_Cheeto_Items, and within it should be nothing but 3 files. If there is another folder in it, move this folder to the maps directory, otherwise the server wont work. The 3 files (2 .PAK one .JSON) should be in home/steam/pavlovserver/Pavlov/Saved/maps/SVR_Cheeto_Items, no more, no less.&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
To play the map, you can either use RCON switch map command, or to add the map to your servers automatic map rotation list, add the map's folder name to your Game.ini. This replaces the MapID section, so for our example it would be &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And thats all! Disconnect CyberDuck from your server before playing, otherwise youll have difficulty joining.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
==== Adding Shack Maps over Command Line Interface ====&lt;br /&gt;
&lt;br /&gt;
Pavlov Shack servers load maps at pavlovserver start.  '''YOU MUST RESTART THE GAME SERVER TO USE THE MAPS.'''&lt;br /&gt;
&lt;br /&gt;
A bit more complicated, but adding maps over CLI has its benefits&lt;br /&gt;
&lt;br /&gt;
First, CD to the maps directory you made above&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/pavlovserver/Pavlov/Saved/maps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the map files from whatever you use to upload them. To do this, you can either use curl or wget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O insertURLhere&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;'''If you download your map from Google Drive''', make sure that your .zip folder is shared to anyone.&amp;lt;/p&amp;gt;&lt;br /&gt;
Then, get the file's url from the shared link. &amp;lt;p&amp;gt;Example : ''&amp;lt;nowiki&amp;gt;https://drive.google.com/file/d/19bI8gUHaN5tUrDvnadAacUnchQf6_k/view&amp;lt;/nowiki&amp;gt;''&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;will be ''19bI8gUHaN5tUrDvnadAacUnchQf6_k''&amp;lt;/p&amp;gt;&lt;br /&gt;
Edit &amp;quot;fileId&amp;quot; and &amp;quot;fileName&amp;quot; before you execute the command. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fileId=19bI8gUHaN5tUrDvnadAacUnchQf6_k&lt;br /&gt;
fileName=SVR_USER_MAPNAME&lt;br /&gt;
curl -sc /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;id=${fileId}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
code=&amp;quot;$(awk '/_warning_/ {print $NF}' /tmp/cookie)&amp;quot;  &lt;br /&gt;
curl -Lb /tmp/cookie &amp;quot;https://drive.google.com/uc?export=download&amp;amp;confirm=${code}&amp;amp;id=${fileId}&amp;quot; -o ${fileName} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To keep with the Items example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -O https://cdn.discordapp.com/attachments/744185280759857234/745027406695366788/SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, unzip the file. If this next step errors out, saying the command is unknown, switch back to the root user (su root), and install unzip (sudo apt install unzip), then return to the steam user, and continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip SVR_Cheeto_Items.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now finish like before by adding the map to your Game.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano /home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MapRotation=(MapId=&amp;quot;SVR_Cheeto_Items&amp;quot;, GameMode=&amp;quot;TDM&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Admin/Moderator list (optional) ====&lt;br /&gt;
&lt;br /&gt;
The only working in-game admin menu is through Arctic VR server hosting (see below).  &lt;br /&gt;
&lt;br /&gt;
If you add moderators to your server, they will not be subject to vote kicks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/pavlovserver/Pavlov/Saved/Config/mods.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Mod List:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
76541198397498572 #Optional Comment: Player name&lt;br /&gt;
76541198397498573 #Some Other Player&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ArcticVR Admin Menu ====&lt;br /&gt;
&lt;br /&gt;
[[File:Arcticmenu.jpg|500px|link=https://www.arctic-vr.com/server-admin-menu]]&lt;br /&gt;
&lt;br /&gt;
Arctic-VR Offers an advanced In-Game Admin menu that is exclusive to their hosting service. Features include: &lt;br /&gt;
* Switch Maps+Modes&lt;br /&gt;
* Teleport Players to Players&lt;br /&gt;
* Change Player Skins&lt;br /&gt;
* Control Player Buying+Cash&lt;br /&gt;
* Spawn Items&lt;br /&gt;
* Clean up corpses + guns&lt;br /&gt;
* Spawn Bots&lt;br /&gt;
* Spawn Items for other players&lt;br /&gt;
* Control Teams + Balance/Shuffle Teams&lt;br /&gt;
* ResetSND&lt;br /&gt;
* And More&lt;br /&gt;
&lt;br /&gt;
You can read more about the ArcticVR admin menu on their website: https://www.arctic-vr.com/server-admin-menu&lt;br /&gt;
&lt;br /&gt;
==== Handy tools for finding steamIDs ==== &lt;br /&gt;
&lt;br /&gt;
Steam ID finder: https://steamidfinder.com/lookup/ or https://steamid.xyz/&lt;br /&gt;
&lt;br /&gt;
You want to enter in the steamID64 format. &lt;br /&gt;
&lt;br /&gt;
This tool can convert or lookup IDs:  https://steamid.io/&lt;br /&gt;
&lt;br /&gt;
If you are looking for a steamID of a player that has been on your server recently this is technique to find them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grep -i playername ~/pavlovserver/Pavlov/Saved/Logs/* | grep TicketValidation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Rcon ===&lt;br /&gt;
To enable Rcon access create config file:&lt;br /&gt;
&amp;lt;pre&amp;gt; nano /home/steam/pavlovserver/Pavlov/Saved/Config/RconSettings.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy in the following text - change password, and if desired the port:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password=ChangeThisPassword&lt;br /&gt;
Port=9100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You must specify a port for the Rcon server to use as well as a Password (use a different port per sever instance if running multiple server instances off the same hardware)&lt;br /&gt;
&lt;br /&gt;
=== Starting the server ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/pavlovserver &amp;amp;&amp;amp; ./PavlovServer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it, your server will be automatically broadcast to the master server! :) &lt;br /&gt;
&lt;br /&gt;
Two handy tools to determine quickly if your server is broadcasting are [https://pablub.xyz/ Pablub] (PC only) and [https://pavlovhorde.com/ Horde] (Shack) and [https://pavlovhorde.com/pcServers Horde] (PC version)&lt;br /&gt;
&lt;br /&gt;
Note that when you close your terminal, the server will go down. See the &amp;quot;supervisors&amp;quot; section below for how to prevent this.&lt;br /&gt;
&lt;br /&gt;
=== Auto-updating the server ===&lt;br /&gt;
&lt;br /&gt;
Assuming you have followed this guide and used the default paths, users, and install instructions, you can paste the following into your terminal to auto-update your Pavlov server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt; 'EOF' &amp;gt; $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
USER=&amp;quot;steam&amp;quot;&lt;br /&gt;
SERVICENAME=&amp;quot;pavlovserver.service&amp;quot;&lt;br /&gt;
INSTALLDIRNAME=&amp;quot;pavlovserver&amp;quot;&lt;br /&gt;
USERHOME=&amp;quot;/home/$USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Beginning Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl stop &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 5&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +force_install_dir &amp;quot;$USERHOME/$INSTALLDIRNAME&amp;quot; +app_update 622970 +exit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; &amp;quot;$USERHOME/Steam/steamcmd.sh&amp;quot; +login anonymous +app_update 1007 +quit&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/.steam/sdk64/steamclient.so&amp;quot;&lt;br /&gt;
sudo -iu &amp;quot;$USER&amp;quot; cp &amp;quot;$USERHOME/Steam/steamapps/common/Steamworks SDK Redist/linux64/steamclient.so&amp;quot; &amp;quot;$USERHOME/pavlovserver/Pavlov/Binaries/Linux/steamclient.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemctl start &amp;quot;$SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Ending Pavlov VR update run on $(date)\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
chmod +x $HOME/pavlov_daily_update_and_restart.sh&lt;br /&gt;
mkdir $HOME/pavlov_update_logs &amp;amp;&amp;amp; touch $HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log&lt;br /&gt;
CRONLINE=&amp;quot;00 2 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
(sudo crontab -u root -l; echo &amp;quot;$CRONLINE&amp;quot; ) | sudo crontab -u root -&lt;br /&gt;
unset CRONLINE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These commands will:&lt;br /&gt;
&lt;br /&gt;
1. Create a shell script in the &amp;quot;steam&amp;quot; user's home directory that automatically stops the Pavlov server, pulls any updates via steam, pull updates to the Steamworks SDK Redist, and copies the latest version of steamclient.so to the Pavlov server directory&lt;br /&gt;
&lt;br /&gt;
2. Make the shell script executable&lt;br /&gt;
&lt;br /&gt;
3. Create a new directory called &amp;quot;pavlov_update_logs&amp;quot; in the &amp;quot;steam&amp;quot; user's directory, and create a logfile inside that directory called &amp;quot;pavlov_daily_update_and_restart.sh.log&amp;quot;. You can check this logfile to see the output of the Pavlov and Steam SDK update commands.&lt;br /&gt;
&lt;br /&gt;
4. Create a crontab entry for the root user that runs this shell script automatically every day at 2:00AM local time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to change the time that this script runs, edit the numbers &amp;quot;00 2&amp;quot; in the line that starts with &amp;quot;CRONLINE=&amp;quot;. In the example provided, 00 is the minutes column, and 2 is the hour column. For example, if you wanted the server to automatically update and restart at 4:17AM every day, change the line starting with &amp;quot;CRONLINE=&amp;quot; to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRONLINE=&amp;quot;17 4 * * * $HOME/pavlov_daily_update_and_restart.sh &amp;gt;&amp;gt;$HOME/pavlov_update_logs/pavlov_daily_update_and_restart.sh.log 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the time is PM, use 24-hour time format, e.g. &amp;quot;32 18&amp;quot; for 6:32PM.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Supervising the server using systemd ===&lt;br /&gt;
&lt;br /&gt;
Running '''./PavlovServer.sh''' in your interactive shell is easy, but the server will shut down when you close your terminal. If you want to run the server in the background,&lt;br /&gt;
you'll want to run it under a supervisor. There are many options, ranging from the simple (nohup, screen or tmux), to the&lt;br /&gt;
more robust (supervisord, systemd).&lt;br /&gt;
&lt;br /&gt;
Systemd is running by default on Ubuntu Linux, so we'll use that here.&lt;br /&gt;
&lt;br /&gt;
To run the server as a systemd service, create the file '''/etc/systemd/system/pavlovserver.service''' (as root) by typing &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
sudo nano /etc/systemd/system/pavlovserver.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy contents below into the file and save.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Pavlov VR dedicated server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
WorkingDirectory=/home/steam/pavlovserver&lt;br /&gt;
ExecStart=/home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
&lt;br /&gt;
RestartSec=1&lt;br /&gt;
Restart=always&lt;br /&gt;
User=steam&lt;br /&gt;
Group=steam&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like your server to start as competitive without editing the game.ini, change the line &amp;quot;ExecStart=/home/steam/pavlovserver/PavlovServer.sh&amp;quot; to look like this below. Though it's much easier to just use the game.ini to enable competitive instead. &amp;lt;pre&amp;gt;ExecStart=/home/steam/pavlovserver/PavlovServer.sh -COMPETITIVE=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the user or paths as appropriate. After saving the service file, to start, restart, stop, or monitor the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl start pavlovserver&lt;br /&gt;
sudo systemctl restart pavlovserver&lt;br /&gt;
sudo systemctl stop pavlovserver&lt;br /&gt;
sudo systemctl status pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To view the logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -u pavlovserver&lt;br /&gt;
# to live-tail the logs&lt;br /&gt;
sudo journalctl -u pavlovserver -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to run the pavlov server as soon as your server boots (e.g. a VPS you turn on and off), add pavlov as a startup service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable pavlovserver&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Advanced Server Administration ==&lt;br /&gt;
&lt;br /&gt;
=== Running multiple servers on one host ===&lt;br /&gt;
&lt;br /&gt;
* Pavlovserver is functionally single threaded (there are multiple threads, but vast majority of work occurs in the primary one). Make sure you have # of pavlovservers + 1 CPU available. More CPUs= more servers. Faster CPU = more players. &lt;br /&gt;
* Make multiple server installs by defining a separate install dir for each server.&lt;br /&gt;
* Run each server with a unique port. eg: '''./PavlovServer.sh -PORT=&amp;quot;Desired Port&amp;quot;'''&lt;br /&gt;
* The Server will use the Desired Port and the Port 400 above (Example: You choose 8200 as Port. So Port 8600 will be used as well)&lt;br /&gt;
* If you are using RCON, each server will need a unique port defined in RconSettings.txt &lt;br /&gt;
* Ensure the ports are forwarded and opened in your firewall &lt;br /&gt;
&lt;br /&gt;
To duplicate directories:&lt;br /&gt;
&lt;br /&gt;
be in the steam home folder&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r pavlovserver pavlovserver1&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -PORT=[Desired Port]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting server in competitive mode ===&lt;br /&gt;
Competitive mode will prevent dead teammates from being able to see the match, to prevent ghosting.&lt;br /&gt;
You can either enable this via Game.ini (described in Game.ini file), or using the -COMPETITIVE=1 parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/steam/pavlovserver1/PavlovServer.sh -COMPETITIVE=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Useful Linux Commands ===&lt;br /&gt;
List files / folders in directory, print current working directory, &lt;br /&gt;
&amp;lt;pre&amp;gt;ls -la                                    #list files/directories along with authorities and ownership&lt;br /&gt;
pwd                                       #print working directory&lt;br /&gt;
sudo chown &amp;lt;owner&amp;gt; &amp;lt;file/directory&amp;gt;       #change owner of file/directory.  If root created something and you need to change it to steam&lt;br /&gt;
sudo chgrp &amp;lt;group&amp;gt; &amp;lt;file/directory&amp;gt;       #change group of file/directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check if pavlov is running by checking process status.  If the only row you see is the grep command, pavlov server is not started.&lt;br /&gt;
&amp;lt;pre&amp;gt; ps -ef | grep pav &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
steam      34044       1  0 16:52 ?        00:00:00 /bin/sh /home/steam/pavlovserver/PavlovServer.sh&lt;br /&gt;
steam      34066   34044 80 16:52 ?        00:00:04 /home/steam/pavlovserver/Pavlov/Binaries/Linux/PavlovServer&lt;br /&gt;
zombies+   34101   34013  0 16:52 pts/0    00:00:00 grep --color=auto pav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kill a process.  Note this command uses 34044, which is a process id from the command output above.&lt;br /&gt;
&amp;lt;pre&amp;gt; kill -9 34044           &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dump the log to the console so you can scroll through it:&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search the log for a string - replace my_string with case-sensitive string&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log | grep my_string &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RCON automation]]&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=762</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=762"/>
		<updated>2023-06-30T11:03:55Z</updated>

		<summary type="html">&lt;p&gt;Rain: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=761</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=761"/>
		<updated>2023-06-30T11:03:49Z</updated>

		<summary type="html">&lt;p&gt;Rain: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Talk:Rcon_Overview_and_Commands&amp;diff=760</id>
		<title>Talk:Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Talk:Rcon_Overview_and_Commands&amp;diff=760"/>
		<updated>2023-06-30T11:02:27Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What does and does not belong on this page==&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
==Grammar and syntax==&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* accurate GiveItem chest slot count required&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=759</id>
		<title>Rcon Overview and Commands</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Rcon_Overview_and_Commands&amp;diff=759"/>
		<updated>2023-06-30T11:01:59Z</updated>

		<summary type="html">&lt;p&gt;Rain: Applied all changes from User:Rain/sandbox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=758</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=758"/>
		<updated>2023-06-30T11:01:14Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* accurate GiveItem chest slot count required&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=757</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=757"/>
		<updated>2023-06-30T11:00:05Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''Missing data, please rectify.'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
Telnet seems to prematurely flush the buffer when entering the password, causing authentication to fail.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=753</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=753"/>
		<updated>2023-06-26T13:41:10Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Reply format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with its own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=752</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=752"/>
		<updated>2023-06-24T19:52:25Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method with which Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=751</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=751"/>
		<updated>2023-06-24T19:51:30Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=750</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=750"/>
		<updated>2023-06-24T19:51:17Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
'''Example'''&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=749</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=749"/>
		<updated>2023-06-24T19:50:35Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Direct connect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
==== Netcat ====&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
===== Example =====&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
==== Telnet ====&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=748</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=748"/>
		<updated>2023-06-24T19:49:03Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
 Goodbye&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=747</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=747"/>
		<updated>2023-06-24T19:48:31Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=746</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=746"/>
		<updated>2023-06-24T19:45:59Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Sending commands and receiving replies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the server sending the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line feed. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc bloodisgood.org 9104&lt;br /&gt;
 Password: d997dfc038fc683aa145bca9c8a3d906Authenticated=1&lt;br /&gt;
&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=745</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=745"/>
		<updated>2023-06-24T19:44:02Z</updated>

		<summary type="html">&lt;p&gt;Rain: /* Reply format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line break. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc bloodisgood.org 9104&lt;br /&gt;
 Password: d997dfc038fc683aa145bca9c8a3d906Authenticated=1&lt;br /&gt;
&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=744</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=744"/>
		<updated>2023-06-24T19:42:35Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io and append it to &amp;quot;UGC&amp;quot; (Example: https://mod.io/g/pavlov/m/mcdonalds has Resource ID &amp;lt;code&amp;gt;2804322&amp;lt;/code&amp;gt;, the MapID to use would be &amp;lt;code&amp;gt;UGC2804322&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; is true anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line break. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc bloodisgood.org 9104&lt;br /&gt;
 Password: d997dfc038fc683aa145bca9c8a3d906Authenticated=1&lt;br /&gt;
&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=743</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=743"/>
		<updated>2023-06-24T19:39:49Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=742</id>
		<title>User:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User:Rain/Sandbox&amp;diff=742"/>
		<updated>2023-06-24T19:39:24Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RCON (Remote Console) is the method Pavlov VR servers can be controlled from outside of VR.&lt;br /&gt;
&lt;br /&gt;
== RCON Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Placeholders ===&lt;br /&gt;
Values in [square brackets] are placeholders and must be replaced, or will be replaced by the server in a reply.&lt;br /&gt;
&lt;br /&gt;
[UniqueID] - Player ID (eg. [https://steamid.io/ SteamID64] (PCVR), Oculus Username (Shack))&lt;br /&gt;
&lt;br /&gt;
[GameMode] - See [[Setting up a dedicated server#Configuring Game.ini|Gamemodes table]] and [[Gamemodes]]&lt;br /&gt;
&lt;br /&gt;
[TeamID] - 0 for blue, 1 for red, if there are teams&lt;br /&gt;
&lt;br /&gt;
[VehicleID] - See [[Vehicles]]&lt;br /&gt;
&lt;br /&gt;
[MapName/ID] - See [[Default Maps|Default maps]] or find the Map ID on Mod.io (put example)&lt;br /&gt;
&lt;br /&gt;
[SkinID] - See [[ItemIDs#Skins|Skins]]&lt;br /&gt;
&lt;br /&gt;
[RoleID] - See [[ItemIDs#TTT Roles (Case Sensitive)|TTT Roles]]&lt;br /&gt;
&lt;br /&gt;
[ItemID] - See [[ItemIDs|Items]]&lt;br /&gt;
&lt;br /&gt;
[True/False] - Either &amp;quot;True&amp;quot; to enable or &amp;quot;False&amp;quot; to disable&lt;br /&gt;
&lt;br /&gt;
[Amount] - A number indicating an amount of something&lt;br /&gt;
&lt;br /&gt;
=== Reply format ===&lt;br /&gt;
All command replies are formatted as JSON and inherit this base format:&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;Command&amp;quot;: &amp;quot;[The command name]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Comment&amp;quot;: &amp;quot;[An optional comment about the command]&amp;quot;,&lt;br /&gt;
 	&amp;quot;Successful&amp;quot;: &amp;quot;[True/False]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Comment will not exist if the command does not output a comment.&lt;br /&gt;
&lt;br /&gt;
Additional command output is added to the above format. The Example Reply column below only contains this additional command output.&lt;br /&gt;
&lt;br /&gt;
Often, commands will contain a field with their own name and a boolean value. This is a very inconsistent value. For example in &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt;, if the amount is set to the same as the current slot count, &amp;lt;code&amp;gt;Successful&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;SetMaxPlayers&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. However for &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; for example, if a player is switched to the same team they are already in, &amp;lt;code&amp;gt;SwitchTeam&amp;lt;/code&amp;gt; is true anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+RCON Commands&lt;br /&gt;
!Command&lt;br /&gt;
!Parameters&lt;br /&gt;
!Description&lt;br /&gt;
!Example Command&lt;br /&gt;
!Example Reply&lt;br /&gt;
|-&lt;br /&gt;
|Help&lt;br /&gt;
|none&lt;br /&gt;
|Returns the full list of commands and their parameters&lt;br /&gt;
|&lt;br /&gt;
 Help&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Help&amp;quot;: [&lt;br /&gt;
   &amp;quot;AddMapRotation MapID GameMode&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;UpdateServerName ServerName&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|AddMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Adds the specified map with the specified game mode to the bottom of the map rotation.&lt;br /&gt;
Writes the map to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AddMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Adds the specified player to the moderator list, making them an admin.&lt;br /&gt;
Allows them to use the admin menu in the pause menu and be immune to being vote-kicked.&lt;br /&gt;
&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 AddMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;AddMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Ban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks and permanently bans the specified player from the server. They will not be able to join the server anymore.&lt;br /&gt;
Writes the player to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Ban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Ban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Banlist&lt;br /&gt;
|none&lt;br /&gt;
|Lists the currently banned player UniqueIDs from &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Banlist&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;BanList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234569&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Disconnect&lt;br /&gt;
|none&lt;br /&gt;
|Forces the server to closes the RCON connection.&lt;br /&gt;
|&lt;br /&gt;
 Disconnect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EnableCompMode&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables competitive mode.&lt;br /&gt;
'''Comment''': Comp mode will be changed on map rotation, this updates the config value&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bCompetitive&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableCompMode true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;CompModeState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableCompMode&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableVerboseLogging&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables verbose logging.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bVerboseLogging&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 EnableVerboseLogging false&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;VerboseLoggingState&amp;quot;: false,&lt;br /&gt;
 &amp;quot;EnableVerboseLogging&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|EnableWhitelist&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables whitelist usage.&lt;br /&gt;
When enabled, only players who are listed in &amp;lt;code&amp;gt;whitelist.txt&amp;lt;/code&amp;gt; can join the server.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;bWhitelist&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;WhitelistState&amp;quot;: true,&lt;br /&gt;
 &amp;quot;EnableWhitelist&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Gag&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[True/False]&lt;br /&gt;
|Gags or ungags the specified player.&lt;br /&gt;
When gagged, players can not use voice chat.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Gag&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveAll&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Gives an item to all players on a team.&lt;br /&gt;
The &amp;lt;code&amp;gt;GiveItem&amp;lt;/code&amp;gt; RCON command description elaborates on how items are placed onto the body of the player.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|GiveCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Gives the specified amount of cash to the specified player.&lt;br /&gt;
|&lt;br /&gt;
 GiveCash 12345678901234567 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveItem&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[ItemID]&lt;br /&gt;
|Equippes the specified item to the specified player to the corresponding item slot.&lt;br /&gt;
Primary guns are placed into the players main hand, replacing the held gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Secondary guns are placed onto the players hip, replacing the holstered gun, which will drop.&lt;br /&gt;
&lt;br /&gt;
Utilities will be placed onto the players chest slots until all slots are full, which will cause given items to be dropped instead.&lt;br /&gt;
|&lt;br /&gt;
 GiveItem 12345678901234567 syringe&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveItem&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|GiveTeamCash&lt;br /&gt;
|[TeamID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Adds the specified amount of cash to each member of the specified team.&lt;br /&gt;
|&lt;br /&gt;
 GiveTeamCash 0 200&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GiveTeamCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;TeamID&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|InspectAll&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all players on the server.&lt;br /&gt;
|&lt;br /&gt;
 InspectAll&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|InspectPlayer&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Returns a detailed status for the specified player.&lt;br /&gt;
The player must be listed in RefreshList.&lt;br /&gt;
|&lt;br /&gt;
 InspectPlayer 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;PlayerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
   &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
   &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
   &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
   &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
   &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
   &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|InspectTeam&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Returns a list of InspectPlayer blocks for all player on the specified team.&lt;br /&gt;
|&lt;br /&gt;
 InspectTeam 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;InspectList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;PlayerName&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
     &amp;quot;KDA&amp;quot;: &amp;quot;3/1/2&amp;quot;,&lt;br /&gt;
     &amp;quot;Score&amp;quot;: &amp;quot;50&amp;quot;,&lt;br /&gt;
     &amp;quot;Dead&amp;quot;: false,&lt;br /&gt;
     &amp;quot;Cash&amp;quot;: &amp;quot;3450&amp;quot;,&lt;br /&gt;
     &amp;quot;TeamId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
     &amp;quot;Ping&amp;quot;: 39.857143402099609,&lt;br /&gt;
     &amp;quot;Gag&amp;quot;: false&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ItemList&lt;br /&gt;
|none&lt;br /&gt;
|Lists all items in the game and the current map.&lt;br /&gt;
Custom items built into the map will be listed.&lt;br /&gt;
|&lt;br /&gt;
 ItemList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ItemList&amp;quot;: [&lt;br /&gt;
   &amp;quot;1911&amp;quot;,&lt;br /&gt;
   &amp;quot;57&amp;quot;,&lt;br /&gt;
   &amp;quot;acog&amp;quot;,&lt;br /&gt;
   &amp;quot;adrenaline&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;ww2knife&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2medkit&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2painkillers&amp;quot;,&lt;br /&gt;
   &amp;quot;ww2syringe&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|Kick&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kicks the specified player from the server.&lt;br /&gt;
|&lt;br /&gt;
 Kick 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kick&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|Kill&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Kills the specified player.&lt;br /&gt;
|&lt;br /&gt;
 Kill 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;Kill&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|MapList&lt;br /&gt;
|none&lt;br /&gt;
|Returns the current map rotation from Game.ini.&lt;br /&gt;
|&lt;br /&gt;
 MapList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MapList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;UGC2863450&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;MapId&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
     &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|ModeratorList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of UniqueIDs of all moderators from &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 ModeratorList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ModeratorList&amp;quot;: [&lt;br /&gt;
   &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RefreshList&lt;br /&gt;
|none&lt;br /&gt;
|Returns a list of all connected player names and their corresponding UniqueIDs.&lt;br /&gt;
|&lt;br /&gt;
 RefreshList&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PlayerList&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234567&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   ...truncated...&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Username&amp;quot;: &amp;quot;Username2&amp;quot;,&lt;br /&gt;
     &amp;quot;UniqueId&amp;quot;: &amp;quot;12345678901234568&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ],&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMapRotation&lt;br /&gt;
|[MapName/ID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Removes the first occurrence of the specified map and game mode combination from the map rotation.&lt;br /&gt;
[MapName/ID] and [GameMode]  are case sensitive to the entries in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;MapList&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMapRotation sand snd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RemoveMod&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Removes the specified player from the moderator list.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;mods.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 RemoveMod 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RemoveMod&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|ResetSND&lt;br /&gt;
|none&lt;br /&gt;
|Reset the currently running SND match.&lt;br /&gt;
All players will have starting cash, no kills, deaths, assists or score.&lt;br /&gt;
&lt;br /&gt;
All players are killed.&lt;br /&gt;
&lt;br /&gt;
The score is reset to 0 all.&lt;br /&gt;
|&lt;br /&gt;
 ResetSND&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ResetSND&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|PauseMatch&lt;br /&gt;
|[Optional Amount]&lt;br /&gt;
|Pauses the currently running match for the specified amount of seconds.&lt;br /&gt;
The game is frozen and displays a &amp;quot;Game is paused&amp;quot; countdown timer.&lt;br /&gt;
&lt;br /&gt;
The game is unpaused when amount is not specified or 0.&lt;br /&gt;
&lt;br /&gt;
Unpausing starts a countdown timer at 15 seconds before unpausing.&lt;br /&gt;
&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 3600&lt;br /&gt;
|&lt;br /&gt;
 PauseMatch 60&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;PauseTime&amp;quot;: 60,&lt;br /&gt;
 &amp;quot;PauseMatch&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|RotateMap&lt;br /&gt;
|none&lt;br /&gt;
|Immediately changes the current map to the next map in the map rotation.&lt;br /&gt;
If the current map was changed to using &amp;lt;code&amp;gt;SwitchMap&amp;lt;/code&amp;gt;, the next map will be the one after the previously switched map instead of the immediate map after the current one.&lt;br /&gt;
|&lt;br /&gt;
 RotateMap&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;RotateMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ServerInfo&lt;br /&gt;
|none&lt;br /&gt;
|Returns server information such as server name, player count, current map and mode, and more.&lt;br /&gt;
|&lt;br /&gt;
 ServerInfo&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;MapLabel&amp;quot;: &amp;quot;datacenter&amp;quot;,&lt;br /&gt;
   &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
   &amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,&lt;br /&gt;
   &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
   &amp;quot;Team0Score&amp;quot;: &amp;quot;4&amp;quot;,&lt;br /&gt;
   &amp;quot;Team1Score&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;Round&amp;quot;: &amp;quot;6&amp;quot;,&lt;br /&gt;
   &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
   &amp;quot;PlayerCount&amp;quot;: &amp;quot;8/10&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
|-&lt;br /&gt;
|SetBalanceTableURL&lt;br /&gt;
|[GithubURL]&lt;br /&gt;
|Sets the balance table to load from the specified URL.&lt;br /&gt;
The URL has the format &amp;lt;code&amp;gt;user/repo/branch&amp;lt;/code&amp;gt; and must contain a &amp;lt;code&amp;gt;BalancingTable.csv&amp;lt;/code&amp;gt;. For example, the [https://github.com/vankruptgames/BalancingTable/blob/Beta_5.1/BalancingTable.csv official balancing table] has the URL &amp;lt;code&amp;gt;vankruptgames/BalancingTable/Beta_5.1&amp;lt;/code&amp;gt;. Full URLs (eg. http://...) do not work.&lt;br /&gt;
&lt;br /&gt;
The balance table contains the values for the prices in the buy wheel, how much money is gained from which actions and how much damage is dealt by each weapon including damage falloff and more.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;BalanceTableURL&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetBalanceTableURL vankruptgames/BalancingTable/Beta_5.1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;GithubURL&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/vankruptgames/BalancingTable/Beta_5.1&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;SetBalanceTableURL&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SetCash&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[CashAmount]&lt;br /&gt;
|Sets the cash of the specified player to the specified amount.&lt;br /&gt;
Minimum: 0&lt;br /&gt;
&lt;br /&gt;
Maximum: 16000&lt;br /&gt;
|&lt;br /&gt;
 SetCash 12345678901234567 1000&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetCash&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetLimitedAmmoType&lt;br /&gt;
|[AmmoType]&lt;br /&gt;
|Sets the ammo limitation type.&lt;br /&gt;
0 for unlimited, 1 for limited generic, 2 for limited specific, 3 for custom, 4 for limited special, 5 for boxless.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up a dedicated server#Configuring Game.ini|Limited Ammo Types]] for details.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;LimitedAmmoType&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetLimitedAmmoType 0&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetLimitedAmmoType&amp;quot;: true,&lt;br /&gt;
 &amp;quot;LimitedAmmoType&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetMaxPlayers&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the amount of slots on the server to the specified amount.&lt;br /&gt;
Minimum: 1&lt;br /&gt;
&lt;br /&gt;
Maximum: 24 (PCVR), 10 (Shack)&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;MaxPlayers&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetMaxPlayers 10&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetMaxPlayers&amp;quot;: true,&lt;br /&gt;
 &amp;quot;MaxPlayers&amp;quot;: 10,&lt;br /&gt;
|-&lt;br /&gt;
|SetPin&lt;br /&gt;
|[Optional PinNumber]&lt;br /&gt;
|Sets the server pin to the specified pin number.&lt;br /&gt;
Supplying a pin number locks the server so that player have to enter a pin to join.&lt;br /&gt;
&lt;br /&gt;
Not supplying a pin number unlocks the server so that players do not have to enter a pin.&lt;br /&gt;
&lt;br /&gt;
PinNumber can be any whole number between 1 and 9999 and may not contain leading zeroes such as &amp;lt;code&amp;gt;0001&amp;lt;/code&amp;gt; which would get trimmed to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting the pin to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt; does not remove the pin but sets it to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 SetPin 69&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SetPlayerSkin&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[SkinID]&lt;br /&gt;
|Sets the player skin of the specified player to the specified skin.&lt;br /&gt;
The skin is automatically removed if the player leaves the server, switches teams or upon map change.&lt;br /&gt;
&lt;br /&gt;
'''TODO: Test if there are other conditions where the skin is removed.'''&lt;br /&gt;
|&lt;br /&gt;
 SetPlayerSkin 12345678901234567 kevin&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SetPlayerSkin&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SetTimeLimit&lt;br /&gt;
|[Amount]&lt;br /&gt;
|Sets the time limit of the current match to the specified amount in seconds.&lt;br /&gt;
The match will end once the time limit has counted down to 0.&lt;br /&gt;
|&lt;br /&gt;
|'''TODO: Couldn't get to execute, always Succesful: false'''&lt;br /&gt;
|-&lt;br /&gt;
|ShowNametags&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Enables or disables name tags above friendly players.&lt;br /&gt;
|&lt;br /&gt;
 ShowNametags true&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;NametagsEnabled&amp;quot;: true,&lt;br /&gt;
 &amp;quot;ShowNametags&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|ShutdownServer&lt;br /&gt;
|none&lt;br /&gt;
|Immediately shuts down the server.&lt;br /&gt;
|&lt;br /&gt;
 ShutdownServer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Slap&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Deals the specified amount of damage to the specified player. Can be lethal if the amount exceeds the current health of the player.&lt;br /&gt;
The damage is dealt directly to health and ignores armor.&lt;br /&gt;
|&lt;br /&gt;
 Slap 12345678901234567 &lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchMap&lt;br /&gt;
|[MapID]&lt;br /&gt;
[GameMode]&lt;br /&gt;
|Immediately switches to the specified map and game mode.&lt;br /&gt;
TDM is automatically selected if no game mode has been specified.&lt;br /&gt;
|&lt;br /&gt;
 SwitchMap datacenter snd&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchMap&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|SwitchTeam&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[TeamID]&lt;br /&gt;
|Kills and moves the specified player into the specified team.&lt;br /&gt;
It will be as if the player has just joined (that team) or if they switched themselves, losing all money, kills, deaths, assists, score and gear.&lt;br /&gt;
|&lt;br /&gt;
 SwitchTeam 12345678901234567 1&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;SwitchTeam&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|Teleport&lt;br /&gt;
|[Source UniqueID]&lt;br /&gt;
[Target UniqueID]&lt;br /&gt;
|Teleports the specified source player to the position of the specified target player.&lt;br /&gt;
Only works when both the source player and the target player are alive.&lt;br /&gt;
|&lt;br /&gt;
 Teleport 12345678901234567 12345678901234568&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;MoveUniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
 &amp;quot;ToUniqueID&amp;quot;: &amp;quot;12345678901234568&amp;quot;,&lt;br /&gt;
 &amp;quot;Teleport&amp;quot;: true,&lt;br /&gt;
|-&lt;br /&gt;
|TTTAlwaysEnableSkinMenu&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Enables or disables the skin menu mid-round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTEndRound&lt;br /&gt;
|[TeamID]&lt;br /&gt;
|Trouble in Terrorist Town: Ends the round.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTFlushKarma&lt;br /&gt;
|none&lt;br /&gt;
|Trouble in Terrorist Town: Resets the karma of all players to 1200.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTGiveCredits&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Adds the specified amount of TTT credits to the specified player.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTPauseTimer&lt;br /&gt;
|[True/False]&lt;br /&gt;
|Trouble in Terrorist Town: Pauses the timer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetKarma&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[Amount]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the karma of the specified player to the specified amount.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TTTSetRole&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
[RoleID]&lt;br /&gt;
|Trouble in Terrorist Town: Sets the TTT role of the specified player to the specified role.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unban&lt;br /&gt;
|[UniqueID]&lt;br /&gt;
|Unbans the specified player so that they can join again.&lt;br /&gt;
Writes the change to &amp;lt;code&amp;gt;blacklist.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 Unban 12345678901234567&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;Unban&amp;quot;: true,&lt;br /&gt;
 &amp;quot;UniqueID&amp;quot;: &amp;quot;12345678901234567&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
|UpdateServerName&lt;br /&gt;
|[Name]&lt;br /&gt;
|Changes the server name to the specified name.&lt;br /&gt;
Writes to &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;Game.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
 UpdateServerName My server name&lt;br /&gt;
|&lt;br /&gt;
 &amp;quot;ServerName&amp;quot;: &amp;quot;My server name&amp;quot;,&lt;br /&gt;
 &amp;quot;UpdateServerName&amp;quot;: true,&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Connecting to RCON ==&lt;br /&gt;
RCON uses a simple UTF-8 TCP text stream allowing for a multitude of ways to connect. &lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
After connecting to RCON, the first message sent is by the server requesting the RCON password to be transmitted.&lt;br /&gt;
&lt;br /&gt;
For this, the server sends a 10 byte message &amp;quot;&amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; &amp;quot; (including the trailing space) to the client.&lt;br /&gt;
&lt;br /&gt;
The client is expected to reply with the password as lowercase hex representation of the MD5 checksum of the password.&lt;br /&gt;
&lt;br /&gt;
No line feed or carriage return character must be transmitted as part of the password.&lt;br /&gt;
&lt;br /&gt;
If the password is correct, the server will reply with &amp;lt;code&amp;gt;Authenticated=1\r\n&amp;lt;/code&amp;gt; or if the password was incorrect, the reply will be &amp;lt;code&amp;gt;Authenticated=0\r\n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Authentication using the password &amp;quot;hello test&amp;quot;.&lt;br /&gt;
 &amp;gt; Password: &lt;br /&gt;
 &amp;lt; 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 &amp;gt; Authenticated=1\r\n&lt;br /&gt;
&lt;br /&gt;
=== Sending commands and receiving replies ===&lt;br /&gt;
Any data sent to the server and terminated by a line feed character will be interpreted as a command and executed. &lt;br /&gt;
&lt;br /&gt;
This is followed by the corresponding command response in JSON format with new lines being indicated by a line feed character &lt;br /&gt;
&lt;br /&gt;
The response is terminated with a carriage return and line break. &lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Executing the command &amp;lt;code&amp;gt;ServerInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &amp;lt; ServerInfo\n&lt;br /&gt;
 &amp;gt; {\n\t&amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,\n\t&amp;quot;ServerInfo&amp;quot;:\n\t{\n\t\t&amp;quot;MapLabel&amp;quot;: &amp;quot;UGC2863450&amp;quot;,\n\t\t&amp;quot;GameMode&amp;quot;: &amp;quot;SND&amp;quot;,\n\t\t&amp;quot;ServerName&amp;quot;: &amp;quot;Server name&amp;quot;,\n\t\t&amp;quot;Teams&amp;quot;: true,\n\t\t&amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,\n\t\t&amp;quot;Team1Score&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;Round&amp;quot;: &amp;quot;3&amp;quot;,\n\t\t&amp;quot;RoundState&amp;quot;: &amp;quot;Ended&amp;quot;,\n\t\t&amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;\n\t},\n\t&amp;quot;Successful&amp;quot;: true\n}\r\n&lt;br /&gt;
&lt;br /&gt;
== Tools for connecting to RCON ==&lt;br /&gt;
&lt;br /&gt;
=== Third party hosted tools ===&lt;br /&gt;
The easiest way to access RCON is to use a third party hosted tool. These are websites that take the RCON connection information and provide an RCON web interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': These tools may not be open source and can steal RCON passwords! Because they are hosted by third parties, it is impossible to verify that they do not.&lt;br /&gt;
&lt;br /&gt;
* [https://pavlovrcon.com/ PavlovRCON.com]: A web-based RCON client&lt;br /&gt;
* [https://discord.com/oauth2/authorize?client_id=780880728992383077&amp;amp;scope=bot&amp;amp;permissions=199744 Horde Bot]: Discord bot specific to [[Hosting Providers|Horde servers]]&lt;br /&gt;
&lt;br /&gt;
=== Third party local tools ===&lt;br /&gt;
These are programs that are downloaded and ran locally to provide an RCON interface.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Oakraven79/pavlov_rcon_tcl pavlov_rcon_tcl]: Python based UI which is designed to be usable from within VR. Standalone executable. Requires editing of configuration files.&lt;br /&gt;
* [https://github.com/Krzychu81/pavlov-vr-rcon pavlov-vr-rcon]: node.js based web UI which is designed to be usable from within VR. Requires node.js.&lt;br /&gt;
&lt;br /&gt;
=== Third party self hosted tools ===&lt;br /&gt;
These are services that need to be self hosted.&lt;br /&gt;
&lt;br /&gt;
'''Warning''': If a tool is not open source it is not easily possible to verify that it does not steal RCON passwords. It is recommended to only use open source tools that can be verified.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/devinSpitz/PavlovRconWebserver PavlovRconWebserver]: Feature-rich all-in-one hosting solution.&lt;br /&gt;
* [https://github.com/Longoon12000/PterodactylPavlovServerController PPSC]: [https://pterodactyl.io/ Pterodactyl]-based feature-rich server management software. Requires the servers to run through Pterodactyl.&lt;br /&gt;
* [https://github.com/makupi/pavlov-bot pavlov-bot]: A bot that allows for using RCON through Discord.&lt;br /&gt;
&lt;br /&gt;
=== Direct connect ===&lt;br /&gt;
Since the RCON protocol is plain text TCP, direct connection terminals can be used to connect to RCON.&lt;br /&gt;
&lt;br /&gt;
=== Netcat ===&lt;br /&gt;
 nc ip-or-domain.com port&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 ❯ nc bloodisgood.org 9104&lt;br /&gt;
 Password: d997dfc038fc683aa145bca9c8a3d906Authenticated=1&lt;br /&gt;
&lt;br /&gt;
 ❯ nc myserver.com 9101&lt;br /&gt;
 Password: 7a6d667ea5ed4467c017b2ed6ea07e78&lt;br /&gt;
 Authenticated=1&lt;br /&gt;
 ServerInfo&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;Command&amp;quot;: &amp;quot;ServerInfo&amp;quot;,&lt;br /&gt;
         &amp;quot;ServerInfo&amp;quot;:&lt;br /&gt;
         {&lt;br /&gt;
                 &amp;quot;MapLabel&amp;quot;: &amp;quot;sand&amp;quot;,&lt;br /&gt;
                 &amp;quot;GameMode&amp;quot;: &amp;quot;snd&amp;quot;,&lt;br /&gt;
                 &amp;quot;ServerName&amp;quot;: &amp;quot;My server&amp;quot;,&lt;br /&gt;
                 &amp;quot;Teams&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;Team0Score&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
                 &amp;quot;Team1Score&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;Round&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
                 &amp;quot;RoundState&amp;quot;: &amp;quot;Started&amp;quot;,&lt;br /&gt;
                 &amp;quot;PlayerCount&amp;quot;: &amp;quot;0/10&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;Successful&amp;quot;: true&lt;br /&gt;
 }&lt;br /&gt;
 Disconnect&lt;br /&gt;
 Goodbye&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
'''TODO: Telnet does not seem to work. Confirmation required.'''&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
These are libraries for developers to interface with RCON.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Longoon12000/PavlovVR-Rcon PavlovVR-Rcon]: .net 7 library written in C#&lt;br /&gt;
* [https://github.com/kaylynn234/rcon rcon]: Python library&lt;br /&gt;
* [https://github.com/makupi/async-pavlov async-pavlov]: Asynchronous python library&lt;br /&gt;
&lt;br /&gt;
==== Tips on developing apps to use RCON ====&lt;br /&gt;
It should be avoided to open a new connection for each command. It may cause performance issues.&lt;br /&gt;
&lt;br /&gt;
It should be avoided to send multiple commands directly one after the other without a delay of 100ms. It may cause commands to be dropped.&lt;br /&gt;
&lt;br /&gt;
Commands are not executed during a map change.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Talk:Troubleshooting_Servers&amp;diff=739</id>
		<title>Talk:Troubleshooting Servers</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Talk:Troubleshooting_Servers&amp;diff=739"/>
		<updated>2023-06-24T10:54:09Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; Check your CPU Clock Speed with&lt;br /&gt;
&lt;br /&gt;
I have never in my life seen troubleshooting ask for checking cpu clock speed. What would be the point of this? Maybe the user has under-clocked their server so much that it can not run Pavlov anymore? And they forgot about it so they have to be reminded to check the clock speed? I do not understand what the purpose of this step could possibly be except for some extremely rare and specific case in which the user is to blame?&lt;br /&gt;
&lt;br /&gt;
Please clarify what the point of this step is, because I would like to remove it as it seems to be completely useless to me.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; To monitor the logs (without heartbeat) from another terminal:&lt;br /&gt;
&lt;br /&gt;
Why does this command use a different regex than the &amp;quot;To run the server without outputting the heartbeat&amp;quot; one? This should be consistent.&lt;br /&gt;
&lt;br /&gt;
./PavlovServer.sh | sed '/heartbeat/d'&lt;br /&gt;
and&lt;br /&gt;
tail -f -n10000 /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log | grep -v 'heartbeat'&lt;br /&gt;
&lt;br /&gt;
Also, why 10k lines? That's a tad much? Maybe if it was piped into less, but it's in follow mode and definitely does not require 10k lines to fill the terminal. 100 lines would be the upper limit in my opinion.&lt;br /&gt;
&lt;br /&gt;
And also, let's not include the full path to the log file, use relative paths instead because we do not know where the user has installed pavlov to.&lt;br /&gt;
&lt;br /&gt;
tail -f -n 100 Pavlov/Saved/Logs/Pavlov.log | grep -v 'heartbeat'&lt;br /&gt;
&lt;br /&gt;
And lastly, I do not believe this is even a relevant step anymore because the heartbeat is not logged anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server won't start&lt;br /&gt;
&lt;br /&gt;
The solution to run apt as sudo is only applicable to debian based systems. It would be advisable to just instruct the user to install the missing lib32gcc1 / libc++-dev libraries. They should know how to install software on their own system, so the specific instruction, that's only good for debian flavors, can be omitted.&lt;br /&gt;
&lt;br /&gt;
If the File exists errors are harmless, they should not be listed here for troubleshooting. Besides, it says &amp;quot;File exists&amp;quot; and I'm pretty sure the users are smart enough to understand that this is acceptable behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Map wont load&lt;br /&gt;
&lt;br /&gt;
The path to mod.io maps is not /tmp/workshop anymore and needs fixing to the correct path.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Map wont load when running in a container&lt;br /&gt;
&lt;br /&gt;
This is way too specific for the points listed, which can also just apply to non-container systems. We shouldn't care about whether the user runs the server inside a container or not.&lt;br /&gt;
&lt;br /&gt;
Instead all three points here should be part of Map wont load&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server stuck rotating forever&lt;br /&gt;
&lt;br /&gt;
Again, way too specific. Run these two commands, those are 3 commands and are way too specific again. The user may not have steamcmd installed in ~/Steam. We should provide reasons for issues and the steps to resolve them.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
You may be missing or have a wrong version of ~/.steam/sdk64/steamclient.so. The MD5 checksum of the correct steamclient.so is 65e2197528d2dc5c12f2354ec0269414.&lt;br /&gt;
&lt;br /&gt;
If you find that you do not have the correct steamclient.so version, you can get it from steamcmd by installing Steamworks SDK Redist (AppId 1007) and copying the steamclient.so from Steamworks SDK Redist/linux64/steamclient.so.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I also believe strongly that if the steamclient.so is an issue, then there is an error message in the log file pointing to this.&lt;br /&gt;
&lt;br /&gt;
So the first step installing the steamworks sdk redistributables, before checking for conflicting ports, is way overkill.&lt;br /&gt;
&lt;br /&gt;
First step should be to identify the error from the log. Like, if the port is in use then it will say that the port is already in use, and the user should correspondingly be guided to checking their running pavlov servers for port conflicts.&lt;br /&gt;
&lt;br /&gt;
Then, fixing the port conflicts here suggests that the server runs as a system.d service, which is again an assumption on the environment of the user, which we should not do.&lt;br /&gt;
&lt;br /&gt;
The fix is to tell them that they have to change the port. The instructions to do so are on the dedicated server hosting page and do not belong here as that would make them redundant.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server - ping 999&lt;br /&gt;
&lt;br /&gt;
Again, way too specific. Google Cloud Platform? Seriously?&lt;br /&gt;
&lt;br /&gt;
We should tell the user that the reason for this issue usually is missing port access or block ICMP and to check for correct firewall/portforwarding/NAT.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Can't connect to RCON&lt;br /&gt;
&lt;br /&gt;
Again, too specific assuming paths and users of the user system.&lt;br /&gt;
&lt;br /&gt;
Just indicating to the user, that they have to check their rcon settings and ports, should be plenty a pointer. The section about file access also is not helpful as it does not state what kind of permissions are required.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; PC ONLY - Map Download stops&lt;br /&gt;
&lt;br /&gt;
This is redundant to Map wont load.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: try deleting all the downloaded workshop maps with:&lt;br /&gt;
&lt;br /&gt;
Good: Downloaded workshop maps can be deleted using:&lt;br /&gt;
&lt;br /&gt;
Bad: double check that your server isn't running on the same port&lt;br /&gt;
&lt;br /&gt;
Good: multiple servers may be trying to run on the same port&lt;br /&gt;
&lt;br /&gt;
Bad: after fixing you should also to check the other config files &lt;br /&gt;
&lt;br /&gt;
Good: after the fix is applied, other configuration files should also be checked&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=Talk:Troubleshooting_Servers&amp;diff=738</id>
		<title>Talk:Troubleshooting Servers</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=Talk:Troubleshooting_Servers&amp;diff=738"/>
		<updated>2023-06-24T10:47:21Z</updated>

		<summary type="html">&lt;p&gt;Rain: Created page with &amp;quot;&amp;gt; Check your CPU Clock Speed with  I have never in my life seen troubleshooting ask for checking cpu clock speed. What would be the point of this? Maybe the user has under-clocked their server so much that it can not run Pavlov anymore? And they forgot about it so they have to be reminded to check the clock speed? I do not understand what the purpose of this step could possibly be except for some extremely rare and specific case in which the user is to blame?  Please cla...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; Check your CPU Clock Speed with&lt;br /&gt;
&lt;br /&gt;
I have never in my life seen troubleshooting ask for checking cpu clock speed. What would be the point of this? Maybe the user has under-clocked their server so much that it can not run Pavlov anymore? And they forgot about it so they have to be reminded to check the clock speed? I do not understand what the purpose of this step could possibly be except for some extremely rare and specific case in which the user is to blame?&lt;br /&gt;
&lt;br /&gt;
Please clarify what the point of this step is, because I would like to remove it as it seems to be completely useless to me.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; To monitor the logs (without heartbeat) from another terminal:&lt;br /&gt;
&lt;br /&gt;
Why does this command use a different regex than the &amp;quot;To run the server without outputting the heartbeat&amp;quot; one? This should be consistent.&lt;br /&gt;
&lt;br /&gt;
./PavlovServer.sh | sed '/heartbeat/d'&lt;br /&gt;
and&lt;br /&gt;
tail -f -n10000 /home/steam/pavlovserver/Pavlov/Saved/Logs/Pavlov.log | grep -v 'heartbeat'&lt;br /&gt;
&lt;br /&gt;
Also, why 10k lines? That's a tad much? Maybe if it was piped into less, but it's in follow mode and definitely does not require 10k lines to fill the terminal. 100 lines would be the upper limit in my opinion.&lt;br /&gt;
&lt;br /&gt;
And also, let's not include the full path to the log file, use relative paths instead because we do not know where the user has installed pavlov to.&lt;br /&gt;
&lt;br /&gt;
tail -f -n 100 Pavlov/Saved/Logs/Pavlov.log | grep -v 'heartbeat'&lt;br /&gt;
&lt;br /&gt;
And lastly, I do not believe this is even a relevant step anymore because the heartbeat is not logged anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server won't start&lt;br /&gt;
&lt;br /&gt;
The solution to run apt as sudo is only applicable to debian based systems. It would be advisable to just instruct the user to install the missing lib32gcc1 / libc++-dev libraries. They should know how to install software on their own system, so the specific instruction, that's only good for debian flavors, can be omitted.&lt;br /&gt;
&lt;br /&gt;
If the File exists errors are harmless, they should not be listed here for troubleshooting. Besides, it says &amp;quot;File exists&amp;quot; and I'm pretty sure the users are smart enough to understand that this is acceptable behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Map wont load&lt;br /&gt;
&lt;br /&gt;
The path to mod.io maps is not /tmp/workshop anymore and needs fixing to the correct path.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Map wont load when running in a container&lt;br /&gt;
&lt;br /&gt;
This is way too specific for the points listed, which can also just apply to non-container systems. We shouldn't care about whether the user runs the server inside a container or not.&lt;br /&gt;
&lt;br /&gt;
Instead all three points here should be part of Map wont load&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server stuck rotating forever&lt;br /&gt;
&lt;br /&gt;
Again, way too specific. Run these two commands, those are 3 commands and are way too specific again. The user may not have steamcmd installed in ~/Steam. We should provide reasons for issues and the steps to resolve them.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
You may be missing or have a wrong version of ~/.steam/sdk64/steamclient.so. The MD5 checksum of the correct steamclient.so is 65e2197528d2dc5c12f2354ec0269414.&lt;br /&gt;
&lt;br /&gt;
If you find that you do not have the correct steamclient.so version, you can get it from steamcmd by installing Steamworks SDK Redist (AppId 1007) and copying the steamclient.so from Steamworks SDK Redist/linux64/steamclient.so.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I also believe strongly that if the steamclient.so is an issue, then there is an error message in the log file pointing to this.&lt;br /&gt;
&lt;br /&gt;
So the first step installing the steamworks sdk redistributables, before checking for conflicting ports, is way overkill.&lt;br /&gt;
&lt;br /&gt;
First step should be to identify the error from the log. Like, if the port is in use then it will say that the port is already in use, and the user should correspondingly be guided to checking their running pavlov servers for port conflicts.&lt;br /&gt;
&lt;br /&gt;
Then, fixing the port conflicts here suggests that the server runs as a system.d service, which is again an assumption on the environment of the user, which we should not do.&lt;br /&gt;
&lt;br /&gt;
The fix is to tell them that they have to change the port. The instructions to do so are on the dedicated server hosting page and do not belong here as that would make them redundant.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server - ping 999&lt;br /&gt;
&lt;br /&gt;
Again, way too specific. Google Cloud Platform? Seriously?&lt;br /&gt;
&lt;br /&gt;
We should tell the user that the reason for this issue usually is missing port access or block ICMP and to check for correct firewall/portforwarding/NAT.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Can't connect to RCON&lt;br /&gt;
&lt;br /&gt;
Again, too specific assuming paths and users of the user system.&lt;br /&gt;
&lt;br /&gt;
Just indicating to the user, that they have to check their rcon settings and ports, should be plenty a pointer. The section about file access also is not helpful as it does not state what kind of permissions are required.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; PC ONLY - Map Download stops&lt;br /&gt;
&lt;br /&gt;
This is redundant to Map wont load.&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=736</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=736"/>
		<updated>2023-06-23T13:07:36Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, port forwarding, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
* Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
* TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
* TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
* telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=735</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=735"/>
		<updated>2023-06-23T13:04:05Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives, should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
* Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
* TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
* TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
* telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=734</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=734"/>
		<updated>2023-06-23T13:03:19Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives should this not work.&lt;br /&gt;
&lt;br /&gt;
Bad: Note: I don't think this is accurate&lt;br /&gt;
&lt;br /&gt;
Good: Note: The accuracy of this information may be questionable.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
* Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
* TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
* TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
* telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=733</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=733"/>
		<updated>2023-06-23T13:01:39Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives should this not work.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
* Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
* Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
* GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
* Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
* SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
* SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
* TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
* TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
* TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
* telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
* difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=732</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=732"/>
		<updated>2023-06-23T13:00:48Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
If something is a hack and not officially supported, such as having more than 10 max players on shack servers, does not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives should this not work.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
- Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
- Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
- GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
- Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
- SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
- SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
- TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
- TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
- TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
- telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
- difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
	<entry>
		<id>http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=731</id>
		<title>User talk:Rain/Sandbox</title>
		<link rel="alternate" type="text/html" href="http://pavlovwiki.com/index.php?title=User_talk:Rain/Sandbox&amp;diff=731"/>
		<updated>2023-06-23T12:59:54Z</updated>

		<summary type="html">&lt;p&gt;Rain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''What does and does not belong on this page'''&lt;br /&gt;
&lt;br /&gt;
If something describes in detail how an aspect of the implementation of Pavlov VR RCON works, it belongs on this page.&lt;br /&gt;
&lt;br /&gt;
If something is only tangentially related to RCON, like how to get an MD5 checksum from text, how to use bash to pipe a list of commands into netcat, file permissions, specific features of tools/libraries, do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
Users are expected to have a certain brain capacity to be able to google for things to figure them out. This is not an IT help forum that explains in detail how to use computers. All it must contain is information specific to the RCON protocol. Exception, of course, are the list of available RCON tools and libraries, but this must be limited to a list and a very short description only.&lt;br /&gt;
&lt;br /&gt;
'''Grammar and syntax'''&lt;br /&gt;
&lt;br /&gt;
The user/reader is never to be referred to directly. Reflexive and personal pronouns are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Bad: You can run the command.&lt;br /&gt;
&lt;br /&gt;
Good: This command can be run.&lt;br /&gt;
&lt;br /&gt;
Bad: If this does not work, try something else.&lt;br /&gt;
&lt;br /&gt;
Good: There are alternatives should this not work.&lt;br /&gt;
&lt;br /&gt;
Command descriptions use the imperative third person form. These sentences are formulated by starting with &amp;quot;This command...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bad: Ban a player&lt;br /&gt;
&lt;br /&gt;
Good: Bans a player&lt;br /&gt;
&lt;br /&gt;
Bad: To enable or disable the whitelist&lt;br /&gt;
&lt;br /&gt;
Good: Enables or disables the whitelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
- Gamemodes table, which was moved to dedicated server Game.ini configuration, should be integrated into Gamemodes page&lt;br /&gt;
- Disconnect command states &amp;quot;This should always be used when done&amp;quot; but I doubt this is an actual requirement. Needs clarification from dev and, if not strictly required, should be removed.&lt;br /&gt;
- GiveAll fails to execute, requires testing by more people than just me&lt;br /&gt;
- Test and specify GiveItem slot behaviour for each item category&lt;br /&gt;
- SetPlayerSkin, are there any other conditions where skin is removed (eg. TTT new round/role, switching sides in push, ...)&lt;br /&gt;
- SetTimeLimit fails to execute, requires testing by more people than just me&lt;br /&gt;
- TTTFlushKarma shows no parameters in Help, but is expected to require a parameter (previous wiki, also logically). Confirm it takes one [UniqueID] parameter and send bug report to dave&lt;br /&gt;
- TTTGiveCredits - is credits and cash not the same? clarify. does tttgivecredits and givecash/setcash do different things?&lt;br /&gt;
- TTTSetRole was previously marked as &amp;quot;currently broken&amp;quot; - requires testing if still broken or if it works now. also link to itemids#ttt-roles&lt;br /&gt;
- telnet doesn't seem to work - see discord#⁠rcon-overview-and-commands⁠&lt;br /&gt;
- difference to shack servers (shack Help output required) - see discord#⁠rcon-overview-and-commands&lt;/div&gt;</summary>
		<author><name>Rain</name></author>
	</entry>
</feed>