You can write your topic however you want, but you need to answer these questions:
What do you want to achieve? Keep it simple and clear!
By solving it
What is the issue? Include screenshots / videos if possible!
I don’t know where to start
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
No
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.
I’ve used this function for a while. Make sure a PrimaryPart has been set for the model to move around:
local tweenService = game:GetService("TweenService")
local info = TweenInfo.new(3) --Change to the time it takes for the transition to take place
local function tweenModel(model, CF)
local CFrameValue = Instance.new("CFrameValue")
CFrameValue.Value = model:GetPrimaryPartCFrame()
CFrameValue:GetPropertyChangedSignal("Value"):connect(function()
model:SetPrimaryPartCFrame(CFrameValue.Value)
end)
local tween = tweenService:Create(CFrameValue, info, {Value = CF})
tween:Play()
tween.Completed:connect(function()
CFrameValue:Destroy()
end)
end
TweenPosition is for UI objects only, taking a UDim2 as the first argument.
Even if it did work for parts you’d be tweening them all to the same destination instead of keeping their relative positions, ending up with a useless pile of parts.
If you’re unsure, check your code in studio before providing it as a potential solution.
It involves tweening a single ‘root’ part, with all other parts of the model being unanchored and welded to it. Note that in order to maintain welds/weldconstraints, the CFrame property must be tweened, not position.