So I was prepping my D&D campaign last night and realized all my kingdom names sounded like bad knockoffs of Lord of the Rings. “Eh, I’ll just whip up a quick name generator,” I thought. Famous last words.

fantasy country name generator

The Messy First Attempt

Dusted off Python and started slapping lists together. Grabbed consonants, vowels, slapped them randomly:

import random

cons = ['b','d','f','g']

vows = ['a','e','o','u']

print(*(cons) + *(vows) + *(cons))

Ran it. Got “Fog”. Then “Gub”. Absolute trash. Sounded like cave trolls grunting. My players would roast me alive.

fantasy country name generator

Switching Gears

Scrapped that approach. Dug through my notes – turns out I bookmarked fantasy name structures months ago:

  • Place + feature (“Silvercrest”)
  • Descriptor + terrain (“Misty Peaks”)
  • Ancient + object (“Obsidian Throne”)

Created three new lists:

  • Place words: [Silver, Shadow, Crystal]
  • Descriptors: [Forgotten, Eternal, Whispering]
  • Features: [Reach, Vale, Spire]

Making It Actually Work

Wrote this disaster:

first_list = ["Crimson", "Ivory", "Ashen"]

second_list = ["Sanctum", "Crown", "Watch"]

third_list = ["Dominion", "Expanse", "Realm"]

fantasy country name generator

for i in range(5):

name = *(first_list) + " " + *(second_list)

if *(0,1): # Coin flip

name += " of the " + *(third_list)

print(name)

fantasy country name generator

Test run gave me “Ivory Sanctum of the Dominion”. Okay, not terrible! But then got “Ashen Watch” without the third part – clean and simple. Even better.

Realization Hits

Played with it for an hour generating names. The magic sauce? Randomly omitting parts. Sometimes “Crimson Watch” beats “Crimson Watch of the Expanse”. Added weights so shorter names appear more often.

Final step? Saved my lists in a text file so I can swap words later. Now when my party sails to Whispering Spire next session? Totally using this. Still might get mocked, but at least it won’t be “Gub Kingdom” again.

Disclaimer: All content on this site is submitted by users. If you believe any content infringes upon your rights, please contact us for removal.