Home›Java›Mods›TerrainPlace
ModsJava

TerrainPlace

Java mod listed for Minecraft 1.21–26.x. Downloads from the MC Java Mods app on Android.

by CaptainHaddock2016 · on Modrinth

This mod works essentially the same way as the vanilla /place command but for custom terrain (i.e. WorldPainter-generated worlds).

⬇ Download on Modrinth
TerrainPlace — screenshot 1

Terrain Place

A small NeoForge mod that adds /placeterrain which acts as an alternative to the vanilla '/place' command for custom terrain (e.g. WorldPainter-generated worlds)

The Vanilla /place command uses Minecraft's ChunkGenerator for the height map of the area where the structure is to be placed, and in turn the ChunkGenerator calculates this heightmap based on the world seed. However, for custom terrain the heightmap is modified so using /place will result in either floating or underground structures. This mod overrides the ChunkGenerator's heightmap calculations and instead takes a snapshot of the actual terrain. /placeterrain reads the loaded terrain heightmap instead of the seed, so the structure wraps onto the real surface (crudely).

WARNING: This method is by no means perfect and can result in awkward structure placements. For this reason, a /placeterrain undo command exists to undo structure placements (up to the last 8)

Usage

/placeterrain structure <structure_id> [pos] [size]

/placeterrain undo reverts the most recent placement in the current dimension, restoring the exact blocks that were there before. It keeps the last 8 placements per dimension, so you can undo repeatedly. History is in-memory only — it's cleared on server restart, and very large placements aren't kept.

Examples

/placeterrain structure minecraft:desert_pyramid ~ ~ ~
/placeterrain structure minecraft:village_plains ~ ~ ~ 10        # a big plains village

Build

Targets Minecraft 1.21.1 / NeoForge 21.1.x, Java 21, built with ModDevGradle.

gradle wrapper --gradle-version 8.8
./gradlew build

Porting to another Minecraft version

The only version-sensitive code is the block of generator forwarding methods at the bottom of TerrainAwareChunkGenerator (applyCarvers, buildSurface, fillFromNoise, etc.). They are never called by the command, but ChunkGenerator requires them to be implemented. If you bump the version and the build complains there, align those signatures with the new ChunkGenerator. Most of the height logic and command should carry over unchanged.

Known limitations

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more