Character Headcanon Without Repeating: Three Layers, One Anchor Rule, One Swap Test

Short answer: stop trying to reroll the repetition away. A character headcanon bank is fixed, and every line in it is written to fit any name — in the 180-line bank behind this site, 180 of 180 lines open with the name slot and 0 of 180 contain a proper noun other than that name. So roll one batch of five (the tool hands you one line from each of the five categories, and in 1,000 test batches it never once repeated a line), then write an anchor under each line: one sentence saying what that line costs this character. Then run the swap test — drop the other character's name into the line. If the sentence is still true of them, there is no anchor yet.

Three layers, and only one of them knows who The bank and the draw belong to the tool. The anchor is yours. 1 · Bank 180 fixed lines, all written to fit any name shared by everyone 2 · Draw name / tone / category / count / seed a page never repeats a line 3 · Anchor one sentence per line: what it costs them the only layer that knows who The swap test — put the other name into the line, then read it. still true of them → no anchor yet false of them → a character, not a line

Three layers: the bank and the draw are the tool's, and the anchor is the only part of the pipeline that knows which character you are writing.

A character headcanon is two things stacked on top of each other: a line, and the person paying for it. Generators only ever supply the first thing. That is why two characters can share a line and still read as two different people — and, far more often, why two characters with completely different lines still read as one person twice.

The method below has one rule and one test. The rule is that every line needs an anchor: a sentence stating what that line costs this specific character. The test is that the anchor has to be false of the other character — if you can swap the names and nothing breaks, you have written a line, not a character. Every number quoted here was counted from the site's own source file, and the last section shows you how to reproduce all of them in the browser.

Why rerolling cannot fix it

Before fixing anything, it helps to be precise about what is actually repeating. Three different things get called "repeats", and only one of them is a real problem.

Inside one batch, nothing repeats. Ask for five lines and you get five lines, one from each category, with no repeated wording — in 1,000 test batches (40 built-in names × 25 seeds) the count of duplicate lines inside a batch was 0, and the count of batches that failed to produce five distinct categories was also 0. If your worry is "will the same line appear twice on my screen right now", the answer is no.

Across batches, lines do come back. A page you fill by pressing the button six times is six independent batches, not one big one. Rolling six batches of five for each of the 40 built-in names gives a thirty-line page that contains, on average, 1.85 repeated lines (worst case seen: 5; best case: 0). Nothing is broken when this happens — the batches simply do not know about each other.

Two characters converge far more than people expect. Roll two of the 40 built-in names once each, and 122 of the 780 possible pairs already share at least one line on that very first roll. Push both characters to a six-batch page and the two pages share 4.35 lines out of 30 on average (range 1 to 8). The reason is plain arithmetic: for any one category there are 36 lines, each character draws six of them, and two independent draws of six-from-thirty-six overlap by about one line per category — five categories, five shared lines.

And the pool gets less useful the harder you lean on it. Rolling 60 batches (300 lines) for the same name, the share of genuinely new lines per batch falls from 100% on the first batch to about 13.5% by the sixtieth, and those 300 drawn lines surface an average of only 146 of the 180 lines in the bank. Novelty decays; it never runs out, and it never turns into difference. The full breakdown of how the 180 lines are distributed across categories and tones is on a separate page — this page is the method, that one is the distribution.

The three layers, and which one you own

Split the pipeline in three. Only the third layer is yours, and it is the only one that can tell two characters apart.

One useful detail about layer 2: the per-card reroll this button picks from the bank with everything currently on screen removed, so it can never introduce a line you are already looking at. Simulating 2,000 rerolls across a five-line page produced 0 moments where the same line appeared twice. The button is genuinely repeat-proof — and that is exactly the trap. A page can be perfectly free of duplicate lines and still be a page about nobody in particular, because layer 2 has no idea who Riley is.

The anchor rule

An anchor is one sentence. It is not a description of the character; it is a statement of what the line costs. And it has exactly one hard requirement: the anchor must be false of the other character.

Three forms cover almost everything. Pick one per line, and do not use the same form on every line of a batch:

There is one shortcut worth knowing, because it uses the bank against itself: an anchor may quote another line from the same character's page. A batch of five hands you one line from each of five categories, so the five lines can hold each other — a Quirks line can be explained by a Secrets line, and the explanation is the anchor. The category order is itself part of the seed, which is why two characters rarely receive their five lines in the same order even when they share one of them.

The swap test, in four steps

  1. Write the line out twice, once for each character, with the names filled in. In the bank, that slot is literal: all 180 lines contain the name placeholder exactly once.
  2. Swap the two names, so each character is now carrying the other one's line.
  3. Read the swapped sentence together with its anchor. Ask a single question: is this still true of them?
  4. If it is true, the anchor is missing or generic. Rewrite the anchor — not the line. The line is not yours to fix, and it is not the problem.

Run the test on both directions, and treat "true of anyone" the same as "true of them". A sentence that would survive being handed to a stranger is not an anchor; it is a mood.

A worked example: one line, two characters

Here is the problem in the real bank, not in theory. Roll the built-in name Riley once — five lines, every tone and category on, count set to five, seed 1 — and you get:

Now roll Nova the same way, and you get:

Look at the last entry on both lists. It is the same sentence, on both pages, from the same bank — and this is not a rare accident: 122 of the 780 pairs of built-in names share a line on their first roll. So the two characters now have an identical Quirks entry. Do they read as the same person? Only if you leave the line unanchored.

Riley's anchor (Cause). The alphabetising is unpaid work. She was the one who held things together and nobody asked whether she wanted to, so a tidy shelf is the one part of her week that nobody can leave. The Quirks line is no longer a habit; it is the visible end of the Backstory line.

Nova's anchor (Bill). The explaining is the whole tell — she is permanently mid-revision, and a draft is the one thing you are allowed to argue with. The shelf costs her nothing, which is precisely what would confuse Riley about it.

Swap the names and both anchors collapse. "Nova held things together and nobody asked whether she wanted to" is nowhere on Nova's page; her control is a calendar of deliberate refusals, and her generosity has no ledger. "Riley explains because she is mid-revision" fights everything Riley's page says about a character whose problem is that she never gets to be unfinished. Two pages, one shared line, two people. Note also that Riley's page came out heavily Angsty/Melancholy while Nova's came out Chaotic/Romantic/Wholesome — the tone mix is a layer-2 property, and it is a gift to the anchor writer, not a substitute for one.

The anchor sheet: one batch, five rows, two anchors

Because a batch of five always produces five distinct categories, one batch is exactly the size of a worksheet. Draw once, then write two anchors per row. Here is the finished sheet for Riley and Nova:

Read the Quirks entry for the two of them side by side, and you have the method in one line: the bank supplies the sentence, and you supply who pays for it. The sheet also works as a pair check — if you cannot fill a row for both characters, the two characters are not distinct enough yet, and no amount of rerolling will fix that, because the bank has no opinion about either of them.

Three ways an anchor fails

Reproduce every number on this page

  1. Open the generator and type Riley. Leave the name box alone after that: capitalisation is part of the seed, so "riley" is a different character as far as the bank is concerned.
  2. Choose the five-line count. All tones and all categories stay on. That combination reproduces the batch printed above.
  3. Type Nova and do the same. The five categories come out in a different order — the shuffle is seeded too.
  4. Reroll any single card with reroll this and watch the Quirks row: the button will never hand you a line already on your screen, which is why the duplicate you are trying to remove never shows up as a duplicate in the first place.
  5. For a page you intend to keep, use the thirty-line one-page template so the anchors have somewhere to live.

Quick answers

More headcanon guides