PivotTo works once and never again

script.Parent.Touched:Connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") then
		
		--effects
		local splashSound = Instance.new("Sound")
		splashSound.SoundId = "rbxassetid://137304720"
		splashSound.PlayOnRemove = true
		
		local splashEffectPart = Instance.new("Part")
		splashEffectPart.CanCollide = false
		splashEffectPart.Transparency = 1
		splashEffectPart.Anchored = true
		local pos = hit.Parent.HumanoidRootPart
		splashEffectPart.Position = Vector3.new(pos.Position.X, 1, pos.Position.Z)
		
		local splashEffect = Instance.new("ParticleEmitter")
		splashEffect.Parent = splashEffectPart
		splashEffect.Color = ColorSequence.new(Color3.fromRGB(82,124,174))
		splashEffect.LightEmission = 0.5
		splashEffect.Size = NumberSequence.new(3)
		splashEffect.Speed = NumberRange.new(10)
		splashEffect.Rate = 25
		splashEffect.Lifetime = NumberRange.new(.9)
		splashEffect.Transparency = NumberSequence.new(0, 1)
		splashSound.Parent = splashEffectPart
		
		splashEffectPart.Parent = game.Workspace
		splashEffect:Emit(10)
		
		--teleportation
		wait()
		hit:PivotTo(game.Workspace.SpawnLocation.CFrame)
		splashSound:Play()
		wait(.5)
		splashEffectPart:Destroy()
	end
end)

thats the full script. you probably dont need all of it, but considering i have no idea whats going wrong, i have no idea whats relevant either. so, here it is. basically, i jump onto the baseplate, and i get teleported back to the spawn location. this works once, and never again. the weirdest part? everything else in the script does, i jump back onto the baseplate and the splash effect happens, but no teleportation.

This is the problem. hit could be a BasePart of yo character and NOT the character model. So, you have to refer hit.Parent to refer the model.

i am stupid. i cannot believe i didnt see this. good god. thank you lol