dimensions: Array of JSON objects that each describe ore spawns for that dimension

dimension: Which dimension you want the following ores to spawn in. If you set the dimension to + instead of a specific number, then the ore settings will apply to all dimensions not already covered by this config file.

ores: An array of ore spawn objects

blockID: This is the identifier for the block, in the format of mod-ID:block-name where mod-ID is the ID of the mod (minecraft is the ID for vanilla minecraft blocks) and the block-name is the name of a block. Basically, the blockID is the text that you would use in the the /give command,

size: This is the number of ore blocks per deposit.

variation: This is how much to randomly vary the number of blocks when spawning an ore deposit.

frequency: This is the maximum number of deposits to spawn per chunk. If this number is less than one, then this is the fraction of chunks that have a spawn deposit in it (e.g. "frequency":0.1 will cause 1 ore deposite per every 10 chunks). Note that if you set the maxHeight to a number greator than 64, then the actualy number of ore deposits per chunk will be fewer than the frequency value because some of the deposits will have spawned in the air above ground.

minHeight: This is the lowest Y-coordinate that the ore is allowed to spawn at.

maxHeight: This is the highest Y-coordinate that the ore is allowed to spawn at.

biomes: (optional) Array of biomes (by name) where this ore is allowed to spawn. You can specify an empty array [] or simply leave off this variable if you want the ore to spawn in all biomes.

Here's what the default Minecraft ore spawning behavior looks like as an ore-spawn JSON:

Note that if you want to use orespawn .json config files to spawn ores from other mods or vanilla Minecraft, you need to disable ore spawning for the other mod in question or the ores will be generated twice (vanilla Minecraft ore generation can be disabled by setting the config option disable_standard_ore_generation=true).