We'll be going over how to set up a procedurally generated map for your ARK server.
Here's a really rough guide to some of the PGARK settings you can edit in the UI:
VARIABLE | PURPOSE | VISIBLE ON UI AS... |
ErosionIterations | Number of droplets which are used to simulate erosion | Erosion Iterations |
GrassDensity | Density of foliage in the grasslands biome | Grasslands Grass Density |
IslandBorderCurveExp | The exponent used in the curve to smoothly interpolate between island and water floor | Island Border Curve |
JungleBiomeStart | The height value at which the jungle biome start | Jungle Biome Start |
JungleGrassDensity | Foliage density in the Jungle biome | Jungle Grass Density |
JungleTreeDensity | Trees & rocks density in the jungle biome | Jungle Tree Density |
LandscapeRadius | The radius of the landscape, outside of this radius it is water (to avoid cutting the landscape by the terrain border) | Landscape Radius |
MapSeed | The seed used in the noise & random functions | Map Seed |
MaxSawnPointHeight | The maximum height of land for a spawn point to be created | Max Sawn Point Height |
Mountain Height | A multiplier for mountain height | Mountain Height |
MountainBiomeStart | The height value at which the mountain biome starts | Mountain Biome Start |
MountainGrassDensity | Foliage density in the mountain biome | Mountain Grass Density |
Mountains Frequency | The frequency of the noise used to generate mountains | Mountain Frequency |
Mountains Slope | How hard the transition is from land to mountain, the higher the value the smoother the transition (from 0 to 2) | Mountain Slope |
MountainsTreeDensity | Density of trees and rocks in the mountain biome | Mountain Tree Density |
North/South/East/West Regions 1, 2, 3 |
||
OceanFloorLevel | The height value for the ocean floor (from -1 to WaterLevel) | Ocean Flool Level |
RedWoodGrassDensity | Foliage density in the Redwood biome | Redwood Grass Density |
RedWoodTreeDensity | Density of trees and rocks in the redwood biome | Redwood Tree Density |
RWBiomeSize | The radius of the Redwood biome (from 0 to 1) | Redwood Biome Size |
RWForestBiomeLocation | The location of the redwood biome (X,Y from 0 to 1) | Redwood Biome Location |
Shore Slope | How hard the transition is from water floor to shore, the higher the value the smoother the transition (from 0 to 2) | Shore Slope |
ShoreTreeDensity | Foliage density in the shore biome | Shore Tree Density |
SnowBiomeLocation | The location of the snow biome (X,Y from 0 to 1) | Snow Biome Location |
SnowBiomeSize | The radius of the snow biome (from 0 to 1) | Snow Biome Size |
SnowGrassDensity | Foliage density in the snow biome | Snow Grass Density |
SnowMountainGrassDensity | Foliage density in the snow mountain biome | Snow Mountain Grass Density |
SnowMountainsTreeDensity | Density of trees and rocks in the snow mountain biome | Snow Mountains Tree Density |
SnowShoreTreeDensity | Density of trees and rocks in the snow shore biome | Snow Shore Tree Density |
SnowTreeDensity | Density of trees and rocks in the snow biome | Snow Tree Density |
TerrainScaleMultiplier | X,Y,Z to scale the whole terrain | Terrain Scale Multiplier |
TreeDensity | Density of trees and rocks in the grasslands biome | Grasslands Tree Density |
Turbulence Power | The power of the turbulence function used to randomly perturb the coordinates input to the noise function, to add some realism to the noise | Tubulence Power |
UnderwaterObjectsDensity | Object density in the underwater biome | Underwater Objects Density |
Water Frequency | The frequency of the noise function used to generate land/water | Water Frequency |
WaterLevel | The height value for the water surface, from (Ocean Floor level to 1) | Water Level |
ShorelineStartOffset | The distance from the water that the shoreline begins. Raise this for a shore that goes farther up to the land. | |
ShorelineThickness | The overall width of the shore. Raise this along with ShorelineStartOffset to get a thicker, larger shore. |
The actual PGARK configuration is stored in your Game.ini file:
[/Script/ShooterGame.ShooterGameMode]
PGMapName=YourPGARK1
PGTerrainPropertiesString=MapSeed=412;LandscapeRadius=1.2;Water Frequency=11;Mountains Frequency=11;Mountains Slope=1.4;MountainsHeight=1.3;Turbulence Power=0.0125;Shore Slope=1.0;WaterLevel=-0.72;GrassDensity=1.0;JungleGrassDensity=0.02;ErosionIterations=200000;OceanFloorLevel=-1.0;SnowBiomeSize=0.3;RWBiomeSize=0.11;MountainBiomeStart=-0.55;MountainsTreeDensity=0.01;JungleBiomeStart=-0.65;IslandBorderCurveExp=4.0;MaxSawnPointHeight=0.1;SnowGrassDensity=0.25;MountainGrassDensity=0.05;SnowMountainGrassDensity=0.15;UnderwaterObjectsDensity=0.5;SnowMountainsTreeDensity=0.01;TreeDensity=0.003;JungleTreeDensity=0.66;RedWoodTreeDensity=0.35;SnowTreeDensity=1.0;RedwoodGrassDensity=0.1;ShoreTreeDensity=0.05;SnowShoreTreeDensity=0.025;DeepWaterBiomesDepth=-0.24;InlandWaterObjectsDensity=0.5;ShorelineStartOffset=0.04;ShorelineThickness=0.0045;TerrainScaleMultiplier=(X=1.0f,Y=1.0f,Z=1.0f);SnowBiomeLocation=(X=0.2f,Y=0.2f);RWForestBiomeLocation=(X=0.5f,Y=0.5f);NorthRegion1Start=(X=0.25f,Y=0.0f);NorthRegion1End=(X=0.416f,Y=0.5f);NorthRegion2Start=(X=0.416f,Y=0.0f);NorthRegion2End=(X=0.582f,Y=0.5f);NorthRegion3Start=(X=0.582f,Y=0.0f);NorthRegion3End=(X=0.75f,Y=0.0f);SouthRegion1Start=(X=0.25f,Y=0.5f);SouthRegion1End=(X=0.416f,Y=1.0f);SouthRegion2Start=(X=0.416f,Y=0.5f);SouthRegion2End=(X=0.582f,Y=1.0f);SouthRegion3Start=(X=0.582f,Y=0.5f);SouthRegion3End=(X=0.75f,Y=1.0f);EastRegion1Start=(X=0.75f,Y=0.0f);EastRegion1End=(X=1.0f,Y=0.333f);EastRegion2Start=(X=0.75f,Y=0.333f);EastRegion2End=(X=1.0f,Y=0.666f);EastRegion3Start=(X=0.75f,Y=0.666f);EastRegion3End=(X=1.0f,Y=1.0f);WestRegion1Start=(X=0.0f,Y=0.0f);WestRegion1End=(X=0.25f,Y=0.333f);WestRegion2Start=(X=0.0f,Y=0.333f);WestRegion2End=(X=0.25f,Y=0.666f);WestRegion3Start=(X=0.0f,Y=0.666f);WestRegion3End=(X=0.25f,Y=1.0f)
In your custom command line, adjust the map setting to use PGARK.
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 save data 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 save data. In other words, to try out a new PGTerrainPropertiesString configuration, you either would need to delete your PGMapName's save data, or use a different PGMapName.
PGMapName=YourPGARK1
PGTerrainPropertiesString=MapSeed=412;LandscapeRadius=1.2;Water Frequency=11;Mountains Frequency=11;Mountains Slope=1.4;MountainsHeight=1.3;Turbulence Power=0.0125;Shore Slope=1.0;WaterLevel=-0.72;GrassDensity=1.0;JungleGrassDensity=0.02;ErosionIterations=200000;OceanFloorLevel=-1.0;SnowBiomeSize=0.3;RWBiomeSize=0.11;MountainBiomeStart=-0.55;MountainsTreeDensity=0.01;JungleBiomeStart=-0.65;IslandBorderCurveExp=4.0;MaxSawnPointHeight=0.1;SnowGrassDensity=0.25;MountainGrassDensity=0.05;SnowMountainGrassDensity=0.15;UnderwaterObjectsDensity=0.5;SnowMountainsTreeDensity=0.01;TreeDensity=0.003;JungleTreeDensity=0.66;RedWoodTreeDensity=0.35;SnowTreeDensity=1.0;RedwoodGrassDensity=0.1;ShoreTreeDensity=0.05;SnowShoreTreeDensity=0.025;DeepWaterBiomesDepth=-0.24;InlandWaterObjectsDensity=0.5;ShorelineStartOffset=0.04;ShorelineThickness=0.0045;TerrainScaleMultiplier=(X=1.0f,Y=1.0f,Z=1.0f);SnowBiomeLocation=(X=0.2f,Y=0.2f);RWForestBiomeLocation=(X=0.5f,Y=0.5f);NorthRegion1Start=(X=0.25f,Y=0.0f);NorthRegion1End=(X=0.416f,Y=0.5f);NorthRegion2Start=(X=0.416f,Y=0.0f);NorthRegion2End=(X=0.582f,Y=0.5f);NorthRegion3Start=(X=0.582f,Y=0.0f);NorthRegion3End=(X=0.75f,Y=0.0f);SouthRegion1Start=(X=0.25f,Y=0.5f);SouthRegion1End=(X=0.416f,Y=1.0f);SouthRegion2Start=(X=0.416f,Y=0.5f);SouthRegion2End=(X=0.582f,Y=1.0f);SouthRegion3Start=(X=0.582f,Y=0.5f);SouthRegion3End=(X=0.75f,Y=1.0f);EastRegion1Start=(X=0.75f,Y=0.0f);EastRegion1End=(X=1.0f,Y=0.333f);EastRegion2Start=(X=0.75f,Y=0.333f);EastRegion2End=(X=1.0f,Y=0.666f);EastRegion3Start=(X=0.75f,Y=0.666f);EastRegion3End=(X=1.0f,Y=1.0f);WestRegion1Start=(X=0.0f,Y=0.0f);WestRegion1End=(X=0.25f,Y=0.333f);WestRegion2Start=(X=0.0f,Y=0.333f);WestRegion2End=(X=0.25f,Y=0.666f);WestRegion3Start=(X=0.0f,Y=0.666f);WestRegion3End=(X=0.25f,Y=1.0f)
In your custom command line, adjust the map setting to use PGARK.
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 save data 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 save data. In other words, to try out a new PGTerrainPropertiesString configuration, you either would need to delete your PGMapName's save data, or use a different PGMapName.