--// 🔥 INFERNO LOCK SYSTEM 🔥 local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera --// SETTINGS local Settings = { MaxDistance = 160, Prediction = 0.18, Smooth = 0.15, Offset = Vector3.new(2.5,2,8) } --// MODES local Modes = { "HARD","SOFT","SNAP","CINEMATIC","FREEFLOW", "AGGRESSIVE","STEADY","FLOAT","TIGHT","WIDE", "HUNTER","ORBIT","SHARP","LOCKED","FUNNY" } local currentMode = 1 local lockOn = false local target = nil local renderConn --// GUI local gui = Instance.new("ScreenGui", player.PlayerGui) gui.Name = "InfernoGUI" gui.ResetOnSpawn = false gui.Enabled = false local clickSound = Instance.new("Sound", gui) clickSound.SoundId = "rbxassetid://12221967" clickSound.Volume = 1 local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0,210,0,280) frame.Position = UDim2.new(0,-250,0.5,-140) frame.BackgroundColor3 = Color3.fromRGB(25,10,5) frame.Active = true frame.Draggable = true frame.BorderSizePixel = 0 Instance.new("UICorner", frame).CornerRadius = UDim.new(0,16) local stroke = Instance.new("UIStroke", frame) stroke.Color = Color3.fromRGB(255,120,0) stroke.Thickness = 2 local layout = Instance.new("UIListLayout", frame) layout.Padding = UDim.new(0,6) local function makeButton(text) local b = Instance.new("TextButton") b.Size = UDim2.new(1,-10,0,45) b.BackgroundColor3 = Color3.fromRGB(60,20,10) b.TextColor3 = Color3.fromRGB(255,170,0) b.Font = Enum.Font.GothamBold b.TextScaled = true b.Text = text b.Parent = frame Instance.new("UICorner", b).CornerRadius = UDim.new(0,12) return b end local title = makeButton("🔥 INFERNO LOCK") title.BackgroundColor3 = Color3.fromRGB(80,30,10) local onBtn = makeButton("LOCK ON") local offBtn = makeButton("LOCK OFF") local modeBtn = makeButton("MODE: "..Modes[currentMode]) --// INTRO ANIMATION gui.Enabled = true TweenService:Create(frame, TweenInfo.new(0.8, Enum.EasingStyle.Back), { Position = UDim2.new(0,15,0.5,-140) }):Play() --// HELPERS local function char() return player.Character end local function hrp(c) return c and c:FindFirstChild("HumanoidRootPart") end local function hum(c) return c and c:FindFirstChildOfClass("Humanoid") end local function valid(m) return m and m ~= char() and hum(m) and hum(m).Health > 0 and hrp(m) end local function getClosest() local best,dist=nil,math.huge local myhrp = hrp(char()) if not myhrp then return end for _,m in pairs(workspace:GetDescendants()) do if m:IsA("Model") and valid(m) then local d = (hrp(m).Position - myhrp.Position).Magnitude if d < dist and d < Settings.MaxDistance then dist=d best=m end end end return best end local function resetCam() camera.CameraType = Enum.CameraType.Custom UserInputService.MouseBehavior = Enum.MouseBehavior.Default end --// LOCK LOOP local function startLock() if renderConn then return end lockOn = true camera.CameraType = Enum.CameraType.Scriptable UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter renderConn = RunService.RenderStepped:Connect(function() if not lockOn then return end local c = char() local myhrp = hrp(c) if not myhrp then return end if not valid(target) then target = getClosest() end if not valid(target) then return end local tpos = hrp(target).Position + hrp(target).Velocity * Settings.Prediction -- Character rotation (ALL MODES) myhrp.CFrame = CFrame.new(myhrp.Position, Vector3.new(tpos.X,myhrp.Position.Y,tpos.Z)) local smooth = Settings.Smooth local offset = Settings.Offset if Modes[currentMode] == "SNAP" then smooth = 0.9 end if Modes[currentMode] == "CINEMATIC" then smooth = 0.05 offset = Vector3.new(4,3,12) end if Modes[currentMode] == "TIGHT" then offset = Vector3.new(1.5,1.5,5) end if Modes[currentMode] == "WIDE" then offset = Vector3.new(6,4,14) end if Modes[currentMode] == "ORBIT" then offset = Vector3.new(math.sin(tick()*2)*6,3,math.cos(tick()*2)*6) end -- FUNNY MODE (CHAOS) if Modes[currentMode] == "FUNNY" then offset = Vector3.new( math.sin(tick()*12)*8, math.cos(tick()*15)*6 + math.random(-2,2), 8 + math.sin(tick()*20)*4 ) smooth = 1 camera.FieldOfView = 70 + math.sin(tick()*10)*20 else camera.FieldOfView = 70 end local camPos = myhrp.CFrame:ToWorldSpace(CFrame.new(offset)) local camCF = CFrame.new(camPos.Position, tpos) camera.CFrame = camera.CFrame:Lerp(camCF, smooth) end) end local function stopLock() lockOn=false target=nil if renderConn then renderConn:Disconnect() end renderConn=nil resetCam() camera.FieldOfView = 70 end --// BUTTONS onBtn.MouseButton1Click:Connect(function() clickSound:Play() startLock() end) offBtn.MouseButton1Click:Connect(function() clickSound:Play() stopLock() end) modeBtn.MouseButton1Click:Connect(function() clickSound:Play() currentMode += 1 if currentMode > #Modes then currentMode = 1 end modeBtn.Text = "MODE: "..Modes[currentMode] end) player.CharacterAdded:Connect(function() task.wait(.5) stopLock() end)