Lorebook Converter

JanitorAI lorebook txt/JSON → SillyTavern World Info JSON

Like this tool? Consider supporting me
This tool works ONLY on JanitorAI lorebooks NOT advanced scripts. Upload your JanitorAI lorebook information to the 'Source' and press 'Convert'. The output should be ready to import into ST. Anything the source doesn't give a rule for is preserved under extensions.janitorai_source. Everything below "Advanced settings" is adjustable. Remember to always double check the output and make your own adjustments.
Source JanitorAI-style JSON
Output SillyTavern World Info JSON
Advanced settings
Ordering

order = orderBase − (priority − 1) × orderStep, using each entry's priority field (falling back to insertion_order, then its position in the file). Lower JanitorAI priority number = higher SillyTavern order.

Placement
Recursion & matching
Match sources (baseline — overridden to false by the depth-1 rule above when it applies)
Preservation
How fields are mapped
SillyTavern fieldRule
key / keysecondaryfrom key/keys and keysecondary/secondary_keys. Regex-style strings (/pattern/flags) pass through untouched.
commentfrom comment, falling back to name when empty.
constant / vectorizedconstant, or true when activationMode is "constant"/"vectorized".
orderformula above, from priority. Expect that you may need to hand-tune afterward.
position / depth / rolefrom the source when present, else the Advanced settings above (verified defaults: position 4, depth 3, role 0).
disable / enabledenabled: false in the source → disable: true; both fields written.
preventRecursionAuto mode (this tool's heuristic, not a SillyTavern rule): true when tags includes "world"
groupfrom inclusionGroupRaw, falling back to group, else empty.
delayfrom minMessages when > 0, else 0.
probability / groupWeightcopied directly, default 100.
caseSensitive / matchWholeWordsnull by default — the reference book had these null even where the source set matchWholeWords: true. Switchable to pass-through above.
match* fieldsfrom the checkboxes above; the depth-1 rule above (this tool's own policy, not something SillyTavern requires) can override description/persona to false and force excludeRecursion true for that entry.
extensionsmirrors {position, role, depth, sticky, cooldown, delay} (matches the reference book's legacy-compat duplication), plus unmapped source fields under extensions.janitorai_source when preservation is on.
"Preserve existing settings"when on, any field the entry already has a value for — at the top level, under extensions, or nested in extensions.janitorai_source from an earlier conversion — is kept as-is, including order. Advanced settings above are only used to fill in what's actually missing. Turn it off to force every entry to the Advanced settings values instead.