Skip to content

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):

text
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:

text
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):

json
{
  "my_tool": {
    "palette": "sepia"
  }
}

Field cheat sheet

KeyWhat it roughly does
nameCharacter name; feeds
descriptionDescription; usually in prompt
personalityPersonality blurb
scenarioSituation / background
first_mesFirst assistant message
mes_example<START>-separated samples
creator_notesHuman notes; not in prompts
alternate_greetingsExtra greetings array
character_bookEmbedded lorebook
tags / creator / character_versionSorting, attribution, version
system_prompt / post_history_instructionsHigh-leverage instruction slots (behavior per spec)
extensionsApp-specific bag

V1 cards without spec expose the classic six-string root; V2 nests under data.

Debugging (verbs)

  1. Detect V1 vs V2 (spec present or not).
  2. Hunt conflicts between globals (system / Jailbreak) and card system_prompt / post_history_instructions.
  3. Change one thingre-importnew chat (avoid stale context).
  4. Validate JSON (quotes, commas—JSON has no comments).
  5. 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.

Sillycard — a simple Silly Tavern character card manager, native macOS app. © 2026 Sillycard