Multiplayer Server Commands: Difference between revisions
(updated "#debug on " sample) |
Lou Montana (talk | contribs) (Add #logremains) |
||
(18 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]]. | ||
'''Troubleshooting''': | {{Feature|informative| | ||
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). | '''Troubleshooting''':<br> | ||
Some commands are confirmed via a message in the console.<br> | |||
If you enter a command that is properly formatted, and you see no confirmation of the command, then an error may have occurred.<br> | |||
Check your [[Crash_Files|server log]] for potentially more information why it failed (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). | |||
}} | |||
Line 27: | 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 59: | 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 66: | 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 100: | 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 135: | 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 181: | Line 231: | ||
| {{hl|#debug limitOut}} ''bitsPerSecond'' | | {{hl|#debug limitOut}} ''bitsPerSecond'' | ||
| {{hl|#debug limitOut 100000}} | | {{hl|#debug limitOut 100000}} | ||
| Change bandwidth limit. | | 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}} | ||
| | | | ||
| See [[ | | 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| | |||
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}} ''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> | ||
| See [[diag_captureSlowFrame]] for more info. | {{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. | |||
|- | |- | ||
| {{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 263: | Line 299: | ||
*** 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 286: | Line 323: | ||
__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 320: | Line 361: | ||
1 ... Type | 1 ... Type | ||
</pre> | </pre> | ||
</spoiler> | |||
=== Player === | === Player Commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 359: | Line 401: | ||
|} | |} | ||
=== | === BattlEye commands === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 371: | Line 413: | ||
|} | |} | ||
=== | === {{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 02:48, 22 November 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 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 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