ALiVE.OS · ALiVE 3 Development
Turn hand-placed Eden template groups into a real ALiVE faction that placement modules and the air commander can spawn from.
New in ALiVE 3 · in testing
ALiVE 3 is in active development. This briefing describes work in progress, and the behaviour it covers is subject to change as testing continues. Check the changelog at the foot of the page for what has moved recently.
Overview
The Faction Compiler is a new system module that lets a mission maker build a custom faction directly in the Eden editor instead of relying only on ALiVE's built-in curated factions. A mission maker places one or more template groups of units (and any vehicles those units are riding in), syncs one soldier from each group to a Group Category helper module (Infantry, Motorized, Armored, Air, and so on), or syncs a drone (UAV or UGV) itself to make a group of its own, and syncs the category helpers to a single Faction Compiler module. On mission start the compiler reads every synced group, records each unit's class, rank, loadout and position relative to its group leader, and any vehicle each group brings with it, then stores that as a mission-local faction that other ALiVE modules can use.
The compiler offers two ways to use the result, chosen with the Faction Override Mode setting. New Faction (the default) builds a brand-new faction under the Faction ID the mission maker types in, using the Proxy Faction setting to borrow compositions, supply boxes and fallback vehicles from an existing in-game faction. Your soldiers keep the side you placed them on, but the vehicles, crews and supply boxes a module adds for the faction take the proxy's side, as does an air commander using it, so pick a proxy on the same side. Override Categories instead replaces specific unit categories inside an existing faction, so a mission maker can, for example, swap only the Armored category of a modded faction for their own custom tank groups while leaving its infantry and air groups untouched. It works on any real faction, modded or the game's own such as NATO, CSAT and the AAF, and the categories you do not override keep that faction's own groups. Sync the compiler to any of the five Military Placement modules or a Military Air Component Commander and it uses the compiled faction instead of its own; a Military AI Commander needs the Faction ID typed into its Additional Factions (by name).
How it works
You build the faction's groups in the editor, sort them into categories and sync them through to the compiler. The modules synced to the compiler then use your faction instead of their own. This is how it looks in the editor.
New faction: the default. Your groups become a faction of their own under the Faction ID, which can't be one the game or ALiVE already has: BLU_F is refused with a warning on the startup screen, the synced modules fall back to their own faction, and your templates are still removed if Delete Templates is Yes. A category you leave empty places nothing. Proxy Faction lends camps, supply boxes and fallback vehicles. Your soldiers keep the side you placed them on, but the vehicles, crews and supply boxes a module adds for the faction take the proxy's side, as does an air commander using it, so pick a proxy on the same side.
Override categories: put an existing faction's ID in Faction ID, BLU_F say, and each category you give groups to replaces that category of it, for every module in the mission that places it, synced to the compiler or not. Its other categories keep that faction's own groups, and Proxy Faction is ignored. Where ALiVE picks a single soldier or vehicle for that faction, for CQB say, it may pick one of yours.
Capabilities
Reads every unit's class, rank, current loadout, damage state and position/rotation offset from its group leader, plus any vehicle the group is riding (a drone synced on its own becomes a group of its own: its hidden AI crew, with the drone as their vehicle), so the compiled faction reproduces the composition the mission maker built in Eden.
For each captured vehicle it records damage, fuel, ammo, engine state, whether it can fire or move, and which seats units are assigned to, so vehicles spawn back out in the same condition they were placed in.
A separate Group Category helper module assigns each synced template group to a standard ALiVE category (Infantry, Spec Ops, Motorized, Motorized MTP, Mechanized, Mechanized MTP, Armored, Air, Naval, Support, Artillery), which controls how placement modules pick and mix groups at runtime.
New Faction mode creates a brand-new faction ID (must not already exist). Override Categories mode instead replaces the categories you give groups to in an existing faction, for every module in the mission, leaving its other categories untouched; the Proxy Faction setting is ignored in this mode. This works on the game's own factions as well as modded ones.
The Proxy Faction setting points at a real in-game faction that supplies fallback vehicle and composition data. Your soldiers keep the side you placed them on, but the vehicles, crews and supply boxes a module adds for the faction take the proxy's side, so pick a proxy on the same side. The choice is saved with the mission so it survives a save and reload.
When ALiVE spawns a unit from the compiled faction it reapplies the exact loadout that was captured from the original placed unit, rather than falling back to the class's default gear. It does this every time the group spawns, not just the first, so a group the AI Commander sends to attack later still wears your kit. After a man in the group dies, the survivors keep their own kit: they're matched to their places by class, in order. Two men of the same class with different kits can still swap.
How to use it
Settings
The Custom Faction Compiler turns groups you place in the editor into a faction that ALiVE's placement modules can use. These settings name the faction, choose which existing faction it borrows static data from, and decide whether it's a brand new faction or replaces some group categories of an existing one. Your soldiers keep the side you placed them on. This helper module goes between the Custom Faction Compiler and your template groups, and tells the compiler which ALiVE group category those groups belong to. Place one per category, sync your groups to it and sync it to the compiler.
Your template groups become a faction of their own. Sync a placement module to the compiler and it uses that faction instead of the one chosen on the module. The ID has only letters, numbers and underscores, so it's kept exactly as typed.
The categories you have groups for are replaced and the faction's other categories stay as they were.
The groups you synced stay on the map after compiling instead of being deleted, so you can check them in preview.
Use one helper set to Infantry for the foot groups and a second helper set to Motorized for the groups in vehicles, each synced to the same compiler.
Groups synced to this helper are filed under Spec Ops, so modules that ask for special forces pick them.
Choices: Yes / No
Writes extra lines to the log file while the faction is compiled: each group it captured, the total and the mode, or that it found none. Groups it leaves out are logged whether Debug is on or not. It doesn't change the faction.
The name your compiled faction is stored under. Any run of characters other than letters and numbers becomes one underscore, so "My Faction!" becomes "My_Faction_"; an ID with no letter or number becomes ALIVE_CUSTOM_FACTION, and the log says when it's changed. In Override categories mode it names the existing faction you're changing.
AffectsTwo compilers that end up with the same ID clash, and the second one is refused rather than overwriting the first. In New faction mode an ID the game or ALiVE already has, such as OPF_F or BLU_G_F, is refused too, with a warning on screen and in the log; the refused compiler still deletes its templates when Delete Templates is on, and modules synced to it use their own faction. An empty box falls back to ALIVE_CUSTOM_FACTION.
TryUse only capitals, numbers and single underscores, such as "MY_REBELS". A placement module synced to the compiler picks it up on its own, but a Military AI Commander needs it typed into Additional Factions (by name).
A readable name stored with the compiled faction. If it's left blank, the Faction ID is used instead.
An existing faction your custom one borrows config data from: static weapons, compositions and vehicle type lookups are taken from this faction. Your soldiers keep the side you placed them on, but the vehicles, crews and supply boxes a module adds for the faction take this faction's side, as does an air commander using it, so pick one on the same side. It doesn't fill in categories you gave no groups for: in New faction mode those stay empty.
AffectsIgnored in Override categories mode.
Choices: Yes / No
Deletes the template groups it captured, and the vehicles they sit in (a template drone and its crew included), once their details have been read, so they don't stay in the mission as live units. A group left out for being on another side isn't deleted, and the templates go even when the Faction ID is refused.
TrySet it to No while you're still building the faction so you can see the groups in preview.
Choices: New faction / Override categories
New faction makes your groups a new faction of their own. Override categories puts your groups in place of the matching categories of the faction named in Faction ID and leaves its other categories alone.
AffectsIf the Faction ID has no ALiVE mapping of its own, nothing complains: the categories you supplied are replaced and the rest still come from that faction's own config groups. If the ID isn't a real faction at all, those other categories have nothing to fall back on and stay empty.
Choices: Infantry / Spec Ops / Motorized / Motorized MTP / Mechanized / Mechanized MTP / Armored / Air / Naval / Support / Artillery
The ALiVE group category every template group (or drone) synced to this helper is filed under, such as Infantry, Mechanized or Air.
AffectsOnly groups of soldiers are captured, and all of them under one compiler must be on the same side: groups on a different side from the first one captured are left out, and the log names each one with both sides.
Recent work
Status
Capturing synced template groups (units, ranks, loadouts, damage, positions) and any vehicles they use into a mission-local faction works, in both New Faction and Override Categories modes.
The Delete Templates setting removes the placed template groups and their vehicles from the map once they have been compiled, so they do not sit around as extra AI.
The compiler can be synced to any of the five Military Placement modules or a Military Air Component Commander, and the compiled faction is recognised as a valid faction source.
If a placement module is accidentally synced to more than one Faction Compiler module, it logs a warning naming every conflicting module instead of silently picking one.
New faction mode won't take a Faction ID the game or another compiler already has. It warns on screen and in the log, deletes the templates if asked to, and the synced modules use their own faction.
A Debug setting exists for extra reporting during compiling, but a mission maker still has to check the log for confirmation that a compile succeeded; there is no in-Eden success message yet.
Testing
Build a small test group in Eden (a leader plus a few members, optionally in a vehicle), sync one of its soldiers to a Group Category helper module, sync that helper to a Faction Compiler module, set a Faction ID and Display Name, leave Faction Override Mode on New Faction, and pick a Proxy Faction. Sync the compiler to a placement module (or a Military Air Component Commander for an air group); the synced module picks up the compiled faction by itself, so there's no ID to enter on it. Then run the mission. Watch for: the template group disappearing shortly after start if Delete Templates is on, the placement module spawning groups that match what was placed (same unit types, same vehicle, similar gear), and units spawning with the loadout that was on the original placed unit rather than a default one.
To test drones, place a UGV or UAV (it can be empty) and sync the drone itself to a Group Category helper. There should be no red warning in Eden, the template drone should go at start, and the spawned drone should be crewed by its own group. To test kit, kill the leader of a three-man compiled group, let the group despawn and spawn again, and check the survivors still carry their own weapons. Signs of trouble: a drone with no crew, the warning still firing on a drone, or stock kit on a group's second spawn. Also try Override Categories mode against a modded faction ID to confirm only the synced category changes and the faction's other categories are unaffected. Worth trying this against one of the game's own factions as well as a modded one, since that case was broken until recently: check that the category you override comes from your templates and that every category you did not override still spawns that faction's normal units. If something looks wrong, enable the Debug setting on the compiler and check the mission log for faction compiler lines. The compiler always reports a Faction ID that clashes with an existing faction, and with Debug switched on it also notes when no template groups were captured; either points at a sync mistake or a naming clash rather than a spawn problem. Also try typing BLU_F as the Faction ID in New faction mode: the compiler should refuse it with a warning on screen, and NATO groups should be unchanged.
Spotted a problem? Please report it on the ALiVE issue tracker on GitHub, with the map, rough location and what the units were doing so it can be reproduced.
Changelog