Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Portal script sometimes not teleporting on touched?

Asked by
0Vyp 14
3 years ago

Hey, So I made a portal script and sometimes when the player touches the teleport part it doesn't teleport them to the designated area.

Heres my script:

--[ Variables ]--

local Portals = game:GetService("Workspace").PortalArea.Portals


--[ Main ]--

function disconnectFunction(connection)
    if connection then
        connection:disconnect()
    end
end

while wait() do
    for i,v in pairs(Portals:GetChildren()) do
        connection = v.TouchPart.Touched:Connect(function(Hit)
            if game.Players:FindFirstChild(Hit.Parent.Name) then
                local Humanoid = Hit.Parent:FindFirstChild("Humanoid") or Hit.Parent.Parent:FindFirstChild("Humanoid")
                if Humanoid.Health > 0 then
                    local Character = Humanoid.Parent
                    local HumanoidRootPart = Character.HumanoidRootPart
                    local Destination = v:FindFirstChild("Destination").Value
                    local TeleportTo = Portals[tostring(Destination)].TeleportPart.CFrame

                    HumanoidRootPart.CFrame = TeleportTo
                end
            end
        end)
        wait(.1)
        disconnectFunction(connection)
    end
end

Answer this question