dnd name forge

Fantasy City Names

This is fantasy city name generator output, not a list somebody wrote out: the twenty-four names below came from one seed (20261032) of the same settlement tier the DnD town names page uses. The measurement further down is the part worth keeping — what happens to the forty-four head words when a map stops having villages and starts having cities.

The names

  1. Bramblethwaite
  2. Eastham
  3. Marrowby
  4. Longworth
  5. Oldwick
  6. Blackton
  7. Millthorpe
  8. Ironton
  9. Wyndworth
  10. Westham
  11. Oakton
  12. Heathworth
  13. Marrowham
  14. Longby
  15. Raventon
  16. Elmworth
  17. Fenwick
  18. Greyworth
  19. Brambleham
  20. Eastford
  21. Ashton
  22. Ridgeby
  23. Stonewick
  24. Greythwaite

Forty-four heads, however many endings you give them

The tier carries 19 culture rows and 8 endings each, so 152 suffix slots against 44 head words. Five join rules cut the pairs down to 6,165 usable combinations — a number in the thousands, which is why the name pool never feels small. The head words are the part that does not scale: there are 44 of them, and every city on your map competes for the same 44.

So the honest question at city scale is not how many cities you can name, but how soon two cities share a first element. Fifty batches per size, same generator, seeds 20261032 upward:

Distinct head words used, over 50 runs per row. Generator as shipped, human row.
Cities drawnMean distinct headsLowestHighest
109.3810
2519.71622
5031.22835
10041.23744
200444444
400444444

At fifty cities a map has already spent about thirty-one of the forty-four heads; by a hundred it is at forty-one. Every head has appeared by draw 139 at the median across those fifty runs, and none of the runs needed more than 600.

Why the textbook number is wrong here

The coupon-collector estimate for 44 equally likely heads is 44 × H44 = 44 × 4.3727 ≈ 192 draws. The generator finishes 53 draws earlier than that, and the reason is in the code: heads come out of a counter pool, not independently at random, so a head that has already been used is less likely to come back. The measured 139 is what that balancing buys. Anyone quoting 192 for this generator is quoting a formula that does not describe it.

It is also why a city map starts to feel repetitive before the names themselves repeat. The ending and surname layers have thousands of combinations between them; the first element has 44.

What to do about it when you name a city

Change the ending, not the head. Ashford and Ashton read as two places in the same region because the endings carry the difference; Ashford and Brambleford read as two places that happen to share a river. When a city has to sit next to another city with the same head, the fix that survives a map is a qualifier in front — the Free City of Ashton — not a new head word.

If you are naming at scale, take endings from different culture rows. The nineteen rows share the 44 heads but not their endings, so a dwarven -hold next to an elven -vale stops feeling like a repeat even when both cities start with Stone.

Where the endings come from

Nineteen culture rows, eight endings each, listed with their origin on the town names page; the narrower village tier is on the village names page. Nothing here is a separate word list — a city name on this page is the same settlement tier, measured at a size where the head pool becomes the constraint.

Questions this page answers

Is there a separate city tier in the generator?

No. There are two settlement tiers, town and village, and this page uses the town tier. The difference between a village and a city in this material is how many you draw, not which table you draw from — which is exactly why the head count matters.

How many city names before the first elements repeat?

Two cities share a head well before fifty draws; all forty-four heads are in use by draw 139 at the median. The ending is what keeps two such names apart.

Can I use these names?

Yes. They are generated from the site's own syllable tables, they are not taken from any published setting, and the pools are open source at github.com/RayJ7/dnd-name-forge-pools under MIT.

Reproduce this page

Seed 20261032, the 24 names above in order. The saturation table is fifty runs per row at seeds 20261032 to 20261081, counting distinct heads in the first n names of each run. The head pool is TOWN_PRE in namegen.js, the endings are TOWN_SUFFIX, and the five join rules are the tests in townPair. Every figure above rebuilds from those three things; the generator itself is at the dnd name generator.