Did you solve the problem? If not, do you have a functional door that works on one side? iād like to see the script.
āTHIS TUTORIAL IS FOR PROXIMITY PROMPT DOORSā
The door should be attached to another object which, letās call it āHingeā, In the script you need to use āTweenServiceā so Hinge moves, and make another object (we are going to call it āfront doorā) that is attached to Hinge move via a WeldConstraint, if you have a functional door that works on one side, you could try implementing another object like door but with a different name (āback doorā could be), you need to attach it to Hinge via a WeldConstraint.
Next step is make the local for back door and the prompt for it, example of my door:
local frontdoor = script.Parent.frontdoor
local hinge = script.Parent.hinge
local frontprompt = frontdoor.ProximityPrompt
local backdoor = script.Parent.backdoor
local backprompt = backprompt.ProximityPrompt
Hereās the TweenService usage i did:
local goalOpen = {}
goalOpen.CFrame = hinge.CFrame * CFrame.Angles(0, math.rad(-90), 0) -- The -90 is the Rotation degree, change it to your preference.
local goalClose = {}
goalClose.CFrame = hinge.CFrame * CFrame.Angles(0, 0, 0) -- This is the position that it's gonna acquire when closing; everything is at 0 so it returns to its original position.
local tweenInfo = TweenInfo.new(0.75) -- This the time it's gonna take to open or close
local tweenOpen = TweenService:Create(hinge, tweenInfo, goalOpen)
local tweenClose = TweenService:Create(hinge, tweenInfo, goalClose)
Youāre gonna need to make a local function so Front and Back sync:
local isOpen = false
local function Syncprompts(actiontext)
frontprompt.Actiontext = actiontext
backprompt.Actiontext = actiontext
Now youāre gonna need to use the backprompt and frontprompt:
frontprompt.Triggered:Connect(function()
if IsOpen then
tweenClose:Play()
isOpen = false
Syncprompts("Open") -- Change this to the text you want; this is the text that it's going to show on the object that the ProximityPrompt is in when the door is Closed.
else
tweenOpen:Play()
isOpen = true
Syncprompts("Close") -- Change this to the text you want; this is the text that it's going to show on the object that the ProximityPrompt is in when the door is Open.
end
end)
backprompt.Triggered:Connect(function()
if IsOpen then
tweenClose:Play()
isOpen = false
Syncprompts("Open")
else
tweenOpen:Play()
isOpen = true
Syncprompts("Close")
end
end)
Hope this helped, if this didnāt help you, try sending me the code and i would mind checking it.