Skip to content

XMuPb/EEWebExtension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

EEWebExtension

The Living Archive of Calradia

"Every lord has a story. Every clan carries a legacy. Every kingdom rises and falls.
Now, their tales are written not just in blood and steel — but in a living manuscript
that breathes with the world itself."


EEWebExtension transforms your Bannerlord encyclopedia into a cinematic, real-time web experience. While you conquer Calradia, a local web server runs silently in the background, serving a fully interactive encyclopedia to your browser — styled as a dark Viking manuscript illuminated by torchlight and forged gold.

Browse heroes, clans, kingdoms, and settlements. Read their histories as they unfold. Edit their stories, rename lords, rewrite lore, and track every war, every betrayal, every alliance — all from the comfort of your browser, your phone, or your tablet on the couch while the game runs on your PC.

This is not just a data viewer. This is your war-room command table, your historian's desk, and your storyteller's journal — all in one.


What You Get

A Full Encyclopedia in Your Browser

Open http://127.0.0.1:8080/ and you're greeted by a cinematic intro sequence — Norse rune circles rotating behind forged gold lettering, embers drifting across the screen, a shimmer loading bar filling as the world data streams in. Click to enter, and the Living Archive opens before you.

The Home Page — Your War Room

A dashboard that shows the state of your world at a glance:

  • Animated counters that tick up to show total heroes, clans, settlements, and kingdoms — each number rising like a war tally
  • Summary statistics — how many descriptions you've written, how many tags you've applied, how many journal entries chronicle your deeds
  • Live Chronicle — a scrolling feed of game events happening right now. Wars declared, battles won, heroes captured, children born — every event categorized with color-coded icons (war in red, family in rose, politics in steel blue, crime in amber)
  • Quick navigation to any section of the encyclopedia

Heroes — Every Face, Every Story

A grid of hero cards, each showing:

  • Game-extracted portraits or hand-crafted culture-specific artwork (12 cultures represented: Empire, Aserai, Battania, Khuzait, Sturgia, Vlandia, Nord, and more)
  • Occupation badges — Lord, Wanderer, Companion, Gang Leader, Merchant, each with distinct styling
  • Culture color accents — a warm strip at the top of each card matching their faction
  • Deceased indicators — faded cards with skull badges for the fallen
  • Smart filtering — filter by Alive, Dead, Noble, Companion, or any specific culture

Click any hero and the detail view unfolds:

  • Parallax portrait with gold metallic frame
  • Traits and skills in a compact sidebar with icon tiles
  • Info stats — age, culture, kingdom, clan, occupation, all in forged gold cells
  • Lore section — five rich text fields (Backstory, Personality, Goals, Relationships, Rumors) styled like manuscript pages with aged parchment texture
  • Relation Notes — card-based notes for each friend and enemy, with portraits and edit buttons
  • Friends & Enemies — portrait grids with metallic intensity bars showing relationship strength, color-coded green/red
  • Family — linked family members with relationship labels (Spouse, Mother, Father, Sibling, Child)
  • Timeline — chronological events from the game's chronicle, staggered entrance animations
  • LIVE badge — a pulsing green dot confirming the view auto-syncs with the game every few seconds

Clans — Banners and Bloodlines

Each clan card displays:

  • Shield-shaped banner rendered from the game's actual banner code, framed in gold gradient with drop shadows
  • Tier badges with embossed gold seal styling
  • War ember glow — cards pulse with a red ember animation when the clan is at war
  • Member counts, strength, renown — key stats at a glance

Clan detail views show members, territory (towns, castles, villages), wars, leader info, and kingdom affiliation — all with edit capabilities.

Settlements — Prosperity and Power

Settlement cards show:

  • Type badges — Town (gold crown), Castle (stone tower), Village (green field)
  • Metallic prosperity bars with a forged metal sheen effect
  • Owner clan and kingdom affiliation
  • Governor information

Detail views reveal prosperity, loyalty, security, food stocks, garrison, militia, workshops, bound villages, and notables.

Kingdoms — Diplomacy at a Glance

The kingdoms page features:

  • Featured Kingdom Cards — expanded cards for major kingdoms with shield-framed banners, diplomacy shield grids showing ally/enemy relations, and inline culture/strength stats
  • War Board — a dedicated section showing active wars between kingdoms, with paired cards and shared-enemy analysis
  • Peace Board — peaceful relations mapped out with alliance indicators
  • Culture filters — filter kingdoms by culture with count badges

Kingdom detail views include clan lists, fief inventories, military strength gauges, and full diplomatic status.

Chronicle — The Living History

A full-page timeline of every notable event in your campaign:

  • Category filters — War, Family, Politics, Crime, Economy, Military, General — each with a unique icon and color
  • Search — find events by keyword
  • Color-coded entries — instantly distinguish war declarations from weddings from crimes
  • Entity linking — hero, clan, kingdom, and settlement names are clickable links that navigate to their detail pages
  • Real-time updates — new events appear automatically without page refresh

Editing — Rewrite History

Every detail view includes a full suite of editing tools. All changes sync instantly with the game's Editable Encyclopedia mod — what you write in the browser appears in the in-game encyclopedia, and vice versa.

Hero Editing

Action Description
Edit Name & Title Rename any hero. Give them a title like "The Unbroken" or "Shield of the North"
Edit Description Write a custom biography that replaces the game-generated text
Edit Lore Five rich fields: Backstory, Personality, Goals, Relationships, Rumors
Change Culture Reassign a hero to any culture — or type a custom one
Change Occupation Lord, Wanderer, Merchant, Gang Leader, Artisan, Preacher, and more
Edit Tags Comma-separated tags for organization and filtering
Relation Notes Write notes about relationships with specific friends/enemies

Clan / Kingdom / Settlement Editing

Action Description
Edit Name Rename clans, kingdoms, and settlements
Edit Description Custom descriptions and lore
Edit Banner Paste a banner code to change the clan/kingdom sigil
Edit Tags Organizational tags
Add Journal Timestamped journal entries — your personal chronicle for any entity

The Viking Design System

The entire interface is built on a custom design system inspired by dark medieval manuscripts, Nordic forge-work, and Bannerlord's own visual language.

Visual Identity

  • Void Black backgrounds (#0a0908) with warm leather panel gradients
  • Polished Gold accents (#d8b35f) — borders, values, highlights, interactive elements
  • Parchment text (#e2d4b5) on dark surfaces — readable, warm, immersive
  • Cinzel serif font — ornamental headings that feel carved in stone
  • Georgia body text — classical manuscript readability

Atmospheric Effects

  • Ember particles — floating fire motes drift across the screen
  • Gold spark trail — your cursor leaves a trail of golden sparks
  • Shimmer sweep — buttons and nav items shimmer with a diagonal light sweep on hover
  • Gold glow pulse — cards and counters breathe with a slow ambient gold glow
  • Scroll-reveal — sections and cards animate into view as you scroll down
  • War ember — cards for entities at war pulse with a red ember border
  • Seal rotation — decorative Norse elements rotate slowly in the footer

Component Library

  • Viking Cards — dark leather gradient backgrounds, 2px gold borders, inset atmospheric shadows, hover lift with gold glow
  • Shield Framesclip-path: polygon() shield shapes with gold gradient borders for banners
  • Gold Dividers — gradient lines with centered ornament symbols
  • Gauge Circles — SVG gauges with animated stroke-draw and pulsing glow
  • Forged Buttons — dark leather with Cinzel uppercase text, shimmer sweep on hover
  • Status Badges — war (red), peace (green), neutral (muted) with matching backgrounds

Live Sync — The World Breathes

When you open a detail view, a LIVE badge appears in the corner. Every 8 seconds (configurable), the view silently re-fetches data from the running game and updates:

  • Stats change — a hero gains a level, a settlement's prosperity rises, a kingdom's strength shifts
  • Timeline grows — a new battle, a marriage, a betrayal appears in the chronicle
  • Friends become enemies — diplomacy shifts reflected in real-time
  • Names update — if you edit a name in-game, the web reflects it within seconds

You can watch the world evolve while you play. Open the web on a second monitor, or on your phone propped up next to your screen, and see the Living Archive update as events unfold.


Player HUD

A persistent stats bar at the top of every page showing your player character's live data:

  • Gold — your current denars, updating in real-time
  • Influence — political power
  • Health — current HP
  • Troops — party size
  • Morale — army spirit
  • Speed — party movement speed

Each stat has its own color (Gold=#e8c848, Health=#e08080, Influence=#80a0d0) and animates when values change.


Configuration

All settings live in the Editable Encyclopedia MCM menu under 9. Extensions / EEWebExtension.

Web Server

Setting Default What It Does
Enable Web Extension ON Master toggle for the web server
Web Server Port 8080 Change if port 8080 is taken
Auto-Open Browser OFF Launches your browser when you load a campaign
Allow External Access OFF Open the server to your local network — browse on your phone
Enable Editing from Web ON Set to OFF for read-only mode (safe for streaming)
Enable Portrait Extraction ON Extract hero face renders from the game engine

Live Sync

Setting Default What It Does
Live Sync on Detail Views ON Auto-refresh detail pages with game data
Live Sync Interval 8 seconds How often to poll (2-60s range)
Live Chronicle Updates ON Push new events to the home page feed

Web Display

Setting Default What It Does
Show HUD Stats ON Player stats bar at the top
Show Intro Screen ON The cinematic Viking intro animation
Show Ember Particles ON Floating fire motes (disable for performance)
Show Gold Spark Trail ON Cursor spark effect (disable for performance)
Enable Sound Effects ON Subtle UI sounds on hover and click
Enable Scroll Animations ON Cards animate into view on scroll
Cards Per Page 60 How many cards per list page (20-200)

Quick Actions

Button What It Does
Open Web Encyclopedia Launches http://127.0.0.1:8080/ in your default browser

REST API

The web server exposes 60+ REST endpoints covering every editing capability of the Editable Encyclopedia mod. All responses are JSON. The API runs at http://127.0.0.1:8080/api/.

Core Data (10 endpoints)
Method Endpoint Description
GET /api/status Server health check + game metadata
GET /api/heroes All heroes (name, culture, clan, kingdom, age, occupation, portrait)
GET /api/hero/{id} Full hero detail (stats, traits, skills, friends, enemies, family, lore, timeline)
GET /api/clans All clans (name, culture, tier, strength, members, wars, banner)
GET /api/clan/{id} Clan detail (leader, members, territory, kingdom, wars)
GET /api/kingdoms All kingdoms (name, ruler, clans, fiefs, strength, diplomacy)
GET /api/kingdom/{id} Kingdom detail (leader, clans, fiefs, wars, troop counts)
GET /api/settlements All settlements (name, type, culture, owner, prosperity, garrison)
GET /api/settlement/{id} Settlement detail (all stats, workshops, notables, bound villages)
GET /api/chronicle All chronicle events (entity, date, text)
Descriptions (4 endpoints)
Method Endpoint Description
GET /api/entity/{id}/description Get custom description
PUT /api/entity/{id}/description Set custom description
GET /api/descriptions All descriptions
GET /api/descriptions/count Total count
Names, Titles & Banners (4 endpoints)
Method Endpoint Description
GET /api/entity/{id}/name Get custom name & title
PUT /api/entity/{id}/name Set name and/or title
GET /api/entity/{id}/banner Get custom banner code
PUT /api/entity/{id}/banner Set banner code
Cultures & Occupations (6 endpoints)
Method Endpoint Description
GET /api/hero/{id}/culture Get hero culture
PUT /api/hero/{id}/culture Set hero culture
GET /api/hero/{id}/occupation Get hero occupation
PUT /api/hero/{id}/occupation Set hero occupation
GET /api/cultures All custom culture assignments
GET /api/occupations All custom occupation assignments
Lore Fields (3 endpoints)
Method Endpoint Description
GET /api/hero/{id}/lore All lore fields for a hero
GET /api/hero/{id}/field/{key} Get one lore field
PUT /api/hero/{id}/field/{key} Set lore field (backstory, personality, goals, relationships, rumors)
Tags (12 endpoints)
Method Endpoint Description
GET /api/entity/{id}/tags Get entity tags
PUT /api/entity/{id}/tags Set entity tags
GET /api/tags All tags
GET /api/tags/unique All unique tag names
GET /api/tags/usage Tag usage counts
GET /api/tags/objects/{tag} Entities with specific tag
POST /api/tags/rename Rename tag globally
POST /api/tags/remove Remove tag globally
POST /api/tags/merge Merge two tags into one
POST /api/tags/add-bulk Add tag to multiple entities
POST /api/tags/remove-bulk Remove tag from multiple entities
POST /api/tags/clear-all Nuclear option: clear all tags
Tag Categories, Presets & Notes (10 endpoints)
Method Endpoint Description
GET /api/tag-categories All categories
PUT /api/tag-category/{name} Create/update category
DELETE /api/tag-category/{name} Delete category
GET /api/tag-presets All presets
PUT /api/tag-preset/{name} Create/update preset
DELETE /api/tag-preset/{name} Delete preset
POST /api/tag-preset/{name}/apply Apply preset to entity
GET /api/tag-note/{objectId}/{tag} Get tag note
PUT /api/tag-note/{objectId}/{tag} Set tag note
GET /api/tag-notes/{objectId} All tag notes for entity
Journal (5 endpoints)
Method Endpoint Description
GET /api/entity/{id}/journal Get journal entries
POST /api/entity/{id}/journal Add new entry
PUT /api/entity/{id}/journal Edit entry by index
DELETE /api/entity/{id}/journal/{index} Delete entry by index
DELETE /api/entity/{id}/journal Clear all entries
Relation Notes, History & Tags (8 endpoints)
Method Endpoint Description
GET /api/relation-note/{heroId}/{targetId} Get relation note
PUT /api/relation-note/{heroId}/{targetId} Set relation note
GET /api/relation-notes All relation notes
GET /api/relation-notes/count Total count
GET /api/relation-history/{heroId}/{targetId} Relation change history
GET /api/relation-history-for/{targetId} All history for a hero
GET /api/relation-note-tag/{heroId}/{targetId} Get auto-tag + suggestion
PUT /api/relation-note-tag/{heroId}/{targetId} Set tag and/or lock
Auto-Tag Thresholds (4 endpoints)
Method Endpoint Description
GET /api/auto-tag-threshold/{heroId} Get per-hero thresholds
PUT /api/auto-tag-threshold/{heroId} Set enemy/friend thresholds
GET /api/auto-tag-thresholds All thresholds
GET /api/auto-tags/{objectId} Get auto-generated tags
Custom Cultures & Lore Templates (7 endpoints)
Method Endpoint Description
GET /api/culture-definitions All custom culture definitions
PUT /api/culture-definition/{id} Create/update culture definition
DELETE /api/culture-definition/{id} Delete culture definition
GET /api/lore-templates/roles Available template roles
GET /api/lore-templates/keys Available field keys
GET /api/lore-template/{fieldKey}/{heroId} Get resolved lore template
GET /api/lore-templates/role/{role} All templates for a role
Import / Export (9 endpoints)
Method Endpoint Description
POST /api/export Export everything to shared JSON
POST /api/import Import from shared JSON
POST /api/import-detailed Import with per-section breakdown
POST /api/export/heroes Export hero descriptions
POST /api/export/clans Export clan descriptions
POST /api/export/kingdoms Export kingdom descriptions
POST /api/export/settlements Export settlement descriptions
POST /api/export/banners Export banner codes
POST /api/import/banners Import banners only
Portraits, Banners & Utilities (12 endpoints)
Method Endpoint Description
GET /api/portraits List custom + extracted portraits
POST /api/hero/{id}/portrait Upload custom portrait PNG
GET /api/hero/{id}/portrait Check if portrait exists
POST /api/extract-portraits Extract all game portraits
GET /api/banners List exported banner PNGs
GET /api/statistics Basic stats
GET /api/statistics/detailed 20+ detailed stat fields
GET /api/entity/{id}/timestamp Last edit timestamp
GET /api/shared-file-path Shared file location
POST /api/purge-orphans Clean up deleted hero data
POST /api/reset-all Reset all descriptions
GET /api/web-settings MCM settings for the web

Installation

Quick Start

  1. Install Editable Encyclopedia if you haven't already
  2. Copy the EEWebExtension/ folder into:
    Steam/steamapps/common/Mount & Blade II Bannerlord/Modules/
    
  3. In the Bannerlord launcher, enable EEWebExtension (make sure it loads after EditableEncyclopedia)
  4. Launch a campaign (new or saved)
  5. Open your browser to http://127.0.0.1:8080/
  6. The Living Archive awaits

Phone / Tablet Access

  1. In MCM settings, enable Allow External Access under 9. Extensions / EEWebExtension / Web Server
  2. Find your PC's local IP (run ipconfig in Command Prompt, look for IPv4 Address)
  3. On your phone/tablet, open http://YOUR_PC_IP:8080/
  4. Browse the encyclopedia from the couch while the game runs

Requirements

  • Mount & Blade II: Bannerlord v1.2.x or v1.3.x
  • Editable Encyclopedia mod (loaded before EEWebExtension)
  • Native, SandBoxCore, Sandbox, StoryMode (base game modules)
  • Bannerlord.Harmony v2.4.2.225+

Module Structure

EEWebExtension/
  SubModule.xml                 Module manifest & load order
  README.md                     This file
  bin/
    Win64_Shipping_Client/
      EEWebExtension.dll        C# server, API routes, banner/portrait export
  Web/
    index.html                  SPA shell (nav, modals, intro overlay, HUD)
    css/
      style.css                 Viking design system (~4000 lines)
    js/
      app.js                    Application logic (~4800 lines)
      api.js                    REST API client (60+ methods)
    bg.png                      Cinematic Viking longhouse background
    bannerlord_hero.png         Hero page banner
    bannerlord_clan.png         Clan page banner
    bannerlord_settlement.png   Settlement page banner
    bannerlord_kingdoms.png     Kingdom page banner
    bannerlord_chronicle.png    Chronicle page banner
    logo.jpg                    Nav bar brand logo
    Hero/
      bannerlord_hero_viking.png  Fallback portrait (Viking warrior)
    Potraits/                   Culture portrait packs
      Aserai/                   Desert warriors
      Battania/                 Forest clans
      Khuzait/                  Steppe riders
      Nord/                     Norse Vikings
      Northern_Empire/          Roman-inspired
      Southern_Empire/          Byzantine-inspired
      Western_Empire/           Late Roman
      Mixed Empire/             Cross-culture
      Sturgia/                  Slavic warriors
      Vlandia/                  Feudal knights
    Settlement/
      Town.png                  Town type image
      Castle.png                Castle type image
      Village.png               Village type image
    Skills/                     18 skill icons (Athletics, Bow, etc.)
    Traits/                     Trait icons (Valor, Honor, etc.)
    Perks/                      Perk icons
    BannerIcons/                Banner icon sprites for rendering
    Banners/                    (runtime) Exported banner PNGs
    Portraits/                  (runtime) Extracted game portrait PNGs
    .design/
      DESIGN.md                 Visual design system documentation

Technical Architecture

Server Side (C#)

  • EEWebExtensionEntry.csMBSubModuleBase entry point. Starts the web server on OnGameStart, registers WebExportBehavior as a campaign behavior, processes main-thread queue on OnApplicationTick
  • EncyclopediaWebServer.csHttpListener-based REST server on a background thread. Handles static file serving, API routing (60+ endpoints), portrait extraction via game engine reflection, banner PNG rendering, and color palette extraction from BannerManager
  • WebExportBehavior — Campaign behavior that detects when the player reaches the campaign map (via ScreenManager.TopScreen reflection) before starting banner/portrait export. Prevents export during character creation

Client Side (Vanilla JS)

  • No frameworks, no build step, no npm — pure HTML/CSS/JS served as static files
  • app.js (~4800 lines) — SPA router, page renderers, detail views, edit modals, live sync polling, visual effects (particles, sparks, scroll reveals, parallax), sound system
  • api.js — Typed API client wrapping all 60+ REST endpoints with fetch()
  • style.css (~4000 lines) — Complete Viking design system with CSS custom properties, animations, responsive layout

Data Flow

Game (C#)                    Web Server (C#)               Browser (JS)
  Hero.Name ──────────>  GET /api/heroes ─────────>  Store.heroes[]
  EditBehavior ────────> GET /api/hero/{id} ──────>  openDetail()
  SetCustomName() <───── PUT /api/entity/{id}/name <── editName()
  Banner.Serialize() ──> ExportBanners() ─────────>  <img src="Banners/id.png">
  ThumbnailCreator ────> ExtractPortraits() ──────>  <img src="Portraits/id.png">

Key Design Decisions

  1. Custom data merging — All list/detail API responses merge custom names, titles, cultures, and banners from EncyclopediaEditBehavior.Instance so the web always shows the latest custom values
  2. MapScreen detection — Banner export only starts when ScreenManager.TopScreen.GetType().Name.Contains("MapScreen") — prevents export during character creation or menus
  3. Live syncsetInterval polling (not WebSocket) because the game server doesn't support push notifications. The isSync flag on openDetail() suppresses loading spinners and preserves scroll position
  4. Banner rendering — Server-side PNG generation using System.Drawing.Bitmap. Parses banner codes, composites background mesh + icon layers with correct colors from BannerManager.GetColor()
  5. Portrait color correction — Game renders portraits in linear color space; the server applies sRGB gamma correction on-the-fly when serving portrait PNGs

Changelog

v1.0.0 — The Living Archive (2026-04-07)

Initial Release

Web Interface

  • Full single-page application with 6 main pages (Home, Heroes, Clans, Settlements, Kingdoms, Chronicle)
  • Viking/medieval dark theme with 62 color tokens, 4 font tiers, 12+ animation types
  • Cinematic intro sequence with Norse rune circles, forged gold titles, and shimmer loading bar
  • Responsive layout supporting desktop and mobile browsers
  • Scroll-reveal animations, parallax effects, ember particles, gold spark cursor trail
  • Subtle UI sound effects on hover, click, and navigation

Home Page

  • Animated stat counters (heroes, clans, settlements, kingdoms)
  • Live Chronicle feed with real-time event updates
  • Summary statistics panel with description/tag/journal counts
  • Viking-styled panels with gold ornamental dividers

List Pages

  • Hero cards with game-extracted portraits, occupation badges, culture colors, deceased indicators
  • Clan cards with shield-shaped banner frames, tier badges, war ember glow animations
  • Settlement cards with type badges (Town/Castle/Village), prosperity bars
  • Kingdom featured cards with diplomacy shield grids, war/peace boards
  • Smart filtering by status, culture, type, and diplomacy
  • Pagination with configurable cards-per-page

Detail Views

  • 4 full detail views: Hero, Clan, Settlement, Kingdom
  • 3-column layout with left rail (portrait/stats), main content, and right rail (journal)
  • Live sync (LIVE badge) — auto-refresh every 8 seconds with game data
  • Relation notes section with portrait cards and inline editing
  • Friends/Enemies grids with metallic intensity bars
  • Family section with relationship type labels and icons
  • Lore section with manuscript texture and first-letter styling
  • Timeline with staggered entrance animations
  • Info stats in forged gold cells with tooltips

Editing

  • Edit Name & Title (heroes get both, others get name only)
  • Edit Description with textarea modal
  • Edit Lore — 5 fields: Backstory, Personality, Goals, Relationships, Rumors
  • Change Culture — dropdown from game cultures + custom input
  • Change Occupation — dropdown of Bannerlord occupation types
  • Edit Banner — paste banner code for clans/kingdoms/settlements
  • Edit Tags — comma-separated with autocomplete suggestions
  • Add Journal Entries — timestamped personal notes
  • Relation Notes — per-friend/enemy notes with edit button on each card
  • All edits sync instantly with the in-game Editable Encyclopedia

API

  • 60+ REST endpoints covering every capability of the Editable Encyclopedia mod
  • Core entity data (heroes, clans, kingdoms, settlements, chronicle)
  • Full CRUD for descriptions, names, titles, banners, cultures, occupations
  • Lore field read/write with template support
  • Complete tag system (CRUD, bulk ops, rename, merge, categories, presets, notes)
  • Journal management (add, edit by index, delete by index, clear)
  • Relation notes and relation history
  • Relation note tags with auto-suggestion and locking
  • Auto-tag thresholds (per-hero customizable)
  • Custom culture definitions
  • Import/export (full and per-section)
  • Portrait upload and game portrait extraction
  • Banner PNG export from banner codes
  • Detailed statistics (20+ fields)
  • Web settings endpoint (reads MCM configuration)

Server

  • C# HttpListener on configurable port (default 8080)
  • MCM integration — 17 configurable settings under 9. Extensions/EEWebExtension
  • Enable/disable from MCM, configurable port, external access toggle
  • Auto-open browser option
  • Read-only mode toggle
  • Banner export waits for MapScreen (no export during character creation)
  • Old banners and portraits cleared on new session/save load
  • Portrait color correction (linear to sRGB gamma)
  • CORS headers for local development

Player HUD

  • Persistent stats bar showing Gold, Influence, Health, Troops, Morale, Speed
  • Per-stat colors with animated value changes
  • 5-second auto-refresh

Performance

  • Scroll-reveal via IntersectionObserver (no scroll listeners)
  • MutationObserver for dynamic content re-initialization
  • Lazy image loading on card grids
  • Background thread for banner/portrait export
  • Configurable sync interval to balance responsiveness vs CPU

Author

XMuPb


"The ink of the scholar is more sacred than the blood of the martyr."
— In the halls of Calradia, both flow freely.

About

The Living Archive of Calradia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors