Creating Shapes
MCP Tools
-
worldedit_generation
-
sphere, cylinder, pyramid, cone
-
build(code=...)
-
Python code that generates commands (RECOMMENDED)
-
worldedit_deform
-
Math expressions
build() Code Mode (RECOMMENDED)
Sphere
build(code=""" commands = [] cx, cy, cz, radius = 105, 70, 205, 10 for x in range(cx - radius, cx + radius + 1): for y in range(cy - radius, cy + radius + 1): for z in range(cz - radius, cz + radius + 1): if ((x-cx)**2 + (y-cy)**2 + (z-cz)**2)**0.5 <= radius: commands.append(f'/setblock {x} {y} {z} stone') """, description="Solid sphere")
Hollow Sphere
Add: if radius - thickness <= dist <= radius:
Dome (Half Sphere)
Limit y range: for y in range(base_y, base_y + radius + 1):
Use: dist = ((x-cx)**2 + (y-base_y)**2 + (z-cz)**2)**0.5
Cylinder
build(code=""" commands = [] cx, cz, base_y, radius, height = 105, 205, 64, 8, 20 for y in range(base_y, base_y + height): for x in range(cx - radius, cx + radius + 1): for z in range(cz - radius, cz + radius + 1): if ((x-cx)**2 + (z-cz)**2)**0.5 <= radius: commands.append(f'/setblock {x} {y} {z} stone_bricks') """, description="Solid cylinder")
Hollow: if radius - thickness <= dist <= radius:
Cone
Per layer: radius = base_radius * (1 - (y - base_y) / height)
Pyramid
build(code=""" commands = [] cx, cz, base_y, half = 105, 205, 64, 10 for layer in range(half + 1): size = half - layer for x in range(cx - size, cx + size + 1): for z in range(cz - size, cz + size + 1): commands.append(f'/setblock {x} {base_y + layer} {z} sandstone') """, description="Pyramid")
Torus (Donut)
build(code=""" commands = [] cx, cy, cz, major_r, minor_r = 105, 70, 205, 12, 4 for x in range(cx - major_r - minor_r, cx + major_r + minor_r + 1): for y in range(cy - minor_r, cy + minor_r + 1): for z in range(cz - major_r - minor_r, cz + major_r + minor_r + 1): dist_xz = ((x-cx)**2 + (z-cz)**2)**0.5 tube_dist = ((dist_xz - major_r)**2 + (y-cy)**2)**0.5 if tube_dist <= minor_r: commands.append(f'/setblock {x} {y} {z} gold_block') """, description="Torus")
Spiral Staircase
Use: angle = step * (2 * pi / steps_per_rotation)
x = cx + cos(angle) * radius, z = cz + sin(angle) * radius
Facing based on angle quadrant
Arched Bridge
Use: arc = sin(progress * pi) * arc_height where progress = (x - start) / length
WorldEdit Shapes
/sphere stone 10 # Solid sphere r=10 /hsphere glass 10 # Hollow sphere /cyl stone 5 10 # Cylinder r=5 h=10 /hcyl glass 5 10 # Hollow cylinder /pyramid sandstone 15 # Pyramid
Expression Shapes
/generate gold_block (sqrt(xx+zz)-12)^2+yy<16 # Torus /generate stone (xx)/100+(yy)/25+(zz)/100<1 # Ellipsoid /generate stone y<sin(x/5)*3+64 # Sine wave
Code Sandbox Limits
Allowed: for loops, list comprehensions, math ops, math module NOT Allowed: while , def , lambda , imports (except math), try/except
Limits: 10,000 commands max, 100,000 iterations max
Distance Functions
Euclidean (spheres): ((x-cx)**2 + (y-cy)**2 + (z-cz)**2)**0.5
2D (cylinders): ((x-cx)**2 + (z-cz)**2)**0.5
Manhattan (diamonds): abs(x-cx) + abs(y-cy) + abs(z-cz)
Chebyshev (cubes): max(abs(x-cx), abs(y-cy), abs(z-cz))
Shape Formulas
Shape Formula
Sphere x² + y² + z² ≤ r²
Ellipsoid (x/a)² + (y/b)² + (z/c)² ≤ 1
Cylinder x² + z² ≤ r²
Cone x² + z² ≤ (r(1-y/h))²
Torus (√(x²+z²) - R)² + y² ≤ r²
Tips
-
Hollow > Solid (fewer blocks)
-
Preview first: build(preview_only=True)
-
Use /fill for rectangular parts