Structurify

by Faboslav9.9M downloadsMulti-Loader

A configuration mod that makes configuring everything related to structures very easy and accessible, eliminating the hassle of creating multiple datapacks.

Mods1.21.xStructuresServer UtilityWorld GenUtility & QoLMap and InformationCurseForgeSource

Structurify Mod Guide: Complete Structure Configuration & World Generation Control

Structurify gives you total control over every structure in your Minecraft world through an intuitive in-game configuration screen. Disable individual structures, customize which biomes they spawn in, adjust spacing and separation between them, and add advanced checks like terrain flatness and distance from spawn. It replaces the need for complex datapacks with a single, clean JSON config file.

Overview

Structurify is a configuration mod that puts you in complete control of how and where every structure generates in your Minecraft world. Whether you want to disable Villages entirely, prevent Pillager Outposts from spawning near your base, or make Strongholds more common, Structurify handles it all through an in-game GUI powered by YACL (YetAnotherConfigLib). Everything is saved to a single JSON config file at config/structurify.json, making it easy to share settings across servers or modpacks.

The mod doesn't add any new items, blocks, or structures to your game. Instead, it modifies vanilla and modded structure generation at runtime, giving you fine-grained control over placement rules. Structurify organizes structures by their source mod (namespace), so you can easily find and configure structures from any installed mod. It's fully compatible with most world generation mods and datapack loaders like Paxi, Open Loader, and Global Packs.

Requirements

Structurify requires YACL (YetAnotherConfigLib) for its in-game configuration screen. On Fabric or Quilt, you'll also need Mod Menu (or another mod that provides access to mod config screens) to open Structurify's settings. NeoForge and Forge users don't need any extra mods beyond YACL, as the config screen is accessible through the built-in mod list.

Getting Started

  1. 1

    Open the Configuration Screen

    On Fabric or Quilt, open Mod Menu and find Structurify in the list, then click the config button. On NeoForge or Forge, open the Mods screen from the main menu, select Structurify, and click Config. The configuration screen has two main tabs: Structures and Structure Sets.

  2. 2

    Explore the Structures Tab

    The Structures tab lists every registered structure in your game, organized by namespace (mod). Each structure can be individually enabled or disabled. You can search for specific structures using the search bar at the top. This tab also contains global settings for disabling all structures at once and preventing structure overlap.

  3. 3

    Disable a Structure You Don't Want

    Find the structure you want to remove (for example, minecraft:pillager_outpost) and click on it. Toggle the "Is Disabled" option to Yes. The structure will no longer generate in newly explored chunks. Already-generated structures won't be removed.

  4. 4

    Adjust Structure Spacing

    Switch to the Structure Sets tab to control how far apart structures spawn. Each structure set shows its Spacing (average chunk distance between structures) and Separation (minimum chunk distance). Increasing these values makes structures rarer. You can also enable the Global Spacing and Separation Modifier to scale all distances by a single multiplier.

  5. 5

    Save and Generate New Chunks

    Click Done to save your changes. The config is written to config/structurify.json and registries are synced immediately. Your changes only affect newly generated chunks, so you'll need to explore new territory to see the results. A backup of your previous config is automatically saved to config/structurify/ (up to 5 backups are kept).

Changes Only Affect New Chunks

All Structurify changes only apply to chunks that haven't been generated yet. If you disable a structure like a Village, existing Villages in already-explored areas will remain. To see your changes take effect, travel to unexplored parts of your world.

Structure Configuration

The Structures tab is where you control individual structure behavior. Structures are grouped by namespace, so all vanilla Minecraft structures appear under minecraft, while modded structures appear under their respective mod IDs. Each structure offers several configuration options.

Disabling Structures

The simplest control is the ability to disable any structure entirely. Clicking on a structure in the list opens its detail screen where you can toggle "Is Disabled" to Yes. For a more dramatic change, the global "Disable All Structures" toggle at the top of the Structures tab prevents every structure from generating, effectively creating a flat, structure-free world.

Biome Assignment

Each structure has a biome list that determines where it can spawn. By default, Structurify uses the vanilla biome assignments, but you can add or remove biomes freely. The biome selector includes a search function and shows biome icons for easy identification. You can use individual biome IDs like minecraft:plains or biome tags like #minecraft:is_forest to target entire groups of biomes at once.

Generation Step and Terrain Adaptation

For advanced users, Structurify exposes two additional per-structure settings. The Generation Step controls when during chunk generation the structure is placed. The Terrain Adaptation setting controls how the structure interacts with surrounding terrain: None leaves the terrain as-is, Beard Thin smooths terrain around the structure, and Bury buries the structure into the ground. These default to whatever the mod author originally set, so only change them if you know what you're doing.

Jigsaw Structure Settings

Many structures in Minecraft (like Villages, Pillager Outposts, and Ancient Cities) use the Jigsaw system, which assembles structures from modular pieces. Structurify detects Jigsaw structures automatically and provides three additional controls. Size (Max Depth) controls how many layers of pieces can be assembled (range 0 to 20). Horizontal Max Distance from Center limits how far pieces can spread sideways (1 to 128 blocks). Vertical Max Distance from Center limits vertical spread (1 to 4096 blocks). Increasing these values lets structures generate larger and more complex layouts.

Use the Search Bar

With dozens or even hundreds of structures registered (especially in heavily modded worlds), finding a specific one can be tedious. Use the search bar at the top of each tab to quickly filter structures by name. You can search by the structure's display name or its registry ID.

Structure Sets: Spacing and Separation

The Structure Sets tab controls how structures are distributed across your world. Minecraft uses a grid-based placement system where each structure type has a Spacing value (average distance in chunks between structures of the same type) and a Separation value (minimum distance in chunks). Structurify lets you tweak both values for every structure set individually, with valid ranges from 0 to 1024 chunks.

Global Spacing and Separation Modifier

Rather than adjusting every structure set individually, you can enable the Global Spacing and Separation Modifier to scale all distances by a single multiplier. The default multiplier is 1.0 (no change). Setting it to 2.0 doubles all spacing and separation values, making every structure twice as rare. Setting it to 0.5 halves them, packing structures closer together. Individual structure sets can override this global modifier by toggling "Override Global Spacing and Separation Modifier" to Yes, allowing you to apply a global change while keeping specific structures at their original density.

Salt and Frequency

Each structure set also has a Salt value and a Frequency value. The Salt is a random seed that determines the specific grid positions where a structure can attempt to generate. Changing the Salt for a structure set will shift all its placement positions while maintaining the same spacing pattern, useful if structures are generating in inconvenient locations on a specific world seed. The Frequency (0.0 to 1.0) controls the probability that a structure actually generates at each valid grid position. A frequency of 1.0 means it always generates, while 0.5 means roughly half the valid positions will have structures.

Separation Must Be Less Than Spacing

The Separation value must always be less than the Spacing value. If you try to set Separation equal to or greater than Spacing, Structurify will automatically adjust the values to maintain a valid configuration. Setting both values very low will crowd structures together and may cause performance issues during world generation.

Advanced Features

Flatness Check

The Flatness Check prevents structures from generating on uneven or mountainous terrain. When enabled, Structurify samples multiple positions across the structure's footprint and calculates the height variation. If the difference between the highest and lowest points exceeds a threshold, the structure is rejected. The threshold is calculated automatically based on the structure's size: larger structures are allowed more variation, while small structures need relatively flat ground. The formula uses the square root of the structure's area multiplied by 0.33, clamped between 3 and 21 blocks.

The Flatness Check also considers surface block types. By default, if more than a third of the sampled positions have non-solid blocks (like Water, Lava, or Air gaps), the structure is rejected. You can toggle "Allow Non-Solid Blocks" if you want structures to generate over lakes or ravines. Ocean structures are automatically exempt from Flatness Checks.

Biome Check

The Biome Check adds an additional layer of biome validation beyond the standard biome list. This feature solves a common annoyance: structures like Villages can start in one biome but extend into an adjacent incompatible biome (a Village starting in Plains but stretching across a River, for example). The Biome Check samples multiple points across the entire structure footprint and rejects structures where any piece falls in an unwanted biome.

The Biome Check operates in two modes. Blacklist mode (the default) rejects structures if any sampled position falls within a blacklisted biome. The default blacklist includes River and Ocean biome tags, which prevents land structures from awkwardly spanning across waterways. Strict mode is more restrictive: structures are only allowed if every sampled position falls within the structure's designated biomes, ensuring complete biome consistency.

Distance from World Center

This feature restricts structure generation based on distance from the world origin (coordinates 0, 0). You can set a minimum distance, a maximum distance, or both. Setting a minimum distance of 1000 blocks means the structure won't appear within 1000 blocks of spawn, which is useful for keeping the starting area free of dangerous structures. Setting a maximum distance of 5000 blocks confines structures to the explored core of your world. The distance is measured using Chebyshev distance (the greater of the absolute X or Z coordinate), so the restriction area forms a square rather than a circle.

Prevent Structure Overlap

When enabled, this global setting prevents structures from generating in chunks where another structure already exists. This stops the jarring visual effect of two structures intersecting or overlapping, which can happen frequently in modded worlds where many structure mods are installed simultaneously.

Configuration Hierarchy

Structurify uses a three-level hierarchy for the Flatness Check, Biome Check, and Distance from World Center features. Understanding this hierarchy is key to configuring the mod efficiently.

At the top level, Global settings apply to all structures across all mods. These are found at the top of the Structures tab. Below that, Namespace settings apply to all structures from a specific mod (e.g. all structures under the minecraft namespace). Finally, Per-structure settings override everything above for a single structure.

To override a global or namespace setting for a specific structure or namespace, you must toggle the "Override" option to Yes. This lets you enable a check globally while exempting certain structures, or disable a check globally while enabling it for specific problem structures.

Default Configuration Values

Disable All Structuresfalse
Prevent Structure Overlapfalse
Global Spacing Modifier Enabledfalse
Global Spacing Modifier Value1.0
Flatness CheckDisabled by default
Flatness Threshold Range3–21 blocks (auto-scaled)
Biome CheckDisabled by default
Biome Check ModeBlacklist
Default Blacklisted BiomesRivers and Oceans
Distance Check Min/Max0 (disabled)
Structure Set Spacing Range0–1024 chunks
Structure Set Separation Range0–1024 chunks
Jigsaw Max Depth Range0–20
Jigsaw Horizontal Max Distance1–128 blocks
Jigsaw Vertical Max Distance1–4096 blocks

Commands

Structurify adds a few operator-level commands (permission level 2) for debugging and management.

/structurify dump writes a complete config file with all default values to config/structurify_dump.json. The normal config file only saves values that differ from defaults, so the dump file is useful for seeing the full picture of every available setting and its current value.

/structurify locate structure <name> locates the nearest instance of a specific structure, searching up to 6400 chunks from your position. This works similarly to the vanilla /locate command but targets Structurify's structure registry.

/structurify debug enable/disable toggles debug mode, which visually highlights structure placement checks. You can set the debug mode to focus on FLATNESS, BIOME, or OVERLAP checks, and choose between INITIAL or FINAL sampling mode to see different stages of the check process. This is invaluable for troubleshooting why a structure isn't generating where you expect.

JSON File Configuration

While the in-game GUI is the recommended way to configure Structurify, the underlying JSON file at config/structurify.json can be edited directly. This is particularly useful for server administrators who don't have access to the GUI. The JSON file has four main sections: general (global toggles), structure_namespaces (per-mod namespace settings), structures (per-structure overrides), and structure_sets (spacing and separation).

The config file only saves entries that differ from their defaults. If you haven't changed anything for a particular structure, it won't appear in the file. This keeps the config clean and readable. Structurify automatically backs up your config before each save, keeping up to 5 timestamped backups in config/structurify/. If a save fails, it automatically restores from the most recent backup.

Server-Side Configuration

Structurify works entirely server-side for structure generation. On a dedicated server, configure everything in the JSON file and restart the server. Clients only need Structurify installed if they want to use the in-game GUI. The structure generation changes are handled by the server regardless of client configuration.

Compatibility

Structurify is designed to work with most world generation and structure mods. It automatically detects structures registered by any mod and makes them configurable. The mod offers enhanced compatibility with global datapack loaders like Paxi, Open Loader, Global Packs, and Global Datapacks, meaning structures added via datapacks from these loaders will appear in Structurify's config screen.

It also has specific compatibility with structure mods like Repurposed Structures, YUNG's mods (Better Dungeons, Better Strongholds, etc.), Structure Gel API, and Terra. However, mods that implement completely custom structure generation logic or heavily alter vanilla generation behavior may not work perfectly with Structurify's controls. If a mod bypasses Minecraft's standard structure placement pipeline, Structurify's spacing and biome controls may not apply.

Common Use Cases

Making Structures Rarer or More Common

To make all structures more spread out, enable the Global Spacing and Separation Modifier and set it above 1.0 (try 1.5 or 2.0 for noticeably rarer structures). To make a specific structure more common, go to Structure Sets, find its entry, and lower the Spacing and Separation values. For example, vanilla Villages have a default spacing of 34 chunks and separation of 8 chunks. Lowering these to 20 and 4 will roughly double Village density.

Cleaning Up Modded World Generation

In heavily modded worlds, structures from different mods can overlap or generate too close together. Enable "Prevent Structure Overlap" to stop structures from colliding. Then enable the Flatness Check globally to prevent structures from generating on steep terrain, which is a common source of ugly generation artifacts. Use the Biome Check in Blacklist mode with the default River and Ocean blacklist to stop land structures from extending over water.

Creating a Safe Spawn Area

Use the Distance from World Center feature to push dangerous structures away from spawn. Set a minimum distance on structures like Pillager Outposts, Witch Huts, or Ocean Monuments to give new players a safe starting zone. You can apply this per-namespace to push all structures from a specific mod away from spawn, or per-structure for more precise control.

Frequently Asked Questions

Does Structurify work on servers?

Yes. Structurify works entirely server-side for structure generation. Install it on the server and edit the config/structurify.json file directly, or install it on a singleplayer world first to configure it through the GUI, then copy the config file to your server. Clients don't need Structurify installed unless they want access to the in-game configuration screen.

Will disabling a structure remove existing ones from my world?

No. Structurify only affects structure generation in newly explored chunks. Structures that have already generated in previously loaded chunks will remain in your world. To see your changes, you need to travel to areas you haven't explored yet.

Why is a structure still generating even though I disabled it?

Make sure you're exploring new chunks that haven't been generated before. If you're in an area you've previously visited, those structures were placed during the original chunk generation. Also verify that you saved the config (clicked Done in the GUI) and check that you disabled the correct structure, as some mods register structures under unexpected names. Use /structurify dump to verify the current config state.

What's the difference between Spacing and Separation?

Spacing is the average distance in chunks between structures of the same type. Separation is the minimum guaranteed distance. For example, with spacing 34 and separation 8, structures will be at least 8 chunks apart and average 34 chunks apart. Separation must always be less than spacing. Together, they create a randomized but constrained placement grid.

Does Structurify work with modded structures?

Yes, Structurify automatically detects and lists all registered structures from every installed mod. They appear organized by namespace in the config screen. However, mods that use completely custom generation logic (bypassing Minecraft's standard structure placement system) may not respond to all of Structurify's controls. Most popular structure mods, including Repurposed Structures and YUNG's mods, are fully compatible.

Can I share my Structurify config with other players or servers?

Yes. Simply copy the config/structurify.json file to another instance's config folder. The config file is self-contained and includes a version tag for compatibility tracking. Note that if the other instance has different mods installed, entries for missing structures will be safely ignored on load.

Draft preview — this guide has not been reviewed or published yet.