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.
External resources
Project members
Almost Reliable