
Key Required VerifiedUniversal
local lp = game.Players.LocalPlayer
local camera = workspace.CurrentCamera
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local Settings = {
Enabled = true,
ActiveKey = Enum.UserInputType.MouseButton1,
Sens = 1.0,
Smoothness = 0.12
}
local targetX, targetY, targetZ = 0, 0, 0
local isFiring = false
local recoveryTime = 0
local function sync()
local x, y, z = camera.CFrame:ToEulerAnglesYXZ()
targetX, targetY, targetZ = x, y, z
end
sync()
RunService:BindToRenderStep("DynamicZeroRecoil", Enum.RenderPriority.Camera.Value + 1, function(dt)
if UIS.MouseBehavior == Enum.MouseBehavior.Default then sync() return end
local char = lp.Character
if not char or not char:FindFirstChildOfClass("Humanoid") or char.Humanoid.Health <= 0 then
sync()
return
end
local delta = UIS:GetMouseDelta()
local _, _, realZ = camera.CFrame:ToEulerAnglesYXZ()
local flip = (camera.CFrame.UpVector.Y < 0) and -1 or 1
if Settings.Enabled and UIS:IsMouseButtonPressed(Settings.ActiveKey) then
isFiring = true
recoveryTime = 0.35
targetY = targetY - math.rad(delta.X * Settings.Sens * 0.48 * flip)
targetX = targetX - math.rad(delta.Y * Settings.Sens * 0.48)
targetX = math.clamp(targetX, math.rad(-85), math.rad(85))
camera.CFrame = CFrame.new(camera.CFrame.Position) * CFrame.fromEulerAnglesYXZ(targetX, targetY, realZ)
else
if isFiring then
if recoveryTime > 0 then
recoveryTime = recoveryTime - dt
if delta.Magnitude > 0 then
targetY = targetY - math.rad(delta.X * Settings.Sens * 0.48 * flip)
targetX = targetX - math.rad(delta.Y * Settings.Sens * 0.48)
targetX = math.clamp(targetX, math.rad(-85), math.rad(85))
end
camera.CFrame = CFrame.new(camera.CFrame.Position) * CFrame.fromEulerAnglesYXZ(targetX, targetY, targetZ)
else
sync()
isFiring = false
end
else
sync()
end
end
end)No comments yet for this script.



