magicrandom

Fantasy Town Name Generator

Town and village names for your D&D campaign, novel or map, each built from real place-name parts and shown with its meaning, so every settlement sounds like it grew where it stands.

Town / village names, built fresh from meaningful syllables. Nothing is copied from a list.

Characters
Places
Other
How many

Names are assembled from syllables with meanings, so each one is new and yours to use in stories, games and campaigns. Save the ones you like; the list stays until you leave the page.

What is a fantasy town name generator?

A fantasy town name generator creates names for towns, villages and hamlets in fictional worlds. Good town names sound old and lived-in because they describe the land: a river crossing, a harbour, an oak grove, a watchtower.

Magic Random builds each name from two parts, a feature (oak, stone, raven, mist) and a place word taken from real English and Norse place names (ford, haven, wick, mere, holm). The meaning is shown with every result, so Stoneford is “stone river crossing” and Oakhaven is “oak safe harbour”.

How to use it

  1. Generate town namesThe generator opens on town and village names. Press Generate for a fresh batch of 5, or choose 1, 10, 20 or a custom number.
  2. Read the meaningsEach name is built from parts with meanings, shown in the table under the results, so you can pick one that fits the place's history.
  3. Save and copySave the names you like to your list, then copy them all at once for your map, notes or campaign document.

Example town and village names

Generated with the tool above, with their meanings.

Stonefordstone river crossing
Oakhavenoak safe harbour
Greenmouthgreen river mouth
Highholmhigh island
Mistwellmist spring
Oakmereoak lake
Ambercrossamber crossroads
Snowwatchsnow watchtower
Ravenburghraven fortified town
Ashsteadash farmstead
Dragonforddragon river crossing
Lostportlost port

How real town names are built

Most English town names are compounds: a describing word plus a word for the kind of place. Fantasy names feel right when they follow the same pattern. These are the place words the generator uses, with their real-world meanings:

EndingMeaningReal examples
-fordriver crossingOxford, Stratford
-havenharbour, safe placeMilford Haven, Whitehaven
-wickvillage, dwellingWarwick, Berwick
-merelakeWindermere, Grasmere
-steadfarmstead, placeHampstead, Banstead
-holmsmall island (Norse)Stockholm, Holmfirth
-burgh / -buryfortified townEdinburgh, Canterbury
-mouthriver mouthPortsmouth, Plymouth

Tips for naming towns in your world

  • Match the land. A coastal town gets -haven or -mouth, a river town gets -ford or -bridge, a mountain village gets -holm or -watch.
  • Tell a story. Names like Wolffall or Lostport hint at an event in the town's past that players can ask about.
  • Keep a region consistent. Towns in the same valley often share a root (three towns named after the same river), which makes a map feel real.
  • Villages are smaller and plainer than cities. Save grand names like Kinghold for capitals; use Ashstead or Oakwick for farming villages.

Frequently asked questions

Can I use these town names in my D&D campaign or book?

Yes. The names are generated, not copied from a list, so you can use them in campaigns, novels, games and maps.

What's the difference between a town and a village name?

In real naming, villages are often named after a farm, spring or field (-stead, -well, -field), while towns grow around crossings, harbours and forts (-ford, -haven, -burgh). The generator mixes both; pick the ones that fit the size of your settlement.

How do I make a town name sound older?

Use plain, physical words (oak, stone, ash, marsh) and older endings like -wick, -stead or -holm. Avoid modern words, and keep it to two parts.

Can I generate city or kingdom names too?

Yes. Use the City or Kingdom / realm options in the tool, or the dedicated city and kingdom name generators linked below.

Is it free?

Yes, free with no signup. It runs in your browser.

Last updated 2026-11-03. This tool runs in your browser; nothing you type is sent to our servers.