<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/banner.png" alt="Material Nexus"></p>
<h3>One copper ingot, not five.</h3>
<p>A big modpack ends up with the same material made by every mod: five copper ingots, three tin plates, a dozen recipes that disagree about them. Material Nexus finds every one of them, lets you decide which item is kept, then cleans the tags, rewrites the recipes and converts the items for you. Nothing changes until you have seen the preview and pressed Apply.</p>
<p><strong>Start here:</strong> open a singleplayer world with cheats allowed and run <strong><code>/materials</code></strong>, or right click with the <strong>Nexus Terminal</strong> (creative <em>Tools & Utilities</em> tab, with "Operator Items" on). It needs operator rights (permission level 2).</p>
<p><a href="https://github.com/DrimoZ/MaterialNexus/wiki" target="_blank" rel="nofollow">Wiki</a> · <a href="https://github.com/DrimoZ/MaterialNexus/wiki/Getting-Started" target="_blank" rel="nofollow">Getting Started</a> · <a href="https://github.com/DrimoZ/MaterialNexus/wiki/Commands-and-Permissions" target="_blank" rel="nofollow">Commands</a> · <a href="https://github.com/DrimoZ/MaterialNexus/issues" target="_blank" rel="nofollow">Report a bug</a></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_home.png" alt="Overview"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_find.png" alt="Finds the duplicates"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_matrix.png" alt="Every material and form"></p>
<ul>
<li><strong>Every form of every material</strong>, read from the convention tags (<code>c:ingots/copper</code>, <code>c:plates/tin</code>…) and from item names for the forms mods leave untagged: double ingots, wires, large plates.</li>
<li><strong>Variants are left alone, not merged</strong>: an item that only shares a tag (a yellow amethyst, a plastic plate tagged as plates) is recognised by its name and left alone, with the word that gave it away.</li>
<li><strong>The whole pack as a grid</strong>: materials against forms, what is to decide, unified or single.</li>
</ul>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_choose.png" alt="You choose"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_material.png" alt="One material"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_inspector.png" alt="Every item, with its reasons"></p>
<ul>
<li><strong>Click the item to keep, or use its card</strong>: every item with its mod, how many recipes make and use it, and why it is suggested or left alone. Every action is a button, never a hidden gesture.</li>
<li><strong>Sort with the keyboard</strong>: every open duplicate, one at a time, 1-9 to keep, shift for "not the same item".</li>
<li><strong>Or rank the mods once</strong>: the first mod in the list wins every duplicate you have not decided.</li>
</ul>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_triage.png" alt="Sort duplicates"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_priority.png" alt="Mod priority"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_preview.png" alt="Review, then apply"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_preview.png" alt="Review and apply"></p>
<ul>
<li><strong>Every change listed first</strong>: tags cleaned, items converted, recipes rewritten or disabled, recipes not handled yet.</li>
<li><strong>Apply writes one generated datapack</strong> and reloads: the alternatives leave the material's tag, recipes that make or use them are rewritten to the kept item (a rewrite that duplicates another recipe is disabled instead), and items already in the world become the kept one when the game touches them (dropped, in an opened container, at login). Nothing scans the world.</li>
<li><strong>Tags fixed on request</strong>: an item a mod forgot to tag gets its convention tag, and any item can be put in or taken out of a form's tag, so recipes asking for the tag accept the right items.</li>
<li><strong>Recipes it cannot rewrite are named</strong>, never guessed: add a one-file recipe format and they are.</li>
<li><strong>Recipes of many mods</strong> are rewritten from data: Create and its addons, Mekanism, Immersive Engineering, Modern Industrialization, Oritech, Occultism, Silent Gear and more.</li>
<li><strong>Recipes drawn by JEI or EMI</strong> inside the screen, grouped by what applying does to them; hover a recipe or a machine route to see it.</li>
</ul>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_recipes.png" alt="Recipes"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_process.png" alt="Fills the gaps"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_process.png" alt="Process rules"></p>
<ul>
<li><strong>Process rules</strong> say how a form is made for every material: an ingot gives two rods in the metal press, nine ingots make a block. Missing machine recipes are written by copying one the pack already has, and checked by the game before they are kept.</li>
<li><strong>Missing forms can be created</strong>: a netherite rod, a tin gear. The new item takes the material's colour. <em>(Items by <a href="https://www.curseforge.com/members/koynax_/projects" target="_blank" rel="nofollow">Koynax_</a>)</em></li>
</ul>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/items_created.png" alt="Items it can create"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_control.png" alt="Always reversible"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_pending.png" alt="Your changes"></p>
<ul>
<li><strong>Discard</strong> any change not applied yet, a whole material, or everything.</li>
<li><strong>Back to default</strong>: one saved choice, a material, or the whole pack.</li>
<li><strong>Revert the last apply</strong>, or restore any of the last 20 applied states from the history.</li>
<li><strong>Presets</strong> for the usual setups (vanilla first, tech pack…), shown next to your settings.</li>
</ul>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_presets.png" alt="Presets"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/header_data.png" alt="For pack makers"></p>
<p><img src="https://raw.githubusercontent.com/DrimoZ/MaterialNexus/main/docs/store-art/screen_data.png" alt="Rule files"></p>
<p>Everything is files in <code>config/materialnexus/</code>, made to ship with the pack; the <a href="https://github.com/DrimoZ/MaterialNexus/wiki" target="_blank" rel="nofollow">wiki</a> documents every field. The rules themselves (which tags and names make a form, how a mod's recipes store their items, process templates, presets) are datapack data, editable in game in Rule files. <code>/materials report</code> writes a full analysis. KubeJS scripts get a read-only <code>MaterialNexus</code> binding to ask which item is kept, and a pack that already unifies with scripts sees what they decided, offered as the same choices, with the script lines to delete once applied.</p>
<h3>Compatibility</h3>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Loader</td>
<td>NeoForge</td>
</tr>
<tr>
<td><a href="https://www.curseforge.com/minecraft/mc-mods/jei" target="_blank" rel="nofollow">JEI</a> <em>(optional)</em></td>
<td>alternatives hidden once unified</td>
</tr>
<tr>
<td><a href="https://www.curseforge.com/minecraft/mc-mods/emi" target="_blank" rel="nofollow">EMI</a> <em>(optional)</em></td>
<td>alternatives hidden once unified</td>
</tr>
<tr>
<td><a href="https://www.curseforge.com/minecraft/mc-mods/almost-unified" target="_blank" rel="nofollow">Almost Unified</a> <em>(optional)</em></td>
<td>each job (tags, recipes, hiding) left to it unless you give it to Material Nexus: never done twice</td>
</tr>
<tr>
<td><a href="https://www.curseforge.com/minecraft/mc-mods/kubejs" target="_blank" rel="nofollow">KubeJS</a> <em>(optional)</em></td>
<td>a read-only <code>MaterialNexus</code> binding; what scripts already unify is offered as choices; scripts keep the last word</td>
</tr>
</tbody>
</table>
<p>Needed on the server, and on clients for the screen, the tooltips and created items.</p>
<h3>FAQ</h3>
<p><strong>Does it change my pack on its own?</strong> No. Nothing is unified until you choose and press Apply, after the preview.</p>
<p><strong>Can I undo?</strong> Yes: discard what is not applied yet, put choices back to default, revert the last apply, or restore an earlier state from the history.</p>
<p><strong>Multiplayer?</strong> Decide in singleplayer or LAN, then ship <code>config/materialnexus/</code> with the pack. On a dedicated server the screen is read-only. If you created items, every client needs the same <code>items.json</code>.</p>
<p><strong>Is it like Almost Unified?</strong> Both unify. Material Nexus is built around a screen and a preview: you see every duplicate, every variant left alone and every recipe it would change before anything happens, and you can undo anything. It also writes missing machine recipes and creates missing items. The two can run together, each doing its own part.</p>
<p><strong>Fabric?</strong> No.</p>
<p><strong>Can I put it in my modpack?</strong> Yes. No need to ask.</p>
<h3>Permissions</h3>
<p><strong>Modpacks: yes.</strong> No permission needed, no message required, public or private, monetised or not, on any platform or launcher.</p>
<p><strong>Credit</strong> is appreciated and never required.</p>
<p><strong>Forks and addons: yes</strong>, under the MIT terms. Please do not publish a fork under the name <em>Material Nexus</em>: the name is not covered by the licence.</p>
<p><strong>Assets</strong> (textures, logo) are the one exception: redistribute them with the mod freely, but do not lift them into another project.</p>
<h3>Links</h3>
<p><a href="https://github.com/DrimoZ/MaterialNexus/wiki" target="_blank" rel="nofollow">Wiki</a> · <a href="https://github.com/DrimoZ/MaterialNexus" target="_blank" rel="nofollow">Source</a> · <a href="https://github.com/DrimoZ/MaterialNexus/issues" target="_blank" rel="nofollow">Report a bug</a></p>