I’m trying to make something similar to the carry an egg game where an egg bounces around
in a tray. I’m just doing a ball for testing.
Current problems: Watch 2025-02-16 10-14-23 | Streamable
Right now the ball bounces around and when it hits the side of the tray,
it flings the player. I’m trying to limit the y axis movement so when the player spins around, the ball bounces around but ONLY on the x and z axis and the ball only goes up with the tray when the player jumps.
I’ve tried a lot of what people have said, using a vector foce causes the player to get pushed back. I can’t use stuff like welds cause then the ball can’t roll around. I’ve tried a plane constraint but then the ball moves really weird and it still pushes the player.
This is using the plane constraint: Watch 2025-02-16 10-19-53 | Streamable
The y axis is good but the ball pushes the player
game.Players.PlayerAdded:Connect(function(plr)
local char = plr.Character or plr.CharacterAdded:Wait()
local humanoid = char.Humanoid
humanoid.WalkSpeed = 0
task.wait(.5)
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://117802467595811"
local holdTray = humanoid:LoadAnimation(animation)
holdTray:Play()
task.wait(.25)
holdTray:AdjustSpeed(0)
task.wait(.15)
local tray = game.Workspace.Tray:Clone()
tray.Name = 'trayRuntime'
tray.Parent = char
local weld = Instance.new("Weld")
weld.Part0 = tray
weld.Part1 = char:FindFirstChild("HumanoidRootPart")
print("Before weld:", tray.Position)
weld.C0 = CFrame.new(2.5, -.5, 0) * CFrame.Angles(0, math.rad(90), 0)
weld.Parent = tray
local ball = game.Workspace.Default:Clone()
ball.Name = 'bombRuntime'
ball.Parent = workspace
ball:SetNetworkOwner(game.Players:GetPlayers()[1])
ball:PivotTo(tray.CFrame * CFrame.new(0, .5, 0))
humanoid.WalkSpeed = 16
end)
-- plane constraint code
--local plane = Instance.new("PlaneConstraint")
--local att = Instance.new("Attachment")
--att.Orientation = Vector3.new(0,0,90)
--att.Parent = tray
--local att1 = Instance.new("Attachment", ball)
--plane.Attachment0 = att
--plane.Attachment1 = att1
--plane.Parent = tray
As you can see all i do is play an animation and weld the tray to the humanoid root part.
I’ve tried root priority, massless, density. If anyone could help that would be amazing!