the only thing that seems to fix it would be using cframe instead and rotating but it rotates weirdly if i use cframe
-- spawn in the fx
local windup = VFX["wind up"]:Clone()
windup.Transparency = 1
windup.Parent = character
windup.CFrame = character.HumanoidRootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) * CFrame.new(1.5, -3, 0)
-- code used when using rotation
local wg = {
Transparency = 0;
Rotation = Vector3.new(90,180,0)
}
-- code used when using cframe
local wg = {
Transparency = 0;
CFrame = character.HumanoidRootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(180), math.rad(0)) * CFrame.new(1.5, -3, 0);
Rotation = Vector3.new(90,180,0);
}
This is an interesting one, but I thought of rotating the mesh by 360 degrees around its own axis? Setting the CFrame of the tween to the current CFrame of the mesh, so it stays in plays.
Feel free to toy with the tweenInfo to control how long and the type of tween.
Example
local windup = VFX["wind up"]:Clone()
windup.Transparency = 1
windup.Parent = character
windup.CFrame = character.HumanoidRootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) * CFrame.new(1.5, -3, 0)
local wg = {
Transparency = 0;
CFrame = windup.CFrame;
Rotation = Vector3.new(0, 0, 360);
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear)
local tween = game:GetService("TweenService"):Create(windup, tweenInfo, wg)
tween:Play()