Minecraft City Builder
MakeCode JavaScript for Minecraft Education Edition — type "buildcity" in chat to build a full city at your position.
City Buildings
- House: 6x6 spruce-plank floor & roof, white concrete walls, door opening, glass windows on all sides
- Apartment: 3-storey building (10x10), gray concrete floors & roof, double-row glass window strips, ground-floor entrance
- Office: 12x8 office, 6 blocks tall, double-row glass windows, gray concrete roof, front door
- Park: 15x15 grass with 4 oak trees (trunk + leaf canopy), stone path, and flowers
- Garden: 8x8 flower garden with alternating yellow & red flowers and corner trees
- Wind Turbines: 2 turbines — 12-block tower with 3-blade rotor
- Solar Panels: Raised spruce-plank field on log supports
- Road: 80-block long, 5-block wide gray concrete road connecting all buildings
MakeCode JavaScript
// === ECO CITY BUILDER ===
// Type "buildcity" in chat to build the whole city at your position
// Block references — using blockById for maximum reliability
// Concrete ID=251 (data: 0=white, 7=gray), Log ID=17, Leaves ID=18
let whiteConcrete = blocks.blockById(251)
let grayConcrete = blocks.blockWithData(blocks.blockById(251), 7)
let oakLog = blocks.blockById(17) // oak log
let spruceLog = blocks.blockWithData(blocks.blockById(17), 1) // spruce log
let oakLeaves = blocks.blockById(18) // oak leaves
// Helper: build a tree with trunk and leaf canopy
function buildTree(x: number, y: number, z: number) {
for (let dy = 1; dy <= 4; dy++) {
blocks.place(oakLog, pos(x, y + dy, z))
}
for (let dx = -2; dx <= 2; dx++) {
for (let dz = -2; dz <= 2; dz++) {
blocks.place(oakLeaves, pos(x + dx, y + 5, z + dz))
}
}
for (let dx = -1; dx <= 1; dx++) {
for (let dz = -1; dz <= 1; dz++) {
blocks.place(oakLeaves, pos(x + dx, y + 6, z + dz))
}
}
}
// SECTION 1 — ECO HOUSE (6x6)
function buildHouse(x: number, y: number, z: number) {
// Floor
for (let dx = 0; dx < 6; dx++) {
for (let dz = 0; dz < 6; dz++) {
blocks.place(PLANKS_SPRUCE, pos(x + dx, y, z + dz))
}
}
// Walls (front & back)
for (let dx = 0; dx < 6; dx++) {
for (let dy = 1; dy < 5; dy++) {
blocks.place(whiteConcrete, pos(x + dx, y + dy, z))
blocks.place(whiteConcrete, pos(x + dx, y + dy, z + 5))
}
}
// Walls (left & right)
for (let dz = 0; dz < 6; dz++) {
for (let dy = 1; dy < 5; dy++) {
blocks.place(whiteConcrete, pos(x, y + dy, z + dz))
blocks.place(whiteConcrete, pos(x + 5, y + dy, z + dz))
}
}
// Door opening
blocks.place(AIR, pos(x + 2, y + 1, z))
blocks.place(AIR, pos(x + 2, y + 2, z))
// Windows (front, back, and sides)
blocks.place(GLASS, pos(x + 1, y + 2, z))
blocks.place(GLASS, pos(x + 4, y + 2, z))
blocks.place(GLASS, pos(x + 1, y + 2, z + 5))
blocks.place(GLASS, pos(x + 4, y + 2, z + 5))
blocks.place(GLASS, pos(x, y + 2, z + 2))
blocks.place(GLASS, pos(x + 5, y + 2, z + 2))
// Roof
for (let dx = 0; dx < 6; dx++) {
for (let dz = 0; dz < 6; dz++) {
blocks.place(PLANKS_SPRUCE, pos(x + dx, y + 5, z + dz))
}
}
}
// SECTION 2 — APARTMENT (10x10, 3 floors)
function buildApartment(x: number, y: number, z: number) {
for (let floor = 0; floor < 3; floor++) {
let fy = y + (floor * 6)
// Floor slab
for (let dx = 0; dx < 10; dx++) {
for (let dz = 0; dz < 10; dz++) {
blocks.place(grayConcrete, pos(x + dx, fy, z + dz))
}
}
// Walls
for (let dy = 1; dy < 5; dy++) {
for (let i = 0; i < 10; i++) {
blocks.place(whiteConcrete, pos(x + i, fy + dy, z))
blocks.place(whiteConcrete, pos(x + i, fy + dy, z + 9))
blocks.place(whiteConcrete, pos(x, fy + dy, z + i))
blocks.place(whiteConcrete, pos(x + 9, fy + dy, z + i))
}
}
// Window strips (2 rows tall)
for (let i = 2; i < 8; i++) {
blocks.place(GLASS, pos(x + i, fy + 2, z))
blocks.place(GLASS, pos(x + i, fy + 2, z + 9))
blocks.place(GLASS, pos(x + i, fy + 3, z))
blocks.place(GLASS, pos(x + i, fy + 3, z + 9))
}
// Door on ground floor
if (floor == 0) {
blocks.place(AIR, pos(x + 4, fy + 1, z))
blocks.place(AIR, pos(x + 4, fy + 2, z))
}
}
// Roof
for (let dx = 0; dx < 10; dx++) {
for (let dz = 0; dz < 10; dz++) {
blocks.place(grayConcrete, pos(x + dx, y + 18, z + dz))
}
}
}
// SECTION 3 — OFFICE BUILDING (12x8)
function buildOffice(x: number, y: number, z: number) {
// Floor
for (let dx = 0; dx < 12; dx++) {
for (let dz = 0; dz < 8; dz++) {
blocks.place(grayConcrete, pos(x + dx, y, z + dz))
}
}
// Walls
for (let dy = 1; dy <= 6; dy++) {
for (let i = 0; i < 12; i++) {
blocks.place(whiteConcrete, pos(x + i, y + dy, z))
blocks.place(whiteConcrete, pos(x + i, y + dy, z + 7))
}
for (let i = 0; i < 8; i++) {
blocks.place(whiteConcrete, pos(x, y + dy, z + i))
blocks.place(whiteConcrete, pos(x + 11, y + dy, z + i))
}
}
// Large glass windows (2 rows)
for (let i = 2; i < 10; i++) {
blocks.place(GLASS, pos(x + i, y + 3, z))
blocks.place(GLASS, pos(x + i, y + 3, z + 7))
blocks.place(GLASS, pos(x + i, y + 4, z))
blocks.place(GLASS, pos(x + i, y + 4, z + 7))
}
// Door
blocks.place(AIR, pos(x + 5, y + 1, z))
blocks.place(AIR, pos(x + 5, y + 2, z))
// Roof
for (let dx = 0; dx < 12; dx++) {
for (let dz = 0; dz < 8; dz++) {
blocks.place(grayConcrete, pos(x + dx, y + 7, z + dz))
}
}
}
// SECTION 4 — GREEN PARK (15x15)
function buildPark(x: number, y: number, z: number) {
// Grass ground
for (let dx = 0; dx < 15; dx++) {
for (let dz = 0; dz < 15; dz++) {
blocks.place(GRASS, pos(x + dx, y, z + dz))
}
}
// Four trees with real trunks and canopies
buildTree(x + 3, y, z + 3)
buildTree(x + 11, y, z + 3)
buildTree(x + 3, y, z + 11)
buildTree(x + 11, y, z + 11)
// Stone path through middle
for (let dz = 0; dz < 15; dz++) {
blocks.place(STONE, pos(x + 7, y, z + dz))
}
// Flowers along the path
for (let dz = 1; dz < 15; dz += 2) {
blocks.place(YELLOW_FLOWER, pos(x + 6, y + 1, z + dz))
blocks.place(POPPY, pos(x + 8, y + 1, z + dz))
}
}
// SECTION 5 — FLOWER GARDEN (8x8)
function buildGarden(x: number, y: number, z: number) {
// Grass ground
for (let dx = 0; dx < 8; dx++) {
for (let dz = 0; dz < 8; dz++) {
blocks.place(GRASS, pos(x + dx, y, z + dz))
}
}
// Alternating flower rows
for (let dx = 1; dx < 7; dx++) {
for (let dz = 1; dz < 7; dz += 2) {
if (dx % 2 == 0) {
blocks.place(YELLOW_FLOWER, pos(x + dx, y + 1, z + dz))
} else {
blocks.place(POPPY, pos(x + dx, y + 1, z + dz))
}
}
}
// Corner trees
buildTree(x, y, z)
buildTree(x + 7, y, z + 7)
}
// SECTION 6 — WIND TURBINE
function buildWindTurbine(x: number, y: number, z: number) {
// Tower (12 blocks tall)
for (let dy = 0; dy < 12; dy++) {
blocks.place(whiteConcrete, pos(x, y + dy, z))
}
// Hub
blocks.place(PLANKS_SPRUCE, pos(x, y + 12, z))
// Blade 1 (right)
for (let i = 1; i <= 3; i++) {
blocks.place(whiteConcrete, pos(x + i, y + 12, z))
}
// Blade 2 (upper-left)
for (let i = 1; i <= 3; i++) {
blocks.place(whiteConcrete, pos(x - i, y + 12 + i, z))
}
// Blade 3 (lower-left)
for (let i = 1; i <= 3; i++) {
blocks.place(whiteConcrete, pos(x - i, y + 12 - i, z))
}
}
// SECTION 7 — ROAD (5 blocks wide)
function buildRoad(x: number, y: number, z: number, length: number) {
for (let dx = 0; dx < length; dx++) {
for (let dz = 0; dz < 5; dz++) {
blocks.place(grayConcrete, pos(x + dx, y, z + dz))
}
}
}
// SECTION 8 — SOLAR PANEL FIELD
function buildSolarPanels(x: number, y: number, z: number) {
// Support poles (spruce logs)
for (let dx = 0; dx < 8; dx += 3) {
blocks.place(spruceLog, pos(x + dx, y + 1, z))
blocks.place(spruceLog, pos(x + dx, y + 1, z + 5))
}
// Panel surface (raised platform)
for (let dx = 0; dx < 8; dx++) {
for (let dz = 0; dz < 6; dz++) {
blocks.place(PLANKS_SPRUCE, pos(x + dx, y + 2, z + dz))
}
}
}
// SECTION 9 — FULL ECO CITY
player.onChat("buildcity", function () {
let px = player.position().getValue(Axis.X)
let py = player.position().getValue(Axis.Y)
let pz = player.position().getValue(Axis.Z)
// Buildings (behind the road)
buildHouse(px + 2, py, pz + 8)
buildApartment(px + 12, py, pz + 7)
buildOffice(px + 26, py, pz + 8)
// Green spaces
buildPark(px + 42, py, pz + 6)
buildGarden(px + 60, py, pz + 8)
// Green energy
buildWindTurbine(px + 70, py, pz + 10)
buildWindTurbine(px + 76, py, pz + 10)
buildSolarPanels(px + 60, py, pz + 20)
// Main road connecting everything
buildRoad(px, py, pz, 80)
})How to Use
- Open Minecraft Education Edition and create a new world.
- Press C to open the Code Builder.
- Switch to JavaScript mode in MakeCode.
- Copy the code above and paste it into the editor.
- Click the green play button to run the code.
- Type buildcity in the chat to build the entire city at your position!