Labs · Lorebook trigger

Paste a chat,
see which lorebook entries fire.

“Why didn’t my worldbook trigger” is the number-one worldbook headache — and the usual debugging method is edit, start a chat, squint. Drop a worldbook JSON and a few chat lines here instead: matched keywords get highlighted, constants get flagged, recursion chains get drawn, probability entries get a re-roll button. The engine is ported against SillyTavern 1.18 scan-and-activate semantics and runs entirely in your browser.

Freeruns in your browsernothing uploaded

Worldbook

Drop a worldbook JSON here, or click to pick

Tap to pick a worldbook JSON file

Accepts SillyTavern World Info exports · character card JSON (embedded book auto-extracted)

Chat text

Scan depth4

Load a worldbook, paste some chat — trigger results show up here.

How do you test a lorebook without starting a chat?

Paste the worldbook JSON and a few lines of chat above: every entry gets a verdict with its reason — matched keywords highlighted, secondary-key logic (AND_ALL / NOT_ANY and friends) spelled out, recursion chains drawn, probability entries re-rollable. The engine follows SillyTavern 1.18 scan-and-activate semantics and runs entirely in your browser, so you can iterate on an entry in seconds instead of burning test chats.

Where this tool comes from

The trigger engine is a line-for-line port of the worldbook activator inside the Foreverse app — an implementation aligned with SillyTavern 1.18's checkWorldInfo and pinned down by 60+ unit tests. The web build carries over the scan-and-activate phases: keyword matching (case, whole-word boundaries, CJK keys, regex keys), all four secondary-key modes (AND_ANY / AND_ALL / NOT_ANY / NOT_ALL), constants, recursive scanning (including the excludeRecursion / preventRecursion / delayUntilRecursion level machine), probability rolls, and inclusion groups.

Behavior alignment used the app-side unit test suite as gold: representative cases (CJK keys, case overrides, the four secondary modes, recursion chains, decorators) were carried into the web engine's self-test, and everything passes before shipping. Ported 2026-07.

What it can't do

It simulates which entries activate — not what finally lands in the prompt. A real run adds token-budget trimming (low-priority entries get cut when the budget runs out), injection ordering, and cross-turn sticky/cooldown counters. Those need session state a one-shot simulation doesn't have; entries carrying such settings get a "simulated stateless" badge.

Entries with a character filter are treated as unfiltered here — the page has no "who is speaking" context. And frontends differ on recursion and probability details; this page follows SillyTavern 1.18 semantics.

FAQ

Why isn't my worldbook entry triggering?

The four usual suspects, all flagged directly by this tool: ① the keyword never appears in the scan window — by default only the last 4 messages are scanned, so a keyword from ten turns ago doesn't count; ② the secondary-key condition fails — AND_ALL wants every key present, NOT_ANY wants none of them, and people mix the directions up constantly; ③ the entry is disabled, or it's a dead entry with no keys at all; ④ the probability roll missed — a 30% entry sitting out seven rounds in ten is working as designed.

What does recursive activation mean?

When entry A fires, A's own content joins the next scan pass — if B's keyword appears inside A's text, B fires too. That's recursion, and worldbook authors use it deliberately to build lore chains: mention the lighthouse, get the keeper, get the keeper's secret. This tool draws the chain ("triggered by the content of …") — information you can't see inside SillyTavern itself.

Will the simulation match a real chat exactly?

The scan-and-activate verdicts match (keyword matching, case, whole-words, secondary logic, recursion, probability, inclusion groups — all ported against SillyTavern 1.18 semantics). Three things a real run adds that this page doesn't simulate: token-budget trimming (low-priority entries get cut when too much fires), injection ordering, and cross-turn sticky/cooldown counters. Entries carrying those settings get a caveat badge.

Is my worldbook uploaded?

No. Parsing and simulation run entirely in your browser — the page keeps working offline once loaded. That's also why you can throw a 50,000-word book at it: there's no server in the loop.

Related tools & reading

← All free tools

SillyTavern Lorebook Trigger Simulator — Test Why World Info Entries Fire (or Don't) · Foreverse · Xinmeng