Motor6D Property Not Updating Consistently?

I’ve noticed that the Transform and C0 property of a motor visually updates differently.

Consider the code below:

local RUN_SERVICE = game:GetService("RunService")

RUN_SERVICE.Stepped:Connect(function()
	workspace.a.Motor6D.C0 = CFrame.new(0, 5, 0)
end)

RUN_SERVICE.Heartbeat:Connect(function()
	workspace.a.Motor6D.C0 = CFrame.new()
end)

With this code below, part ‘a’ doesn’t visually separate 5 studs from its origin, as seen below:

Now consider this code:

local RUN_SERVICE = game:GetService("RunService")

RUN_SERVICE.Stepped:Connect(function()
	workspace.a.Motor6D.Transform= CFrame.new(0, 5, 0)
end)

RUN_SERVICE.Heartbeat:Connect(function()
	workspace.a.Motor6D.Transform= CFrame.new()
end)

When I’m editing the Transform property, you can actually see it visually separate still.

It’s almost as if something happens between “Stepped” and “Heartbeat” that visually renders Transform edits but doesn’t render C0 edits. Can someone please confirm this?

2 Likes

Do you have this in a test place we could use?

1 Like

I found a thread that may fix your problem and understnad the difference of C0 and Transform.

I hope this helps. :herb:

1 Like

It did not, sorry. I’m trying to figure out what’s going on internally that causes this behavior.

Did you find any more information on this? Updating C0 after physics simulation has an effect, but updating Transform after physics simulation has no effect. This makes it hard to sync Motor6D.Transform with other effects in game that need to render later.

1 Like