Tags
Creators
Details
1.2.0
Compatibility
Changes
Elementarium — Changelog
1.2.0 (2026-08-31) — NeoForge 1.21.1
The "Kinds of Ore" update: real minerals, real chemistry, world generation and the mod's first machine.
⚠️ Breaking: renamed to elementarium
Before the first public release the mod id was renamed from ptmaterials to elementarium — item/block ids, tags, the config folder (config/elementarium/) and the KubeJS binding (now the global Elementarium) all follow. Worlds and scripts from the old dev id will not carry over. The Forge 1.20.1 line keeps the old ptmaterials id.
Kinds of Ore
- 67 real minerals covering 62 elements, one primary mineral per element, curated with geological coherence:
- Stone — common crustal minerals (bauxite, halite, fluorite, cassiterite, calcite…)
- Deepslate — deep/dense (chromite, native silver, sperrylite, uraninite, thorianite…)
- Nether — the sulfur family only (native sulfur, cinnabar, stibnite, molybdenite, rheniite…)
- End — exotic/rare on Earth (wolframite, tantalite, rare earths, platinum-group alloys…)
- Real chemical composition on every mineral: true formula in the tooltip (Cu₂CO₃(OH)₂…), element-by-element composition in the dataset, and
elementarium:contains/<element>tags for every component — groundwork for byproduct processing. - Ore blocks with baked textures: one overlay (11 styles) composited over the host rock and tinted per mineral at load time — no color handlers, no z-fighting.
- Raw minerals (3 tintable styles) with vanilla-style loot: silk touch drops the block, Fortune multiplies drops; per-mineral mining tiers.
- Ores may instead drop themselves (
drop: "self"), becoming the smelting input directly. - Smelting + blasting of every raw/ore into its primary element (ingot, or dust as fallback).
- World generation for every mineral: configured/placed features + biome modifiers generated at runtime, with per-mineral vein size, count, height range and distribution — tuned coherently (evaporites near the surface, pegmatites deep and small, PGMs rarest of all).
- Naming modes:
real(Malachite Ore) orsimple(Copper Ore), plus optional vanilla renames (Iron Ore → Magnetite Ore, display-only). Iron/copper/gold/coal/lapis ship as rename-only entries — vanilla is never duplicated. - Custom ores in JSON (
config/elementarium/minerals/) or KubeJS (Elementarium.createOre(...)) with the full field set — style, composition, drop mode, variants, tier, worldgen. Templates seeded tominerals/examples/. - Full
c:tag coverage (c:ores/<element|mineral>,c:raw_materials/..., umbrellas) and recipe-unifier integration. - New creative tab "Elementarium - Ores".
- The whole feature is switchable: master toggle, per-mineral disable, per-variant disable, worldgen on/off globally or per mineral, recipe toggle, vein parameter overrides — all in
config.json.
Mineral Analyzer
- The mod's single machine — a multiblock, not craftable: stack a Multiblock Casing + Lift Post and assemble with the Navaronee CoreLib Screw Gun; breaking it returns the blocks.
- Analyzes any ore block from any mod: reads the instance's actual worldgen registries and reports dimensions, real Y range and vein density — no hardcoded ore list.
- Shows the chemical formula for Elementarium minerals, plus a pack-creator description from
config/elementarium/descriptions.json(per block id or tag). - Powered by Forge Energy (capacity/cost/duration configurable; cost
0= free for packs without energy mods). Cables connect to either half of the machine. - Custom Blockbench model and GUI.
Other
- Navaronee CoreLib is now a required dependency (multiblock kit + recipe-load hook).
- New config sections
oresandanalyzerinconfig/elementarium/config.json, self-documented. - Slimmed the internal
TintedIteminterface; assorted cleanup from the rename.
1.1.0 (2026-08-28) — NeoForge 1.21.1 port
First release on NeoForge 1.21.1 (previous line: Forge 1.20.1, now frozen).
- Ported to NeoForge 21.1.248 / Java 21 / ModDevGradle; KubeJS 2101.x, JEI 19.x; Architectury no longer needed.
- Convention tags moved from
forge:toc:everywhere (generator, unifier, JEI hiding). - 1.21 data formats: singular data folders (
recipe/,loot_table/,advancement/), item-stack recipe results ({"id": ..., "count": n}), pack formats 34/48, newPackResourcesAPI for the runtime-generated packs. - Fluids on the new client API (
RegisterClientExtensionsEvent,neoforge:fluid_containerbuckets). - Fixed 1.21.1 item tinting (colors must carry full alpha) — preemptively, mod-wide.
- Periodic table screen rebuilt on the 1.21 GUI APIs (sprites, nine-slice, tick events).
- Machine-recipe unification generalized: the unifier now walks arbitrary recipe JSON by context (inputs/outputs inherited down the tree), covering machine recipes generically — validated against Mekanism, Immersive Engineering and Create; configurable extra keys, ignored types and debug logging.
- Consumes Navaronee CoreLib 2.1.0 as a sibling jar.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:bDVe4XwU:HlpbKPU2"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bDVe4XwU:HlpbKPU2"
}

