-
Notifications
You must be signed in to change notification settings - Fork 7
Mineralogy 6 Developer Guide
Mineralogy 6 documentation: M6 index | OreSpawn provider | Modpack guide
Mineralogy 6 owns geological content. OreSpawn 4 owns the supported world-generation integration surface.
| Mineralogy owns | OreSpawn owns |
|---|---|
| Blocks, items, fluids, and block entities | Terrain replacement and formations |
| Models, textures, language, recipes, and loot | Geomes and biome influence |
| Mining, family, and crafting tags | Ore and fluid-deposit placement |
| Registry aliases and old-save compatibility | Profiles, UI, retrogen, and templates |
| Mineralogy's provider declaration | Provider loader and public Java API |
Do not build a new worldgen integration against Mineralogy's internal classes.
Publish an OreSpawn provider or use the supported
zone.moddev.mc.orespawn.api package.
Use registry IDs and tags rather than Java fields from internal packages.
Useful public data contracts include:
-
mineralogy:rocksas block and item tags; -
mineralogy:standard_rocksas block and item tags; - the broad sedimentary, metamorphic, and igneous rock tags;
-
mineralogy:crafting_materials/<rock>for matching recipes.
Use Forge and vanilla stone or cobblestone tags when broad compatibility is intended. Keep a material-specific recipe narrow when its output must match the input rock.
A content mod should:
- register and own its blocks or fluids;
- publish a declarative OreSpawn provider;
- use stable, namespaced provider rule IDs;
- declare valid hosts, dimensions, and optional biome rules;
- let OreSpawn validate and bake the profile;
- suppress its native generator only when OreSpawn confirms takeover.
Do not put provider callbacks, registry lookups, configuration reads, or logging inside terrain or ore placement loops.
Read the OreSpawn Developer Guide and OreSpawn Java API for the current integration surface.
The reference provider is:
src/main/resources/data/mineralogy/orespawn/provider.json
When changing it:
- Keep provider-owned IDs stable.
- Increase
provider_revisionwhen new IDs or defaults should be discovered by existing worlds. - Preserve user-edited world profiles.
- Validate the JSON against the matching OreSpawn schema.
- Run provider tests and an integrated world-generation smoke.
OreSpawn's optional vanilla ore presets are not Mineralogy-owned and must not be copied into this provider.
Historical Mineralogy blocks with names that now overlap vanilla content remain registered for old saves. New terrain can use aliases to select the vanilla blocks.
Changing a registry ID requires a deliberate migration. Renaming a Java field does not migrate a block already stored in a world.
The historical aliases mineralogy:pummice and mineralogy:saprolite also
belong to the saved-world compatibility contract.
Use the Java and Forge toolchain required by that Minecraft branch. For the current public Mineralogy 6 reference branch, use Java 17 and run:
.\gradlew.bat test build javadoc --no-daemon
.\gradlew.bat genEclipseRuns eclipse --no-daemonValidation should include:
- unit and provider tests;
- JSON and language-file checks;
-
processResourcesand a complete build; - Javadocs and publication jars;
- Eclipse run generation;
- a bounded client resource smoke;
- a fresh-world generation check.
Private workspace notes and coding-agent files are not public documentation and must not be copied into the wiki.
The source guide is available in the canonical Mineralogy 6 branch.
The installed build exports its exact guide to:
config/mineralogy-guide/
Minecraft Mineralogy
Mineralogy 6
- Start here
- Player and server guide
- Rocks, geomes, and formations
- Building and crafting
- Ores, oil, and resources
- Configuration
- OreSpawn provider
- Modpack guide
- Developer guide
- World upgrades
- Troubleshooting
Legacy Mineralogy
Project links