Use the onBallHit input event.
Is that a thing?
Anyway, what I would do is use VCE and have 2 plates that trap the ball
This is a hoop vvv
========== 1st plate covering this
#########
########
#######
###### 2nd plate covering this
The first plate has no raycasting.
When the ball hits the second plate it triggers:
OnProjectileHit > [Self] > IfValue <var:br:LastProj> = Baskeball (not sure if correct name)
0 OnVariableTrue > [Self] > SetRayCasting [ ]
1000 OnVariableTrue > [Self] > SetRayCasting [X]
0 OnVariableTrue > [First Plate] > SetRayCasting [X]
1000 OnVariableTrue > [First Plate] > SetRayCasting [ ]
On the First plate:
OnProjectileHit > [Self] > IfValue <var:br:LastProj> = Baskeball (still not sure if correct name)
OnVariableTrue > Minigame >BottemprintAll "%1 scored a point!"
This should work although I haven't tested it.
It also makes sure the ball isn't thrown upwards.