Multiplayer Server Commands: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(diagnostic commands)
m (Added optional reason to kick and ban)
(65 intermediate revisions by 14 users not shown)
Line 1: Line 1:
==Warning==
{{TOC|side}}
<small>
{{Feature|armaR|For {{armaR}} see [[Arma Reforger:Server Management]].}}
{{Important|Reports have been circulated of a script exploit that allows a non-admin player to force an in-game admin to issue Admin commands. Either #logout of server admin when not required, or consider using [[BattlEye#Rcon|BattlEye's RCon]] tool to administer the server out of band }}
</small>


==HowTo==  
 
You can access the command line '''by pressing the chat key ( ''default:'' <tt>/</tt> )'''.
{{Feature|important|It is recommended to use [[BattlEye#RCon|BattlEye's RCon]] tool to administrate the server;<br>
it uses custom port which one may easily secure by firewall rules! (RCON cannot be affected by in-game script exploits)}}
 
== HowTo ==
You can access the command line '''by pressing the chat key''' (default {{Controls|/}}).


In the chat input window you can type any of the following commands in and confirm them with the enter key.
In the chat input window you can type any of the following commands in and confirm them with the enter key.


You have to '''add the <tt>#</tt> character before the command'''.
You have to '''add the {{hl|#}} character before the command'''.
 
The commands can be used in SQF scripts by using [[serverCommand]].
 
'''Troubleshooting''': All commands are confirmed via a message in the console. If you enter a command that is properly formatted and you see no confirmation of the command then an error has occurred. Check your server log for more information (e.g. one or more of your mission files is corrupt or has an error which prevents the Missions Lobby from loading, or may prevent other commands like #restart or #reassign from executing).
 
 
== Commands ==


==Commands==
The following commands are available to you once you have connected to a server:
The following commands are available to you once you have connected to a server:


===Admin===
=== Admin ===
{| class="bikitable"
 
! Command                                 !! Example                     !! Description
{| class="wikitable"
! Command !! Example !! Description
|-
| {{hl|#login}} <br>
{{hl|#login}} ''password''<br>
| {{hl|#login}}  <br>
{{hl|#login adminPW}}  <br>
| Log in as the admin. Without password only possible if you are listed as an admin[] in [[Arma 3: Server Config File#Server_Options]]
|-
| {{hl|#logout}}
|
| Admin log out.
|-
|{{hl|#mission}} ''filename''<br>
{{hl|#mission}}&nbsp;''filename''&nbsp;''difficulty''
|{{hl|#mission&nbsp;myDM.intro}}<br>
{{hl|#mission&nbsp;myDM.intro&nbsp;Veteran}}
| Select mission with known name and set the difficulty. Difficulty parameter is optional and if not set, current difficulty is kept.
|-
|-
| <tt>#login</tt> ''password''            || <tt>#login adminPW</tt>      || Log in as the admin.
| {{hl|#missions}}
|  
| Allows selection of mission on shown list of available missions (all or those inside missionWhiteList[] = {}; within server.cfg). <br> Note: this will trigger `missionEnd` (so if server.cfg is set with e.g. MissionsToServerRestart or MissionsToShutdown threshold, the server may immediately restart/shutdown)
|-
|-
| <tt>#logout</tt>                        ||                              || Admin log out.
| {{hl|#restart}}
|  
| Restart mission.
|-
|-
| <tt>#mission</tt> ''filename''          || <tt>#mission myDM.intro</tt> || Select mission with known name.
| {{hl|#reassign}}
|  
| Start over and reassign roles.
|-
|-
| <tt>#missions</tt>                      ||                              || Select mission.
| {{hl|#shutdown}}
|  
| Shuts down the server immediately
|-
|-
| <tt>#restart</tt>                      ||                              || Restart mission.
| {{hl|#restartserver}}
|  
| Shuts down and restarts the server immediately (since Arma 3 v1.66)
|-
|-
| <tt>#reassign</tt>                      ||                             || Start over and reassign roles.
| {{hl|#shutdownaftermission}}
|  
| Shuts down the server after mission ends (since Arma 3 1.72.142200)
|-
|-
| <tt>#shutdown</tt>                      ||                              || Shuts down the server.
| {{hl|#restartserveraftermission}}
|  
| Shuts down and restarts the server after mission ends (since Arma 3 1.72.142200)
|-
|-
| <tt>#init</tt>                          ||                              || Reload server config file loaded by <tt>[[-config]]</tt> option.
| {{hl|#init}}
|  
| Reload server config file loaded by {{hl|[[:Category:Startup Parameters|-config]]}} option.
|-
|-
| <tt>#exec ban</tt> ''(name, ID or Player#)''
|{{hl|#exec ban}} ''name''<br>
| <tt>#exec ban nickName</tt><br>
{{hl|#exec ban}} ''ID''<br>
<tt>#exec ban 47114712</tt><br>
{{hl|#exec ban}} ''Player#''<br>
<tt>#exec ban 3</tt>
{{hl|#exec ban "user reason"}}
| Allows you to ban a player. Their ID will be added to the ''<tt>ban.txt</tt>''
|{{hl|#exec ban nickName}}<br>
{{hl|#exec ban 47114712}}<br>
{{hl|#exec ban 3}}<br>
{{hl|#exec ban "3 Griefing"}}<br>
{{GVI|arma3|2.18|size=0.75}} {{hl|#exec ban """Some Username""" ""Some Ban Reason Text"""}}
| Allows you to ban a player. Their ID will be added to the {{hl|ban.txt}} file.
|-
|-
| <tt>#kick</tt> ''(name, ID or Player#)''
| {{hl|#kick}} ''name''<br>
| <tt>#kick nickName</tt><br>
{{hl|#kick}} ''ID''<br>
<tt>#kick 47114712</tt><br>
{{hl|#kick}} ''Player#''<br>
<tt>#kick 3</tt>
{{hl|#kick user reason}}
| {{hl|#kick nickName}}<br>
{{hl|#kick 47114712}}<br>
{{hl|#kick 3}}<br>
{{GVI|arma3|2.18|size=0.75}} {{hl|#kick "Some Username" "Some Kick Reason Text"}}
| Allows you to kick a player.
| Allows you to kick a player.
|-
|-
| <tt>#monitor</tt> ''(interval in sec)'' || <tt>#monitor 1</tt>          || Shows performance information of the server. Interval <tt>0</tt> means to stop monitoring.
| {{hl|#monitor}} ''(interval in sec)''
| {{hl|#monitor 1}}
| Shows performance information of the server. Interval {{hl|0}} means to stop monitoring.
 
{| class="wikitable"
|+ Values description
! colspan="2" | Traffic
|-
| G
| Guaranteed messages
|-
| NG
| Non-Guaranteed messages
|-
! colspan="2" | Player info
|-
| L
| lobby
|-
| R
| role selection
|-
| B
| briefing
|-
| G
| in-game
|-
| D
| debriefing
|}
|-
| {{hl|#monitords}} ''(interval in sec)''
| {{hl|#monitords 1}}
| Shows performance information in the dedicated server console. Interval {{hl|0}} means to stop monitoring. (since Arma 3 v1.64)
|-
|-
| <tt>#debug off</tt>                    || <tt>#debug off</tt>          || Disables debugging.
| {{hl|#debug off}}
| {{hl|#debug off}}
| Disables debugging.
|-
|-
| <tt>#debug</tt> ''(interval in sec)''   || <tt>#debug 30</tt>          || Default interval is <tt>10</tt> seconds.
| {{hl|#debug}} ''(interval in sec)''
| {{hl|#debug 30}}
| Default interval is {{hl|10}} seconds.
|-
|-
| <tt>#debug</tt> ''(command) (param)''
| {{hl|#debug}} ''(command) (param)''
| <tt>#debug checkFile expansion\Dta\ui.pbo</tt><br>
| {{hl|#debug checkFile expansion\Dta\ui.pbo}}<br>
<tt>#debug userSent</tt> ''<username>''<br>
{{hl|#debug userSent}} ''<username>''<br>
<tt>#debug userInfo</tt> ''<username>''<br>
{{hl|#debug userInfo}} ''<username>''<br>
<tt>#debug userQueue</tt> ''<username>''<br>
{{hl|#debug userQueue}} ''<username>''<br>
<tt>#debug JIPQueue</tt> ''<username>''<br>
{{hl|#debug JIPQueue}} ''<username>''<br>
<tt>#debug totalSent</tt> ''10''
{{hl|#debug totalSent}} ''10''
| The available commands are:<br>
| The available commands are:<br>
: <tt>checkFile</tt>
: {{hl|checkFile}}
: <tt>userSent</tt>
: {{hl|userSent}}
: <tt>userInfo</tt>
: {{hl|userInfo}}
: <tt>userQueue</tt>
: {{hl|userQueue}}
: <tt>totalSent</tt>
: {{hl|totalSent}}
: <tt>JIPQueue</tt>
: {{hl|JIPQueue}}
Each command can be disabled by the use of the <tt>off</tt> parameter ''e.g.'' <tt>#debug userSent off</tt><br>
Each command can be disabled by the use of the {{hl|off}} parameter ''e.g.'' {{hl|#debug userSent off}}<br>
Each command differs a bit; some output to screen, some to log file etc.<br>
Each command differs a bit; some output to screen, some to log file etc.<br>
<small>You need some debugger capable of catching ''OutputDebugString'' running on the client machine<br>
<small>You need some debugger capable of catching ''OutputDebugString'' running on the client machine<br>
Line 72: Line 160:
You launch this debugger, then launch ARMA client, connect to the server, and issue any of the commands</small>.
You launch this debugger, then launch ARMA client, connect to the server, and issue any of the commands</small>.
|-
|-
| <tt>#debug</tt> ''(command)''
| {{hl|#debug}} ''(command)''
| <tt>#debug von</tt><br>
| {{hl|#debug von}}<br>
<tt>#debug console</tt>
{{hl|#debug console}}
| The available commands are:
| The available commands are:
<tt>console</tt>
{{hl|console}}
: Send to submitter what's on server console. Works as ''DebugAnswer'' for all writes into the console.
: Send to submitter what's on server console. Works as ''DebugAnswer'' for all writes into the console.
<tt>von</tt>
{{hl|von}}
: Outputs into ''logFile'' defined in [[server.cfg]] as ''e.g.'' <tt>logFile = "server_console.log";</tt>
: Outputs into ''logFile'' defined in [[Arma 3: Server Config File|server config]] as ''e.g.'' {{hl|c= logFile = "server_console.log";}}
Each of those commands should show a confirmation in the chat channels.
Each of those commands should show a confirmation in the chat channels.
|}
|}


{| class="bikitable"
{| class="wikitable"
|+ New admin commands since Armed Assault:
|+ New admin commands since Armed Assault:
! Command                                                               !! Description
! Command !! Description
|-
|-
| <tt>#exec</tt> ''[[ArmA: Server Side Scripting|server side command]]'' || Execute administration scripting command.
| {{hl|#exec}} ''[[ArmA: Armed Assault: Server Side Scripting|server side command]]''
| Execute administration scripting command. Only works on dedicated servers.
|-
|-
| <tt>#lock</tt>                                                        || Locks the server, prevents new clients from joining.
| {{hl|#lock}}
| Locks the server, prevents new clients from joining.
|-
|-
| <tt>#unlock</tt>                                                      || Unlocks the server, allows new clients to join.
| {{hl|#unlock}}
| Unlocks the server, allows new clients to join.
|}
|}




===="#debug von" sample====
==== "#debug von" sample ====
'''server_console.log'''
'''server_console.log'''
<pre>*** VoN Topology Diagnostics ((***
<pre>*** VoN Topology Diagnostics ((***
Line 122: Line 213:




===="#debug (command)" sample====
==== "#debug (command)" sample ====
'''DebugView'''
'''DebugView'''
<pre>#debug console
<pre>#debug console
Line 131: Line 222:
[1508] ** Total: sent 1447 bps (2.10 Msgps), received 3788 bps (6.10 Msgps)
[1508] ** Total: sent 1447 bps (2.10 Msgps), received 3788 bps (6.10 Msgps)


#debug userQueue playerName
#debug userSent playerName
[1508] Debug: userSent
[1508] Debug: userSent
[1508] playerName: sent 1531 bps (2.30 Msgps), received 1259 bps (1.70 Msgps)
[1508] playerName: sent 1531 bps (2.30 Msgps), received 1259 bps (1.70 Msgps)


#debug userQueue playerName
#debug userInfo playerName
[1508] Debug: userInfo
[1508] Debug: userInfo
[1508] __SERVER__: Info Unknown player ID = 2
[1508] __SERVER__: Info Unknown player ID = 2
Line 145: Line 236:
[1508] playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0</pre>
[1508] playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0</pre>


 
=== Player ===
===Player===
{| class="wikitable"
{| class="bikitable"
! Command!! Example !! Description
! Command                           !! Example                         !! Description
|-
|-
| <tt>#vote missions</tt>          ||                                  || Users can vote for the mission selection.
| {{hl|#vote missions}}
|
| Users can vote for the mission selection.
|-
|-
| <tt>#vote mission</tt> ''(name)'' || <tt>#vote mission myD.intro</tt> || Users can vote on a particular mission to loaded.
| {{hl|#vote mission}} ''(name)''
| {{hl|#vote mission myD.intro}}
| Users can vote on a particular mission to loaded.
|-
|-
| <tt>#vote admin</tt> ''(name/ID/PLR#)''
| {{hl|#vote admin}} ''(name/ID/PLR#)''
|<tt>#vote admin nickName</tt><br>
|{{hl|#vote admin nickName}}<br>
<tt>#vote admin 47114712</tt><br>
{{hl|#vote admin 47114712}}<br>
<tt>#vote admin 3</tt>
{{hl|#vote admin 3}}
| Users can vote an admin to control the server.
| Users can vote an admin to control the server.
|-
|-
| <tt>#vote kick</tt> ''(name, ID or Player#)''
| {{hl|#vote kick}} ''(name, ID or Player#)''
| <tt>#vote kick nickName</tt><br>
| {{hl|#vote kick nickName}}<br>
<tt>#vote kick 47114712</tt><br>
{{hl|#vote kick 47114712}}<br>
<tt>#vote kick 3</tt>
{{hl|#vote kick 3}}
| Users can vote to kick off an individual.
| Users can vote to kick off an individual.
|-
|-
| <tt>#vote restart</tt>            ||                                  || Vote to restart the mission.
| {{hl|#vote restart}}
|
| Vote to restart the mission.
|-
|-
| <tt>#vote reassign</tt>          ||                                  || Vote to reassign.
| {{hl|#vote reassign}}
|
| Vote to reassign.
|-
|-
| <tt>#userlist</tt>                ||                                  || Displays the list of users on the server (use ''PgUp'' to scroll up).
| {{hl|#userlist}}
|
| Displays the list of users on the server (use ''PgUp'' to scroll up).
|}
|}


===Battleye===
=== Battleye ===
{| class="bikitable"
{| class="wikitable"
! Command                   !! Description
! Command !! Description
|-
|-
| <tt>#beclient players</tt> || Displays the list of ''GUID's'' of all players on the server.
| {{hl|#beclient players}}
| Displays the list of ''GUID's'' of all players on the server.
|-
|-
| <tt>#beclient guid</tt>    || Show your own ''GUID''.
| {{hl|#beclient guid}}
| Show your own ''GUID''.
|}
|}


===Arma 3===
=== Arma 3 ===


In Arma 3 '''#exec kick''' and '''#exec ban''' commands require quotes for ''Name'', ''UID'' or ''Player#''.  
{{Feature|arma3|See [[Arma 3: Server Side Scripting]].}}
 
In Arma 3 '''#exec kick''' and '''#exec ban''' commands require quotes (string) for ''Name'', ''UID'' or ''Player#''. To do this for the UID or Player#, use [[format]] command to turn the user ID into a string.


<pre>#exec kick "5"
<pre>#exec kick "5"
Line 195: Line 299:
#kick "imah4x0r"</pre>
#kick "imah4x0r"</pre>


2 more diagnostic commands are added to Arma 3:
In case of banning, ''ban.txt'' file is created in root Arma 3 directory that contains a list of banned UIDs. To unban a user by UID (UID is the only option) or to clear the ''ban.txt'':
<pre>#exec unban "98749837498374"
#exec clearbans</pre>
 
2 more diagnostic commands have been added to Arma 3:
 
* '''#logEntities''' (see also [[logEntities]])
* '''#exportJIPqueue''' (see also [[exportJIPMessages]])
 
Also new in Arma 3:  


<pre>#logEntities
* '''#restartServer'''
#exportJIPqueue</pre>
* '''#monitorDS'''


In case of banning, ''ban.txt'' file is created in root Arma 3 directory that contains a list of banned UIDs.


[[Category:Multiplayer]]
[[category:Operation Flashpoint:_Multiplayer]]
[[Category:ArmA:_Multiplayer]]
[[Category:Multiplayer Hints and Tips]]
[[Category:Multiplayer Hints and Tips]]
{{GameCategory|ofp|Multiplayer}}
{{GameCategory|arma1|Multiplayer}}
{{GameCategory|arma2|Multiplayer}}
{{GameCategory|arma3|Multiplayer}}

Revision as of 16:43, 26 July 2024

Arma Reforger
For Arma Reforger see Arma Reforger:Server Management.


It is recommended to use BattlEye's RCon tool to administrate the server;
it uses custom port which one may easily secure by firewall rules! (RCON cannot be affected by in-game script exploits)

HowTo

You can access the command line by pressing the chat key (default /).

In the chat input window you can type any of the following commands in and confirm them with the enter key.

You have to add the # character before the command.

The commands can be used in SQF scripts by using serverCommand.

Troubleshooting: All commands are confirmed via a message in the console. If you enter a command that is properly formatted and you see no confirmation of the command then an error has occurred. Check your server log for more information (e.g. one or more of your mission files is corrupt or has an error which prevents the Missions Lobby from loading, or may prevent other commands like #restart or #reassign from executing).


Commands

The following commands are available to you once you have connected to a server:

Admin

Command Example Description
#login

#login password

#login

#login adminPW

Log in as the admin. Without password only possible if you are listed as an admin[] in Arma 3: Server Config File#Server_Options
#logout Admin log out.
#mission filename

#mission filename difficulty

#mission myDM.intro

#mission myDM.intro Veteran

Select mission with known name and set the difficulty. Difficulty parameter is optional and if not set, current difficulty is kept.
#missions Allows selection of mission on shown list of available missions (all or those inside missionWhiteList[] = {}; within server.cfg).
Note: this will trigger `missionEnd` (so if server.cfg is set with e.g. MissionsToServerRestart or MissionsToShutdown threshold, the server may immediately restart/shutdown)
#restart Restart mission.
#reassign Start over and reassign roles.
#shutdown Shuts down the server immediately
#restartserver Shuts down and restarts the server immediately (since Arma 3 v1.66)
#shutdownaftermission Shuts down the server after mission ends (since Arma 3 1.72.142200)
#restartserveraftermission Shuts down and restarts the server after mission ends (since Arma 3 1.72.142200)
#init Reload server config file loaded by -config option.
#exec ban name

#exec ban ID
#exec ban Player#
#exec ban "user reason"

#exec ban nickName

#exec ban 47114712
#exec ban 3
#exec ban "3 Griefing"
Arma 3 logo black.png2.18 #exec ban """Some Username""" ""Some Ban Reason Text"""

Allows you to ban a player. Their ID will be added to the ban.txt file.
#kick name

#kick ID
#kick Player#
#kick user reason

#kick nickName

#kick 47114712
#kick 3
Arma 3 logo black.png2.18 #kick "Some Username" "Some Kick Reason Text"

Allows you to kick a player.
#monitor (interval in sec) #monitor 1 Shows performance information of the server. Interval 0 means to stop monitoring.
Values description
Traffic
G Guaranteed messages
NG Non-Guaranteed messages
Player info
L lobby
R role selection
B briefing
G in-game
D debriefing
#monitords (interval in sec) #monitords 1 Shows performance information in the dedicated server console. Interval 0 means to stop monitoring. (since Arma 3 v1.64)
#debug off #debug off Disables debugging.
#debug (interval in sec) #debug 30 Default interval is 10 seconds.
#debug (command) (param) #debug checkFile expansion\Dta\ui.pbo

#debug userSent <username>
#debug userInfo <username>
#debug userQueue <username>
#debug JIPQueue <username>
#debug totalSent 10

The available commands are:
checkFile
userSent
userInfo
userQueue
totalSent
JIPQueue

Each command can be disabled by the use of the off parameter e.g. #debug userSent off
Each command differs a bit; some output to screen, some to log file etc.
You need some debugger capable of catching OutputDebugString running on the client machine
(one very small and easy to use is available at SysInternals website).
You launch this debugger, then launch ARMA client, connect to the server, and issue any of the commands
.

#debug (command) #debug von

#debug console

The available commands are:

console

Send to submitter what's on server console. Works as DebugAnswer for all writes into the console.

von

Outputs into logFile defined in server config as e.g. logFile = "server_console.log";

Each of those commands should show a confirmation in the chat channels.

New admin commands since Armed Assault:
Command Description
#exec server side command Execute administration scripting command. Only works on dedicated servers.
#lock Locks the server, prevents new clients from joining.
#unlock Unlocks the server, allows new clients to join.


"#debug von" sample

server_console.log

*** VoN Topology Diagnostics ((***
=Player=: #2
P2PManager: Time: 13:38:48 waiting edges: 0, active negotiations: 0
Matrix:
  3056006: #2
  #2: 3056006
Cliques:
  3056006,#2
Version: 1.60.86277
Private: 192.168.178.21
Connections:
  3056006: Direct P2P, 5 KA, snd: 10 sec, rcv: 10 sec, (192.168.178.21:2317) snd=0 rcv=0(0) Repl(-5,0,0)
Cliques:
  3056006,Unknown
=Player=: 3056006
Version: 1.60.86277
Private: 192.168.178.21
Public: 77.4.35.154
Connections:
  #2: Direct P2P, 5 KA, snd: 10 sec, rcv: 10 sec, (192.168.178.21:2305) snd=0 rcv=0(0) Repl(-5,0,0)
Cliques:
  3056006,Unknown
*** VoN Topology Diagnostics ))***


"#debug (command)" sample

DebugView

#debug console
1508] Debug: console

#debug totalSent
[1508] Debug: totalSent
[1508] ** Total: sent 1447 bps (2.10 Msgps), received 3788 bps (6.10 Msgps)

#debug userSent playerName
[1508] Debug: userSent
[1508] playerName: sent 1531 bps (2.30 Msgps), received 1259 bps (1.70 Msgps)

#debug userInfo playerName
[1508] Debug: userInfo
[1508] __SERVER__: Info Unknown player ID = 2
[1508] playerName: Info ping   0ms(   0,   1) BWfee  286Kb(   3, 204,   3) lost22.2%%(  2) queue   0B(   0) ackWait  0(0.0,0.0)

#debug userQueue playerName
[1508] Debug: userQueue
[1508] __SERVER__: Queue 0 B (0) 0 B Guaranteed (0), Desync 0
[1508] playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0

Player

Command Example Description
#vote missions Users can vote for the mission selection.
#vote mission (name) #vote mission myD.intro Users can vote on a particular mission to loaded.
#vote admin (name/ID/PLR#) #vote admin nickName

#vote admin 47114712
#vote admin 3

Users can vote an admin to control the server.
#vote kick (name, ID or Player#) #vote kick nickName

#vote kick 47114712
#vote kick 3

Users can vote to kick off an individual.
#vote restart Vote to restart the mission.
#vote reassign Vote to reassign.
#userlist Displays the list of users on the server (use PgUp to scroll up).

Battleye

Command Description
#beclient players Displays the list of GUID's of all players on the server.
#beclient guid Show your own GUID.

Arma 3

In Arma 3 #exec kick and #exec ban commands require quotes (string) for Name, UID or Player#. To do this for the UID or Player#, use format command to turn the user ID into a string.

#exec kick "5"
#exec ban "imah4x0r"
#exec kick "938679499494"

#kick command can still be used either way:

#kick imah4x0r
#kick "imah4x0r"

In case of banning, ban.txt file is created in root Arma 3 directory that contains a list of banned UIDs. To unban a user by UID (UID is the only option) or to clear the ban.txt:

#exec unban "98749837498374"
#exec clearbans

2 more diagnostic commands have been added to Arma 3:

Also new in Arma 3:

  • #restartServer
  • #monitorDS