I tried debugging the script by adding prints, but it only printed the touched part's name, after that nothing happens. I have tried to direct the fireball's direction to an NPC, and none of the NPC's body parts' name is showing on the Developer Console of the Server tab.
The script below is in a Script
Oh yeah, it also prints other part's name, like the Baseplate for an example.
wait(1) local fireball = script.Parent repeat wait() until fireball:IsA("BasePart") local Damage = script:WaitForChild("Damage") local Creator = script:WaitForChild("Creator") local player = Creator.Value local pvp = player:WaitForChild("PvP") local enabled = true fireball.Touched:Connect(function(hit) if not enabled then return end print(script.Name..": "..hit.Name.." found!") fireball.Anchored = true if hit.Parent:FindFirstChild("Humanoid") then enabled = false local targetHumanoid = hit.Parent:FindFirstChild("Humanoid") if targetHumanoid ~= nil then print(script.Name..": Humanoid is dere") if game.Players:GetPlayerFromCharacter(targetHumanoid.Parent) then print(script.Name..": Target is a player.") local targetPlayer = game.Players:GetPlayerFromCharacter(targetHumanoid.Parent) local targetPvp = targetPlayer:WaitForChild("PvP") if pvp.Value and targetPvp.Value then print(script.Name..": Both PvP on") targetHumanoid:TakeDamage(Damage.Value) print(script.Name..": Damaged inflicted") end else print(script.Name..": Target is an NPC") targetHumanoid:TakeDamage(Damage.Value) print(script.Name..": Damage inflicted") end end end wait(1.5) enabled = true end)