- Offizieller Beitrag
BattlEye Filter Guide
Da ich seit Wochen, nein seit Monaten fast Täglich um Hilfe bezüglich verschiedener BattlEye Filter gefragt werde habe ich mich dazu entschlossen nun ein etwas ausführlicheres Tutorial und einige Erklärungen dazu zu verfassen welche hoffentlich jeder verstehen sollte
Was sind BattlEye Filter:
BattlEye Filter sind ein optionales Feature der BattlEye Anti-Cheat Engine für ArmA Spiele und können von Serveradmins nach Bedarf und jeh nach Server angepasst und modifiziert werden um erweiterten Schutz vor Hackern zu bieten.
Mod-Developer fügen ihren Mods meist eigene und optimierte BattlEye Filter bei welche auf die jeweilige Mod angestimmt sind. Beispiele dazu sind folgende:
- ArmA 3: Epoch Mod
- ArmA 3: Exile Mod
- ArmA 3: Altis Life
- ArmA 3: Wasteland
infiSTAR fügt seinem Antihack ebenfalls für jede Mod verschiedene angepasste BattlEye Filter hinzu um euch die Arbeit abzunehmen diese selbst einstellen zu müssen.
Wie funktionieren BattlEye Filter:
BattlEye sucht und prüft alle Scripts welche von einem Client ausgeführt werden (scripts.txt) und spezifische Parameter (andere Filter) und erkennt in den Filtern (.txt Dateien) festgelegte KeyWords. Sobald BattlEye eine Übereinstimmung zwischen Parametern und/oder Scripts des Clients und den festgelegten KeyWords in den Filtern erkennt kann eine der folgenden Aktionen ausgeführt werden:
1 = Log zu .log Datei
2 = Log zu Konsole
3 = Log zu Konsole und .log Datei
4 = Spieler kicken ohne Logeinträge
5 = Spieler kicken und Logeinträge erstellen
6 = Spieler kicken und nur in Konsole loggen
7 = Spieler kicken und in Konsole und .log Datei loggen
Mit "Konsole" ist das Konsolenfenster des ArmA Servers gemeint welches sich öffnet sobald ihr euren Server startet. Die Konsole zeigt dauerhaft alle Verbindungen von Spielern, disconnects sowie Kicks an. Der Konsolenoutput wird im Configverzeichnis als .log Datei gespeichert sofern in eurer server.cfg die Option logFile gesetzt ist.
Ich empfehle euch Ereignisse der BattlEye Filter immer in .log Dateien schreiben zu lassen welche automatisch im BattlEye Verzeichnis angelegt werden sofern ihr in euren Filtern eine Option nutzt welche das schreiben in eine .log Datei anweist. Bei Einträgen der scripts.txt würde dann die dazugehörige .log Datei scripts.log heißen.
Das Loggen von Ereignissen in die Konsole ist meist nur dann sinnvoll wenn ihr oder jemand aus eurem Team über ein RCON Tool von aussen mit dem Server verbunden ist. So könnt ihr im RCON Tool direkt die Begründung sehen sollte ein Spieler durch eure BattlEye Filter gekickt werden. Ihr solltet ausserdem beachten dass das permanente loggen von Ereignissen in die Konsole der Serverperformance schaden kann, allerdings nur dann wenn ihr wirklich ALLES in die Konsole loggt was zum Beispiel in der scripts.txt, publicvariable.txt oder createvehicle.txt geschieht.
KeyWords hinzufügen:
In einer neuen Zeile könnt ihr die Nummer der entsprechenden Aktion welche ausgeführt werden soll gefolgt von einem KeyWord einfügen. Das ganze kann dann so aussehen:
5 keyword
Wenn ein Keyword eins oder mehrere Leerzeichen enthält muss das Keyword in Anführungszeichen gesetzt werden:
5 "key word"
Enthält ein Keyword Anführungszeichen muss ihnen ein Backslash (\) vorausgehen, ungefähr so:
5 "key \"word\""
Sollte ein Keyword weitere Zeichen ({}[]()^$.|*+? und \) muss diesen ebenfalls ein Backslash vorausgehen (\)
5 "key \(word\)"
Hinweis: Eine Ausnahme bildet die scripts.txt welche derzeit der einzige Filter ist welcher keine Regulären Ausdrücke unterstützt. Das bedeutet die Einzigen Zeichen welchen hier ein Backslash (\) vorausgehen muss sind Anführungszeichen.
Ihr könnt mit einem Keyword mehrere Dinge gleichzeitig euren Filtern hinzufügen. Als Beispiel nehmen wir die createvehicle.txt in welcher wir dafür sorgen wollen dass keine MRAP Fahrzeuge mehr gespawnt werden können.
Für jeden Classname fügt ihr eine Zeile hinzu, etwas so:
5 B_MRAP_01_F
5 B_MRAP_01_gmg_F
5 B_MRAP_01_hmg_F
Um mehrere Fahrzeuge mit nur einer Zeile auszuschließen könnt ihr so vorgehen:
5 B_MRAP_
Somit sind alle Fahrzeuge vom Typ MRAP auf eurer Blackliste und können nicht mehr gespawnt werden.
Um in einem Filter alles zu loggen erstellt ihr einfach eine Zeilt die wie folgt aussieht (Performancelastig bei publicvariable.txt und scripts.txt!):
1 ""
Um alles erkannte ohne Ausnahme zu kicken geht ihr Folgendermaßen vor:
5 ""
Ausnahmen hinzufügen (Unerwünschte Kicks beheben)
Ihr könnt Ausnahmen für Ereignisse erstellen welche von euren Filtern ignoriert werden sollen. Dazu fügt ihr eine neue Zeile ein und setzt vor das entsprechende Keyword ein != oder ! gefolg von der Ausnahme, etwa so:
5 keyword !keywordAusnahme
Ausnahmen erstellt ihr nach den selben Regeln wie Keywords. Wenn eine Ausnahme Leerzeichen enthält muss dieses Keyword in Anführungszeichen angegeben werden:
5 keyword !"keyword ausnahme"
Sollte eine Ausnahme Anführungszeichen enthalten muss diesen wieder ein Backslach (\) vorausgehen, so:
5 keyword !"key word \"ausnahme\""
Enthält eine Ausnahme Sonderzeichen ({}[]()^$.|*+? und \) muss auch diesen wieder ein Backslash vorausgehen:
5 keyword !"keyword \(ausnahme\)"
Erneuter Hinweis: Ausnahme ist auch hier die scripts.txt.
Ihr habt zwei Optionen um Ausnahmen hinzuzufügen:
!= Muss exakt dem Keyword entsprechen.
! Muss einen Teil des Keyword enthalten (Siehe createvehicle.txt Beispiel).
Derzeit existieren folgende Filter:
- addbackpackcargo.txt
- addmagazinecargo.txt
- addweaponcargo.txt
- attachto.txt
- createvehicle.txt
- deleteVehicle.txt
- mpeventhandler.txt
- publicvariable.txt
- publicvariableval.txt
- publicvariablevar.txt
- remotecontrol.txt
- remoteexec.txt
- selectplayer.txt
- setdamage.txt
- setpos.txt
- setvariable.txt
- setvariableval.txt
- teamswitch.txt
- waypointcondition.txt
- waypointstatement.txt
Eine Erklärung für die einzelnen Filter folgt, sobald ich mal Zeit dazu finde
Ich hoffe damit ist das Grundlegende vorerst geklärt. Ich werde das ganze in den kommenden Tagen noch etwas erweitern, falls bis dahin noch Fragen offen sein sollten postet sie sinfach hier in den beitrag