Server Side Scripting – Arma 3
Jump to navigation
Jump to search
Lou Montana (talk | contribs) (Page creation from ArmA: Armed Assault: Server Side Scripting) |
Lou Montana (talk | contribs) m (Text replacement - "<tt>([^= ]+)<\/tt>" to "{{hl|$1}}") |
||
Line 1: | Line 1: | ||
{{TOC|side}} | {{TOC|side}} | ||
The server has a separate Virtual Machine (VM) running administration scripts. This VM is completely independent on the game scripting environment and is designed to automate some administration tasks related to player administration and cheat detection. The basic way how scripts are executed is via event handlers reacting to some typical events, server admin can also execute individual commands using a chat command | The server has a separate Virtual Machine (VM) running administration scripts. This VM is completely independent on the game scripting environment and is designed to automate some administration tasks related to player administration and cheat detection. The basic way how scripts are executed is via event handlers reacting to some typical events, server admin can also execute individual commands using a chat command {{hl|#exec}}. | ||
Event handlers are defined in the [[Arma 3: Server Config File|server.cfg]] file. | Event handlers are defined in the [[Arma 3: Server Config File|server.cfg]] file. |
Revision as of 00:16, 16 November 2021
The server has a separate Virtual Machine (VM) running administration scripts. This VM is completely independent on the game scripting environment and is designed to automate some administration tasks related to player administration and cheat detection. The basic way how scripts are executed is via event handlers reacting to some typical events, server admin can also execute individual commands using a chat command #exec.
Event handlers are defined in the server.cfg file.
Event Handlers
Event Name | Description | Handler Parameters |
---|---|---|
doubleIdDetected | 2nd user with the same ID detected | user id |
onUserConnected | user has connected | user id |
onUserDisconnected | user has disconnected | user id |
onHackedData | modification of signed pbo detected | user id, file name |
onDifferentData | signed pbo detected with a valid signature, but a different version than a server has (very strict test, use sparingly, no longer supported in Arma 2 OA 95232) | user id, file name |
onUnsignedData | unsigned data detected | user id, file name |
onUserKicked | if a user is kicked | user id, kick type ID, reason |
regularCheck | called time by time for each user, test index is growing, example: 0 checkFile _this
|
user id, test index |
Commands
Specific Commands
Command Syntax | Category | Description |
---|---|---|
users | User | List users, each user is described as an array in format [id, name] |
kick userId reason | User | Kick off given user id from the server, with an optional text |
ban userId reason | User | Add given user id into the ban list, with an optional text |
unkick userId | User | Remove a kick from the server's list |
unban userId | User | Remove a ban from the server's list |
clearKicks | User | Clear all existing kicks from the server's list |
clearBans | User | Clear all existing bans from the server's list |
numberOfFiles userId | File | number of addons files used for given player - can be used to determine suitable values for checkFile |
level checkFile [userId, fileIndex] | File | See Addon Signature for a file with given index on given user computer, level determines test depth (0 = default, 1 = deep. Note: deep can be very slow) |
level checkExe userId | File | Start the integrity check of game executable for given user. Level defines how exhaustive the test should be |
lock | Game | Lock/unlock the session |
- !
- +
- -
- :
- abs
- acos
- append
- apply
- arrayIntersect
- asin
- assert
- atan
- atg
- breakOut
- call
- case
- ceil
- comment
- compileFinal
- compile
- cos
- count
- count
- deg
- deleteAt
- deleteRange
- diag_log
- disableSerialization
- do
- echo
- else
- exitWith
- exp
- false
- findIf
- find
- finite
- floor
- forEach
- for
- if
- in
- isFinal
- joinString
- ln
- log
- nil
- not
- parseNumber
- parseSimpleArray
- pi
- private
- pushBackUnique
- pushBack
- rad
- random
- resize
- reverse
- round
- scriptName
- selectMax
- selectMin
- selectRandomWeighted
- selectRandomWeighted
- selectRandom
- select
- set
- sin
- sort
- splitString
- sqrt
- str
- switch
- tan
- tg
- then
- throw
- toArray
- toLowerANSI
- toLower
- toString
- toUpperANSI
- toUpper
- true
- try
- typeName
- waitUntil
- while
- with