Skip to content

Instantly share code, notes, and snippets.

@cyrus01337
Created July 7, 2023 12:50
Show Gist options
  • Save cyrus01337/c6e772d5a0f4a9a4529f5bd1e0ea5e75 to your computer and use it in GitHub Desktop.
Save cyrus01337/c6e772d5a0f4a9a4529f5bd1e0ea5e75 to your computer and use it in GitHub Desktop.
PlayerAdded and PlayerRemoving connections without suspecting memory leaks.
local Players = game:GetService("Players")
local characterAddedConnections: { [Player]: RBXScriptConnection } = {}
local function onPlayerAdded(player: Player)
characterAddedConnections[player] = player.CharacterAdded:Connect(function(playerChar)
local Humanoid = playerChar:WaitForChild("Humanoid")
print(playerChar.Parent, Humanoid.Parent.Parent)
Humanoid.WalkSpeed = 0
Humanoid.JumpPower = 0
end)
end
local function onPlayerRemoving(player: Player)
local connection = characterAddedConnections[player]
connection:Disconnect()
end
local function onClose()
for _, player in Players:GetPlayers() do
onPlayerRemoving(player)
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
Players.PlayerRemoving:Connect(onPlayerRemoving)
game:BindToClose(onClose)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment