Repository navigation
AtlasWH3 1.0.0
The first release of AtlasWH3: a Total War: WARHAMMER III campaign map builds from the Assembly Kit's sources in
one run, without BOB, and installs as a mod pack. IEE's full build takes about 5 minutes on a 4-core machine (a BOB
reprocess about 20, with pack round trips between actions).
The build
-
Every BOB campaign action is native, plus the AI pathfinding data the game otherwise builds itself:
Step Writes BOB action it replaces heightmapsfull_height_map.dds,full_logic_map.compressed_map,shroud_heights.dds,lf_normal.ddsCampaign Heightmap, Campaign Shroud Heights tile_listtile_list.bin,tile_mask.dds,patch_mask.ddsTilemap treestrees.campaign_tree_listCampaign Trees global_mapglobal_map\(blend,texture_arrays.xml, tile list)Global Tilemap, Campaign Global Blendmap maskscolour overlays, corruption, snow and event area masks Color Overlay, Corruption / Snow / Event Area Mask riversmodels\river_*Terry file (river export) global_propsglobal_props.bin,global_props_sound.binTerry file (props export) environmentenvironment_collection.xml(the map's and the devastated folder's)Terry file devastation_piecespieces\event_*,event_tiles,event_trees,event_vfx, for the main and devastated mapsDevastation pieces, without a fake campaign lookup*_lookup.tga/.dds,_minimap.tgaConvert lookup texture camera_heightmapcamera_heightmap.pngGenerate Camera Height Map (fails in BOB) hlp_spdhlp_data.esf,spd_data.esfthe game's own generation during a startpos build -
Parity with BOB on the two test maps, IEE and The Old World:
- byte-identical: the logic map, shroud heights, tile list, masks, piece textures and river models (but for two
bytes BOB leaves uninitialised); on Old World also the trees, the global map and the lookups; - IEE's trees: every tree's id, position and rotation identical, and all but 23 of 253,903 heights within 1e-3
(float rounding under the props' height patches); - global_props: the same objects in the same bodies as BOB. BOB's record order changes from run to run, so it is
compared by content; the cells differ only where AtlasWH3 boxes a model by its real bounds, where BOB uses a
2 × 2 × 2 cube for any model not loose in the kit; hlp_data.esfandspd_data.esf: byte-identical to the game's own on IEE (apart from the timestamp).
The remaining differences, and why, are recorded per step in
docs/native_campaign_build.md. - byte-identical: the logic map, shroud heights, tile list, masks, piece textures and river models (but for two
-
Checked in game on IEE: terrain, tiles, trees, props, rivers (lava rivers included), devastation, the camera,
the region lookups and the AI (docs/end_to_end.md). -
Fixes over BOB:
patch_mask.ddscovers the whole map (BOB's leaves a north band uncovered); the devastated map
needs no fake second campaign; the camera height map builds; region lookups can move regions past the 1024 palette
entries the game reads; quadtree cells use the models' real bounds; global_props takes its cultures from the packs'
prefab_types (a mod's own cultures get their own buckets; BOB read the kit's vanilla table) and its regions from
map_data.esf, the file the game reads (BOB read map.hex). -
No working_data in between: every step reads the kit's sources and the game and mod packs directly (CAIME's
map_data.esfandpathfinding.ppdfrom the map's mod pack), and a step's inputs from other steps only from this
build's output, never BOB's old files, so no intermediate pack is installed between actions. Independent steps run
in parallel.
Projects, pack and install
- A project (
.atlaswh3) holds a map's build profile: Validate → Compile → Pack → Install, with your own commands
before or after any segment. - Pack takes exactly the files the build wrote (no BOB by-products from
working_data), into a new pack or merged
into a copy of the map's mod pack, which keeps the mod's DB, scripts and other files. A map can ship in more than one
pack (Old World's main and devastate packs). River models and pieces the build no longer writes are dropped. - Install copies the pack into the game's
datafolder through a temporary file, refuses while the game runs, and
keeps one backup of the pack it replaces. - The same build from the app's Build window or the command line (
AtlasWH3.Cli build --project <file>).
Tools for map authors and research
validate-tilemap: tile-map pre-flight check before a build, with BOB's tile-matching simulation.parityandfixture-*: compare a build with BOB's output, against frozen source and output snapshots.bob-*: BOB headless in an isolated copy of the kit, for reference output.db-*,hlp-spd,gp27-*: DB tables, AI pathfinding and global_props research.
Editors (preview)
- The Scene editor, Tile map and Campaign battles windows come from Atlas3K and are partly moved to WH3. See
KNOWN_ISSUES.md.
From Atlas3K
AtlasWH3 is a hard fork of Atlas3K 0.1.0-alpha.2, the same tooling for
Total War: THREE KINGDOMS. Its changelog up to the fork is
Atlas3K's CHANGELOG.md.
Cut in the fork, as 3K-only: the battle terrain editor, the global mesh and climate map steps, seasons, the web
editor, the lake and terrain-shaping commands, the map audit, the Terrain painter's start-page entry and the 3K BOB
driver.
Download AtlasWH3-1.0.0.zip (self-contained win-x64, no .NET install needed). Read KNOWN_ISSUES.md before your first build.
🤖 Generated with Claude Code