Tween glitching when character moves

  1. What do you want to achieve? The two balls behind the character should stay in their place and perform the tween without glitching together even if the character moves in shift lock.

  2. What is the issue?

  3. What solutions have you tried so far? Tried to change it to HumanoidRootPart and using lookvector.

Server (SeverScriptService)

local RS = game:GetService('ReplicatedStorage')
local AwakeningFolder = RS:WaitForChild('Gojo_vfx')
local RE = AwakeningFolder:WaitForChild('porple')
local tweenService = game:GetService("TweenService")

RE.OnServerEvent:Connect(function(plr)
	local character = plr.Character
	local humanoid = character:WaitForChild("Humanoid")
	local torso = character:FindFirstChild("HumanoidRootPart")

	local animation = Instance.new("Animation")
	animation.AnimationId = "rbxassetid://86704128237748"
	local track = humanoid:LoadAnimation(animation)

	local redEffect = AwakeningFolder.Red:Clone()
	local blueEffect = AwakeningFolder.blue:Clone()
	local purpleEffect = AwakeningFolder.porple:Clone()
	local Meet = AwakeningFolder.Meet:Clone()

	track:Play()
	humanoid.WalkSpeed = 0

	track:GetMarkerReachedSignal("Red"):Connect(function()
		redEffect.Parent = torso
		redEffect:PivotTo(torso.CFrame * CFrame.new(5, 1, 4))
		local weld = Instance.new("WeldConstraint")
		weld.Parent = redEffect
		weld.Part0 = redEffect
		weld.Part1 = torso
		print("Awaken with Red effect")
	end)

	track:GetMarkerReachedSignal("Blue"):Connect(function()
		blueEffect.Parent = torso
		blueEffect:PivotTo(torso.CFrame * CFrame.new(-5, 1, 4))
		local weld = Instance.new("WeldConstraint")
		weld.Parent = blueEffect
		weld.Part0 = blueEffect
		weld.Part1 = torso
		print("Awaken with Blue effect")
	end)
	
	track:GetMarkerReachedSignal("Meet"):Connect(function()
		Meet.Parent = torso
		Meet:PivotTo(torso.CFrame * CFrame.new(0, 1, 4))
		local weld = Instance.new("WeldConstraint")
		weld.Parent = Meet
		weld.Part0 = Meet
		weld.Part1 = torso
		print("Meet point")
	end)
	
	track:GetMarkerReachedSignal("Meet_remove"):Connect(function()
		local bye = torso:FindFirstChild("Meet")
		if bye then
			bye:Destroy()
		end
	end)	

	track:GetMarkerReachedSignal("Blue_remove"):Connect(function()
		local bye = torso:FindFirstChild("blue")
		if bye then
			bye:Destroy()
		end
	end)
	
	track:GetMarkerReachedSignal("Red_remove"):Connect(function()
		local bye = torso:FindFirstChild("Red")
		if bye then
			bye:Destroy()
		end
	end)

	
	track:GetMarkerReachedSignal("Move1"):Connect(function()
	local redpart = torso:FindFirstChild("Red")
	if redpart then
		local tween = tweenService:Create(redEffect, TweenInfo.new(2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out), {Position = Meet.Position})
		tween:Play()
	end
		if blueEffect then
			local tween2 = tweenService:Create(blueEffect, TweenInfo.new(2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out), {Position = Meet.Position})
			tween2:Play()	
		end
    end)


	track:GetMarkerReachedSignal("Move"):Connect(function()
		humanoid.WalkSpeed = 27
	end)
end)

Client (StarterCharacterScripts)

local UIS = game:GetService('UserInputService')

local RS = game:GetService('ReplicatedStorage')
local Awakeningfolder = RS:WaitForChild('Gojo_vfx')
local RE = Awakeningfolder:WaitForChild('porple')
local CD = false

UIS.InputEnded:Connect(function(inpput, gameProcessedEvent)
	
	if not gameProcessedEvent and CD == false then
		
		if inpput.KeyCode == Enum.KeyCode.G then
			
			RE:FireServer()
			CD = true
			task.wait(1)
			CD = false
			
		end
		
	end
	
end)

Are the red and blue balls anchored?

No, cause otherwise the character wouldn’t be able to move

Are they welded together? You could use a plane constraint to keep it level and then use like align position to drag the ball there.

Are the balls just tweening to merge into each other?