Animations stop moving after a few seconds

I have a boat which has a script that welds everything but the model is for the animation is not affected by the script but still the animation does not move I have no idea why.

https://gyazo.com/ce96941a5927c5a502be46308159eb3b

it used to work but i’ve found it only works if the part with the motor is anchored which makes it so the boat cannot move.
The model is still moving around but I cannot see it moving.

https://gyazo.com/b587d75a8e406755428d095b64780cd0

1 Like

Could you provide the script you used?

The script for the welding script is just a free model qPerfectionWeld script.

image
Set up like this

There are many scripts with that name, could you please just paste the script?

local NEVER_BREAK_JOINTS = false

local function CallOnChildren(Instance, FunctionToCall)

FunctionToCall(Instance)

for _, Child in next, Instance:GetChildren() do
	CallOnChildren(Child, FunctionToCall)
end

end

local function GetNearestParent(Instance, ClassName)
– Returns the nearest parent of a certain class, or returns nil

local Ancestor = Instance
repeat
	Ancestor = Ancestor.Parent
	if Ancestor == nil then
		return nil
	end
until Ancestor:IsA(ClassName)

return Ancestor

end

local function GetBricks(StartInstance)
local List = {}

-- if StartInstance:IsA("BasePart") then
-- 	List[#List+1] = StartInstance
-- end

CallOnChildren(StartInstance, function(Item)
	if Item:IsA("BasePart") then
		List[#List+1] = Item;
	end
end)

return List

end

local function Modify(Instance, Values)
– Modifies an Instance by using a table.

assert(type(Values) == "table", "Values is not a table");

for Index, Value in next, Values do
	if type(Index) == "number" then
		Value.Parent = Instance
	else
		Instance[Index] = Value
	end
end
return Instance

end

local function Make(ClassType, Properties)

return Modify(Instance.new(ClassType), Properties)

end

local Surfaces = {“TopSurface”, “BottomSurface”, “LeftSurface”, “RightSurface”, “FrontSurface”, “BackSurface”}
local HingSurfaces = {“Hinge”, “Motor”, “SteppingMotor”}

local function HasWheelJoint(Part)
for _, SurfaceName in pairs(Surfaces) do
for _, HingSurfaceName in pairs(HingSurfaces) do
if Part[SurfaceName].Name == HingSurfaceName then
return true
end
end
end

return false

end

local function ShouldBreakJoints(Part)

if NEVER_BREAK_JOINTS then
	return false
end

if HasWheelJoint(Part) then
	return false
end

local Connected = Part:GetConnectedParts()

if #Connected == 1 then
	return false
end

for _, Item in pairs(Connected) do
	if HasWheelJoint(Item) then
		return false
	elseif not Item:IsDescendantOf(script.Parent) then
		return false
	end
end

return true

end

local function WeldTogether(Part0, Part1, JointType, WeldParent)

JointType = JointType or "Weld"
local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")

local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
Modify(NewWeld, {
	Name = "qCFrameWeldThingy";
	Part0  = Part0;
	Part1  = Part1;
	C0     = CFrame.new();--Part0.CFrame:inverse();
	C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
	Parent = Part1;
})

if not RelativeValue then
	RelativeValue = Make("CFrameValue", {
		Parent     = Part1;
		Name       = "qRelativeCFrameWeldValue";
		Archivable = true;
		Value      = NewWeld.C1;
	})
end

return NewWeld

end

local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)

for _, Part in pairs(Parts) do
	if ShouldBreakJoints(Part) then
		Part:BreakJoints()
	end
end

for _, Part in pairs(Parts) do
	if Part ~= MainPart then
		WeldTogether(MainPart, Part, JointType, MainPart)
	end
end

if not DoNotUnanchor then
	for _, Part in pairs(Parts) do
		Part.Anchored = false
	end
	MainPart.Anchored = false
end

end

local function PerfectionWeld()
local Tool = GetNearestParent(script, “Tool”)

local Parts = GetBricks(script.Parent)
local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]

if PrimaryPart then
	WeldParts(Parts, PrimaryPart, "Weld", false)
else
	warn("qWeld - Unable to weld part")
end

return Tool

end

local Tool = PerfectionWeld()

if Tool and script.ClassName == “Script” then

script.Parent.AncestryChanged:connect(function()
	PerfectionWeld()
end)

end

Do you anchor your antenna or no?

The antenna are not anchored as they are a part of the motor.