User Rating 0.0 β˜…β˜…β˜…β˜…β˜…
Total Usage 0 times
Categories:
Is this tool helpful?

Your feedback helps us improve.

β˜… β˜… β˜… β˜… β˜…

About

Flat characters kill stories. A protagonist described only as "brave" is indistinguishable from ten thousand others. Real characterization demands internal contradiction: a generous person who hoards knowledge, a courageous soldier with a phobia of silence. This generator constructs multi-axis trait profiles spanning 7 dimensions - personality, physicality, emotion, social behavior, intellect, morality, and idiosyncratic habits. Each axis draws from a pool of over 350 curated traits with polarity metadata (strength vs. flaw) and built-in conflict detection that flags logically incompatible pairings. The algorithm uses a seeded PRNG (Mulberry32) so any generated character is reproducible given the same seed value.

The archetype presets (Hero, Villain, Mentor, Trickster, and others) apply weighted probability distributions to each category rather than hard-coding results. A "Villain" preset does not guarantee cruelty - it increases the probability of traits associated with antagonistic archetypes per Campbell's monomyth framework while still allowing surprising contradictions. This tool approximates narrative complexity. It cannot replace a writer's judgment on cultural context or story-specific needs. Use the conflict flags as starting points for character arcs, not as errors to eliminate.

character generator trait generator writing tool RPG character personality traits character creation storytelling

Formulas

The generator uses a seeded pseudo-random number generator (Mulberry32) to ensure reproducibility. Given a seed s, the next value is computed as:

t = s + 0x6D2B79F5
t = imul(t βŠ• (t >>> 15), t | 1)
t = t βŠ• (t + imul(t βŠ• (t >>> 7), t | 61))
result = ((t βŠ• (t >>> 14)) >>> 0) Γ· 4294967296

For archetype-weighted selection, each trait i in category c has a base weight wi. The probability of selection is:

P(i) = winβˆ‘j=1 wj

Where wi = 1 for random mode. In archetype mode, matching traits receive wi = 3, neutral traits wi = 1, and opposing traits wi = 0.3. Conflict detection uses a lookup table of incompatible trait pairs; flagged conflicts appear as narrative tension opportunities rather than errors.

Reference Data

ArchetypePrimary Traits (High Weight)Secondary TraitsCommon FlawsLiterary Example
HeroCourageous, Determined, EmpatheticLoyal, Self-sacrificingStubborn, RecklessFrodo Baggins
VillainAmbitious, Calculating, CharismaticResourceful, ObsessiveParanoid, CruelHannibal Lecter
Anti-HeroCynical, Pragmatic, IndependentResourceful, BluntSelf-destructive, DistrustfulJessica Jones
MentorWise, Patient, KnowledgeableProtective, MysteriousSecretive, DetachedGandalf
TricksterWitty, Unpredictable, CharmingAdaptable, ObservantUnreliable, ManipulativeLoki
CaregiverNurturing, Compassionate, SelflessDiplomatic, WarmCodependent, Martyr complexSamwise Gamgee
RebelDefiant, Passionate, OutspokenCharismatic, FearlessImpulsive, DestructiveKatniss Everdeen
ScholarAnalytical, Curious, MethodicalObservant, ArticulateSocially awkward, OverthinkingSherlock Holmes
ExplorerAdventurous, Open-minded, ResilientSelf-reliant, OptimisticRestless, Commitment-averseIndiana Jones
GuardianProtective, Disciplined, HonorableVigilant, StoicRigid, OvercontrollingBrienne of Tarth
InnocentOptimistic, Trusting, SincereIdealistic, GentleNaΓ―ve, GullibleForrest Gump
OutcastIntrospective, Resilient, PerceptiveIndependent, EmpatheticBitter, IsolatedQuasimodo
LeaderDecisive, Charismatic, StrategicConfident, InspiringArrogant, InflexibleAragorn
SurvivorResourceful, Tough, VigilantPractical, AdaptableDistrustful, Emotionally guardedEllen Ripley
JesterHumorous, Quick-witted, DisarmingPerceptive, SociableAvoidant, Uses humor as defenseTyrion Lannister

Frequently Asked Questions

The generator maintains a conflict matrix of approximately 40 trait pairs that are logically contradictory (e.g., "Fearless" and "Cowardly", "Trusting" and 'Paranoid'). When two conflicting traits appear in the same generated set, they are flagged with a visual indicator. Rather than removing conflicts, the tool highlights them as potential sources of internal character tension - a storytelling asset, not a bug. You can re-roll individual traits if you prefer consistency.
In random mode, every trait in a category has equal weight (w = 1). In archetype mode, traits are tagged with archetype affinity scores. A trait aligned with the selected archetype receives a weight of 3, neutral traits keep 1, and opposing traits drop to 0.3. This means archetype mode still produces surprises - a Villain can draw "Compassionate" at low probability - but the overall profile statistically skews toward the archetype's narrative role.
Yes. Every generated character includes a numeric seed value. Enter that seed into the seed field and click Generate with the same settings (archetype, trait count per category) to reproduce the identical character. The Mulberry32 PRNG is deterministic: same seed plus same parameters equals same output. Your last 20 generated characters are also saved to browser local storage automatically.
Each trait carries a polarity tag: Strength, Flaw, or Neutral. These labels reflect general narrative convention, not absolute judgment. "Stubborn" is tagged as a Flaw but functions as a Strength for a character who must persist against impossible odds. Use polarity as a starting framework, then subvert it based on your story's context. Well-rounded characters typically need a minimum of 2 flaws to avoid feeling unrealistically competent.
Personality traits describe habitual behavioral patterns (e.g., "Introverted", "Methodical", 'Impulsive') - how a character acts by default. Emotional traits describe their affective tendencies and emotional range (e.g., "Quick to anger", "Emotionally guarded", 'Deeply empathetic') - how they feel and process feelings. A character can be Introverted (personality) yet Deeply Empathetic (emotional); the combination creates a person who feels intensely but processes internally.
The "Traits per category" slider controls the maximum count. The actual count may vary by 1 because the conflict resolution system can skip a trait if it directly contradicts an already-selected trait in the same category and "Allow Conflicts" is disabled. Enable "Allow Conflicts" for guaranteed exact counts.