← Back to blog

SillyTavern Character Card Format 2026: Mastering JSON Structure, W++ Syntax, and Advanced Customization

The world of AI roleplay has evolved rapidly, and at its core lies the humble character card. In 2026, the SillyTavern character card format has matured in…

Published
  • sillytavern
  • character-cards
  • json
  • w++
  • format
  • guide

Why the SillyTavern Character Card Format Matters

The SillyTavern character card format is more than just a file; it’s a portable personality. In 2026, it’s the bedrock of character sharing across platforms. By mastering JSON structure and W++, you ensure your characters are consistent, detailed, and ready for any AI backend. This format is supported by the entire MiniTavern ecosystem, from iOS and Android apps to the Web Tavern and Chrome extension, making your creations accessible wherever you roleplay.

Understanding the JSON Structure of a Character Card

A SillyTavern character card is fundamentally a JSON object. This structure is designed to be both human-readable and machine-parsable, ensuring seamless import and export. Let’s break down the key fields using Professor Aldric Vane as our example.

Core Fields: name and description

The name field is straightforward. For our professor, it’s “Professor Aldric Vane”. The description field, however, is your first opportunity for impact. It should be a concise yet evocative summary.

{
  "name": "Professor Aldric Vane",
  "description": "A brilliant but eccentric archaeologist with a passion for ancient languages and a mysterious artifact collection."
}

The personality and scenario Fields

These fields shape how the character behaves and the context of your interaction. Use them to define core traits and the initial setting.

{
  "personality": "Curious, meticulous, slightly absent-minded, and fiercely protective of his discoveries.",
  "scenario": "You are a new research assistant visiting his cluttered office at the University of Veridia. The air smells of old parchment and dust."
}

The first_mes and mes_example Fields

first_mes is the character’s opening line. It sets the tone immediately. mes_example provides a few sample dialogue exchanges to guide the AI’s style.

{
  "first_mes": "*Professor Vane looks up from a crumbling scroll, his eyes twinkling with excitement.* Ah, my new assistant! Just in time. I believe I've found a reference to the Lost City of Aethelgard. Your thoughts?",
  "mes_example": "<START>\n{{user}}: This artifact looks dangerous.\n{{char}}: *He chuckles, carefully handling the object.* Danger is relative, my friend. To a historian, this is a key to a thousand-year-old mystery.\n<START>\n{{user}}: Can you translate this inscription?\n{{char}}: *He squints, adjusting his spectacles.* Hmm... 'The gate opens only to the voice of the forgotten king.' Fascinating!"
}

Advanced JSON Fields for 2026

Modern character cards include fields for deeper control. The system_prompt field allows you to inject custom instructions for the AI. The post_history_instructions field guides behavior after a certain number of messages. The creator_notes field is for your own documentation.

{
  "system_prompt": "You are Professor Aldric Vane. You speak with an academic tone but are prone to enthusiastic tangents. You value knowledge above all else and are suspicious of modern technology.",
  "post_history_instructions": "After 20 messages, Professor Vane becomes more trusting and may share a personal secret about his past.",
  "creator_notes": "Inspired by Indiana Jones but with a focus on linguistics. Avoid making him a stereotypical action hero."
}

Mastering W++ Syntax for Dynamic Personalities

W++ is a powerful annotation language that acts as a structured personality blueprint. It’s not a replacement for JSON but a complement. In 2026, W++ is the standard for defining complex character traits, relationships, and behaviors.

The Basics of W++

W++ uses a simple key-value pair format within a block. It’s placed inside the personality field as a string.

{
  "personality": "W++\n[Name: Professor Aldric Vane]\n[Age: 57]\n[Occupation: Archaeologist, Linguist]\n[Traits: Brilliant +, Eccentric +, Forgetful -, Protective +]\n[Likes: Ancient texts, puzzles, strong tea]\n[Dislikes: Modern gadgets, interruptions, dishonesty]\n[Goal: Find the Lost City of Aethelgard]"
}

Advanced W++ Techniques

For 2026, W++ syntax has evolved. Use [System note: ...] for meta-instructions. Use [Behavior: ...] to define reaction patterns.

[System note: If asked about his family, he becomes evasive and changes the subject.]
[Behavior: When excited, he speaks faster and gestures wildly.]
[Behavior: When threatened, he becomes surprisingly calm and analytical.]

Combining W++ with JSON

The true power comes from layering. Use JSON for the structural framework and W++ for the nuanced personality. This hybrid approach ensures your character is both predictable and surprising.

{
  "personality": "W++\n[Name: Professor Aldric Vane]\n[Traits: Brilliant +, Eccentric +]\n[System note: He has a secret collection of cursed artifacts in his office basement.]",
  "description": "A brilliant but eccentric archaeologist with a passion for ancient languages and a mysterious artifact collection."
}

Advanced Customization Techniques for 2026

Beyond basic JSON and W++, there are advanced strategies to make your character card shine.

Using embedding for Consistency

In 2026, many AI backends support embeddings. You can include a base64-encoded embedding vector in your card. This vector represents the character’s “essence” and helps maintain consistency across long conversations. It’s optional but powerful for complex characters.

Crafting Effective mes_example

Your mes_example is a training ground for the AI. Write 3-5 exchanges that showcase different facets of the character. For Professor Vane, include one where he’s excited, one where he’s frustrated, and one where he’s secretive. This variety prevents the AI from falling into a single pattern.

The Role of tags and creator

Modern cards include a tags array for discoverability. Use relevant tags like “archaeologist”, “professor”, “mystery”. The creator field is your signature. It helps build reputation in the community.

{
  "tags": ["archaeologist", "professor", "mystery", "ancient civilizations"],
  "creator": "YourNameHere"
}

Workflow Tips for Character Card Creators

Creating a great character card is an iterative process. Here’s a workflow that works in 2026.

  1. Start with a Concept: Define the core idea. For Professor Vane, it’s “a brilliant archaeologist with a hidden past.”
  2. Draft the JSON: Fill in the essential fields: name, description, personality, first_mes.
  3. Write the W++: Create a detailed W++ block that captures the character’s nuances.
  4. Test and Refine: Import the card into your favorite SillyTavern setup—whether that’s the iOS app, Android app, or Web Tavern. Interact with it. Adjust the mes_example and W++ based on the AI’s responses.
  5. Share and Get Feedback: Upload your card to the Character Card Market. The community can provide valuable insights for improvement.

The MiniTavern Ecosystem: Where Your Characters Come Alive

Your carefully crafted character card deserves a home where it can shine. The MiniTavern ecosystem offers seamless integration. Use the iOS and Android apps for on-the-go roleplay. The Web Tavern provides a full desktop experience. The Chrome extension brings your characters to any compatible webpage. And the Character Card Market is the perfect place to share your Professor Aldric Vane with the world.

Conclusion

Mastering the SillyTavern character card format in 2026 is about understanding the harmony between structured JSON and expressive W++ syntax. You now have the tools to create characters with depth, consistency, and personality. Start with the fundamentals, experiment with advanced techniques, and never stop refining. The AI roleplay community thrives on creativity, and your next character could be the one everyone talks about. Dive into the MiniTavern ecosystem today and bring your characters to life.

More guides you might like