I’m trying to create a warp pad system and it works correctly. I’m trying to get the warp pad that the player is standing on but instead it get’s ALL the warp pads instead of the warp pad where the player is standing. Can anyone tell me why? If you need more information just ask!
Recording:
https://www.xbox.com/play/media/DYAS7X5JD5
(Wait a little it may need to load)
Local Script:
local Player = game.Players.LocalPlayer
local PlayerGui = Player.PlayerGui
local WarpGui = PlayerGui.WarpGui
local TweenService = game:GetService("TweenService")
local WarpPads = game.Workspace.WarpPads
local Buttons = WarpGui.Frame
local GameFolder = game.ReplicatedStorage.GameFolder
local Events = GameFolder.Events
local WarpActive = WarpPads.WarpsActive
for i,WarpButtons in pairs(Buttons:GetChildren()) do
for i,Warps in pairs(WarpPads:GetChildren()) do
for i,Warps2 in pairs(WarpPads:GetChildren()) do
if WarpButtons:IsA("TextButton") and Warps:IsA("UnionOperation") and Warps2:IsA("UnionOperation") and Player:DistanceFromCharacter(Warps2.Position)<1 then
WarpButtons.MouseButton1Down:Connect(function()
if WarpButtons.Name == Warps.Name and WarpButtons.Name then
WarpGui.Enabled = false
Events.Warp:FireServer(Warps,Warps2)
print(Warps2,Warps)
end
end)
end
end
end
end
function Open(P)
if P == Player.Character.LeftFoot then
WarpGui.Enabled = true
end
end
function Close(P)
if P == Player.Character.LeftFoot then
WarpGui.Enabled = false
end
end
for i, Pads in pairs(WarpPads:GetChildren()) do
if Pads.Name == "GuiPart" then
Pads.Touched:Connect(Open)
end
end
for i, Pads in pairs(WarpPads:GetChildren()) do
if Pads.Name == "GuiPart" then
Pads.TouchEnded:Connect(Close)
end
end
script.Parent.Close.MouseButton1Down:Connect(function()
PlayerGui.WarpGui.Enabled = false
end)
The problem is the line that says “Player:DistanceFromCharacter” is getting every warp pad which is what the problem is but I can’t seem to figure how I can make it get the warp pad that the player is standing on