Who built the pyramids is the riddles of the ages but who built the pyramid in minecraft is going to take on a new significance... The goal here is to create a pyramid and from start to finish this pyramid is going to be available to for everyone to create kinda like a template or structural blueprint of sorts for you to build in, but that if your willing to go the distance and reach the next phase of the building process. Right now the pathways are going down or in another scenario the streets are being made, what is in store next is where the wide array of builds come in to populate the vacant area you can even incorporate structural blocks here if you wish. There is so much to the pyramid I have yet to begin to explain what its going to be able to do, but in order to get there we must start at the bottom and developed things here.
If you want to, check out this optional base plate build area for the pyramid builder commands to function in. Just one of many types of design waiting to be tested out and it also will help in the debugging process in building.
#pyramid base BL
execute at @e[name=Drone] run fill ~-47 ~-1 ~-47 ~47 ~-1 ~47 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-46 ~0 ~-46 ~46 ~0 ~46 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-45 ~1 ~-45 ~45 ~1 ~45 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-44 ~2 ~-44 ~44 ~2 ~44 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-43 ~3 ~-43 ~43 ~3 ~43 minecraft:cut_sandstone
#Build Area
execute at @e[name=Drone] run fill ~-41 ~1 ~-41 ~41 ~1 ~41 minecraft:air
execute at @e[name=Drone] run fill ~-41 ~2 ~-41 ~41 ~2 ~41 minecraft:air
execute at @e[name=Drone] run fill ~-41 ~3 ~-41 ~41 ~3 ~41 minecraft:air
#Grid Walls
execute at @e[name=Drone] run fill ~-42 ~1 ~-30 ~42 ~3 ~-30 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-18 ~42 ~3 ~-18 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-6 ~42 ~3 ~-6 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~6 ~42 ~3 ~6 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~18 ~42 ~3 ~18 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~30 ~42 ~3 ~30 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-30 ~1 ~-42 ~-30 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-18 ~1 ~-42 ~-18 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-6 ~1 ~-42 ~-6 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~6 ~1 ~-42 ~6 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~18 ~1 ~-42 ~18 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~30 ~1 ~-42 ~30 ~3 ~42 minecraft:cut_sandstone
#Interior Grid Walls
execute at @e[name=Drone] run fill ~-42 ~1 ~-38 ~42 ~3 ~-38 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-34 ~42 ~3 ~-34 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-26 ~42 ~3 ~-26 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-22 ~42 ~3 ~-22 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-14 ~42 ~3 ~-14 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-10 ~42 ~3 ~-10 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-2 ~42 ~3 ~-2 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~0 ~42 ~3 ~0 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~2 ~42 ~3 ~2 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~10 ~42 ~3 ~10 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~14 ~42 ~3 ~14 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~22 ~42 ~3 ~22 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~26 ~42 ~3 ~26 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~34 ~42 ~3 ~34 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~38 ~42 ~3 ~38 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-38 ~1 ~-42 ~-38 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-34 ~1 ~-42 ~-34 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-26 ~1 ~-42 ~-26 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-22 ~1 ~-42 ~-22 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-14 ~1 ~-42 ~-14 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-10 ~1 ~-42 ~-10 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-2 ~1 ~-42 ~-2 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~0 ~1 ~-42 ~0 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~2 ~1 ~-42 ~2 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~10 ~1 ~-42 ~10 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~14 ~1 ~-42 ~14 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~22 ~1 ~-42 ~22 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~26 ~1 ~-42 ~26 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~34 ~1 ~-42 ~34 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~38 ~1 ~-42 ~38 ~3 ~42 minecraft:cut_sandstone
#Setblock Stage 1
execute at @e[name=Drone] run setblock ~0 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~12 minecraft:redstone_block
#Setblock Stage 2
execute at @e[name=Drone] run setblock ~-40 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~0 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~0 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~0 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~12 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~24 ~1 ~40 minecraft:coal_block
Thanks Megacraft107, that was a good catch. I over looked that big time. The optional base build area was just updated in the post above. Thankfully everything is in a spreadsheet so fixing the set of command was easy and was done in no time. I have made almost a thousand of commands going in this pyramid build alone and what had happened is I forgot to add back the second coordinate array into the command builder after I was finished with all the setblock commands. So with that said I will give a short explanation to what the next phase of building process is and breakdown how that is going to work. The second build process is a multi-functional build process, one of my early build Ideas was to construct a giant main path like what is the bot is doing now and then incorporate a secret secondary set of paths that will build through an array of build command and in theory I could create extra spaces that could potentially lead to secret chambers with in the build or possible short cuts. Just keep in mind that the second phase of the build process is going to be a multi-functional build process that will be very deterministic to what it will be able to build based on how the vacant build areas look beforehand and it will also incorporate a variety of ways to go about building to keep things from getting repetitive. I attached a Blueprint to the post so you can see how I imagine the early build Idea I had and that is just one of many.
Thanks Megacraft107, that was a good catch. I over looked that big time. The optional base build area was just updated in the post above. Thankfully everything is in a spreadsheet so fixing the set of command was easy and was done in no time. I have made almost thousand of commands going in this pyramid build alone and what had happened is I forgot to add back the second coordinate array into the command builder after I was finished with all the setblock commands. So with that said I will give a short explanation to how the next phase of building process is and breakdown how that is going to work. The second build process is a multi-functional build process, One of my early build Ideas was to have this of a giant main path and incorporating secret secondary set of paths that will build through an array of build command and in theory I could create extra spaces that could potentially lead to secret chambers with in the build. Just keep in mind that the second phase of the build process is going to be a multi-functional build process that will be very deterministic to what it will be able to build based on how the vacant build areas look beforehand and it will also incorporate a variety of ways to go about building to keep things from getting repetitive. I attached a Blueprint to the post so you can see how I imagine the early build Idea I had and that is just one of many.
So far the generation looks great if you take into consideration that you're planning everything out on a piece of paper without any testing.
So far the generation looks great if you take into consideration that you're planning everything out on a piece of paper without any testing.
Thanks, I have big plans in store for this pyramid. Getting everything setup is where the challenge is at. So far I have worked almost everything out when it comes to the pyramid build plans and how the structure could potentially generate. Right now everything is in the developmental stage, Ideas here are much appreciated and you have given a lot of good ideas which I've taken in consideration. Now if you were ever wondering what is the point with the coal blocks in the build, well wonder no longer this next blueprint will explain everything.Take a look at the Build Step Sheet you can see how I intend to handle irregularities in each floor layer of the build. Take note that not every floor level is perfectly square with the builder build commands as of now, so each layer that has irregularities in the build has been marked by a certain corresponding color that will represent how the builder will go about building in the specified area. See the builder will work as desired in the normal square basic build areas and that is because everything is of equal dimensions but when it comes to the vacant areas of the build that are not congruent with how the bot will build I have decided to place a special block in a designated spot to predetermine the corresponding build that will make up the area so no big gaping holes or strange block structures are going to be able to stick out of the build. Once the next big step for the build is underway, which is the multi-functional build process, tackling this problem here will be very easy. Another one of my goals with the multi-functional build process is to set it up a maze building process that in theory could potentially add mazes in certain pre-selected of the build. Now this type of command can only work if everything is in the right proportions where a maze can generate properly with out going haywire, but first thing first which is establishing the basic to the multi-functional build process.
Thanks, I have big plans in store for this pyramid. Getting everything setup is where the challenge is at. So far I have worked almost everything out when it comes to the pyramid build plans and how the structure could potentially generate. Right now everything is in the developmental stage, Ideas here are much appreciated and you have given a lot of good ideas which I've taken in consideration. Now if you were ever wondering what is the point with the coal blocks in the build, well wonder no longer this next blueprint will explain everything.Take a look at the Build Step Sheet you can see how I intend to handle irregularities in each floor layer of the build. Take note that not every floor level is perfectly square with the builder build commands as of now, so each layer that has irregularities in the build has been marked by a certain corresponding color that will represent how the builder will go about building in the specified area. See the builder will work as desired in the normal square basic build areas and that is because everything is of equal dimensions but when it comes to the vacant areas of the build that are not congruent with how the bot will build I have decided to place a special block in a designated spot to predetermine the corresponding build that will make up the area so no big gaping holes or strange block structures are going to be able to stick out of the build. Once the next big step for the build is underway, which is the multi-functional build process, tackling this problem here will be very easy. Another one of my goals with the multi-functional build process is to set it up a maze building process that in theory could potentially add mazes in certain pre-selected of the build. Now this type of command can only work if everything is in the right proportions where a maze can generate properly with out going haywire, but first thing first which is establishing the basic to the multi-functional build process.
Seems like you have it all under control. Just paste the function when it's done.
I finally decided to look for the North South East West direction in Minecraft and stumble across this https://minecraft.gamepedia.com/Coordinates . Now I can officially say everything is dialed in. In this post you will see why this is important.
This next step is establishing the basics to the multi-functional build process is to setup this part of the command sequences that will carry everything out in its own function process. I think the best way to do is to add a build:detect function right before the build path commands start executing, this way it acts as a check in the build order of events.
Build Path with Detect Block for Selecting Avaliable Builds function
##Scout for custom builds and predetermine builds
function build:detect
#Build Path
#Stage 1 Determine Available Directions
scoreboard players set @e[type=armor_stand,name=builder] path 0
execute positioned ~ ~ ~ if block ~12 ~1 ~ redstone_block run summon armor_stand ~12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XP","R"]}
execute positioned ~ ~ ~ if block ~-12 ~1 ~ redstone_block run summon armor_stand ~-12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XN","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~12 redstone_block run summon armor_stand ~ ~ ~12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZP","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~-12 redstone_block run summon armor_stand ~ ~ ~-12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZN","R"]}
#Select Random Direction
tp @e[type=armor_stand,name=builder] @e[name=guide,type=armor_stand,tag=R,sort=random,limit=1]
#Add path score to builder to store direction path 1=XP 2=XN 3=ZP 4=ZN
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=..1,tag=XP] run scoreboard players set @e[type=armor_stand,name=builder] path 1
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=..1,tag=XN] run scoreboard players set @e[type=armor_stand,name=builder] path 2
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=..1,tag=ZP] run scoreboard players set @e[type=armor_stand,name=builder] path 3
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=..1,tag=ZN] run scoreboard players set @e[type=armor_stand,name=builder] path 4
#Remove Builders Guide
kill @e[name=guide,type=armor_stand,tag=R]
#Set white_wool for Backtracking block before the next direction is chosen
execute at @e[type=armor_stand,name=builder,scores={path=1..4}] run setblock ~ ~1 ~ white_wool
#Builder will build Path based on if path mathces score
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1}] run fill ~2 ~1 ~-1 ~6 ~3 ~1 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1}] positioned ~12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2}] run fill ~-2 ~1 ~-1 ~-6 ~3 ~1 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2}] positioned ~-12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3}] run fill ~-1 ~1 ~2 ~1 ~3 ~6 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3}] positioned ~ ~ ~12 run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4}] run fill ~-1 ~1 ~-2 ~1 ~3 ~-6 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4}] positioned ~ ~ ~-12 run function build:path
#Stage 0 Start Backtrack phase if there are no available directions chosen, score will remain zero until new direction is found
#Select Random Backtrack Direction
execute positioned ~ ~ ~ if block ~12 ~1 ~ white_wool run summon armor_stand ~12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XP","R","backtrack"]}
execute positioned ~ ~ ~ if block ~-12 ~1 ~ white_wool run summon armor_stand ~-12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XN","R","backtrack"]}
execute positioned ~ ~ ~ if block ~ ~1 ~12 white_wool run summon armor_stand ~ ~ ~12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZP","R","backtrack"]}
execute positioned ~ ~ ~ if block ~ ~1 ~-12 white_wool run summon armor_stand ~ ~ ~-12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZN","R","backtrack"]}
#Select Random Direction
tp @e[type=armor_stand,name=builder] @e[name=guide,type=armor_stand,tag=R,tag=backtrack,sort=random,limit=1]
#Add TAg backtrack to builder and set path score to builder to store direction path 1=XP 2=XN 3=ZP 4=ZN
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,tag=backtrack] run tag @e[type=armor_stand,name=builder] add backtrack
execute at @e[type=armor_stand,name=builder,tag=backtrack] if entity @e[type=armor_stand,name=guide,distance=..1,tag=XP] run scoreboard players set @e[type=armor_stand,name=builder] path 1
execute at @e[type=armor_stand,name=builder,tag=backtrack] if entity @e[type=armor_stand,name=guide,distance=..1,tag=XN] run scoreboard players set @e[type=armor_stand,name=builder] path 2
execute at @e[type=armor_stand,name=builder,tag=backtrack] if entity @e[type=armor_stand,name=guide,distance=..1,tag=ZP] run scoreboard players set @e[type=armor_stand,name=builder] path 3
execute at @e[type=armor_stand,name=builder,tag=backtrack] if entity @e[type=armor_stand,name=guide,distance=..1,tag=ZN] run scoreboard players set @e[type=armor_stand,name=builder] path 4
#Remove Builders Guide
kill @e[name=guide,type=armor_stand,tag=R]
execute at @e[type=armor_stand,name=builder,scores={path=1..4},tag=backtrack] run setblock ~ ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1},tag=backtrack] if block ~12 ~1 ~ white_wool positioned ~-12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2},tag=backtrack] if block ~-12 ~1 ~ white_wool positioned ~12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3},tag=backtrack] if block ~ ~1 ~12 white_wool positioned ~ ~ ~-12 run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4},tag=backtrack] if block ~ ~1 ~-12 white_wool positioned ~ ~ ~12 run function build:path
tag @e[type=armor_stand,name=builder] remove backtrack
Basically to make this work I added a new function command to the path builder function called build:detect that will detect for predetermine build areas and custom builds alike by which block its detecting for and where. What makes this a multi-functional build process is that I incorporated stages to the building process that will determine what build it should be executed through an array of stage tag selectors. Now here's how this build detect array function will work. Every unique block represents a certain stage of the build process that will be executed, here I have a Coal block to represents Stage0 an Iron block for StageA and a Diamond Block for Stage B... the next procedure is the summon armor stand accompanied with the name build, along with the tag called master, stage and the four cardinal direction NSEW. The most important Tag selector in the Detect stage is the N, S, E, W tags because these tags here will determine which what build direction are available that will be executed based on the block detected positioned, now take note that as of now not every armor stand will have the four cardinal direction NSEW in their tags because each of those tags are critical in selecting the available build commands. Now if the build armor stand had the complete set of NSEW direction it will have accesses to all the available builds more on that later. Now the next Important tag here is the Stage Tag and this is the tag that make this a multi-functional building process and it only needed until the next build function process list:build_1. By issuing a certain Stage Tag to each of the build armor stand helps reduce the need for an elaborate List of builds command to execute from, now all the potential build command can be reduced to a single folder of build list sequences with specialization in mind for unique areas in the build process.
Detect Function
#Predetermine Build Detect Stage 0
execute positioned ~ ~ ~ if block ~4 ~1 ~ coal_block run summon armor_stand ~4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~ coal_block run summon armor_stand ~-4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~4 coal_block run summon armor_stand ~ ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-4 coal_block run summon armor_stand ~ ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~4 coal_block run summon armor_stand ~4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~-4 coal_block run summon armor_stand ~-4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~4 coal_block run summon armor_stand ~-4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~-4 coal_block run summon armor_stand ~4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W"],NoGravity:1,Invulnerable:1,Invisible:1}
#Predetermine Build Detect Stage A
execute positioned ~ ~ ~ if block ~8 ~1 ~ iron_block run summon armor_stand ~8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","W","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~ iron_block run summon armor_stand ~-8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~8 iron_block run summon armor_stand ~ ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-8 iron_block run summon armor_stand ~ ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~8 iron_block run summon armor_stand ~8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~-8 iron_block run summon armor_stand ~-8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~8 iron_block run summon armor_stand ~-8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~-8 iron_block run summon armor_stand ~8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","W"],NoGravity:1,Invulnerable:1,Invisible:1}
#Predetermine Build Detect Stage B
execute positioned ~ ~ ~ if block ~8 ~1 ~ diamond_block run summon armor_stand ~8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","W","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~ diamond_block run summon armor_stand ~-8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~8 diamond_block run summon armor_stand ~ ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-8 diamond_block run summon armor_stand ~ ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~8 diamond_block run summon armor_stand ~8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~-8 diamond_block run summon armor_stand ~-8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~8 diamond_block run summon armor_stand ~-8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~-8 diamond_block run summon armor_stand ~8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","W"],NoGravity:1,Invulnerable:1,Invisible:1}
#Customized Build Detect Stage C
#Remove Block
execute at @e[type=armor_stand,name=build,tag=master] run setblock ~ ~ ~ air
#Build
#available build commands
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=E,tag=W] run summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build1"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build2"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build3"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build4"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build5"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build6"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build7"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build8"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build9"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build10"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build11"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build12"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build13"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build14"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build15"],NoGravity:1,Invulnerable:1,Invisible:1}
#
#select build commands
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=..2] run tp @e[name=command,type=armor_stand,sort=random,limit=1,distance=..2] ~ ~ ~
#
#set build# to master build to execute build command
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build1] run function list:build_1
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build2] run function list:build_2
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build3] run function list:build_3
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build4] run function list:build_4
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build5] run function list:build_5
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build6] run function list:build_6
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build7] run function list:build_7
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build8] run function list:build_8
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build9] run function list:build_9
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build10] run function list:build_10
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build11] run function list:build_11
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build12] run function list:build_12
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build13] run function list:build_13
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build14] run function list:build_14
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build15] run function list:build_15
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build16] run function list:build_16
#
#clear build commands
kill @e[name=command,type=armor_stand]
#
Now the function command group below are each separated in their own build function files. Build 1 represents Function list:build_1 and Build 2 represents Function list:build_2 and so forth. I added a picture below for visual purposes to see what it will look like. This is where the Stage Tag comes into play for it the determining factor in what build command sequence that should be executed in each of the build functions. This way by having the represented stage tag in the in the functions drastically reduces the amount of build list that would be needed. Also as it stands now each function build file represents a unique room corresponding to a NSEW coordinate in the game. For Example the first build set will only be executed if all NSEW tag are all on the Build armor stand, If one of the NSEW tag happens to be missing this Build command here is no longer available for the armor stand to execute that build. I figured this way was the way to go because the rooms are still being created at random but this extra set of tags will also determine what room is available and where.
Build Function File Group
#Build 1
#NSEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
Build 2
#east
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 3
#west
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 4
#south
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 5
#north
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 6
#SW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 7
#NW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 8
#SE
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 9
#NE
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 10
#NEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 11
#SEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 12
#NES
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 13
#NWS
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 14
#NS
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2 air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
#Build 15
#EW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~ air
kill @e[type=armor_stand,name=build,tag=master,tag=stage]
edit: added new teleport command to the Build:Detect Command
I finally decided to look for the North South East West direction in Minecraft and stumble across this https://minecraft.gamepedia.com/Coordinates . Now I can officially say everything is dialed in. In this post you will see why this is important.
This next step is establishing the basics to the multi-functional build process is to setup this part of the command sequences that will carry everything out in its own function process. I think the best way to do is to add a build:detect function right before the build path commands start executing, this way it acts as a check in the build order of events.
Build Path with Detect Block for Selecting Avaliable Builds function
#Scout for custom builds
function build:detect
#Build Path
#Stage 1 Determine Available Path Directions
scoreboard players set @e[type=armor_stand,name=builder] path 0
execute positioned ~ ~ ~ if block ~12 ~1 ~ redstone_block run summon armor_stand ~12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XP","R"]}
execute positioned ~ ~ ~ if block ~-12 ~1 ~ redstone_block run summon armor_stand ~-12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XN","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~12 redstone_block run summon armor_stand ~ ~ ~12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZP","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~-12 redstone_block run summon armor_stand ~ ~ ~-12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZN","R"]}
#Select Random Direction
tp @e[type=armor_stand,name=builder] @e[name=guide,type=armor_stand,tag=R,sort=random,limit=1]
#Add path score to builder to store direction path 1=XP 2=XN 3=ZP 4=ZN
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=XP] run scoreboard players set @e[type=armor_stand,name=builder] path 1
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=XN] run scoreboard players set @e[type=armor_stand,name=builder] path 2
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=ZP] run scoreboard players set @e[type=armor_stand,name=builder] path 3
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=ZN] run scoreboard players set @e[type=armor_stand,name=builder] path 4
#Remove Builders Guide
kill @e[name=guide,type=armor_stand,tag=R]
#Set white_wool for Backtracking block before the next direction is chosen
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1..4}] run setblock ~ ~1 ~ white_wool
#Builder will build Path based on if path mathces score
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1}] run fill ~2 ~1 ~-1 ~6 ~3 ~1 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1}] positioned ~12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2}] run fill ~-2 ~1 ~-1 ~-6 ~3 ~1 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2}] positioned ~-12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3}] run fill ~-1 ~1 ~2 ~1 ~3 ~6 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3}] positioned ~ ~ ~12 run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4}] run fill ~-1 ~1 ~-2 ~1 ~3 ~-6 air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4}] positioned ~ ~ ~-12 run function build:path
#Stage 0 Start Backtrack phase if there are no available directions chosen, score will remain zero until new direction is found
#Select Random Backtrack Direction
execute positioned ~ ~ ~ if block ~12 ~1 ~ white_wool run summon armor_stand ~12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XP","R"]}
execute positioned ~ ~ ~ if block ~-12 ~1 ~ white_wool run summon armor_stand ~-12 ~ ~ {CustomName:"{\"text\":\"guide\"}",Tags:["XN","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~12 white_wool run summon armor_stand ~ ~ ~12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZP","R"]}
execute positioned ~ ~ ~ if block ~ ~1 ~-12 white_wool run summon armor_stand ~ ~ ~-12 {CustomName:"{\"text\":\"guide\"}",Tags:["ZN","R"]}
#Select Random Direction
tp @e[type=armor_stand,name=builder] @e[name=guide,type=armor_stand,tag=R,sort=random,limit=1]
#Add path score to builder to store direction path 1=XP 2=XN 3=ZP 4=ZN
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=XP] run scoreboard players set @e[type=armor_stand,name=builder] path 1
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=XN] run scoreboard players set @e[type=armor_stand,name=builder] path 2
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=ZP] run scoreboard players set @e[type=armor_stand,name=builder] path 3
execute at @e[type=armor_stand,name=builder] if entity @e[type=armor_stand,name=guide,distance=0,tag=ZN] run scoreboard players set @e[type=armor_stand,name=builder] path 4
#Remove Builders Guide
kill @e[name=guide,type=armor_stand,tag=R]
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1..4}] run setblock ~ ~1 ~ air
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=1}] if block ~12 ~1 ~ white_wool positioned ~-12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=2}] if block ~-12 ~1 ~ white_wool positioned ~12 ~ ~ run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=3}] if block ~ ~1 ~12 white_wool positioned ~ ~ ~-12 run function build:path
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=builder,scores={path=4}] if block ~ ~1 ~-12 white_wool positioned ~ ~ ~12 run function build:path
Basically to make this work I added a new function command to the path builder function called build:detect that will detect for predetermine build areas and custom builds alike by which block its detecting for and where. What makes this a multi-functional build process is that I incorporated stages to the building process that will determine what build it should be executed through an array of stage tag selectors. Now here's how this build detect array function will work. Every unique block represents a certain stage of the build process that will be executed, here I have a Coal block to represents Stage0 an Iron block for StageA and a Diamond Block for Stage B... the next procedure is the summon armor stand accompanied with the name build, along with the tag called master, stage and the four cardinal direction NSEW. The most important Tag selector in the Detect stage is the N, S, E, W tags because these tags here will determine which what build direction are available that will be executed based on the block detected positioned, now take note that as of now not every armor stand will have the four cardinal direction NSEW in their tags because each of those tags are critical in selecting the available build commands. Now if the build armor stand had the complete set of NSEW direction it will have accesses to all the available builds more on that later. Now the next Important tag here is the Stage Tag and this is the tag that make this a multi-functional building process and it only needed until the next build function process list:build_1. By issuing a certain Stage Tag to each of the build armor stand helps reduce the need for an elaborate List of builds command to execute from, now all the potential build command can be reduced to a single folder of build list sequences with specialization in mind for unique areas in the build process.
Detect Function
#Predetermine Build Detect Stage 0
execute positioned ~ ~ ~ if block ~4 ~1 ~ coal_block run summon armor_stand ~4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~ coal_block run summon armor_stand ~-4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~4 coal_block run summon armor_stand ~ ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-4 coal_block run summon armor_stand ~ ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~4 coal_block run summon armor_stand ~4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~-4 coal_block run summon armor_stand ~-4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~4 coal_block run summon armor_stand ~-4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~-4 coal_block run summon armor_stand ~4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
#Predetermine Build Detect Stage A
execute positioned ~ ~ ~ if block ~8 ~1 ~ iron_block run summon armor_stand ~8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","W","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~ iron_block run summon armor_stand ~-8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~8 iron_block run summon armor_stand ~ ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-8 iron_block run summon armor_stand ~ ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~8 iron_block run summon armor_stand ~8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~-8 iron_block run summon armor_stand ~-8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~8 iron_block run summon armor_stand ~-8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","N","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~-8 iron_block run summon armor_stand ~8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageA","S","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
#Predetermine Build Detect Stage B
execute positioned ~ ~ ~ if block ~8 ~1 ~ diamond_block run summon armor_stand ~8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","W","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~ diamond_block run summon armor_stand ~-8 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E","N"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~8 diamond_block run summon armor_stand ~ ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-8 diamond_block run summon armor_stand ~ ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~8 diamond_block run summon armor_stand ~8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~-8 diamond_block run summon armor_stand ~-8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-8 ~1 ~8 diamond_block run summon armor_stand ~-8 ~1 ~8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","N","E"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~8 ~1 ~-8 diamond_block run summon armor_stand ~8 ~1 ~-8 {CustomName:"{\"text\":\"build\"}",Tags:["master","stageB","S","W"],"NoGravity:1,Invulnerable:1,Invisible:1}
#Customized Build Detect Stage C
#
#Build
#available build commands
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=E,tag=W] run summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build1"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build2"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build3"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build4"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build5"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build6"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build7"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build8"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build9"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build10"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build11"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build12"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build13"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build14"],"NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E,tag=W] summon armor_stand ~2 ~0 ~2 {CustomName:"{\"text\":\"command\"}",Tags:["build15"],"NoGravity:1,Invulnerable:1,Invisible:1}
#
#select build commands
tp @e[name=build,tag=master,type=armor_stand] @e[name=command,type=armor_stand,sort=random,limit=1]
#
#set build# to master build to execute build command
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build1] run function list:build_1
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build2] run function list:build_2
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build3] run function list:build_3
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build4] run function list:build_4
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build5] run function list:build_5
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build6] run function list:build_6
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build7] run function list:build_7
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build8] run function list:build_8
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build9] run function list:build_9
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build10] run function list:build_10
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build11] run function list:build_11
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build12] run function list:build_12
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build13] run function list:build_13
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build14] run function list:build_14
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build15] run function list:build_15
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build16] run function list:build_16
#
#clear build commands
kill @e[name=command,type=armor_stand]
Now the function command group below are each separated in their own build function files. Build 1 represents Function list:build_1 and Build 2 represents Function list:build_2 and so forth. I added a picture below for visual purposes to see what it will look like. This is where the Stage Tag comes into play for it the determining factor in what build command sequence that should be executed in each of the build functions. This way by having the represented stage tag in the in the functions drastically reduces the amount of build list that would be needed. Also as it stands now each function build file represents a unique room corresponding to a NSEW coordinate in the game. For Example the first build set will only be executed if all NSEW tag are all on the Build armor stand, If one of the NSEW tag happens to be missing this Build command here is no longer available for the armor stand to execute that build. I figured this way was the way to go because the rooms are still being created at random but this extra set of tags will also determine what room is available and where.
Build Function File Group
#Build 1
#NSEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
Build 2
#east
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
#Build 3
#west
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
#Build 4
#south
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
#Build 5
#north
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
#Build 6
#SW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
#Build 7
#NW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run ill ~-2 ~ ~ ~-2 ~1 ~
#Build 8
#SE
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run ill ~2 ~ ~ ~2 ~1 ~
#Build 9
#NE
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
#Build 10
#NEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
#Build 11
#SEW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
#Build 12
#NES
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
#Build 13
#NWS
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
#Build 14
#NS
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~2 ~ ~1 ~2
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~ ~ ~-2 ~ ~1 ~-2
#Build 15
#EW
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~2 ~ ~ ~2 ~1 ~
execute positioned ~ ~ ~ if entity @e[type=armor_stand,name=build,tag=master,tag=stage] run fill ~-2 ~ ~ ~-2 ~1 ~
Now that does it for now.
It's not working. The functions have no errors but nothing happens when I run build:path at the "Drone"
It's not working. The functions have no errors but nothing happens when I run build:path at the "Drone"
Also, there are no armor stands "XN, XP, ZP, ZN"
Yea that's my mistake there, I accidentally posted it to soon. I wasn't even finished, I was still in the process of completing the commands and making the post so I've been in rush mode for the past couple of hours getting everything together and correcting the mistakes at the same time. Now the reason why the Drone does nothing when you run build:path at the "Drone" is because the Drone is the launch pad for the setup command down here basically the "builder" does the work. Also I just recently updated my previous post with the new commands I think everything should be working fine now sorry for the inconvenience. And if things are working try experimenting with the build by placing down coal some blocks in the center of the empty grids.
#setup command function
scoreboard objectives add path dummy
execute at @e[name=Drone] run summon armor_stand ~ ~ ~ {CustomName:"{\"text\":\"builder\"}",NoGravity:1,Invulnerable:1,}
execute at @e[name=Drone] run function build:path
Made some improvements to the Pyramid Build. This time around I added an additional Block to the detect command sequence after making some changes to the way how the teleport select command works. Now It will detect for both the Coal and Quartz blocks. I also made an improvement to the setup command function that will remove the previous builder so that all the build functions will execute properly. Also the Build Function File Group is necessary for this to properly work, If the list of potential builds are not added then nothing will be created when the detect command sequence engages. That should be it for now
Primary setup command
##primary setup command function
#remove previous builder
kill @e[name=builder,type=armor_stand]
#setup command function
scoreboard objectives add path dummy
execute at @e[name=Drone] run summon armor_stand ~ ~ ~ {CustomName:"{\"text\":\"builder\"}",NoGravity:1,Invulnerable:1}
execute at @e[name=Drone] run function build:path
Pyramid Base BL
#Pyramid Base
execute at @e[name=Drone] run fill ~-47 ~-1 ~-47 ~47 ~-1 ~47 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-46 ~0 ~-46 ~46 ~0 ~46 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-45 ~1 ~-45 ~45 ~1 ~45 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-44 ~2 ~-44 ~44 ~2 ~44 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-43 ~3 ~-43 ~43 ~3 ~43 minecraft:cut_sandstone
#Floors
execute at @e[name=Drone] run fill ~-41 ~1 ~-41 ~41 ~1 ~41 minecraft:air
execute at @e[name=Drone] run fill ~-41 ~2 ~-41 ~41 ~2 ~41 minecraft:air
execute at @e[name=Drone] run fill ~-41 ~3 ~-41 ~41 ~3 ~41 minecraft:air
#Grid Walls
execute at @e[name=Drone] run fill ~-42 ~1 ~-30 ~42 ~3 ~-30 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-18 ~42 ~3 ~-18 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-6 ~42 ~3 ~-6 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~6 ~42 ~3 ~6 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~18 ~42 ~3 ~18 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~30 ~42 ~3 ~30 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-30 ~1 ~-42 ~-30 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-18 ~1 ~-42 ~-18 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-6 ~1 ~-42 ~-6 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~6 ~1 ~-42 ~6 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~18 ~1 ~-42 ~18 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~30 ~1 ~-42 ~30 ~3 ~42 minecraft:cut_sandstone
#Inner Grid Walls
execute at @e[name=Drone] run fill ~-42 ~1 ~-38 ~42 ~3 ~-38 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-34 ~42 ~3 ~-34 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-26 ~42 ~3 ~-26 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-22 ~42 ~3 ~-22 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-14 ~42 ~3 ~-14 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-10 ~42 ~3 ~-10 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~-2 ~42 ~3 ~-2 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~2 ~42 ~3 ~2 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~10 ~42 ~3 ~10 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~14 ~42 ~3 ~14 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~22 ~42 ~3 ~22 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~26 ~42 ~3 ~26 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~34 ~42 ~3 ~34 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-42 ~1 ~38 ~42 ~3 ~38 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-38 ~1 ~-42 ~-38 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-34 ~1 ~-42 ~-34 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-26 ~1 ~-42 ~-26 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-22 ~1 ~-42 ~-22 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-14 ~1 ~-42 ~-14 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-10 ~1 ~-42 ~-10 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~-2 ~1 ~-42 ~-2 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~2 ~1 ~-42 ~2 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~10 ~1 ~-42 ~10 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~14 ~1 ~-42 ~14 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~22 ~1 ~-42 ~22 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~26 ~1 ~-42 ~26 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~34 ~1 ~-42 ~34 ~3 ~42 minecraft:cut_sandstone
execute at @e[name=Drone] run fill ~38 ~1 ~-42 ~38 ~3 ~42 minecraft:cut_sandstone
#Setblock Stage 1
execute at @e[name=Drone] run setblock ~0 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-36 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~36 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~36 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~24 ~1 ~12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~24 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~12 ~1 ~0 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-12 minecraft:redstone_block
execute at @e[name=Drone] run setblock ~0 ~1 ~12 minecraft:redstone_block
#Set Block Border
execute at @e[name=Drone] run setblock ~-40 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-32 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-28 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-20 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-16 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-8 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-4 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-32 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-28 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-20 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-16 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-8 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-4 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~32 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~28 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~20 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~16 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~8 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~4 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~32 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~28 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~20 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~16 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~8 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~4 ~1 ~-40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-32 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-28 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-20 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-16 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-8 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-4 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-32 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-28 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-20 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-16 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-8 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-4 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~32 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~28 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~20 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~16 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~8 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~40 ~1 ~4 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~32 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~28 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~20 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~16 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~8 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~4 ~1 ~40 minecraft:quartz_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~-12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~0 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-40 ~1 ~24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~-12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~0 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~12 minecraft:coal_block
execute at @e[name=Drone] run setblock ~40 ~1 ~24 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~0 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~12 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~24 ~1 ~-40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-24 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~-12 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~0 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~12 ~1 ~40 minecraft:coal_block
execute at @e[name=Drone] run setblock ~24 ~1 ~40 minecraft:coal_block
Build Detect Stage 0
#Predetermine Build Detect Stage 0
execute positioned ~ ~ ~ if block ~4 ~1 ~ coal_block run summon armor_stand ~4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~ coal_block run summon armor_stand ~-4 ~1 ~ {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~4 coal_block run summon armor_stand ~ ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~ ~1 ~-4 coal_block run summon armor_stand ~ ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~4 coal_block run summon armor_stand ~4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~-4 coal_block run summon armor_stand ~-4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~4 coal_block run summon armor_stand ~-4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~-4 coal_block run summon armor_stand ~4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W"],NoGravity:1,Invulnerable:1,Invisible:1}
#Stage 0
execute positioned ~ ~ ~ if block ~4 ~1 ~4 quartz_block run summon armor_stand ~4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","W","S"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~-4 quartz_block run summon armor_stand ~-4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","E","N"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~-4 ~1 ~4 quartz_block run summon armor_stand ~-4 ~1 ~4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","N","E","W"],NoGravity:1,Invulnerable:1,Invisible:1}
execute positioned ~ ~ ~ if block ~4 ~1 ~-4 quartz_block run summon armor_stand ~4 ~1 ~-4 {CustomName:"{\"text\":\"build\"}",Tags:["master","stage","S","W","E"],NoGravity:1,Invulnerable:1,Invisible:1}
#Remove Block
execute at @e[type=armor_stand,name=build,tag=master] run setblock ~ ~ ~ air
#Build
#available build commands
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=E,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build1"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build2"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build3"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build4"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build5"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build6"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build7"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build8"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build9"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build10"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=S,tag=E,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build11"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=E,tag=S] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build12"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build13"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=N,tag=S] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build14"],NoGravity:1,Invulnerable:1,Invisible:1}
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=build,tag=master,tag=E,tag=W] run summon armor_stand ~1 ~0 ~1 {CustomName:"{\"text\":\"command\"}",Tags:["build15"],NoGravity:1,Invulnerable:1,Invisible:1}
#
#select build commands
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=..1] run tp @e[name=command,type=armor_stand,sort=random,limit=1,distance=..1] ~ ~ ~
#
#set build# to master build to execute build command
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build1] run function list:build_1
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build2] run function list:build_2
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build3] run function list:build_3
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build4] run function list:build_4
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build5] run function list:build_5
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build6] run function list:build_6
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build7] run function list:build_7
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build8] run function list:build_8
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build9] run function list:build_9
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build10] run function list:build_10
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build11] run function list:build_11
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build12] run function list:build_12
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build13] run function list:build_13
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build14] run function list:build_14
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build15] run function list:build_15
execute at @e[type=armor_stand,name=build,tag=master] if entity @e[type=armor_stand,name=command,distance=0,tag=build16] run function list:build_16
#
#clear build commands
kill @e[name=command,type=armor_stand]
#
The detect function had some mistakes like "if entity @e[...] summon armor_stand ..." instead of "if entity @e[...] run summon armor_stand. Even though I've corrected all of them, it's still not working and neither is the setup function.
The detect function had some mistakes like "if entity @e[...] summon armor_stand ..." instead of "if entity @e[...] run summon armor_stand. Even though I've corrected all of them, it's still not working and neither is the setup function.
Alright I corrected the mistake in the post above, so everything should be good. Also if you can at least get a before and after screenshot of the Pyramid base.
Here is the before and after (ignore the command block on the wall, that was me).
By the way, I found out why the startup wasn't working. Line #3 "@[name=builder,type=armor_stand]" and line #6 CustomName:"{\"text\":\"builder\"}"
Awesome the screenshots look great. I just updated the primary setup command and the pyramid base. Hopefully all the problems have been fixed this time around and everything should go according as planned.
Its been awhile since I last posted here so I hope this doesn't count as a necro post. I just finally got back in the game this week after a long unwatned hiatus from playing so I've been dabbling around with my pyramid plans figuring out how the new commands, functions, and datapacks stuff works and after doing some debugging and figuring out what works and whats doesn't I finally started gaining some ground in building the pyramid. I recently just had a success in building a maze path in the pyramid base, now the next step is setting up the maze backtracking command and start to incorporate the build detect sequence to establish the multi-functional build process I've been creating. Here are some screenshots of what current progress is looking like.
Today, I just recently completed the backtracking process in the pyramid dungeon command function, this part of the build process works great now. I came upon alot of problems with my original backtracking process that I redone the backtracking process to fix some of the technical bugs I encounter. Now the next focus is on creating the adjacent builds, such as secondary paths ways, Item rooms, stair case/ladders, and other build Ideas/build process. This part of the build process is a multi tiered build process and that will to be the primary function to randomly,in sequence, or deterministic create an elaborate system of adjacent builds. So far I made all the basic room primary types except the staircase rooms at the moment.
This took a lot of testing to get right, but for my 100th post, I show you the results of my multi-tiered build command process that is now up and working. The goal here was to create a simple but complex chain of commands that has the ability to both randomly and deterministic build in any of the available eight quadrants and execute multiple of builds commands at once in the available areas. How the design works is it first starts the command sequence at where the builder is currently(builder main function is to lay down a path and it also determines what adjacent rooms can be built based on the target block type) at in the center point of the main build area then the command does a if block detect check to determine what kind of build is capable of going there, through an array of tag selectors this way we don't have any unwanted builds sneaking into the function process. The hardest part of the multi-tiered build was making the individual build teleport selector command and through a lot of testing I came up with this command here below so that it will both randomly select any available build option once but it also teleport it to the proper build command entity in the correct area through the vertical Y axis entity selector "dy=2" and the most basic teleport method "/teleport ~ ~ ~". So with that said I have the build entity summon the List of available build commands (entity bd,) 2 block above the build stop positioned and when the teleport command kicks-in it send out a signal to one random "bd" entity that are 2 block above and executes the basic teleport command on that randomly selected "bd" entity to teleport it at the positioned where the function is being carried out at which is at the build spot where the collective build entities are working at. Figuring out a single Teleport Selector Command to work properly and with out minor mishaps was a real challenge for me due to the fact that before I started understanding the "execute positioned ~ ~ ~" properly I was trying to get this wonky teleport command over here to work "teleport @e[name=bd,limit=1,sort=random,distance=2] @e[name=build,limit=1]" it worked but the big problem with this command was that it wasnt really consistent with where it was teleporting at which I later found out after some manual debugging of the functions which you can see in the my first sceenshot.
execute positioned ~ ~ ~ run execute as @e[name=bd,limit=1,sort=random,tag=command,dy=2] run teleport ~ ~ ~
Other then that I also did some experimenting with some build Ideas. The first screen shot is a picture of my build station, the giant tower of command block is basically the tag display list, it tells me what random numbers were selected on my build entities, so with said the five numbers you can see on the left (3,7,7,7,5) represent my first five working individual random number build sequence each number here had a 1/3 chance in appearing in its corner build spot and the 4 numbers on the right (4,5,7,8) is the first 4 numbers that were all selected in a group at once by their respective build spot command entity, basically the 4 "build" entities that was summoned forward in their selective build areas each is able to pick out a random pool of number(build command) from a list of their available entity "bd" build options that is placed above the main build entity that means only the specific set of entity "bd" build options are being summoned forward based what kind of tag is able to be selected. The 16 test builds that I've been currently working on are essentially the adjacent edge builds of the total established build area in the pyramid this way nothing unwanted is going to be wreaking the exterior of the pyramid design.
In the second screenshot I did some booby trap TNT testing in the pathway, third to the fourth screenshot I did some Pyramid pitfall Entrances, the first build is only the pitfall which is my first entrance that was created and the second build I has a chance in being a pitfall trap purely based on how the two adjacent builds creates. the fifth screenshot is a pathway lava barrier/lava jump depending on what floor your standing on. Well that pretty much it for now, other then that I'm going to leave a link to my Wiki user page, In the distant future I probably will be making more additional uploads of the pyramid build that was started here on a special page dealing with its construction and all that other technical stuff.
Today I've been building some of the entrances and stairways for the build process and I wanted to share some of my thoughts about the designs I had in mind. In the first screenshot is the dynamite entrance, this entrance here is one out of three unique entrances points I've designed that being the drop down entrance, the dynamite entrance, and the hidden door entrance. The concept here is to have a certain kind of randomization build process so that it limit it's ability to create these entrances in a manner that is not over building the entrance on all sides of the pyramid build. The second screenshot is one of the non-unique chambers that can be built inside the pyramid, the idea here to create a series of multi directional chambers so that it will open up the constructed pathway for the build process to be more elaborate in design. Finally in the third and fourth screenshot is two designs I have for making a stair way, the first stairway is a normal straight up path that will connect three floor of the build and the second stairway is basically a circular staircase that may reach many additional floors, now in similar fashion to the build process for the entrance the randomization process here is reliant on a few conditions for it to build some stairways, one condition being is that it needs to be built in a proper position so that it's kept inside the build parameters another condition is I need to limit it ability to build stairway so that its not creating them on a lucky statistical consistency so that its doesn't flood the pyramid with both stairways and entrances, putting these builds here in the super rare category of the generation process all based on a conditional requirement for it to be built. Now the circular stairway path reveals an interesting aspect to the build process I got in mind because it only needs a 9x9 section of the build layout for it to inhabit and if you look at my blueprint below you can basically see where this 9x9 section of the build layout is.
Well I manage to get the multi-stage build process to work the other day but the down side to it is that it appears It doesn't want to function every time in the time in the build cycle and now scratching my head as to a way to fix this. I'm now executing little over 10,000 commands here and things are not executing as smoothly as I had hoped for, the function will build in some areas and not in others very strange, also technically if the command was properly working every room with a coal block would have a doorway in it and that is not the case. I've been doing alot of testing with the multi-stage build process trying to figuring out if there is a pattern to its workings to deduce if there was a broken command somewhere but so far as I could tell that completely not the case as further testing would indicate that every build is functioning properly if given the chance. But other then that, I'm starting to think the command chain is processing is either to fast or too large of a combination of the two that its chops off a portion of the function so it failing to execute properly but that's just my thoughts on the problem. I would be interested to hearing any other theories as to why this function is working the way it does.
oh because of the pyramid XD
ironic
Command block engineer // Developer // #TeamTrees
Who built the pyramids is the riddles of the ages but who built the pyramid in minecraft is going to take on a new significance... The goal here is to create a pyramid and from start to finish this pyramid is going to be available to for everyone to create kinda like a template or structural blueprint of sorts for you to build in, but that if your willing to go the distance and reach the next phase of the building process. Right now the pathways are going down or in another scenario the streets are being made, what is in store next is where the wide array of builds come in to populate the vacant area you can even incorporate structural blocks here if you wish. There is so much to the pyramid I have yet to begin to explain what its going to be able to do, but in order to get there we must start at the bottom and developed things here.
If you want to, check out this optional base plate build area for the pyramid builder commands to function in. Just one of many types of design waiting to be tested out and it also will help in the debugging process in building.
-Updated command sheet-
You put "fill ~ ~ ~" with one set of coordinates, instead of "setblock ~ ~ ~" in "#Interior Grid Walls"
Here is the working result
Command block engineer // Developer // #TeamTrees
Thanks Megacraft107, that was a good catch. I over looked that big time. The optional base build area was just updated in the post above. Thankfully everything is in a spreadsheet so fixing the set of command was easy and was done in no time. I have made almost a thousand of commands going in this pyramid build alone and what had happened is I forgot to add back the second coordinate array into the command builder after I was finished with all the setblock commands. So with that said I will give a short explanation to what the next phase of building process is and breakdown how that is going to work. The second build process is a multi-functional build process, one of my early build Ideas was to construct a giant main path like what is the bot is doing now and then incorporate a secret secondary set of paths that will build through an array of build command and in theory I could create extra spaces that could potentially lead to secret chambers with in the build or possible short cuts. Just keep in mind that the second phase of the build process is going to be a multi-functional build process that will be very deterministic to what it will be able to build based on how the vacant build areas look beforehand and it will also incorporate a variety of ways to go about building to keep things from getting repetitive. I attached a Blueprint to the post so you can see how I imagine the early build Idea I had and that is just one of many.
So far the generation looks great if you take into consideration that you're planning everything out on a piece of paper without any testing.
Command block engineer // Developer // #TeamTrees
Thanks, I have big plans in store for this pyramid. Getting everything setup is where the challenge is at. So far I have worked almost everything out when it comes to the pyramid build plans and how the structure could potentially generate. Right now everything is in the developmental stage, Ideas here are much appreciated and you have given a lot of good ideas which I've taken in consideration. Now if you were ever wondering what is the point with the coal blocks in the build, well wonder no longer this next blueprint will explain everything.Take a look at the Build Step Sheet you can see how I intend to handle irregularities in each floor layer of the build. Take note that not every floor level is perfectly square with the builder build commands as of now, so each layer that has irregularities in the build has been marked by a certain corresponding color that will represent how the builder will go about building in the specified area. See the builder will work as desired in the normal square basic build areas and that is because everything is of equal dimensions but when it comes to the vacant areas of the build that are not congruent with how the bot will build I have decided to place a special block in a designated spot to predetermine the corresponding build that will make up the area so no big gaping holes or strange block structures are going to be able to stick out of the build. Once the next big step for the build is underway, which is the multi-functional build process, tackling this problem here will be very easy. Another one of my goals with the multi-functional build process is to set it up a maze building process that in theory could potentially add mazes in certain pre-selected of the build. Now this type of command can only work if everything is in the right proportions where a maze can generate properly with out going haywire, but first thing first which is establishing the basic to the multi-functional build process.
Seems like you have it all under control. Just paste the function when it's done.
Command block engineer // Developer // #TeamTrees
I finally decided to look for the North South East West direction in Minecraft and stumble across this https://minecraft.gamepedia.com/Coordinates . Now I can officially say everything is dialed in. In this post you will see why this is important.
This next step is establishing the basics to the multi-functional build process is to setup this part of the command sequences that will carry everything out in its own function process. I think the best way to do is to add a build:detect function right before the build path commands start executing, this way it acts as a check in the build order of events.
Build Path with Detect Block for Selecting Avaliable Builds function
Basically to make this work I added a new function command to the path builder function called build:detect that will detect for predetermine build areas and custom builds alike by which block its detecting for and where. What makes this a multi-functional build process is that I incorporated stages to the building process that will determine what build it should be executed through an array of stage tag selectors. Now here's how this build detect array function will work. Every unique block represents a certain stage of the build process that will be executed, here I have a Coal block to represents Stage0 an Iron block for StageA and a Diamond Block for Stage B... the next procedure is the summon armor stand accompanied with the name build, along with the tag called master, stage and the four cardinal direction NSEW. The most important Tag selector in the Detect stage is the N, S, E, W tags because these tags here will determine which what build direction are available that will be executed based on the block detected positioned, now take note that as of now not every armor stand will have the four cardinal direction NSEW in their tags because each of those tags are critical in selecting the available build commands. Now if the build armor stand had the complete set of NSEW direction it will have accesses to all the available builds more on that later. Now the next Important tag here is the Stage Tag and this is the tag that make this a multi-functional building process and it only needed until the next build function process list:build_1. By issuing a certain Stage Tag to each of the build armor stand helps reduce the need for an elaborate List of builds command to execute from, now all the potential build command can be reduced to a single folder of build list sequences with specialization in mind for unique areas in the build process.
Detect Function
Now the function command group below are each separated in their own build function files. Build 1 represents Function list:build_1 and Build 2 represents Function list:build_2 and so forth. I added a picture below for visual purposes to see what it will look like. This is where the Stage Tag comes into play for it the determining factor in what build command sequence that should be executed in each of the build functions. This way by having the represented stage tag in the in the functions drastically reduces the amount of build list that would be needed. Also as it stands now each function build file represents a unique room corresponding to a NSEW coordinate in the game. For Example the first build set will only be executed if all NSEW tag are all on the Build armor stand, If one of the NSEW tag happens to be missing this Build command here is no longer available for the armor stand to execute that build. I figured this way was the way to go because the rooms are still being created at random but this extra set of tags will also determine what room is available and where.
Build Function File Group
edit: added new teleport command to the Build:Detect Command
It's not working. The functions have no errors but nothing happens when I run build:path at the "Drone"
Also, there are no armor stands "XN, XP, ZP, ZN"
Command block engineer // Developer // #TeamTrees
Yea that's my mistake there, I accidentally posted it to soon. I wasn't even finished, I was still in the process of completing the commands and making the post so I've been in rush mode for the past couple of hours getting everything together and correcting the mistakes at the same time. Now the reason why the Drone does nothing when you run build:path at the "Drone" is because the Drone is the launch pad for the setup command down here basically the "builder" does the work. Also I just recently updated my previous post with the new commands I think everything should be working fine now sorry for the inconvenience. And if things are working try experimenting with the build by placing down coal some blocks in the center of the empty grids.
Made some improvements to the Pyramid Build. This time around I added an additional Block to the detect command sequence after making some changes to the way how the teleport select command works. Now It will detect for both the Coal and Quartz blocks. I also made an improvement to the setup command function that will remove the previous builder so that all the build functions will execute properly. Also the Build Function File Group is necessary for this to properly work, If the list of potential builds are not added then nothing will be created when the detect command sequence engages. That should be it for now
Primary setup command
Pyramid Base BL
Build Detect Stage 0
The detect function had some mistakes like "if entity @e[...] summon armor_stand ..." instead of "if entity @e[...] run summon armor_stand. Even though I've corrected all of them, it's still not working and neither is the setup function.
Command block engineer // Developer // #TeamTrees
Alright I corrected the mistake in the post above, so everything should be good. Also if you can at least get a before and after screenshot of the Pyramid base.
Here is the before and after (ignore the command block on the wall, that was me).
By the way, I found out why the startup wasn't working. Line #3 "@[name=builder,type=armor_stand]" and line #6 CustomName:"{\"text\":\"builder\"}"
Command block engineer // Developer // #TeamTrees
Awesome the screenshots look great. I just updated the primary setup command and the pyramid base. Hopefully all the problems have been fixed this time around and everything should go according as planned.
Its been awhile since I last posted here so I hope this doesn't count as a necro post. I just finally got back in the game this week after a long unwatned hiatus from playing so I've been dabbling around with my pyramid plans figuring out how the new commands, functions, and datapacks stuff works and after doing some debugging and figuring out what works and whats doesn't I finally started gaining some ground in building the pyramid. I recently just had a success in building a maze path in the pyramid base, now the next step is setting up the maze backtracking command and start to incorporate the build detect sequence to establish the multi-functional build process I've been creating. Here are some screenshots of what current progress is looking like.
Today, I just recently completed the backtracking process in the pyramid dungeon command function, this part of the build process works great now. I came upon alot of problems with my original backtracking process that I redone the backtracking process to fix some of the technical bugs I encounter. Now the next focus is on creating the adjacent builds, such as secondary paths ways, Item rooms, stair case/ladders, and other build Ideas/build process. This part of the build process is a multi tiered build process and that will to be the primary function to randomly,in sequence, or deterministic create an elaborate system of adjacent builds. So far I made all the basic room primary types except the staircase rooms at the moment.
This took a lot of testing to get right, but for my 100th post, I show you the results of my multi-tiered build command process that is now up and working. The goal here was to create a simple but complex chain of commands that has the ability to both randomly and deterministic build in any of the available eight quadrants and execute multiple of builds commands at once in the available areas. How the design works is it first starts the command sequence at where the builder is currently(builder main function is to lay down a path and it also determines what adjacent rooms can be built based on the target block type) at in the center point of the main build area then the command does a if block detect check to determine what kind of build is capable of going there, through an array of tag selectors this way we don't have any unwanted builds sneaking into the function process. The hardest part of the multi-tiered build was making the individual build teleport selector command and through a lot of testing I came up with this command here below so that it will both randomly select any available build option once but it also teleport it to the proper build command entity in the correct area through the vertical Y axis entity selector "dy=2" and the most basic teleport method "/teleport ~ ~ ~". So with that said I have the build entity summon the List of available build commands (entity bd,) 2 block above the build stop positioned and when the teleport command kicks-in it send out a signal to one random "bd" entity that are 2 block above and executes the basic teleport command on that randomly selected "bd" entity to teleport it at the positioned where the function is being carried out at which is at the build spot where the collective build entities are working at. Figuring out a single Teleport Selector Command to work properly and with out minor mishaps was a real challenge for me due to the fact that before I started understanding the "execute positioned ~ ~ ~" properly I was trying to get this wonky teleport command over here to work "teleport @e[name=bd,limit=1,sort=random,distance=2] @e[name=build,limit=1]" it worked but the big problem with this command was that it wasnt really consistent with where it was teleporting at which I later found out after some manual debugging of the functions which you can see in the my first sceenshot.
Other then that I also did some experimenting with some build Ideas. The first screen shot is a picture of my build station, the giant tower of command block is basically the tag display list, it tells me what random numbers were selected on my build entities, so with said the five numbers you can see on the left (3,7,7,7,5) represent my first five working individual random number build sequence each number here had a 1/3 chance in appearing in its corner build spot and the 4 numbers on the right (4,5,7,8) is the first 4 numbers that were all selected in a group at once by their respective build spot command entity, basically the 4 "build" entities that was summoned forward in their selective build areas each is able to pick out a random pool of number(build command) from a list of their available entity "bd" build options that is placed above the main build entity that means only the specific set of entity "bd" build options are being summoned forward based what kind of tag is able to be selected. The 16 test builds that I've been currently working on are essentially the adjacent edge builds of the total established build area in the pyramid this way nothing unwanted is going to be wreaking the exterior of the pyramid design.
In the second screenshot I did some booby trap TNT testing in the pathway, third to the fourth screenshot I did some Pyramid pitfall Entrances, the first build is only the pitfall which is my first entrance that was created and the second build I has a chance in being a pitfall trap purely based on how the two adjacent builds creates. the fifth screenshot is a pathway lava barrier/lava jump depending on what floor your standing on. Well that pretty much it for now, other then that I'm going to leave a link to my Wiki user page, In the distant future I probably will be making more additional uploads of the pyramid build that was started here on a special page dealing with its construction and all that other technical stuff.
https://minecraft.gamepedia.com/index.php?title=User:SolidSC&profile=no
Today I've been building some of the entrances and stairways for the build process and I wanted to share some of my thoughts about the designs I had in mind. In the first screenshot is the dynamite entrance, this entrance here is one out of three unique entrances points I've designed that being the drop down entrance, the dynamite entrance, and the hidden door entrance. The concept here is to have a certain kind of randomization build process so that it limit it's ability to create these entrances in a manner that is not over building the entrance on all sides of the pyramid build. The second screenshot is one of the non-unique chambers that can be built inside the pyramid, the idea here to create a series of multi directional chambers so that it will open up the constructed pathway for the build process to be more elaborate in design. Finally in the third and fourth screenshot is two designs I have for making a stair way, the first stairway is a normal straight up path that will connect three floor of the build and the second stairway is basically a circular staircase that may reach many additional floors, now in similar fashion to the build process for the entrance the randomization process here is reliant on a few conditions for it to build some stairways, one condition being is that it needs to be built in a proper position so that it's kept inside the build parameters another condition is I need to limit it ability to build stairway so that its not creating them on a lucky statistical consistency so that its doesn't flood the pyramid with both stairways and entrances, putting these builds here in the super rare category of the generation process all based on a conditional requirement for it to be built. Now the circular stairway path reveals an interesting aspect to the build process I got in mind because it only needs a 9x9 section of the build layout for it to inhabit and if you look at my blueprint below you can basically see where this 9x9 section of the build layout is.
Well I manage to get the multi-stage build process to work the other day but the down side to it is that it appears It doesn't want to function every time in the time in the build cycle and now scratching my head as to a way to fix this. I'm now executing little over 10,000 commands here and things are not executing as smoothly as I had hoped for, the function will build in some areas and not in others very strange, also technically if the command was properly working every room with a coal block would have a doorway in it and that is not the case. I've been doing alot of testing with the multi-stage build process trying to figuring out if there is a pattern to its workings to deduce if there was a broken command somewhere but so far as I could tell that completely not the case as further testing would indicate that every build is functioning properly if given the chance. But other then that, I'm starting to think the command chain is processing is either to fast or too large of a combination of the two that its chops off a portion of the function so it failing to execute properly but that's just my thoughts on the problem. I would be interested to hearing any other theories as to why this function is working the way it does.