v0.158.0 — Misc enhancements: the 5e sheet on the character page, and the conversation list
Released 2026-11-11. A D&D 5e character's page is the 5e module's own sheet, with its portrait on page 1 and its validation issues marked where they are; the chat's conversation list looks like a messaging app's; New Retro's headings are set in Fraunces; on the desktop, the palette moves to the map's right edge and the footer shows the version again. Module API 1.48.0; dnd5e 0.23.0.
Characters
- [x] A D&D 5e character's page is the 5e sheet.
/characters/:id(and its campaign form) draws the character with its system's own sheet where the system ships one — the 5e module's two pages, Character and Details — and with the platform's sheet otherwise, as before. The page's menu, Share, factions and breadcrumbs stay; the separate sheet-view button shows only where the sheet view is a different view. - [x] On the 5e sheet, Appearance is on page 1. The portrait and the appearance text head the middle column; Combat heads the third, where Personality was; Personality is on page 2, where Appearance was. The portrait is the character's portrait art (it showed nothing: it read a field the platform's artwork does not have), and in Build mode its Edit opens the artwork editor the platform's sheet and Mini-Me open. (Module API 1.48.0:
SheetApi.openPicker('artwork'); dnd5e 0.23.0.) - [x] The 5e sheet marks what is wrong with the character. A panel with validation issues has a button at the right of its heading (right of any button already there): a yellow triangle for warnings, a red octagon when any is an error. It opens the panel's issues, and the list stays open while you click the sheet to fix them, until you close it. Class and level issues are marked at the top right of the header. Muted rules, and a character whose validation is off or report-only, mark nothing, as on the platform's sheet. Each issue in a list can turn its rule off, for this character, campaign or system (where you may), as on the platform's sheet. The button is opaque, its top level with the heading's. (Module API 1.48.0:
SheetRendererProps.validationIssues,SheetApi.validation.) - [x] A module's sheet has an issues button beside Build. Right of Build in the sheet's header: every issue on the character in one list, each with its Turn off menu, then the issues muted rules hide, each with Turn back on. Its icon is the worst issue's (a red octagon, a yellow triangle), and like the panels' lists it stays open until you close it. It shows in report-only mode too, where the panels carry no marks.
- [x] A character with no artwork says how to add some. On the character sheet (the Character and impersonated-token sidebars, the character page), the grey placeholder where the portrait goes reads Click here to add artwork under its icon, and the whole of it is a button that opens the artwork editor — the dialog the round Edit or replace this artwork button opens. That round button is no longer drawn over the placeholder, where it was a second way to do the same thing; it is still there over real art. A sheet you cannot edit keeps the plain placeholder.
Chat
- [x] The conversation list wears avatars, as in a messaging app. A campaign's channel shows the campaign's card art and a map's its snapshot (initials on a colour where there is none), Personal shows your own chat avatar, Secret a grey square with its eye in white; the others keep their glyph in the same square. The unread count sits on the avatar's corner, so the rows lose the gutter left of it; rows are taller with more room before the text, and hovering one fills the whole band between its dividers. (
GET /api/channelsgives each channel animageUrl.) - [x] The conversation list rules a line between its sections. Where one section (This campaign, This map, Direct messages, …) ends and the next begins, a full-width line, so the sections read as groups and not one run of rows.
- [x] The conversation list doesn't fill the channel you're in. Its row (the current map's, say) had an opaque band; now only a row under the pointer is filled.
- [x] New conversation is an edit icon. At the left of the row New channel is in, as a messaging app's compose button, in place of the New conversation button; it opens New conversation with the cursor in its To field (it was on the dialog's ×).
- [x] Bert's avatar is a photo of the real Bert. Everywhere he appears, his older replies included (they stored the old drawing's address, which the chat now shows as the photo).
The map and the app
- [x] On the desktop the palette runs down the map's right edge. As on a phone: from the play bar down, square against the right of the map view — the right sidebar's edge while that is open, so it moves with the sidebar — and round over the map, collapsed to its Tools button or open with its collapse button; its tooltips and the token search open toward the map. The Object editor's palette moved with it. The snap bar, which stood on the right edge, moves to the left edge below the drawing, fog and vision tools (as on a phone), and those tools stand alone in the upper left corner instead of beside the palette. (The palette strip reports its side to
mapRingStore.strips; a corner palette joins it only when it is on the left.RingNubs ask for the left edge, whose row is the only one;rowEdgeForwent.) Core Concepts no longer puts the palette in the middle of the bar, where the map's name has been. - [x] The desktop footer shows the version again. Right after the copyright (
Copyright 2026 Purple Cat Games, LLC • v0.158.0), so a bug report or a screenshot says which build it came from. Not the build time, which stays in Help > About, and not on a phone, whose footer has no room.
New Retro
- [x] New Retro's headings are Fraunces. Headings and prominent text (titles, buttons, labels, the 5e sheet's name, section heads and labels) are set in Fraunces instead of Cinzel; body text stays Noticia Text. Retro keeps Cinzel.
- [x] Buttons in New Retro are spaced 0.5px. Fraunces, New Retro's heading font, needs far less tracking than Cinzel: its buttons (every standard button, the chat's damage buttons, the 5e sheet's page tabs and action buttons) go from 0.1em (and 0.04em, 0.12em) to 0.5px. Other skins are unchanged.