I need help because the script wont work if I cange it to on touch here it is with the click detector. It works with the click detector and I also have the other scripts/Models in it
open = false wait(0.1) script.Parent.Main.Anchored = true function onClicked() if script.Parent.OPEND.Value == 1 then if open == false then script.Parent.Main.Anchored = false cfr = script.Parent.Main.CFrame open = true for i = 0,1.5,0.1 do wait(0.1) script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,-0.1,0)*CFrame.new(0.01,0,-0.25) end script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,-math.pi/2,0)*CFrame.new(-2.5,0,-2.5) script.Parent.Main.Anchored = true open = false script.Parent.OPEND.Value = 0 end elseif script.Parent.OPEND.Value == 0 then if open == false then script.Parent.Main.Anchored = false cfr = script.Parent.Main.CFrame open = true for i = 0,1.5,0.1 do wait(0.1) script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,0.1,0)*CFrame.new(-0.01,0,0.25) end script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)*CFrame.new(-2.5,0,2.5) script.Parent.Main.Anchored = true open = false script.Parent.OPEND.Value = 1 end end end script.Parent.ClickDetector.MouseClick:connect(onClicked)
Here it is when I change it to a touch thingy
open = false wait(0.1) script.Parent.Main.Anchored = true function onTouched(Hit) if script.Parent.OPEND.Value == 1 then if open == false then script.Parent.Main.Anchored = false cfr = script.Parent.Main.CFrame open = true for i = 0,1.5,0.1 do wait(0.1) script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,-0.1,0)*CFrame.new(0.01,0,-0.25) end script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,-math.pi/2,0)*CFrame.new(-2.5,0,-2.5) script.Parent.Main.Anchored = true open = false script.Parent.OPEND.Value = 0 end elseif script.Parent.OPEND.Value == 0 then if open == false then script.Parent.Main.Anchored = false cfr = script.Parent.Main.CFrame open = true for i = 0,1.5,0.1 do wait(0.1) script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,0.1,0)*CFrame.new(-0.01,0,0.25) end script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)*CFrame.new(-2.5,0,2.5) script.Parent.Main.Anchored = true open = false script.Parent.OPEND.Value = 1 end end end script.Parent.Touched:connect(onTouched)
And if you need to know the weld script here it is also
function Weld(x,y) local W = Instance.new("Weld") W.Part0 = x W.Part1 = y local CJ = CFrame.new(x.Position) local C0 = x.CFrame:inverse()*CJ local C1 = y.CFrame:inverse()*CJ W.C0 = C0 W.C1 = C1 W.Parent = x end function Get(A) if A.className == "Part" then Weld(script.Parent.Main, A) A.Anchored = false else local C = A:GetChildren() for i=1, #C do Get(C[i]) end end end function Finale() Get(script.Parent) end Finale()