local door = script.Parent
local openPosition = door.Position + Vector3.new(0, 0, -5)
local closePosition = door.Position
local openDistance = 10
local tweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
local openTween = tweenService:Create(door, tweenInfo, {Position = openPosition})
local closeTween = tweenService:Create(door, tweenInfo, {Position = closePosition})
game:GetService("RunService").Heartbeat:Connect(function()
for _, player in pairs(game.Players:GetPlayers()) do
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
local distance = (char.HumanoidRootPart.Position - door.Position).Magnitude
if distance < openDistance then
openTween:Play()
else
closeTween:Play()
end
end
end
end)