AssemblyLinearVelocity can't be assigned for parts not in the world

Reproduction Steps

1. Create a Part in the workspace (it’s important that this part exist within the workspace otherwise the AssemblyLinearVelocity will reset to zero). Give this part a high AssemblyLinearVelocity that will visibly move the part a distance.
2. Create a server script which will :Clone() this part.
3. Before parenting the clone, set AssemblyLinearVelocity to Vector3.zero.
4. Have the script delete the original part, then parent the clone to the workspace.
5. Run the game.

Repro place file
AssemblyLinearVelocity Repro.rbxl (36.3 KB)


Expected Behavior

The part should have zero AssemblyLinearVelocity and should therefore not move since it’s set to zero. It’d be expected that any occurrence of Velocity could be directly replaced with AssemblyLinearVelocity to work exactly as prior, but this isn’t the case for parts outside the DataModel, which will retain their last AssemblyLinearVelocity without change.

Actual Behavior

Despite having the AssemblyLinearVelocity set, the part keeps its initial velocity without change.

Workaround

The only workaround I have found for all problems this relates to is to use Velocity.

Issue Area: Engine
Issue Type: Other
Impact: Moderate
Frequency: Constantly
Date First Experienced: 2022-08-24 00:08:00 (-04:00)
Date Last Experienced: 2022-09-10 00:09:00 (-04:00)

4 Likes

Thanks for the report. I filed a ticket to our internal database.

2 Likes