Eleven switches, and the trade-offs behind them

Memory, auto-summary, story choices, state tracking, stepped thinking, lorebook suggestions, reply ideas — the extension powers desktop tavern players rely on, built into Foreverse as a plugin center. A walkthrough of what each plugin does and costs, plus the three disciplines we hold: every side-request is itemized in your billing log, every turn has a call budget, and tapping a choice never sends on your behalf.

Hand-drawn ink illustration: an old apothecary cabinet with many drawers, several open and glowing, toggle switches on the fronts, one drawer outlined in cinnabar

What makes desktop SillyTavern hard to leave is the extension ecosystem: memory, status bars, story choices, stepped thinking, hundreds of community add-ons each minding one job. Porting that to a phone by imitation does not work — every extension may fire extra LLM calls, and what a desktop player shrugs off against their own GPU, a phone player pays per token. So Foreverse builds the high-frequency powers in as a plugin center: each one a switch, governed by three disciplines about cost. The inventory first.

Eleven switches

PluginWhat it doesExtra calls
MemoryDual engine: fact extraction + retrieval injection, and session summariesYes, signal-gated
Auto-summaryCompresses early history past a length thresholdYes, infrequent
Re-roll guardConfirmation before regenerating, saves good replies from a slipNone
Story choicesThree plot-direction phrases after each reply landsYes, one per turn
Reply ideasThree complete candidate lines in your voiceYes, mutually exclusive with choices
State trackerInfers scene state (time / place / relationships), manual refreshYes
Stepped thinkingPrivate draft before the real reply; 15s timeout degrades silentlyYes, blocking
Prose polishDisplay-time rewrite of mechanical phrasingYes
Lorebook suggestionsScans the chat and proposes new entries, added one by one with consentYes, manual trigger
Image triggerAuto-generates an image when a reply carries an image tagYes, image model
FavoritesLong-press to save replies you love, global management pageNone — always on, no switch

The favorites row deserves its footnote: it has no switch. Saving is a data behavior — a toggle that could hide someone's saved replies hurts more than one extra switch ever tidies. So it stays on, with a management entry in the hub. The plugin center contains several of these decisions about what not to build.

Three disciplines

First: a per-turn call budget. One send could theoretically stack six calls (stepped thinking, the main generation, memory extraction, summary, choices, tracker) — six times the latency and the bill. The hard rule: at most one blocking plugin per turn; at most two post-reply quiet calls, prioritized choices, then tracker, then summary, with the loser deferred to the next turn.

Second: every side-request is itemized. Each plugin call gets its own row in the API request log, labeled with the plugin name, tokens and cost separated from the main conversation. You can audit the ledger and decide which plugins earn their keep — our stance is to hand over the choice together with the bill.

Third: tapping a choice never sends. Story choices fill the input box for you to edit; sending is yours. Auto-send looks slick and quietly means a plugin speaks as you. The one exception is reply ideas, whose whole product is complete lines — tap to send, long-press to edit — and when both plugins are on, only ideas runs that turn.

A field lesson worth the tuition

Real-device testing caught a counterintuitive bug: the state tracker produced permanently empty output on one phone. The cause was reasoning-model thinking budgets — the plugin capped side-request output at 400 tokens, and that device's reasoning model spent three to five hundred tokens thinking before writing a single visible character. The fix raised the caps across the board (up to 1600) and moved brevity enforcement into the prompt.

Everything is tunable

Each plugin has a detail page — explanation, cost badge, parameter card. Choice count, tracking frequency, and summary interval are adjustable, and quiet calls can run on their own model: flagship for the main chat, a flash-tier for plugin side-requests is the combination we use ourselves. Switches also override per character card — off globally, on for one card, or the reverse.

Why memory injects where it does, and how much retrieval strategies differ, is measured in the memory experiment; how plugins behave around multi-character scenes is in the group chat piece.

FAQ

Do plugins quietly inflate my API bill?

Every call is itemized. Plugin side-requests (generating choices, extracting state, writing summaries) appear as separate rows in the API request log, labeled with the plugin's name, tokens and cost split from the main chat. Hard budget on top: at most one blocking plugin call per turn, at most two post-reply quiet calls, overflow deferred to the next turn.

How does the memory plugin work?

Two engines. Fact memory extracts key facts into local entries and injects the most relevant on each turn (retrieval has four modes: auto, full, relevant, recent); session summary compresses early history once a long chat crosses a threshold. Both inject at the message-level tail on the user track — a position we chose from a 400-round caching experiment.

What's the difference between story choices and reply ideas?

Point of view. Story choices offers three plot-direction phrases (director's view); tapping one fills your input box for you to edit and send. Reply ideas drafts three complete lines in your voice (actor's view); tap to send, long-press to edit. With both enabled, only one runs per turn — ideas takes priority — so you never pay for both.

Does stepped thinking slow replies down?

It adds one preliminary call: the model drafts private notes first, then writes the real reply with them in hand — noticeably better on complex personas. A 15-second timeout degrades silently to a normal generation, so your message never hangs on it. It disables itself in group chats, where multiple inner monologues would cross-contaminate.

Questions or ideas? Join our Discord →

A Tour of the Plugin Center: Desktop Tavern Extensions, Rebuilt for a Phone's Budget · Foreverse · Xinmeng