docs(meta): add comprehensive visual asset requirements document
Catalogues all ~200+ visual assets needed across milestones M1-M8, with verified specs from CK3 v1.18 game files. Covers trait icons, modifier icons, decision illustrations, map files, loading screens, bookmark art, CoA emblems, religion icons, lifestyle assets, activity assets, event backgrounds, portraits, and workshop thumbnail. Includes DDS production guide, priority ordering, art style guide, and complete gfx/ directory structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,954 @@
|
||||
# Required Visual Assets — Lords of Ash
|
||||
|
||||
> Complete inventory of every visual asset needed across all milestones, from
|
||||
> placeholder icons to publication-ready map art.
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Count | Format | First Needed |
|
||||
|---|---|---|---|
|
||||
| Trait icons | ~26 | DDS (uncompressed ARGB), 120x120 | M8 |
|
||||
| Modifier icons | ~20 | DDS (uncompressed ARGB), 60x60 | M4/M8 |
|
||||
| Decision illustrations | ~10 | DDS (DXT1), 1100x440 | M8 |
|
||||
| Loading screens | 3-5 | DDS (DXT1), 3840x2160 | M8 |
|
||||
| Bookmark art | 6 | DDS (DXT1/DXT5), 1920x1080 + UI sizes | M8 |
|
||||
| Coat of Arms emblems | 12-15 | DDS (uncompressed ARGB), 128x128 | M3/M8 |
|
||||
| Religion icons | 4-5 | DDS (uncompressed ARGB), 100x100 | M3/M8 |
|
||||
| Men-at-Arms icons | 5 | DDS (DXT5), 60x60 | M8 |
|
||||
| Event scene backgrounds | 8 | DDS, 1592x848 | M4/M8 |
|
||||
| Custom map files | 20+ | PNG/BMP/DDS/CSV (see specs) | M8 |
|
||||
| Portrait assets | varies | DDS (DXT5), 1024x1024 | M8 |
|
||||
| Building icons | 5 | DDS (ARGB 32bpp), 60x60 | M3/M8 |
|
||||
| Lifestyle assets | ~45+ | DDS, various (see 4d) | M4 |
|
||||
| Activity assets | ~8+ per activity | DDS, various (see 4e) | M4 |
|
||||
| Scheme icons | 2 | DDS, 120x120 | M4 |
|
||||
| Bookmark art | 6 | DDS (DXT1/DXT5), various | M8 |
|
||||
| Frontend art (optional) | 2 | DDS (DXT1), 3840x2160 | M8 |
|
||||
| Workshop thumbnail | 1 | PNG, 512x512 | M8 |
|
||||
| **Total unique assets** | **~200+** | | |
|
||||
|
||||
### Current State: **0 assets exist**
|
||||
|
||||
The mod references 50+ icon paths in code (traits, modifiers, decisions) but the
|
||||
`gfx/` directory does not exist. All culture graphics fall back to vanilla
|
||||
`western_*_gfx` packs. No custom map data exists.
|
||||
|
||||
---
|
||||
|
||||
## DDS Production Guide
|
||||
|
||||
All CK3 icon and illustration assets use the **DDS (DirectDraw Surface)** format.
|
||||
|
||||
### Compression & Format Types (verified from CK3 v1.18 game files)
|
||||
|
||||
| Use case | Format | Mipmaps | Notes |
|
||||
|---|---|---|---|
|
||||
| Trait icons (120x120) | **Uncompressed ARGB 32bpp** | **No** | Full alpha channel. NOT DXT compressed. |
|
||||
| Modifier icons (60x60) | **Uncompressed ARGB 32bpp** | **Yes** (6 levels) | Full alpha channel. |
|
||||
| Decision illustrations (1100x440) | **DXT1 / BC1** | **No** | No alpha needed. Some DLC use 2x (2200x880). |
|
||||
| Loading screens (3840x2160) | **DXT1 / BC1** | **No** | Full 4K resolution. |
|
||||
| Faith icons (100x100) | **Uncompressed ARGB** | **No** | Full alpha. |
|
||||
| CoA colored emblems (128x128) | **Uncompressed ARGB 32bpp** | **No** | Required for color mask system. B8G8R8A8 Linear. |
|
||||
| CoA patterns (256x256) | **DXT1 / BC1** | — | Opaque. |
|
||||
| Tenet icons (260x400) | **DXT5 / BC3** | — | Tall format, with alpha. |
|
||||
| Portrait textures | **DXT5 / BC3** | Yes | 1024x1024 typical. |
|
||||
| Map terrain textures | **DXT5 / BC3** | Yes | Tiling textures. |
|
||||
| Bookmark backgrounds (1920x1080) | **DXT1 / BC1** | **No** | Opaque illustrations. |
|
||||
| Bookmark character overlays (1920x1080) | **DXT5 / BC3** | **No** | With alpha for compositing. |
|
||||
|
||||
### Tools
|
||||
- **GIMP** + NVIDIA DDS plugin (or GIMP 2.10+ built-in) — supports uncompressed ARGB export
|
||||
- **Paint.NET** + DDS FileType Plus plugin — reliable, easy UI
|
||||
- **texconv** (Microsoft DirectXTex) — CLI batch conversion from PNG to DDS
|
||||
- **Photoshop** + Intel Texture Works plugin
|
||||
- **Blender** / **Maya** — for portrait 3D model work (with CK3 export addon)
|
||||
|
||||
### Workflow
|
||||
1. Design at **exact target resolution** in PNG with transparent background
|
||||
2. Export to DDS with the **correct format per asset type** (see table above)
|
||||
3. Generate mipmaps **only where required** (modifier icons: yes; trait icons: no)
|
||||
4. Place in correct `gfx/` subdirectory with exact filename matching code reference
|
||||
|
||||
### Common Pitfalls
|
||||
- **Trait icons must be uncompressed ARGB**, not DXT5 — wrong format causes invisible icons
|
||||
- **Trait icons are 120x120**, not 60x60 — wrong resolution causes scaling artifacts
|
||||
- Missing mipmaps on modifier icons cause blurry scaling
|
||||
- Anti-aliased edges in province maps crash the game
|
||||
- CoA emblems **must use uncompressed ARGB** for the color mask system to work
|
||||
- DDS files must match the **exact** filename referenced in code (case-sensitive on Linux)
|
||||
- Loading screens are **4K (3840x2160)**, not 1080p — lower res will appear blurry
|
||||
|
||||
---
|
||||
|
||||
## M1: Foundation
|
||||
|
||||
> *No visual assets required.* M1 is about data correctness — province history,
|
||||
> scripted triggers, game rules, vanilla suppression. All visual display uses
|
||||
> vanilla fallbacks.
|
||||
|
||||
**Assets needed: 0**
|
||||
|
||||
---
|
||||
|
||||
## M2: The Metallic Arts
|
||||
|
||||
> *No visual assets required.* M2 validates and completes all metallic arts
|
||||
> mechanics (traits, events, MaA balance). Trait icons will show as blank
|
||||
> placeholders until M8, which is acceptable for testing.
|
||||
|
||||
**Assets needed: 0**
|
||||
|
||||
(Trait icon paths are defined in code during M2 but the actual `.dds` files are
|
||||
created in M8. Missing icons produce a "missing texture" log warning but don't
|
||||
crash the game.)
|
||||
|
||||
---
|
||||
|
||||
## M3: The Final Empire
|
||||
|
||||
> *Canonical characters, religions, buildings, kandra. Some assets benefit
|
||||
> immersion but are not strictly required for functionality.*
|
||||
|
||||
### 3a. Coat of Arms Emblems (Optional, polish in M8)
|
||||
|
||||
Custom dynasty and house crests for the 10 Great Houses, Lord Ruler, and special
|
||||
factions. In M3 these can use vanilla auto-generated CoA; custom emblems add
|
||||
polish.
|
||||
|
||||
**Directory:** `gfx/coat_of_arms/colored_emblems/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `ce_house_venture.dds` | DDS (ARGB 32bpp) | 128x128 | House Venture — silver tower |
|
||||
| `ce_house_hasting.dds` | DDS (ARGB 32bpp) | 128x128 | House Hasting — crossed swords |
|
||||
| `ce_house_elariel.dds` | DDS (ARGB 32bpp) | 128x128 | House Elariel — rose motif |
|
||||
| `ce_house_lekal.dds` | DDS (ARGB 32bpp) | 128x128 | House Lekal — shield/lion |
|
||||
| `ce_house_erikeller.dds` | DDS (ARGB 32bpp) | 128x128 | House Erikeller — crest |
|
||||
| `ce_house_tekiel.dds` | DDS (ARGB 32bpp) | 128x128 | House Tekiel — merchant scales |
|
||||
| `ce_house_bylerum.dds` | DDS (ARGB 32bpp) | 128x128 | House Bylerum — crest |
|
||||
| `ce_house_getrue.dds` | DDS (ARGB 32bpp) | 128x128 | House Getrue — crest |
|
||||
| `ce_house_urbain.dds` | DDS (ARGB 32bpp) | 128x128 | House Urbain — crest |
|
||||
| `ce_house_entrone.dds` | DDS (ARGB 32bpp) | 128x128 | House Entrone — crest |
|
||||
| `ce_house_rashek.dds` | DDS (ARGB 32bpp) | 128x128 | Lord Ruler's house — atium/sun motif |
|
||||
| `ce_terris_synod.dds` | DDS (ARGB 32bpp) | 128x128 | Terris Synod — metalminds |
|
||||
| `ce_kelsier_crew.dds` | DDS (ARGB 32bpp) | 128x128 | Kelsier's crew — mistcloak/coin |
|
||||
|
||||
**Color mask system:** Colored emblems use three recognized mask colors:
|
||||
- Color 1: `#000084` (blue)
|
||||
- Color 2: `#00FF94` (light green)
|
||||
- Color 3: `#FF0084` (magenta)
|
||||
|
||||
The engine tints these regions at runtime based on the CoA color definition.
|
||||
Emblems **must use uncompressed ARGB 32bpp (B8G8R8A8 Linear)** — DXT compression
|
||||
breaks the color mask system.
|
||||
|
||||
**Emblem registration:** Each emblem needs an entry in a definition file at
|
||||
`gfx/coat_of_arms/colored_emblems/`:
|
||||
```
|
||||
ce_house_venture.dds = {
|
||||
colors = 3 # Number of color channels (1, 2, or 3)
|
||||
visible = yes # Show in CoA designer
|
||||
}
|
||||
```
|
||||
|
||||
**CoA definitions** go in `common/coat_of_arms/coat_of_arms/` and auto-match by
|
||||
keyname (dynasty/house/title key = CoA key).
|
||||
|
||||
**Also needed:**
|
||||
- **Patterns** in `gfx/coat_of_arms/patterns/` — 256x256, DXT1 (optional, can
|
||||
reuse vanilla)
|
||||
- **CoA mask** at `gfx/coat_of_arms/coa_mask_texture.dds` — 256x256, DXT1
|
||||
(optional, vanilla default works)
|
||||
|
||||
**Count: ~13 emblems**
|
||||
|
||||
### 3b. Religion Icons (Optional, polish in M8)
|
||||
|
||||
**Faith icons** — `gfx/interface/icons/faith/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `steel_ministry.dds` | DDS (ARGB 32bpp) | 100x100 | Steel Ministry sigil — vertical lines/spikes |
|
||||
| `terris_worldbringers.dds` | DDS (ARGB 32bpp) | 100x100 | Keeper symbol — metalminds |
|
||||
| `survivorism.dds` | DDS (ARGB 32bpp) | 100x100 | Survivor symbol — scars/mist |
|
||||
| `ruin_religion.dds` | DDS (ARGB 32bpp) | 100x100 | Ruin symbol — cracked/destructive |
|
||||
|
||||
Referenced in religion definition via `icon = <name_without_extension>`.
|
||||
|
||||
**Doctrine icons** (optional) — `gfx/interface/icons/faith_doctrine_groups/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| Custom doctrine group icons | DDS (ARGB) | 120x120 | One per custom doctrine group |
|
||||
|
||||
**Tenet icons** (optional) — `gfx/interface/icons/faith_doctrines/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| Custom tenet icons | DDS (DXT5) | 260x400 | Tall format. One per custom tenet. |
|
||||
|
||||
**Count: 4 faith icons (required) + doctrine/tenet icons (optional)**
|
||||
|
||||
### 3c. Building Icons (Optional, polish in M8)
|
||||
|
||||
Special buildings defined in M3 (Kredik Shaw, Pits of Hathsin, Conventical of
|
||||
Seran, Great Library of Tathingdwen, Urteau Canal) need icons for the holding
|
||||
view.
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Kredik Shaw | `gfx/interface/icons/buildings/building_kredik_shaw.dds` | DDS (ARGB 32bpp) | 60x60 | Spired fortress |
|
||||
| Pits of Hathsin | `gfx/interface/icons/buildings/building_pits_of_hathsin.dds` | DDS (ARGB 32bpp) | 60x60 | Mining pit / caves |
|
||||
| Conventical of Seran | `gfx/interface/icons/buildings/building_conventical_seran.dds` | DDS (ARGB 32bpp) | 60x60 | Dark monastery |
|
||||
| Great Library | `gfx/interface/icons/buildings/building_tathingdwen_library.dds` | DDS (ARGB 32bpp) | 60x60 | Grand library |
|
||||
| Urteau Canal | `gfx/interface/icons/buildings/building_urteau_canal.dds` | DDS (ARGB 32bpp) | 60x60 | Canal/waterway |
|
||||
|
||||
**Count: 5 icons**
|
||||
|
||||
---
|
||||
|
||||
## M4: Scadrial on the Map
|
||||
|
||||
> *The vanilla map feels like Scadrial. Province modifiers, custom CBs, schemes,
|
||||
> lifestyles, activities, and rethemed court content.*
|
||||
|
||||
### 4a. Province Modifier Icons
|
||||
|
||||
New province modifiers defined in M4 need icons.
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Heavy Mists | `gfx/interface/icons/modifiers/modifier_mist_heavy.dds` | DDS (ARGB 32bpp) | 60x60 | Thick swirling mist |
|
||||
| Fertile Ashland | `gfx/interface/icons/modifiers/modifier_fertile_ashland.dds` | DDS (ARGB 32bpp) | 60x60 | Green sprout in grey ash |
|
||||
|
||||
**Count: 2 icons**
|
||||
|
||||
### 4b. Custom Casus Belli Icons
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Rebellion CB | `gfx/interface/icons/casus_belli/cb_rebellion.dds` | DDS (ARGB 32bpp) | 60x60 | Raised fist / broken chain |
|
||||
| House Conquest | `gfx/interface/icons/casus_belli/cb_house_conquest.dds` | DDS (ARGB 32bpp) | 60x60 | Sword over noble crest |
|
||||
| Reclaim Dominance | `gfx/interface/icons/casus_belli/cb_reclaim_dominance.dds` | DDS (ARGB 32bpp) | 60x60 | Crown / territory map |
|
||||
|
||||
**Count: 3 icons**
|
||||
|
||||
### 4c. Scheme Icons
|
||||
|
||||
Scheme definitions reference icons via `icon = icon_scheme_<name>` which maps to
|
||||
`gfx/interface/icons/scheme_types/icon_scheme_<name>.dds`.
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Noble Infiltration | `gfx/interface/icons/scheme_types/icon_scheme_noble_infiltration.dds` | DDS | 120x120 | Masked figure at a ball |
|
||||
| Skaa Recruitment | `gfx/interface/icons/scheme_types/icon_scheme_skaa_recruit.dds` | DDS | 120x120 | Hidden handshake |
|
||||
|
||||
Schemes also reference an `illustration` field pointing to an event scene DDS
|
||||
for the scheme window background (see section 4f event backgrounds).
|
||||
|
||||
**Count: 2 icons**
|
||||
|
||||
### 4d. Lifestyle Assets
|
||||
|
||||
5 Mistborn-themed lifestyles planned in M4, each with a tree of perks. CK3
|
||||
lifestyles require multiple asset types (verified from game files):
|
||||
|
||||
**Lifestyle strip icons:** `gfx/interface/icons/lifestyles/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `allomantic_lifestyle.dds` | DDS | 480x160 | 3-frame sprite strip — burning metals motif |
|
||||
| `political_lifestyle.dds` | DDS | 480x160 | Noble court / intrigue motif |
|
||||
| `underworld_lifestyle.dds` | DDS | 480x160 | Shadowy thieving crew motif |
|
||||
| `keeper_lifestyle.dds` | DDS | 480x160 | Terris keeper with metalminds motif |
|
||||
| `military_lifestyle.dds` | DDS | 480x160 | Hazekillers / Koloss battle motif |
|
||||
|
||||
**Focus icons:** `gfx/interface/icons/focuses/` — 140x140 DDS, ~3 per lifestyle
|
||||
|
||||
| Lifestyle | Focus count (est.) | Example names |
|
||||
|---|---|---|
|
||||
| Allomantic | 3 | `allomantic_burning_focus`, `allomantic_pushing_focus`, `allomantic_enhancement_focus` |
|
||||
| Political | 3 | `political_authority_focus`, `political_scheming_focus`, `political_diplomacy_focus` |
|
||||
| Underworld | 3 | `underworld_thieving_focus`, `underworld_smuggling_focus`, `underworld_recruitment_focus` |
|
||||
| Keeper | 3 | `keeper_knowledge_focus`, `keeper_breeding_focus`, `keeper_preservation_focus` |
|
||||
| Military | 3 | `military_command_focus`, `military_hazekiller_focus`, `military_koloss_focus` |
|
||||
|
||||
**Perk tree backgrounds:** `gfx/interface/icons/lifestyle_tree_backgrounds/` — 348x812 DDS (tall strip), one per perk tree (~15 total for 5 lifestyles x 3 trees)
|
||||
|
||||
**Lifestyle background illustrations:** `gfx/interface/illustrations/lifestyles_background/` — 608x1552 DDS (very tall vertical sidebar art), one per lifestyle
|
||||
|
||||
**Perk node icons:** `gfx/interface/icons/lifestyles_perks/` — 180x60 DDS per node type
|
||||
|
||||
**Count: 5 lifestyle strips + ~15 focus icons + ~15 tree backgrounds + 5 sidebar illustrations + perk nodes = ~45+ assets**
|
||||
|
||||
### 4e. Activity Assets
|
||||
|
||||
Rethemed activities (Noble Ball, Mist Patrol). CK3 activities require multiple
|
||||
visual asset types (verified from game files):
|
||||
|
||||
**Activity icons:** `gfx/interface/icons/activities/` — 80x80 standard + 164x164 header variant
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `activity_noble_ball.dds` | DDS | 80x80 | Ball activity icon |
|
||||
| `activity_noble_ball_header.dds` | DDS | 164x164 | Ball header variant |
|
||||
| `activity_mist_patrol.dds` | DDS | 80x80 | Mist patrol icon |
|
||||
| `activity_mist_patrol_header.dds` | DDS | 164x164 | Mist patrol header |
|
||||
|
||||
**Activity header backgrounds:** `gfx/interface/illustrations/activity_header_backgrounds/` — 1100x440 DDS
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `activity_noble_ball.dds` | DDS | 1100x440 | Grand ballroom panoramic |
|
||||
| `activity_mist_patrol.dds` | DDS | 1100x440 | Soldiers in mist panoramic |
|
||||
|
||||
**Activity type illustrations** (vertical sidebar): `gfx/interface/illustrations/activity_types/` — 460x1100 DDS
|
||||
|
||||
**Activity phase icons** (optional): `gfx/interface/icons/activity_phases/` — 140-160px DDS
|
||||
|
||||
**Activity intent icons** (optional): `gfx/interface/icons/activity_intents/` — 60x60 DDS
|
||||
|
||||
**Count: 4 icons + 2 headers + optional type/phase/intent icons = ~8+ assets per activity**
|
||||
|
||||
### 4f. Event Background Themes
|
||||
|
||||
Custom event themes so events don't use vanilla European backdrops. Vanilla has
|
||||
205 event scene illustrations at 1592x848 (verified from game files).
|
||||
|
||||
**Directory:** `gfx/interface/illustrations/event_scenes/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `mistborn_court.dds` | DDS | 1592x848 | Noble court with ash-stained windows |
|
||||
| `mistborn_streets.dds` | DDS | 1592x848 | Luthadel street scene, ash and mist |
|
||||
| `mistborn_wilderness.dds` | DDS | 1592x848 | Ash plains with distant ashmount |
|
||||
| `mistborn_ball.dds` | DDS | 1592x848 | Ballroom scene, chandeliers, nobility |
|
||||
| `mistborn_dungeon.dds` | DDS | 1592x848 | Dark dungeon / Pits of Hathsin caves |
|
||||
| `mistborn_temple.dds` | DDS | 1592x848 | Steel Ministry canton interior |
|
||||
| `mistborn_battlefield.dds` | DDS | 1592x848 | Battle scene with Koloss, ash |
|
||||
| `mistborn_mists.dds` | DDS | 1592x848 | Dense mist scene, mysterious |
|
||||
|
||||
**Event background definitions** go in `common/event_backgrounds/`:
|
||||
```
|
||||
mistborn_court_background = {
|
||||
background = {
|
||||
reference = "gfx/interface/illustrations/event_scenes/mistborn_court.dds"
|
||||
environment = "environment_event_courtroom"
|
||||
ambience = "event:/SFX/Events/Backgrounds/castle_interior"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Event themes** go in `common/event_themes/` and reference the backgrounds:
|
||||
```
|
||||
mistborn_court_theme = {
|
||||
background = { reference = "mistborn_court_background" }
|
||||
icon = { reference = "gfx/interface/icons/event_types/type_intrigue.dds" }
|
||||
}
|
||||
```
|
||||
|
||||
Events reference themes via `theme = mistborn_court_theme`.
|
||||
|
||||
**Event type icons** (optional): `gfx/interface/icons/event_types/` — 148x148 DDS
|
||||
|
||||
**Count: 8 scene backgrounds + definition files**
|
||||
|
||||
---
|
||||
|
||||
## M5: The Crew
|
||||
|
||||
> *Kelsier's unlanded adventurer band. Bookmark rework.*
|
||||
|
||||
### 5a. Bookmark Character Portraits
|
||||
|
||||
Bookmark characters need curated portraits. CK3 uses the DNA/gene system for
|
||||
portraits, not separate image files. However, the bookmark screen shows a
|
||||
rendered portrait panel.
|
||||
|
||||
**No separate image files needed** — character appearance is controlled via
|
||||
`has_scripted_appearance = yes` and custom DNA strings in history files. But the
|
||||
DNA strings must be carefully crafted for:
|
||||
- Kelsier (scarred arms, confident look, skaa features)
|
||||
- Vin (small, young, dark hair, mistrustful expression)
|
||||
- Elend Venture (noble, scholarly appearance)
|
||||
- Straff Venture (older, stern noble)
|
||||
|
||||
**Count: 0 image files** (DNA is data, not art — but requires careful design)
|
||||
|
||||
---
|
||||
|
||||
## M6: The Plan
|
||||
|
||||
> *Core narrative arc events. No new visual asset categories introduced.*
|
||||
|
||||
### 6a. Additional Modifier Icons
|
||||
|
||||
New modifiers introduced in M6 event arcs:
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Full Crew Assembled | `gfx/interface/icons/modifiers/modifier_full_crew.dds` | DDS (ARGB 32bpp) | 60x60 | Circle of figures |
|
||||
|
||||
**Count: 1 icon**
|
||||
|
||||
---
|
||||
|
||||
## M7: The Deepness
|
||||
|
||||
> *All event arcs, atium economy, political intrigue, Mistborn duels.*
|
||||
|
||||
### 7a. Additional Modifier Icons
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Eleventh Metal Insight | `gfx/interface/icons/modifiers/modifier_eleventh_metal_insight.dds` | DDS (ARGB 32bpp) | 60x60 | Golden metal shard |
|
||||
| Duel Veteran | `gfx/interface/icons/modifiers/modifier_duel_veteran.dds` | DDS (ARGB 32bpp) | 60x60 | Crossed coin and sword |
|
||||
| Atium Contract Holder | `gfx/interface/icons/modifiers/modifier_atium_contract_holder.dds` | DDS (ARGB 32bpp) | 60x60 | Atium geode with scroll |
|
||||
| Mist Empowerment | `gfx/interface/icons/modifiers/modifier_mist_empowerment.dds` | DDS (ARGB 32bpp) | 60x60 | Swirling mist with glow |
|
||||
| False Flag Framed | `gfx/interface/icons/modifiers/modifier_false_flag_framed.dds` | DDS (ARGB 32bpp) | 60x60 | Two crests with knife |
|
||||
| Skaa Scandal Shame | `gfx/interface/icons/modifiers/modifier_skaa_scandal.dds` | DDS (ARGB 32bpp) | 60x60 | Broken noble mask |
|
||||
| Beauty in Ash | `gfx/interface/icons/modifiers/modifier_beauty_in_ash.dds` | DDS (ARGB 32bpp) | 60x60 | Flower against grey |
|
||||
| Hero of Ages | `gfx/interface/icons/modifiers/modifier_hero_of_ages.dds` | DDS (ARGB 32bpp) | 60x60 | Radiant figure in mist |
|
||||
| Ashmount Eruption | `gfx/interface/icons/modifiers/modifier_ashmount_eruption.dds` | DDS (ARGB 32bpp) | 60x60 | Erupting volcano |
|
||||
| Mist Fear | `gfx/interface/icons/modifiers/modifier_mist_fear.dds` | DDS (ARGB 32bpp) | 60x60 | Cowering figure in fog |
|
||||
| Post-Empire Chaos | `gfx/interface/icons/modifiers/modifier_post_empire_chaos.dds` | DDS (ARGB 32bpp) | 60x60 | Crumbling tower |
|
||||
| Terris Breeding Program | `gfx/interface/icons/modifiers/modifier_terris_breeding.dds` | DDS (ARGB 32bpp) | 60x60 | Intertwined metalminds |
|
||||
|
||||
**Count: 12 icons**
|
||||
|
||||
### 7b. Additional Decision Illustrations
|
||||
|
||||
New decisions from M7 event arcs:
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Raid Noble House | `gfx/interface/illustrations/decisions/decision_raid.dds` | DDS (DXT1) | 1100x440 | Night raid on a noble keep |
|
||||
| Challenge Allomancer | `gfx/interface/illustrations/decisions/decision_duel.dds` | DDS (DXT1) | 1100x440 | Two Allomancers facing off in mist |
|
||||
| Assault Kredik Shaw | `gfx/interface/illustrations/decisions/decision_assault_kredik_shaw.dds` | DDS (DXT1) | 1100x440 | Siege of Lord Ruler's palace |
|
||||
|
||||
**Count: 3 illustrations**
|
||||
|
||||
---
|
||||
|
||||
## M8: The Art of Metals
|
||||
|
||||
> *Custom map, full graphics, publication polish. This is the primary art
|
||||
> milestone where most visual assets are created.*
|
||||
|
||||
### 8a. Custom Map Files
|
||||
|
||||
The single highest-risk and most labor-intensive asset category. CK3 maps require
|
||||
pixel-perfect files that work together as a set. All dimensions are relative to a
|
||||
base map size (W x H). **Width must be >= height** (known bug since v1.9: north
|
||||
part of heightmap renders black if height > width).
|
||||
|
||||
**Recommended base size:** 4096x2048 for a focused total conversion. Vanilla is
|
||||
8192x4096. Power-of-2 dimensions recommended.
|
||||
|
||||
**Directory:** `map_data/`
|
||||
|
||||
#### Core Map Files (required)
|
||||
|
||||
| File | Format | Dimensions | Depth | Description |
|
||||
|---|---|---|---|---|
|
||||
| `provinces.png` | PNG | W x H | 24-bit RGB | Province boundaries. Each province is a unique RGB color. **No anti-aliasing, no gradients, no alpha.** Every pixel must match exactly one color from `definition.csv`. Pencil tool only — never brush. Black (0,0,0) = impassable. |
|
||||
| `heightmap.png` | PNG | W x H | **16-bit greyscale, RGB mode** | Elevation data. **Must be RGB mode, not RGBA** (RGBA causes white fog rendering bug). Requires companion `heightmap.heightmap` declaring `original_heightmap_size { W H }`. After changes, must repack via CK3 map editor. Auto-generates `indirection_heightmap.png` (W/32 x H/32) and `packed_heightmap.png`. |
|
||||
| `rivers.png` | PNG (indexed) | W x H | Indexed RGB | River network. **No anti-aliasing, no transparency** (causes CTD). River pixels must be orthogonally adjacent to max 2 other river pixels; splits/joins max 3. |
|
||||
| `definition.csv` | CSV (`;` delimited) | — | — | `ID;R;G;B;Name;x;` — Province ID to RGB mapping. **IDs must be sequential** or game crashes. ~160 rows. |
|
||||
| `default.map` | Text | — | — | Master config. Province type flags: blank=land, R=rivers, L=lakes, O=oceans, W=wasteland, IS=impassable seas, IM=impassable mountains. |
|
||||
| `adjacencies.csv` | CSV | — | — | `From;To;Type;Through;start_x;start_y;stop_x;stop_y;Comment`. Types: `sea`, `river_large`. **Must end with** `-1;-1;;-1;-1;-1;-1;-1;` or infinite load. |
|
||||
|
||||
**River color conventions:**
|
||||
|
||||
| Color | RGB | Meaning |
|
||||
|---|---|---|
|
||||
| Green | `#00FF00` | River source |
|
||||
| Red | `#FF0000` | Tributary junction |
|
||||
| Yellow | `#FFFC00` | River split |
|
||||
| Magenta | `#FF0080` | Sea/lake/navigable water connection |
|
||||
| White | `#FFFFFF` | Land (no river) |
|
||||
| Blue gradient | Various | River flow (darker = wider) |
|
||||
|
||||
**Scadrial heightmap values:** Ashmounts: 220-250, Terris mountains: 180-220,
|
||||
Central plains: 40-60, River valleys: 20-35, Ocean: 0.
|
||||
|
||||
#### Terrain Files
|
||||
|
||||
| File | Format | Dimensions | Description |
|
||||
|---|---|---|---|
|
||||
| Terrain masks (`*_mask.bmp`) | BMP (greyscale) | W x H | One per terrain type (e.g., `plains_01_mask.bmp`). Max height 4096px. |
|
||||
| Terrain diffuse (`*_diffuse.dds`) | DDS (BC3/DXT5) | Tiling | Albedo/color texture per terrain type. With mipmaps. |
|
||||
| Terrain normal (`*_normal.dds`) | DDS (BC3/DXT5) | Tiling | Normal map per terrain type. |
|
||||
| Terrain properties (`*_properties.dds`) | DDS (BC3/DXT5) | Tiling | PBR: R=unused, G=specular, B=metalness, A=roughness. |
|
||||
| `detail_index.tga` | TGA | W x H | Detail texture index map. |
|
||||
| `detail_intensity.tga` | TGA | W x H | Detail texture intensity. |
|
||||
| `colormap.dds` | DDS | W/2 x H/2 | Overall color overlay at quarter resolution. |
|
||||
| `flatmap.dds` | DDS | W x H | Paper/flat map view texture. |
|
||||
| `materials.settings` | Text | — | Maps texture sets to mask files. |
|
||||
|
||||
Province terrain assignment is defined separately in
|
||||
`common/province_terrain/00_province_terrain.txt` using the format
|
||||
`province_id = terrain_type`. 14 vanilla terrain types: `plains`, `farmlands`,
|
||||
`hills`, `mountains`, `desert`, `desert_mountains`, `oasis`, `jungle`, `forest`,
|
||||
`taiga`, `wetlands`, `steppe`, `floodplains`, `drylands`.
|
||||
|
||||
#### Water & Environment Files
|
||||
|
||||
| File | Path | Format | Dimensions |
|
||||
|---|---|---|---|
|
||||
| `flowmap.dds` | `gfx/map/water/` | DDS | W/2 x H/2 |
|
||||
| `foam_map.dds` | `gfx/map/water/` | DDS | W/4 x H/4 |
|
||||
| `watercolor_rgb_waterspec_a.dds` | `gfx/map/water/` | DDS | W/√2 x H/√2 |
|
||||
| `surround_mask.dds` | `gfx/map/surround_map/` | DDS | W/√2 x H/√2 |
|
||||
| `surround_fade.dds` | `gfx/map/surround_map/` | DDS | W/4 x H/4 |
|
||||
| `surround_tile.dds` | `gfx/map/surround_map/` | DDS | Tiling |
|
||||
|
||||
#### Map Object Placement (3D objects on map)
|
||||
|
||||
| File | Path | Format | Description |
|
||||
|---|---|---|---|
|
||||
| `building_locators.txt` | `gfx/map/map_object_data/` | Text | Holding/building positions per barony |
|
||||
| `combat_locators.txt` | `gfx/map/map_object_data/` | Text | Army combat positions |
|
||||
| `player_stack_locators.txt` | `gfx/map/map_object_data/` | Text | Raised army positions |
|
||||
| `siege_locators.txt` | `gfx/map/map_object_data/` | Text | Siege weapon positions |
|
||||
| `positions.txt` | `map_data/` | Text | City/unit/text positions per province |
|
||||
|
||||
Locator files can be auto-generated using the CK3 map editor's auto-nudge tool.
|
||||
|
||||
#### Defines (required for custom map dimensions)
|
||||
|
||||
| File | Key | Value |
|
||||
|---|---|---|
|
||||
| `common/defines/00_defines.txt` | `WORLD_EXTENTS_X` | W - 1 |
|
||||
| `common/defines/00_defines.txt` | `WORLD_EXTENTS_Z` | H - 1 |
|
||||
| `common/defines/00_defines.txt` | `WATERLEVEL` | Height for ocean/lake |
|
||||
| `common/defines/graphic/00_graphics.txt` | `PANNING_WIDTH` | W |
|
||||
| `common/defines/graphic/00_graphics.txt` | `PANNING_HEIGHT` | H |
|
||||
|
||||
#### Dimension Relationships Summary
|
||||
|
||||
All dimensions relative to base map (W x H):
|
||||
|
||||
| File | Size |
|
||||
|---|---|
|
||||
| provinces.png, rivers.png, heightmap.png | W x H |
|
||||
| flatmap.dds, detail_index/intensity, terrain masks | W x H |
|
||||
| colormap.dds, flowmap.dds | W/2 x H/2 (quarter) |
|
||||
| watercolor.dds, surround_mask.dds | ~W/1.4 x H/1.4 (half area) |
|
||||
| foam_map.dds, surround_fade.dds | W/4 x H/4 (sixteenth) |
|
||||
| indirection_heightmap.png | W/32 x H/32 |
|
||||
|
||||
**Map geography should depict:**
|
||||
- Roughly circular landmass with Luthadel at center
|
||||
- Terris mountains in the north
|
||||
- Ashmounts scattered throughout (5+ volcanic peaks)
|
||||
- River Channerel flowing south through Central Dominance
|
||||
- Pits of Hathsin in the south
|
||||
- Remote Dominance at the edges / frontier
|
||||
- Ocean or impassable wasteland beyond the Empire borders
|
||||
|
||||
**Recommended approach:** Start with 4096x2048 for prototyping. The
|
||||
[Atlantis TC template](https://github.com/bombusfrigidus/Atlantis) provides a
|
||||
clean starting scaffold for total conversion map_data structure.
|
||||
|
||||
**Count: ~20+ image/data files across map_data/ and gfx/map/**
|
||||
|
||||
### 8b. Trait Icons
|
||||
|
||||
Every metallic arts trait defined in `common/traits/` needs a custom icon.
|
||||
|
||||
**Directory:** `gfx/interface/icons/traits/`
|
||||
|
||||
**Allomancy Misting traits (12 icons):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_misting_coinshot.dds` | DDS (ARGB 32bpp) | 120x120 | Steel — blue/silver pushing-coins motif |
|
||||
| `trait_misting_lurcher.dds` | DDS (ARGB 32bpp) | 120x120 | Iron — dark pulling-metals motif |
|
||||
| `trait_misting_thug.dds` | DDS (ARGB 32bpp) | 120x120 | Pewter — fist/strength motif |
|
||||
| `trait_misting_tineye.dds` | DDS (ARGB 32bpp) | 120x120 | Tin — eye/enhanced senses motif |
|
||||
| `trait_misting_soother.dds` | DDS (ARGB 32bpp) | 120x120 | Brass — calming wave motif |
|
||||
| `trait_misting_rioter.dds` | DDS (ARGB 32bpp) | 120x120 | Zinc — flame/emotion motif |
|
||||
| `trait_misting_smoker.dds` | DDS (ARGB 32bpp) | 120x120 | Copper — cloud/shield motif |
|
||||
| `trait_misting_seeker.dds` | DDS (ARGB 32bpp) | 120x120 | Bronze — detection/pulse motif |
|
||||
| `trait_misting_augur.dds` | DDS (ARGB 32bpp) | 120x120 | Gold — mirror/past-self motif |
|
||||
| `trait_misting_oracle.dds` | DDS (ARGB 32bpp) | 120x120 | Atium — eye-of-the-future motif |
|
||||
| `trait_misting_duralumin.dds` | DDS (ARGB 32bpp) | 120x120 | Duralumin — amplification burst |
|
||||
| `trait_misting_nicroburst.dds` | DDS (ARGB 32bpp) | 120x120 | Nicrosil — external amplification |
|
||||
|
||||
**Mistborn (1 icon):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_mistborn.dds` | DDS (ARGB 32bpp) | 120x120 | All-metals motif, mist-swirling figure. This is the signature icon — make it striking. |
|
||||
|
||||
**Allomantic strength (3 icons):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_allomantic_strength_weak.dds` | DDS (ARGB 32bpp) | 120x120 | Dim/faded metal glow |
|
||||
| `trait_allomantic_strength_strong.dds` | DDS (ARGB 32bpp) | 120x120 | Bright metal glow |
|
||||
| `trait_allomantic_strength_savant.dds` | DDS (ARGB 32bpp) | 120x120 | Intense/dangerous glow with cracks |
|
||||
|
||||
**Allomantic potential (2 icons):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_allomantic_potential.dds` | DDS (ARGB 32bpp) | 120x120 | Dormant spark, hidden potential |
|
||||
| `trait_mistborn_potential.dds` | DDS (ARGB 32bpp) | 120x120 | Brighter dormant spark (Mistborn-level) |
|
||||
|
||||
**Feruchemy (2 icons):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_feruchemist.dds` | DDS (ARGB 32bpp) | 120x120 | Metalmind/arm-band motif, Terris styling |
|
||||
| `trait_feruchemy_potential.dds` | DDS (ARGB 32bpp) | 120x120 | Dormant metalmind motif |
|
||||
|
||||
**Hemalurgy (6 icons):**
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `trait_hemalurgist.dds` | DDS (ARGB 32bpp) | 120x120 | Dark spike motif, blood/corruption |
|
||||
| `trait_hemalurgic_steel.dds` | DDS (ARGB 32bpp) | 120x120 | Steel spike — thin, precise |
|
||||
| `trait_hemalurgic_pewter.dds` | DDS (ARGB 32bpp) | 120x120 | Pewter spike — thick, brutal |
|
||||
| `trait_hemalurgic_bronze.dds` | DDS (ARGB 32bpp) | 120x120 | Bronze spike — warm-toned |
|
||||
| `trait_hemalurgic_atium.dds` | DDS (ARGB 32bpp) | 120x120 | Atium spike — rare, glowing |
|
||||
| `trait_knows_hemalurgy.dds` | DDS (ARGB 32bpp) | 120x120 | Book/knowledge with dark undertone |
|
||||
|
||||
**Count: 26 icons**
|
||||
|
||||
### 8c. Modifier Icons
|
||||
|
||||
Every modifier needs a unique icon. Several currently share placeholder paths.
|
||||
|
||||
**Directory:** `gfx/interface/icons/modifiers/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `modifier_compounder.dds` | DDS (ARGB 32bpp) | 60x60 | Golden dual-power (Allomancy + Feruchemy fused) |
|
||||
| `modifier_lord_ruler_attention.dds` | DDS (ARGB 32bpp) | 60x60 | Red eye/gaze of the Lord Ruler |
|
||||
| `modifier_lord_ruler_attention_1.dds` | DDS (ARGB 32bpp) | 60x60 | Amber eye (Tier 1 — warning) |
|
||||
| `modifier_lord_ruler_attention_2.dds` | DDS (ARGB 32bpp) | 60x60 | Red eye (Tier 2 — investigation) |
|
||||
| `modifier_lord_ruler_attention_3.dds` | DDS (ARGB 32bpp) | 60x60 | Burning eye (Tier 3 — retribution) |
|
||||
| `modifier_steel_ministry_favor.dds` | DDS (ARGB 32bpp) | 60x60 | Steel Ministry sigil, gold/positive |
|
||||
| `modifier_steel_ministry_displeasure.dds` | DDS (ARGB 32bpp) | 60x60 | Steel Ministry sigil, cracked/red |
|
||||
| `modifier_ash_blight.dds` | DDS (ARGB 32bpp) | 60x60 | Grey ash covering land |
|
||||
| `modifier_koloss_rampage.dds` | DDS (ARGB 32bpp) | 60x60 | Blue koloss fist/destruction |
|
||||
| `modifier_great_house_status.dds` | DDS (ARGB 32bpp) | 60x60 | Noble house crest with gold frame |
|
||||
| `modifier_atium_supply.dds` | DDS (ARGB 32bpp) | 60x60 | Atium geode, shimmering |
|
||||
| `modifier_breeding_for_allomancy.dds` | DDS (ARGB 32bpp) | 60x60 | Intertwined bloodlines motif |
|
||||
| `modifier_ruin_influence.dds` | DDS (ARGB 32bpp) | 60x60 | Dark red corruption veins |
|
||||
| `modifier_steel_inquisitor_power.dds` | DDS (ARGB 32bpp) | 60x60 | Spiked eye sockets, menacing |
|
||||
| `modifier_mist_heavy.dds` | DDS (ARGB 32bpp) | 60x60 | Dense mist (also in M4) |
|
||||
| `modifier_fertile_ashland.dds` | DDS (ARGB 32bpp) | 60x60 | Green in grey (also in M4) |
|
||||
| `modifier_full_crew.dds` | DDS (ARGB 32bpp) | 60x60 | Circle of figures (also in M6) |
|
||||
| `modifier_eleventh_metal_insight.dds` | DDS (ARGB 32bpp) | 60x60 | Golden metal shard (also in M7) |
|
||||
| `modifier_duel_veteran.dds` | DDS (ARGB 32bpp) | 60x60 | Crossed coin and sword (also in M7) |
|
||||
| `modifier_atium_contract_holder.dds` | DDS (ARGB 32bpp) | 60x60 | Atium geode with scroll (also in M7) |
|
||||
|
||||
(Plus 8 more from M7 — see M7 section above.)
|
||||
|
||||
**Count: ~20 base + 12 from M7 = ~32 total modifier icons**
|
||||
|
||||
> **Note:** Many of these are listed in both the milestone where they're first
|
||||
> referenced in code (M4/M6/M7) and here in M8 where they're physically created.
|
||||
> Create all modifier icons together during M8 for consistency.
|
||||
|
||||
### 8d. Decision Illustrations
|
||||
|
||||
Large artwork panels shown behind decisions in the decision detail view.
|
||||
|
||||
**Directory:** `gfx/interface/illustrations/decisions/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `decision_host_ball.dds` | DDS (DXT1) | 1100x440 | Noble ball scene — chandelier, dancing |
|
||||
| `decision_snapping.dds` | DDS (DXT1) | 1100x440 | Character in pain, awakening power |
|
||||
| `decision_hemalurgy.dds` | DDS (DXT1) | 1100x440 | Dark ritual with metallic spike |
|
||||
| `decision_hire_kandra.dds` | DDS (DXT1) | 1100x440 | Shapeshifter in shadows |
|
||||
| `decision_breed_allomancy.dds` | DDS (DXT1) | 1100x440 | Noble house genealogy with metal glow |
|
||||
| `decision_smuggle_atium.dds` | DDS (DXT1) | 1100x440 | Cloaked figure with atium geode |
|
||||
| `decision_recruit_skaa.dds` | DDS (DXT1) | 1100x440 | Skaa allomancer hiding powers |
|
||||
| `decision_crack_down_skaa.dds` | DDS (DXT1) | 1100x440 | Noble overseeing skaa workers |
|
||||
| `decision_improve_conditions.dds` | DDS (DXT1) | 1100x440 | Compassionate scene with skaa |
|
||||
| `decision_raid.dds` | DDS (DXT1) | 1100x440 | Night raid on noble keep (also in M7) |
|
||||
| `decision_duel.dds` | DDS (DXT1) | 1100x440 | Allomantic duel (also in M7) |
|
||||
| `decision_assault_kredik_shaw.dds` | DDS (DXT1) | 1100x440 | Siege of the spired palace (also in M7) |
|
||||
|
||||
**Count: ~12 illustrations**
|
||||
|
||||
### 8e. Loading Screens
|
||||
|
||||
Custom loading screen art replaces vanilla during game load.
|
||||
|
||||
**Directory:** `gfx/interface/illustrations/loading_screens/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `ls_luthadel_skyline.dds` | DDS (DXT1) | 3840x2160 | Luthadel skyline — ash, mists, spired buildings |
|
||||
| `ls_kredik_shaw.dds` | DDS (DXT1) | 3840x2160 | Kredik Shaw palace — towering spires |
|
||||
| `ls_ashmounts.dds` | DDS (DXT1) | 3840x2160 | Ashmounts at sunset — volcanic glow |
|
||||
| `ls_vin_mists.dds` | DDS (DXT1) | 3840x2160 | Vin leaping through mist — action pose |
|
||||
| `ls_kelsier_overlooking.dds` | DDS (DXT1) | 3840x2160 | Kelsier on rooftop overlooking Luthadel |
|
||||
|
||||
CK3 automatically cycles through images. Configuration is via
|
||||
`loadscreen_settings.txt` in the same directory:
|
||||
```
|
||||
luthadel_skyline = { priority = 2 }
|
||||
kredik_shaw = { priority = 2 }
|
||||
ashmounts = { priority = 2 }
|
||||
vin_mists = { priority = 2 show_first = yes }
|
||||
```
|
||||
Format: `<filename_without_extension> = { priority = <int> }`. Use
|
||||
`show_first = yes` to prioritize a specific screen.
|
||||
|
||||
**Count: 3-5 images + 1 config file**
|
||||
|
||||
### 8f. Bookmark Art
|
||||
|
||||
The "End of an Empire" bookmark needs multiple art assets (verified from vanilla).
|
||||
|
||||
**Multiple files per bookmark:**
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Main background | `gfx/interface/bookmarks/bm_end_of_an_empire.dds` | DDS (DXT1) | 1920x1080 | Mist-shrouded Luthadel with Kredik Shaw, ash falling |
|
||||
| Kelsier character overlay | `gfx/interface/bookmarks/bm_end_of_an_empire_bookmark_kelsier.dds` | DDS (DXT5) | 1920x1080 | Kelsier character art with alpha for compositing |
|
||||
| Vin character overlay | `gfx/interface/bookmarks/bm_end_of_an_empire_bookmark_vin.dds` | DDS (DXT5) | 1920x1080 | Vin character art with alpha |
|
||||
| Elend character overlay | `gfx/interface/bookmarks/bm_end_of_an_empire_bookmark_elend.dds` | DDS (DXT5) | 1920x1080 | Elend character art with alpha |
|
||||
| Big icon | `gfx/interface/icons/bookmark_big/bm_end_of_an_empire.dds` | DDS | 336x152 | Thumbnail in bookmark selection list |
|
||||
| Button | `gfx/interface/icons/bookmark_buttons/bm_end_of_an_empire.dds` | DDS | 580x160 | Bookmark selection button |
|
||||
|
||||
Character overlays are composited on the background. Each shows a single
|
||||
character in their `position = { x y }` as defined in the bookmark definition.
|
||||
Use DXT5 (alpha) for overlays, DXT1 (opaque) for the background.
|
||||
|
||||
**Count: 6 assets (1 background + 3 character overlays + 2 UI elements)**
|
||||
|
||||
### 8g. Portrait & Ethnicity Assets
|
||||
|
||||
Custom ethnicity definitions for the three Scadrial cultures, plus portrait
|
||||
modifiers for Hemalurgic characters.
|
||||
|
||||
**Custom ethnicity definitions** (data files, not images):
|
||||
|
||||
| File | Description |
|
||||
|---|---|
|
||||
| `common/ethnicities/00_scadrial_ethnicities.txt` | `scadrial_noble` (pale), `scadrial_skaa` (darker/weathered), `scadrial_terris` (dark-skinned per lore) |
|
||||
|
||||
**Portrait modifier textures** (optional, for Hemalurgic spike visuals):
|
||||
|
||||
Portrait modifiers are defined in `gfx/portraits/portrait_modifiers/` (33 files
|
||||
in vanilla). They use `dna_modifiers` blocks with modes: add, replace, modify.
|
||||
Weight-based selection triggered by traits, culture, religion, rank.
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Inquisitor spike overlay | `gfx/portraits/portrait_modifiers/inquisitor_eyes.txt` | Text + DDS | — | Modifier definition + textures |
|
||||
|
||||
For visual spike effects, options:
|
||||
- **Option A (simpler):** Scripted DNA with `has_scripted_appearance = yes` for
|
||||
named Inquisitors. Uses existing disfigured/scarred appearance genes.
|
||||
- **Option B (complex):** Custom portrait modifier triggered by traits. Requires
|
||||
custom accessory meshes and textures (Blender + CK3 export addon).
|
||||
|
||||
**Culture graphics packs** (optional, aspirational):
|
||||
|
||||
To fully replace the vanilla Western aesthetic, a complete custom `gfx` pack
|
||||
includes (all textures DXT5, 1024x1024 unless noted):
|
||||
|
||||
| Category | Path | Format | Resolution | Count (est.) |
|
||||
|---|---|---|---|---|
|
||||
| Clothing diffuse | `gfx/models/portraits/m_clothes/` & `f_clothes/` | DDS (DXT5) | 1024x1024 | ~20 per gender |
|
||||
| Hair textures | `gfx/models/portraits/m_hair/` & `f_hair/` | DDS (DXT5) | 1024x1024 | ~10 per gender |
|
||||
| Headgear textures | `gfx/models/portraits/m_headgear/` & `f_headgear/` | DDS (DXT5) | 512-1024 | ~10 per gender |
|
||||
|
||||
These are major art projects requiring 3D modeling. For v1.0, using vanilla
|
||||
`western_*_gfx` with custom ethnicity settings is acceptable. Custom culture
|
||||
graphics are a post-launch enhancement.
|
||||
|
||||
**Frontend / Main Menu** (optional polish):
|
||||
|
||||
| Asset | Path | Format | Resolution | Description |
|
||||
|---|---|---|---|---|
|
||||
| Frontend background | `gfx/interface/illustrations/frontend/frontend_bg.dds` | DDS (DXT1) | 3840x2160 | Custom main menu background — Scadrial themed |
|
||||
| Pause background | `gfx/interface/illustrations/frontend/pause_bg.dds` | DDS (DXT1) | 3840x2160 | Custom pause screen |
|
||||
|
||||
**Count: 1 data file + optional portrait/clothing/frontend assets**
|
||||
|
||||
### 8h. Men-at-Arms Custom Icons
|
||||
|
||||
Replace the generic vanilla icon references with custom Mistborn-themed icons.
|
||||
|
||||
**Directory:** `gfx/interface/icons/regiments/`
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `hazekillers.dds` | DDS (ARGB 32bpp) | 60x60 | Elite warrior with obsidian weapons |
|
||||
| `koloss.dds` | DDS (ARGB 32bpp) | 60x60 | Blue-skinned giant with crude sword |
|
||||
| `mistborn_agents.dds` | DDS (ARGB 32bpp) | 60x60 | Mistcloaked figure in shadow |
|
||||
| `skaa_levies.dds` | DDS (ARGB 32bpp) | 60x60 | Ragged peasant militia |
|
||||
| `noble_guard.dds` | DDS (ARGB 32bpp) | 60x60 | Armored house guard |
|
||||
|
||||
To use custom MaA icons, update `common/men_at_arms_types/00_mistborn_maa.txt`
|
||||
from `icon = heavy_infantry` to `icon = hazekillers` (custom type) and register
|
||||
the icon type.
|
||||
|
||||
**Count: 5 icons**
|
||||
|
||||
### 8i. Steam Workshop Thumbnail
|
||||
|
||||
| Asset | Format | Resolution | Description |
|
||||
|---|---|---|---|
|
||||
| `thumbnail.png` | PNG | 512x512 | Mod logo — Mistborn silhouette, metallic arts symbol, or Scadrial landscape. Must read clearly at small sizes. |
|
||||
|
||||
Placed at `lords_of_ash/thumbnail.png`.
|
||||
|
||||
**Count: 1 image**
|
||||
|
||||
---
|
||||
|
||||
## Asset Totals by Milestone
|
||||
|
||||
| Milestone | New Assets | Cumulative | Categories |
|
||||
|---|---|---|---|
|
||||
| **M1** | 0 | 0 | — |
|
||||
| **M2** | 0 | 0 | — |
|
||||
| **M3** | 0 (23 optional) | 0 (23) | CoA emblems, religion icons, building icons |
|
||||
| **M4** | 0 (90+ optional) | 0 (113+) | Province modifier icons, CB icons, scheme icons, lifestyle assets (~45+), activity assets (~16+), event backgrounds (8) |
|
||||
| **M5** | 0 | 0 (105) | DNA strings only |
|
||||
| **M6** | 0 (1 optional) | 0 (106) | 1 modifier icon |
|
||||
| **M7** | 0 (15 optional) | 0 (121) | 12 modifier icons, 3 decision illustrations |
|
||||
| **M8** | ~200+ | ~200+ | Everything — map (20+), all icons, loading screens, bookmark (6), portraits, thumbnail |
|
||||
|
||||
> **Strategy:** All visual assets can be deferred to M8 without breaking
|
||||
> functionality. Icons show as blank/missing-texture in earlier milestones, which
|
||||
> is acceptable during development. Creating assets incrementally during each
|
||||
> milestone is ideal for iterating on style, but all can be batched in M8.
|
||||
|
||||
---
|
||||
|
||||
## Priority Order for Art Production
|
||||
|
||||
If creating assets incrementally rather than all in M8:
|
||||
|
||||
### Priority 1 — Map files (M8.1)
|
||||
The map is the riskiest, most complex, and most impactful visual change. Start
|
||||
early and test obsessively.
|
||||
|
||||
### Priority 2 — Trait icons (M8.4, 26 icons)
|
||||
Most player-facing icons. Visible in character sheets, tooltips, dynastic views.
|
||||
Establish the visual language of the metallic arts here.
|
||||
|
||||
### Priority 3 — Loading screens + Bookmark art (M8.5, 4-6 images)
|
||||
First impression art. Players see these before gameplay. High impact on perceived
|
||||
quality.
|
||||
|
||||
### Priority 4 — Decision illustrations (M8.5, ~12 images)
|
||||
Visible whenever players interact with decisions. Moderate effort, high return.
|
||||
|
||||
### Priority 5 — Modifier icons (M8.5, ~32 icons)
|
||||
Visible in tooltips and character modifiers. Important but can survive as
|
||||
placeholders longer.
|
||||
|
||||
### Priority 6 — Event backgrounds (M4f, 8 images)
|
||||
Replace vanilla European backdrops. High immersion value for events.
|
||||
|
||||
### Priority 7 — Lifestyle assets (M4d, ~45+ assets)
|
||||
Multiple asset types per lifestyle (strips, focuses, tree backgrounds, sidebar
|
||||
illustrations, perk nodes). Use a consistent visual template per lifestyle.
|
||||
|
||||
### Priority 8 — Everything else
|
||||
CoA emblems, religion icons, building icons, MaA icons, portrait modifiers,
|
||||
workshop thumbnail. These are all polish-level assets.
|
||||
|
||||
---
|
||||
|
||||
## Art Style Guide
|
||||
|
||||
All visual assets should follow a consistent Mistborn aesthetic:
|
||||
|
||||
- **Color palette:** Muted greys, dark blues, burnt oranges, metallic silvers
|
||||
and golds. The world is perpetually overcast with falling ash.
|
||||
- **Motifs:** Metal symbols (steel, iron, pewter, tin, etc.), mist swirls,
|
||||
falling ash, spires (Kredik Shaw), spikes (Hemalurgy), metalminds (Feruchemy)
|
||||
- **Tone:** Dark fantasy with moments of hope. Gritty but not grimdark.
|
||||
- **Typography reference:** Angular, metallic — inspired by the Mistborn book
|
||||
cover designs
|
||||
- **Icon style:** Clean silhouettes on transparent backgrounds. Each metallic
|
||||
art icon should be immediately distinguishable at 60x60 pixels.
|
||||
- **Illustrations:** Painterly style with dramatic lighting. Mist and ash should
|
||||
be present in outdoor scenes. Interior scenes feature candlelight and metal
|
||||
fixtures.
|
||||
|
||||
---
|
||||
|
||||
## Directory Structure (Final)
|
||||
|
||||
```
|
||||
lords_of_ash/
|
||||
├── common/
|
||||
│ ├── defines/
|
||||
│ │ ├── 00_defines.txt # WORLD_EXTENTS_X/Z, WATERLEVEL
|
||||
│ │ └── graphic/
|
||||
│ │ └── 00_graphics.txt # PANNING_WIDTH/HEIGHT
|
||||
│ ├── province_terrain/
|
||||
│ │ └── 00_scadrial_terrain.txt # Province-to-terrain assignment
|
||||
│ └── ...
|
||||
├── gfx/
|
||||
│ ├── coat_of_arms/
|
||||
│ │ └── colored_emblems/ # ~13 house/faction emblems
|
||||
│ ├── interface/
|
||||
│ │ ├── bookmarks/ # 6 bookmark assets (bg + overlays + UI)
|
||||
│ │ ├── icons/
|
||||
│ │ │ ├── bookmark_big/ # 1 bookmark thumbnail (336x152)
|
||||
│ │ │ ├── bookmark_buttons/ # 1 bookmark button (580x160)
|
||||
│ │ │ ├── buildings/ # 5 building icons
|
||||
│ │ │ ├── activities/ # activity icons (80x80 + 164x164)
|
||||
│ │ │ ├── activity_intents/ # intent icons (60x60)
|
||||
│ │ │ ├── activity_phases/ # phase icons (140-160px)
|
||||
│ │ │ ├── casus_belli/ # 3 CB icons
|
||||
│ │ │ ├── faith/ # 4 faith icons (100x100)
|
||||
│ │ │ ├── faith_doctrine_groups/ # doctrine group icons (120x120)
|
||||
│ │ │ ├── faith_doctrines/ # tenet icons (260x400)
|
||||
│ │ │ ├── focuses/ # ~15 focus icons (140x140)
|
||||
│ │ │ ├── lifestyle_tree_backgrounds/ # ~15 tree bgs (348x812)
|
||||
│ │ │ ├── lifestyles/ # 5 lifestyle strips (480x160)
|
||||
│ │ │ ├── lifestyles_perks/ # perk nodes (180x60)
|
||||
│ │ │ ├── modifiers/ # ~32 modifier icons (60x60)
|
||||
│ │ │ ├── regiments/ # 5 MaA icons
|
||||
│ │ │ ├── scheme_types/ # 2 scheme icons (120x120)
|
||||
│ │ │ └── traits/ # 26 trait icons (120x120)
|
||||
│ │ └── illustrations/
|
||||
│ │ ├── activity_header_backgrounds/ # activity headers (1100x440)
|
||||
│ │ ├── activity_types/ # activity sidebars (460x1100)
|
||||
│ │ ├── decisions/ # ~12 decision illustrations (1100x440)
|
||||
│ │ ├── event_scenes/ # 8 event backgrounds (1592x848)
|
||||
│ │ ├── frontend/ # 2 optional (menu bg, pause bg; 4K)
|
||||
│ │ ├── lifestyles_background/ # 5 lifestyle sidebars (608x1552)
|
||||
│ │ └── loading_screens/ # 3-5 loading screens (4K) + settings
|
||||
│ ├── map/
|
||||
│ │ ├── map_object_data/ # building/combat/siege locators
|
||||
│ │ ├── surround_map/ # surround_mask, surround_fade, surround_tile
|
||||
│ │ ├── terrain/ # terrain masks, diffuse/normal/properties DDS
|
||||
│ │ │ └── materials.settings # texture-to-mask mapping
|
||||
│ │ └── water/ # flowmap, foam_map, watercolor
|
||||
│ └── portraits/
|
||||
│ └── portrait_modifiers/ # 2 optional portrait overlays
|
||||
├── map_data/
|
||||
│ ├── definition.csv # Province ID -> RGB color mapping
|
||||
│ ├── default.map # Master map config
|
||||
│ ├── provinces.png # Province boundary map (W x H)
|
||||
│ ├── heightmap.png # Elevation (16-bit greyscale)
|
||||
│ ├── heightmap.heightmap # Declares original_heightmap_size
|
||||
│ ├── rivers.png # River network (indexed RGB)
|
||||
│ ├── positions.txt # Province positions
|
||||
│ ├── adjacencies.csv # Strait/river crossings
|
||||
│ ├── colormap.dds # Color overlay (W/2 x H/2)
|
||||
│ ├── flatmap.dds # Paper map view (W x H)
|
||||
│ ├── detail_index.tga # Detail texture index (W x H)
|
||||
│ ├── detail_intensity.tga # Detail texture intensity (W x H)
|
||||
│ └── geographical_regions/
|
||||
│ └── 00_scadrial_regions.txt
|
||||
└── thumbnail.png # Workshop thumbnail (512x512 PNG)
|
||||
```
|
||||
Reference in New Issue
Block a user