Scheduler and admin tool for ARMA series servers
| Supported Games: | ARMA 2, ARMA 2 OA, ARMA 2 CO, ARMA 3, DayZ Standalone |
| Platform: | Windows (64-bit) and Linux |
| RCON Protocol: | BattlEye RCON wrapper |
| Config File: | Bec.cfg (INI format) |
| Features: | Scheduler, auto-restart, admin commands, log management |
| Latest Version: | BEC 1.647+ (check GitHub releases) |
| Repository: | github.com/TheGamingChief/BattlEye-Extended-Controls |
BEC (BattlEye Extended Controls) is a server administration tool for ARMA series games. It provides scheduled tasks, automatic restarts, admin commands, and enhanced BattlEye RCON functionality.
# Download latest BEC from GitHub:
# https://github.com/TheGamingChief/BattlEye-Extended-Controls/releases
# Extract Bec.exe to your ARMA server directory
# Example: C:\ARMA3Server\BEC\
ARMA3Server\
├── arma3server_x64.exe
├── BattlEye\
│ └── BEServer_x64.dll (or BEServer.dll for 32-bit)
└── BEC\
├── Bec.exe
├── Config\
│ ├── Bec.cfg (main configuration)
│ ├── Scheduler.xml (scheduled tasks)
│ └── Config.cfg (admin list)
└── Logs\
└── (BEC logs stored here)
# Copy Bec.cfg.example to Bec.cfg
# Or create new Bec.cfg with basic settings:
[Bec]
Ip = 127.0.0.1
Port = 2302
RConPassword = your_rcon_password
RestartServer = 1
# BEC for Linux (32-bit and 64-bit available)
cd /home/arma3/server/BEC
wget https://github.com/TheGamingChief/.../BEC_Linux.tar.gz
tar -xzf BEC_Linux.tar.gz
# Make executable
chmod +x Bec
# Run BEC
./Bec -f Config/Bec.cfg
[Bec]
# BattlEye RCON connection settings
Ip = 127.0.0.1
Port = 2302
RConPassword = your_rcon_password
# Auto-restart on crash (1 = yes, 0 = no)
RestartServer = 1
# Delay before restart attempt (seconds)
RestartDelay = 30
# Announce restart warnings (seconds before restart)
AnnounceRestartTime = 300
# Path to ARMA server executable (Windows)
ServerExePath = C:\ARMA3Server\arma3server_x64.exe
# Server startup parameters
ServerCommandLine = -config=server.cfg -port=2302 -profiles=SC -cfg=basic.cfg -name=SC
# Log rotation (delete logs older than X days)
LogRotation = 7
# Message of the Day (sent to players on join)
MessageOfTheDay = Welcome to our ARMA 3 server! Visit our website: example.com
# Whitelist mode (1 = enabled, 0 = disabled)
Whitelist = 0
# Ban list file
BanList = bans.txt
# Admins configuration file
AdminsFile = Config/Config.cfg
# Scheduler configuration file
SchedulerFile = Config/Scheduler.xml
[Admins]
# Format: BattlEye GUID = Admin Name
# Get GUID from BattlEye logs or !guid command
12345678901234567890123456789012 = AdminName1
98765432109876543210987654321098 = AdminName2
# Admin levels can be set (not all BEC versions support this)
# Level 1 = Basic commands (!say, !lock)
# Level 2 = Kick/ban commands
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Scheduler>
<!-- Daily restart at 06:00 -->
<job id="0">
<day>1,2,3,4,5,6,7</day>
<start>06:00:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>say -1 Server restart in 5 minutes!</cmd>
</job>
<!-- Restart warning 1 minute before -->
<job id="1">
<day>1,2,3,4,5,6,7</day>
<start>06:04:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>say -1 Server restarting in 1 minute! Save your progress!</cmd>
</job>
<!-- Actual restart command -->
<job id="2">
<day>1,2,3,4,5,6,7</day>
<start>06:05:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>#shutdown</cmd>
</job>
<!-- Repeating message every 30 minutes -->
<job id="3">
<day>1,2,3,4,5,6,7</day>
<start>00:00:00</start>
<runtime>003000</runtime>
<loop>1</loop>
<cmd>say -1 Visit our Discord: discord.gg/example</cmd>
</job>
</Scheduler>
| Field | Description | Example |
|---|---|---|
<day> |
Days of week (1=Mon, 7=Sun) | 1,2,3,4,5,6,7 (all days) |
<start> |
Start time (HH:MM:SS) | 06:00:00 (6 AM) |
<runtime> |
Repeat interval (HHMMSS) | 003000 (30 minutes) |
<loop> |
Loop task? (1=yes, 0=no) | 1 (repeating) |
<cmd> |
RCON command to execute | say -1 Message |
<!-- Restart every 3 hours (00:00, 03:00, 06:00, etc.) -->
<job id="10">
<day>1,2,3,4,5,6,7</day>
<start>00:00:00</start>
<runtime>030000</runtime>
<loop>1</loop>
<cmd>say -1 Server restarting in 5 minutes!</cmd>
</job>
<job id="11">
<day>1,2,3,4,5,6,7</day>
<start>00:00:00</start>
<runtime>010000</runtime>
<loop>1</loop>
<cmd>say -1 Check out our website: example.com</cmd>
</job>
# Server control
!restart # Restart server immediately
!shutdown # Shutdown server
!lock # Lock server (no new players)
!unlock # Unlock server
# Player management
!kick PlayerName [reason] # Kick player
!ban PlayerName [reason] # Ban player permanently
!tempban PlayerName minutes # Temporary ban
!players # List connected players
!guid PlayerName # Get player's BattlEye GUID
# Messages
!say Message # Send global message
!sayto PlayerName Message # Send private message
# Server info
!uptime # Show server uptime
!version # Show BEC version
!loadscripts # Reload BattlEye scripts.txt
# BattlEye RCON commands (via BEC)
say -1 Message # Global message
kick PlayerNumber [reason] # Kick by player number
ban PlayerGUID [reason] # Ban by GUID
removeBan BanNumber # Remove ban entry
players # List players with numbers
bans # List active bans
missions # List available missions
loadScripts # Reload BattlEye filter scripts
#shutdown # Shutdown server
#restart # Restart server (if configured)
# Bec.cfg settings for auto-restart
[Bec]
RestartServer = 1
RestartDelay = 30 # Wait 30 seconds before restart
ServerExePath = C:\ARMA3Server\arma3server_x64.exe
ServerCommandLine = -config=server.cfg -port=2302 -profiles=SC
RestartDelay secondsServerExePath and ServerCommandLine# Scheduler.xml: Warning before scheduled restart
<job id="20">
<day>1,2,3,4,5,6,7</day>
<start>05:55:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>say -1 Server restart in 5 minutes!</cmd>
</job>
<job id="21">
<day>1,2,3,4,5,6,7</day>
<start>05:58:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>say -1 Server restart in 2 minutes! Save your progress!</cmd>
</job>
<job id="22">
<day>1,2,3,4,5,6,7</day>
<start>06:00:00</start>
<runtime>000000</runtime>
<loop>0</loop>
<cmd>#shutdown</cmd>
</job>
BEC\Logs\
├── Bec_YYYY-MM-DD_HH-MM-SS.log # Main BEC log
├── Chat_YYYY-MM-DD.log # Player chat log
└── Admin_YYYY-MM-DD.log # Admin command log
# Bec.cfg log rotation setting
LogRotation = 7 # Delete logs older than 7 days
# Manual log cleanup (Windows)
cd C:\ARMA3Server\BEC\Logs
forfiles /P . /S /M *.log /D -7 /C "cmd /c del @path"
# Manual log cleanup (Linux)
find /home/arma3/server/BEC/Logs -name "*.log" -mtime +7 -delete
# Bec.cfg for ARMA 2
ServerExePath = C:\ARMA2Server\arma2oaserver.exe
ServerCommandLine = -port=2302 -config=server.cfg -profiles=SC -mod=@DayZ
# Port must match server.cfg BattlEye port:
BattlEye = 1
RConPassword = your_rcon_password
RConPort = 2302
# Bec.cfg for ARMA 3
ServerExePath = C:\ARMA3Server\arma3server_x64.exe
ServerCommandLine = -port=2302 -config=server.cfg -profiles=SC -cfg=basic.cfg
# 64-bit BattlEye DLL required
# Ensure BEServer_x64.dll is in BattlEye folder
# Bec.cfg for DayZ Standalone
ServerExePath = C:\DayZServer\DayZServer_x64.exe
ServerCommandLine = -config=serverDZ.cfg -port=2302 -profiles=SC -BEpath=battleye
# DayZ uses different config format
# Ensure RCon settings in serverDZ.cfg match Bec.cfg
# Symptoms: "Failed to connect to server" in Bec log
# Verify RCON settings match server config
# ARMA 3 server.cfg:
BattlEye = 1;
RConPassword = "your_rcon_password";
RConPort = 2302;
# Bec.cfg:
Port = 2302
RConPassword = your_rcon_password
# Test RCON manually with BERConCLI or similar tool
<day> matches current day (1=Monday, 7=Sunday)<start> time uses 24-hour format (HH:MM:SS)# Check Bec.cfg settings:
RestartServer = 1 # Must be enabled
ServerExePath = [full path to server exe]
ServerCommandLine = [correct startup parameters]
# Verify server executable path is correct (Windows)
dir "C:\ARMA3Server\arma3server_x64.exe"
# Check BEC has permission to launch server
# Run BEC as administrator if needed (Windows)