as you can read in the title, Im making a football game and I used MuchachoHitbox Module to Detect when the ball is touching the Player Hitbox, the issue is that its not working when the ball is going fast (when the goalkeeper want to catch it ) which is annoying
Thats why im thinking of making my own Custom Hitbox for my game so what should i use to make a good hitbox that detect Fast moving Objects ? I don’t want to use a touched Event since its bad for this
You could try checking out how FastCast handles projectiles!
By scrolling down under the ActiveCast module, you can see something of a for loop that handles the projectile’s raycast. By separating each distance travelled from the last frame(s) into segments.
For example, the ball travelled about 15 studs away from the origin, now, you get to calculate the segments by doing math.floor(distanceTravelled / segmentSize) where segmentSize is how long each segment should be. Now that we have our first value of 15, divide it by 3, we get about 5 segments! In a for loop, you have to iterate from the index of 1 up to the amount of segments are there.
Now here’s the tricky part, because you want these segments to check if it hit something without crashing Roblox, you have to add in a debounce!
Lastly, all you have to do to detect for collisions is by using either workspace:GetPartsBoundInBox() or workspace:Spherecast()
Here’s an example:
local distance = 15
local segmentSize = 3
local size = math.floor(distance / segmentSize)
if not activelyCheckingCollisions then
activelyCheckingCollisions = true
for i = 1, size do
local result = someCollisionDetectionFunction() -- workspace:Spherecast() or workspace:GetPartsBoundInBox() / workspace:GetPartsBoundInRadius()
if result ~= nil then -- if result returns a table of instances: `result ~= nil and #result > 0 `
local player
...
doAction(player)
break
end
end
activelyCheckingCollisions = false
end