Atlas of Bretonnia

Workshop journal · · 10 min read

The Season of Revelation, back in Warhammer III in 4 days

For almost ten years, the map of The Season of Revelation stayed locked inside Warhammer I. On 19 September 2026, CAIME, the Campaign Map Toolkit's editor, came out; four days later, the map was running in Warhammer III, with nine playable lords. This is why I went for it, and how, sleepless nights included: me doing the judging, Claude doing the execution.

The campaign map in game: Fort Solstice, in Gasconnie's colours, between thick forest and streams
In-game capture: the Season map in our Warhammer III, Fort Solstice, in Gasconnie's colours, between thick forest and streams.

A map I never forgot

December 2016: Realm of the Wood Elves adds a mini-campaign to the first Total War: Warhammer, The Season of Revelation. In spring, Orion awakens in a wounded forest while Morghur, the Shadowgave, leads his herds towards the Oak of Ages. Only the Oak at full power can break his immortality, and it all comes down to the Silver Spire.

Its map only shows Bretonnia and Athel Loren, but at a scale the grand campaign doesn't offer: the same land gets 12 to 14 times more hexes than in Immortal Empires, with 57 towns instead of 14. The dukedoms, the glades, the villages and the passes all have room to breathe.

The same land, three mapsImmortal Empires14 towns · 12,191 hexes≈ 870 hexes per townWarhammer I, main map15 towns · 13,563 hexes≈ 900 hexes per town12 to 14 times more hexesThe Season of Revelation57 towns · 171,270 land hexes≈ 3,000 hexes per towntowns the maps sharethe 43 towns found only in the Season
Each square has the area of its hex count, and one small hex of the pattern is the same size everywhere. In the two big maps, the towns they share with the Season fit in 12,000 to 13,500 hexes; the Season gives the same land 171,270 land hexes, for 57 towns. Measured on 20 September 2026 in the three maps (towns matched by name); the dots are placed for illustration.

That's the map I've always loved.

Ten years of waiting

Warhammer II came out in 2017, Warhammer III in 2022, and Immortal Empires brought all three games together on one map. The Season, though, never left Warhammer I. It bugged me: almost ten years, and I was growing impatient.

I'm not a modder at heart: a few reskins, never a big mod. But I love this universe, I love following what happens behind the scenes (new projects, new tools, the experiments modders share) and I love the Total War: Warhammer modding community. What I enjoy most is campaign maps. So when a tool finally let us edit them, I didn't hold out for long.

The trigger: CAIME is out

CAIME is the community tool that edits the campaign maps of several Total War games, from Rome II to Warhammer III. It handles the logical half of a map: the hexes, with their regions, ground types, rivers, roads and settlement slots.

The logical half

CAIME: ground types, regions (borders in red), road, river, settlement slots (schematic: a Warhammer III town covers 19 hexes). This is what the game computes.

The visual half

Terry and BOB: relief, coast, forests, water, set dressing. This is what the player sees. Both must describe the same land.

Version 1.0.0 came out on 19 September 2026, from the TW Campaign Map Modding Team: MrJox (aka victimized), Maruka and Marthenil founded the project, and ChaosRobie is among its contributors.

The next day, I set up a workshop with Claude, Anthropic's AI assistant, and we started with a small made-up island that passed CAIME's checks, to learn the pipeline before touching the real map. I thought I'd give it a try. I got hooked.

Along the way we hit a bug affecting French Windows, and any system that writes decimals with a comma: the Assembly Kit database refused to load, and every project opened read-only.

I reported it on the CAIME Discord, the team invited me to submit the fix, and it was merged the same day at 4:29 pm. Twenty minutes later, I reported a second issue: CAIME 1.0.0 couldn't open Warhammer I's mini-campaign maps. We fixed it in our copy of the tool and offered the fix to the team; both fixes are in version 1.0.1, released on 23 September.

That left the visual half: relief, forests, water. On the same Discord, ChaosRobie, the author of Immortal Empires Expanded, explained that he had rebuilt the whole Immortal Empires visual map as a campaign-type Terry project, and he shared it. That was exactly the blueprint we were missing.

The brain and the execution

I've got the brain, and you're the execution.

Charles, to Claude (translated)

That's how I summed up the way we worked, and it held for four days. I had a lot of fun: every wall that fell made me want to tackle the next one.

Who does whatMe: the brainI set the course and make thecallsI play and judge in gameI compare with my Warhammer IscreenshotsI write my decisions down, sothey aren't reopenedClaude: the executionWrites the scriptsTakes file formats apartReads crashes in a debuggerKeeps the documentation andthe log of mistakesin several sessions, each in its ownarea
The split that held for four days: judgement stays with the human, in game, against the reference; execution goes to the AI.

My decisions were written down, so they wouldn't be reopened. We keep Warhammer I's scale and geography: no carving up the Immortal Empires map. The map is 100% Warhammer I, the gameplay is Warhammer III, with Warhammer I's story. CA's own campaigns must keep working with the mod enabled, and there will be nine playable lords.

Claude worked in several parallel sessions, each with its own area: build, data and scripts, map rendering. I explain that setup in the article on method. We worked in French, so every quote of mine below is translated.

Night 1: the startpos wall

Four days and two sleepless nightsDay 1 · 20 September4:29 pmThe “comma” fix is merged into CAIME5:45 pmThe plan: 22 half-day sessions9:15 pmThe logical map exists in Warhammer III: 400 × 440hexes, 61 regionsNight of the 20th1 amThe startpos lock breaksDay 2 · 21 September12:08 pmFirst startpos; at 12:20 pm, the game accepts thecampaign≈ 5:50 pmThe Season's terrain, after a day of trials8:31 pm“it works!!!!”10:50 pm“I don't recognise the map”11:40 pmWarhammer I's real objects are in placeDay 3 · 22 SeptemberfirstThe end-of-turn crash: the battle terrain was missing2:40 pm“a map that's 100% WH1”9-10 pmWarhammer I's 514 mountains10:40 pm“stuff flying everywhere”11:23 pmThe waystones are back in the groundNight of the 22nd2:53 amLighting zones in “every colour going”: removed3:40 am“there's no water, just the sandy bottom”4:06 amThe water is back5:37 amThe rivers, smooth and connected5:47 amSix lords on the selection screenDay 4 · 23 SeptemberafternoonNine playable lordsthenAn Orion game: 30 turns without an errorthenA grass effect crashes the renderer: switched offa step clearedit worksa crash, a letdowna decision
The four days at a glance, at the times in our logs; in quotes, my own words, written in game (translated). Nights are in grey.

On 20 September at 9:15 pm, the logical map existed in Warhammer III: 400 × 440 hexes, 61 regions (3 of them at sea), 26 provinces. Next came the startpos, the file that freezes a campaign's starting state: factions, characters, settlements, diplomacy.

The game builds it itself, and it crashed every single time. The lock broke at 1 am.

On the 21st at 12:08 pm, the first startpos was generated, and at 12:20 pm the game accepted the campaign. Its selection screen was empty, so we rebuilt it on CA's model within the hour.

Day 2: “it works!!!!”

In the afternoon we tackled the terrain. The Season's terrain came together after a long day of trials. For a new map, BOB's limit is still a wall: see wall 2 of “The 9 walls”.

My next two tests crashed on loading: 18 Athel Loren regions had no settlement slot at all. Then came the AI's pathfinding data, then a faction with no AI personality. Each time, Claude analysed the crash in a debugger and found what the game had been looking for.

It works!!!! […] the map looks like nothing, but at least it loads.

Charles, 21 September, 8:31 pm (translated)

The evening cooled things down fast. At 10:50 pm, in game, I wrote “this is a bit of a mess”, then “I don't recognise the map”. Chaos where there had been none, the winter glade's snow wiped out, Warhammer III objects instead of Warhammer I's.

I made the call: the real Warhammer I objects, and no visual delivered without checking it on screen. By 11:40 pm, they were in place.

Warhammer I: the forest of Athel Loren from above, with the names of the Oak of Ages, Tal Eth Ayr and the King's Glade, and the snowy winter glade in the foregroundWarhammer I
Warhammer III: the same forest, the Oak of Ages, Tal Eth Ayr, the King's Glade, Orion's banner, and the winter glade at the bottom leftWarhammer III
The course set that evening: Warhammer I's map, as it was. The Oak of Ages, Tal Eth Ayr and the King's Glade, with the winter glade in the foreground: in Warhammer I, then in our Warhammer III on 25 September (French version of the game).

Day 3: a map that is 100% Warhammer I

On the 22nd we first fixed a crash I hadn't even reported: the night before, my game had died at the end of turn one. Claude found it the next day, somewhat by chance, in the crash reports. The campaign's battle terrain was missing, a second terrain the game reads from the very first battle.

At 2:40 pm I set the bar: “a map that's 100% WH1, with no WH3 equivalents”. In came Warhammer I's real ground, its textures, its lighting, its trees, then its 514 mountains, placed between 9 and 10 pm.

At 10:40 pm, another cold shower: there was “stuff flying everywhere”. Claude's audits only found 45 floating objects. The cause was a coordinate frame: objects and terrain aren't read on the same grid, and our objects had been squashed 13% towards the south. At 11:23 pm, in Terry, the waystones were back in the ground.

Two grids, one mapThe terrain293.5 deepThe world338.9 deepTerry stretches itby 2/√3 (+15%)square pixels:terrain, ground, maskshex space: objects,mountains, water,lighting, cameraOur mistakeWe had scaled the objects down to the image's depth(z × √3/2): all of them ended up squashed 13% towards thesouth, away from their ground.in the air13% too far southits groundsouthnorthOur audits, done in the same wrong frame, only found 45 objectsin the air. In game: “stuff flying everywhere”.The rulePositions stay in hex space, never converted: it's the imageyou read at row z × √3/2. And a coordinate frame is checked inthe tool that displays it, Terry, not in an audit.
The terrain image is 293.5 deep, the world 338.9: Terry stretches one to fit the other. By scaling the objects to the image, we had put them 13% too far south, above ground that wasn't theirs. From the workshop's log of mistakes (no. 89).

Night 3: water, rivers and six lords

The night of the 22nd was the longest. Warhammer I's rivers, a pixel-accurate coastline, lighting: at 2:53 am, the lighting zones were “every colour going, it really hurts your eyes”. We removed them.

At 3:40 am, in game: “by the sea there's no water, just the sandy bottom”. A coastline tweak had put the water surface at the height of the seabed. The water came back at 4:06 am, and the rivers became smooth and connected at 5:37 am.

Warhammer I: the pond south of the King's Glade, a river running through it, the forest and the snow of the winter gladeWarhammer I
Warhammer III: the same pond south of the King's Glade, the river leading to it, the forest and standing stonesWarhammer III
The pond south of the King's Glade: in Warhammer I, then in our Warhammer III on 25 September, after those nights spent on water and rivers.

At 5:47 am, six lords were waiting on the selection screen. At 6:20 am, Claude delivered the river currents, and I finally went to bed.

Day 4: nine lords and self-playing games

By early afternoon, all nine lords were in: Orion, Durthu, Alberic de Bordeleaux, the Fay Enchantress, Morghur, the Red Duke, Drycha, Heinrich Kemmler and Grom the Paunch. Orion and Durthu keep Warhammer I's victory; the other seven will follow the per-lord goals of the game's next update.

Ten playable lordsOrionWarhammer IDurthuWarhammer IDrychanewthe FayEnchantressnewMorghurnewAlberic ofBordeleauxnewthe RedDukenewHeinrichKemmlernewGrom thePaunchnewthe Sistersof Twilightsince 24 Septalready playable in Warhammer Inew in the Season
In Warhammer I's mini-campaign, only Orion and Durthu were playable. In Warhammer III, nine lords on 23 September, ten since the 24th with the Sisters of Twilight; each has a short and a long victory in the 9.0 format.

Then Claude set up automated games: the game launches, picks a lord and plays turn after turn. An Orion game lasted 30 turns without an error, in the mode where the AI plays everything; measured later from the log's timestamps, an end of turn takes about 2 seconds.

The next runs crashed for Durthu, Alberic and the Fay: a grass effect recreated from Warhammer I was bringing down Warhammer III's renderer. It was switched off straight away.

Where things stood on the evening of 23 September

  • 45,611 Warhammer I objects in place, 80,457 trees and 514 mountains
  • 61 regions, 57 of them with a settlement (the rest: 3 at sea, and one land region with none), over 176,000 hexes
  • 73 missions, 34 campaign scripts and 1,125 text entries per language
  • 9 playable lords; text in French and English

What it changes for modders

Since 19 September, the logical half of a campaign map is open to everyone through CAIME. For the visual half, Terry and BOB, CA's own tools, do a large part of the job, within their limits. Immortal Empires Expanded proved it at scale; this port shows it for a whole map brought over from another game.

The other change is pace. The plan written on 20 September at 5:45 pm counted 22 half-day sessions, with a first in-game test at the tenth; the campaign loaded the next evening.

An AI that takes apart a binary format or a crash dump changes the economics of a mod, as long as someone judges the result in game.

Everything we learned is written down. The step-by-step method is in the tutorial, and the nine biggest obstacles are in The 9 walls.

What's next?

I'm so happy, because it works.

Charles

And then there's the next chapter: expanding the map to all of Bretonnia. For now it's a plan on paper, and we're drawing it with you. Explore the map, suggest an idea, or read how we'll go about it.

Suggest an ideaSee the map