The StandardGen algorithm is closely based on the ore generation algorithm used by vanilla minecraft. It has been modified to to support the special features offered by COG but is still fairly limited compared to the Cloud and Veins algorithms. Most players are comfortable with StandardGen, though, and it allows for faithful reproduction of the vanilla distributions when necessary.
The StandardGen algorithm spawns roughly elliptical "clusters" in each chunk. The horizontal position of each cluster is random and the vertical position is determined by the Height setting. The Size setting controls (very roughly) how many blocks each cluster contains.
The <StandardGen> element creates a distribution using the StandardGen algorithm. The <StandardGenPreset> element creates a non-generating distribution that can be used as a source of default settings.
The StandardGen algorithm may have the following attributes:
|name||procedurally generated||A name used to identify the distribution. This is used by other distributions to inherit default parameter values, for log messages, and for debugging console commands. It is recommended (but not required) that distribution names be unique and contain no whitespace.|
|seed||unique value based on order in config file||A seed modifier for random numbers generated by this distribution. If two distributions have similar settings and the same seed, they will share the same geometry.|
|block||none||The blockID or internal name of the block to be placed (with weight 1.0). <OreBlock> elements can be used as well, or instead, but the block attribute is often shorter and easier to read.|
|inherits||hard-coded defaults||Another StandardGen distribution from which to inherit all default parameter values except the name and seed.|
|drawWireframe*||false||Whether or not to draw a wireframe model around the distribution.|
|wireframeColor*||0xFF169E09||The color of the debugging wireframe, if one is drawn. The format is ARGB, "packed" into an integer so that the highest byte is the alpha component and the lowest byte is the blue component.|
|drawBoundBox*||false||Whether or not to draw bounding boxes for the distribution.|
|boundBoxColor*||0x80000000||The color of the bound boxes, if they are drawn. The format is the same as for wireframeColor above.|
The StandardGen distribution may have the following settings:
||The size (roughly, the number of individual blocks) of each cluster.|
||A.K.A. "DistributionFrequency." The number of clusters per 16x16 chunk.|
||The height of clusters in the chunk, in meters.|
||The maximum horizontal distance a cluster in this distribution may spawn from the center of the nearest cluster/motherlode/cloud of its parent distribution. Differences in height do not count - only distance in the XZ plane. If the distribution has no parent, this setting is ignored.|
<Replaces> elements can be used to change which blocks a StandardGen distribution will replace (the default is just smooth stone).
<Biome> elements can be used to customize which biomes a StandardGen distribution will spawn in (the default is all biomes).
Parents and Nesting
A <StandardGen> element may be placed inside another StandardGen, Veins, or Cloud element. The parent distribution will continue to spawn normally, but the child will only spawn near it's parent. The exact range is determined by the ParentRangeLimit setting.
<!-- A standardgen distribution named "DirtStandard" that places dirt --> <!-- All defaults are inherited from "PresetStandardGen", which must be defined somewhere above --> <StandardGen name='DirtStandard' block='dirt' inherits='PresetStandardGen'> <!-- The distribution will place 20 clusters per chunk, each containing roughly 32 dirt blocks --> <Setting name='Size' avg='32'/> <Setting name='Frequency' avg='20'/> <!-- Clusters will be scattered between heights 0 and 64 --> <Setting name='Height' avg='32' range='32'/> </StandardGen>