How to move a model without PrimaryPartCFrame

Okay so basically Model1 has a part in it called greenpart. Model2 has a part in it called greenpart. Now greenpart is not the primary part of either model, nor are the models equally sized in any way. What I need is for Model1 to be teleported to Model2 such that their greenparts are perfectly aligned. How would I achieve this?

I’ve attempted using PivotTo but of course the models were aligned but the parts weren’t. And teleporting one green part to another does not teleport the whole model along with it.

Cframe inverse should work

I’ll try this when I’m on my PC soon

Simple simple simple, you sigma ohio, theres something called “:MoveTo” which moves an entire model to a CFrame.

Nah this would move the model to a specific parts Cframe based off of the position of the model being moved, not the part within the model being moved

Well, the only thing i can think off is moving the pivot to where you want it to be, then pivot to :man_shrugging: im probably stupid

That’s also a good idea, I’ll try @dthecoolest’s solution first since I prefer using intended behaviors but will have this as a backup

This didn’t work. Basically both seats are the greenparts and boat is what’s being teleported to newtransport

local huskseatpos = huskseat:GetPivot()
local newseatpos = newtransport.Driver:GetPivot()
local crossframe = newseatpos:Inverse() * huskseatpos
boat:PivotTo(boat:GetPivot() * crossframe)

I haven’t used CFrame:Inverse() before so I think I’m misunderstanding how it could help in this case

The math is different for parts because the CFrame position vector goes from origin towards the part rather than attachments which starts from the part its parented to and towards the attachment CFrame.

Also I cant visualize how your setup looks, so I suggest drawing a vector diagram to visualize the path of the vectors to position your boat.

Im guessing it should be

local boatToSeatCFrame = BoatCFrame:Inverse()*boatSeat.CFrame

Boat:PivotTo(newTransport*boatToSeatCFrame)