Multiplayer Server Commands: Difference between revisions
(added more info about limitOut provided by Dedmen) |
(improved page structure with additional subheaders; improved subheader naming) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
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 commands === | ||
==== Server/session administration ==== | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 83: | Line 85: | ||
| | | | ||
| Reload server config file loaded by {{hl|[[:Category:Startup Parameters|-config]]}} option. | | Reload server config file loaded by {{hl|[[:Category:Startup Parameters|-config]]}} option. | ||
|} | |||
==== Player punishment ==== | |||
{| class="wikitable" | |||
! Command !! Example !! Description | |||
|- | |- | ||
|{{hl|#exec ban}} ''name''<br> | |{{hl|#exec ban}} ''name''<br> | ||
Line 104: | Line 112: | ||
{{GVI|arma3|2.18|size=0.75}} {{hl|#kick "Some Username" "Some Kick Reason Text"}} | {{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. | ||
|} | |||
==== Network/connection quality ==== | |||
{| class="wikitable" | |||
! Command !! Example !! Description | |||
|- | |||
| {{hl|#maxdesync}} ''(amount in %)'' | |||
| {{hl|#maxdesync 95}} | |||
| Set the maximum accepted desynchronisation <br> | |||
Desync is the value you can also see on the map screen when clicking on a player. Or get from ''networkInfo'' by [[getUserInfo]]. <br> | |||
Unclear if percent value or number. The max value seems to be 100000. <br> | |||
Note the relation to "yellow chain" and "red chain". 2000 triggers yellow chain. 20000 triggers red chain. <br> | |||
|- | |||
| {{hl|#maxpacketloss}} ''(amount in %)'' | |||
| {{hl|#maxpacketloss 50}} | |||
| Set the maximum accepted packet loss | |||
|- | |||
| {{hl|#maxping}} ''(time in ms)'' | |||
| {{hl|#maxping 250}} | |||
| Set the maximum accepted ping | |||
|- | |||
| {{hl|#dctimeout}} ''(time in sec)'' | |||
| {{hl|#dctimeout 60}} | |||
| Set the disconnect timeout | |||
|} | |||
==== Monitoring/analysis ==== | |||
{| class="wikitable" | |||
! Command !! Example !! Description | |||
|- | |- | ||
| {{hl|#monitor}} ''(interval in sec)'' | | {{hl|#monitor}} ''(interval in sec)'' | ||
Line 186: | Line 225: | ||
| {{hl|#debug limitOut 100000}} | | {{hl|#debug limitOut 100000}} | ||
| Change bandwidth limit (in bits per second). Must be larger than 0. You get response message: "Outgoing bandwidth limited to %d B/s (%d bps) per client". | | Change bandwidth limit (in bits per second). Must be larger than 0. You get response message: "Outgoing bandwidth limited to %d B/s (%d bps) per client". | ||
}} | |||
|} | |||
| | |||
==== Performance profiling ==== | |||
{| class="wikitable" | |||
! Command !! Example !! Description | |||
|- | |- | ||
| {{GVI|arma3|prof}} {{hl|#captureframe}} | | {{GVI|arma3|prof}} {{hl|#captureframe}} | ||
Line 212: | Line 238: | ||
{{Feature|informative| | {{Feature|informative| | ||
Until 2.20 {{GVI|arma3|prof}} on client was required to trigger #captureFrame command on server. Starting {{GVI|arma3|2.20}} they can mismatch. You can trigger #captureFrame on a {{GVI|arma3|prof}} server (always required), coming from a {{GVI|arma3|perf}} client for example. | Until 2.20 {{GVI|arma3|prof}} on client was required to trigger #captureFrame command on server. Starting {{GVI|arma3|2.20}} they can mismatch. You can trigger #captureFrame on a {{GVI|arma3|prof}} server (always required), coming from a {{GVI|arma3|perf}} client for example. | ||
|- | |- | ||
| {{GVI|arma3|prof}} {{hl|#captureslowframe}} ''threshold frameOffset | | {{GVI|arma3|prof}} {{hl|#captureslowframe}} ''scope, threshold, frameOffset, numberOfSlowFrames to capture'' | ||
| {{hl|#captureSlowFrame 0.3 1 | | {{hl|#captureSlowFrame total 0 0 0}} <br> | ||
{{hl|#captureSlowFrame total 0.3 0 1}} equals to {{hl|diag_captureSlowFrame ['total', 0.3]}} | |||
| Captures the current frame '''on the server''' if it exceeds the set threshold in seconds and get written to a log file in the same directory as the [[Crash_Files|.rpt file]]. See [[diag_captureSlowFrame]] for more info. | | Captures the current frame '''on the server''' if it exceeds the set threshold in seconds and get written to a log file in the same directory as the [[Crash_Files|.rpt file]]. See [[diag_captureSlowFrame]] for more info. | ||
|- | |- | ||
Line 225: | Line 251: | ||
| | | | ||
| Creates a log file containing an overview on all JIP (network) messages currently in the JIP queue. See [[exportJIPMessages]] for more info. | | Creates a log file containing an overview on all JIP (network) messages currently in the JIP queue. See [[exportJIPMessages]] for more info. | ||
|- | |||
| {{hl|#debug jipPerf}} | |||
| {{hl|#debug jipPerf}} | |||
| Dumps the JIP queue in your client's chat. It might also print to client/server RPT? (TBC). It is the top part of what [[exportJIPMessages]] does. | |||
|} | |} | ||
Line 242: | Line 272: | ||
==== "#debug von" | === Samples === | ||
==== "#debug von" ==== | |||
'''server_console.log''' | '''server_console.log''' | ||
Line 272: | Line 304: | ||
==== "#debug on <OPTION>" | ==== "#debug on <OPTION>" ==== | ||
'''DebugView''' | '''DebugView''' | ||
Line 293: | Line 325: | ||
__SERVER__: Queue 0 B (0) 0 B Guaranteed (0), Desync 0 | __SERVER__: Queue 0 B (0) 0 B Guaranteed (0), Desync 0 | ||
playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0 | playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0 | ||
This is monitoring data. This should be how many bytes were sent recently. | |||
In parenthesis is the number of messages sitting in queue. | |||
BE is for BattlEye - BE has its own messaging. | |||
#debug on JIPQueue | #debug on JIPQueue | ||
Line 328: | Line 364: | ||
</pre> | </pre> | ||
=== Player === | === Player commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 366: | Line 402: | ||
|} | |} | ||
=== | === BattlEye commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 378: | Line 414: | ||
|} | |} | ||
=== Arma 3 === | === Arma 3 #exec notes === | ||
{{Feature|arma3|See [[Arma 3: Server Side Scripting]].}} | {{Feature|arma3|See [[Arma 3: Server Side Scripting]].}} |
Latest revision as of 16:27, 1 November 2024
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.
Commands
The following commands are available to you once you have connected to a server:
Admin commands
Server/session administration
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. |
Player punishment
Command | Example | Description |
---|---|---|
#exec ban name #exec ban ID |
#exec ban nickName #exec ban 47114712 |
Allows you to ban a player. Their ID will be added to the ban.txt file. |
#kick name #kick ID |
#kick nickName #kick 47114712 |
Allows you to kick a player. |
Network/connection quality
Command | Example | Description |
---|---|---|
#maxdesync (amount in %) | #maxdesync 95 | Set the maximum accepted desynchronisation Desync is the value you can also see on the map screen when clicking on a player. Or get from networkInfo by getUserInfo. |
#maxpacketloss (amount in %) | #maxpacketloss 50 | Set the maximum accepted packet loss |
#maxping (time in ms) | #maxping 250 | Set the maximum accepted ping |
#dctimeout (time in sec) | #dctimeout 60 | Set the disconnect timeout |
Monitoring/analysis
Command | Example | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#monitor (interval in sec) | #monitor 1 | Shows performance information of the server. Interval 0 means to stop monitoring.
| ||||||||||||||||||
#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 (interval in sec) | #debug 30 | Default interval is 10 seconds. | ||||||||||||||||||
#debug on (command) | #debug on Console #debug on TotalSent |
The available commands are:
Each command can be disabled by the use of the off parameter e.g. #debug off UserSent | ||||||||||||||||||
#debug off <OPTION> | #debug off TotalSent | Disables the specific debugging <OPTION>. See available options above. | ||||||||||||||||||
#debug off | #debug off | Disables all debugging options. | ||||||||||||||||||
#debug checkFile (PATH\TO\FILE.PBO) | #debug checkFile Expansion\Dta\ui.pbo | Trigger integrity check on filename. | ||||||||||||||||||
#debug von | #debug von | Triggers VoN debug mode. Outputs into logFile defined in server config as e.g. logFile = "server_console.log";. See below for example output. | ||||||||||||||||||
#debug limitOut bitsPerSecond | #debug limitOut 100000 | Change bandwidth limit (in bits per second). Must be larger than 0. You get response message: "Outgoing bandwidth limited to %d B/s (%d bps) per client".
}} |
Performance profiling
Command | Example | Description |
---|---|---|
PROF #captureframe | The current frame on the server is captured and written to a log file in the same directory as the .rpt file. See diag_captureFrameToFile for more info. {{Feature|informative| Until 2.20 PROF on client was required to trigger #captureFrame command on server. Starting 2.20 they can mismatch. You can trigger #captureFrame on a PROF server (always required), coming from a PERF client for example. | |
PROF #captureslowframe scope, threshold, frameOffset, numberOfSlowFrames to capture | #captureSlowFrame total 0 0 0 #captureSlowFrame total 0.3 0 1 equals to diag_captureSlowFrame ['total', 0.3] |
Captures the current frame on the server if it exceeds the set threshold in seconds and get written to a log file in the same directory as the .rpt file. See diag_captureSlowFrame for more info. |
DIAG #logEntities | Creates a log file containing the list of all game entities in scene. See logEntities for more info. | |
DIAG #exportJIPqueue | Creates a log file containing an overview on all JIP (network) messages currently in the JIP queue. See exportJIPMessages for more info. | |
#debug jipPerf | #debug jipPerf | Dumps the JIP queue in your client's chat. It might also print to client/server RPT? (TBC). It is the top part of what exportJIPMessages does. |
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. |
Samples
"#debug von"
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 on <OPTION>"
DebugView
#debug on TotalSent // Send/Receive for the whole server. bps = Bits per second. Msgps = messages per second. ** Total: sent 1447 bps (2.10 Msgps), received 3788 bps (6.10 Msgps) #debug on UserSent // Send/Receive statistics for every player. bps = Bits per second. Msgps = messages per second. playerName: sent 1531 bps (2.30 Msgps), received 1259 bps (1.70 Msgps) #debug on UserInfo // Some statistics for every player. __SERVER__: Info Unknown player ID = 2 playerName: Info ping 0ms( 0, 1) BWfee 286Kb( 3, 204, 3) lost22.2%%( 2) queue 0B( 0) ackWait 0(0.0,0.0) #debug on UserQueue // Info about how many bytes/messages are currently queued up for every player. __SERVER__: Queue 0 B (0) 0 B Guaranteed (0), Desync 0 playerName: Queue 0 B (0) 222 B Guaranteed (3), Desync 0 This is monitoring data. This should be how many bytes were sent recently. In parenthesis is the number of messages sitting in queue. BE is for BattlEye - BE has its own messaging. #debug on JIPQueue // The total number of messages in JIP queue. As well as amount per message type. AddInitAndRemoveOverridden statistics ... total messages = 2543 110 ... Type_10 45 ... Type_31 57 ... Type_53 193 ... Type_54 11 ... Type_56 11 ... Type_57 52 ... Type_59 11 ... Type_60 562 ... Type_64 5 ... Type_65 11 ... Type_183 10 ... Type_187 422 ... Type_248 167 ... Type_272 34 ... Type_273 1 ... Type_274 652 ... Type_291 1 ... Type_295 5 ... Type_296 5 ... Type_307 2 ... Type_308 10 ... Type_324 2 ... Type_328 2 ... Type_329 2 ... Type_330 73 ... Type_337 35 ... Type_360 10 ... Type_364 1 ... Type
Player commands
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 |
Users can vote an admin to control the server. |
#vote kick (name, ID or Player#) | #vote kick nickName #vote kick 47114712 |
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 commands
Command | Description |
---|---|
#beclient players | Displays the list of GUID's of all players on the server. |
#beclient guid | Show your own GUID. |
Arma 3 #exec notes
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