.Touched event not firing for a short period of time

I made some sheets of paper than you can pick up and drop, and I also made a paper shredder where you’re supposed to throw paper.
However, for some reason when I drop the paper, the .Touched event doesn’t fire for about a second. If I move the paper after about 1 second of being dropped, the .Touched even actually fires.

I don’t know if this is related to NetworOwnership, but it’s extremely annoying. I’m not touching anything related to NetworkOwnerships, so I don’t know what’s causing the issue
image

Shredder script:

local debounce = false
local sound = script.Parent.Sound

script.Parent.Touched:Connect(function(part)
	if part.Parent.Name == "Cache" and not debounce then
		debounce = true
		sound:Play()
		part:Destroy()
		task.wait(0.5)
		debounce = false
	end
end)

Drop script:

if connection then
	connection:Disconnect()
	connection = nil
end

connection = remote.OnServerEvent:Connect(function(player)
	if plr == player then
		ui:Destroy()
		weld:Destroy()
		loaded:Stop()
		animation:Destroy()
		paper.CFrame = CFrame.new(paper.CFrame.Position) * CFrame.Angles(0,math.rad(math.random(-180,180)),0)
		paper.Parent = workspace.Cache
		proximityprompt.Enabled = true
		debounce = false
	end
end)

there are no errors at all on the output.

1 Like

Maybe this line has something to do with issue?

Nope. That’s just a cooldown. I’ve also tried removing it and nothing changes, since the .Touched event only fires when a part moves and is touching another. If the part doesn’t move it won’t fire

1 Like