L5RCM v4.0.0 🎉
This is a major release: L5RCM ships an entirely new user interface, rebuilt from the ground up in QML, alongside a deep rework of the application's internals. The classic QWidget UI is still available, but the new sheet-style interface is now the default experience.
✨ A brand-new interface
- Complete QML UI rewrite — every tab has been re-imagined as a themed character sheet: Character, Skills, Techniques, Spells, Kata, Kiho, Tattoos, Weapons & Armor, Advancements, Notes, Modifiers, Settings and About.
- Per-clan accent theming — the sheet tints itself to your character's clan.
- Responsive layout with a hamburger drawer sidebar, plus a user-selectable UI text size (Standard / Large / …).
- Per-character section visibility — hide the sections you don't use from the sidebar or the View menu.
- New typography (Cinzel headers, IM Fell English / Garamond body) and a bundled brush-kanji font for the CJK section icons.
🀄 Character building
- Unified Origin Selection dialog — choose clan, family and school in one place, with Different School support (#448, #450, #451).
- Join a new school (multiclass) directly within the rank-advancement flow.
- "+" button to award experience points quickly (#404).
- Editable base health multiplier (e.g. Earth ×5) (#389).
- Batch heal/damage dialog for wounds, with a vertical wound ladder.
📦 Datapacks
- New Library section: install datapacks from file, enable/disable, delete, and download the official packs from within the app.
- Datapack-driven declarative stat modifiers — TN, rings and other effects are now evaluated from the records you own.
💾 Files & export
- Autosave and resume-last-session, with discard guards on New/Open.
- PDF and NPC sheet export from the new UI, with optional pre-printing of the current Armor TN (off by default).
- Exported PDFs are now truly flattened, with word-wrap and non-ASCII fixes.
🌍 Localization
- New en_US and en_GB locales.
- Updated Italian, French, Spanish, Portuguese (Brazil) and Russian translations (with further community work via Weblate, including Arabic and Vietnamese).
🪟 Packaging
- Per-user Windows installer that does not require administrator rights.
- Automatic light/dark theme detection.
🐛 Notable fixes
- Accept decimal Honor/Glory/Status input (#380)
- Social flag tracks now read as rank-tenths (#402)
- Spell slots no longer auto-advance on selection (#403)
- Older saves load correctly — nested Rank objects are rehydrated (#397) and legacy school ranks are handled (backwards-compatible)
- Taking off / wearing armor now works (#379)
- Adjusting wounds no longer re-renders the whole sheet (#419)
- Re-evaluate Family/School edit state when the character changes (#433)
- Register each Liberation Sans face under its own name on Windows (#426)
- Tooltips on tabs (#396); fixed obsolete README install instructions (#382)
🛠️ Under the hood
Large internal refactor: the API layer now resolves its session state through a contextvars-based L5RCMContext, main.py was decomposed into per-tab/per-concern UI mixins with dedicated Qt sinks, and the legacy Sink1..Sink4 monoliths were dismantled.
Full changelog: https://github.com/OpenNingia/l5rcm/compare/v3.20.0...v4.0.0