Changelog

The newest features and fixes, newest first, mirrored from the app's own About panel. Currently on v2.1.29.

Recently shipped

✨

NPCs answer when named

An NPC named in your message answers when Auto Reply is on, and an NPC named in Narrator (System) narration answers alongside your characters (for example "Tobias laughs and points at Lucien")

✨

NPC speech quirks, a grudge and favor ledger, and secrets

Each NPC gets a distinct way of talking, remembers strong moments (a kindness or a slight) and brings them up later, and keeps secrets (written by you, or invented by the AI) that they only share once they trust you enough

✨

NPCs tied to places and factions

Clicking a place on the Story Map brings the NPCs who belong there (or sometimes a stranger who then belongs there), NPCs can join your story's Factions, and NPCs are sorted into categories automatically (Students, Staff, Guards…

✨

Edit an NPC's card

A new ✏️ Edit button on every NPC in NPCs You've Met to change how they appear, what they want, how they talk, where they are, and their faction

✨

Narrator (System) in Speak as

Pick it from the Speak as dropdown and your line is posted as pure narration, not as you or a character (for example "Enzio runs away and Lucien runs after him"), and the characters it names then respond in character.

✨

Reply as an NPC

NPCs who have spoken recently get their own button in the Reply As bar, so you can answer them and keep a conversation going instead of it stopping after one line. Type what you want them to do or say first to steer them

✨

Random NPC Replies, NPC chime-in and Crowd murmurs

A 🎭 Random NPC button in the Reply As bar (turn on per story in Relationship Settings), an optional chance that an NPC steps forward on their own after you send a message, and optional background chatter from unnamed people…

✨

NPCs You've Met, upgraded

Portraits (picked from how they're described, changeable, and carried over when you claim them), what they've said and seen, Pin, Rename and Merge, an "in this scene" badge, and Warmer/Colder buttons.

✨

Claim as character

Turn an NPC you've grown fond of into a full character card (written by the AI from what they've said, added to your roster and scene), plus a gentle nudge when an NPC keeps turning up

✨

NPCs with a life

Witnesses who spread what they saw as rumors (with Reputation Ripples and the Rumor Board on), small wants, quest offers from friendly NPCs (with Quests & Inventory on), and reputation that matters: hostile NPCs cause trouble…

✨

Auto Reply

An optional setting (Automation) so characters answer on their own right after you send a message, instead of you clicking each one in the Reply As bar.

✨

Zoomable Story Maps

Scroll to zoom toward the cursor (up to 8x), drag to move around, pinch on a touchscreen, or use the +/−/fit buttons. Hotspot pins stay the same size and on their spot, and you can still place new ones while zoomed in

✨

Don't read (parentheses) aloud

Out-of-character notes and inner thoughts in (parentheses) are skipped when a message is read aloud, with a setting to turn it off. On by default

✨

Story template

Download a plain text template covering every New Story field, plan your roleplay anywhere (no app or model needed), then load it with "Fill From Text File" to fill in the whole wizard, including Other Characters and Groups &…

Bug fixes

🔒

Voice engine now makes one clip at a time

Builds on the v2.1.24 fix: the voice engine itself now refuses to generate two clips at once, so even requests that arrive together (an Auto Speech line overlapping a manual play, for example) can't garble each other.

🎭

NPC lines could be silently dropped

Smaller local models sometimes copy the placeholder "+N" from the instructions instead of writing a number in an NPC's hidden tag, and the whole NPC line was thrown away.

🔗

Relationship scores could silently stop updating

The hidden [REL:+N] tag that moves a character's relationship score was only recognized when it was the very last thing in a reply.

🎭

The Random NPC button often did nothing ("No one stepped forward")

It asked one of your characters to speak the NPC's line inside a special tag, and smaller local models kept getting the tag wrong, so the line was thrown away.

🧩

Cut-off hidden tags like [REL stayed visible at the end of a long reply

When a reply ran out of length partway through a hidden bookkeeping tag, the leftover fragment (for example [REL or [REL:+) showed at the end of the message and could be read aloud.

🎙️

Voice garbling: overlapping voice requests corrupted each other

The voice engine can only make one clip correctly at a time, but the app could send a new request while the previous one was still being generated, for example when Auto Speech started the next message, when you pressed play…

🗣️

Voice reading sounded garbled, and curly-quote speech wasn't recognized

Some models write speech in curly quotes, which the app didn't treat as speech: the message showed no speech highlighting and the narrator voice read every character's lines as one block.

📥

Download buttons did nothing in the installed app

The installed app's window silently cancels every normal file download, so Download Template, story export (file, PDF, Story Bible), character export, Share Pack, Back Up Everything and Back Up All Voices could appear to do…

🏛️

No way to assign or change a character's Faction after their story was created

Faction could only ever be set once, during initial New Story creation, in the wizard's Other Main Characters editor — a character made afterward through the normal Character Editor had no Faction field at all, with no way back…

📜

Restore From Backup couldn't bring back a lost title or chat log

If an existing story lost its title and message history in place (same story, everything else about it untouched) rather than being deleted outright, Restore From Backup had no way to help — it only ever recovered a missing…

🖼️

Editing a character could silently erase their mood portraits and appearance details

Saving a character through the normal editor rebuilt the entire record from that form's own fields — but eye color, hair, distinctive feature, faction, disposition, and every uploaded Dynamic Portrait mood image have no input…

📢

A generation failure during New Story creation was still too easy to miss

A warning about something failing to generate showed as a small corner toast that faded away on its own — easy to miss entirely while attention was on the loading screen or the intro card that appears right after, especially…

🎲

A Random Encounter's chat message could read as one mushed wall of text

The encounter's scene description and its response options were both meant to be parsed out separately — the options rendered as their own clickable buttons — but a parsing gap meant every "OPTION: ..." line the model wrote got…

🔕

A second warning during New Story creation could silently erase the first

If a story's intro AND its starting characters/lorebook both failed to generate in the same submission, only the last warning ever actually appeared — the alert banner is a single shared element, so showing a second one instantly…

🎭

A long New Story submission could create zero starting characters, silently

A detailed story concept — six named characters plus factions, key events, and everything else the wizard collects — asks the model to write a full 8-character cast in one reply.

🛟

A story's persona, characters, or main prompt could appear to vanish

A rare startup timing issue could make the app briefly misread its own saved story list as empty — enough to make a real story's persona, characters, and main prompt look gone, even though the underlying data was never actually…

Showing the newest entries. The full history, well over a hundred fixes, lives in the app's own 🐛 Bug Fixes view.