Multiplayer Server Commands: Difference between revisions
(added additional captureSlowFrame example) |
(→Performance Profiling: added captureSlowFrame examples with new suffix option) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 9: | Line 9: | ||
}} | }} | ||
== | |||
== How To == | |||
You can access the command line '''by pressing the chat key''' (default {{Controls|/}}). | You can access the command line '''by pressing the chat key''' (default {{Controls|/}}). | ||
Line 15: | Line 16: | ||
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 | You '''have''' to add the {{hl|#}} character before the command. | ||
The commands can be used in SQF scripts by using [[serverCommand]]. | The commands can be used in SQF scripts by using [[serverCommand]]. | ||
Line 31: | Line 32: | ||
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" | ||
! Command !! Example !! Description | ! Command !! Example !! Description | ||
Line 63: | Line 65: | ||
| | | | ||
| Start over and reassign roles. | | Start over and reassign roles. | ||
|- | |||
| {{hl|#lock}} | |||
| Locks the server, prevents new clients from joining. | |||
|- | |||
| {{hl|#unlock}} | |||
| Unlocks the server, allows new clients to join. | |||
|- | |- | ||
| {{hl|#shutdown}} | | {{hl|#shutdown}} | ||
Line 70: | Line 78: | ||
| {{hl|#restartserver}} | | {{hl|#restartserver}} | ||
| | | | ||
| Shuts down and restarts the server immediately | | {{GVI|arma3|1.66}} Shuts down and restarts the server immediately | ||
|- | |- | ||
| {{hl|#shutdownaftermission}} | | {{hl|#shutdownaftermission}} | ||
| | | | ||
| Shuts down the server after mission ends | | {{GVI|arma3|1.72}} Shuts down the server after mission ends | ||
|- | |- | ||
| {{hl|#restartserveraftermission}} | | {{hl|#restartserveraftermission}} | ||
| | | | ||
| Shuts down and restarts the server after mission ends | | {{GVI|arma3|1.72}} Shuts down and restarts the server after mission ends | ||
|- | |- | ||
| {{hl|#init}} | | {{hl|#init}} | ||
| | | | ||
| Reload server config file loaded by {{hl|[[:Category:Startup Parameters|-config]]}} option. | | Reload server config file loaded by {{hl|[[:Category:Startup Parameters|-config]]}} option. | ||
|} | |||
{{ArgTitle|4|Player Punishment|{{GVI|arma1|1.00}}}} | |||
{{hl|#exec}} ''[[ArmA: Armed Assault: Server Side Scripting|server side command]]'' allows executing administration scripting command. | |||
{{Feature|important|Only works on '''dedicated''' servers.}} | |||
{| class="wikitable" | |||
! Command !! Example !! Description | |||
|- | |- | ||
|{{hl|#exec ban}} ''name''<br> | |{{hl|#exec ban}} ''name''<br> | ||
Line 104: | Line 121: | ||
{{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 139: | Line 185: | ||
| {{hl|#monitords}} ''(interval in sec)'' | | {{hl|#monitords}} ''(interval in sec)'' | ||
| {{hl|#monitords 1}} | | {{hl|#monitords 1}} | ||
| Shows performance information in the dedicated server console. Interval {{hl|0}} means to stop monitoring. | | {{GVI|arma3|1.64}} Shows performance information in the dedicated server console. Interval {{hl|0}} means to stop monitoring. | ||
|- | |- | ||
| {{hl|#debug}} ''(interval in sec)'' | | {{hl|#debug}} ''(interval in sec)'' | ||
Line 186: | Line 232: | ||
| {{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 214: | Line 242: | ||
| The current frame '''on the server''' is captured and written to a log file in the same directory as the [[Crash_Files|.rpt file]]. See [[diag_captureFrameToFile]] for more info. <br> | | The current frame '''on the server''' is captured and written to a log file in the same directory as the [[Crash_Files|.rpt file]]. See [[diag_captureFrameToFile]] for more info. <br> | ||
{{Feature|informative| | {{Feature|informative| | ||
Until 2.20 {{GVI|arma3|prof}} on client was required to trigger #captureFrame | Until 2.20 {{GVI|arma3|prof}} on client was required to trigger {{hl|#captureFrame}} on server. Starting with {{GVI|arma3|2.20}} they can mismatch. | ||
You can trigger {{hl|#captureFrame}} on a {{GVI|arma3|prof}} server (always required), coming from a {{GVI|arma3|perf}} client for example. | |||
}} | }} | ||
|- | |- | ||
| {{GVI|arma3|prof}} {{hl|#captureslowframe}} ''scope, threshold, frameOffset, numberOfSlowFrames to capture'' | | {{GVI|arma3|prof}} {{hl|#captureslowframe}} ''scope, threshold, frameOffset, numberOfSlowFrames to capture'' | ||
| {{hl|#captureSlowFrame | | style="width:300px;" | {{hl|#captureSlowFrame sLoop 0 0 0}} <br> | ||
{{hl|#captureSlowFrame | {{hl|#captureSlowFrame sLoop 0.033 0 1}} <br> | ||
| 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. | {{hl|#captureSlowFrame sLoop 33ms}} <br> | ||
{{hl|#captureSlowFrame sLoop 30fps}} | |||
| 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]].<br> | |||
Note: {{hl|#captureSlowFrame sLoop 0.033 0 1}} equals to {{hl|diag_captureSlowFrame ['sLoop', 0.033]}}. See [[diag_captureSlowFrame]] for more info. | |||
|- | |- | ||
| {{GVI|arma3|diag}} {{hl|#logEntities}} | | {{GVI|arma3|diag}} {{GVI|arma3|prof}} {{hl|#logEntities}} | ||
| | | | ||
| Creates a log file containing the list of all game entities in scene. See [[logEntities]] for more info. | | Creates a log file containing the list of all game entities in scene. See [[logEntities]] for more info. | ||
|- | |- | ||
| {{GVI|arma3|diag}} {{hl|#exportJIPqueue}} | | {{GVI|arma3|diag}} {{GVI|arma3|prof}} {{hl|#exportJIPqueue}} | ||
| | | | ||
| 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|# | | {{GVI|arma3|2.20}} {{GVI|arma3|diag}} {{GVI|arma3|prof}} {{hl|#logremains}} | ||
| | | | ||
| Log remains collector entities into a file in the [[arma.RPT|RPT]] directory. See also <sqf inline>diag_remainsCollector -1</sqf> and the {{hl|{{Link|Multiplayer Server Commands#Performance Profiling|#logremains}}}} server command. | |||
|- | |- | ||
| {{hl|# | | {{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. | |||
| {{hl|# | |||
| | |||
|} | |} | ||
=== Samples === | |||
==== "#debug von" | ==== "#debug von" ==== | ||
'''server_console.log''' | |||
<spoiler text="Show example output"> | |||
<pre> | <pre> | ||
*** VoN Topology Diagnostics ((*** | *** VoN Topology Diagnostics ((*** | ||
Line 274: | Line 302: | ||
*** VoN Topology Diagnostics ))*** | *** VoN Topology Diagnostics ))*** | ||
</pre> | </pre> | ||
</spoiler> | |||
==== "#debug on <OPTION>" ==== | |||
'''DebugView''' | |||
= | <spoiler text="Show example output"> | ||
<pre> | <pre> | ||
#debug on TotalSent | #debug on TotalSent | ||
Line 335: | Line 364: | ||
1 ... Type | 1 ... Type | ||
</pre> | </pre> | ||
</spoiler> | |||
=== Player === | === Player Commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 374: | Line 404: | ||
|} | |} | ||
=== | === BattlEye commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 386: | Line 416: | ||
|} | |} | ||
=== | === {{arma3}} #exec Notes === | ||
{{Feature|arma3|See [[Arma 3: Server Side Scripting]].}} | {{Feature|arma3|See [[Arma 3: Server Side Scripting]].}} | ||
In | In {{arma3}} '''#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" | |||
#exec ban "imah4x0r" | #exec ban "imah4x0r" | ||
#exec kick "938679499494"</pre> | #exec kick "938679499494" | ||
</pre> | |||
'''#kick''' command can still be used either way: | '''#kick''' command can still be used either way: | ||
<pre>#kick imah4x0r | <pre> | ||
#kick "imah4x0r"</pre> | #kick imah4x0r | ||
#kick "imah4x0r" | |||
</pre> | |||
In case of banning, ''ban.txt'' file is created in root | In case of banning, a ''ban.txt'' file containing a list of banned UIDs is created in {{arma3}}'s root directory. To unban a user by UID (UID is the only option) or to clear the ''ban.txt'': | ||
<pre>#exec unban "98749837498374" | <pre> | ||
#exec clearbans</pre> | #exec unban "98749837498374" | ||
#exec clearbans | |||
</pre> | |||
Latest revision as of 11:00, 5 December 2024
How To
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. | |
#lock | Locks the server, prevents new clients from joining. | |
#unlock | Unlocks the server, allows new clients to join. | |
#shutdown | Shuts down the server immediately | |
#restartserver | 1.66 Shuts down and restarts the server immediately | |
#shutdownaftermission | 1.72 Shuts down the server after mission ends | |
#restartserveraftermission | 1.72 Shuts down and restarts the server after mission ends | |
#init | Reload server config file loaded by -config option. |
Player Punishment
#exec server side command allows executing administration scripting command.
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 | 1.64 Shows performance information in the dedicated server console. Interval 0 means to stop monitoring. | ||||||||||||||||||
#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. | |
PROF #captureslowframe scope, threshold, frameOffset, numberOfSlowFrames to capture | #captureSlowFrame sLoop 0 0 0 #captureSlowFrame sLoop 0.033 0 1 |
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. Note: #captureSlowFrame sLoop 0.033 0 1 equals to diag_captureSlowFrame ['sLoop', 0.033]. See diag_captureSlowFrame for more info. |
DIAG PROF #logEntities | Creates a log file containing the list of all game entities in scene. See logEntities for more info. | |
DIAG PROF #exportJIPqueue | Creates a log file containing an overview on all JIP (network) messages currently in the JIP queue. See exportJIPMessages for more info. | |
2.20 DIAG PROF #logremains | Log remains collector entities into a file in the RPT directory. See also diag_remainsCollector -1 and the #logremains server command. | |
#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. |
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↑ Back to spoiler's top
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, a ban.txt file containing a list of banned UIDs is created in Arma 3's root directory. To unban a user by UID (UID is the only option) or to clear the ban.txt:
#exec unban "98749837498374" #exec clearbans