diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java index d89a1db13..a5ba557f4 100644 --- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java +++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java @@ -185,8 +185,8 @@ public abstract class SimpleRegistryMixin<T> extends Registry<T> implements Rema } else { RegistryEntry.Reference<T> oldObject = idToEntry.get(registryId.getValue()); - if (oldObject != null && oldObject != object) { - int oldId = entryToRawId.getInt(oldObject); + if (oldObject != null && oldObject.value() != null && oldObject.value() != object) { + int oldId = entryToRawId.getInt(oldObject.value()); if (oldId != id && checkDuplicateKeys) { throw new RuntimeException("Attempted to register ID " + registryId + " at different raw IDs (" + oldId + ", " + id + ")! If you're trying to override an item, use .set(), not .register()!");