DimStructRestrict is a lightweight Minecraft Forge mod for Minecraft 1.20.1 that allows you to control where structures can spawn based on dimension and structure rules. Designed and developed by Troy Cook (@cookta2012), this mod provides fine-grained control over world generation behavior — especially useful for modpack developers and world designers.
Initial release will be 1.20.1 other versions will be coming later.
The config file is located at:
/config/dimstructrestrict.json
If the file doesn't exist, it will be generated with example entries.
dimstructrestrict.json{
"structures": [
{ // Individual structure rules will override dimension rules FULL STOP
"id": "minecraft:village_plains", // Structure ID
"whitelist": ["minecraft:overworld"], // Allowed dimensions
"false_place": false, // If true, the structure will be "falsely placed" (may break mods)
"active": true // Whether this rule is active
}
],
"dimensions": [
{
"id": "minecraft:overworld", // Dimension ID
"whitelist": [], // Structures allowed in this dimension
"active": true
}
]
}
whitelistOnly listed dimensions or structures are allowed.
blacklistListed dimensions or structures will be prevented.
false_place (optional, default false)If true, prevents the structure from placing without skipping the generation step meaning it is marked on the map as generated.
> ⚠️ May cause issues with some structure-dependent mods.
active (optional, default false)Controls whether the rule is enforced. Useful for temporarily disabling rules without removing them.
{
"structures": [
{
"id": "minecraft:ruined_portal",
"blacklist": ["minecraft:the_end", "minecraft:the_nether"],
"active": true
}
],
"dimensions": [
{
"id": "minecraft:overworld",
"whitelist": ["minecraft:village_savanna", "minecraft:village_plains"],
"false_place": true,
"active": true
}
]
}
The mod uses a generic Rule system internally with two maps:
STRUCTURE_RULES for structure-specific rulesDIMENSION_RULES for dimension-based restrictionsEach Rule is backed by:
id: ResourceLocationmode: WHITELIST or BLACKLISTresource: Set of targets (structure/dimension IDs)false_place: Booleanactive: BooleanMIT License.
Feel free to open an issue or fork the project if you'd like to expand the system (e.g., gamerule-based control, datapack integration, or GUI support).