how do I fix a nil value in tool? at line 47

local updateInterval = .4
local currentColor = 1
local colors = {26, 21}
local Tool = script.Parent 
local damage = 1

local ticksound = Instance.new("Sound")
ticksound.SoundId = "rbxasset://sounds\\clickfast.wav"
ticksound.Parent = script.Parent

function update()
	updateInterval = updateInterval * .9
	script.Parent.BrickColor = BrickColor.new(colors[currentColor])
	currentColor = currentColor + 1
	if (currentColor > 2) then currentColor = 1 end
end


function blowUp()
	local sound = Instance.new("Sound")
		sound.SoundId = "rbxasset://sounds\\Rocket shot.wav"
		sound.Parent = script.Parent
		sound.Volume = 1
		sound:play()
	local explosion = Instance.new("Explosion")
	explosion.BlastRadius = 12
	explosion.BlastPressure = 0 -- these are really wussy units

	-- find instigator tag
	local creator = script.Parent:findFirstChild("creator")
	if creator ~= nil then
		explosion.Hit:connect(function(part, distance)  onPlayerBlownUp(part, distance, creator) end)
	end

	explosion.Position = script.Parent.Position
	explosion.Parent = game.Workspace
	script.Parent.Transparency = 1
end

function onPlayerBlownUp(part, distance, creator)
	if part.Name == "Head" then
		local humanoid = part.Parent.Human
		local vCharacter=Tool.Parent
		local vPlayer=game.Players:playerFromCharacter(vCharacter)
		local crit = math.random(1,100)
		local crithit = 20
		local MinDamageValue = (VPlayer.Data.Power.Value/2)
		local MaxDamageValue = (VPlayer.Data.Power.Value*4)
		local Damage = math.random(MinDamageValue,MaxDamageValue*(255-humanoid.Parent.EnemySettings.Defend.Value-1)/256)+1
		if crit >= crithit then
	    Damage = Damage * 2
		end
		humanoid.Health = humanoid.Health - Damage
		local part = Instance.new("BillboardGui")
		part.Size = UDim2.new(0,50,0,100) 
		part.StudsOffset = Vector3.new(0,2,0)
		part.MaxDistance = 50
		local part2 = Instance.new("TextLabel")
		local dt = game.ReplicatedStorage.DynamicText:Clone()
		part2.Font = "Cartoon"
		part2.FontSize = "Size24"
		part2.TextStrokeTransparency = 0
		part2.Size = UDim2.new(1,0,1,0) 
		part2.Position = UDim2.new(0,0,0,0) 
		part2.BackgroundTransparency = 1
		part2.Parent = part
		dt.Parent = part2
		dt.Disabled = false 
		part.Parent = humanoid.Parent.Head
		part.Adornee = part.Parent
		if (Damage <= 0) then 
			part2.TextColor3 = Color3.new(0,0.5,1)
			part2.Text = "Miss!"
		else 
			part2.TextColor3 = Color3.new(1,1,1)
			    if crit <= crithit then
				part2.TextColor3 = Color3.new(1,1,0)
				part2.FontSize = "Size36"
				part2.Text = ""..Damage.."!"
			else
				part2.Text = ""..Damage..""
			end
		end
		wait(5)
		part:remove()
		tagHumanoid(humanoid, creator)
	end
end

function tagHumanoid(humanoid, creator)
	-- tag does not need to expire iff all explosions lethal	
	if creator ~= nil then
		local new_tag = creator:clone()
		new_tag.Parent = humanoid
	end
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end

while updateInterval > .1 do
	wait(updateInterval)
	update()	
	ticksound:play()	
end

blowUp()
wait(2)
script.Parent:remove()