So i am currently making a script which involves the server getting some information about the players mouse, it all works as intended until the player dies. When the player dies the script that fires the remotefunction that gives the mousedata, never gets the mousedata and just gets stuck. Does anybody know why this happens?
Here is the function in the main that needs the mousedata script:
local rs = game:GetService("ReplicatedStorage") local remotes = rs:WaitForChild("Remotes") local telekinesisCooldown = 3 local deBounces = {["abilityCooldown"] = false, ["toggleCooldown"] = false} game:GetService("Players").PlayerAdded:Connect(function(plr) local playerFolder = Instance.new("Folder", rs:WaitForChild("ActiveAbilities")) playerFolder.Name = plr.Name local deBounceFolder = Instance.new("Folder", rs:WaitForChild("deBounce")) deBounceFolder.Name = plr.Name for debounceName, value in pairs(deBounces) do local deBounceBool = Instance.new("BoolValue", deBounceFolder) deBounceBool.Name = debounceName end local telekinesisActive = Instance.new("BoolValue", playerFolder) telekinesisActive.Name = script.Name end) local function setPos(mouseData, plr) repeat mouseData[1] = plr.PlayerGui.givemouseData:InvokeClient(plr)[1] if mouseData[2] ~= nil then mouseData[2].Position = mouseData[1] end until not rs.ActiveAbilities[mouseData[3].Name][script.Name].Value or plr.Character.Humanoid.Health <= 0 end remotes.telekinesis.OnServerEvent:Connect(function(plr) local deBounce = rs.deBounce[plr.Name].abilityCooldown if plr.Character then if plr.Character.telekinesis.Value and not deBounce.Value then deBounce.Value = true local playerMouseData = plr.PlayerGui.givemouseData:InvokeClient(plr) -- This is where it gets stuck local partToMove = playerMouseData[2] print(playerMouseData[2]) if playerMouseData[2] ~= "void" and playerMouseData[2] ~= nil then game:GetService("Chat"):Chat(plr.Character.Head, "Etativel", "Red") setPos(playerMouseData, plr) end wait(telekinesisCooldown) deBounce.Value = false end end end)
And here is the localscript sending the mousedata:
local player = game:GetService("Players").LocalPlayer local mouse = player:GetMouse() local giveData = player.PlayerGui:WaitForChild("givemouseData") giveData.OnClientInvoke = function() local mouseData = {mouse.hit.Position, mouse.Target, game:GetService("Players").LocalPlayer} return mouseData end