Silly Tavern character card fields (5/5): Extensions & debugging — system_prompt, post_history_instructions, extensions
Series: Silly Tavern character card fields (5 parts). These V2 fields aim to align end-user experience with author intent; whether they override global ST settings by default—and whether you can override them in UI—follows the spec’s intent and your ST options. Source: V2 explainer.
system_prompt
Role: system prompt text carried by the card. The spec proposes that, when non-empty, it should replace the user’s global system prompt by default (empty string → fall back to global/default). That reduces drift from users’ global presets.
Example (placeholder—tune for your model):
Reply in English. Play {{char}} talking with {{user}}; avoid repeating the previous sentence verbatim; if unsure, ask one clarifying question before advancing the plot.Practical check: if changing the global system prompt doesn’t change the character, see whether the card’s system_prompt is non-empty.
post_history_instructions
Role: instructions placed after chat history. The spec notes these often weigh heavily on current models; in some ecosystems this slot parallels concepts like UJB or Jailbreak naming in Silly. When non-empty, it should replace the user’s global post-history slot by default (empty → fall back).
Example:
Keep one voice and one set of names; don’t introduce organizations or places not implied by the card unless {{user}} explicitly adds them.Keep this short and sharp—it’s a strong lever.
extensions
Role: an object for app-specific data not in the spec; default {}. Importers must not strip unknown keys. Namespacing (e.g. per-app prefixes) reduces collisions—see examples in the upstream repo.
Example (structural only):
{
"my_tool": {
"palette": "sepia"
}
}Field cheat sheet
| Key | What it roughly does |
|---|---|
name | Character name; feeds |
description | Description; usually in prompt |
personality | Personality blurb |
scenario | Situation / background |
first_mes | First assistant message |
mes_example | <START>-separated samples |
creator_notes | Human notes; not in prompts |
alternate_greetings | Extra greetings array |
character_book | Embedded lorebook |
tags / creator / character_version | Sorting, attribution, version |
system_prompt / post_history_instructions | High-leverage instruction slots (behavior per spec) |
extensions | App-specific bag |
V1 cards without spec expose the classic six-string root; V2 nests under data.
Debugging (verbs)
- Detect V1 vs V2 (
specpresent or not). - Hunt conflicts between globals (system / Jailbreak) and card
system_prompt/post_history_instructions. - Change one thing → re-import → new chat (avoid stale context).
- Validate JSON (quotes, commas—JSON has no comments).
- Back up the PNG before surgery.
Previous: (4/5) Lorebook
Next: —
Series index: Blog · Silly Tavern character card fields
Manage PNG character cards locally on Mac with Sillycard. Features: App Store and in-app copy.