# Weld C0 Non-deterministic

When modifying C0 of a weld, you might think it would only change the cframe of Part0 or Part1, but in fact it will choose one of the two based on certain parameters that are documented extremely poorly and not in the weld api.

Basically one of the two gets picked as a root object based on these heuristics:

<figure><img src="https://518491377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7DvKpPVnjhPPeIYs8Msr%2Fuploads%2F2HgoZsEVzKrlBLWHVYjY%2Fimage.png?alt=media&#x26;token=604337c3-7bc5-4151-ac2a-92a5466465f2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://518491377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7DvKpPVnjhPPeIYs8Msr%2Fuploads%2FsInHzhkQb0etCbCkjtQX%2Fimage.png?alt=media&#x26;token=26c9603f-21f4-4c99-8849-75f248b6d831" alt=""><figcaption></figcaption></figure>

Source: <https://create.roblox.com/docs/physics/assemblies#assembly-root-part>

Source2: <https://create.roblox.com/docs/reference/engine/classes/BasePart#RootPriority>

Here's a staff member talking about it: <https://devforum.roblox.com/t/when-editing-a-motors-c0c1-part0-gets-moved-instead-of-part1/13932/26>

This sucks ass!
