BattlEye: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
(20 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Introduction==
{{TOC|side|0.9}}
[http://www.battleye.com BattlEye website]<br>
[http://www.battleye.com BattlEye website]<br>
Abbreviation: '''BE'''
Abbreviation: '''BE'''
Line 5: Line 5:
BattlEye is an anti-cheat tool created by ''BattlEye Innovations''. It is currently included in Bohemia Interactive's ''Arma'', ''Arma 2'' and ''Arma 3'' series as an optional installation and server configuration option.
BattlEye is an anti-cheat tool created by ''BattlEye Innovations''. It is currently included in Bohemia Interactive's ''Arma'', ''Arma 2'' and ''Arma 3'' series as an optional installation and server configuration option.


It works by scanning connected clients for various cheat an exploit methods and upon detection, disconnecting (''kicking'') the offending clients. You can find more details about the ''BE'' cheat scanning engine on the [http://www.battleye.com/info.html info page].
BattlEye works by scanning connected clients for various cheat and exploit methods. Upon detection, BattlEye disconnects (''kicking'') the offending clients. You can find more details about the ''BE'' cheat scanning engine on the [https://www.battleye.com/about/ about page].
 
 
== Privacy ==


==Privacy==
'''BattlEye will never violate your privacy in any way'''. The EULA clearly states this when installing BattlEye. Any other statements found anywhere else are superseded by the EULA.
'''BattlEye will never violate your privacy in any way'''. The EULA clearly states this when installing BattlEye. Any other statements found anywhere else are superseded by the EULA.


BattlEye always has and will secure the user's privacy and protect against any sort of software exploitation from outside.  
BattlEye always has and will secure the user's privacy and protect against any sort of software exploitation from outside.  


==Setup==
 
===Latest version===
== Setup ==
 
=== Latest version ===
 
You can find out what the latest version is by visiting the [http://www.battleye.com/index.html news section].
You can find out what the latest version is by visiting the [http://www.battleye.com/index.html news section].


===Installation===
=== Installation ===
 
Installation of the BattlEye client is an option during the initial game installation process.
Installation of the BattlEye client is an option during the initial game installation process.


BE updates itself automatically during a running MP session with internet access. However in the case of troubles use the following options:
BE updates itself automatically during a running MP session with internet access. However in the case of troubles use the following options:


 
==== Manual BEClient.dll download ====
'''''a)'''''
====Manual BEClient.dll download====
# Download the latest ''BEClient.dll'' from the [http://www.battleye.com/download.html download section]. Make sure to download the ''BEClient.dll'' for the your series of Arma:
# Download the latest ''BEClient.dll'' from the [http://www.battleye.com/download.html download section]. Make sure to download the ''BEClient.dll'' for the your series of Arma:
#: ''Arma, Arma 2, Operation Arrowhead, Arma 3,'' &hellip;
#: ''Arma, Arma 2, Operation Arrowhead, Arma 3,'' &hellip;
# Now you need to put ''BEClient.dll'' to the right location:
# Now you need to put ''BEClient.dll'' to the right location:
#; ''Windows 7''
#; ''Windows 7''
#: <tt>C:\Users\%USERNAME%\AppData\Local\ArmA 2 OA\BattlEye\</tt>
#: {{hl|C:\Users\%USERNAME%\AppData\Local\Arma 2 OA\BattlEye\}}
#; ''Windows XP''
#; ''Windows XP''
#: <tt>C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\ARMA 2 OA\BattlEye\</tt>
#: {{hl|C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\ARMA 2 OA\BattlEye\}}
#; ''STEAM''
#; ''STEAM''
#: <tt>C:\Program Files (x86)\Steam\SteamApps\common\ARMA 2 Operation Arrowhead\Expansion\BattlEye\</tt>
#: {{hl|C:\Program Files (x86)\Steam\SteamApps\common\ARMA 2 Operation Arrowhead\Expansion\BattlEye\}}


{{Important|NOTE: You need to use the right subfolder for your game version (Arma/Arma 2/Arma 2 OA/Arma 3&hellip;).}}
{{Feature | important | You need to use the right subfolder for your game version (Arma/Arma 2/Arma 2 OA/Arma 3&hellip;).}}


'''''b)'''''
==== Automated BEClient.dll installer ====
====Automated BEClient.dll installer====
# Download the {{ExternalLink|link= http://forums.bistudio.com/showthread.php?t=109915|text= installer}} for your series of Arma.
# Download the [http://forums.bistudio.com/showthread.php?t=109915 installer] for your series of Arma.
# Next run it and use '''''run as Administrator''''' (select file by left mouse click, right mouse click, select the '''''run as''''' option).
# Next run it and use '''''run as Administrator''''' (select file by left mouse click, right mouse click, select the '''''run as''''' option).
::It is a very fast '''silent-installer'''. This means normally you will not notice anything - no application widow, no progress bar, no completion info. '''Only if there are issues, it will speak up'''.
::It is a very fast '''silent-installer'''. This means normally you will not notice anything - no application widow, no progress bar, no completion info. '''Only if there are issues, it will speak up'''.
Line 49: Line 52:
You can verify if it was installed by checking the software uninstall list. You find it under "''BattlEye for OA uninstall''".
You can verify if it was installed by checking the software uninstall list. You find it under "''BattlEye for OA uninstall''".


=== Installation on Linux servers ===


==== Installation on Linux servers ====
First of all, set up a working ''Arma 2'' or ''Arma 2:OA'' server. When your Linux Arma 2 server works as it should, you can follow these instructions to install and enable BattlEye.
First of all, set up a working ''Arma 2'' or ''Arma 2:OA'' server. When your Linux Arma 2 server works as it should, you can follow these instructions to install and enable BattlEye.


# Log on to your Linux server with '''''SSH''''' or open a new '''''terminal emulator window'''''.
# Log on to your Linux server with '''''SSH''''' or open a new '''''terminal emulator window'''''.
# Change directory to where you have the Arma 2 server files installed. In this example we'll use "<tt>''/home/arma2/arma2server''</tt>" as the server's installation directory:
# Change directory to where you have the Arma 2 server files installed. In this example we'll use "{{hl|''/home/arma2/arma2server''}}" as the server's installation directory:
#: <tt>cd /home/arma2/arma2server</tt>
#: {{hl|cd /home/arma2/arma2server}}
# Next, create a directory for the BattlEye server.
# Next, create a directory for the BattlEye server.
#* For an Arma 2 server, the path should be:
#* For an Arma 2 server, the path should be:
#:: <tt>./battleye</tt>
#:: {{hl|./battleye}}
#* Whilst for an Arma 2: Operation Arrowhead server it's:
#* Whilst for an Arma 2: Operation Arrowhead server it is:
#:: <tt>./expansion/battleye</tt>:
#:: {{hl|./expansion/battleye}}:
#* ''i.e.'' <tt>mkdir battleye</tt> '''or''' <tt>mkdir expansion/battleye</tt>
#* ''i.e.'' {{hl|mkdir battleye}} '''or''' {{hl|mkdir expansion/battleye}}
# Download the correct ''BE'' server from the BattlEye [http://www.battleye.com/download.html website] - there's one file for Arma 2 and another for Arma 2:OA. You can use a ''command-line'' download tool such as "''wget''" or "''curl''" as well:
# Download the correct ''BE'' server from the BattlEye [http://www.battleye.com/download.html website] - there's one file for Arma 2 and another for Arma 2:OA. You can use a ''command-line'' download tool such as "''wget''" or "''curl''" as well:
#* For Arma 2, use:
#* For Arma 2, use:
#:: <tt>wget <nowiki>http://www.battleye.com/downloads/arma2/beserver.so -O battleye/beserver.so</nowiki></tt>
#:: {{hl|wget <nowiki>http://www.battleye.com/downloads/arma2/beserver.so -O battleye/beserver.so</nowiki>}}
#* Whilst for Arma 2:OA it's:
#* Whilst for Arma 2:OA it is:
#:: <tt>wget <nowiki>http://www.battleye.com/downloads/arma2oa/beserver.so -O expansion/battleye/beserver.so</nowiki></tt>
#:: {{hl|wget <nowiki>http://www.battleye.com/downloads/arma2oa/beserver.so -O expansion/battleye/beserver.so</nowiki>}}
# You now have the BE server component installed. Enable it in your game server's [[server.cfg| config]] with "<tt>''BattlEye=1;''</tt>".
# You now have the BE server component installed. Enable it in your game server's [[server.cfg| config]] with "{{hl|c= ''BattlEye=1;''}}".
# Start the server again and watch the log file (usually "<tt>''log.2302.txt''</tt>"). With BattlEye enabled, you'll see an extra line of output when the server is started. For example:
# Start the server again and watch the log file (usually "{{hl|''log.2302.txt''}}"). With BattlEye enabled, you'll see an extra line of output when the server is started. For example:
#: <tt>14:20:22 BattlEye Server: Initialized (v1.122)</tt>
#: {{hl|14:20:22 BattlEye Server: Initialized (v1.122)}}
# '''''(Optional)''''' In order to administrate your BE server remotely, you'll need to create a configuration file for the BE server. It should be named "<tt>''beserver.cfg''</tt>" and placed in the BE directory you just created.<br>We'll create one and set the admin password to "''mypassword''". (You should change the password used in this example to something better).
# '''''(Optional)''''' In order to administrate your BE server remotely, you'll need to create a configuration file for the BE server. It should be named "{{hl|''beserver.cfg''}}" and placed in the BE directory you just created.<br>We'll create one and set the admin password to "''mypassword''". (You should change the password used in this example to something better).
#* For an Arma 2 server, run:
#* For an Arma 2 server, run:
#:: <tt>echo "RConPassword mypassword" &gt; ./battleye/beserver.cfg</tt>
#:: {{hl|echo "RConPassword mypassword" &gt; ./battleye/beserver.cfg}}
#* For an Arma 2:OA server, do this:
#* For an Arma 2:OA server, do this:
#:: <tt>echo "RConPassword mypassword" &gt; ./expansion/battleye/beserver.cfg</tt>
#:: {{hl|echo "RConPassword mypassword" &gt; ./expansion/battleye/beserver.cfg}}
#* For an Arma 3 server, do this:
#:: {{hl|echo "RConPassword mypassword" &gt; ./battleye/launch/beserver.cfg}}
#*For more details, see the section below on [[#RCon|RCon]].
#*For more details, see the section below on [[#RCon|RCon]].


===Configuration===
=== Configuration ===
====Client====
 
==== Client ====
Apart from installation there is no additional configuration required for game clients.
Apart from installation there is no additional configuration required for game clients.


====Server====
==== Server ====
Refer to the [[server.cfg]] section on how to enable BattlEye on a game server.
Refer to the [[server.cfg]] section on how to enable BattlEye on a game server.


{{Important|NOTE: If you run multiple game servers on one machine, you need to specify separate BE paths for each in the [[Arma2:_Startup_Parameters#Server_Options|server startup parameters]].}}
{{Feature | important | If you run multiple game servers on one machine, you need to specify separate BE paths for each in the [[Arma 2: Startup Parameters#Server_Options|server startup parameters]].}}
==64-bit support==
 
 
== 64-bit support ==


The 64-bit version of Arma 3 uses 64-bit dlls: BEClient_x64.dll and BEServer_x64.dll, as well as BEServer_x64.cfg for configuration.
The 64-bit version of Arma 3 uses 64-bit dlls: BEClient_x64.dll and BEServer_x64.dll, as well as BEServer_x64.cfg for configuration.
 
==BE commands==


{{Important|NOTE: The #beserver command has been disabled for now, due to the game admin hijacking hack. <br>You need to use the BE RCon tool to ban players from your server.}}


{{Important|NOTE: The commands are case insensitive. In other words you can write them all lower case.}}
== BE commands ==
 
{{Feature | important | The #beserver command has been disabled for now, due to the game admin hijacking hack. <br>You need to use the BE RCon tool to ban players from your server.}}
 
{{Feature | important | The commands are case insensitive. In other words you can write them all lower case.}}
 
=== GUID banning ===


===GUID banning===
'''''BE''''' can permanently or temporarily ban players from your server. The advantage over Arma 2's ''PID'' banning is that the BE ''GUID'' cannot be hacked/changed client-side, therefore the only way for a player to get unbanned is to buy a new ''game/cd-key''.
'''''BE''''' can permanently or temporarily ban players from your server. The advantage over Arma 2's ''PID'' banning is that the BE ''GUID'' cannot be hacked/changed client-side, therefore the only way for a player to get unbanned is to buy a new ''game/cd-key''.


The following commands are available to manage ''GUID'' bans:
The following commands are available to manage ''GUID'' bans:


{| class="bikitable"
{| class="wikitable"
! Command !! Description
! Command !! Description
|-
|-
| <tt>loadBans</tt> || (Re)load the BE ban list from bans.txt.
| {{hl|loadBans}} || (Re)load the BE ban list from bans.txt.
|-
|-
| <tt>bans</tt> || Show a list of all BE server bans.
| {{hl|bans}} || Show a list of all BE server bans.
|-
|-
| <tt>ban</tt> ''[player #] [time in minutes] [reason]''|| Ban a player's BE GUID from the server. If time is not specified or <tt>0</tt>, the ban will be permanent; if reason is not specified the player will be kicked with "Banned".
| {{hl|ban}} ''[player #] [time in minutes] [reason]''|| Ban a player's BE GUID from the server. If time is not specified or {{hl|0}}, the ban will be permanent; if reason is not specified the player will be kicked with "Banned".
|-
|-
| <tt>addBan</tt> ''[GUID] [time in minutes] [reason]'' || Same as "ban", but allows to ban a player that is not currently on the server.
| {{hl|addBan}} ''[GUID] [time in minutes] [reason]'' || Same as "ban", but allows to ban a player that is not currently on the server.
|-
|-
| <tt>removeBan</tt> ''[ban #]'' || Remove ban (get the ban # from the bans command).
| {{hl|removeBan}} ''[ban #]'' || Remove ban (get the ban # from the bans command).
|-
|-
| <tt>writeBans</tt> || removes expired bans from bans file
| {{hl|writeBans}} || removes expired bans from bans file
|}
|}


You can either enter them via BE [[#RCon|RCon]] or in-game using "<tt>''#beserver [command]''</tt>" (if logged in as admin). For example:
You can either enter them via BE [[#RCon|RCon]] or in-game using "{{hl|''#beserver [command]''}}" (if logged in as admin). For example:
:<tt>#beserver ban 11</tt>
:{{hl|#beserver ban 11}}


Keep in mind that the "<tt>''player #''</tt>" used here, is the one listed by BE's "''players''" command.  
Keep in mind that the "{{hl|''player #''}}" used here is the one listed by BE's "''players''" command.  


BattlEye ''GUID'' and ''IP'' bans will now both be loaded from and saved to "<tt>''bans.txt''</tt>" (no longer "<tt>''guidbans.txt''</tt>" and "<tt>''ipbans.txt''</tt>") in your server's BE working directory.<br>
BattlEye ''GUID'' and ''IP'' bans will now both be loaded from and saved to "{{hl|''bans.txt''}}" (no longer "{{hl|''guidbans.txt''}}" and "{{hl|''ipbans.txt''}}") in your server's BE working directory.<br>
Timed bans're saved into bans.txt as timestamp of end-date(unixformat)
Timed bans're saved into bans.txt as timestamp of end-date(unixformat)


==RCon==
;Latest version:<tt>b0.94</tt>.


Since BattlEye server version <tt>1.102</tt> you can control your Arma game server remotely (without having to be in-game) using the ''BattlEye RCon tool''.
== RCon ==
 
; Latest version:
: {{hl|b0.94}}.
 
Since BattlEye server version {{hl|1.102}} you can control your Arma game server remotely (without having to be in-game) using the ''BattlEye RCon tool''.


# Download the [http://www.battleye.com/downloads/BERCon.exe BattlEye RCon tool (BERCon.exe)].
# Download the [http://www.battleye.com/downloads/BERCon.exe BattlEye RCon tool (BERCon.exe)].
# Create a file called <tt>beserver.cfg</tt> (or <tt>beserver_x64.cfg</tt> for 64-bit server) in '''''BattlEye working directory''''' on the server.
# Create a file called {{hl|beserver.cfg}} (or {{hl|beserver_x64.cfg}} for 64-bit server) in '''''BattlEye working directory''''' on the server.
# Set private ''RCon password'' in the <tt>beserver.cfg</tt> (or <tt>beserver_x64.cfg</tt> for 64-bit server) via setting "RConPassword"
# Set private ''RCon password'' in the {{hl|beserver.cfg}} (or {{hl|beserver_x64.cfg}} for 64-bit server) via setting "RConPassword"
# Set ''custom BattlEye's RCON port'' defined in <tt>beserver.cfg</tt> (or <tt>beserver_x64.cfg</tt> for 64-bit server) via setting "RConPort" (''for Arma 3 update 1.58.135656 and newer builds'')
# Set ''custom BattlEye's RCON port'' defined in {{hl|beserver.cfg}} (or {{hl|beserver_x64.cfg}} for 64-bit server) via setting "RConPort" (''for Arma 3 update 1.58.135656 and newer builds'')
# Set ''optional BattlEye's RCON IP'' defined in <tt>beserver.cfg</tt> (or <tt>beserver_x64.cfg</tt> for 64-bit server) via setting "RConIP" (''for Arma 3 update 1.58.135656 and newer builds'')
# Set ''optional BattlEye's RCON IP'' defined in {{hl|beserver.cfg}} (or {{hl|beserver_x64.cfg}} for 64-bit server) via setting "RConIP" (''for Arma 3 update 1.58.135656 and newer builds'')
# Start the RCon tool binary and connect to server with its ''IP'', ''port'' and ''RCon password''.
# Start the RCon tool binary and connect to server with its ''IP'', ''port'' and ''RCon password''.


RconPort must avoid reserved ARMA3server port range (gameport *+0,+1,+2,+3))<br>
RconPort must avoid reserved ARMA3server port range (gameport *+0,+1,+2,+3,+4))<br>
default reserved ports are 2302 - 2305 (to clarify the reserved ports can't be used for BattlEye's RCON).<br>
default reserved ports are 2302 - 2306 (to clarify the reserved ports can't be used for BattlEye's RCON).<br>
example for default server setting, RconPort 2301<br>
example for default server setting, RconPort 2301<br>


Line 144: Line 157:
setting it to e.g. external IP will prevent it to respond on localhost 127.0.0.1
setting it to e.g. external IP will prevent it to respond on localhost 127.0.0.1


===BattlEye working directory===
=== BattlEye working directory ===
 
The BattlEye working directory is a folder in one of three places:
The BattlEye working directory is a folder in one of three places:


# A folder named "''BattlEye''" within the [[#Arma 2 application data folder|Arma 2 application data folder]].
# A folder named "''BattlEye''" within the [[#Arma 2 application data folder|Arma 2 application data folder]].
# A folder named "''BattlEye''" in the path given by the "<tt>''-profiles''</tt>" startup parameter.
# A folder named "''BattlEye''" in the path given by the "{{hl|''-profiles''}}" startup parameter.
# In a folder given by the "<tt>''-bepath''</tt>" startup parameter.
# In a folder given by the "{{hl|''-bepath''}}" startup parameter.


{{Important|NOTE: Even with custom locations you will still need the BattlEye ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}
{{Feature | important | Even with custom locations you will still need the BattlEye ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}


====The Arma 2 application data folder====
==== The Arma 2 application data folder ====
In ''Windows Vista, 7 and 2008'', that's the path given by "<tt>''%LOCALAPPDATA%\ArmA 2''</tt>" for Arma 2 and "<tt>''%LOCALAPPDATA%\ArmA 2 OA''</tt>" for the Arrowhead dedi. A typical value is:
In ''Windows Vista, 7 and 2008'', that's the path given by "{{hl|''%LOCALAPPDATA%\Arma 2''}}" for Arma 2 and "{{hl|''%LOCALAPPDATA%\Arma 2 OA''}}" for the Arrowhead dedi. A typical value is:
: <tt>C:\Users\''username''\AppData\Local\ArmA 2</tt>
: {{hl|C:\Users\''username''\AppData\Local\Arma 2}}


In ''Windows XP and 2003'', the application data folder is "<tt>''%USERPROFILE%\Local Settings\Application Data\ArmA 2''</tt>". A typical example is:
In ''Windows XP and 2003'', the application data folder is "{{hl|''%USERPROFILE%\Local Settings\Application Data\Arma 2''}}". A typical example is:
: <tt>C:\Documents and Settings\''username''\Local Settings\Application data\ArmA 2</tt>
: {{hl|C:\Documents and Settings\''username''\Local Settings\Application data\Arma 2}}


These locations are the default and are used, if you launch the dedicated server '''without''' using either the "<tt>''-profiles''</tt>" or "<tt>''-bepath''</tt>" launch parameters.
These locations are the default and are used, if you launch the dedicated server '''without''' using either the "{{hl|''-profiles''}}" or "{{hl|''-bepath''}}" launch parameters.


====The -profiles location====
==== The -profiles location ====
The path given as the "<tt>''-profiles=...''</tt>" startup parameter used when launching the Arma 2 dedi. If, for example, you would launch the Arma 2:OA dedicated server using:
The path given as the "{{hl|c= ''-profiles=...''}}" startup parameter used when launching the Arma 2 dedi. If, for example, you would launch the Arma 2:OA dedicated server using:
: <tt>arma2oaserver.exe -profiles=D:\Games\ArmA2</tt>
: {{hl|c= arma2oaserver.exe -profiles=D:\Games\ArmA2}}
then the BattlEye working directory would be:
then the BattlEye working directory would be:
: <tt>D:\Games\ArmA2\BattlEye</tt>
: {{hl|D:\Games\ArmA2\BattlEye}}


{{Important|NOTE: Even if using custom locations you will still need the ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}
{{Feature | important | Even if using custom locations you will still need the ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}


====The -bepath location====
==== The -bepath location ====
You can also specify the BattlEye working directory directly using the startup parameter "<tt>''-bepath''</tt>". Example:
You can also specify the BattlEye working directory directly using the startup parameter "{{hl|''-bepath''}}". Example:
: <tt>arma2oaserver.exe -bepath=D:\MyBattlEye</tt>
: {{hl|c= arma2oaserver.exe -bepath=D:\MyBattlEye}}
In this case, the BattlEye working directory will be:
In this case, the BattlEye working directory will be:
: <tt>D:\MyBattlEye</tt>
: {{hl|D:\MyBattlEye}}
If path contains spaces, encase everything in quotes:
If path contains spaces, encase everything in quotes:
: <tt>arma2oaserver.exe "-bepath=D:\My BattlEye"</tt>
: {{hl|c= arma2oaserver.exe "-bepath=D:\My BattlEye"}}


{{Important|NOTE: Even if using custom locations you will still need the ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}
{{Feature | important | Even if using custom locations you will still need the ''.dll's'' or ''.so's'' '''ALSO in the default location''' ("<''arma2''>\BattlEye" for Arma 2 or "<''arma2''>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.}}


====Full examples====
==== Full examples ====
Here are examples of the full paths to the "<tt>''beserver.cfg''</tt>" file for a few different cases.
Here are examples of the full paths to the "{{hl|''beserver.cfg''}}" file for a few different cases.
* The examples assume that the username of the user that will run the servers is "''jimbob''".
* The examples assume that the username of the user that will run the servers is "''jimbob''".
* "''Arma 2''" means running the "<tt>''arma2server.exe''</tt>" whereas "''Arma 2:OA''" means you're launching "<tt>''arma2oaserver.exe''</tt>".
* "''Arma 2''" means running the "{{hl|''arma2server.exe''}}" whereas "''Arma 2:OA''" means you're launching "{{hl|''arma2oaserver.exe''}}".


{| class="bikitable"
{| class="wikitable"
! To Launch !! Follow Path
! To Launch !! Follow Path
|-
|-
| Arma 2, Windows 7/Vista/2008, default: || C:\Users\jimbob\AppData\Local\ArmA 2\BattlEye\beserver.cfg
| Arma 2, Windows 7/Vista/2008, default: || C:\Users\jimbob\AppData\Local\Arma 2\BattlEye\beserver.cfg
|-
|-
| Arma 2:OA, Windows 7/Vista/2008, default: || C:\Users\jimbob\AppData\Local\ArmA 2 OA\BattlEye\beserver.cfg
| Arma 2:OA, Windows 7/Vista/2008, default: || C:\Users\jimbob\AppData\Local\Arma 2 OA\BattlEye\beserver.cfg
|-
|-
| Arma 2, Windows XP, default: || C:\Documents and Settings\jimbob\Local Settings\Application data\ArmA 2\BattlEye\beserver.cfg
| Arma 2, Windows XP, default: || C:\Documents and Settings\jimbob\Local Settings\Application data\Arma 2\BattlEye\beserver.cfg
|-
|-
| Arma 2:OA, Windows XP, default: || C:\Documents and Settings\jimbob\Local Settings\Application data\ArmA 2 OA\BattlEye\beserver.cfg
| Arma 2:OA, Windows XP, default: || C:\Documents and Settings\jimbob\Local Settings\Application data\Arma 2 OA\BattlEye\beserver.cfg
|-
|-
| Any Arma 2, any Windows, ''-profiles=D:\profiles'': || D:\profiles\BattlEye\beserver.cfg
| Any Arma 2, any Windows, ''-profiles=D:\profiles'': || D:\profiles\BattlEye\beserver.cfg
|}
|}


====Linux ====
==== Linux ====
For Linux dedicated servers, the default locations are:
For Linux dedicated servers, the default locations are:


* For the Arma 2 dedi, it's "<tt>''./battleye''</tt>"
* For the Arma 2 dedi, it is "{{hl|''./battleye''}}"
* For the Arma 2:OA dedi, it's "<tt>''./expansion/battleye''</tt>"
* For the Arma 2:OA dedi, it is "{{hl|''./expansion/battleye''}}"
 
=== Sample beserver.cfg ===


===Sample beserver.cfg===
<pre>RConPassword xyzxyz
<pre>RConPassword xyzxyz
MaxPing 200</pre>
MaxPing 200</pre>


===RCon commands===
=== RCon commands ===
{{Important|NOTE: The commands are case insensitive. In other words you can write them all lower case.}}


{| class="bikitable"
{{Feature | important | The commands are case insensitive. In other words you can write them all lower case.}}
 
{| class="wikitable"
! Command !! Description
! Command !! Description
|-
|-
| <tt>loadScripts</tt> || loads the "<tt>''scripts.txt''</tt>" file without the need to restart the server.
| {{hl|loadScripts}} || loads the "{{hl|''scripts.txt''}}" file without the need to restart the server.
|-
|-
| <tt>missions</tt> || Returns a list of the available missions on the server.
| {{hl|missions}} || Returns a list of the available missions on the server.
|-
|-
| <tt>players</tt> || Displays a list of the players on the server including BE GUIDs and pings.
| {{hl|players}} || Displays a list of the players on the server including BE GUIDs and pings.
|-
|-
| <tt>kick</tt> ''[player#]'' || Kicks a player. His <tt>#</tt> can be found in the player list using the "<tt>''players''</tt>" command.
| {{hl|kick}} ''[player#]'' || Kicks a player. His {{hl|#}} can be found in the player list using the "{{hl|''players''}}" command.
|-
|-
| <tt>RConPassword</tt> ''[password]'' || Changes the RCon password.
| {{hl|RConPassword}} ''[password]'' || Changes the RCon password.
|-
|-
| <tt>MaxPing</tt> ''[ping]'' || Changes the ''MaxPing'' value. If a player has a higher ping, he will be kicked from the server.
| {{hl|MaxPing}} ''[ping]'' || Changes the ''MaxPing'' value. If a player has a higher ping, he will be kicked from the server.
|-
|-
| <tt>logout</tt> || Logout from current server, but do not exit the program.
| {{hl|logout}} || Logout from current server, but do not exit the program.
|-
|-
| <tt>Exit</tt> || Closes the connection.
| {{hl|Exit}} || Closes the connection.
|-
|-
| <tt>Say</tt> ''[player#]'' || Say something to ''player #''. <tt>-1</tt> equals '''all players''' on server (''e.g.'' "<tt>Say -1 Hello World!</tt>")
| {{hl|Say}} ''[player#]'' || Say something to ''player #''. {{hl|-1}} equals '''all players''' on server (''e.g.'' "{{hl|Say -1 Hello World!}}")
|}
|}


;Server commands are passed directly to server:<tt>''#mission [missionName]''</tt> - Loads the given mission on the server.
;Server commands are passed directly to server:{{hl|''#mission [missionName]''}} - Loads the given mission on the server.


{{Important|NOTE: Look at the [[BattlEye#GUID_banning|GUID banning]] section for additional commands.}}
{{Feature | important | Look at the [[BattlEye#GUID_banning|GUID banning]] section for additional commands.}}
 
 
== Support ==


==Support==
* [http://www.battleye.com/support.html BE Support page with contact details]
* [http://www.battleye.com/support.html BE Support page with contact details]
* [http://www.battleye.com/support.html Frequently Asked Questions:]
* [http://www.battleye.com/support.html Frequently Asked Questions:]
Line 247: Line 265:
** I am running multiple dedicated servers from one installation. Is there anything I have to keep in mind regarding BattlEye?
** I am running multiple dedicated servers from one installation. Is there anything I have to keep in mind regarding BattlEye?
* Official BattlEye threads in the BI forum
* Official BattlEye threads in the BI forum
** [http://forums.bistudio.com/showthread.php?t=109915 BattlEye Installer (A2:OA)]
** {{ExternalLink|link= http://forums.bistudio.com/showthread.php?t=109915|text= BattlEye Installer (A2:OA)}}
** [http://forums.bistudio.com/showthread.php?t=95454 RCon server administration]
** {{ExternalLink|link= http://forums.bistudio.com/showthread.php?t=95454|text= RCon server administration}}
** [http://forums.bistudio.com/showthread.php?t=96228 BattlEye GUID banning]
** {{ExternalLink|link= http://forums.bistudio.com/showthread.php?t=96228|text= BattlEye GUID banning}}
** [http://forums.bistudio.com/showthread.php?131759-New-BattlEye-features-for-server-admins New BattlEye features for server admins]
** {{ExternalLink|link= http://forums.bistudio.com/showthread.php?131759-New-BattlEye-features-for-server-admins|text= New BattlEye features for server admins}}
** [http://forums.bistudio.com/showthread.php?104242-Explanation-Why-does-BattlEye-need-administrator-privileges-now Explanation: Why does BattlEye need administrator privileges now?]
** {{ExternalLink|link= http://forums.bistudio.com/showthread.php?104242-Explanation-Why-does-BattlEye-need-administrator-privileges-now|text= Explanation: Why does BattlEye need administrator privileges now?}}
 


[[Category:ArmA: Multiplayer]]
{{GameCategory|arma1|Multiplayer}}
[[Category:{{arma2}}: Multiplayer]]
[[Category:{{arma3}}: Multiplayer]]

Revision as of 01:13, 16 November 2021

BattlEye website
Abbreviation: BE

BattlEye is an anti-cheat tool created by BattlEye Innovations. It is currently included in Bohemia Interactive's Arma, Arma 2 and Arma 3 series as an optional installation and server configuration option.

BattlEye works by scanning connected clients for various cheat and exploit methods. Upon detection, BattlEye disconnects (kicking) the offending clients. You can find more details about the BE cheat scanning engine on the about page.


Privacy

BattlEye will never violate your privacy in any way. The EULA clearly states this when installing BattlEye. Any other statements found anywhere else are superseded by the EULA.

BattlEye always has and will secure the user's privacy and protect against any sort of software exploitation from outside.


Setup

Latest version

You can find out what the latest version is by visiting the news section.

Installation

Installation of the BattlEye client is an option during the initial game installation process.

BE updates itself automatically during a running MP session with internet access. However in the case of troubles use the following options:

Manual BEClient.dll download

  1. Download the latest BEClient.dll from the download section. Make sure to download the BEClient.dll for the your series of Arma:
    Arma, Arma 2, Operation Arrowhead, Arma 3,
  2. Now you need to put BEClient.dll to the right location:
    Windows 7
    C:\Users\%USERNAME%\AppData\Local\Arma 2 OA\BattlEye\
    Windows XP
    C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\ARMA 2 OA\BattlEye\
    STEAM
    C:\Program Files (x86)\Steam\SteamApps\common\ARMA 2 Operation Arrowhead\Expansion\BattlEye\
You need to use the right subfolder for your game version (Arma/Arma 2/Arma 2 OA/Arma 3…).

Automated BEClient.dll installer

  1. Download the installer for your series of Arma.
  2. Next run it and use run as Administrator (select file by left mouse click, right mouse click, select the run as option).
It is a very fast silent-installer. This means normally you will not notice anything - no application widow, no progress bar, no completion info. Only if there are issues, it will speak up.

The automated installer looks for the BEClient.dll on your computer:

  1. If your BEClient.dll is same or newer, then installer does nothing,
  2. If your BEClient.dll is older, it updates the BEClient.dll version,
  3. If the BEClient.dll is not found, it will install the latest BEClient.dll.

You can verify if it was installed by checking the software uninstall list. You find it under "BattlEye for OA uninstall".

Installation on Linux servers

First of all, set up a working Arma 2 or Arma 2:OA server. When your Linux Arma 2 server works as it should, you can follow these instructions to install and enable BattlEye.

  1. Log on to your Linux server with SSH or open a new terminal emulator window.
  2. Change directory to where you have the Arma 2 server files installed. In this example we'll use "/home/arma2/arma2server" as the server's installation directory:
    cd /home/arma2/arma2server
  3. Next, create a directory for the BattlEye server.
    • For an Arma 2 server, the path should be:
    ./battleye
    • Whilst for an Arma 2: Operation Arrowhead server it is:
    ./expansion/battleye:
    • i.e. mkdir battleye or mkdir expansion/battleye
  4. Download the correct BE server from the BattlEye website - there's one file for Arma 2 and another for Arma 2:OA. You can use a command-line download tool such as "wget" or "curl" as well:
    • For Arma 2, use:
    wget http://www.battleye.com/downloads/arma2/beserver.so -O battleye/beserver.so
    • Whilst for Arma 2:OA it is:
    wget http://www.battleye.com/downloads/arma2oa/beserver.so -O expansion/battleye/beserver.so
  5. You now have the BE server component installed. Enable it in your game server's config with "BattlEye=1;".
  6. Start the server again and watch the log file (usually "log.2302.txt"). With BattlEye enabled, you'll see an extra line of output when the server is started. For example:
    14:20:22 BattlEye Server: Initialized (v1.122)
  7. (Optional) In order to administrate your BE server remotely, you'll need to create a configuration file for the BE server. It should be named "beserver.cfg" and placed in the BE directory you just created.
    We'll create one and set the admin password to "mypassword". (You should change the password used in this example to something better).
    • For an Arma 2 server, run:
    echo "RConPassword mypassword" > ./battleye/beserver.cfg
    • For an Arma 2:OA server, do this:
    echo "RConPassword mypassword" > ./expansion/battleye/beserver.cfg
    • For an Arma 3 server, do this:
    echo "RConPassword mypassword" > ./battleye/launch/beserver.cfg
    • For more details, see the section below on RCon.

Configuration

Client

Apart from installation there is no additional configuration required for game clients.

Server

Refer to the server.cfg section on how to enable BattlEye on a game server.

If you run multiple game servers on one machine, you need to specify separate BE paths for each in the server startup parameters.


64-bit support

The 64-bit version of Arma 3 uses 64-bit dlls: BEClient_x64.dll and BEServer_x64.dll, as well as BEServer_x64.cfg for configuration.


BE commands

The #beserver command has been disabled for now, due to the game admin hijacking hack.
You need to use the BE RCon tool to ban players from your server.
The commands are case insensitive. In other words you can write them all lower case.

GUID banning

BE can permanently or temporarily ban players from your server. The advantage over Arma 2's PID banning is that the BE GUID cannot be hacked/changed client-side, therefore the only way for a player to get unbanned is to buy a new game/cd-key.

The following commands are available to manage GUID bans:

Command Description
loadBans (Re)load the BE ban list from bans.txt.
bans Show a list of all BE server bans.
ban [player #] [time in minutes] [reason] Ban a player's BE GUID from the server. If time is not specified or 0, the ban will be permanent; if reason is not specified the player will be kicked with "Banned".
addBan [GUID] [time in minutes] [reason] Same as "ban", but allows to ban a player that is not currently on the server.
removeBan [ban #] Remove ban (get the ban # from the bans command).
writeBans removes expired bans from bans file

You can either enter them via BE RCon or in-game using "#beserver [command]" (if logged in as admin). For example:

#beserver ban 11

Keep in mind that the "player #" used here is the one listed by BE's "players" command.

BattlEye GUID and IP bans will now both be loaded from and saved to "bans.txt" (no longer "guidbans.txt" and "ipbans.txt") in your server's BE working directory.
Timed bans're saved into bans.txt as timestamp of end-date(unixformat)


RCon

Latest version
b0.94.

Since BattlEye server version 1.102 you can control your Arma game server remotely (without having to be in-game) using the BattlEye RCon tool.

  1. Download the BattlEye RCon tool (BERCon.exe).
  2. Create a file called beserver.cfg (or beserver_x64.cfg for 64-bit server) in BattlEye working directory on the server.
  3. Set private RCon password in the beserver.cfg (or beserver_x64.cfg for 64-bit server) via setting "RConPassword"
  4. Set custom BattlEye's RCON port defined in beserver.cfg (or beserver_x64.cfg for 64-bit server) via setting "RConPort" (for Arma 3 update 1.58.135656 and newer builds)
  5. Set optional BattlEye's RCON IP defined in beserver.cfg (or beserver_x64.cfg for 64-bit server) via setting "RConIP" (for Arma 3 update 1.58.135656 and newer builds)
  6. Start the RCon tool binary and connect to server with its IP, port and RCon password.

RconPort must avoid reserved ARMA3server port range (gameport *+0,+1,+2,+3,+4))
default reserved ports are 2302 - 2306 (to clarify the reserved ports can't be used for BattlEye's RCON).
example for default server setting, RconPort 2301

RconIP entry isn't needed, as when undefined it equals to value of 0.0.0.0 (all IPv4 local IP addresses used at once)
setting it to e.g. 127.0.0.1 will prevent it to respond on external IP
setting it to e.g. external IP will prevent it to respond on localhost 127.0.0.1

BattlEye working directory

The BattlEye working directory is a folder in one of three places:

  1. A folder named "BattlEye" within the Arma 2 application data folder.
  2. A folder named "BattlEye" in the path given by the "-profiles" startup parameter.
  3. In a folder given by the "-bepath" startup parameter.
Even with custom locations you will still need the BattlEye .dll's or .so's ALSO in the default location ("<arma2>\BattlEye" for Arma 2 or "<arma2>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.

The Arma 2 application data folder

In Windows Vista, 7 and 2008, that's the path given by "%LOCALAPPDATA%\Arma 2" for Arma 2 and "%LOCALAPPDATA%\Arma 2 OA" for the Arrowhead dedi. A typical value is:

C:\Users\username\AppData\Local\Arma 2

In Windows XP and 2003, the application data folder is "%USERPROFILE%\Local Settings\Application Data\Arma 2". A typical example is:

C:\Documents and Settings\username\Local Settings\Application data\Arma 2

These locations are the default and are used, if you launch the dedicated server without using either the "-profiles" or "-bepath" launch parameters.

The -profiles location

The path given as the "-profiles=..." startup parameter used when launching the Arma 2 dedi. If, for example, you would launch the Arma 2:OA dedicated server using:

arma2oaserver.exe -profiles=D:\Games\ArmA2

then the BattlEye working directory would be:

D:\Games\ArmA2\BattlEye
Even if using custom locations you will still need the .dll's or .so's ALSO in the default location ("<arma2>\BattlEye" for Arma 2 or "<arma2>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.

The -bepath location

You can also specify the BattlEye working directory directly using the startup parameter "-bepath". Example:

arma2oaserver.exe -bepath=D:\MyBattlEye

In this case, the BattlEye working directory will be:

D:\MyBattlEye

If path contains spaces, encase everything in quotes:

arma2oaserver.exe "-bepath=D:\My BattlEye"
Even if using custom locations you will still need the .dll's or .so's ALSO in the default location ("<arma2>\BattlEye" for Arma 2 or "<arma2>\Expansion\BattlEye" for Arma 2:OA/CO) for BattlEye to start.

Full examples

Here are examples of the full paths to the "beserver.cfg" file for a few different cases.

  • The examples assume that the username of the user that will run the servers is "jimbob".
  • "Arma 2" means running the "arma2server.exe" whereas "Arma 2:OA" means you're launching "arma2oaserver.exe".
To Launch Follow Path
Arma 2, Windows 7/Vista/2008, default: C:\Users\jimbob\AppData\Local\Arma 2\BattlEye\beserver.cfg
Arma 2:OA, Windows 7/Vista/2008, default: C:\Users\jimbob\AppData\Local\Arma 2 OA\BattlEye\beserver.cfg
Arma 2, Windows XP, default: C:\Documents and Settings\jimbob\Local Settings\Application data\Arma 2\BattlEye\beserver.cfg
Arma 2:OA, Windows XP, default: C:\Documents and Settings\jimbob\Local Settings\Application data\Arma 2 OA\BattlEye\beserver.cfg
Any Arma 2, any Windows, -profiles=D:\profiles: D:\profiles\BattlEye\beserver.cfg

Linux

For Linux dedicated servers, the default locations are:

  • For the Arma 2 dedi, it is "./battleye"
  • For the Arma 2:OA dedi, it is "./expansion/battleye"

Sample beserver.cfg

RConPassword xyzxyz
MaxPing 200

RCon commands

The commands are case insensitive. In other words you can write them all lower case.
Command Description
loadScripts loads the "scripts.txt" file without the need to restart the server.
missions Returns a list of the available missions on the server.
players Displays a list of the players on the server including BE GUIDs and pings.
kick [player#] Kicks a player. His # can be found in the player list using the "players" command.
RConPassword [password] Changes the RCon password.
MaxPing [ping] Changes the MaxPing value. If a player has a higher ping, he will be kicked from the server.
logout Logout from current server, but do not exit the program.
Exit Closes the connection.
Say [player#] Say something to player #. -1 equals all players on server (e.g. "Say -1 Hello World!")
Server commands are passed directly to server
#mission [missionName] - Loads the given mission on the server.
Look at the GUID banning section for additional commands.


Support