Remote event argument only works once

My argument in a remote event only works ‘once’

Character.EventsFolder.Revive.OnServerEvent:Connect(function(Player, Type, TargetCharacter, Tool, AnimSpeed, Time, Character)
	if Type == "Start" and Tool == "Fists" then
		Reviving = true
		RevAnim:Play(AnimSpeed)
		ReviveTime = Time
		repeat
			wait(0.1)
			ReviveTime = ReviveTime + 0.1
		until ReviveTime == 5
		
		TargetCharacter.EventsFolder.ReviveE:Fire()
	end
	
	if Type == "Stop" then
		RevAnim:Stop()
		ReviveTime = 0
		Reviving = false
TargetCharacter:WaitForChild("EventsFolder").Revive:FireClient(game.Players:GetPlayerFromCharacter(TargetCharacter), "WWWWWWWQRQW")
		if Slowdown then
			Slowdown:Destroy()
		end
	end
end)

after “Type == “Stop”” The targetcharacter seems to be nil

help would be appreciated

if Type == "Stop" then

Is only evaulated once, if you need to yield until the variable is set to that value then you’ll need to do the following.

repeat task.wait() until Type == "Stop"