Tags
Creators
Details
Licensed GPL-3.0-only
Published 4 months ago
All versions
1.3.0+forge-1.20.1
Release
RemapIDs 1.3.0 (Forge 1.20.1)3 months ago 72
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Changes
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:RemapValidatorpermanently 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 whenfinalizeIfPending()ran. Finalization and alias injection are now triggered fromFMLLoadCompleteEvent, which is guaranteed to fire after allRegisterEventhandlers complete. - On Forge 1.20.1, modded entries live in
ForgeRegistries, not in vanillaMappedRegistry. Target lookups now go throughForgeRegistries.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 inBlock.BLOCK_STATE_REGISTRYso 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 forBlock.BLOCK_STATE_REGISTRYinternals, enabling block state ID remapping without corrupting the reverse lookup table.MappedRegistryAccessor(Forge) — Mixin accessor forMappedRegistry.byLocation/byKey, used by the newRegistryAliasInjector.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 byRegistryAliasInjectortriggered fromFMLLoadCompleteEvent, replacing the unreliablefreeze()hook. Other loaders retain thefreeze()-based approach.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:LS9KUmOO:ndNPJXg1"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LS9KUmOO:ndNPJXg1"
}

