I'm making a firefighter simulation game and I need the fire to damage you over time if you're on fire.

Here is the script that activates when you touch the fire:

--Made by KiddySquid

debounce = false
function touched(hit)
	local humanoid = hit.Parent:WaitForChild("Humanoid") --Look for the humanoid
	if humanoid and debounce == false then --Make sure the humanoid exists
	humanoid:TakeDamage(30)
	local fire = script.Parent.FireEffect:Clone()
	print("clone fire")
	fire.Parent = hit --Put the fire in the body part the fire hit
	print("set fire parent")
	local burnscript = script.Parent.FireScript:Clone()
	print("clone burnscript")
	burnscript.Parent = fire
	print("set parent")
	burnscript.Disabled = false
	print("disable")
	debounce = true --Prevent the script from running for another 2 seconds
	print("debounce true")
	wait(2)
	debounce = false --Allow it to run again
	print("Debounce false")
	end
	end

script.Parent.Touched:connect(touched)

Every single print I put in works just fine. However in the FireScript, the main script is trying to clone:

--Made by KiddySquid

character = script.Parent.Parent 
humanoid = character:WaitForChild("Humanoid") --Make sure the humanoid exists to prevent errors
intensity = game.ServerStorage.RoundStats.FireIntensity.Value
iteration = 1

repeat
	iteration = iteration + 1
	print("iteration")
	wait(0.3)
	if humanoid then --If the humanoid exists make it take damage. This way, parts can still catch on fire
	print("if humanoid")
	humanoid:TakeDamage(6.5 * intensity)
	print("takedamage")
	end
	print ("end")
until iteration == 30 
print ("until iteration 30")

script.Parent.Fire.Enabled = false --Disable the fire instead of deleting it right away so the particles can dissolve
print("disable fire")
wait(2)
script.Parent:Destroy()
print("destroy")

Absolutely nothing prints. It does clone to the character just fine, and it does enable the script just fine, but the script itself refuses to run.