Particles taking too long to appear

Well I did a blaster skill, my intention at the beginning was to use particles in the Part (leaving the part invisible), and just the particles looking like a smoke blaster in a straight line, I tried but the particles take 1 second or more to appear, then this happens:

SKILL PURE BLASTER

I want particles appear before or together the blaster, but only appear after, i dont know why this is happing

Also If you guys want the code, i dont think make difference because iam not putting the particles on code, It is already on Part, iam only cloning the Part.

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PureBlaster = ReplicatedStorage.Skills.Pure.PureBlaster
local Meshes = script.Meshes
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local trainingm = require(game.ServerStorage.TrainingFiles.TrainingModule)


local function pureBlasterF(player)
if player.Character.HumanoidRootPart.Anchored == false then
 if not workspace:FindFirstChild(player.Name.." Blaster")then
	
	
	local damage = player.Stats.Mind.Value
	local usingSkill = Instance.new("BoolValue")
	usingSkill.Name = "usingSkill"
	usingSkill.Value = true
	usingSkill.Parent = player
	print("BLASTER ")
	
	
	local Character = player.Character
	local Humanoid = Character:WaitForChild("Humanoid")
	
	local HumanoidRP = Character:WaitForChild("HumanoidRootPart")
	
	HumanoidRP.Anchored = true
	
	
	

	local Track =  Humanoid:LoadAnimation(script.Animation)
    Track:Play()

	
	--Hold
	local Folder = Instance.new("Folder",workspace)
	Folder.Name = player.Name.." Blaster"
	Folder.Parent = workspace
	
	Debris:AddItem(Folder,3.5)
	
	
	local PureB = Meshes:WaitForChild("PureB"):Clone()
	PureB.CFrame = Character:WaitForChild("LeftHand").CFrame
	PureB.Size = Vector3.new(2,2,2)
	PureB.Parent = Folder
	
	local PureB2 = Meshes:WaitForChild("PureB"):Clone()
	PureB2.CFrame = Character:WaitForChild("RightHand").CFrame
	PureB2.Size = Vector3.new(2,2,2)
	PureB2.Parent = Folder
	
	local weld = Instance.new("WeldConstraint")
	weld.Parent = Folder
	weld.Part0 = PureB
	weld.Part1 = Character:WaitForChild("LeftHand")
	
	local weld2 = Instance.new("WeldConstraint")
	weld2.Parent = Folder
	weld2.Part0 = PureB2
	weld2.Part1 = Character:WaitForChild("RightHand") 
	
	Debris:AddItem(PureB,1.25)
	Debris:AddItem(PureB2,1.25)	
	
	wait(0.75)

	
	local goal = {}
	goal.Size = PureB.Size + Vector3.new(9,0,0)
	local info = TweenInfo.new(0.2)
	local tween = TweenService:Create(PureB,info,goal)
	tween:Play()
	
	local goal = {}
	goal.Size = PureB2.Size + Vector3.new(9,0,0)
	local info = TweenInfo.new(0.2)
	local tween = TweenService:Create(PureB2,info,goal)
	tween:Play()

    if player:FindFirstChild("shield") then	
	  if player.shield.Value < 3 then
		 player.shield.Value = player.Shield.Value + 1
	  end  	
    else
	   local shield = Instance.new("IntValue")
	   shield.Name = "shield"
	   shield.Value = 1
	   shield.Parent = player
    end

    coroutine.wrap(function()
	      print("Entrei no shield")
		  while workspace:FindFirstChild(player.Name.." Blaster"):FindFirstChild("PureB") do
			print("Entrei no shield 2")
			wait(0.5)
		  end
		  print("Entrei no shield 3")
		  player.shield.Value = player.shield.Value - 1
		  if player:FindFirstChild("shield").Value == 0 then
			 player.shield:Destroy()
		  end
	   end)()
 
      wait(0.2)	
	
	  local BlasterP = Meshes:WaitForChild("BlasterP"):Clone() //CLONING PART
	  local offset = Vector3.new(0,0,-1) 
      BlasterP.CFrame = Character.UpperTorso.CFrame * CFrame.new(offset)
      BlasterP.Orientation = BlasterP.Orientation + Vector3.new(0,-90,0)
      BlasterP.Size = Vector3.new(1,15,15)
      BlasterP.Anchored = true
      BlasterP.Parent = Folder 

    
	local goal = {}
	goal.Size = BlasterP.Size + Vector3.new(100,0,0)
	goal.CFrame = BlasterP.CFrame * CFrame.new(-50,0,0)
	local info = TweenInfo.new(0.2)   
	local tween = TweenService:Create(BlasterP,info,goal)
	tween:Play()
	
	
	   coroutine.wrap(function()
		  for count = 1,5,1 do
	      BlasterP.Transparency = BlasterP.Transparency + 0.2
	      wait(0.2)
	      end
	   end)()    

       
	
	  local transp = 0.1
	  wait(0.5)
	  HumanoidRP.Anchored = false
	  for count = 1,10,1 do
	     BlasterP.ParticleEmitter.Transparency = NumberSequence.new(transp,transp)
	     wait(0.2)
	     transp = transp + 0.1
	  end
	
	   
    Debris:AddItem(usingSkill,1.0)	   	
 end	
end
end


PureBlaster.OnServerEvent:Connect(pureBlasterF)

Well, without the code, we might suggest something you’ve already done.

Here goes nothing:

Clone the part before everything, if that’s too early, clone it after cloning the yellow spheres that spawn on the hand

I Will put the code on Topic, wait a minute

Fine look now, i already tried put the particles 10000 rate but dont make difference, take 1 Second to appear

May you highlight the part where the cylinder is cloned? I am having a hard time finding it

Fine i wrote //CLONING PART, look now

I recommend removing the wait(0.2) and put it AFTER cloning the part

So should i clone and Part invisible and make visible when player Will blast ?

I don’t know what you mean, can you explain?

Dont work, look that is the part

Now see when player blaster See

dont work, idk why