How to write a roleplay character card that holds up
By James N.6 min read
A roleplay character card is a set of prompts with labels on them. The model reads some of those fields on every reply and others only once, and that difference should decide how you write each one. Below are the common fields as the SillyTavern docs define them, what belongs in each, how to budget tokens, and a short card you can copy.
What a character card actually is
SillyTavern's docs describe a card as a collection of prompts that sets how the model behaves, and they compare it to custom GPTs or Poe bots. The format travels: SillyTavern imports cards from files, and Perchance's character chat lists Tavern PNG cards among the formats it accepts. The field names below follow SillyTavern, because its docs explain them most clearly.
Only one field is required: the name. Everything else is optional, which is both a relief and a trap.
Which fields the model reads every time
This is the part most guides skip. Some fields go out with every single request; others drop away as the chat grows. The docs list them plainly.
| Field | When it is sent | What it is for |
|---|---|---|
| Name | Every reply | Who the model is playing |
| Description | Every reply | Facts: looks, history, world, wants |
| Personality | Every reply | A short summary of temperament |
| Scenario | Every reply | Where the scene starts and what is at stake |
| First message | Once, at the start | The opening scene and the model's sense of style |
| Example dialogue | Until the chat fills the context | How the character talks |
The permanent four are the expensive ones, since every token in them is a token the chat history cannot use.
Description
Put the facts here, because this field is always in the prompt: who the character is, what they look like in a line or two, where they come from, and the world around them if the card carries its own setting. The docs allow any length and any format, from free prose to pseudo-code.
My habit is short plain sentences, plus two lines that do more work than the rest: what the character wants, and what they will never do. A model that knows both has something to push against when your character pushes back.
Personality and scenario
Personality is the summary field: a handful of traits, written the way you would describe someone to a friend. Long adjective lists blur together, and four specific traits beat twenty generic ones.
Scenario is the circumstances of the conversation, in the docs' words. Treat it as the setup of the first scene, with a problem already in it. If you want ideas for that problem, the scenario prompts article has a few dozen sorted by genre.
First message
The docs make a claim worth taking seriously: the model picks up style and length from the first message more than from anything else. Write three long paragraphs here and expect three long paragraphs back. Write four lines and you will mostly get four lines.
Two rules I keep. Never write what the user's character does or feels, because the model will copy that habit for the rest of the chat. And end on something the user has to answer: a question, an offer, a door left open.
Example dialogue
Example dialogue shows how the character talks. Each block starts with the <START> marker, lines begin with {{char}}: or {{user}}:, and the front end swaps those macros for the real names. The marker itself never reaches the model; SillyTavern replaces it with a separator.
These blocks only stay in the prompt while there is room, and they are pushed out one block at a time as the chat history grows. Spend them on voice: verbal habits, how the character dodges a question, what they sound like when annoyed.
How many tokens should a card use?
The docs give a clean example: on a model with a 2,048-token context, a 1,000-token card halves what the model can remember of the chat. SillyTavern also turns the token counter red once the card passes half of the model's context.
Other front ends say much the same. SpicyChat AI's docs suggest about 800 to 1,100 tokens for a character setup, and Perchance's tips keep the description under about 500 words, with a lorebook for anything more. As a rough conversion, 1,000 tokens is about 750 words of English.
For small-context models I keep the permanent fields under 600 tokens. A big cloud model can afford more, but a lean card still behaves better, because there is less for the model to misread.
Advanced fields worth knowing
- Alternate greetings: extra first messages you can swipe between when a new chat starts.
- Character's Note: text inserted a fixed number of messages from the end of the chat, useful for a trait that keeps slipping.
- Main prompt and post-history instructions: per-character overrides, used only when the matching setting is switched on.
- Creator's notes and tags: information for people browsing the card. They are not used to build the prompt.
Lore that only matters sometimes, such as a city's history or a rival's family tree, belongs in World Info or a lorebook rather than the description.
A short example card
Here is a complete card at PG-13, kept small on purpose. The permanent fields come to well under 200 words, so it fits comfortably even on a small model.
Name: Captain Halla Brask
Description:
Halla Brask, 41, runs the night ferry between two islands
that have not trusted each other in a hundred years.
Weathered, exact, allergic to small talk. Keeps her
logbook in pencil so she can correct it. Lost her license
once for refusing a bribe and won it back the hard way.
Wants: one season without trouble on her deck.
Will never: leave a passenger behind.
Personality: dry, watchful, loyal once earned, bad at apologies
Scenario: A storm has closed the harbor. {{user}} is the last
passenger aboard, carrying a sealed crate that both islands
want. Halla has twenty minutes to decide whether to sail.
First message:
Rain hammers the wheelhouse glass. Halla does not look up
from the logbook. "Harbor's closed," she says. "Which means
you paid someone to tell you it wasn't. Sit. Tell me what's
in the crate, and do not tell me it's apples."
Example dialogue:
<START>
{{user}}: Can we make it across?
{{char}}: "Can we? Yes. Should we? Ask me again once you've
told me who is waiting on the other side."Look at what the first message does: it sets the length, shows her voice, and ends on a question the user has to answer. Look also at what it leaves alone: it never says how the user feels about any of this. Paste the fields into Create New Character, and the SillyTavern setup guide covers the rest of the install.
Mistakes that break cards
- Writing the user's actions or feelings into the first message.
- A personality field twenty adjectives long.
- Facts in the description that the example dialogue contradicts.
- A scenario with a place but no problem.
- Pages of world history in the permanent fields, where they cost tokens on every reply.
If you would rather skip the fields entirely tonight, the scenario generator starts from one line about your character and the trouble they are in.
Questions
How long should a roleplay character card be?
Keep the permanent fields well under half of the model's context. For small models that means a few hundred tokens, and SpicyChat AI's docs suggest about 800 to 1,100 tokens for a whole setup.
What does the START tag do in example dialogue?
It marks where each example conversation begins. SillyTavern does not send the tag itself; it swaps it for a separator, so the model sees separate sample exchanges rather than one long chat.
Can I use the same character card in different apps?
Often, yes. SillyTavern imports cards from files, and Perchance's character chat accepts Tavern PNG cards. Field names differ between apps, so check that each field landed where you expected after importing.