Particle orientation will bug when welded to player

hi, i have been working on a particle emitter welded to a player i manage to get a good orientation where the particle will be best shown. only when walking or turning and activating the particle it will start bugging and tripping out completely. i had this once before with a slash effect but i managed to fix it but for some reason the same code i used there doesnt work on here here is the code

weld.Part0 = HumanoidRootPart
		weld.Part1 = effect1
		
		effect1.CanCollide = false
		effect1.Transparency = 0
		effect1.Anchored = false
		effect1.Size =  game.ReplicatedStorage.Assets.Particles.WarriorParticles.Ability1.WarriorAB1Slash.Size
		
		local STUDS_INFRONT_OF_CHARACTER = 6
		local lookVector = HumanoidRootPart.CFrame.LookVector
		local pos = HumanoidRootPart.CFrame.p + (lookVector * STUDS_INFRONT_OF_CHARACTER)
		local targetCFrame = CFrame.new(pos, pos+lookVector) * CFrame.Angles(0,01,0,20) * CFrame.fromEulerAnglesYXZ(0,10,0)
		effect1.CFrame = targetCFrame
		
		effect1.Parent = game.Workspace.DebrisFolder

i would use cframeangles and put it on 0,01 ,0 ,20 and that would be the best orientation for the effect for me only even changing the value 0 by just 0.01 changes it completely, i have tried many other values to find a better solution but have found none sadly, here is also a video demonstrating the effect when i stand still and start moving

video demonstration

i have read other problems about people welding particles to the player and that because of the animation or of the constant moving of the hrp that if will constantly change values and therefore make the particle change orientation. here is a code that i used for a slash effect of mine that was also welded to the humanoidrootpart but did indeed work

swordWeld.Part0 = hrp
	swordWeld.Part1 = newslash
	newslash.Transparency = 1
	newslash.CanCollide = false
	newslash.Massless = true
	newslash.Anchored = false
	newslash.Size = Vector3.new(2, 2, 1)
	if swing == "swing1"  then
		newslash.CFrame = hrp.CFrame * CFrame.Angles(0.01, 20, 0.01) * CFrame.fromEulerAnglesXYZ(0,0,0)

only this cframe ruined the orientation for the effect im using now so i did not use it.

1 Like