Skip to content
This repository has been archived by the owner on Sep 10, 2018. It is now read-only.

Fankserver/ArmA3-RemoteCall

Repository files navigation

ArmA3-RemoteCall CC-BY-SA 4.0

ArmA3-RemoteCall allows server admins to execute arbitrary script code (*.sqf) without restarting the game server. The protocol is designed in such a way that it allows multiple concurrent clients.

  • Copyright 2014 Florian "Fank" Kinder, Niko "nano2k" Bochan
  • Licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License (CC-BY-SA 4.0)

Usage

  • Copy the remote_call.dll in your ArmA addon folder (for example @A3RemoteCall).
  • Add the remote_call.fsm to your mission, and add the following lines to your initServer.sqf or init.sqf (this should be called server side only!):
_remoteCall = [] execFSM "remote_call.fsm";

Protocol specification

Version 1

General Information

  • TCP/IP
  • Port: adjustable in config file
  • Server means the extension.dll
  • Client is the Remote-Client

Packet types

Header:

'R'(0x52) 'C'(0x43) | 1 Byte Version | 0xFF

  1. Handshake (Server <- Client): HEADER + | 0x00 | password

  2. Handshake Response (Server -> Client): HEADER + | 0x01 | (0x00 (ok) | 0x01 (wrong password) | 0x02 (wrong version) | 0x03 (wrong command))

  3. Query content length (Server <- Client); HEADER + | 0x10 | 2 byte length

  4. Query content length response (Server -> Client): HEADER + | 0x11 | (0x00 (ok) | 0x01 (too short) | 0x02 (too long))

  5. Query (Server <- Client): HEADER + | 0x12 | content

  6. Query Response (Server -> Client): HEADER + | 0x13 | 2 byte query id

  7. Query Result Response (Server -> Client): HEADER + | 0x14 | 2 byte query id | content

Supported Client Libraries

About

Execute SQF code remote via TCP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages