Halo Wars: Definitive Edition
Create a Civilization
Build a faction with its own shared technology, leaders and interface.
A civilization groups shared technology and interface settings. Its leaders provide starting armies, resources and individual bonuses.
A new leader does not require a new civilization. For a faction that uses UNSC or Covenant mechanics, create a leader under that existing civilization first. This avoids additional faction UI and compatibility work.
This guide describes an additional civilization using the existing UNSC interface and mechanics as its starting point. It does not promise unlimited civilizations or a complete faction from one XML entry.
Files You Need
Set up a loose mod using Getting Started. Copy the complete current tables before adding entries.
| File inside your mod | Purpose |
|---|---|
root/data/civs.xml | Civilization identity, shared technology, transport and interface settings. |
root/data/leaders.xml | At least one playable leader belonging to the civilization. |
root/data/techs.xml | Shared initialization technology, leader technology and research. |
root/data/stringtable-en.xml | Display names and descriptions. Add supported translations too. |
root/art/ui/game/uigame.xml | Civilization-specific HUD, reticle, minimap, decal and resource-display mappings. |
root/data/playercolors.xml | Player-color assignments for the civilization. |
root/data/objects.xml, squads.xml, powers.xml | Custom buildings, units and powers, when needed. |
root/data/triggerscripts/skirmishai.triggerscript, root/data/aidata/*.ai | AI decisions and build lists, when needed. |
Definitions replace complete tables. Do not ship only the new civilization in a replacement civs.xml.
1. Respect The Civilization Limits
Keep Gaia first, followed by the existing UNSC and Covenant entries. Append your civilization. Names are references, but the loaded order also determines numeric civilization IDs.
Using Haruspis with Serina removes the stock civilization color limit of IDs 0 through 4. With Serina's extended civilizations feature enabled, the current supported range is 0 through 126, including Gaia. The feature is enabled by default in current Serina builds.
If it was disabled, enable it in serina.ini beside the game executable:
[civilizations]
extended_colors=trueWithout Serina's extension, the stock color mapping supports only five civilization IDs, 0 through 4. Gaia, UNSC and Covenant occupy IDs 0, 1 and 2, leaving IDs 3 and 4 for additional mappings. XML alone does not extend that table.
The extended range does not remove leader profile limits or replace missing faction UI and gameplay setup. Other game systems also contain UNSC- and Covenant-specific behavior. Keep the original entries and order, and verify the complete faction in game.
2. Copy A Civilization
In civs.xml, duplicate the complete UNSC <Civ> entry. For this example, change:
<Name>mod_Rebels</Name>
<CivTech>mod_rebels_basic</CivTech>
<DisplayNameID>900010</DisplayNameID>Choose unused names and string IDs in your mod. Keep the remaining copied settings initially:
| Setting | What it controls |
|---|---|
CommandAckObject | Command acknowledgement marker. |
RallyPointObject, LocalRallyPointObject | Rally markers. |
Transport, TransportTrigger | Transport object references. Both must resolve. |
SoundBank | Existing faction UI sound bank. Renaming this does not create sounds. |
LeaderMenuNameID | Localized heading for the leader menu. |
PowerFromHero | Whether the civilization uses hero-based leader powers. |
UIControlBackground | Civilization banner artwork. |
BuildingMagnetRange, ExpandHull, TerrainPushOff | Placement settings. |
For a Covenant-based faction, copy Covenant and its matching technology, leader and UI mappings throughout this guide. Do not mix a UNSC headquarters with unrelated Covenant transport or hero-power settings accidentally.
3. Create The Shared Technology
Duplicate the complete unsc_basic technology in techs.xml. Rename it mod_rebels_basic and assign an unused DBID.
Keep its initial status and Shadow flag:
<ResearchPoints>0</ResearchPoints>
<Status>UNOBTAINABLE</Status>
<Flag>Shadow</Flag>Keep the copied prerequisites and effects for the first version. This preserves the known starting unlocks and command restrictions. Replace them gradually when building the faction's own roster.
The new civilization's <CivTech> must name this technology exactly. Match setup activates it before the selected leader's technology.
A copied technology still references the original units, buildings and powers. Renaming it does not create a new roster. Update its targets and the producing buildings' commands when replacing units.
4. Add A Playable Leader
Follow Create a Leader, with this difference:
<Civ>mod_Rebels</Civ>
<Tech>mod_RebelsCommander</Tech>
<FlashCivID>0</FlashCivID>Duplicate a compatible leader technology as mod_RebelsCommander. Keep the civilization and leader technologies separate so additional leaders can share mod_rebels_basic without sharing every bonus.
FlashCivID is a picker style. Do not set it to 3 just because this is civilization ID 3. Reuse 0 for the stock UNSC style or 1 for Covenant until the picker artwork supports a custom style.
Give the leader a visible picker order and the required names, starting headquarters, units and population settings. Use StatsID="-1" unless you deliberately allocate one of the limited profile record slots.
5. Add The UI Mappings
Edit root/art/ui/game/uigame.xml, not a new file under data.
Inside <FlashResources>, copy each civilization-specific mapping from your template and change only its Type initially:
HUDReticleMinimapDecals
For example, this adds a UNSC-style HUD for the new civilization while reusing the installed artwork:
<HUD Type="mod_Rebels">
<Flash VerticalSplitScreen="art\ui\flash\hud\hud_menu\hud_menu_unsc_split.gfx">art\ui\flash\hud\hud_menu\hud_menu_unsc.gfx</Flash>
<Data VerticalSplitScreen="">art\ui\flash\hud\hud_menu\hud_menu_unsc.xml</Data>
</HUD>Add the copied Reticle, Minimap and Decals entries too. One HUD entry alone is not the complete mapping. Keep each mapping's <Flash>, <Data> and any split-screen attributes together.
Leave the shared Type="All" entries, such as Hints, Callouts and Widgets, intact.
Resource Display
Inside <PlayerStats>, duplicate the template's complete <Stats> block. Change its leading text from UNSC to mod_Rebels:
<Stats>
mod_Rebels
<!-- Keep the copied Stat elements here. -->
</Stats>The civilization name is text inside <Stats>, not a Name attribute. Preserve the copied stat types, resource names, order and display positions. The resource display also supplies the command menu's cost information.
Inside <CircleMenu><Backgrounds>, add the matching background:
<Background civ="mod_Rebels">ui\game\circle_menu\unsc\background\background</Background>Which GFX Files Are Needed?
A civilization can reuse the installed movies through its XML mappings. You only need to include copies when you change their appearance or behavior.
| Interface | UNSC movie or asset | Companion definition |
|---|---|---|
| Main HUD and command wheel | art/ui/flash/hud/hud_menu/hud_menu_unsc.gfx | hud_menu_unsc.xml in the same folder. |
| Split HUD | art/ui/flash/hud/hud_menu/hud_menu_unsc_split.gfx | The mapping's split definition, if specified. |
| Minimap | art/ui/flash/hud/hud_minimap/hud_minimap.gfx | hud_minimap.xml in the same folder. |
| Reticle | art/ui/flash/hud/hud_reticle/hud_reticle.gfx | hud_reticle.xml in the same folder. |
| Decals | art/ui/flash/hud/hud_decal/UI_decal.swf as referenced in the stock mapping. | hud_decal.xml in the same folder. |
| Leader picker | art/ui/flash/pregame/leaderpicker/leaderpicker.gfx | leaderpickerdata.xml and leaderpickerinput.xml. |
Covenant uses hud_menu_cov.gfx, hud_menu_cov.xml, hud_minimap_cov.gfx, hud_minimap_cov.xml and hud_decal_cov.xml where the stock mappings specify them. Copy the complete mapping rather than guessing filenames.
Most HUD movies come from inGameUI.era. The picker comes from pregameUI.era. The uigame.xml mapping comes from root.era.
For the picker, use the Scrubb Edition Dev 2.0 dynamic leader picker. It creates slots from the configured leader list, so you do not need to edit the GFX for each new leader. See the installation steps. Native game limits still apply.
For a custom movie, copy its textures and imported dependencies too. Keep their names and relative layout, or update the movie's references. Renaming a GFX does not rename its external textures or create a new civilization style.
To edit embedded images or shapes, use a GFX-capable editor such as JPEXS Free Flash Decompiler. Its image replacement guidance distinguishes images from shapes. External DDS/DDX textures must be edited as separate files.
6. Change The Civilization Artwork
The civilization's UIControlBackground is separate from each leader's portrait and banner:
<UIControlBackground>img://art\ui\flash\shared\textures\civ\civpict_rebels.ddx</UIControlBackground>Copy the template image to that new filename and edit it. The stock UNSC civilization banner is 512 × 128. Preserve its dimensions, texture format and alpha layout initially.
Leader portraits, leader lobby banners, unit portraits and technology icons are separate assets. Set leader images in leaders.xml, unit PortraitIcon fields in the relevant object or squad, and research Icon fields in techs.xml. Follow each field's existing path convention; not every icon field uses img://.
A new civilization banner does not recolor the HUD movie. Recolor the appropriate GFX or its textures separately, then point the new civilization's mapping at that copy.
7. Assign Player Colors
In root/data/playercolors.xml, duplicate the template's complete <civ> block. Change its leading text to the new civilization name and keep the per-player assignments:
<civ>
mod_Rebels
<player num="0" color="0" />
<player num="1" color="1" />
<player num="2" color="2" />
<player num="3" color="3" />
<player num="4" color="4" />
<player num="5" color="5" />
<player num="6" color="6" />
<player num="7" color="13" />
<player num="8" color="14" />
</civ>The color values select the palette entries defined elsewhere in the file. This example reuses the stock UNSC assignments. Preserve the complete palette and friend-or-foe settings.
This configures the stock XML player-color mappings. With Haruspis and Serina's extended civilizations feature, Serina supplies safe color assignments beyond the stock range. XML alone still does not bypass the five-ID mapping limit. Neither setting changes HUD artwork colors.
8. Finish The Roster And AI
For every custom unit or building, connect its definition, enable effects, production command, research, models, textures, tactics and abilities. Also update upgrades or transformations that replace the producing building.
Starting units belong to each leader, not to the civilization entry. Keep the starting socket and BuildOther headquarters compatible with the faction's technology and build chain.
AI setup is separate. The stock skirmish AI uses data/triggerscripts/skirmishai.triggerscript and tables under data/aidata. Inspect its civilization and leader conditions, then provide the new faction's building, squad, technology and power choices. A human-playable faction is not automatically a working AI faction.
9. Load And Check The Complete Faction
Add every used archive folder to ModManifest.txt. A mod that changes both gameplay and UI may need:
C:\Halo Wars Mods\MyFaction\root
C:\Halo Wars Mods\MyFaction\pregameUI
C:\Halo Wars Mods\MyFaction\inGameUIOnly include UI folders you actually use. Restart the game and start a new skirmish.
Check the faction through the whole match:
- Picker visibility, navigation, portrait and lobby banner.
- Starting base, units, supplies, population and player colors.
- Resource display, minimap, reticle, selection decals and command wheel.
- Every production building, upgrade and replacement headquarters.
- Leader powers, hero abilities, transports and repair.
- AI control, then unchanged UNSC and Covenant players in the same match.
- Save/load and postgame screens. Keep existing table order and profile identifiers stable.
The XML connections and named assets in this guide were checked against DE game data. A complete custom faction still needs these in-game checks, especially its AI, specialized mechanics and modified GFX.