Multiplayer Server Commands: Difference between revisions
Tag: Undo |
m (→Performance Profiling: #logEntities is supported on profiling branch) |
||
Line 250: | Line 250: | ||
| 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. | ||
|- | |- | ||
| {{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. |
Revision as of 19:29, 21 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. | |
#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