Structurify is a configuration mod that makes configuring everything related to structures very easy and accessible, eliminating the hassle of creating multiple datapacks.
Currently it is possible to:
- Globally disable all structures
- Disable individual structures
- Blacklist specific structures in individual biomes
- Globally set structure spread for all structures
- Individually set structure spread
Possible future features that can be implemented:
- Disable individual structure pieces
- Change weight of individual structure pieces
- Utility commands related to the structures
- Disable specific structure tags
- Biome Tags in the biome blacklist
- Presets for specific settings
Structures are organized into categories based on the mods and datapacks in use, making them easier to manage. It is possible to disable the generation of structures and manage a blacklist of biomes where specific structures should not generate.
Specific structures can also be easily searched for across these categories.
Each structure has its own configuration, allowing specific biomes to be blacklisted to prevent structure generation.
Custom structure spread can be configured via global spacing and separation modifiers or through per-structure specific spacing and separation values.
- Spacing is the average distance in chunks between structures within the same structure set (group of structures).
- Separation is the minimum distance in chunks between structures within the same structure set (group of structures). The separation value cannot be greater than the spacing value.
All configurations mentioned in the In-Game section of this guide are mirrored and saved in a JSON file located at config/structurify.json.
This file is particularly useful for managing configurations on the server side.
The default content of the structurify.json file looks like this:
{
"general": {
"disabled_all_structures": false,
"enable_global_spacing_and_separation_modifier": true,
"global_spacing_and_separation_modifier": 1.0
},
"structures": [],
"structure_sets": []
}The general section contains settings that apply globally across all structures and structure sets.
| Key | Description | Default value | Examples |
|---|---|---|---|
| disabled_all_structures | Disable all structures | false |
true false |
| enable_global_spacing_and_separation_modifier | Enables global spacing and separation modifier | true |
true false |
| global_spacing_and_separation_modifier | The global spacing and separation modifier | 1.0 |
0.1 1.0 2.0 |
If set to true all structures will be disabled and will not be generated in the world regardless of the specific structure options.
"disabled_all_structures": falseIf set to true all structure sets (groups of structures) will have modified spacing and separation.
"enable_global_spacing_and_separation_modifier": trueWhen set to a value different from 1.0, all structure sets (groups of structures) will be either more concentrated or more spread out.
"global_spacing_and_separation_modifier": 1.0< 1.0- more concentrated= 1.0- unaffected (default value)> 1.0- more spread out
All structures related settings are saved to the structures field of the json file.
| Key | Description | Default value | Examples |
|---|---|---|---|
| name | Structure identifier | - |
minecraft:shipwreck |
| is_disabled | Disables the structure | false |
true false |
| biome_blacklist_type | Type of the biome blacklist | NONE |
NONE CENTER_PART ALL_PARTS |
| blacklisted_biomes | Array of biome identifiers | [] |
["minecraft:deep_cold_ocean"] |
The unique identifier for the structure, typically in the format mod_id:structure_name.
"name": "minecraft:shipwreck"If set to true the structure will be disabled and will not be generated in the world.
"is_disabled": falseWhen set to a value different from 1.0, all structure sets will be either more concentrated or more spread out.
"biome_blacklist_type": "NONE"NONE- The blacklist will be inactive even if values are provided.CENTER_PART- Only the starting piece (center part) of the structure cannot be in any of the blacklisted biomes.ALL_PARTS- All structure pieces cannot be in any of the blacklisted biomes.
Array of unique biome identifiers typically in the format mod_id:biome_name. An empty array means no biomes are blacklisted.
"blacklisted_biomes": []All structure sets related settings are saved to the structure_sets field of the json file.
| Key | Description | Default value | Examples |
|---|---|---|---|
| name | Structure identifier | - |
minecraft:villages |
| spacing | Disables the structure | - |
34 8 60 |
| separation | Type of the biome blacklist | - |
8 4 40 |
The unique identifier for the structure, typically in the format mod_id:structure_name.
"name": "minecraft:villages"Spacing is the average distance in chunks between structures within the same structure set (group of structures).
"spacing": 34"Separation is the minimum distance in chunks between structures within the same structure set (group of structures). The separation value cannot be greater than the spacing value.
"spacing": 8Example of disabling all of the vanilla mineshaft structures can be done with the following configuration:
{
"structures": [
{
"name": "minecraft:mineshaft",
"is_disabled": true,
"biome_blacklist_type": "CENTER_PART",
"blacklisted_biomes": []
},
{
"name": "minecraft:mineshaft_mesa",
"is_disabled": true,
"biome_blacklist_type": "NONE",
"blacklisted_biomes": []
}
]
}Forbidding the shipwreck structure to spawn in deep cold and frozen oceans can be done via the following configuration:
{
"structures": [
{
"name": "minecraft:shipwreck",
"is_disabled": false,
"biome_blacklist_type": "CENTER_PART",
"blacklisted_biomes": [
"minecraft:deep_cold_ocean",
"minecraft:deep_frozen_ocean"
]
}
]
}With the following configuration plains village will not be generated at all if any part of the village would be placed on the river biome:
{
"structures": [
{
"name": "minecraft:village_plains",
"is_disabled": false,
"biome_blacklist_type": "ALL_PARTS",
"blacklisted_biomes": [
"minecraft:river"
]
}
]
}The following configuration complements the previous example by compensating for blacklisted biomes with more frequent generations:
{
"structure_sets": [
{
"name": "minecraft:villages",
"spacing": 16,
"separation": 8
}
]
}Feel free to join our community at the discord server to chat, share your creations, ask any question or to simply be updated about the latest development of the mod and notified when the new release is out. Also don't hesitate to report any crash or bug via GitHub issues.
I will continue developing my mods as a hobby because I truly enjoy it. If you'd like to support me, you can do so on Patreon or Ko-fi. Your support is greatly appreciated.
The mod is licensed with CC BY-NC-ND 4.0 license.
Please feel free to explore my code for examples of how I've tackled and solved various challenges while developing this mod. You're welcome to incorporate code snippets into your own projects. Also feel free to use this mod in any modpack (although credit/link back to this page will be greatly appreciated).




