Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Why does my sliding door slide out of the building?

Hello! I have been trying for 2 days to get my sliding door to open and close, It opens great but zooms out the building when it closes.. I have looked everywhere and have not found anything and am too lazy to attempt anything else unless this just won't work here is the code:

Debounce = false
script.Parent.PrimaryPart = script.Parent.Center

script.Parent.Parent.Dectector1.Touched:Connect(function()
if not Debounce then
	Debounce = true
for i=6,38 do
	wait()
	script.Parent:SetPrimaryPartCFrame(script.Parent.PrimaryPart.CFrame + Vector3.new(.1,0,0))
	end
end
wait(2)
for i=6,38 do
	wait()
	script.Parent:SetPrimaryPartCFrame(script.Parent.PrimaryPart.CFrame -Vector3.new(.1,0,0))
	Debounce = true	
	end 
end) 

Any help would be nice Thanks

1 answer

✓ Accepted answer

you don't have a condition to check for debounce when it closes. Im assuming u just need to check for debounce once.

The reason why it zooms is because you could possibly be touching the part multiple times and since you only check for debounce for when it opens, the for loop for the opening would trigger only once because of the not debounce condition. Since the for loop for closing the door isn't in the condition; when you touch it multiple times it would trigger it multiple times thus causing this line

script.Parent:SetPrimaryPartCFrame(script.Parent.PrimaryPart.CFrame -Vector3.new(.1,0,0))

to happen each time you touch it.

Here is the fix:

Debounce = false
script.Parent.PrimaryPart = script.Parent.Center

script.Parent.Parent.Dectector1.Touched:Connect(function()
if not Debounce then
    Debounce = true
for i=6,38 do
    wait()
    script.Parent:SetPrimaryPartCFrame(script.Parent.PrimaryPart.CFrame + Vector3.new(.1,0,0))
    end
wait(2)
for i=6,38 do
    wait()
    script.Parent:SetPrimaryPartCFrame(script.Parent.PrimaryPart.CFrame -Vector3.new(.1,0,0))
    end 

end
end) 

I just moved the end of the if condition after the second for loop instead of before it

This discussion is preserved as it was. New answers, comments, and votes are closed.