Text version if the thread design does not render
What is Almost Unified?
The mod is inspired by the idea of UniDict. An old, no longer maintained mod from the days of 1.12.2.
Old versions of Minecraft used a system called the Ore Dictionary. Its purpose was to make the life of modders easier when adding new resources that might exist in other mods already. When used correctly, you could use resources from various mods in their recipes interchangeably. However, if you ever played a big modpack back in the days, you probably know that there were like 10 different ingots for each material because of many mods adding them.
This often resulted in a lack of storage space because all these resources from the different mods didn't stack. Additionally, some mods didn't use the dictionary correctly for their recipes so a lot of the resources were useless.
UniDict solved this issue by unifying the same resources from different mods so only one item for each resource was left and could be used for all recipes. So instead of having 10 different copper ingots, you will only have one which acts as the dominant universal copper ingot.
A lot of time has passed since 1.12.2 and the Ore Dictionary is long gone. In today's modded Minecraft, there is the tag system which acts quite similar to the Ore Dictionary. Still, they also don't solve the problem of many similar resources from different mods.
Almost Unified tries to solve this by working in a similar fashion as UniDict did. Its goal is to have one dominant resource for each configured tag and make all recipes use this dominant entry.
How does that work?
By defining a priority mod list and target tags in the config, Almost Unified tries to find a dominant item for each entry and changes the recipes depending on that.
In modern Minecraft, recipes are usually made of JSONs and are loaded when joining a world. Each loaded recipe is read by the mod and altered depending on different properties inside the JSON.
For all inputs, the unification process tries to use the designated tag so all items will remain useful which means Almost Unified should also work in existing worlds. For outputs, Almost Unified will use the dominant item.
Since the modification happens before the recipe is loaded by the game, there are no demanding processes going on while the game is running.
What features does Almost Unified have?
The mod transforms existing recipes to have a unified resource list that players and packmakers can work with. It doesn't add its own recipes, resources, ore generation or similar content.
Because there is a chance to have duplicate recipes when unifying, Almost Unified will take care of duplications and remove them. Additionally, it hides all non-dominant entries from JEI/REI automatically.
The mod is fully reloadable. Configs are loaded every time the unification process starts which means they can be edited on the fly. To restart the process, just rejoin the world or use the /reload command.
Can you give an example?
Think about having two mods (modA and modB) that both add Silver Ore. Additionally, they both add Silver Ingots and respective recipes to obtain the ingot such as blasting or smelting the ore.
If one of those recipes doesn't accept a tag as input, Almost Unify will change that. Furthermore, it will pick one of the Silver Ingots as the dominant item depending on the mod priority list inside the unify.json config. The dominant Silver Ingot will then be used as output for all recipes no matter the mod.
After the unification process, you will end up with some equal recipes. Almost Unified will merge them and change their namespace so it's visible that the recipe was changed. In the end, you will have recipes that accept tags as inputs and only the dominant item as output. Duplicate recipes are gone.
More Information
For more information like limitations, native integrations or the FAQ, check out the wiki.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- fixed unification not working with empty placeholder definitions
- fixed unification not working with empty placeholder definitions
- fixed non-Create Sequenced Assembly recipes not being unified anymore
- fixed non-Create Sequenced Assembly recipes not being unified anymore
- added support for Create Sequenced Assembly ([ATM10#3990](https://github.com/AllTheMods/ATM-10/issues/3990))
- added Polish translation ([#140](https://github.com/AlmostReliable/almostunified/pull/140))
- improved Chinese translation ([#134](https://github.com/AlmostReliable/almostunified/pull/134))
- added support for Create Sequenced Assembly ([ATM10#3990](https://github.com/AllTheMods/ATM-10/issues/3990))
- added Polish translation ([#140](https://github.com/AlmostReliable/almostunified/pull/140))
- improved Chinese translation ([#134](https://github.com/AlmostReliable/almostunified/pull/134))
- added support for Alshanex's Familiars ([#139](https://github.com/AlmostReliable/almostunified/issues/139))
- improved Chinese translation ([#134](https://github.com/AlmostReliable/almostunified/pull/134))
- added support for Alshanex's Familiars ([#139](https://github.com/AlmostReliable/almostunified/issues/139))
- improved Chinese translation ([#134](https://github.com/AlmostReliable/almostunified/pull/134))
- added Hungarian translation ([#121](https://github.com/AlmostReliable/almostunified/pull/121))
- improved Portuguese translation ([#122](https://github.com/AlmostReliable/almostunified/pull/122))
- fixed duplicate checking for recipes with different recipe key counts
- added Hungarian translation ([#121](https://github.com/AlmostReliable/almostunified/pull/121))
- improved Portuguese translation ([#122](https://github.com/AlmostReliable/almostunified/pull/122))
- fixed duplicate checking for recipes with different recipe key counts
- added logic to ignore recipes with non-matching recipe conditions for NeoForge
- this should get rid of some unfixable errors and warnings in your Almost Unified log
- improved config ignoring logic performance drastically
- improved general load performance
- improved Portuguese translation ([#122](https://github.com/AlmostReliable/almostunified/pull/122))
- removed built-in recipe unifier for Immersive Engineering
- it's now part of the Immersive Engineering add-on [here](https://github.com/AlmostReliable/almostunified-ie)
- added logic to ignore recipes with non-matching recipe conditions for NeoForge
- this should get rid of some unfixable errors and warnings in your Almost Unified log
- improved config ignoring logic performance drastically
- improved general load performance
- improved Portuguese translation ([#122](https://github.com/AlmostReliable/almostunified/pull/122))
- removed built-in recipe unifier for Immersive Engineering
- it's now part of the Immersive Engineering add-on [here](https://github.com/AlmostReliable/almostunified-ie)
- added Hungarian translation ([#121](https://github.com/AlmostReliable/almostunified/pull/121))
- fixed duplicate checking for recipes with different recipe key counts
- removed built-in recipe unifiers for Modern Industrialization and Extended Industrialization
- added Hungarian translation ([#121](https://github.com/AlmostReliable/almostunified/pull/121))
- fixed duplicate checking for recipes with different recipe key counts
- removed built-in recipe unifiers for Modern Industrialization and Extended Industrialization
- added support for Enchanted: Witchcraft
- fixed rare case of missing recipes without a recipe type namespace
- added support for Enchanted: Witchcraft
- fixed rare case of missing recipes without a recipe type namespace
- fixed rare case of missing recipes without a recipe type namespace
- fixed rare case of missing recipes without a recipe type namespace
- fixed spam of errors because the output resolver didn't use the correct inner key of result item stacks ([#116](https://github.com/AlmostReliable/almostunified/issues/116))
- fixed spam of errors because the output resolver didn't use the correct inner key of result item stacks ([#116](https://github.com/AlmostReliable/almostunified/issues/116))
- added
endstone variant to config defaults - added Turkish translation ([#102](https://github.com/AlmostReliable/almostunified/pull/102))
- added Mexican Spanish translation ([#112](https://github.com/AlmostReliable/almostunified/pull/112))
- improved performance for unification ([mezz](https://github.com/mezz)@[#97](https://github.com/AlmostReliable/almostunified/pull/97))
- drastically improved startup performance ([Shadows-of-Fire](https://github.com/Shadows-of-Fire)@[#115](https://github.com/AlmostReliable/almostunified/pull/115))
- added
endstone variant to config defaults - added Turkish translation ([#102](https://github.com/AlmostReliable/almostunified/pull/102))
- added Mexican Spanish translation ([#112](https://github.com/AlmostReliable/almostunified/pull/112))
- improved performance for unification ([mezz](https://github.com/mezz)@[#97](https://github.com/AlmostReliable/almostunified/pull/97))
- drastically improved startup performance ([Shadows-of-Fire](https://github.com/Shadows-of-Fire)@[#115](https://github.com/AlmostReliable/almostunified/pull/115))
- added Mexican Spanish translation ([#112](https://github.com/AlmostReliable/almostunified/pull/112))
- drastically improved startup performance ([Shadows-of-Fire](https://github.com/Shadows-of-Fire)@[#115](https://github.com/AlmostReliable/almostunified/pull/115))
- fixed
c:ores_in_groundblock tag not being considered when no respective item tag is present - fixed stone variant defaults not using the correct registry names
- improved performance for unification ([mezz](https://github.com/mezz)@[#97](https://github.com/AlmostReliable/almostunified/pull/97))
- fixed
c:ores_in_groundblock tag not being considered when no respective item tag is present - fixed stone variant defaults not using the correct registry names
- improved performance for unification ([mezz](https://github.com/mezz)@[#97](https://github.com/AlmostReliable/almostunified/pull/97))
- fixed crash on empty recipe JSONs
- fixed crash on empty recipe JSONs
- added logging for cases where items are assigned to multiple unification tags
- added logging for cases where the recipe type can't be found
- added skipping logic for recipes with invalid recipe types
- added Turkish translation ([#102](https://github.com/AlmostReliable/almostunified/pull/102))
- fixed crash when runtime isn't loaded ([#101](https://github.com/AlmostReliable/almostunified/issues/101))
- fixed newly created custom tags not being considered for unification
- fixed runtime not being available when items are assigned to multiple unification tags
- added logging for cases where items are assigned to multiple unification tags
- added logging for cases where the recipe type can't be found
- added skipping logic for recipes with invalid recipe types
- added Turkish translation ([#102](https://github.com/AlmostReliable/almostunified/pull/102))
- fixed crash when runtime isn't loaded ([#101](https://github.com/AlmostReliable/almostunified/issues/101))
- fixed newly created custom tags not being considered for unification
- fixed runtime not being available when items are assigned to multiple unification tags
- added support for custom ingredient types
- added support for NeoForge compound ingredients
- added API endpoint for registering custom ingredient unifiers
- added unification helper methods to convert tags to items
- fixed recipe viewer integration endpoints for Fabric
- fixed unnecessary memory usage for debug handler
- fixed Mekanism recipe unifier using wrong recipe keys
- fixed EnderIO Sag Mill recipe output unification causing serialization failures

