let content = []; modal.style.display = 'none'; While the first 5 names contain plenty of abstract names, these names have a higher chance of generating 'normal' names, like the ones you'd find today or throughout history in different languages. appCSSlink.rel = 'stylesheet'; for (let i = 0; i < axes.length; i++) { Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. let thisLine = []; abbreviation = (abbreviation != null) Check out these futuristic fonts if you want a modern design. return document.getElementById(ID).value.trim(); Classes can also be combinations of other classes, such as, Note: in other sections of Vulgar, upper case letters have, Word patterns are made of phoneme classes (as defined above), Patterns for particular parts-of-speech can be added after the default patterns (. All other original content is part of FantasyNameGenerators.com and cannot be copied, sold or redistributed without permission. } let CC = 0; upperLine.push(upperlinetag); function getInput(ID) { } ); if (axes[i].length == 1 && axes[i][0] == '') { : property.trim().toUpperCase(); } let label = x + '.' allLinks.parentNode.insertBefore(appCSSlink, allLinks); let tags = []; let upperLine = []; Look no further! setHTML(ID, content); + tag[1]; ')]; if (conTrans) equals = ' = ((' + conTrans[label] + '))'; To start, simply click on the button to generate 10 random names. if (conTrans) equals = ' = ((' + conTrans[label] + '))'; function closePopup(ID) { modal.style.display = 'block'; exampleWord = ''; if (list[i] == replacer) { Your IP: 83.17.189.114 Vugar is a constructed language (conlang) generator for fantasy writers and role players. extra high | high | mid | low | extra low. {'attributes':{'code-block':true},'insert':'\n\n'} for (let property of tagLines) { let equals = (nulls.includes(label)) ? ' if (conTrans) equals = ' = ((' + conTrans[label] + '))'; function popup(ID, content) { This city name generator will give you 10 random city names. ); return document.getElementById(ID).checked; } divID.style.display = 'none'; } if (found) { // length 1 and AB, ABC length > 1 if (document.getElementById('noFixedStress').checked) { } window.onclick = function(event) { agnosticFocus = ID; Performance & security by Cloudflare, Please complete the security check to access. } {'attributes':{'code-block':true},'insert':'\n'}, let label = x + '.' • Enter extra words to be generated, in the format word(s) : part-of-speech, Specify what the word translates to as English word : part-of-speech = conlang word (in IPA), Add affixes to words to create derived words as new word : pos = root_word-AFFIX.TAG. (RollForFantasy.com), I'm planting trees with my site. swapped = dict[swapped]; buttons.splice(buttons.indexOf(linkColor), 1); Generator Categories Most Popular Animated Black Blue Brown Burning Button Casual Chrome Distressed Elegant Embossed Fire Fun Girly Glossy Glowing Gold Gradient Gray Green Heavy Holiday Ice Medieval Orange Outline Pink Plain Purple Red Rounded Science-Fiction Script Shadow Shiny Small Space Sparkle Stencil Stone Trippy Valentines White Yellow If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. } ); } ? } We’ve found 50 awesome and totally free futuristic fonts you can use to design. {'insert': 'example-word N = ' + exampleWord[2]}, } It is quite a task thinking up great made-up words that are unique, so I created this word generator to help you come up with the best fake word ideas. let index = list.indexOf(replaced); content.push( let abbreviation = property.match(rg_upperTag); if (document.getElementById('wordStructure').checked == false) { } } Capitalized letter(s) become the abbreviation. for (let x of tags[0]) { The names are generated almost completely randomly, with the exception of predefined endings, so some names might not be what you'd expect for a city name. Add or modify affixes (Read the affix guide): Create affixes for parts-of-speech. {'attributes':{'code-block':true},'insert':'\n'} } document.getElementById('allowContrastiveStress').disabled = !this.checked; While most of these names wouldn't be found as city names today, so they are more original. while (CC < tag.length) { if (button.checked) return button.id; exampleWord = ' ~ ' + exampleWord; Trial the demo version with a … {'attributes':{'code-block':true},'insert':'\n'} } else if (forceONOFF == 'on' || ['', 'none'].includes(divID.style.display)) { ').replace(/^\.+|\.+$/g, '') break; } else { if (axes.length == 3) { {'insert': 'part-of-speech = ' + pos }, tag.push(tag[0]); for (let i = index + 1; i < list.length; i++) { {'insert': 'example-word ' + F + ' = ' + exampleWord[1]}, } let disabledFont = '#5f6b6f'; modal = document.getElementById(ID); return found || ''; // do not return undefined for (let i = 0; i < end; i++) { return content; if (typeof exampleWord == 'string') { if (showMessage) messageID.innerHTML = showMessage; Eg: a Cyrillic-based spelling and a Latin-based spelling. function range(end) { The below examples adds o to masculine nouns, a to feminine nouns, and ar to verbs. content + '
'; If you're looking for a 'normal' name, the first 5 names are probably where you'll want to look. content.push( Trial the demo version with a 200 word output. The last 5 names are generally shorter, and could fit (almost) any type of genre. } if (!axes.length) return []; // do not add empty tables!