I’m not sure wheter this is a bug or scripting mistake. That’s why im first posting here.
I made a Model consisting of three parts: a Main Part and two roots and welded everything together with WeldConstraints.
The script looks like as follows:
local TService = game:GetService("TweenService")
local Cube = script.Parent
local Block = Cube.Block
local Main = Block.Main
local Root1 = Block.Root1
local Root2 = Block.Root2
local TweenGoal = {Position = Main.Position}
local TweenTime = TweenInfo.new(5)
local BlockSlide = TService:Create(Root1,TweenTime,TweenGoal)
Main.Anchored = false
Root2.Anchored = false
wait(5)
BlockSlide:Play()
When I try to rotate the MainPart and the other root around one root everything works perfectly fine, but as soon as I try to tween a root only the root tweens and the rest of my Model stays in place although unanchored, non-colliding and welded to the tweening root.
I tried rewelding a ton of times also with a script in-game that permwelded the parts together and changed the position a few times, but no success
It’s not your WeldConstraints that are improper, it’s either your model or your code. Check the surfaces of the parts of your model then reassess your code and see if you can make any changes. There’s no video of your problem on hand, just text, so it’s hard to see what’s happening.
There is no way to ‘tween’ a model in Roblox. A sneaky way to get around this, is to create a new Instance.new("CFrameValue"), set it to your model’s PrimaryPartCFrame, then tween the CFrameValue to your desired CFrame, all while the Value.Changed event is connected to setting the model’s PrimaryPartCFrame to the CFrameValue.Value.
I now solved the problem by replacing the Vector3 value (Main.Position) with a CFrame (Main.CFrame). For all future users, the script now looks like this:
local TService = game:GetService("TweenService")
local Cube = script.Parent
local Block = Cube.Block
local Main = Block.Main
local Root1 = Block.Root1
local Root2 = Block.Root2
local TweenGoal = {CFrame = Main.CFrame}
local TweenTime = TweenInfo.new(5)
local BlockSlide = TService:Create(Root1,TweenTime,TweenGoal)
Main.Anchored = false
Root2.Anchored = false
wait(5)
BlockSlide:Play()
My question now is, why tweening only works with CFrame and not a Vector3 value.