How to make orb roll towards player and staying on ground

How can i make an orb roll towards the player while it stays on the ground will realistic rolling physics?

Do you want it to roll straight? Follow the player? Can anything collide with the ball?

i want it to realistically follow the closest player, and yes the player can collide with it cuz i want to make it so that the player dies and it selects a new closest player to roll towards to

You can try adding an AlignPosition object into the orb that will push it in the player’s direction. Only problem would be adjusting the force correctly so it doesn’t end up making it float. This would be a small force just to make it roll.

Well i want to have it scripted so it will roll, so no external things, just the orb itself and a script

You can do all that I’ve said through a script. It’s the easiest solution I can think of, other than scripting the physics by yourself if you really want to.

Well i have NO IDEA how i have to script stuff like this, Could u help me out with that?

Well I’m telling you using the roblox physics objects is a lot easier. If you still want to do it that way… Good luck. Making realistic rolling physics is not easy, and I don’t know the way I would approach it to be honest.

well if i were to use physics objects, how can i make it move towards the player with a script?

AlignPosition is an object that applies a force so that the instance it’s parented to is at a specific position. You can add one inside the orb and select it to move to an attachment located at the player’s character. I don’t have time now to script an example, but you can read the documentation here: AlignPosition | Roblox Creator Documentation

Oke so funny enough i was making something simular to this with just a part. i wanted to make a pet rock that follows u everywhere.

You can disable Anchored so it wont float and just go over the round. in this case it will roll on the ground towards the player.

The distance is how much it stays away from the player. so if you want it to go directly inside the player you can just change it to 0 and else any number that fits your liking.

And if you want you can also add a touch event so if the part touches the player it gets destroyed.

local partName = "Part"
local playerToFollow = "Player"
local distance = 5
local NewPart = Instance.new("Part")
local part = workspace:FindFirstChild(partName)

NewPart.Parent = game.Workspace
NewPart.Name = "hello"
NewPart.CanCollide = false
NewPart.CanTouch = false
NewPart.Anchored = true

if not part then
	print("Part not found")
	return
end

function FollowPlayer()
	local player = game:GetService("Players"):FindFirstChild(playerToFollow)
	if player then
		local character = player.Character
		if character then
			local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
			if humanoidRootPart then
				while true do
					local direction = (humanoidRootPart.Position - part.Position).Unit
					part.CFrame = CFrame.new(humanoidRootPart.Position - direction * distance)
					wait()
				end
			end
		end
	else
		wait(2)
		FollowPlayer()
	end
end

FollowPlayer()

I already did something with an AlignPosition