#“Ball collision / physics issue: character climbs the ball before I can control it (PES-style dribbl

1 messages · Page 1 of 1 (latest)

vast sinew
#

Hi everyone,
I’m working on a Roblox football (soccer) game inspired mainly by PES, with some influence from street football and Mario Strikers. The core idea is that each player controls a small team (5v5 on a futsal-sized pitch), and the ball should feel “attached” to the closest player in a controlled way — not free, chaotic, or constantly being fought over by everyone.
What I’m trying to achieve
My goal for the ball system is:
• When a player is close to the ball and moving, the ball should be gently “conducted” in front of their feet, similar to PES.
• The ball should stay near the player while they walk or jog.
• If the player sprints, the ball should go a bit further ahead and feel more risky (so it can be stolen or go out of bounds).
• The player should not stand on top of the ball or “climb” it.
• The ball should feel physical (it rolls, has weight, can bounce, etc.), not a purely scripted attachment.
In short: I want a PES-style dribbling feel using Roblox physics, not a glued ball or a completely free, chaotic one.
The current problem (what is breaking everything)
Right now I have two major issues with the ball and character interaction:

  1. The character climbs / stands on the ball
    Instead of pushing or guiding the ball, my character often:
    • Steps on top of the ball,
    • Treats it like a small platform,
    • Or partially sinks into it.
    Because of this, the ball ends up under the character instead of slightly in front of them, which looks bad and ruins the feeling of dribbling.
    I tried:
    • Disabling Climbing on the Humanoid
    • Changing MaxSlopeAngle
    • Adjusting HipHeight
    But the character can still “mount” the ball.
  2. The ball doesn’t respond immediately (initial delay)
    At the start of the game:
    • For the first few seconds, my character completely passes through the ball or barely affects it.
    • During this time, I can even stand on it or clip through it.
    • After a few seconds (sometimes), my script suddenly starts working and I can push / guide the ball normally.
    This makes me suspect there is some issue with:
    • Collision setup,
    • Physics initialization,
    • Or how the character interacts with the ball at spawn.
  3. Inconsistent contact with the ball
    Even after the script “activates”:
    • Sometimes the ball reacts properly when my leg touches it.
    • Other times, my character clips through it and nothing happens.
    • Only at certain angles does it reliably move.
    This makes me think the hitbox / collision of the ball or character might be unreliable.

How my current system works (concept, not asking you to write code)
Right now, my logic is roughly:
• If the player is within a certain distance of the ball, and moving:
• I apply a small BodyVelocity to the ball toward a point slightly in front of the player.
• Stronger force when sprinting, weaker when walking.
This kind of works, but only after that weird initial delay, and the “standing on the ball” problem still ruins everything.

What I need help with
I’m not asking anyone to make my game for me. I mainly want to understand:

  1. How to reliably prevent a character from climbing or standing on small physical objects like a ball.
  2. Why the ball sometimes ignores collisions at the start of the game.
  3. Whether I should:
    o Use CollisionGroups,
    o Change the ball to a simple sphere Part,
    o Handle everything server-side instead of client-side,
    o Or approach the dribbling system in a completely different way.
    If needed, I can share my current LocalScript and a short video of the issue.
    Thanks in advance — I really want to learn how to do this properly.
tawdry halo
#

you could utilize collision groups and have a seperate entity for the server to handle gameplay mechanics- replicating the movements with the ball and having the physics engine handle it. I would recommend handling everything server-side, though client-side replication could allow the ball to have smoother interaction with the player. i don't know how your system works however and likely, there are a few tweaks you could adjust to have the ball work how you'd like it

timid bolt
#

holy chatgpt