:GetPartBoundsInBox() not returning parts with an animated client-side assembly

When a client-sided assembly (PrimaryPart anchored, all parts CanCollide/CanTouch off, animated with AnimationController or Humanoid) is moving, :GetPartBoundsInBox() no longer returns parts inside of the assembly.

Steps to reproduce:

  1. Create an animated rig (PrimaryPart anchored, all parts CanCollide/CanTouch off) with an AnimationController
  2. In a LocalScript, clone that rig and parent it to workspace
  3. Play an animation on the rig
  4. Move assembly rootpart’s CFrame in a .Heartbeat connection

The box in this video represents a :GetPartBoundsInBox() call centered on the assembly.
Red means that it isn’t detecting any parts from the model, green means that it is detecting parts from the model.
As you can see in the video, it sometimes isn’t detecting any parts from the model:
robloxapp-20250225-1338403.wmv (130.0 KB)

If even one of the parts are CanCollide or CanTouch on, it starts working as expected.
In this video the “Left Arm” is CanTouch on:
robloxapp-20250225-1346436.wmv (122.2 KB)

Place repro file:
HumanoidRepro.rbxl (59.5 KB)

System information:
AMD Ryzen 9 7950x, 64 GB, AMD Radeon RX 7900 XT

Expected behavior

I expect :GetPartBoundsInBox() to always return parts when the bounds of those parts are inside the box, regardless of whether the assembly is animated or if CanCollide/CanTouch is set.

2 Likes

Following up with the dev in a private message.

2 Likes