So I made a system, using renderstepped, to rotate a 3d object above users head on the client.
So when a new player joins, it should call a new function using "PlayerAdded" event, and put a new 3d crystal over there head and start rotating it, repeatedly with renderstepped, It does this. How ever, each time a new player joins, somehow when a new function is called, it manipulates all the other ones, and causes the previous users crystals to rotate faster than it should, like it interreacts with other functions even though it should of just made a new function.
Here is my code.
local RunService = game:GetService("RunService")
function crystalSpinAdded (name, playeradded)
local clone_crystal = game:GetService("ReplicatedStorage").Crystal
r = 0
local new_rendersteppedcrystal
repeat wait() until workspace:FindFirstChild(name.Name)
clone_crystal:Clone().Parent = workspace:FindFirstChild(name.Name).Head
new_rendersteppedcrystal = RunService.Heartbeat:Connect(function()
if game.Players:FindFirstChild(name.Name) then
local crystal = workspace:FindFirstChild(name.Name).Head.Crystal
crystal.Anchored = false
r = r + 0.45
crystal.CFrame = workspace:FindFirstChild(name.Name).Head.CFrame * CFrame.new(0, 2.65, 0.07) * CFrame.Angles(0, math.rad(r), 0)
return true
elseif
game.Players:FindFirstChild(name.Name) == nil then
new_rendersteppedcrystal:Disconnect()
return true
end
end)
end
game.Players.PlayerAdded:Connect(crystalSpinAdded)

1 comment
why is there so much space in between each line?