TerrainPlace
This mod works essentially the same way as the vanilla /place command but for custom terrain (i.e. WorldPainter-generated worlds).
- Загрузчики
- NeoForge
- Скачиваний на Modrinth
- 58
- Подписчиков на Modrinth
- 0
- версия
- 1
- Обновлён
- 8 сентября 20268 сент.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
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]<structure_id>is any currently loaded structure registry id (e.g.minecraft:village_plainsorterralith:fortified_village),[pos]is optional target block position (defaults to the block where the user is standing).[size], optional1–20. For jigsaw structures this is the jigsaw "max depth": how far the structure expands from its start. Most villages default to ~6. Ignored for non-jigsaw structures. The actual spread is still capped by the structure's ownmax_distance_from_center, so very large values stop growing once that radius is reached. Most of the time, themax_distance_from_centeroverrides this so don't expect it to work for most structures.
/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 villageBuild
Targets Minecraft 1.21.1 / NeoForge 21.1.x, Java 21, built with ModDevGradle.
gradle wrapper --gradle-version 8.8
./gradlew buildPorting 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
- This mod reads the runtime heightmap, so it reflects only whatever is currently in the world, including player-placed blocks and trees. For most structures
WORLD_SURFACEis what you want; if a structure looks like it's sitting one block too high in a forest, that's the heightmap counting leaves.
Частые вопросы
Как установить TerrainPlace?
Установите NeoForge под свою версию Minecraft, скачайте TerrainPlace под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть TerrainPlace?
У TerrainPlace есть сборки для Minecraft 1.21.1–26.2.
Нужен ли TerrainPlace на сервере?
Ставится только на сервер; игрокам ставить не нужно