▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Remap IDs
Remap IDs

Remap IDs

Redirect item, block, entity, fluid, tag, recipe, and loot table IDs to alternative IDs at runtime

122
2

RemapIDs 1.3.0 (Fabric 1.21.1)

release3 апреля 2026 г.

1.3.0

Fixed

  • Modded remap targets not found in registry (#1) — Remapping to modded IDs (e.g. minecraft:copper_block → create:brass_block) would fail with "not found in item/block registry" and skip the remap. Three separate issues caused this:
    • RemapValidator permanently removed entries for targets not yet registered at validation time. Validation is now non-destructive (warn-only) — entries are preserved and validated at actual injection time.
    • On Forge, the MappedRegistry.freeze() hook fired during bootstrap on the Render thread, racing with mod loading on worker threads. Modded content wasn't registered yet when finalizeIfPending() ran. Finalization and alias injection are now triggered from FMLLoadCompleteEvent, which is guaranteed to fire after all RegisterEvent handlers complete.
    • On Forge 1.20.1, modded entries live in ForgeRegistries, not in vanilla MappedRegistry. Target lookups now go through ForgeRegistries.BLOCKS/ITEMS/etc. instead of the vanilla registry maps.

Added

  • Live vanilla block/item remapping — Remapping existing vanilla IDs to modded IDs (e.g. minecraft:copper_block → create:brass_block) now works correctly. Block state IDs are remapped in Block.BLOCK_STATE_REGISTRY so network serialization writes target state IDs instead of crashing with -1.
  • Block state property matching — When remapping between blocks with compatible properties (e.g. axis, waterlogged), matching property values are preserved on the target state. Unmatched properties fall back to the target block's defaults.
  • IdMapperAccessor (all loaders) — Mixin accessor for Block.BLOCK_STATE_REGISTRY internals, enabling block state ID remapping without corrupting the reverse lookup table.
  • MappedRegistryAccessor (Forge) — Mixin accessor for MappedRegistry.byLocation/byKey, used by the new RegistryAliasInjector.
  • RegistryAliasInjector (Forge) — Dedicated alias injection helper that uses ForgeRegistries for target lookup and injects into vanilla MappedRegistry where possible.

Changed

  • Forge alias injection moved out of MappedRegistryMixin — Registry alias injection on Forge is now handled by RegistryAliasInjector triggered from FMLLoadCompleteEvent, replacing the unreliable freeze() hook. Other loaders retain the freeze()-based approach.

RemapIDs 1.3.0 (Forge 1.20.1)

release3 апреля 2026 г.

1.3.0

Fixed

  • Modded remap targets not found in registry (#1) — Remapping to modded IDs (e.g. minecraft:copper_block → create:brass_block) would fail with "not found in item/block registry" and skip the remap. Three separate issues caused this:
    • RemapValidator permanently removed entries for targets not yet registered at validation time. Validation is now non-destructive (warn-only) — entries are preserved and validated at actual injection time.
    • On Forge, the MappedRegistry.freeze() hook fired during bootstrap on the Render thread, racing with mod loading on worker threads. Modded content wasn't registered yet when finalizeIfPending() ran. Finalization and alias injection are now triggered from FMLLoadCompleteEvent, which is guaranteed to fire after all RegisterEvent handlers complete.
    • On Forge 1.20.1, modded entries live in ForgeRegistries, not in vanilla MappedRegistry. Target lookups now go through ForgeRegistries.BLOCKS/ITEMS/etc. instead of the vanilla registry maps.

Added

  • Live vanilla block/item remapping — Remapping existing vanilla IDs to modded IDs (e.g. minecraft:copper_block → create:brass_block) now works correctly. Block state IDs are remapped in Block.BLOCK_STATE_REGISTRY so network serialization writes target state IDs instead of crashing with -1.
  • Block state property matching — When remapping between blocks with compatible properties (e.g. axis, waterlogged), matching property values are preserved on the target state. Unmatched properties fall back to the target block's defaults.
  • IdMapperAccessor (all loaders) — Mixin accessor for Block.BLOCK_STATE_REGISTRY internals, enabling block state ID remapping without corrupting the reverse lookup table.
  • MappedRegistryAccessor (Forge) — Mixin accessor for MappedRegistry.byLocation/byKey, used by the new RegistryAliasInjector.
  • RegistryAliasInjector (Forge) — Dedicated alias injection helper that uses ForgeRegistries for target lookup and injects into vanilla MappedRegistry where possible.

Changed

  • Forge alias injection moved out of MappedRegistryMixin — Registry alias injection on Forge is now handled by RegistryAliasInjector triggered from FMLLoadCompleteEvent, replacing the unreliable freeze() hook. Other loaders retain the freeze()-based approach.

RemapIDs 1.3.0 (Fabric 1.20.1)

release3 апреля 2026 г.

1.3.0

Fixed

  • Modded remap targets not found in registry (#1) — Remapping to modded IDs (e.g. minecraft:copper_block → create:brass_block) would fail with "not found in item/block registry" and skip the remap. Three separate issues caused this:
    • RemapValidator permanently removed entries for targets not yet registered at validation time. Validation is now non-destructive (warn-only) — entries are preserved and validated at actual injection time.
    • On Forge, the MappedRegistry.freeze() hook fired during bootstrap on the Render thread, racing with mod loading on worker threads. Modded content wasn't registered yet when finalizeIfPending() ran. Finalization and alias injection are now triggered from FMLLoadCompleteEvent, which is guaranteed to fire after all RegisterEvent handlers complete.
    • On Forge 1.20.1, modded entries live in ForgeRegistries, not in vanilla MappedRegistry. Target lookups now go through ForgeRegistries.BLOCKS/ITEMS/etc. instead of the vanilla registry maps.

Added

  • Live vanilla block/item remapping — Remapping existing vanilla IDs to modded IDs (e.g. minecraft:copper_block → create:brass_block) now works correctly. Block state IDs are remapped in Block.BLOCK_STATE_REGISTRY so network serialization writes target state IDs instead of crashing with -1.
  • Block state property matching — When remapping between blocks with compatible properties (e.g. axis, waterlogged), matching property values are preserved on the target state. Unmatched properties fall back to the target block's defaults.
  • IdMapperAccessor (all loaders) — Mixin accessor for Block.BLOCK_STATE_REGISTRY internals, enabling block state ID remapping without corrupting the reverse lookup table.
  • MappedRegistryAccessor (Forge) — Mixin accessor for MappedRegistry.byLocation/byKey, used by the new RegistryAliasInjector.
  • RegistryAliasInjector (Forge) — Dedicated alias injection helper that uses ForgeRegistries for target lookup and injects into vanilla MappedRegistry where possible.

Changed

  • Forge alias injection moved out of MappedRegistryMixin — Registry alias injection on Forge is now handled by RegistryAliasInjector triggered from FMLLoadCompleteEvent, replacing the unreliable freeze() hook. Other loaders retain the freeze()-based approach.

RemapIDs 1.3.0 (NeoForge 1.21.1)

release3 апреля 2026 г.

1.3.0

Fixed

  • Modded remap targets not found in registry (#1) — Remapping to modded IDs (e.g. minecraft:copper_block → create:brass_block) would fail with "not found in item/block registry" and skip the remap. Three separate issues caused this:
    • RemapValidator permanently removed entries for targets not yet registered at validation time. Validation is now non-destructive (warn-only) — entries are preserved and validated at actual injection time.
    • On Forge, the MappedRegistry.freeze() hook fired during bootstrap on the Render thread, racing with mod loading on worker threads. Modded content wasn't registered yet when finalizeIfPending() ran. Finalization and alias injection are now triggered from FMLLoadCompleteEvent, which is guaranteed to fire after all RegisterEvent handlers complete.
    • On Forge 1.20.1, modded entries live in ForgeRegistries, not in vanilla MappedRegistry. Target lookups now go through ForgeRegistries.BLOCKS/ITEMS/etc. instead of the vanilla registry maps.

Added

  • Live vanilla block/item remapping — Remapping existing vanilla IDs to modded IDs (e.g. minecraft:copper_block → create:brass_block) now works correctly. Block state IDs are remapped in Block.BLOCK_STATE_REGISTRY so network serialization writes target state IDs instead of crashing with -1.
  • Block state property matching — When remapping between blocks with compatible properties (e.g. axis, waterlogged), matching property values are preserved on the target state. Unmatched properties fall back to the target block's defaults.
  • IdMapperAccessor (all loaders) — Mixin accessor for Block.BLOCK_STATE_REGISTRY internals, enabling block state ID remapping without corrupting the reverse lookup table.
  • MappedRegistryAccessor (Forge) — Mixin accessor for MappedRegistry.byLocation/byKey, used by the new RegistryAliasInjector.
  • RegistryAliasInjector (Forge) — Dedicated alias injection helper that uses ForgeRegistries for target lookup and injects into vanilla MappedRegistry where possible.

Changed

  • Forge alias injection moved out of MappedRegistryMixin — Registry alias injection on Forge is now handled by RegistryAliasInjector triggered from FMLLoadCompleteEvent, replacing the unreliable freeze() hook. Other loaders retain the freeze()-based approach.

RemapIDs 1.2.1 (Forge 1.20.1)

release2 апреля 2026 г.

1.2.1

Fixed

  • Tag remapping crash on Forge/Fabric 1.20.1 - TagLoaderMixin was injecting into loadAndBuild(), which returns resolved Holder.Reference objects, causing a ClassCastException. Now correctly targets load(), which returns raw EntryWithSource entries. Also fixed on Fabric 1.20.1 where the same latent bug existed.
  • Forge world migration only handled remapids: namespace - ForgeRegistryEvents passed the mod's own ID to getMappings(), so MissingMappingsEvent only caught missing entries with namespace remapids:*. Now collects all source namespaces from the remap config and queries each one. This fixes remaps like create:brass_block → minecraft:copper_block being silently ignored when Create is removed.
  • Forge registry lookups could cross-contaminate types - ForgeRegistryMixin looped through all registry types (block, item, fluid, entity_type) for every ForgeRegistry.getValue() call, so an item-only remap could incorrectly redirect a block registry lookup. Now determines the specific registry type from the ForgeRegistry instance and only checks that type.
  • Removed leftover debug logging on Forge - The Forge RecipeManagerMixin had LOGGER.info() calls for golden_apple recipe debugging and verbose per-invocation logging left from development. Cleaned up to match the other loaders' LOGGER.debug() level.
  • JsonRemapper.rewriteCount thread safety - Changed from a plain int to AtomicInteger to prevent potential race conditions in the rewrite counter.

Совместимость

Minecraft: Java Edition

1.21.x1.20.x

Платформы

Детали

Лицензия:GPL-3.0-only
Опубликован:3 недели назад
Обновлён:1 неделю назад
Главная