📚 BEC (BattlEye Extended Controls) Guide

Scheduler and admin tool for ARMA series servers

Quick Info

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

Navigation

Overview

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.

Key Features

Why Use BEC?

📥 Installation

Windows Installation

Step 1: Download BEC

# 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\

Step 2: Directory Structure

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)

Step 3: Create Bec.cfg

# 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

Linux Installation

# 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

⚙️ Configuration (Bec.cfg)

Complete Bec.cfg Example

[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

Config.cfg (Admin List)

[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

📅 Scheduler System

Scheduler.xml Structure

<?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>

Scheduler Field Definitions

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

Common Scheduled Tasks

3-Hour Restart Cycle

<!-- 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>

Hourly Server Message

<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>

🔧 Admin Commands

In-Game Commands (Chat)

# 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

RCON Commands (Console)

# 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)

🔄 Auto-Restart on Crash

Windows Auto-Restart Setup

# 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

How Auto-Restart Works

  1. BEC monitors server process via RCON connection
  2. If RCON connection is lost, BEC waits RestartDelay seconds
  3. BEC checks if server process is still running
  4. If process is dead, BEC launches server using ServerExePath and ServerCommandLine
  5. BEC reconnects to RCON and resumes monitoring

Restart Notifications

# 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>

📝 Log Management

BEC Log Files

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

Log Rotation

# 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

🎮 Game-Specific Setup

ARMA 2 / ARMA 2 OA

# 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

ARMA 3

# 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

DayZ Standalone

# 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

🔧 Troubleshooting

BEC Not Connecting to Server

# 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

Scheduler Tasks Not Executing

Server Not Restarting After Crash

# 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)

Admin Commands Not Working

Pro Tips

Resources