Sam Trenholme's webpage
Support this website or listen to my music

Totestra

Totestra is a program that makes random maps for Civilization IV. It is based on Cephalo's excellent PerfectWorld2 map script, and uses plate tectonics, meteor, and weather modeling to create a remarkably realistic earth-like planet. It is an update to PerfectWorld that adds more parameters that can be set inside Civ IV to the map generator, as well as fixing some long standing bugs with Cephalo's map generator. One goal of Totestra is 100% compatibility with PerfectWorld2; given the right parameters, Totestra will make the exact same map that PerfectWorld2 did.

In addition, I have tested this map script against a large number of different mods; click here to see if this map script works with a given mod.

With Cephalo's permission, I have made my own version of his excellent PerfectWorld2.py script, with the goal to address some long-standing issues users have had with Perfect World, as well as adding some other features. The last update to this script was on June 3, 2012.

Totestra is finished

Totestra is a finished product and I have no plans to further develop this program.

Known issues

While I do not plan up updating Totestra at this time, there are some known issues:
  • There appear to be issues with regenerated maps having multiple service tags on them. For people who want help with such a map, just post all of the service tags on the map in the support request. The workaround is to not regenerate a map.
  • About once every dozen maps, Totestra will generate a map with no hills nor mountains. I have no plans to fix this bug; the workaround is to generate a new map.

New features

Totestra adds the following features to Perfect World:
  • Maps now have all parameters used to generate the map stored on a sign in the map. This makes debugging easier.
  • The ability to adjust the ocean level from the GUI.
  • The ability to adjust the climate from the GUI.
  • The ability to adjust the number of islands the map will tend to generate from the GUI.
  • The ability to use a fixed random seed from the GUI.
  • The map's width:height ratio can be adjusted.
  • Perfect World has some code that ensures only a single continent has a single resource. This code can now be disabled by changing the "Map resources" value. It's now also possible to have a "full of resources" map.
  • The player's handicap amount can now be selected. Handicap level is the number of bonus resources placed near the player's starting location. The higher the handicap level, the more bonuses are placed.
  • In addition to the Perfect World options of evenly distributing players or keeping a continent empty for new world exploration, it is now possible to choose to have all civs start on the same continent.
  • The ability to quickly make a lower-quality map. Please be aware that selecting this disables a number of options: The number of islands becomes fixed, as well as the map ratio, and the map can not be any larger than a standard map.
  • The generator will now, by default, avoid splitting up large continents in the middle where the map wraps.
  • There is now an option to remove coastal mountain peaks and reduce mountains elsewhere.

Service tags

One frustration Cephalo has had is bugs he could not reproduce. This in mind, maps generated with this map generator store all settings to recreate the map as a hex-encoded string. This sign, which I call a "service tag", is put in an out-of-the-way place in arctic ice. It's a code which not only stores the seed used to make the map, but all other parameters, such as the climate, water height, number of islands desired, and so on.

Install

To install the script, copy Totestra.py (to save this file, right click on it and choose "save as"/"save target as"/"save link as") to the PublicMaps directory (make sure it has the name Totestra.py there), which should be at /Users/yourname/Documents/My Games/Sid Meier's Civilization 4 Complete/PublicMaps or somewhere similar.

Support

For support with Totestra.py, please first read the FAQ to see if your question has already been answered. If not, I do not provide support for Totestra at this time.

Please do not email me or send me personal messages that discuss this map script.

Copyright

Please note that while Cephalo has given me permission to make my fork Totestra.py available, he is still the copyright owner of this file.

Files

The files here:
  • Totestra.py. This is the file you want to download. This is identical to Totestra-20120512.py, but has DOS line feeds which makes it easier to edit in Windows.
  • Files with '-' in their filename will not be seen by Civ IV. If you wish to download an earlier release, rename the file so Civ4 can see it.
  • The file ServiceTag.txt describes the binary format of the service tag (which is a hexadecimal number).
  • .diff files (in the Totestra directory) compare a version of Totestra with its previous version. This is a standard UNIX format: Lines that begin with '-' are deleted when going from one version to the next; lines beginning with '+' are added.

Totestra.py
Totestra-2017-03-30.py
Totestra-2017-03-29.py
Totestra-2017-03-29.diff
Totestra-20120615.py
Totestra-20120615.diff
Totestra-20120612.py
Totestra-20120612.diff
Totestra-20120610.py
Totestra-20120610.diff
Totestra-20120603.py
Totestra-20120603.diff
Totestra-20120530.py
Totestra-20120530.diff
Totestra-20120527.py
Totestra-20120527.diff
Totestra-20120526.py
Totestra-20120526.diff
Totestra-20120524.py
Totestra-20120524.diff
Totestra-20120523.py
Totestra-20120523.diff
Totestra-20120522.py
Totestra-20120522.diff
Totestra-20120521.py
Totestra-20120521.diff
Totestra-20120519.py
Totestra-20120519.diff
Totestra-20120512.py
Totestra-20120512.diff
Totestra-20120505.py
Totestra-20120505.diff
ServiceTag.txt
ServiceTag.jpg
service.tag.decode.python
qTotestraHUGE.py
qTotestraHUGE.diff
BigCoast.py
BigCoast.diff