Jump to content

Seed Generator / Analysis / Previewer


Recommended Posts

This is a set of tools made to run on WSL on Windows. There's a list of requirements on the README, as well as the description of most tools and how I usually use them, but I'll cover the basics here.


Seed Generator


This will start 7 Days to Die, generate a random seed with whatever settings you like, generate a map preview for that seed, save a zip file with that preview and other information, and then repeat. The seeds are generated in a temporary folder and deleted afterwards, so it won't fill your hd with trash. For example, if I want to generate 50 seeds of size 8192 with towns set to many I'd run this:

genWorlds.sh --towns=Many 50 8192

It also includes a "best base location score" feature that can be used to skip crappy seeds. It's a formula based on what can be found within 1km of the base location and somewhat configurable.


It can be downloaded from here: https://github.com/dcsobral/seedGen


Seed Analysis


So you generated hundreds of seeds, but how do you find a good seed to play on? This is the original motivation for these tools, and it is something that is still evolving. Here are some ideas:

  • How many prefabs does a seed have?
  • How many unique prefabs does a seed have?
  • How many skyscrapers?
  • How many tier 5 prefabs? Or the other tiers, for that matter.
  • How many traders?
  • Here's a list of my top 15 prefabs, how many of them does the seed have?

There are tools to display lists of all generated seeds, sorted by any one of these criteria and with the number. For example, this displays three columns with the seeds sorted by number of tier 3, tier 4 and tier 5 prefabs in each:


There are two problems with the criteria above. First, they are about the whole map but I don't like travelling far from my base. Second, how do you balance these numbers? What if the seed with most unique prefabs (that is, the least boring seed) doesn't have any tier 5 buildings?

So I developed a criteria I call "best base location score". It is a number made of the following things:

  • How many traders with 1km?
  • How many unique tier 3 prefabs within 1km?
  • How many unique tier 4 prefabs within 1km?
  • How many unique tier 5 prefabs within 1km?
  • How many unique stores within 1km?
  • How many unique industrial prefabs within 1km?
  • How many downtown prefabs within 1km?
  • How many of my top 15 prefabs with 1km?

I find the location with the best score on each seed, then I mark the location on the map preview, and I can list the seeds sorted by that score. I can also skip seeds with a low score during generation, to save time discard seeds I'm never going to use anyway.


But there's only so much number can tell. One cannot make a decision without looking at the map preview, but I don't want to keep juggling images on my desktop either. So there's also a tool that will generate images with multiple seed preview thumbnails side by side, so I can easily compare multiple seeds at the same time.


Seed Previewer


Though this is usually done by the seed generator automatically, it does deserve separate comment. The seed previewer is actually made of multiple steps. The first tool creates an image based on biomes, elevation, water, radiation and roads. This is relatively fast because it is just composing images  created during seed generation. The second tool adds all prefabs to the image. It uses the prefab preview images that come with 7 Days to Die so you can identify the prefabs on the map. It also adds color-coded borders to each prefab to make it easy to identify the zoning of each city on the map without having to zoom in on each one. The third tool overlays a circle representing the best base location of that seed and covering all the prefabs that are within 1km of that location.


How do I use it?


Here's more or less what I do every time I want to find new seeds (like when a new alpha comes out):


cd $F7D2                    # Go to the game folder
RATING_THRESHOLD=10000      # Discard crappy seeds -- I usually fine tune this number
genWorlds.sh 100 8192       # Leave it running through the night
cd previews                 # All zip files are kept here
prefabs.sh                  # Extract all prefabs.xml files for analysis
previews.sh                 # Extract all previews
makeMontage.sh              # Creates thumbnail montage images, up to 20 seeds each
# Open the montage images -- 8192*.png
cd 8192                     # This is where those prefabs.xml are extracted to
greatest.sh allSorts.sh     # Sort seeds by number of prefabs, number of unique prefabs and base rating, highlighting the top ones
greatest.sh allTiers.sh     # Sort seeds by number of unique tier 3, 4 and 5 prefabs
greatest.sh allSpecials.sh  # Sort by numberof unique downtown, industrial, stores, top 7 and top 15 prefabs
# Look up the best seeds on the montages
showSeed.sh seed-size       # Opens the seed preview
rate.py seed-size           # Shows which prefabs are within the best base location range, and the exact coordinates


Edited by dcsobral
remove examples to place it with follow up post (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...