This is not the full script, but this is the part of it that's bothering me. Neither of these 2 things get printed and the event doesn't get fired, any ideas on how to fix that?
wait()
local players = game:GetService("Players")
players.PlayerAdded:Connect(function(plr)
local player = players.LocalPlayer
local character = player.Character
local humanoid = character.Humanoid
local hp = character.Humanoid.Health
local maxhp = character.Humanoid.MaxHealth
print("playeradded")
if plr == player then
print("plradded")
workspace.Events.DFEvents.PhoenixFruitEvents.ParticlesE:FireServer()

2 comments
Are there any errors? Also why are you redefining locaplayer every time someone joins?
You can't set player variable value to players.LocalPlayer because you have already plr variable returned by the function.