Setting AssemblyLinearVelocity on a BasePart does not work if object is not in Workspace

I noticed that whenever I set the AssemblyLinearVelocity property on my object before I parent it to workspace, whatever value I give it seems to be ignored entirely.
However, it appears this is not the case if I set the old deprecated value “Velocity” instead.

I’ve made a simple repro in baseplate with 1 part and 1 script to showcase the issue pretty simply:

Mini Addendums:

  1. This exact situation will occur with AssemblyAngularVelocity and the deprecated value RotVelocity
  2. Whether Anchored or unanchored, the same results occur
5 Likes

Do you not get a warning? They implemented a warning for this a while back:

I myself got the warning:

I believe the message went something along the lines of

Attempted to change AssemblyLinearVelocity of Part “<Part>”, but it was not a descendant of the Workspace and did not change!

1 Like

I do not get a warning of any kind setting the assemblylinearvelocity / assemblyangularvelocity to a part that is not a descendant of workspace (as seen in the screenshot)

1 Like

Thank you for flagging this issue! For transparency, we did add a warning whenever AssemblyLinearVelocity and AssemblyAngularVelocity was not changing, but rolled the warning back since it both was spammy and we found edge cases where the warning was misleading or uninformative.

We’re working on a more complete fix to this issue that would depreciate the need for a warning. In the mean time, setting the AssemblyLinearVelocity or AssemblyAngularVelocity of a part will not work if the part is not parented to the workspace.

2 Likes

Hello! Just wanted to circle back on this issue to say that it should be fixed! You should be able to set AssemblyLinearVelocity and AssemblyAngularVelocity on parts that are not in the world yet, and see that when the part enters the world, those velocities will be applied to the part.

Note that for multi-part assemblies, we will choose the AssemblyLinearVelocity and AssemblyAngularVelocity based on the values set on the AssemblyRootPart.

Let us know if you’re still having issues with this though!

1 Like