.Touched event only fires the first time? (soccer ball)

So im trying to make a simple soccer goal in my game to give players something to do while they wait in the lobby. Everything is basically done except for one issue.

When the Ball enters the goal, i have some ramps which lead it towards a touch part. When the Ball collides with the touch part, it is teleported above into a eject ramp and the ball leaves the goal.

Issue is the .touched in the script only fires the first time. Here is an example

Here is the script in the touch part

local debounce = false
local TweenService = game:GetService("TweenService")
local Ball = script.Parent.Parent.Parent.SoccerBallModel

	print("so it happpend") -- this tells me in devconsole whether the function was fired or not
	if hit.Parent == Ball then
		if debounce == false then
			debounce = true
			hit.CFrame = CFrame.new(hit.Position.X,96.601,hit.Position.Z)
			debounce = false
			hit.CFrame.AssemblyLinearVelocity = Vector3.new(-20,0,0)

Ive been stuck on this for like 3 days trying to make different ball eject systems and im starting to lose hope that i cant even make a simple soccer goal. Can anybody help?

You’re checking if whatever touched the ball was the ball I assume also you’re not checking if its an actual player touching it

That’s not the issue, that line is just for IF debounce is true. The script all ready sets debounce back to false after it CFrames and wait(4)

Yes because the script is only meant to teleport the ball, so that is an extra check in case something else hits it.

The line I quoted is the issue, it never prints this meaning when the ball hits the touch part, the function wasn’t even fired.

What is the script’s parent? (Char limit)

The scripts parent is the touch part

the one on the bottom?(char limit)

The yellow force field part in the video is the touch part

Figured it out, I forgot that when cloning parts it saves collision groups and the touch part’s collision group was set to not collide with the ball