### Face Player Rails # Normal Rails # Sloped up execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_south] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_north] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_south] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_north] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_east] replace minecraft:rail[waterlogged=false] # Sloped down execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_north] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_south] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=ascending_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_north] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_east] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_south] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=ascending_west] replace minecraft:rail[waterlogged=false] # Straight execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_south] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=east_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_south] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=east_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_south] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=east_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_south] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=east_west] replace minecraft:rail[waterlogged=false] # Curved execute as @s[scores={lz_wrench_success=0}, y_rotation=0..45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..90] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=south_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=90..135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..180] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=south_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=180..-135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=south_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-90] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-90..-45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=south_west] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..-0] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[waterlogged=true,shape=north_east] replace minecraft:rail[waterlogged=true] execute as @s[scores={lz_wrench_success=0}, y_rotation=0..45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=45..90] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=south_east] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=90..135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_east] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=135..180] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=south_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=180..-135] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=south_east] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-90] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-90..-45] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=south_west] replace minecraft:rail[waterlogged=false] execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..-0] store result score @s lz_wrench_success run fill ~ ~ ~ ~ ~ ~ minecraft:rail[shape=north_east] replace minecraft:rail[waterlogged=false] # Non Curved Rails # Sloped up $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_south] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_west] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_north] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_north] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_east] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_east] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_south] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_west] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_north] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_north] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_east] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_east] replace # Sloped down $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_north] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_north] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_east] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_east] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_south] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_west] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=ascending_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] if block ~ ~1 ~-1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_north] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_north] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] if block ~1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_east] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_east] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] if block ~ ~1 ~1 #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_south] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] if block ~-1 ~1 ~ #minecraft:rails store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=ascending_west] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=ascending_west] replace # Straight $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=north_south] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=north_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=east_west] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=east_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=north_south] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=north_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=east_west] run execute if block ~ ~ ~ $(block)[waterlogged=true] run setblock ~ ~ ~ $(block)[waterlogged=true,shape=east_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-45..45] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=north_south] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=north_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=45..135] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=east_west] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=east_west] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=135..-135] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=north_south] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=north_south] replace $execute as @s[scores={lz_wrench_success=0}, y_rotation=-135..-45] store result score @s lz_wrench_success unless block ~ ~ ~ $(block)[shape=east_west] run execute if block ~ ~ ~ $(block)[waterlogged=false] run setblock ~ ~ ~ $(block)[shape=east_west] replace # Failed execute as @s[scores={lz_wrench_success=0}] run scoreboard players set @s lz_wrench_success -1