ποΈ Terralith
Overviewβ
Terralith is a datapack that expands overworld terrain and biome generation. Oraxen does not integrate with Terralith automatically, but you can still add custom ores and blocks by editing Terralith's datapack files.
This setup is fully manual. Make a backup of the datapack before editing it, and apply your changes before generating the world.
Requirementsβ
Terralith extracted and ready to edit.
Your Oraxen custom block already configured.
Basic JSON editing knowledge.
Access to /oraxen blockinfo ingame.
Exampleβ
Get the Oraxen block dataβ
Use /oraxen blockinfo <itemid> on the block you want to generate.
/oraxen blockinfo deepslate_valorite_ore
For noteblock-based blocks, Terralith needs the block-state values returned by that command, especially instrument and note.
Write those values down exactly as shown. You will use them in the configured feature file.
Create the configured featureβ
Go to Terralith/data/terralith/worldgen/configured_feature and create a new file such as valorite_ore.json.
{
"type": "minecraft:ore",
"config": {
"discard_chance_on_air_exposure": 0.0,
"size": 8,
"targets": [
{
"state": {
"Name": "minecraft:note_block",
"Properties": {
"instrument": "basedrum",
"note": "6",
"powered": "false"
}
},
"target": {
"predicate_type": "minecraft:tag_match",
"tag": "minecraft:deepslate_ore_replaceables"
}
}
]
}
}
size controls the vein size.
instrument and note must match /oraxen blockinfo.
tag decides which vanilla blocks can be replaced.
Create the placed featureβ
Go to Terralith/data/terralith/worldgen/placed_feature and create a file with the same name.
{
"feature": "terralith:valorite_ore",
"placement": [
{
"type": "minecraft:count",
"count": 4
},
{
"type": "minecraft:in_square"
},
{
"type": "minecraft:height_range",
"height": {
"type": "minecraft:uniform",
"min_inclusive": { "absolute": -64 },
"max_inclusive": { "absolute": -5 }
}
},
{
"type": "minecraft:biome"
}
]
}
feature must match your configured feature ID.
count controls how many veins attempt to spawn per chunk.
min_inclusive and max_inclusive define the Y-level range.
Add the feature to Terralith biomesβ
Go to Terralith/data/terralith/worldgen/biome and edit each biome where the ore should generate.
Add your placed feature to the seventh features array.
{
"features": [
[],
[],
[],
[],
[],
[],
[
"terralith:valorite_ore"
]
]
}
If you are editing many biome files, using a workspace editor such as VS Code makes bulk changes much easier.
Repack and use the datapackβ
Zip the modified datapack again, place it in world/datapacks, and generate a new world or new chunks.
Troubleshootingβ
Ore not spawning - Re-check the instrument and note values from /oraxen blockinfo.
Wrong blocks replaced - Verify the replacement tag such as minecraft:stone_ore_replaceables or minecraft:deepslate_ore_replaceables.
Datapack fails to load - Validate the edited JSON files and confirm the feature IDs match across both files.
Notesβ
Datapacks only affect newly generated chunks. Existing terrain will not update automatically.
This same workflow can also be adapted for non-ore blocks by changing the feature type and placement rules.