JamesAlday
12/20/2016 - 5:56 PM

Generate a random NPC name

Generate a random NPC name

<html>
<body>
	<div id="npcName"></div>

	<script>
		var firstMale = ["Aaron", "Abel", "Adolphus", "Adrienne", "Alden", "Alexander", "Alton", "Ambrose", "Andrew", "Archer", "Argentine", "Armand", "Arthur", "Arundel", "Ashby", "Ashton", "August", "Augustus", "Axel", "Barlow", "Basil", "Beauregard", "Belknap", "Bellamy", "Bentley", "Bernard", "Bishop", "Bradley", "Brewster", "Brice", "Bryant", "Burton", "Byron", "Caleb", "Carlton", "Carrington", "Chadwick", "Charlie", "Chase", "Chester", "Clifford", "Corey", "Creswell", "Curt", "Curtis", "Cyrus", "Dalton", "Darius", "Dashiell", "Delbert", "Derrick", "Desmond", "Devin", "Devlin", "Dewitt", "Dillon", "Driscoll", "Eardley", "Ed", "Edgar", "Edward", "Edwin", "Elias", "Elijah", "Elliott", "Elmer", "Emmett", "Enoch", "Erick", "Estcourt", "Eugene", "Fabian", "Falkner", "Farley", "Farrell", "Felix", "Fitz-Lloyd", "Fletcher", "Floyd", "Frances", "Francis", "Franklin", "Fred", "Gene", "Gray", "Gregory", "Hamilton", "Hancock", "Harrison", "Henry", "Herbert", "Herrick", "Highland", "Hiram", "Horace", "Humphrey", "Jaime", "Jean", "Jebediah", "Jennings", "Joe", "Jon", "Jonathan", "Julius", "Kelvin", "Latimer", "Lawrence", "Lee", "Leister", "Leland", "Leo", "Leonard", "Lloyd", "Lord", "Louise", "Lowell", "Loyd", "Malcolm", "Marion", "Maxwell", "Melvin", "Milward", "Mitchell", "Montague", "Nestor", "Neville", "Norville", "Octavius", "Odediah", "Oliver", "Owen", "Pascale", "Pat", "Phineas", "Phryne", "Pierce", "Preston", "Quinn", "Raiphe", "Randall", "Randolph", "Rasmus", "Raymond", "Richard", "Ridley", "Rodney", "Roland", "Rudolph", "Sammie", "Scott", "Sean", "Severin", "Seward", "Sexton", "Simon", "Stanford", "Stoddard", "Sylvester", "Thaddeus", "Theodore", "Thomas", "Thornton", "Timothy", "Tobias", "Trevisan", "Vincenza", "Virgil", "Wade", "Wallace", "Walton", "Weldon", "Wesley", "Wilbur", "Willard", "Winnifred", "Wolcott", "Woodrow", "Xavier", "Ansel"];

		var firstFemale = ["Abigail", "Adaline", "Addie", "Adelaide", "Adele", "Agatha", "Aileen", "Albina", "Alice", "Aline", "Alma", "Alta", "Alva", "Alvina", "Alyce", "Amanda", "Amy", "Angela", "Anita", "Ann", "Aquilla", "Atholine", "Aubrey", "Audrey", "Aurora", "Avis", "Axel", "Barbara", "Beatrice", "Bernadine", "Bernice", "Berta", "Bertie", "Beryl", "Bessie", "Bettie", "Beulah", "Beverly", "Birdie", "Birkett", "Blossom", "Brenda", "Callie", "Camille", "Camise", "Carmella", "Carmen", "Carmina", "Carole", "Carolyn", "Carrie", "Carroll", "Cassie", "Catharine", "Catherine", "Cathrine", "Cathy", "Cecile", "Cecilius", "Celestia", "Charlotte", "Claire", "Clara", "Clarice", "Clarine", "Claudia", "Cloe", "Cora", "Cordelia", "Corine", "Corinne", "Cressida", "Cryscillia", "Cynthia", "Daphne", "Darlene", "Darling", "Deborah", "Deidamia", "Delia", "Della", "Delma", "Delores", "Deloris", "Delphia", "Delphine", "Denise", "Diane", "Dillon", "Disraelina", "Dolly", "Dolores", "Dominga", "Donna", "Donnithorne", "Dorene", "Edith", "Edwina", "Eileen", "Elda", "Eleanor", "Eleanora", "Eleanore", "Elenor", "Elenore", "Elisabeth", "Elisabetta", "Elise", "Elizabeth", "Ellie", "Eloise", "Elsa", "Elsia", "Elva", "Emily", "Enid", "Enola", "Esta", "Esther", "Etha", "Ethel", "Ethelyn", "Etta", "Eulah", "Eva", "Evalyn", "Evangeline", "Eve", "Evelyn", "Evelyne", "Faith", "Faye", "Federica", "Florence", "Florine", "Flossie", "Frieda", "Garnet", "Geneva", "Genevieve", "Georgia", "Georgiana", "Geraldine", "Gertrude", "Gilda", "Gladys", "Gloria", "Grace", "Gracie", "Gussie", "Gwendolyn", "Halsey", "Hannah", "Hattie", "Hazel", "Helen", "Helena", "Henrietta", "Hephzibah", "Hermione", "Hortense", "Ilene", "Imogene", "Irene", "Irma", "Isabel", "Isabella", "Isabelle", "Ivy", "Jacquelyn", "Jaime", "Jardine", "Jean", "Jeanette", "Jeanne", "Jettie", "Joanne", "Josefina", "Josie", "Judith", "Kathryn", "Kimberly", "Laura", "Lauren", "Lavera", "Lavina", "Leighton", "Leila", "Lenore", "Leola", "Leona", "Leonora", "Leslie", "Lessie", "Leticia", "Lettie", "Lida", "Lilian", "Lillian", "Linda", "Lindsey", "Lisetta", "Livia", "Lloyd", "Lorene", "Loretta", "Lori", "Lorna", "Lorraine", "Louella", "Louisa", "Louise", "Lucinda", "Lucretia", "Lydia", "Lysander", "Mabel", "Mabeline", "Madeline", "Madge", "Magdalene", "Manuela", "Margaret", "Margie", "Maria", "Marian", "Marianne", "Marie", "Marietta", "Marilyn", "Marjorie", "Martha", "Maryann", "Maude", "Mavis", "Melba", "Meloria", "Melvina", "Mercy", "Meredith", "Merriam", "Merry", "Methelda", "Millie", "Miranda", "Miriam", "Myra", "Natasha", "Nelda", "Nellie", "Nicole", "Nimmy", "Odessa", "Ola", "Olin", "Olivia", "Opal", "Ophelia", "Orpha", "Paolina", "Parthena", "Pat", "Patricia", "Paula", "Paulette", "Pauline", "Pearl", "Penelope", "Phoebe", "Phryne", "Phyllis", "Pippa", "Polly", "Priscilla", "Prudence", "Rachel", "Ranghilda", "Rechabina", "Regina", "Rhoda", "Ripley", "Rita", "Roberta", "Rodney", "Rosa", "Rosalie", "Rosanna", "Rose", "Rosebrook", "Rosella", "Roxanne", "Ruth", "Ruthie", "Sabrina", "Samantha", "Sammie", "Sarah", "Shannon", "Sharon", "Silvia", "Sofia", "Sonia", "Sonya", "Sophia", "Sophie", "Stacey", "Stanford", "Stella", "Stoddard", "Sue", "Suzanne", "Syble", "Sylvester", "Sylvia", "Tammy", "Tanya", "Tessie", "Thelma", "Theodora", "Theresa", "Thérèse", "Tina", "Trevisan", "Ursula", "Vanessa", "Verda", "Verdie", "Verna", "Vertiline", "Victoria", "Vincenza", "Violet", "Violette", "Virgil", "Virginia", "Vituria", "Wanda", "Whitney", "Wilma", "Winifred", "Winnie", "Winnifred", "Wynona", "Yvonne", "Zelda", "Zelma", "Zoe", "Zola", "Zylphia"];

		var lastNames = ["Abney", "Addie", "Albina", "Alda", "Alden", "Alderidge", "Aldham", "Alexander", "Aline", "Allard", "Allerton", "Alma", "Almeda", "Alta", "Altringham", "Alva", "Alvina", "Archer", "Ardelle", "Arkwright", "Ashdown", "Atwater", "Axilbund", "Ayliffe", "Babcock", "Bancroft", "Barents", "Barlow", "Barnard", "Barnham", "Barrington", "Base", "Bassett", "Beecham", "Bellamy", "Bentley", "Berkshire", "Bermont", "Berringer", "Beryl", "Bethune", "Beverley", "Beverly", "Bickford-Smythe", "Billington", "Birtwistle", "Bishop", "Blackadder", "Blackburn", "Blackmoor", "Blackwell", "Blanchard", "Blankenship", "Blaylock", "Bloodworth", "Boettecker", "Bonneville", "Boursiquette", "Bowler", "Bowman", "Brackett", "Bradford", "Brewster", "Brice", "Brightholme", "Brimble", "Bryant", "Buchanan", "Buchman", "Buckner", "Bullock", "Bulwer", "Burgess", "Burnett", "Burris", "Burroughs", "Burton", "Bustells", "Bynder", "Caldwell", "Calvert", "Campbell", "Carrington", "Chadsworth", "Chadwick", "Chamberlain", "Chambers", "Chandler", "Chapman", "Chase", "Chattoway", "Chennault", "Chesterton", "Cheverton", "Childress", "Chiles", "Chilton", "Chittester", "Clements", "Clyde", "Cochran", "Collier", "Connover", "Constable", "Copeland", "Dalton", "Danbrook", "Dandridge", "Dark", "Darling", "Daugherty", "de Grasse", "Deadman", "Deckard", "Denham", "Desaussure", "Devereaux", "Devereux", "Digges", "Dillard", "Dillon", "Dixon", "Donnadieu", "Donovan", "Dornier", "Dosett", "Douchain", "Doughty", "Drayton", "Durham", "Duvivier", "Eakley", "Eastham", "Eaton", "Eccleston", "Edmonson", "Ellery", "Ellison", "Emerson", "Engemann", "England", "Estcourt", "Exeley", "Exham", "Fairbanks", "Fairburn", "Fairchild", "Fairfax", "Fairless", "Faraday", "Farrell", "Faulkner", "Feher", "Fehrenbacher", "Ferguson", "Finch", "Fite", "Fitzhugh", "Fitzpatrick", "Fitzroy", "Fleming", "Fletcher", "Florida", "Florine", "Flowers", "Floyd", "Flynn", "Folkes", "Forbes", "Forster", "Fortune", "Fothergill", "Francis", "Franklin", "Friendless", "Frye", "Fuller", "Fulton", "Fuqua", "Gainor", "Gardner", "Gargett", "Gentry", "Georgia", "Gillespie", "Gilmore", "Godwin", "Gossett", "Gould", "Gracie", "Grady", "Gray", "Greenham", "Greer", "Griffith", "Gunn", "Haight", "Halbard", "Hale", "Halsey", "Halsted", "Hancock", "Hansen", "Harford", "Harrison", "Hartman", "Hatton", "Havelock", "Haverbrooke", "Havington", "Hawkes", "Hawkins", "Hazell", "Hearst", "Hendricks", "Hensley", "Herrick", "Hickman", "Highmore", "Hildreth", "Hirschfeld", "Holcomb", "Holden", "Hollis", "Holloway", "Holman", "Holmwood", "Holt", "Hooker", "Hopkins", "Hopkirk", "Horne", "Hortense", "Houston", "Howell", "Howland", "Hubbard", "Huffman", "Humphrey", "Hurst", "Hutton", "Ingram", "Isner", "Jardine", "Kane", "Kaylock", "Keanrick", "Keeler", "Keller", "Kelvin", "Kennard", "Keyes", "Kingsberie", "Kingsley", "Kingswell", "Knightly", "Knowles", "Lambert", "Lambourn", "Lancaster", "Lancer", "Landauer", "Lawrence", "Layne", "Lee", "LeGrasse", "Lehman", "Leister", "LePetomaine", "Leslie", "Lethbridge", "Lindsey", "Linington", "Livingston", "Lloyd", "Lockington", "Lord", "Lovelace", "Loveless", "Lowell", "Loyd", "Luckinbill", "Lynch", "Madden", "Mallory", "Mandeville", "Manning", "Mansbridge", "Markham", "Marleaux", "Maynerd", "McFarland", "Meecham", "Meeks", "Merrill", "Middleton", "Milford", "Millais-Scott", "Monier", "Monsen", "Montgomery", "Moorsom", "Newcomb", "Newcombe", "Newton", "Noble", "Norrys", "Norville", "Novak", "Oakes", "Odessa", "Oldershaw", "Orchard", "Orne", "Osborne", "Osbourne", "Overed", "Overstreet", "Owenby", "Parfit", "Parrish", "Payne", "Peale", "Pembroke", "Pennelegion", "Pennington", "Pennock", "Pennyworth", "Pickman", "Pierce", "Plaskitt", "Playfaire", "Poole", "Pope", "Porter", "Preston", "Price", "Priest", "Priestley", "Prosper", "Pruett", "Purcell", "Putnam", "Quinlan", "Quinn", "Quinton", "Randall", "Randolph", "Rathbury", "Rennault", "Reynard", "Reynolds", "Ridley", "Riggin", "Ripley", "Rockefeller", "Rosebrook", "Rosetta", "Rosington", "Roth", "Royceston", "Rutherford", "Rutledge", "Sampson", "Sawyer", "Scott", "Scrivener", "Selbit", "Severin", "Seward", "Sewell", "Sexton", "Shackleton", "Sheppard", "Sherborne", "Simon", "Sinclair", "Singleton", "Sinington", "Sinnet", "Skinner", "Smailes", "Smallwood", "Soule", "Spence", "Spiers", "Squibney", "St. Clair", "St. Cyr", "Stacey", "Stafford", "Stanbury", "Standish", "Statham", "Steele", "Stilwell", "Stone", "Street", "Strickland", "Strong", "Summerfield", "Sutcliffe", "Sutton", "Swan", "Swindon", "Swingate", "Sykes", "Syton", "Taggart", "Tesla", "Thackery", "Thelwell", "Thomas", "Thornton", "Thurlow", "Thurston", "Tillman", "Tippold", "Townsend", "Tramontin", "Trenton", "Trescott", "Trickelbank", "Underwood", "Upham", "Upston", "Upton", "Urquhart", "Varnham", "Vaughan", "Vickers", "Volker", "Wade", "Wakefield", "Wallace", "Walsh", "Walsted", "Westmore", "Weyland", "Wheeler", "Wraith"];

		var chanceMiddle = 50;
		var chanceMiddleLast = 50;
		var chanceJr = 5;

		var $_GET=[];
		window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(a,name,value){$_GET[name]=value;});

		function generateName(gender) {
			var first = "", middle = "", last = "";

			var hasMiddle = (Math.random() * 100) + 1 <= chanceMiddle;
			var middleLast = (Math.random() * 100) + 1 <= chanceMiddleLast;
			var hasJr = (Math.random() * 100) + 1 <= chanceJr;

			switch(gender) {
				case 'male':
					first = getRandomName(firstMale);
					middle = middleLast ? getRandomName(lastNames) : getRandomName(firstMale);
					break;
				case 'female':
					first = getRandomName(firstFemale);
					middle = middleLast ? getRandomName(lastNames) : getRandomName(firstFemale);
					hasJr = false;
					break;
				default:
					var firstNames = [];
					firstNames = firstMale.concat(firstFemale);
					console.log(firstNames);
					first = getRandomName(firstNames);
					middle = middleLast ? getRandomName(lastNames) : getRandomName(firstNames);
					hasJr = firstMale.indexOf(first) > -1 ? hasJr : false;
					break;
			}

			last = lastNames[Math.floor((Math.random()*lastNames.length)+1)];

			fullName = first + " " + (hasMiddle ? middle + " " : "") + last + (hasJr ? ", Jr." : "");

			return fullName;
		}

		function getRandomName(nameArray) {
			return nameArray[Math.floor((Math.random() * nameArray.length) + 1)];
		}

		(function() {
			var gender = $_GET['gender'] || "";
			var randomName = generateName(gender);
			document.getElementById('npcName').textContent = randomName;
		})();
	</script>
</body>