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: Easily disable all structures across your world with a single setting, simplifying your world generation process.
- Disable individual structures: Disable specific structures individually, giving you precise control over which ones generate in your world.
- Manage biomes for specific structures: Customize the list of biomes for individual structures, ensuring they only generate in selected biomes.
- Globally set structure spread for all structures: Set global spacing and separation modifiers for all structures, enabling consistent structure spread throughout your world.
- Individually set structure spread: Adjust spacing and separation values for specific structures, allowing for customized generation distances between them.
Possible future features that can be implemented:
- Disable individual structure pieces
- Change weight of individual structure pieces
- Utility commands related to the structures
- Presets for specific settings
🖥️ In-Game configuration
Structure 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 list of biomes where specific structures should generate.
Specific structures can also be easily searched for across these categories.
Biome managment for specific structures
Each structure has its own configuration, allowing specific biomes to be added and/or removed to adjust structure generation.
Structure Spread settings
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.
📝 JSON file configuration
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": []
}
general
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 |
disable_all_structures
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": false
enable_global_spacing_and_separation_modifier
If set to true
all structure sets (groups of structures) will have modified spacing and separation.
"enable_global_spacing_and_separation_modifier": true
global_spacing_and_separation_modifier
When 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
structures
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 |
biomes | Array of biome identifiers | [] |
["minecraft:deep_cold_ocean"] |
enable_biome_check | Enables the biome check | false |
true false |
biome_check_distance | Biome check distance (in blocks) | - |
8 16 128 |
name
The unique identifier for the structure, typically in the format mod_id:structure_name
.
"name": "minecraft:shipwreck"
is_disabled
If set to true
the structure will be disabled and will not be generated in the world.
"is_disabled": false
biomes
Array of unique biome identifiers typically in the format mod_id:biome_name
. An empty array means that structures won't generate anywhere.
"biomes": []
enable_biome_check
If set to true
the structure will only generate if all biomes within the specified distance are present in the list of biomes.
"enable_biome_check": false
biome_check_distance
The distance in blocks from the structure’s center within which biomes will be checked.
"biome_check_distance": 32
structure_sets
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 | Spacing is the average distance in chunks between structures within the same structure set (group of structures) | - |
34 8 60 |
separation | 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. | - |
8 4 40 |
name
The unique identifier for the structure, typically in the format mod_id:structure_name
.
"name": "minecraft:villages"
spacing
Spacing is the average distance in chunks between structures within the same structure set (group of structures).
"spacing": 34
separation
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.
"separation": 8
⚙️ Compatibility
Structurify is designed to be fully compatible with most of the world generation mods and datapacks, and it currently offers enhanced compatibility with the following mods:
💬 Community
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.
👋 Support
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.
📜 License
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).