Circular Mesh Parts Colliding Incorrectly

  1. What do you want to achieve? I want the circles to collide, but not intersect with each other

  2. What is the issue? They collide from the inside, rather than the outside

  3. What solutions have you thought of so far? Tried putting a large invisible part above the mesh to match circle’s size with a greater Y value to prevent other circles from climbing

The mesh has the Hull collision fidelity and CanCollide true, so its hitbox is indeed a circle.



But how are you moving the cylinders? Is the first video what’s happening because in the other videos I can’t really see them overlapping.

If you use physics and Humanoids then there may be issues that way.
If you are using Scripts then it’s probably the script Position being placed inside the other mesh.

They move from the mouse cursor. They use Humanoids with the :MoveTo function

local RunService = game:GetService("RunService")

local plr = game.Players.LocalPlayer
local char = plr.Character

local re = game:GetService("ReplicatedStorage").Remotes

local alivePlayers = workspace:WaitForChild("AlivePlayers")

local BlobModule = require(game.ReplicatedStorage:WaitForChild("Modules"):WaitForChild("BlobModule"))

local Mouse = plr:GetMouse()

RunService.RenderStepped:Connect(function()
	if char and char.Parent == alivePlayers:FindFirstChild(plr.Name) then --Check if we are alive
		local target = Mouse.Hit.Position

		for _, blob in pairs(BlobModule.GetPlayerBlobs(plr)) do
			blob.Parent:WaitForChild("Humanoid"):MoveTo(Vector3.new(target.X, 0, target.Z))
		end
	end
end)

It seems to happen more the bigger the circle is, that’s why it doesn’t show much on the first video

Since you’re trying to move Humanoids to the same Position you may be having issues because of that.
You can try using a tool in the Studio settings to see exactly where Roblox is calculating the collisions. File > Studio Settings > Physics > Are Contact Points Shown to show you red spheres at contact points. If there are contact points inside each other then you’re likely dealing with the Humanoid issue.
You can try to calculate sending them to a Position that’s 1/2 the diameter of the target + 1/2 the diameter of the blob away from the target instead. Let’s say the first blob is 4 studs across and the second is 3 studs across. 1/2 the diameter is the point where the surface of each cylinder is.
Add (.5 * 4) + (.5 * 3) = 3.5. This is how many studs apart the Position of the second blob should be calculated to be.

I found out that the HumanoidRootPart and Torso had collisions on them, despite turning them CanCollide false in studio. To fix this, I had to make a script that disabled collisions instead

1 Like