← BACK TO INDEX
FILE: 0012025-12-29

TEACHING LLMs TO THINK IN OLD NORSE

Research, personas, and quality filtering for procedural text generation
00

CONTEXT

Crusader Kings 3 is a medieval dynasty simulator. You play as a noble house across generations, scheming, conquering, marrying strategically, and trying not to get murdered by your own children.

Every house has a motto, a short phrase that captures their identity. Think "Winter is Coming" or "Ours is the Fury". These appear in-game on house screens and add flavor to the dynasty you're building.

The base game generates these procedurally, but the results feel generic. This project uses LLMs to generate 14,000 culturally-authentic mottos across 53 cultures, so a Norse house sounds Viking, a Byzantine house sounds Roman, and an Irish house sounds Celtic.

01

HOW VANILLA WORKS

The base game uses template-based slot-filling. Sentence structures like "By $1$ and $2$" get filled from word pools:

Vanilla CK3 motto system

  TEMPLATE:  "By $1$ and $2$"
                 │       │
                 ▼       ▼
  INSERT POOLS: [honor, truth, valor, strength, wisdom...]

  RESULT:  "By Honor and Truth"
           "By Valor and Wisdom"
           "By Strength and Honor"
           ...

  Same sentence structure, different word fills.

This generates variety efficiently, with ~50,000 theoretical combinations from minimal content. But the mottos feel interchangeable. Here's what different cultures get:

Norse
"By Honor and Sword"
"Victory Through the Axe"
"Strength Over Weakness"
"Dare to be Bold"
Byzantine
"Wisdom is Strength"
"Cunning as the Fox"
"By Truth and Honor"
"Peace Over War"
Arabic
"By Honor and Truth"
"Wisdom Through God"
"Strength Over Adversity"
"Victory is Ours"
Mongol
"Victory Through the Bow"
"Bold with Sword in Hand"
"Triumph Over All"
"By Conquest and Valor"

They're fine. But they could belong to any culture. Nothing about "By Honor and Sword" feels specifically Norse.

02

WHAT THE PIPELINE PRODUCES

The same cultures, with mottos generated by this pipeline:

Norse
"Blood dries; sagas live"
"What the steel takes, the skald keeps"
"Ravens need not wait"
"The unwounded man has no saga"
Byzantine
"The dead do not testify"
"Before the blade, the whisper"
"Gold speaks; iron listens"
"Every throne casts a shadow"
Arabic
"The ink of scholars outlasts the blood of kings"
"We trade in silk; we settle in steel"
"Hospitality to guests, ruin to foes"
"The desert teaches patience; we teach the desert"
Mongol
"The grass bends; we do not"
"Where our horses drink, our borders end"
"The sky is our roof, the earth our floor"
"We came from the steppe; we return with kingdoms"
Celtic
"We are those who never bowed"
"The battle endures; the clan endures"
"We are the fire that will not be smothered"
"While rock stands, we stand"
Berber
"We are the mountains; we do not fear the wind"
"He who comes as an enemy shall return as bone"
"Every mountain holds bones of those who tried to take it"
"The lion asks no one if he may eat"
Key Insight
The challenge isn't generating mottos. It's generating diverse mottos that feel authentically Norse, Byzantine, or Mongol, not generic fantasy that could be any culture.
03

THE DIVERSITY PROBLEM

What happens if you just ask an LLM to generate Norse mottos with no context? I ran the experiment: "Generate 100 Norse house mottos for a medieval strategy game."

Here's a sample of what came back:

Naive output (actual)
"Honor through blade and blood"
"The wolf remembers every slight"
"Steel sings our ancestors' songs"
"Death before dishonor calls"
"The strong shall inherit all"
"Victory or Valhalla awaits"
Pattern frequency
steel/iron/sword .... 15%
wolf ................ 9%
strength/strong ..... 9%
blood ............... 8%
honor ............... 7%
death ............... 6%

These are Norse-ish, but not actually Norse. The giveaway:

Out of 102 mottos, only 1 referenced actual Norse mythology (Valhalla/Odin/Thor).
The rest are generic medieval warrior tropes that could work for any culture.

Now compare to the pipeline output, which had access to deep cultural research:

Naive (no context)
"The wolf remembers every slight"
"Steel sings our ancestors' songs"
"Iron will forged in battle"
Generic warrior imagery. Could be any culture.
Pipeline (with research)
"The unwounded man has no saga"
"Blood dries; sagas live"
"The Norns carve; we answer"
Saga tradition. Fate cosmology. Distinctly Norse.
Key Insight
The naive model knows Norse surface aesthetics (wolves, steel, blood) but not Norse philosophy: that reputation outlives death, that fate is woven by the Norns, that the only immortality is the saga. The research stage provides that cultural DNA.
04

THE PIPELINE

Five stages, each solving a specific problem:

1
Deep Research

Web search + LLM synthesis builds authentic cultural context for each of the 53 cultures. Not surface-level facts, but worldview: What did this culture value? How did they think about death, honor, legacy? What did their poetry sound like?

2
Persona Generation

Six lifestyle voices per culture (martial, diplomacy, intrigue, stewardship, learning, prowess). A warrior's motto sounds different from a scholar's. Each persona is a rich prose description of how this character thinks and speaks.

3
Adaptive Generation

Generate in batches of 10, analyze thematic diversity after each batch, continue until "saturation" is detected. This avoids both under-generating (missing themes) and over-generating (endless variations of the same idea). Some cultures saturate at 15 mottos; others hit 70 before running out of fresh ground.

4
Quality Filter

An LLM acts as a critical editor, rejecting generic or weak mottos. "The wolf never bows" gets cut; "The unwounded man has no saga" stays. Retention rate is remarkably consistent at ~70% across all cultures.

5
Format

Text cleanup (normalize quotes, remove trailing periods, title case) and generate CK3 mod files with proper triggers so Norse mottos only appear for Norse houses, Arabic mottos for Arabic houses, etc.

The next sections dive deeper into the interesting parts: research, personas, and the saturation detection loop.

05

CULTURAL RESEARCH

Each culture gets a research document built from web search + LLM synthesis. Not surface-level facts ("Mongols rode horses") but the underlying worldview: What did this culture value? How did they think about death, honor, legacy? What did their poetry sound like?

Here's what the research captures for Steppe cultures (Mongolic, Turkic):

Tengri (Eternal Blue Sky)

The supreme sky god governing all existence. Genghis Khan began declarations with "By the will of Eternal Blue Heaven." Khans were "sons of Tengri," receiving kut (heavenly spiritual force). Conquest wasn't ambition; it was divine mandate.

Sacred phrases: "Tengri jarlykasyn" (Let Tengri reward you) • "Tengri-yin Kuchin" (Power of Tengri)
The Sulde (Spirit Banner)

A spear with the best stallion's horsehair draped around its base. The warrior's soul resided forever in those tufts. While living, it carried destiny; in death, it became the soul itself. The body was abandoned to nature, but the sulde lived on.

White banner for peace • Black banner raised in war • The soul lives in horsehair, not monuments
Börte Chino (The Wolf Origin)

The Secret History of the Mongols begins: "At the beginning there was a blue-grey wolf, born with his destiny ordained by Heaven Above. His wife was a fallow doe." The wolf represents the sky; the deer symbolizes earth. Genghis Khan's clan name relates to böri (wolf).

The wolf is ancestor, not enemy • Golden wolf heads erected before tents • "A spirit of nature and men"
Anda (Blood Brotherhood)

A sacred bond between two men who become brothers by choice, not birth. "Sworn friends share but a single life. They do not abandon one another: they are each a life's safeguard for the other." Genghis Khan and Jamukha swore anda three times.

The arrow parable: One arrow breaks easily; a bundle is unbreakable

The research also captures authentic vocabulary (sulde, kut, anda, uran, tamga), anti-patterns to avoid (castle imagery, European feudal terms, agricultural metaphors), and linguistic style (terse commands, oral tradition rhythms, verb-final structures).

This context shapes everything. When the model generates steppe mottos, it draws on these concepts:

Research concept:
Nomadic worldview, no walls or fortresses
→ Generated motto:
"The sky is our roof, the earth our floor"
Research concept:
Conquest as natural movement, divine mandate
→ Generated motto:
"Where our horses drink, our borders end"
Research concept:
Arrow parable: "One arrow breaks easily; many arrows are indestructible"
→ Generated motto:
"One arrow breaks; we are the bundle"
Research concept:
Sulde: the soul lives in horsehair, not the body
→ Generated motto:
"The sulde remembers what the body forgets"
Key Insight
The research document is ~500 lines of cultural context, proverbs, linguistic patterns, and anti-patterns. It's the difference between "Mongols were warriors" and understanding that conquest was divine mandate from Tengri, that souls lived in horsehair banners, and that the wolf was ancestor, not enemy.
06

LIFESTYLE PERSONAS

A warrior's motto sounds different from a scholar's. Each culture gets six personas: rich prose descriptions of how this character thinks and speaks. Not labels, but voice.

Here are three Persian personas and the mottos they produce:

Martial Persona

"You are a Persian warrior-noble who remembers Rostam's defiance and the Savaran cavalry that shook empires. Think of the farr blazing in battle, armored elephants bearing the sun-standard. Your motto should proclaim divine mandate for conquest—how your house stands as the bulwark against druj (chaos)..."

→ Generated mottos:
"Like Rostam in battle, like Zal in counsel"
"Our sword serves justice, not tyranny"
"Many foes we have seen; none remain"
Intrigue Persona

"You are a Persian courtier who knows that silence defeats the stupid and patience makes all things possible. Your cunning is the measured strike of the chess master, not the assassin's crude blade. Think of secrets kept like gems in mud, the subtle word that topples thrones while you smile behind wine-cups..."

→ Generated mottos:
"Endure the night; dawn shall come"
"Judge us by our end, not our beginning"
"Though a jewel fall in mud, it remains a jewel"
Learning Persona

"You are a keeper of the Shahnameh's wisdom, heir to Ferdowsi's deathless words and Avestan knowledge. Your library preserves what the Arab conquest could not burn. Think of the farr that comes from understanding cosmic order, poetry that plants the seed of the Word..."

→ Generated mottos:
"In thought and word and deed: righteous"
"The sacred fire burns bright within our hearts"
"Speak truth, though it be bitter"
Key Insight
Same culture, completely different voices. The martial persona invokes Rostam and divine warfare. The intrigue persona speaks of patience and chess-like cunning. The learning persona echoes Zoroastrian triads and sacred fire. The persona isn't just a label; it's a character the model inhabits.
07

ADAPTIVE SATURATION

Instead of generating a fixed number of mottos, we generate in batches and detect when we've saturated the thematic space:

The saturation detection loop

  +-------------------------------------------+
  |   Generate batch of 10 mottos             |
  |   (using research + persona context)      |
  +---------------------+---------------------+
                        |
                        v
  +-------------------------------------------+
  |   Analyze cumulative corpus:              |
  |   - How many thematic categories?         |
  |   - Largest category < 30%?               |
  |   - Are new patterns emerging?            |
  |   - Entropy assessment (high/med/low)     |
  +---------------------+---------------------+
                        |
            +-----------+-----------+
            |                       |
            v                       v
  +------------------+   +------------------+
  |  NOT SATURATED   |   |    SATURATED     |
  |                  |   |                  |
  |  Loop back,      |   |  Stop. Move to   |
  |  generate more   |   |  next lifestyle  |
  +--------+---------+   +------------------+
           |
           +------+
                  v
           (back to top)

Saturation conditions (any triggers stop):

  • No new patterns: After batch 3, no new structural patterns emerge
  • Over-concentration: Single thematic category exceeds 30% of corpus
  • Entropy drop: Diversity assessment drops to "low"
  • Safety cap: Reached 70 mottos (hard limit)
Key Insight
Saturation varies dramatically by culture. Norse martial hits 70 mottos before saturating. Some niche cultures saturate at 15. The adaptive approach handles this automatically, with no arbitrary limits.

Results across 318 culture-lifestyle combinations: some saturate at just 2 mottos, others hit the 70-motto cap still finding fresh ground. If we'd used a fixed number (say, "generate 30 per combo"), we'd either waste capacity on rich cultures or force repetitive output from thin ones.

08

NATIVE-FIRST GENERATION

A key technique: generate in the native/historical language first, then translate. When the model thinks in Classical Chinese, it reaches for four-character idioms and Confucian concepts that wouldn't emerge from "write a Chinese-sounding English motto."

Here's what this produces across three very different writing systems:

Chinese (文言文 Literary Chinese)
不戰而屈人之兵,吾道也
"To subdue the enemy without battle—this is our Way"
靜如山,疾如風
"Still as the mountain, swift as the wind"
百世修文,一朝用武
"A hundred generations cultivate learning; one dawn demands the sword"
祖鑄青銅,孫握其柄
"The ancestors cast the bronze; the descendants grip the hilt"

Note the parallel structure (靜/疾, 百世/一朝), the four-character rhythm that echoes classical idioms, and concepts like 道 (Way) that carry Confucian/Daoist weight.

Ainu (Indigenous Japanese)
Kimun-kamuy hopunire ci=kor, wen kamuy ci=rayke.
"We wear the bear-god's disguise; we slay evil spirits."
Okikurmi ru ci=oman.
"We walk Okikurmi's path."
Kotan-kor-kamuy nukar-an kor, ci-sanke wa ek
"When the owl watches, we emerge and come forth"
Nupuri ta, surku an.
"In the mountains, poison waits."

Ainu cosmology pervades: kimun-kamuy (bear-god), kotan-kor-kamuy (owl, village guardian spirit), Okikurmi (culture hero). The ci= prefix marks first-person plural—"we" as a clan.

Ancient Greek (Ἑλληνική)
Κλέος ἄφθιτον· τὸ σῶμα πίπτει, ἡ δόξα μένει.
"Imperishable glory—the body falls, the fame remains."
Μολὲ καὶ λάβε—εἰ δύνασαι.
"Come and take—if you can."
Αἷμα σπείρομεν, θερίζομεν ᾠδάς.
"Blood we sow, songs we reap."
Τῷ παραστάτῃ ζῶ, σὺν τῷ παραστάτῃ θνῄσκω.
"For the man beside me I live, with him I die."

The Homeric concept κλέος ἄφθιτον (imperishable glory) appears naturally. "Μολὲ καὶ λάβε" echoes Sparta's legendary response to Xerxes. The παραστάτης (the man beside you in the phalanx) captures Greek warfare's communal ethos.

Key Insight
When the LLM thinks in the native language, it reaches for concepts that wouldn't surface otherwise: the Chinese 道 (Way), the Ainu kamuy (spirit-gods), the Greek κλέος (glory through song). The translation preserves this cultural DNA in a way that "generate an X-sounding English motto" never achieves.

The translation step isn't literal. It aims for comprehensible English that preserves cultural feel. "百世修文,一朝用武" could be translated word-for-word as "hundred generations cultivate writing, one morning use martial"—but "A hundred generations cultivate learning; one dawn demands the sword" carries the meaning and rhythm.

09

QUALITY FILTER

Generated mottos pass through a filter before making it to the final output. The framing that worked best: the HBO/BBC Historical Drama Test.

The prompt

"You are a historical consultant for premium TV productions like HBO's Rome or BBC's The Last Kingdom. Would this phrase feel authentic and natural if spoken by a character or displayed on a banner in a prestige historical drama about this culture?"

The criteria are surprisingly concrete:

  • Could be carved on a medieval banner, seal, or tombstone — not just a phrase but something a house would choose to represent them forever
  • A character in the show could say it with a straight face — the cringe test
  • Feels specific to THIS culture's values, imagery, religion — not generic warrior platitudes
  • Evokes the right time period and worldview — no anachronisms

The filter runs mottos through three different LLMs (Claude, GPT-4, Gemini), each applying the same test independently. A motto only passes if it gets 2/3 or 3/3 TRUE votes.

Example vote distribution (Japanese martial)
[CGM]"The blade remembers what the hand forgets"3/3 ✓
[CG-]"Fall seven times, rise eight"2/3 ✓
[C--]"Honor above all else"1/3 ✗
[---]"Victory or death"0/3 ✗

[C] = Claude, [G] = GPT-4, [M] = Gemini. The multi-judge approach catches mottos that pass one model's bar but not another's.

Key Insight
Using multiple judges matters. Some models are more permissive than others. A motto that slips past one judge often fails another. The consensus requirement filters out the marginal cases that any single model might let through.

Final retention rate: remarkably consistent ~70% across all cultures. The filter is aggressive enough to cut the generic ("Honor above all else") while preserving the distinctive ("The blade remembers what the hand forgets").

10

CROSS-CULTURAL GALLERY

Final output samples with explanations of why each works:

Korean
"The crane does not fight, yet all birds clear its path"
The crane is one of the "Four Gentlemen" symbols in Korean/Chinese culture, representing nobility and longevity. The motto reflects Confucian ideals: moral authority achieved through virtue, not violence. A house that embodies this gains respect without needing to demand it.
"A name earned through virtue passes to descendants unworn"
Reflects the Confucian emphasis on reputation (myeong) as inheritable treasure. Korean noble families traced their prestige through genealogical records (jokbo). Unlike material wealth that diminishes when divided, virtuous reputation grows across generations.
Akan (West African)
"Before the Golden Stool, who will sleep?"
The Sika Dwa Kofi (Golden Stool) contains the soul of the entire Asante nation, living, dead, and yet to be born. It's more sacred than any king. When Okomfo Anokye conjured it from the sky, all leaders swore to defend it with their blood. This motto invokes that oath.
"Shame we flee; death, we go to meet it"
Directly echoes the Akan proverb "Feree ne animguasee dee fanyinam owuo" (It is better to die than be disgraced). Honor (animuonyam) vs. shame (animguase) is the central axis of Akan ethics. A dishonored person is socially dead; physical death is preferable.
Baltic
"Perkūnas hears the one who lies"
Perkūnas is the Baltic thunder god, invoked when making solemn oaths. Breaking an oath meant divine punishment. Lithuania remained pagan until 1387, the last such state in Europe. This motto carries that pre-Christian worldview where gods actively police human conduct.
"A guest beneath the roof, a god beneath the roof"
Sacred hospitality in Baltic culture meant guests were under divine protection. The host's honor depended on the guest's safety. This parallels similar concepts across Indo-European cultures but takes on special weight in the isolated Baltic highlands.
Albanian
"What the fathers left, we do not sell"
Reflects the Kanun (customary law code) which treats ancestral land and the family tower (kulla) as inalienable. Honor (nderi) passes through generations; selling inheritance would bring shame on all descendants. Albanian highland culture survived intact into the 20th century precisely because of this fierce attachment.
"We know the fields by name, the stones by blood"
Blood feuds (gjakmarrja) were sacred obligations under the Kanun, and they shaped the landscape. The saying captures how Albanian families read their territory through generations of conflict and cultivation, each feature carrying memory.
Indian
"The treasury full, dharma stands firm"
Echoes the Sanskrit principle that righteous rule (dharma) requires material foundation. The prasasti (royal eulogy) tradition praised kings for both martial conquest and economic prosperity. A house that cannot feed its people cannot uphold dharma.
"Inscribed on copper-plate as long as moon and sun endure"
This directly references the perpetuity formula used in actual medieval Indian copper-plate grants: "a-candr-arka-sama-kala" (as long as moon and sun endure). These grants recorded land donations and royal decrees, meant to last forever.
Gothic
"Wanderings ended, the house stands"
Captures the core Gothic paradox: a migration people who finally settled. The Goths moved from Scandinavia to Poland to the Black Sea to Italy to Spain, preserving memory of their journey for sixteen generations. This motto speaks to that tension between perpetual wandering and the desire to establish something lasting.
"Hold fast what the fathers won"
Gothic nobility was earned through both blood and battle. Unlike settled peoples who inherited status passively, Gothic legitimacy required continuous demonstration of martial excellence. The Visigothic royal house was literally named "Balthi" (The Bold). This motto carries that ethos.
11

BY THE NUMBERS

53
cultures
318
culture × lifestyle combos
~14k
raw mottos generated
~10k
after quality filter
European: Norse, Byzantine, Celtic (Goidelic, Brythonic), French, German, West Germanic, Gothic, Iberian, Italian, Slavic, Baltic, Balto-Finnic, Magyar, Vlach, Albanian, Basque, Caucasian
Middle Eastern & Central Asian: Arabic, Persian, Israelite, Syriac, Steppe (Mongolic/Turkic), Sogdian, Tocharian, Alan-Scythian, Hunnic, Tungusic
African: Berber, Egyptian, Ethiopian, East African, West African, Central African, Sahelian, Senegambian, Somalian, Akan, Yoruba, Bantu
South & Southeast Asian: Indian, Dravidian, Tibetan, Burman, Mon-Khmer, Tai, Viet, Austronesian
East Asian & Siberian: Chinese, Korean, Japanese, Ainu, Buyeo, Hmong-Mien, Qiangic, Nivkh, Samoyed, Ugric, Ugro-Permian, Volga Finnic
Ancient/Classical: Ancient Greek
12

WHAT'S NEXT

The mod will be on the Steam Workshop soon. I'm still cleaning up a few edge cases and adding the remaining cultures.

Beyond mottos, I'm exploring how these techniques might apply to other procedurally-generated text in CK3 and other Paradox games: character nicknames, event flavor text, dynasty legacies, realm names. The same principle holds: deep cultural research + persona-driven generation + quality filtering produces output that feels authentic rather than generic.

If you're an expert (or just knowledgeable) in any of these cultures and spot something wrong, please reach out. The pipeline is only as good as the research feeding it, and I'd rather fix inaccuracies than ship them. Especially for the less-documented cultures (Ainu, Akan, Sogdian, etc.), any corrections or additional context would be valuable.

You can find me on Twitter/X at @liggi or email me at jasonliggi@gmail.com.

END OF FILE█▓▒░ liggi.dev