Ok, so my place has flashbangs, and when you press G, the animation plays. When the animation is done, the weld that attached the grenade to the arm is destroyed, and the grenade is thrown. But for some reason, after 1/10th of a second, the flashbang sort of stops in mid air then resumes flying a split second later. I have no idea why it's doing this, I tried disabling the scripts to isolate the problem, and I figured out it happens 1/10th of a second after the Weld is destroyed. Any suggestions as to how I would go about fixing this?
EDIT: Added Code
function ThrowGrenade(Grenade) _G.MainGui.CrossHair1.Visible = false _G.MainGui.CrossHair3.Visible = true Humanoid.WalkSpeed = 16 local Grenade = Grenade:Clone() Grenade.Parent = game.Workspace for _,v in pairs(Grenade:GetChildren()) do if v:IsA("BasePart") and v ~= Grenade:WaitForChild("Center") then local Weld = Instance.new("Weld") Weld.Part0 = Grenade:WaitForChild("Center") Weld.Part1 = v Weld.C0 = Grenade.Center.CFrame:toObjectSpace(v.CFrame) Weld.Parent = v v.Anchored = false end end Grenade:WaitForChild("Center").Anchored = false local Weld = Instance.new("Weld") Weld.Part0 = FakeRArm Weld.Part1 = Grenade:WaitForChild("Center") Weld.C0 = _G.GripC0 Weld.Parent = FakeRArm _G.TweenJoint(_G.LWeld2,CF(),CFANG(0,RAD(80),0),_G.Linear,0.25) _G.TweenJoint(_G.RWeld2,CF(),CFANG(0,RAD(-80),0),_G.Linear,0.25) _G.TweenJoint(_G.LWeld,_G.ArmC0[1],CF(-0.2,0.8,0.1) * CFANG(0,0,RAD(-30)),_G.Linear,0.25) _G.TweenJoint(_G.RWeld,_G.ArmC0[2],CF(0.2,0.8,0.1) * CFANG(0,0,RAD(30)),_G.Linear,0.25) wait(0.3) local Ring = Grenade:WaitForChild("Ring"):Clone() Ring.Parent = _G.TextureFolder Ring:BreakJoints() local RingWeld = Instance.new("Weld") RingWeld.Part0 = _G.FakeLArm RingWeld.Part1 = Ring RingWeld.C0 = _G.FakeLArm.CFrame:toObjectSpace(Ring.CFrame) RingWeld.Parent = _G.FakeLArm Grenade:WaitForChild("Ring").Transparency = 1 _G.TweenJoint(_G.LWeld2,CF(),CFANG(0,RAD(45),0),_G.Sine,0.2) _G.TweenJoint(_G.RWeld2,CF(),CFANG(0,RAD(-45),0),_G.Sine,0.2) _G.TweenJoint(_G.LWeld,_G.ArmC0[1],CF(0,0.8,0.1),_G.Sine,0.2) _G.TweenJoint(_G.RWeld,_G.ArmC0[2],CF(0,0.8,0.1),_G.Sine,0.2) wait(0.2) Ring:Destroy() _G.TweenJoint(_G.LWeld2,CF(),CF(),_G.Sine,0.3) _G.TweenJoint(_G.RWeld2,CF(),CF(),_G.Sine,0.3) _G.TweenJoint(_G.LWeld,_G.ArmC0[1],CF(0,0.5,0.1) * CFANG(RAD(90),0,0),_G.Sine,0.3) _G.TweenJoint(_G.RWeld,_G.ArmC0[2],CF(0,0.4,0.1) * CFANG(RAD(-80),0,0),_G.Sine,0.3) wait(0.3) repeat wait() until (not _G.Keys["g"]) _G.TweenJoint(_G.RWeld,_G.ArmC0[2],CF(0,0.8,0.1) * CFANG(RAD(-10),0,0),_G.Sine,0.1) wait(0.07) Weld:Destroy() --This is the weld that holds the grenade to the arm Grenade.Center.Velocity = Grenade.Center.Velocity + ((_G.HeadBase.CFrame * CFANG(RAD(10),0,0)).lookVector * 150) Grenade.Center.CanCollide = true Grenade.Main.Player.Value = Player Grenade.Main.Parent = Grenade Grenade.Main.Disabled = false wait(0.4) _G.SwapAnim(0.2) _G.MainGui.CrossHair3.Visible = false end