Silly Tavern character card fields (1/5): What’s in the file? spec, data, and metadata
Series: Silly Tavern character card fields (5 parts). Field names and nesting follow the community Character Card V2 explainer; how Silly Tavern labels a field or whether it reads it depends on your ST build.
Think of a card as a contract: the PNG is the cover, the embedded JSON is the text. This part covers the outer shape of JSON and the fields that mostly act as display/metadata (including text that never goes to the model).
V1 vs V2: look for spec
- Looks like V1: the root object has
name,description, etc. Nospec. Those six strings are mandatory and MUST default to an empty string, notnullor “missing”. - Looks like V2: the root has
spec: "chara_card_v2",spec_version(e.g."2.0"), and the real payload lives underdata. That nesting helps old editors not silently strip V2-only keys.
Rule of thumb: no spec → treat as V1; chara_card_v2 → read everything under data.
V2 outline (concept only)
Structural sketch to align key names—not a drop-in production card (fill in per your tool):
{
"spec": "chara_card_v2",
"spec_version": "2.0",
"data": {
"name": "",
"description": "",
"personality": "",
"scenario": "",
"first_mes": "",
"mes_example": "",
"creator_notes": "",
"system_prompt": "",
"post_history_instructions": "",
"alternate_greetings": [],
"tags": [],
"creator": "",
"character_version": "",
"extensions": {}
}
}(character_book is optional—add it when needed; see part 4.)
Later parts unpack personality and other prompt-facing fields. This part focuses on data entries that behave like “business card + notes”.
name
Role: the character’s display name. Works with / <CHAR> replacements elsewhere (case-insensitive per spec).
Example:
Lin Wandescription
Role: character description. The V1 spec says it SHOULD be included in prompts by default; UIs name the box differently—trust the label in your ST build.
Example:
A book conservator in their twenties—speaks slowly and listens before answering. Doesn’t enjoy noisy rooms.tags
Role: string array for filtering / UI, not prompt engineering. Tags SHOULD NOT be assumed to feed the model.
Example:
["original", "slice-of-life", "short-form"]creator
Role: author attribution string.
Example:
RiverStudiocharacter_version
Role: a string version label so you can tell v1.0 from v1.1 when files multiply.
Example:
2026.04.16creator_notes
Role: notes for humans, never injected into prompts—recommended model, temperature, usage tips, warnings, etc.
Example:
Try a fresh chat for line 1. If this conflicts with your global Jailbreak, clear the card’s post-history field first (see part 5).Previous: —
Next: (2/5) Personality & examples: personality, mes_example
Series index: Blog · Silly Tavern character card fields
On macOS, browse and edit embedded JSON in PNG cards with Sillycard. Details: App Store and in-app copy.