I used the world datapack defined in this Reddit post as a starting point: https://www.reddit.com/r/minecraft_configs/comments/hoakfc/after_a_lot_of_trial_and_error_i_finally_managed/
In that download, the separation and spacing for "custom:tower" appear to be at the default settings (1 and 0 if I remember correctly). I noticed that the structure is logged in the biome json (worldgen>biome>custom>hills.json) as a startable structure, but not in the dimension json (dimension>custom>custom_biomes.json) in the structures list. Since I wasn't certain what the doubled "structures" object was about, I tried both of the following when adding "custom:tower" to the dimension json:
"structures": { "structures": { "minecraft:ruined_portal": { "spacing": 4, "separation": 2, "salt": 34222645 } }, "structures": { "custom:tower": { "spacing": 4, "separation": 2, "salt": 34222644 } } }
and
"structures": { "structures": { "minecraft:ruined_portal": { "spacing": 4, "separation": 2, "salt": 34222645 } }, "custom:tower": { "spacing": 4, "separation": 2, "salt": 34222644 } }
(both behaved exactly the same as far as I could tell)
When loading the datapack up at world creation, the world generated without errors but the custom dimensions were not recognized by /execute. However, when generating a single-biome world using the relevant custom biomes, the world generated as expected, with the structure separation and spacings defined in the dimension json working as intended.
I have a vague suspicion that this may be related to MC-187904 which prevents custom dimensions from replacing existing dimensions and also gives no errors on world creation.
worldgen>configured_structure_feature>custom>tower.json
We can currently only use a vanilla structure as the "name": (in this case "minecraft:village")
Thats why his structure can only be referenced with "minecraft:village" and not with "custom:tower".
He has specificly chosen "minecraft:village" so he can use "start_pool": in the config.
"start_pool": allows him to reference a file in template_pool
worldgen>template_pool>custom>tower.json
The "location": allows him to reference a structure he saved.
This method produces many problems like only being able to generate one kind of custome structure and of course also the one statet here
I am pretty sure this is not intended and feels more like a workaround.