Repository navigation
Faction System
The faction system decides who each BTR treats as an enemy — plain players, Expansion eAI bots, and other BTRs. It's what makes BTR-vs-BTR warfare possible: spawn two BTRs of opposing factions and they'll hunt and destroy each other.
Tip
Want the full step-by-step walkthrough (presets, routes, global config, balancing)? See Setting up a BTR War.
Everything lives in the Faction block of a preset (see the field table in Configuration Reference).
"Faction": {
"Name": "Hostile",
"AttackPlayers": 1,
"AttackOtherBTRs": 1,
"Enemies": ["ALL"],
"Allies": []
}For any potential target, the BTR asks: "is this thing hostile to me?" Here's the exact decision flow:
flowchart TD
A(["👀 Potential target spotted"]) --> B{What is it?}
B -->|"🧍 Plain player<br/>(no eAI faction)"| C{AttackPlayers = 1?}
B -->|"🤖 eAI bot<br/>(Expansion faction)"| D{Same faction<br/>or in Allies?}
B -->|"🚛 Another BTR"| E{AttackOtherBTRs = 1?}
C -->|Yes| ATK(["🔴 ENGAGE"])
C -->|No| IGN(["🟢 Ignore"])
D -->|Yes| IGN
D -->|No| F{"In Enemies?<br/>(empty / ALL = everyone)"}
F -->|Yes| ATK
F -->|No| IGN
E -->|No| IGN
E -->|Yes| G{Same Name<br/>or in Allies?}
G -->|Yes| IGN
G -->|No| F
style ATK fill:#8b1a1a,color:#fff
style IGN fill:#1a5c1a,color:#fff
The same rules in table form:
| Target | How its faction is read | Hostile if… |
|---|---|---|
| Plain player | No eAI faction (empty) |
AttackPlayers is 1
|
| eAI bot | Its Expansion group faction name | that name is in Enemies (or Enemies is empty/ALL) and not in Allies
|
| Another BTR | That BTR's Faction.Name
|
AttackOtherBTRs is 1, the names differ, and it's an enemy (not an ally) |
Key rules:
- A BTR never attacks its own faction (same
Name) or anything in itsAllieslist. - Empty
Enemies([]) is treated the same as["ALL"]— hostile to every other faction. This is the safe aggressive default. -
Alliescovers both bots and BTRs of that faction.
Note
Enemy BTRs are always scanned for, regardless of Combat.AggroWhilePatrolling. That flag only controls proactively aggroing players/bots while patrolling.
To make two BTRs fight, give them different faction names in different presets, and make sure they see each other as enemies.
// preset A (e.g. patrol_normal.json)
"Faction": {
"Name": "East",
"AttackPlayers": 1,
"AttackOtherBTRs": 1,
"Enemies": ["ALL"],
"Allies": []
}// preset B (e.g. boss_airfield.json)
"Faction": {
"Name": "West",
"AttackPlayers": 1,
"AttackOtherBTRs": 1,
"Enemies": ["ALL"],
"Allies": []
}Then spawn one BTR from each preset near each other. Because East ≠ West and both list ALL as enemies, they'll engage on sight:
flowchart LR
E["🚛 BTR East<br/><i>patrol_east.json</i>"]
W["🚛 BTR West<br/><i>patrol_west.json</i>"]
P["🧍 Players"]
E <-. "⚔️ war" .-> W
E -- "🔴 hunts" --> P
W -- "🔴 hunts" --> P
style E fill:#7a2020,color:#fff
style W fill:#20477a,color:#fff
style P fill:#555,color:#fff
Important
The #1 reason two BTRs don't fight: they share the same Name. Two presets both named "Hostile" (the default) are the same faction and will ignore each other. Faction names are free text — "Red"/"Blue", "USMC"/"RU", anything — they just have to differ.
- BTRs are immune to bullets by default (
Health.BulletDamageMultiplier: 0), so the coaxial MG does nothing to another BTR. Only the cannon (via its explosion) damages them — make sureTurret.ExplosiveCannonis1. See Health and Damage. - How many shells a BTR survives depends on
Health.MaxHealthandHealth.ArmorMultiplier. Lower them if you want faster, more decisive duels.
Free-for-all (any different faction fights): give every preset a unique Name, leave Enemies as ["ALL"].
Allied convoy — different factions that don't fight each other but still hunt players:
// East BTR — treats West as a friend
"Faction": {
"Name": "East",
"AttackPlayers": 1,
"Allies": ["West"]
}
// West BTR — treats East as a friend
"Faction": {
"Name": "West",
"AttackPlayers": 1,
"Allies": ["East"]
}flowchart LR
E["🚛 BTR East"] <-. "🤝 allied" .-> W["🚛 BTR West"]
E -- "🔴 hunts" --> P["🧍 Players"]
W -- "🔴 hunts" --> P
style E fill:#7a2020,color:#fff
style W fill:#20477a,color:#fff
style P fill:#555,color:#fff
Fights enemy bots but never other BTRs:
"Faction": {
"Name": "East",
"AttackOtherBTRs": 0,
"Enemies": ["ALL"]
}Use this when you want distinct factions (for markers/identity) whose BTRs coexist, while still fighting each other's infantry. Allies can't express this — it would also spare the bots.
Only specific factions are enemies: list them explicitly — anything not listed (and not an ally) is left alone.
"Faction": {
"Name": "East",
"Enemies": ["Bandits", "West"]
}If you run DayZ-Expansion-AI, the BTR reads a bot's faction from its Expansion group. Put the exact Expansion faction name in Enemies/Allies/Name to line them up (e.g. "East", "West", "Raiders").
- No Expansion-AI installed? The faction system still works for players (via
AttackPlayers) and BTR-vs-BTR (viaName). Bot-faction matching simply isn't in play. - The defenders that spawn on the wreck have their own eAI faction field (
Defenders[].ExpansionFaction) — that is separate from thisFactionblock. See the Defenders section in Configuration Reference.
When the mod adds a new field to an already-existing config block, DayZ's JSON loader can write it back as 0/empty instead of its intended default (explained in How the Config Works). Two things to check the first time after updating:
-
AttackOtherBTRsmay land as0on a preset that already had aFactionblock — set it to1if you want BTR-vs-BTR. -
Enemiesmay come out as[]— that's fine, empty is treated asALL.
| Symptom | Likely cause |
|---|---|
| Two BTRs ignore each other | Same Name, or one lists the other in Allies, or AttackOtherBTRs: 0. |
| BTRs shoot but deal no damage | Normal for the coaxial (bullet immunity). Confirm Turret.ExplosiveCannon: 1 so the cannon can damage them. |
| BTR ignores enemy eAI bots | Expansion-AI not installed, or the bot's faction is in Allies / not in Enemies. |
| Duels never finish |
MaxHealth too high / ArmorMultiplier too low — lower them. |
More in FAQ and Troubleshooting.
🏠 Home · ⚙️ Configuration · 🧩 Recipes · 📖 Class Names · ❓ FAQ · 💬 Discord
🛡️ BS Patrol Tank — © 2026 cjcarw · Repacking prohibited
🚀 Getting Started
⚙️ Configuration
⚔️ Combat & Systems
📖 Reference
🧰 Help & More