
Structure Pool API
📚 API to inject structures into structure pools.
Автор: ZsoltMolnarrr5,1 млн160обновлён 28 сент. 2026 г.
БиблиотекиГенерация мира
Описание
Structure Pool API
Can be used to inject structures into structure pools. Popular example:
- Adding custom village structures to villages
Additional features:
- Maximize spawn count of the injected structure (e.g. 2 per village)
Read all technical details in the GitHub readme.
Последние версии
Все версии →release
1.3.0+26.3
1.3.0+26.3-fabric28 сент. 2026 г.31,6 тыс.Minecraft: 26.3fabric
Что нового
# 1.3.0
- Minecraft 26.3 support
- Minecraft 26.2 support
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.3.0+26.3
1.3.0+26.3-neoforge28 сент. 2026 г.3,3 тыс.Minecraft: 26.3neoforge
Что нового
# 1.3.0
- Minecraft 26.3 support
- Minecraft 26.2 support
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.2.1+1.20.1
1.2.1+1.20.1-forge10 сент. 2026 г.22 тыс.Minecraft: 1.20.1forge, neoforge
Что нового
# 1.2.1+1.20.1
- Backport to Minecraft 1.20.1 (Fabric + Forge 47)
release
1.2.1+1.20.1
1.2.1+1.20.1-fabric10 сент. 2026 г.21,1 тыс.Minecraft: 1.20.1fabric
Что нового
# 1.2.1+1.20.1
- Backport to Minecraft 1.20.1 (Fabric + Forge 47)
release
1.3.0+26.2
1.3.0+26.2-neoforge5 сент. 2026 г.3,2 тыс.Minecraft: 26.2neoforge
Что нового
# 1.3.0
- Minecraft 26.2 support
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.3.0+26.2
1.3.0+26.2-fabric5 сент. 2026 г.25,8 тыс.Minecraft: 26.2fabric
Что нового
# 1.3.0
- Minecraft 26.2 support
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.3.0+26.1.2
1.3.0+26.1.2-fabric5 сент. 2026 г.7,5 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
# 1.3.0
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.3.0+26.1.2
1.3.0+26.1.2-neoforge5 сент. 2026 г.2,5 тыс.Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
# 1.3.0
- Minecraft 26.1.2 support (Java 25).
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
- **Spawn limits are now enforced for elements reached through a pool's fallback pool.** They were silently uncapped before. **This is seed-visible**: filtering an element out of a candidate list changes what `Util.shuffle` returns, so an affected structure generates differently for the same seed. Only structures whose placement reaches an injected element via a fallback pool are affected.
- No longer ships an access widener (Fabric) / access transformer (NeoForge) — one fewer thing to conflict with.
- One fewer mixin: `StructureTemplatePool` is no longer mixed into at all (injected elements are now identified by instance identity), and all mixin-owned members are `@Unique`.
- `injectIntoStructurePool` is idempotent per pool instance: injecting the same structure into the same pool twice no longer doubles its weight, and warns instead.
- Injecting now invalidates the pool's memoised `maxSize`.
- The "structure pool not found" message goes to the mod logger instead of `System.err`, so a mistyped pool id in a config is visible in a filtered log.
release
1.3.0+1.21.11
1.3.0+1.21.11-fabric26 авг. 2026 г.1,1 тыс.Minecraft: 1.21.11fabric
Что нового
# 1.3.0
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged
release
1.3.0+1.21.11
1.3.0+1.21.11-neoforge26 авг. 2026 г.240Minecraft: 1.21.11neoforge
Что нового
# 1.3.0
- Modernize package and maven group: Java package `net.rpg_foundation.structure_pool` (was `net.fabric_extras.structure_pool`), maven group `net.rpg_foundation` (was `net.foundation`); mod id and data unchanged