Arma 3: Server Side Scripting

From Bohemia Interactive Community
Jump to navigation Jump to search

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


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

Shared Commands