Configuring BattlEye Filters and Preventing False Kicks
Edit BattlEye filter files to whitelist legitimate mod scripts and prevent false positive kicks that disrupt gameplay on modded servers.
Overview
BattlEye scans client-side scripts against a blacklist of patterns in scripts.txt. On vanilla servers this works well. On modded servers, legitimate mod scripts routinely match BE filter patterns and kick players unexpectedly. The solution is to add exceptions in the filter files for trusted mod code, not to disable BattlEye entirely.
BattlEye File Locations
All BE configuration lives in:
server_profile/BattlEye/
beserver.cfg ← Main BE config (RCon password, log level)
scripts.txt ← Script execution filter (most common source of false kicks)
remoteexec.txt ← Remote execution filter
createvehicle.txt ← Vehicle creation filter
If the BattlEye/ folder does not exist yet, run the server once — BE creates it on first startup.
beserver.cfg
RConPassword yourpassword
RConPort 28015
MaxPing 200
Set MaxPing to match your server's player tolerance. 200 is a reasonable default; lower values kick players on bad connections.
Understanding scripts.txt
Each line in scripts.txt is a pattern definition:
5 "createMarker"
The number is the action code:
| Code | Action |
|---|---|
| 1 | Log the event |
| 2 | Log and block |
| 3 | Log and kick |
| 4 | Log and ban |
| 5 | Just kick (no log) |
To whitelist a script pattern, you add an exception using ! (negation) inline with the rule, or by inserting the whitelisted string before the offending pattern.
Adding Exceptions for Mod Scripts
The filter syntax allows exceptions within a rule. To allow a specific string that would otherwise match a kick pattern, prepend it with !:
5 "someBlockedFunction" !"TrustedModFunction"
This kicks any script calling someBlockedFunction unless it also contains TrustedModFunction.
A simpler approach for modded servers: when a mod's README provides specific BE filter exceptions, append them to the relevant filter file exactly as documented. Most reputable mod authors provide copy-paste exceptions.
Diagnosing False Kicks
Enable verbose BE logging to see exactly what is being flagged. In beserver.cfg:
LogLevel 3
With LogLevel 3, BE writes detailed kick reasons to server_profile/logs/ (BE creates its own log files). A false kick log entry looks like:
[2026-04-27 14:30:01] Player "SurvivorX" (GUID: abc123) was kicked by BattlEye: Script Restriction #47
The #47 refers to line 47 in scripts.txt. Open scripts.txt, go to line 47, and add an exception for the mod's script.
Whitelisting a Full Mod
If a mod causes repeated false kicks and the mod author has not provided filter exceptions, the broad approach is to add a pattern negation for the mod's script namespace. For example, a mod using MYMOD_ prefixed functions:
Find the relevant line in scripts.txt and add:
!"MYMOD_"
This tells BE: any script containing MYMOD_ is exempt from this rule. Be conservative — only whitelist specific mod namespaces, not broad strings that could mask actual cheats.
restorevehicle.txt and createvehicle.txt
Mods that spawn vehicles (mission vehicles, trader spawns) often trigger createvehicle.txt filters. The same exception syntax applies. Expansion Mod and similar vehicle mods typically require createvehicle.txt exceptions — check the mod's documentation.
Resetting to Default Filters
If filters become too permissive or corrupt, delete all .txt files in BattlEye/. BattlEye regenerates default filter files on next server start. Note that any custom exceptions will be lost — keep a backup.
# Backup before reset
cp -r server_profile/BattlEye/ server_profile/BattlEye_backup/
rm server_profile/BattlEye/*.txt