Repository navigation
Releases: robert-d-schultz/AtlasWH3
Release list
AtlasWH3 1.1.0
Fewer settings, plainer words. Everything about a map now lives in its build project, and the build writes straight
into your campaign's own pack.
Settings and the Start page
- Settings is down to the game and Assembly Kit folders (found through Steam and shown filled in), AtlasWH3's own
data folder (%LocalAppData%\AtlasWH3, shown with Open; moving it is possible but not needed), developer mode and
the walkthroughs. - Removed Linked packs, the global Tile map source and Prepare game data: the editors and the build read the
mod and game packs directly, so nothing is copied out of them any more. - Start page: a Project picker. The Scene editor, Tile map and Campaign battles open on the project's map and
packs; with No project, on a map from the Assembly Kit and the game's own packs. The Assembly Kit is the one in
Settings (no dropdown), maps are listed by name, and a missing one says why.
Build projects
- One pack. A project names your campaign's
.pack, and the build writes the compiled map into it in place: its
own files are replaced, everything else (DB, scripts, map_data.esf, pathfinding.ppd) is kept. It keeps a copy of
the pack as it was first (output\pack_backups), writes beside it and swaps it in, refuses while the game runs, and
creates the pack if there is none. Install, output pack, merge base, pack contents, replace folders and leave-out are
gone. - An optional pieces pack takes the event-area pieces (the map's
pieces\and the devastated map's folder) for a
campaign that ships them in a pack of their own, like Old World's!cr_oldworld_campaign_devastate.pack. - New project asks for the pack the map ships in.
- Project settings hold only what the Terry project doesn't: the pack (and pieces pack), other mod packs to read,
the compile options, and custom steps (now at the bottom). Removed: Assembly kit and Game data (Settings has them),
Tile map source (always the Terry project'stile_map.png), Output folder, Delete before compile, Terrain backup
folder and Devastated project. - Compiled files go to
%LocalAppData%\AtlasWH3\output\compiled\<map>, shown in full. The Assembly Kit's
working_datais no longer written. - Devastated map: the one the DB names (
campaigns.terrain_location_devastate), as in the Scene editor, instead
of a guess from the map's name. - Other mod packs and Lookup: regions past 1024 are real lists; Accepted tile-map errors is a tick box per
error, each saying what it means. - Build all, Run selected and Pack only are disabled until a project is open.
Wording
- The UI says Terry project for a map's sources and Assembly Kit for the install, never just "kit". The Get
started text, walkthroughs and info cards are rewritten to match.
Command line
- Removed
setupand the--rootoption.build --segmentsno longer hasinstall;--pack-outputsets the pack
the build writes into.trees-roundtripandfind-texturesread the packs (find-texturesnow finds every
texture). - Removed the hidden Atlas3K terrain painter (
--painter).
Upgrading from 1.0
- Projects convert when opened: their
packsandinstallbecome the pack (where Install put it) and, for a second
pack, the pieces pack; the old{ak}\working_dataoutput default is dropped;assemblyKit,gameData,tileMap,
clean,backupanddevastatedMapare ignored. Save the project to write it in the new form. - The old
vanilla\anddb\folders in%LocalAppData%\AtlasWH3are no longer used and can be deleted.
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