Repository navigation
Structures3
Derrick edited this page Nov 3, 2026
·
4 revisions
Structure files are the main files of the configuration. They contain the Structure Id, Spawner's information, and Pokemon information assigned to that Spawner. Loot tables are linked in this file by using the name of the json file in the "loot_table" folder.
- variant - Determines which spawner texture is used when replacing a block/spawner. Defaults to the Default Texture.
- listOfPokemonWaves & listOfOminousPokemonWaves - Is a new Wave mode for Spawners, allowing for wave based challenges and number of pokemon for the spawners.
- pokemonSpawns - Is a required class that wraps all Pokemon Spawn lists. it is required.
- pokemonInWave - Determine how many pokemon spawn before the wave is complete. Defaults to 4.
- pokemonInWaveAddedPerPlayer - How many pokemon are added in addition to a wave per player. Defaults to 1.
- pokemonToSpawn - Which pokemon to spawn within a wave based on weight.
Here is a example JSON file for a Structure with all fields (Please note that you would never use both waves and lists for spawning and this is an example):
Click To Expand:
{
"structureId": "minecraft:fortress",
"uniqueReplacementBlocks": {
"minecraft:chest": "minecraft:skeleton"
},
"spawnerProperties": [
{
"blockTypesToReplace": ["minecraft:spawner"],
"mobEntitiesInSpawnerToReplace": ["minecraft:blaze"],
"variant": "fortress",
"ticksBetweenSpawnAttempts": 40,
"spawnerCooldown": 36000,
"playerDetectionRange": 14,
"spawnRange": 4,
"maximumNumberOfSimultaneousPokemon": 2,
"maximumNumberOfSimultaneousPokemonAddedPerPlayer": 1,
"totalNumberOfPokemonPerTrial": 4,
"totalNumberOfPokemonPerTrialAddedPerPlayer": 1,
"lootTables": ["cobblemontrialsedition:fortress"],
"ominousLootTables": ["cobblemontrialsedition:ominous-fortress"],
"ominousSpawnerAttacksEnabled": false,
"doPokemonSpawnedGlow": true,
"pokemonSpawns": {
"isWaveMode": false,
"listOfPokemonToSpawn": [
{
"species": "charcadet",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": false,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 20,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["flamecharge", "lavaplume"],
"heldItem": "minecraft:blaze_powder",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
],
"listOfOminousPokemonToSpawn": [
{
"species": "armarouge",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": false,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 40,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["armorcannon", "lavaplume"],
"heldItem": "minecraft:blaze_rod",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
],
"listOfPokemonWaves": [
{
"pokemonInWave": 4,
"pokemonInWaveAddedPerPlayer": 1,
"pokemonToSpawn": [
{
"species": "charcadet",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": false,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 20,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["flamecharge", "lavaplume"],
"heldItem": "minecraft:blaze_powder",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
]
},
{
"pokemonInWave": 1,
"pokemonInWaveAddedPerPlayer": 1,
"pokemonToSpawn": [
{
"species": "armarouge",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": true,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 40,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["armorcannon", "lavaplume"],
"heldItem": "minecraft:blaze_rod",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
]
}
],
"listOfOminousPokemonWaves": [
{
"pokemonInWave": 4,
"pokemonInWaveAddedPerPlayer": 1,
"pokemonToSpawn": [
{
"species": "charcadet",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": false,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 20,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["flamecharge", "lavaplume"],
"heldItem": "minecraft:blaze_powder",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
]
},
{
"pokemonInWave": 1,
"pokemonInWaveAddedPerPlayer": 1,
"pokemonToSpawn": [
{
"species": "armarouge",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": true,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 40,
"gender": "male",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["bitterblade", "lavaplume"],
"heldItem": "minecraft:blaze_rod",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
},
{
"species": "ceruledge",
"weight": 10,
"scaleModifier": 1,
"isUncatchable": true,
"mustBeDefeatedInBattle": true,
"isAggressive": false,
"isAlwaysAlpha": true,
"aspects": "mini-boss",
"spawnablePokemonStats": {
"form": ["normal"],
"level": 40,
"gender": "female",
"nature": "adamant",
"defaultEVs": [0, 0, 0, 10, 0, 20],
"defaultIVs": [0, 0, 0, 0, 0, 31],
"ability": "flashfire",
"moves": ["armorcannon", "lavaplume"],
"heldItem": "minecraft:blaze_rod",
"dynaMaxLevel": 0,
"teraType": "bug",
"isShiny": false
}
}
]
}
]
}
}
]
}
Here is the same example file with the minimum required fields (Please note that you would never use both waves and lists for spawning and this is an example):
Click to Expand:
{
"structureId": "minecraft:fortress",
"spawnerProperties": [
{
"blockTypesToReplace": ["minecraft:spawner"],
"mobEntitiesInSpawnerToReplace": ["minecraft:blaze"],
"lootTables": ["cobblemontrialsedition:fortress"],
"ominousLootTables": ["cobblemontrialsedition:ominous-fortress"],
"spawns": {
"listOfPokemonToSpawn": [{"species": "charcadet"}],
"listOfOminousPokemonToSpawn": [{"species": "armarouge"}],
"listOfPokemonWaves": [
{
"pokemonToSpawn": [{"species": "charcadet"}]
},
{
"pokemonToSpawn": [{"species": "armarouge"}]
}
],
"listOfOminousPokemonWaves": [
{
"pokemonToSpawn": [{"species": "charcadet"}]
},
{
"pokemonToSpawn": [
{"species": "armarouge"},
{"species": "ceruledge"}
]
}
]
}
}
]
}
- The full id of the structure that the spawners will be replaced.
- Examples: "minecraft:stronghold", ["nova_structures:trident_trial_monument", "minecraft:stronghold"]["#nova_structures:shrines"])
- A Mappable list of Resourcelocations used to map any block to any type of entity to be replaced with a configuration.
- Examples: "minecraft:sculk_shrieker": "minecraft:skeleton", "minecraft:gold_block": "minecraft:zombie") See Sculk_Patch json file for an example.
- An array of spawner properties. Each spawner property contains all of the information for a spawner replacement.
- The ids of either the Mob Spawner or Trial Spawner that you want to replace with these settings in the structure, since it is an array you can list both.
- Note: It cannot be any other id then the following:
- minecraft:spawner
- minecraft:trial_spawner
- The ids of the mobs that exist in the spawner in the structure that you want to replace. This is a list, so if you want to replace multiple spawners that have different mobs in them with the same type of Cobblemon Trial Spawner, you can list them.
- Example: if you want to replace a Mob Spawner that spawns blazes, you want to use the id of the blaze, "minecraft:blaze"
- Note: If you are replacing Sculk Shriekers it needs to be the following:
- minecraft:warden
- the texture variant you would want to use when the spawner is replaced.
- Example: if you want the nether fortress themed spawner you would use "fortress"
- Note: Check the items page to see all spawner textures.
- The number of ticks the Cobblemon Trial Spawner will wait before attempting to spawn another pokemon.
- The number of ticks the Cobblemon Trial Spawner waits after a trial is finished before being ready to spawn again.
- The number of blocks that the Cobblemon Trial Spawner will check for a player to activate and start spawning.
- The number of blocks the Cobblemon Trial Spawner will check to spawn a Pokemon.
- The maximum number of pokemon the Cobblemon Trial Spawner will allow spawned at the same time.
- The amount each additional player will add to the maximum limit the Cobblemon Trial Spawner will allow spawned at the same time.
- The total amount of Pokemon spawned by the Cobblemon Trial Spawner before the trial ends and loot is dispensed.
- The amount each additional player will add to the total number of Pokemon the Cobblemon Trial Spawner will spawn per trial.
- The List of loot tables that the Cobblemon Trial Spawner will dispense from when a trial is completed.
- Notes:
- If replacing a Minecraft Trial Spawner, leaving this empty will have the Cobblemon Trial Spawner inherit the loot tables.
- You can use any Loot Table, including Minecraft Loot Tables or other Modded Tables.
- If you create your own Loot table in the "loot_table" folder, it will need the cobblemontrialsedition location. "cobblemontrialsedition:fortress"
- The List of loot tables that the Cobblemon Trial Spawner will dispense when it is Ominous.
- Notes:
- If replacing a Minecraft Trial Spawner, leaving this empty will have the Cobblemon Trial Spawner inherit the loot tables.
- You can use any Loot Table, including Minecraft Loot Tables or other Modded Tables.
- If you create your own Loot table in the "loot_table" folder, it will need the cobblemontrialsedition location. "cobblemontrialsedition:fortress"
- This will determine if the Spawner is Ominous, Splash potions will be ejected at players and pokemon during the duration of the trial.
- This determines if Spawned Pokemon from Cobblemon Trial Spawners are glowing.
- This is the class that contains the list of pokemon to spawn and waves. It is required.
- This is a list of Pokemon that will be spawned by the Cobblemon Trial Spawner
- Please see the Pokemon Page for a more detailed breakdown.
- This is a list of Pokemon that will be spawned by the Cobblemon Trial Spawner when it is Ominous.
- Please see the Pokemon Page for a more detailed breakdown.
- This is a list of Pokemon waves that will be spawned by the Cobblemon Trial Spawner.
- Please see the Pokemon Page for a more detailed breakdown.
- This is a list of Pokemon waves that will be spawned by the Cobblemon Trial Spawner when it is Ominous.
- Please see the Pokemon Page for a more detailed breakdown.
- The total number of pokemon that will spawn in this wave. Defaults to 4.
- The total number of pokemon added per player that will spawn in this wave. Defaults to 1.
- This is a weighted list of Pokemon that will be spawned within the wave by the Cobblemon Trial Spawner.
- Datapacks v1.0-v1.3.1
- Datapacks v2.0-v2.2.1
- Datapacks & Items v3.0+