Kamina's Unified is an item unification mod that maps duplicate items across different mods without removing items or altering registry definitions. It assigns a primary item for each group, treating all other entries as replaceable duplicates.
How Unification Works
Items are grouped into primary and duplicate entries based on priority:iron_ingots = minecraft:iron_ingot, mekanism:ingot_iron, thermal:iron_ingot
In this example, minecraft:iron_ingot is the primary item. Ordering matters: the first available and registered item ID becomes the primary item. If the first ID is unavailable, the mod skips it and checks the next entry.
Scope of Application
- Inventory and World Drops: Items in the world are converted upon spawning. Player inventories are checked upon logging in and picking up items. Item counts and component data are preserved. Container contents and equipped items are not automatically modified.
-
Recipes: Shaped and shapeless recipes in the server-side
RecipeManagerare rebuilt. Duplicate ingredients are replaced with the primary item, and duplicate recipe outputs are converted to the primary item while preserving stack sizes and components. Other recipe types utilizeIngredienthooks and supported output assembly pipelines. Custom machine recipe engines may require dedicated adapters. -
Creative Mode: Duplicates are filtered out of standard creative tabs via
BuildCreativeModeTabContentsEvent. TheSEARCHtab remains unmodified. - JEI Integration: If Just Enough Items (JEI) is installed, a dedicated plugin hides duplicates from the item list and search results. JEI is optional.
Configuration
Main configuration file:config/kaminas_unified-local.toml
Ini, TOML
<button class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" aria-label="Скачать код"></button><button class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" aria-label="Скопировать код"></button>
[automatic]
scan = true
unification = true
tag_search = ["c:ores/*", "c:ingots/*", "c:dusts/*", "c:plates/*", "c:gears/*"]
mod_priority = ["minecraft", "mekanism", "thermal", "techreborn"]
[manual_unification]
groups = [
"iron_ores = minecraft:iron_ore, mekanism:iron_ore",
"iron_ingots = minecraft:iron_ingot, mekanism:ingot_iron, thermal:iron_ingot"
]
- automatic.scan: Enables a single heuristic scan for similar items on server startup. Discovered suggestions are appended to the auto-generated data file.
- automatic.unification: Enables the application of automatic groups (both tag-based and saved auto-groups). If disabled, manual groups remain active.
-
automatic.tag_search: Specifies item tags evaluated for automatic grouping. Trailing slashes match nested paths (e.g.,
c:ores/matchesc:ores/ironandc:ores/copper). - automatic.mod_priority: Sets namespace priority when assigning the primary item in automatically generated groups.
-
manual_unification.groups: Explicit list of groups formatted as
"name = primary_ID, duplicate_ID, duplicate_ID". Manual groups take precedence over automatic groups.
config/kaminas-unified-auto.toml Stores automatically generated suggestions and groups created by the scanner. The first listed ID acts as the primary item.
Commands
-
/dkidor/dkid hand– Displays the ID and tags of the item in the main hand. Click to copy. -
/dkid inventory– Copies the IDs of all occupied slots in the player inventory. -
/dkid hotbar– Copies the IDs of all items in the hotbar. -
/dkid rescan– Triggers an automatic rescan (requires OP level 2). -
/dkid help– Displays command help.
/reload or changing configurations reloads group definitions and updates mappings without triggering a full rescan. Use /dkid rescan to scan for new entries.

