The code below I have tried in multiple different ways, but anyway I am attempting to open a door that is tweened and it should be working. The open tween works just fine and sets the value to open, but when I close it, it sets the open value to false, like it should, but the tween doesn't do anything, I looked at the playback state and it said it was playing when I fired it, but it isn't closing. This is all done on a localscript. There are other scripts involved that send a message to this localscript, but they work fine.
local TweenService = game:GetService("TweenService")
wait(.2)
game:GetService("ReplicatedStorage").DoorEvent.OnClientEvent:Connect(function(Door)
local Open = Door:FindFirstChild("Scripted").Open
local Debounce = Door:FindFirstChild("Scripted").Debounce
local DoorRoot = Door.Scripted:WaitForChild("RootHinge")
local DoorSwingInfo = TweenInfo.new() -- Let's use all defaults here
local PanelSwingOpenTween = TweenService:Create(DoorRoot, DoorSwingInfo, {
CFrame = DoorRoot.CFrame * CFrame.Angles(0, math.rad(93), 0)
})
local PanelSwingCloseTween = TweenService:Create(DoorRoot, DoorSwingInfo, {
CFrame = DoorRoot.CFrame * CFrame.Angles(0, 0, 0)
})
if Debounce.Value == false then
Debounce.Value = true
if Open.Value == false then
print("opening")
PanelSwingOpenTween:Play()
Open.Value = true
elseif Open.Value == true then
Open.Value = false
PanelSwingCloseTween:Play()
else
print("if this actually happened then roblox has absolutely broken")
end
wait(3)
Debounce.Value = false
end
end)
If there is any important information I've left out, just comment and I'll try my best to add it when I get back online.

2 comments
He's already got a debounce variable in place so there should never point where you can reactivate the door before it's done tweening.
What i meant was that it will fail when event fires when door are open, since close tween is based on the current door position and wont do anything.