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)