summon marker ~ ~ ~ {CustomName:'{"text":"frame_detector"}'}
#bottom ring
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~8 ~

#upper ring
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-1 ~ ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~-1

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~1 ~ ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_controller run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~ ~1

#pillars
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~-8 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-8 ~-8 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~-8 ~-8

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~8 ~-8 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~ ~1 ~

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s unless block ~ ~ ~ kubejs:reality_frame run kill @e[type=marker,name=reality_core,sort=nearest,limit=1]

execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s if block ~ ~ ~ kubejs:reality_frame run tp @s ~-4 ~-4 ~4
execute as @e[type=marker,name=frame_detector,limit=1,sort=nearest] at @s run tag @e[type=marker,name=reality_core,distance=..3] add running

#execute as @e[type=marker,name=frame_detector] at @s run kill @e[type=marker,name=reality_core,tag=!running]
execute as @e[type=marker,name=frame_detector] at @s run kill @e[type=marker,name=frame_detector,limit=1,sort=nearest]
