--- a/net/minecraft/core/RegistrySetBuilder.java
+++ b/net/minecraft/core/RegistrySetBuilder.java
@@ -41,6 +_,13 @@
         final Map<ResourceKey<T>, Holder.Reference<T>> elements
     ) {
         return new RegistrySetBuilder.EmptyTagRegistryLookup<T>(owner) {
+            // Paper start - add getValueForCopying method
+            @Override
+            public Optional<T> getValueForCopying(final ResourceKey<T> resourceKey) {
+                return this.get(resourceKey).map(Holder.Reference::value);
+            }
+            // Paper end - add getValueForCopying method
+
             @Override
             public ResourceKey<? extends Registry<? extends T>> key() {
                 return registryKey;
@@ -121,6 +_,13 @@
                     public <T> Optional<RegistryOps.RegistryInfo<T>> lookup(ResourceKey<? extends Registry<? extends T>> registryKey) {
                         return getEntry(registryKey).map(Entry::opsInfo);
                     }
+
+                    // Paper start - add method to get the value for pre-filling builders in the reg mod API
+                    @Override
+                    public HolderLookup.Provider lookupForValueCopyViaBuilders() {
+                        throw new UnsupportedOperationException("Not implemented");
+                    }
+                    // Paper end - add method to get the value for pre-filling builders in the reg mod API
                 });
             }
         };
