Hi, I'd like to have a cube that rolls face-to-face, but I'm having trouble getting the script to work correctly. I'd like a result similar to this. For now I'm trying on only the X-Axis until I can get a good result. Here's what I have so far:
local CUBE = script.Parent
local CUBESize = CUBE.Size.X
local CUBEMoveInc = 10
local CUBEWaitSpeed = 0.25
local CUBECurrentlyMoving = false
local CUBEFaceBottom = CUBE["AttachmentY-"]
local CUBEFaceTop = CUBE["AttachmentY+"]
local CUBEFaceFront = CUBE["AttachmentZ+"]
local CUBEFaceBack = CUBE["AttachmentZ-"]
local CUBEFaceRight = CUBE["AttachmentX-"]
local CUBEFaceLeft = CUBE["AttachmentX+"]
function CUBEstep(dir)
if dir == "x" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X + (CUBESize / CUBEMoveInc), CUBE.Position.Y, CUBE.Position.Z, CUBE.Orientation.X, CUBE.Orientation.Y, CUBE.Orientation.Z + (45 / CUBEMoveInc), 1)
wait(CUBEWaitSpeed)
end
elseif dir == "y" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X, CUBE.Position.Y + (CUBESize / CUBEMoveInc), CUBE.Position.Z)
wait(CUBEWaitSpeed)
end
elseif dir == "z" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X, CUBE.Position.Y, CUBE.Position.Z + (CUBESize / CUBEMoveInc))
wait(CUBEWaitSpeed)
end
elseif dir == "-x" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X - (CUBESize / CUBEMoveInc), CUBE.Position.Y, CUBE.Position.Z)
wait(CUBEWaitSpeed)
end
elseif dir == "-z" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X, CUBE.Position.Y, CUBE.Position.Z - (CUBESize / CUBEMoveInc))
wait(CUBEWaitSpeed)
end
elseif dir == "-y" and not CUBECurrentlyMoving then
CUBECurrentlyMoving = true
for i = 1, CUBEMoveInc do
CUBE.CFrame = CFrame.new(CUBE.Position.X, CUBE.Position.Y - (CUBESize / CUBEMoveInc), CUBE.Position.Z)
wait(CUBEWaitSpeed)
end
end
CUBECurrentlyMoving = false
end
CUBEstep("x")

2 comments
Here goes a hero ^
Thank you!