A Rust library which is loaded by Arma 3, as an extension, that creates a websocket server and allows full-duplex communication.
- Arma 3 (server would be preferable)
- Latest version of CBA (can be loaded as a servermod)
- Download the version you need for your server (Windows/Linux)
- Extract the files in your
servermodsdirectory which is named@beacon - Add it as a servermod to your launch script (e.g.
-servermod=...) - Copy the
.env.examplefrom the root of the@beaconfolder to your server files (where the server executable is) directory as.env - Configure the
.envfile - Done!
To use Beacon you need to connect via a web socket connection to your server and follow a simple syntax.
All commands are separated by a unique separator - |=|. This prevents conflicts with code.
Every single command has a minimum set of arguments required - 3:
usernamepasswordcommandExample:myusername|=|mypass|=|get-players.
To find all the supported commands see the list below.
-
messages- Returns all messages in the message buffer. Buffer is reset after each print.- Returns: All the current messages in the buffer.
- Example:
myusername|=|mypass|=|messages
-
ban|=|<steam user ID>- Bans a user from the server.- Returns: Boolean if it was successful.
- Example:
myusername|=|mypass|=|ban|=|76561198054743530
-
execute|=|<code>- Executes code on the server.- Note: Use single qoutes (
') or escape with double qoutes (") your code. - Returns: Anything that the executed code returns.
- Example:
myusername|=|mypass|=|execute|=|diag_log 'hello world!'
- Note: Use single qoutes (
-
get-players- Returns all players on the server.- Note: It only returns players that are in-game, the lobby doesn't return them.
- Returns: Array in the format of -
[[<nickname>, <steam uid>, <is Curator>], [<nickname> ...]] - Example:
myusername|=|mypass|=|get-players
-
kick|=|<steam user ID>|=|<message>- Kicks a player from the server with an optional message.- Returns: Boolean if it was successful.
- Example:
myusername|=|mypass|=|kick|=|76561198054743530myusername|=|mypass|=|kick|=|76561198054743530|=|Very bad player!
-
pm|=|<steam user ID>|=|<message>- Sends a direct message to a single player.- Returns: Nothing.
- Example:
myusername|=|mypass|=|pm|=|76561198054743530|=|Stop doing that!
-
say|=|<message>- Sends a global message to all players.- Returns: Nothing.
- Example:
myusername|=|mypass|=|say|=|Server is shutting down!
For development purposes:
cp .env.example .env- Configure the
.envfile cargo buildbash ./build.sh
cp .env.example .env- Configure the
.envfile sudo dpkg --add-architecture i386;sudo apt updatesudo apt install libssl-devsudo apt install libssl-dev:i386sudo apt install gcc-multilibrustup target install i686-unknown-linux-gnubash ./build.sh
If you discover any security related issues, please email security@garkaklis.com instead of using the issue tracker.
The GNU General Public License v3.0 (GPLv3). Please see License File for more information.