Quick Nav


Back To Top

Overview

CondensedOres allows you to change the relative size, shape, and placement of ore veins, and configure various generation patterns.

The name "condensed" ores is based on what I originally intended it for - larger, rarer veins, ie condensing ore generation, but it can be used for a multitude of other purposes, ranging from just adding a few extra ore generation passes or types, to making slight modifications to default generation, to completely overhauling it with massively custom parameters.

Note that CondensedOres does not automatically disable most mods from generating their ore; you will need to disable that in their respective configs first. My mods, lacking such configs, can communicate with CondensedOres.

Configuration

Though there are some global config options using the normal mod config system, CondensedOres primarily uses the LuaBlock system used for many of my mods where more complex configuration is required. A group of these parameters is here called a "prototype", defining a value for each controllable parameter. There is a 'base' prototype which does not map to any spawned ore type but which all user-defined prototypes inherit from, allowing for simple specification of default properties. You can then define your own prototypes to create actual spawning groups.

To define rule sets, or edit the global one, see the files in the Reika/CondensedOres_Files folder in the standard config folder. Add new files here to define your prototypes, and edit base.lua if you wish to change the base values. Any files ending in .lua, .txt, .ini, .cfg, or .yml (all formatted like the above) will be read and parsed into ore prototypes. The mod also contains a sample file in the jar ("example.lua") to show the general format and various parameters - with detailed explanation - that can be customized as they might appear in a real file, along with many more example values than can be shown here.

Much like with Minetweaker, prototypes can be reloaded at will with the command /reloadoreconfig.

Control Parameters

Prototype Description

Each property on the prototype defines some corresponding property on the ore generation entry you wish to create ingame, such as the height limit, what blocks can be spawned in, or the generation chance per chunk. Some properties - such as the height or biome restrictions - are mapped not to single values but groups of values; these can often be partially specified, with "missing" parameters again inherited from base.

Some properties are not inheritable, including the block list - which is naturally going to change with each ore type anyway - as well as the actual value of things like the biome ID in a biome restriction.

Sample Prototype

A sample prototype may look like this:
{
type = "base"
sprinkleMix = true
veinSize = 6
blocks = {
"somemodore:2"
"othermodore"
}
heightRule = {
maxHeight = 48
minHeight = 16
}
veinFrequency = {
chunkGenChance = 1
veinsPerChunk = 3
}
}

This prototype will inherit some values - such as the empty biome restrictions and the spawn block of vanilla stone - from the base definition included with CondensedOres, while overriding the specified values, such as changing the spawning Y range from 0-64 to 16-48.

Property List

This is the full set of properties you can configure; the defaults listed are the defaults the global ruleset generates with in a new mod installation, and are the values used in vanilla (or simply 1.0 for multipliers).
Definition KeyDescriptionDefault ValueMin ValueMax Value
sortOrderEntry sorting order0
retrogenEnable retrogenfalse
sprinkleMixEnable sprinkle mixingfalse
veinSizeVein axial length (not block count)100Any
blocksOre block list
blockSetOre block weights (ALTERNATIVE TO blocks)
heightRuleY-level spawning pattern
maxHeightMaximum Y level64minHeight255
minHeightMinimum Y level00maxHeight
variationHeight distribution pattern"linear"
veinShapeWhat shape the ore veins take
shapeWhich shape prefab (see below)VANILLA
<Other>Other properties depending on shape (see below)
veinFrequencySpawn frequency rules
chunkGenChanceChance (out of 1) to attempt generation per chunk1.00.01.0
veinsPerChunkNumber of generation attempts per chunk if the above test suceeds80Any
spawnBlockBlocks to spawn in (list)
biomeRulesBiome restrictions
combinationRule combination"or"
dimensionRulesDimension restrictions
combinationRule combination"or"
proximityRulesAdjacent block requirements
strictRequire strict proximityfalse

Property Details

Blocks

Every definition requires - and cannot inherit - a definition for which blocks it can select. The default format is a list-type entry blocks, which is just a list of all available options. If you wish to make certain blocks more common relative to others, you can instead specify a blockSet block, using the following format:
{
...
blockSet = {
"minecraft:ore_block" = 10.5
"modname:its_ore" = 1.3
"overpoweredmod:thing_ore" = 22.1
}
...
}

This will load the ore blocks into a WeightedRandom where each block is assigned the specified weight.

Sprinkle Mix

By default, if you define multiple blocks for an ore prototype, each vein will be assigned one at random, and that block will be used to generate the entire vein. Sprinkle mix overrides this behavior, choosing blocks randomly on a per-block basis, causing the vein to consist of a random mix of all its block types. This will negate things like veinminer, and may result in markedly increased inventory load.

Vein Shape

CondensedOres supports several ore vein shape prefabs. The default, which will be chosen if no shape block is specified, is 'Vanilla', which uses the "ore plops" generator that vanilla and almost all mods use. For small veins, this results in boxy veins (think vanilla iron, gold, or diamond ore), and large veins become roughly elliptical, as seen in the header image.

The "Tendril" vein shape is much longer, thinner, and often twisted, resulting in a similar overall size to the vanilla generation but in a shape that is typically more reminiscent of real ore veins.
Tendril veins visualized with metal blocks and sprinkle mix enabled.

The "Star" vein shape is entirely different from vanilla, consisting of a radiating set of spikes from a central dense cluster. This shape can optionally have a special block inside the core of the cluster, which is specified with an specialBlock option on the veinShape block, using the same "specify an item" format as used elsewhere in the ore definitions.
Star veins visualized with metal blocks.

Removing these metal blocks exposes the special-block core of redstone blocks.

The "Noise" vein shape is not really a vein at all, and in fact if chosen will nullify the veinFrequency and veinSize parameters, as well as the height parameters except for minimum and maximum Y levels. Noise-based generation uses a 3D simplex noise algorithm (the same as used in a great deal of other worldgen code, including most of ChromatiCraft), and values in the approximate middle of the noise field magnitude (ie absolute magnitude < some threshold) will become ore if the placement conditions are met. This type requires an additional property threshold, which ranges from 0 to 1, corresponding to no and solid ore respectively. Recommended values are around 0.015 to 0.25.
Noise generation, at thresholds 0.2 and 0.05.

Height Pattern

The default height pattern, and that which is used in vanilla and almost all mods is "linear", which may be better termed "flat", where each Y level in the valid range is equally likely to be chosen when performing generation. Alternative options include "normal", for a normal distribution, and "pyramid", for a triangular distribution. Both of these options will make the middle value the most common, with an ore type increasingly less likely to appear at the extremes of its spawning range.

Biome And Dimension Rules

Biome rules can be specified in multiple ways, using the biome name, ID, or a Forge BiomeDictionary tag. For single-biome rules, define either an ID specification with biomeID, or a name with biomeName. The type property - not to be confused with the same-name property on the overall prototype - defines what the rule is, ie whether it is a requirement (include), exclusion (exclude), or Forge biome dictionary require/exclude (dictionary-require and dictionary-exclude respectively).

The following is a sample biome rule, which will only be able to spawn in Forge-tagged forest-type biomes, with the specific exclusion of Rainbow Forest:
biomeRules = {
combination = "and"
{
type = "dictionary-require"
name = "forest"
}
{
type = "exclude"
biomeName = "Rainbow Forest"
}
}

Dimension rules work similarly, but have only two types - whitelist and blacklist - and the only useful value is a numeric dimensionID property.

Restriction Combination

For biome and dimension restrictions, you can define multiple criteria, and as such you will also need to define whether these criteria are meant to be used in an "AND" or an "OR" combination, ie whether spawning requires that all or any be satisfied.

Proximity Rule

Proximity rules define a block that an ore type must be adjacent to, for example an ore that can only spawn near lava (as RailCraft sulfur does). "Strict" mode forces every ore block to be near the required block type, which can markedly reduce the amount of that ore which actually generates; non-strict mode simply requires that the vein touch the required block type at some point.

Configuration Settings

This mod contains several config options to modify values and behaviors - such as for balance or server safety concerns, or simply personal taste - to your preferences. Note that several settings may have bounds imposed on their values, either logically or explicitly; these can usually be seen in the actual settings files or ingame. These are listed in order found in the source code, which is generally the order in which they were added; They may be present in a different order ingame or in the configuration files.
The settings for the mod, when installed, can be found in the 'config/Reika' subfolder of the MC instance.

Global Frequency Multiplier

Type: float
Current Default Value:
1F

Global Size Multiplier

Type: float
Current Default Value:
1F

Prevent Vanilla Ore Generation

Type: boolean
Current Default Value:
true

Source Code

The source code for CondensedOres can be found here:GitHub

Downloads

Via CurseForge