generating-terrain
SKILL.md
Generating Terrain
MCP Tools
generate_terrain- rolling_hills, rugged_mountains, valley_network, mountain_range, plateautexture_terrain- temperate, alpine, desert, volcanic, jungle, swampsmooth_terrain- Post-process smoothing (iterations 1-5)worldedit_deform- Math expressionsworldedit_terrain_advanced- smooth, naturalize, regenbuild(code=...)- Procedural algorithms
Quick Start
generate_terrain(type="rolling_hills", center_x=100, center_y=64, center_z=200, size=50, amplitude=8)
texture_terrain(style="temperate", center_x=100, center_y=64, center_z=200, size=50)
smooth_terrain(center_x=100, center_y=64, center_z=200, size=50, iterations=2)
Procedural with build()
Rolling Hills
build(code="""
commands = []
def noise(x, z, seed=42):
n = x * 374761393 + z * 668265263 + seed
n = (n ^ (n >> 13)) * 1274126177
return ((n ^ (n >> 16)) & 255) / 255.0
base_x, base_z, size, base_y, amplitude = 100, 200, 50, 64, 8
for x in range(base_x, base_x + size):
for z in range(base_z, base_z + size):
height = noise(x, z, 1) * amplitude + noise(x*2, z*2, 2) * amplitude * 0.5
y = int(base_y + height)
commands.append(f'/setblock {x} {y} {z} grass_block')
for below in range(base_y - 5, y):
mat = 'dirt' if y - below <= 3 else 'stone'
commands.append(f'/setblock {x} {below} {z} {mat}')
""", description="Rolling hills")
Mountain Range
# Use ridged noise: abs(noise(x, z) - 0.5) * 2
# Snow above base+18, stone above base+12, grass below
River Valley
# Sinusoidal path: path_x = base_x + sin(i * 0.1) * 10
# Depth based on distance from center
# Water in deepest part, sand on banks
WorldEdit Expressions
//generate -h stone y<perlin(x/10,z/10,0)*5+64 # Noise terrain
//deform y+=sin(x/5)*3+sin(z/5)*3 # Sine wave hills
//generate stone (x*x+z*z)<radius^2 && y<sqrt(radius^2-x*x-z*z) # Dome
Biome Texturing
Temperate: grass_block (Y+0), dirt (Y-1 to -3), stone (Y-4+), flowers/tall_grass Alpine: snow_block (Y>base+18), stone (Y>base+12), grass (Y>base+6), spruce trees Desert: sand (3-4 layers), sandstone below, dead_bush/cactus Volcanic: magma_block/obsidian (Y>base+15), blackstone (Y>base+8), basalt, lava pools
Common Patterns
Cliff Face: Random ledge depth per Y level
Cave System: worldedit_terrain_advanced(command="caves", size=8, freq=40, rarity=7, minY=0, maxY=60)
Erosion: 20% random block removal from surface
Smoothing
//smooth 3 # 3 iterations
# Manual: average neighbor heights
def smooth(heights, x, z):
return sum(heights.get((x+dx, z+dz), 64) for dx in [-1,0,1] for dz in [-1,0,1]) // 9
Tips
- Generate in 16×16 chunks
- Only modify necessary Y levels
- Use /fill for rectangular areas
- Preview first:
build(preview_only=True)
Weekly Installs
3
Repository
amenti-labs/vibecraftGitHub Stars
79
First Seen
Jan 25, 2026
Security Audits
Installed on
gemini-cli3
claude-code3
codex3
opencode3
trae-cn2
antigravity2