No Man's Sky Modding Wiki

Before we begin, it's important to note that terrain generation in No Man's Sky is complex. It's literally various layers of noise being laid over each other to produce the environments one sees in the game. This is largely generated from a file called VoxelGeneratorSettings found under METADATA\SIMULATION\SOLARSYSTEM.

Due to the complexity of this generator (it's in fact an array of settings for different sorts of landscape to generate from, between a set of Min/Max values) there are various elements that are still not fully understood. Nevertheless, below you will find some descriptions of the different parts of the file and what they have been found to affect/influence. Alongside this file analysis, you will find a brief guide on how to adjust the terrain generation live through the use of Cheat Engine.


[Analysis to Come]

Adjusting Terrain Generation in Real-Time

While this may seem intimidating at first, this is in fact relatively simple. First, launch No Man's Sky and set it to launch in windowed mode at a resolution that works for you. Once you've done this, close/relaunch the game (whichever you prefer), and download Cheat Engine if you've not already.

Launch Cheat Engine (and if this is your first time, do give the tutorial a run through, then return here) and select the NMS.exe process in the Process List by clicking the computer icon with a magnifying glass in the upper left below File in the Cheat Engine window. Alternatively, if NMS.exe is not immediately clear in the Process List, click the Application tab to bring up an Application List and select No Man's Sky from there, then click Open.

This will attach Cheat Engine to No Man's Sky, and allow you to scan in memory for related settings and values. At this point, click back into your No Man's Sky window and load a save or start a new game, whichever. Once you're at a point where you can launch into space, do so.

From here, look for any planet (including the one you launched from, if you like) and make sure you're approximately 1,400ks from the planet (check your ship dash or HUD for this) and scan it. Once you have the planet name, you have information you can use in Cheat Engine, so switch back to its window.

There, you will want to switch the Value Type on the righthand side to String. Scan Type for this value has only one option, Search for Text, but this varies with different Value Types. Above both Value Type and Scan Type, there's an entry field in which to enter information, and here's where you will type the planet name of the planet you've scanned and are facing in No Man's Sky, then hit First Scan above the entry field.

This should bring up around less than ten addresses in the left hand side of the Cheat Engine window, in the Address List, if you're far enough from the planet (and haven't placed a beacon on it).

Check each address by right clicking on them and selecting Browse this memory region, you're looking for whichever address has the planet name in memory, and beneath that several lines down, a few planetary resources indicated by ID, e.g. "TECH1......TRADEABLE1".

Once you've found this, in the window created by selecting Browse this memory region (the Memory Viewer), select the first letter of the planet name, right click and select Show relative addresses. Then scroll down in this window until you reach +00001830. Once there, right click and select Display Type, Float. This will make the data shown there easier to parse and relate back to settings you may find in the VoxelGeneratorSettings file.

At this point, you may want to open the VoxelGeneratorSettings file in Notepad++, or simply play about with the settings/values you're seeing in the Memory Viewer. Change whichever values you see there (e.g. those that occur around +00001880-1890), fly down to the planet, and see how they may have changed the terrain generation. Since this is all being done through Cheat Engine, you needn't worry too much about messing up your game, as a simple relaunch of the game will restore the game's normal terrain generation settings.