| # | Source | Type |
|---|---|---|
| 1 | r/CharacterAI — "Mega Character Creation Guide" | Reddit guide |
| 2 | r/CharacterAI — "EXTREMELY IN-DEPTH c.ai guide" | Reddit guide |
| 3 | r/CharacterAI — "How to Actually Make Bots" | Reddit guide |
| 4 | r/CharacterAI — "Perfect Character Definition Format" | Reddit template |
| 5 | r/CharacterAI — "Tips for Higher Quality Writing on C.AI" | Reddit tips |
| 6 | r/CharacterAI — "Character Tips Part 2" (word choice pitfalls) | Reddit tips |
| 7 | r/CharacterAI — "What do you consider a good bot or bad bot?" | Reddit discussion |
| 8 | r/CharacterAI — "What makes a bot good?" | Reddit discussion |
| 9 | r/CharacterAI — "How strict is the 3200 character limit?" | Reddit discussion |
| 10 | r/CharacterAI — "Tips on making the definition" | Reddit discussion |
| 11 | r/CharacterAI — "How to do (good) character definition?" | Reddit discussion |
| 12 | r/CharacterAI — "Advice for character definitions" | Reddit discussion |
| 13 | r/CharacterAI — "My easy guide/list to AI prompts" | Reddit guide |
| 14 | r/CharacterAI — "I created the perfect character definition format" (Part 2) | Reddit guide |
| 15 | r/polybuzz — "How To Create A Bot With Personality (In-Depth)" | Reddit guide |
| 16 | r/AIAssisted — "My personal tips for creating engaging AI characters" | Reddit guide |
| 17 | jaitutorial.uwu.ai — Bot Creation Tutorial (JanitorAI) | Community tutorial site |
| 18 | SillyTavern Docs — Character Design | Platform docs |
| 19 | OpenAssistantGPT Blog — "How to make a good character AI bot" | Blog guide |
| 20 | povchat.ai — "10 Essential Tips for Creating Engaging AI Characters" | Blog guide |
| 21 | medium.com/@adlerai — "Character AI Character Profile Definition Example" | Medium guide |
| 22 | crushon.ai Wiki — "How to make good bot PFP" | Community wiki |
| 23 | rentry.org/pygtips (W++ style guide) | Community guide |
| 24 | Trappu's PLists + Ali:Chat guide | Community guide |
| 25 | janitorai.com — "Bot Creation Step-by-Step Guide" | Platform help |
Across every source, the #1 factor users cite for what makes a bot "good" is personality depth and consistency — not the number of details you cram in, but how coherent the personality feels during conversation.
What users love:
- Characters that feel like a real person, not a list of traits
- Consistent voice and tone across multi-turn conversations
- Characters that surprise them with unexpected depth
- Emotional nuance (not just "happy" or "mean" — but why)
- Characters that drive the conversation forward (proactive, not reactive)
What users hate:
- Characters that feel like generic AI assistants
- Bots that agree with everything (no backbone or opinions)
- Inconsistency — "nice one moment, cruel the next with no reason"
- Characters that "loop" (get stuck repeating the same behavior)
- Characters that speak for the user (controlling their actions/thoughts)
- The infamous "Can I ask you a question?" loop
The community has converged on several frameworks for building personality:
Enneagram + MBTI Combo (from Mega Guide)
- Assigning both an Enneagram type (e.g., 8w9) and a 16personalities type (e.g., INTP) gives the AI a rich psychological framework to draw from
- This creates layers — the character can have surface behavior and deeper motivations that don't always align
- Example: Enneagram 1w2 (the Reformer with a Helper wing) + INTP = a logical, driven person who secretly wants to help others but struggles to show warmth
Contextual Behavior Blocks (from multiple sources)
- Don't just say "mean but nice" — specify WHEN and WHY
- Good: "{{char}} is rude to {{user}} when around others. When alone, {{char}}'s tone is gentler."
- Bad: "mean, can be nice, strict, soft" (indecisive, confuses the model)
The Contradiction Principle
- The best characters have internal contradictions that create tension
- A brave character who fears abandonment
- A logical character who makes irrational decisions when jealous
- Contradictions = what makes a character feel "real"
Based on synthesis of all sources, here's what the community considers essential:
- Distinctive voice/speech pattern — accent, vocabulary level, catchphrases, sentence length
- Clear motivations & fears — what do they want? what are they afraid of?
- Quirks & habits — small specific behaviors that make them memorable
- Boundaries & limits — what would they NEVER do? (this creates tension opportunities)
- Backstory that informs present behavior — not just lore, but things that explain why they act this way
- Contextual behavior — they behave differently in different situations
- Imperfections — perfect characters are boring. Flaws create story.
- Proactive energy — they suggest things, create conflict, push the plot forward
The community is divided on format, but there's emerging consensus:
Recommended Formats (in order of token efficiency):
-
PList Format (most efficient)
[Character Name: trait1, trait2, attribute(value), likes(x, y, z)]- Most token-efficient
- Good for experienced creators
-
Paragraph/Narrative Format
{{char}} is a traveling merchant with sharp wit and a distrust of authority. They speak in a rough, colloquial manner and have a habit of...- Natural language, easy to write
- AI processes it well
-
Sectioned Template (most structured)
GENERAL: Name, age, species PERSONALITY: Core traits, how they behave APPEARANCE: Physical description BACKSTORY: Key life events- Easiest for beginners
- Clear organization
Avoided Formats:
- W++ format —
Character("name") { Age("00") }— the original creator of W++ explicitly says NOT to use it. It wastes ~2x tokens for no benefit. - Keyword spam —
[Personality: fun + cool + handsome + mean + + +]— wastes tokens, gives the AI minimal useful information.
This is THE biggest pain point on Character.AI and a crucial insight for any character creation tool:
- Effective limit is ~3,200 characters (not the stated 32,000)
- Everything after 3,200 characters is truncated/ignored by the model
- Community consensus: aim for 200-1500 tokens (1,500-6,000 characters) for optimal results
- "Less is more" — a focused 800-character definition often outperforms a bloated 3,000-character one
Token Budget Implications:
- Personality section is "permanent tokens" — sent with EVERY message
- More permanent tokens = less memory for conversation history
- Sweet spot: 200-1500 tokens for personality, leaving room for context
Example dialogues are consistently cited as the most powerful tool for shaping character behavior:
Why they work:
- The AI learns more from showing than telling
- Example dialogs demonstrate speech patterns, emotional responses, and tone
- They persist in memory better than trait descriptions
- They can encode physical traits, knowledge, and situational behavior
Format that works:
{{user}}: [User's message]
{{char}}: [Character's response with actions, emotions, dialogue]
END_OF_DIALOG
{{user}}: [Another scenario]
{{char}}: [Character's response]
END_OF_DIALOG
Best practices for example dialogues:
- Show the character IN ACTION, not just listing traits
- Demonstrate edge cases (how they react to anger, sadness, conflict)
- Include physical descriptions naturally within dialogue
- Keep user parts BRIEF — focus on {{char}}'s responses
- Avoid having {{char}} speak for {{user}}
- 3-5 well-crafted examples > 20 lazy ones
The first message is disproportionately important:
- Sets the tone and style — the AI will match the length and complexity of the greeting
- Hooks the user — a good greeting makes people want to respond
- Demonstrates character — shows personality through action, not description
- Creates a starting point — gives the user something to respond to
Community formula for a great greeting:
- Establish WHERE the character is and WHAT they're doing
- Highlight 1-2 key personality traits through actions/dialogue
- Create an opening that invites user response
- Show, don't tell — action + emotion + personality + open-ended hook
Example of good vs bad:
- ❌ "Hi, how are you?" (generic, no personality)
- ✅ "You're late. Again." He crosses his arms, eyeing your disheveled clothes. "I ain't your damn nursemaid, but out with it — what trouble dragged you here?"
One of the most valuable and non-obvious findings from the community:
Certain word pairings accidentally create toxic/manipulative characters:
- "kind + witty + intelligent" → character acts superior and narcissistic
- "values friends + wants deep connections" → character becomes obsessive/creepy
- Any single negative trait (sadistic, controlling, manipulative) → dominates the entire personality
Words to avoid entirely:
- selfish, arrogant, uncaring, rude, apathetic, conceited, scheming, callous, sadistic, controlling
Better alternatives:
- Instead of "mean" → "blunt," "standoffish," "dry sense of humor"
- Instead of "smart" → "analytical," "observant," "quick-witted"
- Instead of "kind" → "kind-hearted," "trustworthy," "empathetic"
- Instead of "confident" → "proud," "driven," "self-assured"
The underlying principle: The AI tends to take single-word traits to their extreme. Multi-word, contextual descriptions give the AI more nuance to work with.
Universal consensus: do NOT use "not," "don't," "won't," "can't" in character definitions.
The AI model often strips the negative and focuses on the positive keyword. So "{{char}} doesn't like violence" can actually make the character MORE violent.
Instead, use:
- Positive framing: "{{char}} prefers peaceful resolution"
- If/then statements: "If {{char}} sees violence, then {{char}} will leave the room"
- Behavioral descriptions: "{{char}} avoids conflict and walks away when tensions rise"
From community frustration posts, here are the key UX problems:
Character.AI's Creation Tool:
- 3,200 character hard limit is invisible — users don't know they're being truncated
- No token counter — users can't see how much of their definition is actually used
- No preview/test mode — you have to create the bot, then go chat with it separately
- No format guidance — the tool doesn't suggest or validate any particular structure
- No feedback on quality — users create bots blind, no indication of what's working
- Definition structure is unclear — short description, long description, example chat — what goes where?
- No template system — every bot starts from scratch
Other platforms (JanitorAI, Polybuzz, etc.):
- Better: JanitorAI has clear sections (Personality, Scenario, First Message, Example Dialogues)
- Better: Polybuzz offers 10,000 character limit
- Missing: No platform has built-in quality validation or token optimization
Based on aggregated feature requests and pain points:
Core Features:
- Live token/character counter with warnings when approaching limits
- Real-time preview — see how the character would respond without leaving the editor
- Template library — pre-built character frameworks for common archetypes
- Guided step-by-step flow — don't dump users into empty text boxes
- Format validation — flag common mistakes (negative prompting, word choice traps)
- Quality scoring — indicate definition completeness/quality
Nice-to-Have Features:
- AI-assisted writing — suggest improvements, fill gaps, rephrase for token efficiency
- Example dialogue generator — create sample conversations from personality description
- Character testing — automated conversation simulator to test the character
- Visual avatar integration — built-in image generation/selection
- Import/export — move characters between platforms
- Collaboration — co-create characters with others
Principle 1: Progressive Disclosure Don't show everything at once. Start simple, reveal complexity:
- Step 1: Name, one-line description, avatar (basic identity)
- Step 2: Personality type / vibe selector (quick personality)
- Step 3: Detailed traits, backstory, speech style (depth)
- Step 4: Example dialogues, edge cases, scenario (polish)
Principle 2: Show, Don't Tell (For the Tool Itself) Instead of explaining what a good greeting looks like, show 3 examples and let users pick/edit.
Principle 3: Prevent Common Mistakes
- Auto-detect negative prompting and suggest rephrasing
- Flag risky word combinations (kind+witty+intelligent trap)
- Warn when definition exceeds effective token limit
- Suggest contextual behavior over contradictory trait lists
Principle 4: Token Awareness
- Show users the "cost" of each section in tokens
- Visual indicator of how much "memory budget" remains
- Suggest token-efficient alternatives
Principle 5: Make It Fun, Not Homework The biggest risk of a character creation tool is making it feel like filling out a tax form. The process should feel creative and exciting — like building a character in a game, not a database entry form.
Community consensus: the avatar is disproportionately important for discoverability and first impressions.
- "People are visual creatures" — multiple creators note that bots with poor avatars get significantly fewer interactions
- The avatar creates the initial emotional connection before the user reads a single word
- AI-generated avatars (Midjourney, Bing AI, DALL-E) are common and accepted
From the crushon.ai wiki and community discussions:
- Clear face/focal point — must be recognizable at thumbnail size (mobile)
- Expressive — the face should convey personality (smirk, intense gaze, shy smile)
- High resolution — at least 512x512, clean and sharp
- Consistent with description — avatar should match what the character definition says
- Simple background — don't distract from the character
- Unique/recognizable silhouette — the brain processes shape before detail
- Emotionally evocative — should make you feel something (curiosity, warmth, intrigue)
The most popular bots have strong visual-personality alignment:
- A shy character should LOOK shy (body language, expression, pose)
- A confident character's avatar should radiate confidence
- Visual contradictions confuse users (a "timid" character with an aggressive-looking avatar)
From the "good bot" discussions:
- Discovery / Surprise — the character reveals new layers over time
- Emotional Range — can go from funny to serious to sweet naturally
- Agency — the character has their own opinions and sometimes disagrees
- Memory of important details — remembers user's name, preferences, past events
- Ongoing story potential — there's always more to explore
- Voice consistency — the character always sounds like themselves
Analysis of most-discussed/favorited bots across the community:
- "Comfort" characters — warm, supportive, remember user details
- "Challenge" characters — hard to please, interesting to win over
- "Mystery" characters — have secrets that unfold slowly
- "Comedy" characters — funny but with emotional depth underneath
- "Fandom" characters — existing IPs done well (accurate to source material)
- Repetition loops — character says the same thing in different words
- Generic AI voice — character starts sounding like ChatGPT
- Memory loss — forgets key details established earlier
- Passive behavior — just responds, never initiates or surprises
- OOC (Out of Character) — breaks from established personality
- Start with WHO, not WHAT — Who is this person? Not "what traits should I list?"
- Use personality frameworks — Enneagram/MBTI as a starting point gives depth fast
- Show, don't tell — example dialogues are more powerful than trait lists
- Contextual behavior > static traits — characters behave differently in different situations
- Contradictions are features — imperfect characters are interesting
- Negative prompting doesn't work — always frame in the positive
- Watch your word choices — some combinations create unintended toxic behavior
- Test by conversation — the only way to know if a character works is to talk to them
- Iterate and refine — the first version is never the final version
- Keep it concise — more isn't always better; focused definitions outperform bloated ones
- Guided, step-by-step flow with progressive disclosure
- Real-time token awareness with visual budget indicators
- Built-in quality checks (flag negative prompts, word traps, missing elements)
- Example library — show users what good looks like at each step
- Live preview — test the character without leaving the editor
- Avatar generation/selection integrated into the flow (not an afterthought)
- Templates for common archetypes that users can customize
- AI-assisted suggestions — fill gaps, improve phrasing, optimize tokens
- Make it feel like a game — not a form to fill out
- Character cards / exportable profiles — let users save and share their creations
[CHARACTER NAME]
Age: [age]
Species: [species/specify]
APPEARANCE: [concise physical description — height, build, hair, eyes, distinctive features, clothing style]
PERSONALITY: [3-5 core traits, each with a one-line nuance]
[Use contextual behavior: "In [situation], [character] tends to..."]
SPEECH STYLE: [accent, vocabulary level, typical phrases, sentence structure]
LIKES: [3-5 specific things]
DISLIKES: [3-5 specific things]
FEARS: [1-3 deep fears]
GOALS: [1-3 current motivations]
BACKSTORY: [2-3 sentences: key life events that shaped who they are today]
BOUNDARIES: [what would they absolutely never do?]
BEHAVIOR IN CONTEXT:
- With strangers: [how they act]
- With friends: [how they act]
- Under stress: [how they act]
- When angry: [how they act]
GREETING: [A vivid opening scene that demonstrates personality through action and dialogue]
EXAMPLE DIALOGUE:
{{user}}: [brief user input]
{{char}}: [rich response showing personality, actions, speech pattern]
END_OF_DIALOG
Research compiled: 2026-05-08 Sources: 25+ Reddit posts, community guides, platform docs, and blog articles from the Character.AI and broader AI character creation ecosystem.