Character Creation Guide

Introduction

In this guide, I will explain the basics of character creation from my own experience and perspective. There are many different ways to approach this and various use cases, so I want to preserve this collected information and provide an overview as a starting point. This guide will not cover narrator-style characters, world-style characters, and WorldInfo.

About My Perspective

A few details about myself: What I enjoy playing at the moment are DM-style roleplays with complex scenarios and complex characters. I also like creating short stories in cooperation with the AI. These two use cases are what my characters aim at and possibly influence this guide—I just want to be transparent about that.

At the beginning of my own creations, I also experimented with narrator or game master type cards, but for my own playstyle it was easier to just use group chat and dedicated characters for each encounter.

Character Writing Styles Overview

When I started character creation, I looked for "the best way" of creating characters. If you are also on that search, let's first examine what approaches are available. Here are the character writing styles I have collected and grouped:

Paragraphed Formats

  • Plaintext / Natural language
  • Boostyle / List of Keywords
  • Bracketed List / Categories and Entries
  • W++ (deprecated - do not use!)

Structured Formats

  • JED / Markdown
  • JSON / XML Structuring (too many tokens due to structure elements)

Model Aligning Formats

  • Plist
  • Plist with natural language (describing additional background in "show don't tell" approach)
  • Ali:Chat with Plist (both included in character's description)
  • Ali:Chat (in Character's description) with Plist (in Author's or Character's Notes)

One for All

  • WorldInfo

Important Warnings

W++ Warning

Historically, older LLMs were bad at processing natural language, so techniques to feed information into the AI in a better-to-process way were developed. The most prominent was W++, which is still common in guides and older character cards found online.

W++ Example:

[{Name("Toak")
Age("40")
Gender("Male")
Species("Half-orc")
Appearance("Huge" + "Muscular" + "Black hair")
Clothes("Breast plate armor" + "Linen shirt" + "Leather trousers" + "Leather belt")
Personality("Cruel" + "Nervous" + "Aggressive")}]

For modern LLMs, this is deprecated and today even counterproductive. Modern LLMs are trained for natural language, and their inner workings differ as we progress into predictive approaches. Even the original creator of W++ is said to have deprecated his creation and recommends not using it anymore (although I couldn't find a source for that).

Personal Warning About Technique Selection

The most important characteristic when deciding which technique is best for you is... fun. This perhaps sounds silly, but the main differences between these techniques are token usage, speed, perception, and alignment. These differences all stand far behind fun in my opinion (I learned that the hard way).

If you find and use a technique that is fun for you, your characters will be much better because you will sit there and improve on them and iterate them. If you have fun, this comes naturally. If the technique you're using hinders you or isn't well aligned with the way you think or structure naturally, then you've gained nothing—only perhaps misery and frustration.

Community Preferences

We recently had a poll on the Discord, and the most voted techniques for creating characters were: 1. Natural language (way ahead of others) 2. Square bracket formats or JED (tied for second) 3. Ali:Chat

This result and my personal experience is why I highly recommend well-structured and well-written natural language.

Detailed Style Explanations

Plaintext / Natural Language

You simply explain the character to the AI in a third-person approach.

Example:

In the woodlands of Alarion lives a young elf girl named Ari. She is very shy and lives alone, far away from civilization, to have her peace and enjoy nature...

Boostyle / List of Keywords

All entries are added directly behind each other, only separated with " + ". Multi-entries can be clustered within quotes. This style can save many tokens but is an absolute nightmare to read as a human, in my opinion.

Example:

Sirius[AI-assistant + male + intelligent + specialized + "math + programming + writing papers" + formal + supportive + modern speech + ...]

Bracketed List

Square brackets can structure information in the context for the AI. This style uses them heavily.

Example:

Name[Sirius]
Occupation[AI-assistant]
Description[male, intelligent, formal, supportive, modern speech]
AI specialization[math, programming, writing papers]
...

Categories and Entries

We all have written this before. You just use headlines and then add some entries. You can separate with colons or use unnumbered or numbered lists.

Example:

Character Sirius:

Occupation:
AI-Assistant

Description:
- male
- intelligent  
- formal
- supportive
- modern speech

AI specialization:
- math
- programming
- writing papers
...

Markdown

Markdown is a styling format in the form of a language. You have the following options:

# H1  
## H2  
### H3  
#### H4  
##### H5  
###### H6  

*italic* or _italic_  
**bold** or __bold__  
***italic and bold***  

Unnumbered list:  
- First item  
- Second item  
    - First nested item  
    - Second nested item  
    - Third nested item  
- Third item  

Numbered list:
1. First item
2. Second item
    1. First nested item
    2. Second nested item
    3. Third nested item
3. Third item

`inline code`  

```code language  
The code language can be given to enable highlighting in the codeblock.  
Hello world!  

With these markdown options, you can structure the character definition like in 'categories and entries' above, but with stronger structure using the markdown language.

### JED (Just Enough Definition)
JED is a blend of different techniques and is quite popular in the ST community. You get a template which you can use as a guideline to create your character. The template provides good structure and different techniques for aligning the AI and defining the character. The method creates a strong definition. 

As the concept is quite wide and complex (and I haven't collected much experience with it), here is the link to the original definition and template: https://rentry.co/CharacterProvider-GuideToBotmaking

### PList
PList is based on Python Lists which looks like this: `mylist = ["entryA", "entryB", "entryC"]`. This has been refined to create a very token-optimized format for defining traits.

**Format structure:**

[ CategoryA: entryA; CategoryB: entryB, entryC, entryD, entryE; CategoryC: entryF(descriptionF), entryG(descriptionG1, descriptionG2, descriptionG3), entryH/entryI/entryJ(descriptionHIJ1), entryK/entryL/entryM(descriptionKLM1, descriptionKLM2, descriptionKLM3), descriptionNOPQ entryN/entryO/entryP/entryQ; ]


**Rules:**
1. Start with `[` followed by a space and end with `]` on a new line
2. Add a category followed by `:`
3. Add traits as entries with optional descriptions
4. End the category with `;` and a new line

Each category must have at least one entry but can have as many as you want. Each entry can have additional descriptions.

**Example:**

[Name: Aiko Smith(Female, 19); Occupation: Student(University); Body: Height(160cm), Weight(48kg), Build(slim), Hair/Eyes(brown), Skin(fair), Figure(petite); Personality: Shy, Intelligent, Creative, Daydreamer, People pleaser; Mind: Loves art/music/literature, Imaginative, Analytical, Perfectionist; Speech: Soft-spoken, Polite, Stutters(occasionally when nervous); Mannerisms: Fidgets with hair, Avoids eye contact, Bites lower lip(playfully, unconsciously); Clothes: casual/comfortable(oversized sweaters, jeans); Likes: Painting, Playing piano, Reading(fantasy novels, guidebooks), Stargazing; Dislikes: Crowds, Public speaking, Spicy food; Hobbies: Sketching, Writing(short stories, diary), Hiking, Photography;]


For more about PList and its combination with Ali:Chat, see: https://wikia.schneedc.com/bot-creation/trappu/introduction#plists

### Ali:Chat
There are two well-written original sources for Ali:Chat:
- https://rentry.co/alichat
- https://rentry.co/kingbri-chara-guide

For a practical combination of PList and Ali:Chat: https://wikia.schneedc.com/bot-creation/trappu/introduction#what-is-alichat

The name Ali:Chat doesn't mean "alignment chat" (which I often read), but is called that because of AliCat who invented it.

The idea of Ali:Chat is to introduce, align, and reinforce traits in the character with very well-created chat-based dialogue between user and character. You transport personality, mannerisms, speech patterns, physical attributes, and more all in a dialogue-based style—the character showing them instead of describing them, which highly impacts AI responses.

**Benefits:** Can create extremely strong character definitions that the AI can follow very well and thus impersonate characters excellently.

**Problems:** It's complicated and requires skill to create characters in this style. You can easily build problems into your characters that are hard to identify. I would advise testing the characters very specifically for different behaviors you tried to reinforce before doing normal RP, or let the AI explain how it interprets the character and compare that to what you wanted to achieve.

### WorldInfo (WI)
WorldInfo is a topic on its own because it's a very powerful tool. If you transition to WI, you abandon the classic character card template SillyTavern offers. There are already guides for WI in the Discord. 

In extremely short: WorldInfo can dynamically add information into your context to save tokens or create complex information structures. It's possible to create complicated triggers to manage huge worlds or detailed basic or additional information for the AI.

## Practical Character Creation

### Default SillyTavern Structure
Let's look at the default way SillyTavern encourages us to structure characters.

If your context template uses them in the default way, the following input fields are available:
- **(System Prompt)** - optional
- **Name** - required
- **Description** - required  
- **First message** - required
- **Advanced definitions** (optional):
    - Character's personality
    - Scenario
    - Character's note
    - Example messages
- **(Author's note)** - optional

### Name Selection
The character's name gets sent with every context and response, so over time this can consume tokens. I recommend:
- Choose a shorter name
- Use the name you plan to call the character (usually first name)  
- Choose a specific, unique name for easier AI recognition
- **Avoid well-known names** from the LLM's training data

**Problematic names to avoid:**
Julius Caesar, Napoleon Bonaparte, Albert Einstein, Oprah Winfrey, Sherlock Holmes, Walter White, Harry Potter, Mickey Mouse, Bart Simpson, Wonder Woman...

These names make it difficult to create unique characters because you'll fight against the LLM's trained dataset.

## Description Templates

### Simple Style for Well-Known Individuals

Name: [Character name] Scene: [Where and how you meet, situation, clothing, interaction style]
Goals of the roleplay: [What you want from this interaction, additional information, guidance]


Use this for historical, famous, important, or fictional persons. The name gives the AI everything from its knowledge, while scene and goals provide context and direction.

### My General Style Template

[General Descriptions of [Character Name]: Occupation: [detailed description including where, how, with whom] Gender: [gender identity] Age: [age] Fantasy-Race: [if applicable - verify LLM knows this race] Height: [height] Weight: [weight]
Build: [body type] Hair: [hair description] Eyes: [eye description] Eyebrows: [eyebrow description] Clothing: [clothing style] Special features: [unique physical traits]

Long-term Memories of [Character Name]: Childhood: [free text background]

Sexuality of [Character Name] (only for corresponding situations): Sexual boundaries: [boundaries] Sexual no-go: [hard limits] Sexual wishes and cravings: [desires]

Goals of [Character Name]: Short-term Goals: [immediate objectives] Long-term Goals: [life ambitions] Material Wishes: [desired possessions] Overall primary goal: [main driving force]

Personality of [Character Name]: Personality: [core personality traits] Mind: [mental characteristics] Speech: [speaking style] Accent: [accent if any] Mannerisms: [physical habits]

Skills: [abilities and talents] Likes: [preferences] Dislikes: [dislikes] Hobbies: [recreational activities] ]

[Genre: [genre of roleplay] Tags: [relevant tags] Scenario: [free text scenario description] ]

[Additional background information and how you should impersonate and roleplay [Character Name]: [free text guidance for AI] ]


### Natural Language Template (Recommended)

Name: [full name] Occupation: [detailed description in natural language]

Appearance: [natural language description of physical appearance]

Personality: [natural language description of personality traits]

Mind: [natural language description of mental characteristics and thought patterns]

Speech: [natural language description of speaking style, accent, mannerisms]

Likes: [natural language description of preferences and interests]

Dislikes: [natural language description of dislikes and aversions]

Background: [natural language backstory and history]

Short-term goals: [immediate objectives described naturally]

Long-term goals: [life ambitions described naturally]


Everything in this template is described in natural language. Occupation is particularly important—describe not only what the character does, but also where, how, and with whom.

### D&D Character Sheet Style (Group Chat)

Dungeons and Dragons character: [Name] ([gender]) - Stats: - STR: [strength score] - DEX: [dexterity score] - CON: [constitution score] - INT: [intelligence score] - WIS: [wisdom score] - CHA: [charisma score] - Class: [character class] - Race: [character race] - Appearance: [physical description] - Personality: [personality traits] ```

This works well because D&D is a well-known ruleset that most LLMs understand. The OGL and SRD rules can be used freely without copyright issues.

Token Usage Guidelines

Context window determines suitable character length: - 4k context: 1.5k total for system + character + scenario is acceptable - 8k context: 3k total, meaning less than 2k for character - 16k context: Even 3k permanent character description isn't problematic

My recommendation: Aim for 200-2000 tokens for character descriptions as starting guidance. Keep half the context size for chat history—it's much more fun when characters can reference recent interactions.

First Message - Critical Component

The first message may be more important than the description itself. It defines: - Style the AI will use in responses - Format for future messages
- Length the AI will aim for - Whether AI speaks/acts in third person for you - Tone of the roleplay situation - Relationship between you and character

First Message Guidelines

Format recommendations: - Use only one style: either text or "direct speech" - Prefer text without formatting and direct speech in double quotes (familiar to LLMs from book training)

Length matching: - Long first message = long AI responses - Short first message = short AI responses (but provide enough information for orientation)

Critical rules for first messages: 1. Elephant in the room: If you don't want the AI to do something, don't mention it. Instead of "Samantha shouldn't mention the major," try "Samantha strictly tries to avoid topics regarding the major."

  1. Avoid speaking for the user: Don't show the AI examples of speaking for you in third person. If you do this in the first message, the AI will definitely pick it up. Always edit AI responses that speak for you to prevent this becoming a pattern.

Positive guidance example: Instead of "Don't speak or act for the player," use "Avoid telling {{user}} or other characters what to do or think, but provide opportunities for them to role-play their character's response to the developing narrative."

Finding Quality Characters

Avoid: Most V2 cards from public platforms—quality cards are rare there. The well-crafted cards are usually world-type cards like Isekai or fantasy worlds.

Recommended sources: - Discord communities of API and GUI providers - Discord communities for LLM groups that fine-tune on Hugging Face

If downloading cards: Review beforehand and: - Correct spelling mistakes - Look for problematic content - Rewrite for more detail and personality - Add guidance for AI interaction goals - Specify if AI should actively engage or wait for your approach (especially important for abliterated models)

Image Generation for Characters

Recommended process: 1. Use Stable Diffusion or similar model 2. Create an image to your liking and save the seed 3. Use that seed as input for consistency 4. Request different moods using the same seed for variety 5. Small deviations will occur, but the method works well when resetting the seed each time

Automated ComfyUI workflows exist but are more complicated than manual generation, though much quicker.

Idea Generation Methods

Starting with an Idea

  1. Imagine the idea, theme, or topic you want to cover
  2. Find inspiration in movies, fiction, or real persons
  3. Decide: stereotype or fresh scenario?
  4. Imagine who you can meet there and potential interactions
  5. Write the character

Starting with a Character

  1. Approach like creating an RPG character or freehand it
  2. Decide: good or bad character archetype?
  3. Define personality and appearance
  4. Imagine a dialogue where you discuss each other
  5. Add flaws, dislikes, and fears
  6. Add goals for direction
  7. Physical appearance can come last (often less important for roleplay)

Brainstorming Method

  1. Take paper and pen
  2. Write "what my character should be and do" in the center
  3. Set a 10-minute timer
  4. Write down every thought that comes to mind (one word if possible)
  5. Don't think deeply—just collect ideas
  6. After 10 minutes, group the words:
  7. Things for the character
  8. Things for scenario
  9. Additional information for backstory/interactions
  10. Use one of the other two techniques to develop the idea

If you don't have ideas today, don't get frustrated—this is a hobby that should be fun. Maybe you'll have inspiration tomorrow.

Final Thoughts

This guide reflects my personal style and preferences, but I hope it helps provide an overview and inspiration. I would love for others to add their own experiences and templates so we can extend and improve this guide in the future.

If you read everything to this point, thank you for your interest in this work.

Yours, Peter