local module_upvr = {} local LocalPlayer_upvr = game.Players.LocalPlayer local CurrentCamera_upvr = workspace.CurrentCamera local Equip_upvr = require(game.ReplicatedStorage.GuiUtils.Equip) local var8_upvw = 3 local tick_result1_upvw = tick() local M1_2_upvr = game.ReplicatedStorage.Remote.Event.Combat:WaitForChild("M1") local SoundPlayer_upvr = require(game.ReplicatedStorage.Utils.SoundPlayer) local holdingM1 = false local fireRate = 0.01 -- Minimal wait to reduce potential performance impact function module_upvr.M1() local Character_upvr = game.Players.LocalPlayer.Character if not Character_upvr then return end local Humanoid = Character_upvr:FindFirstChild("Humanoid") if not Humanoid then return end local weaponType = Equip_upvr.getWeaponType() if not weaponType then return end if var8_upvw == 1 then var8_upvw = 3 else var8_upvw = var8_upvw - 1 end tick_result1_upvw = tick() local current_tick = tick() task.delay(1.4, function() if tick_result1_upvw == current_tick then var8_upvw = 1 end end) if Character_upvr:FindFirstChild("Hand") then for _, v in Character_upvr:FindFirstChild("Hand"):GetDescendants() do if v:IsA("Trail") then v.Enabled = true end end end M1_2_upvr:FireServer() if Character_upvr:FindFirstChild("Hand") then for _, v in Character_upvr:FindFirstChild("Hand"):GetDescendants() do if v:IsA("Trail") then v.Enabled = false end end end var8_upvw += 1 SoundPlayer_upvr.playSound("Swing" .. math.random(1, 3)) end function holdM1() holdingM1 = true while holdingM1 do module_upvr.M1() wait(fireRate) end end local UserInputService = game:GetService("UserInputService") UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then holdM1() end end) UserInputService.InputEnded:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 then holdingM1 = false end end) return module_upvr