# How to create structures efficiently

**URL:** <https://forum.makecode.com/t/how-to-create-structures-efficiently/42700>\
**Category:** Help\
**Tags:** game\
**Created:** [March 14, 2026, 11:06pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700 "2026-03-14T23:06:20Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![CodingGrizzlyBear](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codinggrizzlybear/32/14838_2.png) [@CodingGrizzlyBear](https://forum.makecode.com/u/CodingGrizzlyBear)\
**Post date:** [March 14, 2026, 11:06pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/1 "2026-03-14T23:06:20Z")

</div>

Is there an easier way to auto-place structures made of blocks without painstakingly using  
[set (tile) at (column (0) row (0) )]  
for every block?

For example, how could I overlay a tilemap (tilemap of temple) on top of another tilemap (the chunk)

The game I want help on is below (The terrain is randomly generated)

> [@Bitsurvival Devlog](https://forum.makecode.com/t/bitsurvival-devlog/42689/3):
>
> New Version Adds a bunch of rare animals and introduces rabbits There is also now a starter menu and mining sounds I changed the player to steve () Also the knockback is x3 stronger play_button Rare Animals

---

<div class="post-metadata">

**Author:** ![WoofWoof](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/woofwoof/32/32523_2.png) [@WoofWoof](https://forum.makecode.com/u/WoofWoof)\
**Post date:** [March 15, 2026, 1:25am UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/2 "2026-03-15T01:25:41Z")

</div>

I bet you could make something to do this. You make mini tilemaps and then when you want to “apply” them to the world you have a simple loop like

```auto
For Y from 0 to (mini tilemap height) {
    For X from 0 to (mini tilemap width) {
         If (mini tilemap get tile at (location X Y) =/= (empty tile)) {
             (World Tilemap) set block at (location world location + X, world location + Y) to (mini Tilemap get tile at (X, Y))
}}}

```

---

<div class="post-metadata">

**Author:** ![BitBot](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/bitbot/32/33272_2.png) [@BitBot](https://forum.makecode.com/u/BitBot)\
**Post date:** [March 15, 2026, 1:25am UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/3 "2026-03-15T01:25:53Z")

</div>

You could do something like this:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/5/5/55bbb43cad7becc5f4501003b56db91971a93452.png)

---

<div class="post-metadata">

**Author:** ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)\
**Post date:** [March 15, 2026, 1:28am UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/4 "2026-03-15T01:28:46Z")

</div>

> [@How to put a tilemap in a tilemap](https://forum.makecode.com/t/how-to-put-a-tilemap-in-a-tilemap/42040/5):
>
> The color-coded tilemaps extension works great for this, as you can just draw the house image onto map the world image with 1 block. Otherwise you would need nested for each loops to run through a tilemaps one by one and place each tile on a position on the main map.

`@Rune` 's help on my topic

---

<div class="post-metadata">

**Author:** ![BLADEr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/blader/32/16422_2.png) [@BLADEr](https://forum.makecode.com/u/BLADEr)\
**Post date:** [March 15, 2026, 9:08pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/5 "2026-03-15T21:08:24Z")

</div>

This as a custom extension would be pretty cool. I’m sure what you could do is run a loop to put all the tiles into an array and then loop it back into the tilemap you want to draw on, like `@BitBot` and `@WoofWoof` said.

---

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/luke/32/32519_2.png) [@Luke](https://forum.makecode.com/u/Luke)\
**Post date:** [March 15, 2026, 9:16pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/6 "2026-03-15T21:16:06Z")

</div>

Richard’s [[Extension] arcade-tile-scanner](https://forum.makecode.com/t/extension-arcade-tile-scanner/41883) extension might be helpful

---

<div class="post-metadata">

**Author:** ![CodingGrizzlyBear](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codinggrizzlybear/32/14838_2.png) [@CodingGrizzlyBear](https://forum.makecode.com/u/CodingGrizzlyBear)\
**Post date:** [March 17, 2026, 1:28am UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/7 "2026-03-17T01:28:20Z")

</div>

Hm…

I’ll try that.

Thanks a lot for the help!!

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [March 19, 2026, 5:59pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/8 "2026-03-19T17:59:54Z")

</div>

@CodingGrizzlyBear the tile util extension makes this super easy!

here’s some example code for ya:

> **[tilemap-composite-example](https://arcade.makecode.com/33032-84129-28974-65945)**
>
> an example of how to place a tilemap onto another tilemap

note that this function passes the tilemap in an array because we don’t have tilemaps as a supported function argument type.

i would definitely not use the color coded tilemap extension, because that extension is really just for backwards compatibility with a very old version of arcade.

---

<div class="post-metadata">

**Author:** ![CodingGrizzlyBear](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codinggrizzlybear/32/14838_2.png) [@CodingGrizzlyBear](https://forum.makecode.com/u/CodingGrizzlyBear)\
**Post date:** [March 20, 2026, 5:04pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/9 "2026-03-20T17:04:19Z")

</div>

I still don’t really get how to use it…

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [March 23, 2026, 5:03pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/10 "2026-03-23T17:03:33Z")

</div>

can you give me more info, what part are you confused about?

basically, you just need to call the `stampTilemapAtLocation` function to draw a tilemap on top of the current tilemap. the first argument to that function will be the location of the top-left tile where the tilemap will be drawn, and the second argument is the tilemap you want drawn.

in my example, i drew a bunch of houses all over the place. try messing with the location parameter and see how the game changes, that might make it more obvious how things are working

---

<div class="post-metadata">

**Author:** ![CodingGrizzlyBear](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codinggrizzlybear/32/14838_2.png) [@CodingGrizzlyBear](https://forum.makecode.com/u/CodingGrizzlyBear)\
**Post date:** [March 24, 2026, 3:19am UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/11 "2026-03-24T03:19:30Z")

</div>

I looked at the code and now I get it.

I also made an extension to make it easier, The Tilestamp Extension

> **[Tile Stamping Extension](https://arcade.makecode.com/S36569-30930-91337-67152)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

---

<div class="post-metadata">

**Author:** ![JakaBasej01](https://avatars.discourse-cdn.com/v4/letter/j/ce73a5/32.png) [@JakaBasej01](https://forum.makecode.com/u/JakaBasej01)\
**Post date:** [March 25, 2026, 9:02pm UTC](https://forum.makecode.com/t/how-to-create-structures-efficiently/42700/12 "2026-03-25T21:02:22Z")

</div>

> [@CodingGrizzlyBear](#):
>
> Is there an easier way to auto-place structures made of blocks without painstakingly using [set (tile) at (column (0) row (0) )] for every block?

Using nested loops to iterate through a set of coordinates or a 2D array is definitely the way to go here. It keeps your code much cleaner than manual placement, especially when working with procedurally generated terrain.
