I made a simple door that, if you press the button, the door should lift up. There is a value that states if it is open or closed or not. It doesn't work for some reason. I need to mention 4 things before I show the script:
- I do NOT know how to tween (im an amutuer i know)
- It uses CFrame and Vector3 to make it slide
- there are 2 buttons, so when it says button1, it refers to the first button
- It's a long script (which like i said i dont know how to tween)
with that being said here is the script.
local door = script.Parent.Parent.Door
local button2 = script.Parent.ClickDetector
local open_close = door.Open_Close
local sound = script.Parent.Parent.metal_door
local function open()
sound:Play()
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position + Vector3.new(0, 0.1, 0))
wait(0.001)
end
local function close()
sound:Play()
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
door.CFrame = CFrame.new(door.Position - Vector3.new(0, 0.1, 0))
wait(0.001)
end
button2.MouseClick:Connect(function()
if open_close == false then
open_close = true
open()
elseif open_close == true then
open_close = false
close()
end
end)
edit: fixed, thanks to repgainer3. thank you so much.

1 comment
oh my gosh, thank you so much. I'm going to try this right now