local Tool = script.Parent
play = game.Players.LocalPlayer
local mouse = play:GetMouse()
chara = play.Character
hum = chara.Humanoid
root = chara.HumanoidRootPart
local en = true
Tool.Activated:connect(function()
if not en then return end
en = false
Tool.RemoteEvent:FireServer(mouse.Hit)
wait(0.5)
en = true
end)
local Tool = script.Parent
play = Tool.Parent.Parent
chara = play.Character
hum = chara.Humanoid
root = chara.HumanoidRootPart
local en = true
Tool.RemoteEvent.OnServerEvent:connect(function(play,mousehit)
local a = hum:LoadAnimation(Tool.Throw)
a:Play()
root.CFrame = CFrame.new(root.Position,root.Position + Vector3.new(mousehit.lookVector.x,0,mousehit.lookVector.z))
wait(0.7)
local fireball = Tool.Handle:clone()
fireball.CFrame = Tool.Handle.CFrame
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e8,1e8,1e8)
bv.Velocity = mousehit.lookVector * 50
bv.Parent = fireball
fireball.CanCollide = false
fireball.Parent = game.Workspace
game.Debris:AddItem(fireball,4)
local ten = true
fireball.Touched:connect(function(hit)
if not ten then return end
ten = false
local ehum = hit.Parent:findFirstChild("Humanoid") or hit.Parent.Parent:findFirstChild("Humanoid")
if ehum and ehum ~= hum then
ehum:TakeDamage(10)
elseif hit.Anchored == true and hit.CanCollide == true then
for i=1,10 do
local part = fireball:clone()
part.Size = Vector3.new(0.5,0.5,0.5)
part.CFrame = fireball.CFrame
part.ParticleEmitter.LockedToPart = false
part.BodyVelocity.Velocity = Vector3.new(math.random(-30,30),math.random(-30,30),math.random(-30,30))
part.Parent = game.Workspace
game.Debris:AddItem(part,1)
end
end
wait()
ten = true
end)
end)
so this is a script that i used a long time ago but it said attemp to index global chara (a nil value) help anyone?! im making a fireball bwt

1 comment
The character doesn't get added the second the script is ran. Try using "play.CharacterAdded:Wait()"