So, I think that the FE gun kit is a good thing to start when trying to make weapons for your game, but theres a huge glitch with one, with the equip one, if you equip it, and unequip before the animation finishes, you are still able to fire your weapon even though you do not have it equipped, any help? Heres that portion of the script.
Tool.Equipped:connect(function(TempMouse) GUI.Parent = Player.PlayerGui UpdateGUI() Handle.EquippedSound:Play() if Module.WalkSpeedRedutionEnabled then Humanoid.WalkSpeed = Humanoid.WalkSpeed - Module.WalkSpeedRedution else Humanoid.WalkSpeed = Humanoid.WalkSpeed end CrosshairModule:setcrosssettings(Module.CrossSize, Module.CrossSpeed, Module.CrossDamper) UserInputService.MouseIconEnabled = false if EquippedAnim then EquippedAnim:Play(nil,nil,Module.EquippedAnimationSpeed) end if IdleAnim then IdleAnim:Play(nil,nil,Module.IdleAnimationSpeed) end delay(Module.EquippingTime, function() Equipped = true if Module.AmmoPerMag ~= math.huge then GUI.Frame.Visible = true end end) TempMouse.KeyDown:connect(function(Key) if string.lower(Key) == "r" then Reload() elseif string.lower(Key) == "g" then if not Reloading and not HoldDown and Module.HoldDownEnabled then HoldDown = true IdleAnim:Stop() if HoldDownAnim then HoldDownAnim:Play(nil,nil,Module.HoldDownAnimationSpeed) end if AimDown then TweeningService:Create(Camera, TweenInfo.new(Module.TweenLengthNAD, Module.EasingStyleNAD, Module.EasingDirectionNAD), {FieldOfView = 70}):Play() CrosshairModule:setcrossscale(1) --[[local GUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("ZoomGui") if GUI then GUI:Destroy() end]] Scoping = false game:GetService("Players").LocalPlayer.CameraMode = Enum.CameraMode.Classic UserInputService.MouseDeltaSensitivity = InitialSensitivity AimDown = false end else HoldDown = false IdleAnim:Play(nil,nil,Module.IdleAnimationSpeed) if HoldDownAnim then HoldDownAnim:Stop() end end end end) Mouse.Button2Down:connect(function() if not Reloading and not HoldDown and AimDown == false and Equipped == true and Module.IronsightEnabled and (Character.Head.Position - Camera.CoordinateFrame.p).magnitude <= 1 then TweeningService:Create(Camera, TweenInfo.new(Module.TweenLength, Module.EasingStyle, Module.EasingDirection), {FieldOfView = Module.FieldOfViewIS}):Play() CrosshairModule:setcrossscale(Module.CrossScaleIS) --[[local GUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("ZoomGui") or Tool.ZoomGui:Clone() GUI.Parent = game:GetService("Players").LocalPlayer.PlayerGui]] --Scoping = false game:GetService("Players").LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson UserInputService.MouseDeltaSensitivity = InitialSensitivity * Module.MouseSensitiveIS AimDown = true elseif not Reloading and not HoldDown and AimDown == false and Equipped == true and Module.SniperEnabled and (Character.Head.Position - Camera.CoordinateFrame.p).magnitude <= 1 then TweeningService:Create(Camera, TweenInfo.new(Module.TweenLength, Module.EasingStyle, Module.EasingDirection), {FieldOfView = Module.FieldOfViewS}):Play() CrosshairModule:setcrossscale(Module.CrossScaleS) --[[local GUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("ZoomGui") or Tool.ZoomGui:Clone() GUI.Parent = game:GetService("Players").LocalPlayer.PlayerGui]] local zoomsound = GUI.Scope.ZoomSound:Clone() zoomsound.Parent = Player.PlayerGui zoomsound:Play() Scoping = true game:GetService("Players").LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson UserInputService.MouseDeltaSensitivity = InitialSensitivity * Module.MouseSensitiveS AimDown = true game:GetService("Debris"):addItem(zoomsound,zoomsound.TimeLength) end end) Mouse.Button2Up:connect(function() if AimDown then TweeningService:Create(Camera, TweenInfo.new(Module.TweenLengthNAD, Module.EasingStyleNAD, Module.EasingDirectionNAD), {FieldOfView = 70}):Play() CrosshairModule:setcrossscale(1) --[[local GUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("ZoomGui") if GUI then GUI:Destroy() end]] Scoping = false game:GetService("Players").LocalPlayer.CameraMode = Enum.CameraMode.Classic UserInputService.MouseDeltaSensitivity = InitialSensitivity AimDown = false end end) if Module.DualEnabled and not workspace.FilteringEnabled then Handle2.CanCollide = false local LeftArm = Tool.Parent:FindFirstChild("Left Arm") or Tool.Parent:FindFirstChild("LeftHand") local RightArm = Tool.Parent:FindFirstChild("Right Arm") or Tool.Parent:FindFirstChild("RightHand") if RightArm then local Grip = RightArm:WaitForChild("RightGrip",0.01) if Grip then Grip2 = Grip:Clone() Grip2.Name = "LeftGrip" Grip2.Part0 = LeftArm Grip2.Part1 = Handle2 --Grip2.C1 = Grip2.C1:inverse() Grip2.Parent = LeftArm end end end end) Tool.Unequipped:connect(function() HoldDown = false Equipped = false GUI.Parent = script GUI.Frame.Visible = false if Module.WalkSpeedRedutionEnabled then Humanoid.WalkSpeed = Humanoid.WalkSpeed + Module.WalkSpeedRedution else Humanoid.WalkSpeed = Humanoid.WalkSpeed end UserInputService.MouseIconEnabled = true if IdleAnim then IdleAnim:Stop() end if HoldDownAnim then HoldDownAnim:Stop() end if AimDown then TweeningService:Create(Camera, TweenInfo.new(Module.TweenLengthNAD, Module.EasingStyleNAD, Module.EasingDirectionNAD), {FieldOfView = 70}):Play() CrosshairModule:setcrossscale(1) --[[local GUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("ZoomGui") if GUI then GUI:Destroy() end]] Scoping = false game:GetService("Players").LocalPlayer.CameraMode = Enum.CameraMode.Classic UserInputService.MouseDeltaSensitivity = InitialSensitivity AimDown = false end if Module.DualEnabled and not workspace.FilteringEnabled then Handle2.CanCollide = true if Grip2 then Grip2:Destroy() end end end)