-- Variables local ts = game:GetService("TweenService") local Destination = 1 local boat = script.Parent.Parent -- Vector destinations local placestogo = {Vector3.new(0.782, -7.5, -116.367), Vector3.new(35.282, -7.5, -82.117), Vector3.new(120.5, -7.5, -53.25)} -- function to tween the boat function tweenBoat(goal,thingToDo) if thingToDo == "turn" then local tweeninfo = TweenInfo.new(8,Enum.EasingStyle.Linear, Enum.EasingDirection.InOut,0,false,0) local cframeValue = Instance.new("CFrameValue", script.Parent) cframeValue.Value = script.Parent.CFrame local tween = ts:Create(cframeValue, tweeninfo, {Value = goal}) tween:Play() cframeValue.Changed:Connect(function() script.Parent.Parent:SetPrimaryPartCFrame(cframeValue.Value) end) tween.Completed:Wait() cframeValue:Destroy() print("Yay!") elseif thingToDo == "move" then local tweeninfo = TweenInfo.new(8,Enum.EasingStyle.Linear, Enum.EasingDirection.InOut,0,false,0) local vectorlookat = Instance.new("Vector3Value", script.Parent) vectorlookat.Value = goal local vectorvalue = Instance.new("Vector3Value", script.Parent) vectorvalue.Value = script.Parent.Position local tween = ts:Create(vectorvalue, tweeninfo, {Value = goal}) tween:Play() vectorvalue.Changed:Connect(function() local positionWithYLeveled = Vector3.new(vectorvalue.Value.X, vectorvalue.Value.Y, vectorvalue.Value.Z) script.Parent.Parent:SetPrimaryPartCFrame(CFrame.new(positionWithYLeveled, vectorlookat.Value)) end) tween.Completed:Wait() vectorlookat:Destroy() vectorvalue:Destroy() if script.Parent.Position.Y ~= -7.5 then script.Parent.CFrame = CFrame.new(Vector3.new(script.Parent.Position.X, -7.5, script.Parent.Position.Z), script.Parent.CFrame.LookVector) end print("Yay!") end end -- wait 10 wait(10) -- loop to iterate over destination points and call the tweenBoat function while true do wait(2) tweenBoat(CFrame.new(script.Parent.Position, placestogo[Destination]), "turn") wait(2) tweenBoat(placestogo[Destination], "move") wait(10) print("Tween played") Destination = Destination + 1 if Destination == 4 then Destination = 1 end print(Destination) end
So, the boat keeps going under and then returns without its other parts to destination 1 once it reaches destination 3. How can i fix this? I am not sure what is going wrong.