
Legendary vault
LegendaryVault expands Cobblemon with Legendary & Mythical adventures! Explore natural spawns, rituals, dungeons, dojos, bosses, PokéTab, Terralith biomes, Arceus Plate/Azure Flute progression, multiplayer support, and configurable encounters.
1.21.1
Compatibility
Changes
LegendaryVault — Changelog
Minecraft 1.21.1 · Fabric · Cobblemon 1.8.0 Compatible UB Natural Spawn Patch for Ultra Space Mod
v47 — UB Natural Spawn Patch (September 15, 2026)
Overview
Added natural Ultra Beast spawning for all 11 Generation 7 Ultra Beasts to the LegendaryVault v47 natural-spawn system. Ultra Beasts spawn only in the ultraspace:ultra_space dimension using the existing LegendaryVault NATURAL spawn pipeline. Each UB is assigned to specific biomes and location types matching its lore and habitat.
Ultra Beasts Added (11 total)
| # | UB | rarityWeight | Biomes | locationTypes | canFly | spawnMode |
|---|---|---|---|---|---|---|
| 1 | Nihilego | 0.35 | crystal_wastes | WATER | true | NATURAL |
| 2 | Buzzwole | 0.30 | ultra_forest, mega_void_forest | LAND, TREE_TOP | false | NATURAL |
| 3 | Pheromosa | 0.30 | ultra_desert | LAND | false | NATURAL |
| 4 | Xurkitree | 0.35 | obsidian_spires | LAND | false | NATURAL |
| 5 | Celesteela | 0.25 | ultra_forest, mega_void_forest | LAND | false | NATURAL |
| 6 | Kartana | 0.30 | ultra_forest | LAND | false | NATURAL |
| 7 | Guzzlord | 0.20 | ultra_desert | LAND | false | NATURAL |
| 8 | Stakataka | 0.20 | obsidian_spires | LAND | false | NATURAL |
| 9 | Blacephalon | 0.20 | ultra_forest, mega_void_forest | LAND | false | NATURAL |
| 10 | Poipole | 0.10 | ultra_desert | LAND | false | NATURAL |
| 11 | Naganadel | 0.10 | all 6 (wiki display only) | AIR, LAND | true | RITUAL |
Common Spawn Settings (All UBs)
- Dimension:
ultraspace:ultra_spaceonly (enforced bySpawnConditionChecker.checkDimension()) - Rarity Tier:
RARE_LEGENDARY(not MYTHICAL — avoidsallowMythicalsgate) - Time:
ANY(any time of day) - Weather:
ANY(weight 1.0) - Y Range: -64 to 320
- Nearby Block:
ANY - Moon Phase:
ANY
New Feature: TREE_TOP Spawn Location
This patch introduces TREE_TOP as a new SpawnLocation enum value, enabling Pokémon to spawn on top of tree canopies.
-
Enum:
SpawnLocation.TREE_TOPadded to the existingSpawnLocationenum (alongsideLAND,AIR,WATER,WATER_SURFACE,UNDERGROUND,INDOORS,MANMADE). -
Detection (
SpawnEnvironment.classify()): A position is classified as TREE_TOP when:- The block at the position is air with clear collision space
- The block below (the "floor") is a solid, non-empty collision block
- That floor block is a tree block — identified by checking if the block's registry path contains
log,leaves,_stem,mushroom, or equalsnether_warts - There are 2 blocks of clear air above the position
-
Resolution (
SpawnPositionResolver.resolveTreeTop()): Uses theMOTION_BLOCKINGheightmap (which includes foliage) to find the highest non-air block at a candidate XZ, then verifies the block below that position is actually a tree block (log/leaves/stem/mushroom). -
Safety (
SpawnPositionResolver.isTreeTopSafe()): Validates that the position has 3 blocks of clear collision space above, no fluid at the position, and the floor block is a tree block with non-empty collision shape. -
Multi-location support:
findSpawnPosition()andfindPatrolPosition()now iterate over ALLentry.getLocationTypes()per random position attempt. Previously, only the primarylocationwas used. Now, entries like Buzzwole (LAND + TREE_TOP) will try both resolution strategies at each candidate position, increasing spawn success rate.
Special Cases
Nihilego: Uses location=WATER and locationTypes=[WATER] — spawns in water bodies within crystal_wastes. canFly=true allows it to float above water.
- Buzzwole: Uses
locationTypes=[LAND, TREE_TOP]— will spawn on the ground or on top of tree canopies. The only UB with multi-location spawning. - Naganadel:
spawnMode=RITUAL— excluded fromgetNATURAL_SPAWN_POOL(), so it will NOT spawn naturally. Retained in the registry for PokéTab wiki display and ritual/shrine spawning. All 6 biomes are listed for wiki display purposes only.
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:Z7iHDcvG:mfQJEXUV"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Z7iHDcvG:mfQJEXUV"
}
