{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiatd4iwtqlmohvolfohkhasax76tyu3ukuyb2svounovwcek62i2i",
"uri": "at://did:plc:i7budt2wflrcfy6jtvfocbix/app.bsky.feed.post/3mhn3tuo77ie2"
},
"path": "/viewtopic.php?p=1278657#p1278657",
"publishedAt": "2026-03-21T23:33:35.000Z",
"site": "https://www.tt-forums.net",
"tags": [
"https://newgrf-specs.tt-wiki.net/wiki/N ... ames_parts",
"https://gitlab.com/mindeking-group/open ... town-names",
"2020",
"1950",
"1900",
"https://en.wikipedia.org/wiki/List_of_cities_in_Iowa",
"Bohaska",
"US Census Town Names",
"https://newgrf-specs.tt-wiki.net/wiki/StringCodes",
"https://newgrf-specs.tt-wiki.net/wiki/N ... uage_files",
"https://cs.stanford.edu/people/miles/iso8859.html",
"MindeKing"
],
"textContent": "Psychopathic Cool and worthless awesome user (moi) creates a NewGRF that adds exclusively towns and cities from the great US state of Iowa into YOUR game of OpenTTD!\nSelect by year for maximum immersion!\n\nThere are\n\n * 941 town names for 2020\n\n\n * 910 town names for 1950\n\n\n * 649 town names for 1900\n\nThe probability for each town name to appear is proportional to the population statistics of the state of Iowa, based on data from 2020.\nThe formula used to calculate probability is:\n\nCode:\n\n\n min( ( math.floor( city / (highest population city + 1) * 100 ) + 1 ), 100)\n\nThis is done so that the most populous city has a score of 100, (Des Moines: 100)\nmid-pop cities have scores proportional to the largest, (Davenport: 48, Dubuque: 28, etc.)\nand the lowest population cities—which would otherwise have scores less than 1—have scores of at least 1. (Zwingle: 1)\n\nKeep in mind, this doesn't mean that Des Moines will show up in 100% of your games, rather that it will appear 100/(the sum of all town name weights that I don't have the energy to calculate) times.\nLike if Des Moines had a weight of 100 but there were 100 other towns all with the weights of 1, then Des Moines would only show up 100/200 times.\n(This is according to: https://newgrf-specs.tt-wiki.net/wiki/N ... ames_parts)\nThis is the biggest pitfall with using the 2020 population data for 1950 and 1900, as the larger cities have the same weights with up to a third less other cities to balance them out.\nMaybe I'll try to find accurate population information for all towns and cities in Iowa from 1950 and 1900 in the future, but, honestly, who's ever gonna notice, let alone use these to begin with?\n\nLinks\nGitLab: https://gitlab.com/mindeking-group/open ... town-names\nBaNaNaS: 2020, 1950, 1900.\n\n[+] Spoiler\n (Please notice how the final 4 characters of the 2020 grfid are \"1846\", the year in which Iowa was accepted into the Union. I'm so funny and clever, aren't I.)\n\nCredits / Thanks\nInformation acquired from https://en.wikipedia.org/wiki/List_of_cities_in_Iowa.\nBohaska's \"US Census Town Names\" was a huge help and influence.\nhttps://newgrf-specs.tt-wiki.net/wiki/StringCodes, https://newgrf-specs.tt-wiki.net/wiki/N ... uage_files, and https://cs.stanford.edu/people/miles/iso8859.html for providing information on how to format text and insert special characters into OpenTTD NewGRF descriptions.\n\nElse\nIf only you were allowed to consecutively build text keys, then I wouldn't have had to have done everything from a .py file.\nWell, at least it means I had to learn the basics of Python, so that's good, if nothing else.\n(Even if it means I now have a newfound hatred for curly brackets and backslashes, especially with regards to OpenTTD text formatting.)\n\nUsing up 3 whole slots in the Online Content browser for town name mods that nobody's going to use but me? Talk about being a waste of money, storage, and convenience on this community...\n\nStatistics: Posted by MindeKing — 21 Mar 2026 23:33\n\n* * *",
"title": "Graphics Releases • [OTTD] Iowan Town Names for 2020, 1950, and 1900",
"updatedAt": "2026-03-21T23:33:35.000Z"
}