I am currently writing a script that shows a GUI when a player is less than 10 studs away using magnitude. It only works for one of the doors when I loop through the Doors folder in workspace.
local Doors = workspace:WaitForChild("Compound-8"):WaitForChild("Doors")
local plr = game.Players.LocalPlayer
local ConfirmationTrue = plr.PlayerGui:WaitForChild("Interactions"):WaitForChild("Door"):WaitForChild("DoorConfirmationTrue")
local DoorInteraction = plr.PlayerGui:WaitForChild("Interactions"):WaitForChild("Door"):WaitForChild("DoorInteraction")
local RunService = game:GetService("RunService")
wait(2)
RunService.Heartbeat:Connect(function()
local found
for i,v in pairs(Doors:GetChildren()) do
local char = plr.Character
local magnitude = (v.Door.Position - char:WaitForChild("Head").Position).Magnitude
if magnitude <= 10 then
found = true
if ConfirmationTrue.Visible == false then
if found == true then
DoorInteraction.Visible = true
end
end
end
if magnitude >= 10 then
found = false
DoorInteraction.Visible = false
end
end
end)
