|
Trait Generator 2.1.2
Personality traits from a weighted catalogue with conflicts, synergies and Big Five axes for C++23
|
The data in resources/ and how trait-generator uses it (rule 6 of the dasmig standard).
Everything here is curated. No dataset gives trait frequencies, conflicts or synergies for a game catalogue, so the four tables were written by hand for this library (2026-10-12). Only the direction of the main Big Five loadings is anchored in the literature, and only for some traits (below). The numbers are design choices, chosen to give coherent and varied characters, not measurements.
| Tier | Traits | Axes | Loadings | Relations |
|---|---|---|---|---|
lite | 52 | 5 | 97 | 48 (18 conflicts, 30 synergies) |
There is no full tier.
| Column | Meaning | Source |
|---|---|---|
trait, label | Everyday personality words a player recognises, chosen to cover all five Big Five domains in both directions, plus traits a survival game's AI can use (brave, cautious, greedy, loyal, from the game's design notes) | Curated |
weight | Base frequency: 1 for ordinary traits, up to 1.2 for common ones (kind, honest, hardworking, practical), down to 0.3 for traits that would make most characters unpleasant (cruel 0.3, deceitful 0.4, cowardly 0.5) | Curated |
group | Opposite poles that cannot coexist (brave, cowardly and reckless form courage) | Curated |
tags | Broad themes for other generators and the game (combat, care, social, safety, ...) | Curated |
The Big Five (openness, conscientiousness, extraversion, agreeableness, neuroticism), each standardised: mean 0, sd 1. This follows the usual convention of reporting the factors as z-scores; it is not fitted to any population.
Each trait loads on one main axis (magnitude 0.5 to 0.9) and on up to two others (0.1 to 0.4). Where a trait is one of Saucier's Big Five Mini-Markers (Saucier 1994, a short form of Goldberg's 1992 adjective markers), its main axis and sign follow the marker:
| Axis | Marker traits in the catalogue (sign) |
|---|---|
| Extraversion | bold (+), energetic (+), talkative (+), quiet (−), shy (−) |
| Agreeableness | kind (+) |
| Conscientiousness | organized (+), practical (+), disorganized (−) |
| Neuroticism (the reverse of the markers' emotional stability) | moody (+), calm (− , "relaxed") |
| Openness (intellect) | creative (+), imaginative (+), philosophical (+) |
The other traits' axes follow common usage (cruel and generous on agreeableness, anxious and confident on neuroticism, ...). All magnitudes and secondary loadings are curated.
Conflicts are pairs that read as contradictions without being exact opposites (calm and anxious, bold and shy, lazy and energetic); exact opposites are groups instead. Synergies are pairs that often go together (kind and generous, shy and quiet, reckless and impulsive), with factors from 1.5 to 2.5. The set was checked by reading sampled personalities and removing combinations that read badly (confident and shy, confident and anxious, confident and cowardly, shy and talkative were added that way).
See Generation Model in the usage guide. In short: Big Five base values are drawn, traits matching them are likelier (weight × exp(Σ loading × z)), traits are drawn one at a time respecting conflicts, groups and synergies, and the chosen traits' loadings are added to the axes.
Over 20,000 personalities of three traits, every trait appears, from 2.6% (cruel) to 9.8% (kind) of personalities.
There is nothing to rebuild: the tables are the source. make embed regenerates the compiled-in copy, dasmig/traitgen_data.hpp.
include and exclude, or with layers.