Overview#
Ore Tweaker is a lightweight yet comprehensive tool designed for modpack developers and players who want total control over the underground world generation in Minecraft. It provides the ability to modify the spawn rates, vein sizes, and height limits of any ore—whether from vanilla Minecraft or other mods.

The mod is specifically designed for modern versions of Minecraft (1.16.5 through 1.18.2), utilizing a data-driven approach where every ore's generation rules are defined in individual JSON files. This allows for easy sharing, updating, and fine-tuning of world generation without needing to write complex code.
Features#
Ore Tweaker offers a robust set of features for world-gen customization:
- Total Ore Control: Disable vanilla ore generation entirely or tweak existing ores to be more or less common.
- Custom Ore Creation: Turn any block (including modded blocks) into an "ore" that generates naturally in the world.
- Height Mapping: Define specific Y-levels for ore generation, fully supporting the expanded world height in 1.18+.
- Biome Filtering: Use whitelists or blacklists to restrict ores to specific biomes or biome categories (e.g., only in Mountains or Oceans).
- Dimension Support: Configure ores to generate in the Overworld, Nether, End, or any custom modded dimension.
- Template System: Automatically generates template files for all detected ores, making it easy to start tweaking immediately.
Configuration Guide#
Ore Tweaker uses a decentralized configuration system. Instead of one massive file, it reads multiple JSON files located in a specific data folder.
File Location
All configuration files are stored in your Minecraft instance folder under:
../config/oretweaker/data/
Upon first launch, the mod will populate this folder with template JSON files for vanilla ores. You can create new .json files in this folder to add custom generation rules for modded blocks.
JSON Structure
Each JSON file follows a specific format. Below is an example of a configuration for Diamond Ore:
{
"ore": "minecraft:diamond_ore",
"filler": "minecraft:stone",
"minY": -64,
"maxY": 16,
"maxVeinSize": 8,
"spawnRate": 7,
"placement_type": "triangle",
"biomeWhitelist": [],
"biomeBlacklist": []
}

JSON Parameter Reference#
The following table details every parameter available in the Ore Tweaker JSON files:
| Parameter | Type | Description |
|---|---|---|
ore |
String | The registry name of the block to generate (e.g., minecraft:iron_ore). |
filler |
String | The block that the ore replaces during generation (usually minecraft:stone or minecraft:deepslate). |
minY |
Integer | The minimum Y-level (height) where the ore can spawn. |
maxY |
Integer | The maximum Y-level (height) where the ore can spawn. |
maxVeinSize |
Integer | The maximum number of ore blocks in a single vein. |
spawnRate |
Float | The number of attempts the game makes to spawn a vein in each chunk. |
placement_type |
String | (1.18+ only) Determines the distribution pattern: uniform or triangle. |
biomeWhitelist |
List | A list of biome IDs or Forge BiomeDictionary tags where the ore is allowed to spawn. |
biomeBlacklist |
List | A list of biome IDs or Forge BiomeDictionary tags where the ore is forbidden from spawning. |
Distribution Types (1.18+)#
In Ore Tweaker 3 (Minecraft and higher), the mod supports the new vanilla distribution mechanics. You must specify a placement_type to define how ores are spread across the Y-levels.
Uniform Distribution
Ores have an equal chance of spawning at any height between minY and maxY. This is the classic distribution style used in older versions of Minecraft.
Triangle (Trapezoid) Distribution
Ores are most common at the center of the minY and maxY range, with the spawn frequency tapering off as you move toward the edges. This is used in vanilla 1.18 for ores like Diamond and Lapis Lazuli to create "sweet spots" for mining.
Biome & Dimension Filtering#
Ore Tweaker supports advanced filtering to make world generation more dynamic.
Biome Dictionary Support
You can use specific biome names (e.g., minecraft:plains) or Forge BiomeDictionary tags. Using tags allows you to target groups of biomes across different mods simultaneously. Common tags include:
HOTCOLDWETDRYMOUNTAIN- "OCEAN"
Dimension Control
To restrict an ore to a specific dimension, ensure the filler block is native to that dimension. For example, to generate an ore in the Nether, set the filler to minecraft:netherrack. To generate in the End, set it to minecraft:end_stone.
Mechanics: Disabling Ores#
To disable an ore, you have two primary methods depending on the version:
- Spawn Rate Method: Open the JSON file for the specific ore and set the
spawnRateto0. This prevents the mod from attempting to generate any veins. - Disable Flag: In some versions, a specific
"disable": trueflag can be added to the JSON to completely bypass the generation logic for that entry.
Note: If you are trying to override vanilla generation with your own custom rules, you must first ensure the vanilla generation is disabled or set to your new values, otherwise both may generate simultaneously.
Commands & Debugging#
Ore Tweaker includes commands to help manage configurations without restarting the game in certain versions.
/oretweaker reload: Reloads the JSON configuration files from the disk. (Note: Due to Minecraft's internal engine changes, some 1.17+ versions may require a full game restart for world-gen changes to take effect).
Recommended Debugging Tool: World Stripper
For the best experience when testing your ore distributions, it is highly recommended to use the World Stripper mod. This utility allows you to instantly remove common terrain blocks (like Stone, Dirt, and Grass) to visualize the underground ore veins and verify that your spawnRate and minY/maxY settings are working as intended.