90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

Structurify

Ko-fi Patreon Join Discord

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.

Structures settings

Specific structures can also be easily searched for across these categories.

Search

Biome managment for specific structures

Each structure has its own configuration, allowing specific biomes to be added and/or removed to adjust structure generation.

Search

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.

Structure Spread settings


📝 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).


Project members

faboslav

Member

Details

Published 4 months ago
Updated 18 days ago