Gonna be a bit of a rapid info dump on how Procedurally Generated ARK's (PGARK's) currently works -- will continue to flesh this out as I get more time over the weekend. Bear in mind the system is early and will be rapidly advancing, so if you use Procedurally Generated ARKs, there's always a possibility of losing your save data when the algorithms are further modified!
Without further ado, here we go!
How To Configure your first PGARK
Launch the game, goto Play Local ARK, select "Create New Procedurally Generated ARK" in the upper-left of the Host UI, and then you can play around with all the different PGARK settings to construct an ARK to your liking. Give it unique ARK name in the lower-right, and click Host. After a long wait (this will be further optimized shortly), you'll be on your new ARK! The procedural ARK data is cached to disk so subsequent loads of it are much faster (in Saved\GenerateMapCache, which you can delete if you ever wish to clear up disk space or force regenerate the procedural data in case it becomes corrupted). You can delete existing saved Procedurally Generated ARK's (by name) in the Host UI. Furthermore, you can save multiple PGARK configurations in the Create New Procedural ARK UI, if you wish to retain them for later tweaking or to create multiple unique saved ARK's from the same configuration.
Here's a really rough guide to some of the PGARK settings you can edit in the UI:
VISIBLE ON UI AS...
Number of droplets which are used to simulate erosion
Density of foliage in the grasslands biome
Grasslands Grass Density
The exponent used in the curve to smoothly interpolate between island and water floor
Island Border Curve
The height value at which the jungle biome start
Jungle Biome Start
Foliage density in the Jungle biome
Jungle Grass Density
Trees & rocks density in the jungle biome
Jungle Tree Density
The radius of the landscape, outside of this radius it is water (to avoid cutting the landscape by the terrain border)
The seed used in the noise & random functions
The maximum height of land for a spawn point to be created
Max Sawn Point Height
A multiplier for mountain height
The height value at which the mountain biome starts
Mountain Biome Start
Foliage density in the mountain biome
Mountain Grass Density
The frequency of the noise used to generate mountains
How hard the transition is from land to mountain, the higher the value the smoother the transition (from 0 to 2)
Density of trees and rocks in the mountain biome
Mountain Tree Density
Regions 1, 2, 3
The height value for the ocean floor (from -1 to WaterLevel)
Ocean Flool Level
Foliage density in the Redwood biome
Redwood Grass Density
Density of trees and rocks in the redwood biome
Redwood Tree Density
The radius of the Redwood biome (from 0 to 1)
Redwood Biome Size
The location of the redwood biome (X,Y from 0 to 1)
Redwood Biome Location
How hard the transition is from water floor to shore, the higher the value the smoother the transition (from 0 to 2)
Foliage density in the shore biome
Shore Tree Density
The location of the snow biome (X,Y from 0 to 1)
Snow Biome Location
The radius of the snow biome (from 0 to 1)
Snow Biome Size
Foliage density in the snow biome
Snow Grass Density
Foliage density in the snow mountain biome
Snow Mountain Grass Density
Density of trees and rocks in the snow mountain biome
Snow Mountains Tree Density
Density of trees and rocks in the snow shore biome
Snow Shore Tree Density
Density of trees and rocks in the snow biome
Snow Tree Density
X,Y,Z to scale the whole terrain
Terrain Scale Multiplier
Density of trees and rocks in the grasslands biome
Grasslands Tree Density
The power of the turbulence function used to randomly perturb the coordinates input to the noise function, to add some realism to the noise
Object density in the underwater biome
Underwater Objects Density
The frequency of the noise function used to generate land/water
The height value for the water surface, from (Ocean Floor level to 1)
The distance from the water that the shoreline begins. Raise this for a shore that goes farther up to the land.
The overall width of the shore. Raise this along with ShorelineStartOffset to get a thicker, larger shore.
Hosting a Dedicated Server on PGARK
The actual PGARK configuration is stored in your \Saved\Config\Windows (or WindowsServer or LinuxServer etc)\Game.ini file, here:
After you configure an ARK to your liking in singleplayer mode, copy the values to your dedicated server's Game.ini file, and then host the server on the map called "PGARK" (ala "ShooterGameServer.exe PGARK?listen". The server will automatically load whatever PGMapName you have set. So if you want to do a different Procedural ARK, change the PGMapName value to "YourPGARK2" and you'll get a different savedata for that. You can revert back to any previous PGMapName to load the data of a previously saved PGARK. Note that if you have no existing save data for the PGMapName, it will use the PGTerrainPropertiesString to create the new ARK. But after you have save data for a PGMapName, the INI's PGTerrainPropertiesString will not take effect when loading that save data -- instead, it will use whatever procedural settings are contained within the PGMapName's existing savedata. In other words, to try out a new PGTerrainPropertiesString configuration, you either would need to delete your PGMapName's savedata, or use a different PGMapName.
To get a PGARK configuration that you like, we recommend experimenting in singleplayer through the in-game UI, and then once you have settings you're happy with, copy the PGTerrainPropertiesString from your Windows\Game.ini into your dedicated server's WindowsServer\Game.ini (into the [/Script/ShooterGame.ShooterGameMode] section as described above). Then, as long as you're hosting a new PGMapName, those settings will take effect just as they were in your singleplayer game! You can also easily share good PGARK configurations by sharing that string with other server hosts, just copy the text of PGTerrainPropertiesString to them, and they can put it in their own INI. Share your best PGTerrainPropertiesString settings on the Forum! Hosts can put the PGTerrainPropertiesString value into PGLastUsedSettings as well, which will then become visible to the in-game UI for further custom tweaking/iteration.
New System: Overriding/Modifying Map Spawners via INI
There's a powerful new INI-driven system to override, add, or substract all NPC spawners within the ARK. In particular you can use this to adjust the spawners of a PGARK to your precise liking. Here are some examples of how it works:
Add these INI values, as many as you want, into your Game.ini's [/Script/ShooterGame.ShooterGameMode] section.
For example, this will REMOVE Trikes and Sauropod entries from the PGARK's Grassland Spawner, and it will remove Trikes and Ptero's from the PGARK's Jungle Spawner (you could then do a ConfigAddNPCSpawnEntriesContainer afterwards, to add them back in with different rates, if desired):
ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesGrassland_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Trike_Character_BP_C")),(NPCsToSpawnStrings=("Sauropod_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Trike_Character_BP_C"),(NPCClassString="Sauropod_Character_BP_C") ) )
ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesJungle_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Trike_Character_BP_C")),(NPCsToSpawnStrings=("Ptero_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Trike_Character_BP_C"),(NPCClassString="Ptero_Character_BP_C") ) )
This will ADD a Giganotosaurus Spawner to the PGARK's beach spawner, but limiting it to only 1 Giga per spawner (via the NPCSpawnLimits):
ConfigAddNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesBeach_PGM_C",NPCSpawnEntries=( (AnEntryName="GigaSpawner",EntryWeight=1000.0,NPCsToSpawnStrings=("Gigant_Character_BP_C"))), NPCSpawnLimits=( (NPCClassString="Gigant_Character_BP_C",MaxPercentageOfDesiredNumToAllow=0.01) ) )
This will OVERRIDE the PGARK's beach spawner to spawn NOTHING but Gigas and Rexes in equal weights and limits... OUCH!
ConfigOverrideNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesGrassland_PGM_C",NPCSpawnEntries=( (AnEntryName="GigaSpawner",EntryWeight=1.0,NPCsToSpawnStrings=("Gigant_Character_BP_C")) , (AnEntryName="RexSpawner",EntryWeight=1.0,NPCsToSpawnStrings=("Rex_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Gigant_Character_BP_C",MaxPercentageOfDesiredNumToAllow=0.5) , (NPCClassString="Rex_Character_BP_C",MaxPercentageOfDesiredNumToAllow=0.5) ) )
Using this technique, you can modify all of the spawners of any map. It will even take Mod creature class names, as long as you know their short (summonable) class names!
Here's a list of all the spawner class names on TheIsland, TheCenter, ScorchedEarth, and PGARK for your handy reference:
TheCenter (which also uses many TheIsland spawners)
Procedural Generator Modding Guide
The Procedural ARK Generation is nearly 100% Blueprint-driven, so it is super moddable (and the Generator Blueprints used can be overriden by any Mod!). We have no doubt that enterprising modders will be able to create even better algorithms and logic paths than us, for more lifelike and detailed procedural ARK's. Here are the first details about how to get involved with creating a unique Procedural Generator Mod in the ARK Dev Kit:
And here's an example of a very simple one!
Bonus video tutorial by ThickFreedom: