Overview#
UniDict is an essential unification mod designed for large-scale modpacks. In modded Minecraft, multiple mods often add the same resources, such as Copper, Tin, Silver, and Lead. This results in a fragmented inventory where items from different mods do not stack, despite being functionally identical.
While manual unification can be achieved through tools like CraftTweaker, the sheer volume of machines and resources makes manual configuration tedious and prone to error. UniDict solves this issue automatically by standardizing the output of all recipes it has integration with. This includes not only standard Crafting Table recipes but also complex machine outputs from major tech and magic mods. By enforcing a 'preferred mod' system, UniDict ensures that every time you process an ore or craft a component, you receive the version of the item that matches your modpack's configuration.
Core Mechanics#
UniDict operates by scanning the Ore Dictionary (OreDict) and identifying items that share the same name (e.g., ingotCopper). It then selects one specific mod's version of that item as the 'Primary' or 'Preferred' output. All recipes that would normally produce a different version of that item are redirected to produce the preferred version instead.
The Priority System
The heart of UniDict is the Priority List. Users define a list of mod IDs in the configuration file. UniDict will look at this list from top to bottom; the first mod on the list that provides a specific OreDict entry will become the owner of that entry's output.
Recipe Unification
UniDict modifies the following recipe types to ensure consistency:
- Crafting Table: Standard 2x2 and 3x3 recipes.
- Furnace: Smelting recipes that result in unified resources.
- Machine Outputs: Processing recipes in crushers, grinders, and pulverizers.
- Hidden Items: Optionally, UniDict can hide non-preferred versions of items from JEI (Just Enough Items) to reduce clutter.
Mod Integrations#
UniDict features built-in integration modules for a wide variety of popular mods. This allows it to hook into specific machine registries that do not use standard Minecraft recipe handlers.
| Mod Name | Integration Type | Description |
|---|---|---|
| AbyssalCraft | Machine | Unifies Crystallizer and Transmutator outputs. |
| Applied Energistics 2 | Machine | Unifies Grinder recipes. |
| Blood Magic | Alchemy Table | Standardizes outputs for alchemical reactions. |
| Embers | Machine | Unifies Stamper and Melter outputs. |
| Forestry | Machine | Unifies Carpenter and Thermionic Fabricator recipes. |
| Immersive Engineering | Machine | Unifies Crusher and Arc Furnace outputs. |
| Industrial Foregoing | Machine | Unifies Laser Drill and Fluid Extractor outputs. |
| Magneticraft | Machine | Unifies Sieve and Grinder outputs. |
| Mekanism | Machine | Unifies Crusher, Energized Smelter, and Enrichment Chamber. |
| TechReborn | Machine | Unifies Grinder, Industrial Grinder, and Alloy Smelter. |
| Thermal Expansion | Machine | Unifies Pulverizer, Induction Smelter, and Compactor. |
Configuration#
The configuration file (unidict.cfg) is highly detailed, allowing modpack creators to fine-tune exactly how unification behaves.
General Settings
- autoHideItems: If set to true, UniDict will attempt to hide all non-preferred items from JEI.
- keepDefaultRecipe: Determines if the original recipe should be kept if the unification process fails for a specific entry.
Mod Priority List
This is a comma-separated list of mod IDs. For example:
S:priorityModList < thermalexpansion, immersiveengineering, mekanism >
In this scenario, Thermal Expansion items will always be the first choice for outputs. If Thermal Expansion doesn't have a specific item (like Aluminum), UniDict will check Immersive Engineering next.
Integration Toggles
Each supported mod has a boolean toggle (true/false) in the config. This allows you to disable UniDict's interference with specific mods if you prefer their native behavior.
CraftTweaker Support#
UniDict provides a dedicated API for CraftTweaker, allowing script writers to manually interact with the unification engine. This is useful for custom items that may not follow standard OreDict naming conventions.
Available Methods:
mods.unidict.api.Unidict.addUnificationEntry(IItemStack stack, String name);- Manually adds an item to a specific unification group.
mods.unidict.api.Unidict.removeUnificationEntry(String name);- Removes an OreDict name from UniDict's processing list.
mods.unidict.api.Unidict.getPreferredItem(String oreName);- Returns the IItemStack that UniDict has chosen as the preferred output for that OreDict entry.
Commands#
UniDict includes several administrative commands to help debug unification issues within a live game environment.
/unidict dump: Generates a text file in thedumpsfolder containing all Ore Dictionary entries and their current unified status./unidict reload: Reloads the UniDict configuration file without requiring a game restart (Note: Some machine integrations may still require a restart to reflect changes)./unidict info <item>: Displays the OreDict names associated with the item currently held in the player's hand.
F.A.Q.#
Q: Why are my ingots still not stacking? A: Ensure that the items were produced after UniDict was installed. UniDict does not automatically convert items already sitting in your chests; it only changes the output of recipes. You can usually fix existing items by crafting them into blocks and back into ingots.
Q: Does UniDict add any new ores to the world? A: No. UniDict is a utility mod that manages existing items. It does not handle world generation or add new blocks/mobs to the game.
Q: Can I use UniDict to unify custom items from my own mod? A: Yes, as long as your items are registered in the Ore Dictionary, UniDict will recognize them and can unify them based on your priority settings.