-- MASTER UI SCRIPT: SHOOTER + GENERAL + CREDITS -- Features: Camera Follow, Landing Prediction, ESP, Fly, Spin, Noclip (walls-only), Click Fling, Anti-AFK, Tabs, Minimized UI local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Debris = game:GetService("Debris") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera local gravity = Workspace.Gravity -- ===== SETTINGS ===== local MASTER = true local CAMERA_ENABLED = true local PREDICTION_ENABLED = true local ARC_ENABLED = true local FOV_ENABLED = true local TEXT_ENABLED = true local CAMERA_FOV_RADIUS = 180 local PREDICTION_FOV_RADIUS = 220 local CAMERA_SMOOTHNESS = 0.12 local MAX_DISTANCE = 600 local ARC_POINTS = 12 local ARC_FADE_TIME = 0.8 -- General toggles default values local flyEnabled, flySpeed = false, 50 local noclipEnabled = false local spinEnabled, spinSpeed = false, 100 local clickFlingEnabled = false local antiAfkEnabled = false -- ===== GUI ===== local gui = Instance.new("ScreenGui", player.PlayerGui) gui.Name = "MasterUI" -- Main Panel local panel = Instance.new("Frame", gui) panel.Size = UDim2.new(0, 350, 0, 400) panel.Position = UDim2.new(0, 50, 0, 50) panel.BackgroundColor3 = Color3.fromRGB(30, 30, 30) panel.Active = true panel.Draggable = true -- Tabs buttons local tabs = {"Shooter","General","Credits"} local currentTab = "Shooter" local tabButtons = {} local function createTabButton(name, x) local btn = Instance.new("TextButton", panel) btn.Size = UDim2.new(0,100,0,30) btn.Position = UDim2.new(0, x, 0, 10) btn.Text = name btn.Font = Enum.Font.GothamBold btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(50,50,50) btn.TextColor3 = Color3.new(1,1,1) btn.BorderSizePixel = 0 return btn end for i, t in ipairs(tabs) do tabButtons[t] = createTabButton(t, (i-1)*110) tabButtons[t].MouseButton1Click:Connect(function() currentTab = t updateContent() end) end -- Content frame local contentFrame = Instance.new("Frame", panel) contentFrame.Size = UDim2.new(1,-20,1,-50) contentFrame.Position = UDim2.new(0,10,0,50) contentFrame.BackgroundTransparency = 1 -- ===== TAB UPDATE FUNCTION ===== local function updateContent() for _,c in pairs(contentFrame:GetChildren()) do c:Destroy() end if currentTab == "Shooter" then -- Shooter Features UI local shooterLabel = Instance.new("TextLabel", contentFrame) shooterLabel.Size = UDim2.new(1,0,0,30) shooterLabel.Position = UDim2.new(0,0,0,0) shooterLabel.BackgroundTransparency = 1 shooterLabel.Text = "Shooter Features Enabled" shooterLabel.TextColor3 = Color3.new(1,1,1) shooterLabel.Font = Enum.Font.GothamBold shooterLabel.TextScaled = true elseif currentTab == "General" then -- General toggles local generalToggles = {} local function makeGeneralToggle(name, y, callback) local btn = Instance.new("TextButton", contentFrame) btn.Size = UDim2.new(1,-20,0,40) btn.Position = UDim2.new(0,10,0,y) btn.Text = name..": OFF" btn.Font = Enum.Font.GothamBold btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(0,170,255) btn.MouseButton1Click:Connect(callback) return btn end -- Fly local flyBtn = makeGeneralToggle("Fly",10,function() flyEnabled = not flyEnabled flyBtn.Text = "Fly: "..(flyEnabled and "ON" or "OFF") end) table.insert(generalToggles, flyBtn) -- Noclip local noclipBtn = makeGeneralToggle("Noclip",60,function() noclipEnabled = not noclipEnabled noclipBtn.Text = "Noclip: "..(noclipEnabled and "ON" or "OFF") end) table.insert(generalToggles,noclipBtn) -- Spin local spinBtn = makeGeneralToggle("Spin",110,function() spinEnabled = not spinEnabled spinBtn.Text = "Spin: "..(spinEnabled and "ON" or "OFF") end) table.insert(generalToggles,spinBtn) -- Click Fling local clickFlingBtn = makeGeneralToggle("Click Fling",160,function() clickFlingEnabled = not clickFlingEnabled clickFlingBtn.Text = "Click Fling: "..(clickFlingEnabled and "ON" or "OFF") end) table.insert(generalToggles,clickFlingBtn) -- Anti-AFK local antiAfkBtn = makeGeneralToggle("Anti-AFK",210,function() antiAfkEnabled = not antiAfkEnabled antiAfkBtn.Text = "Anti-AFK: "..(antiAfkEnabled and "ON" or "OFF") end) table.insert(generalToggles, antiAfkBtn) -- Sliders local function makeSlider(labelText, y, maxVal, default) local label = Instance.new("TextLabel", contentFrame) label.Size = UDim2.new(1,-20,0,30) label.Position = UDim2.new(0,10,0,y) label.BackgroundTransparency = 1 label.TextColor3 = Color3.new(1,1,1) label.Font = Enum.Font.GothamBold label.TextScaled = true label.Text = labelText..": "..default local slider = Instance.new("Frame", contentFrame) slider.Size = UDim2.new(1,-40,0,20) slider.Position = UDim2.new(0,20,0,y+30) slider.BackgroundColor3 = Color3.fromRGB(50,50,50) local knob = Instance.new("Frame", slider) knob.Size = UDim2.new(default/maxVal,0,1,0) knob.Position = UDim2.new(0,0,0,0) knob.BackgroundColor3 = Color3.fromRGB(0,170,255) local dragging = false knob.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true end end) knob.InputEnded:Connect(function(input) dragging = false end) UIS.InputChanged:Connect(function(input) if dragging then local relX = math.clamp(input.Position.X - slider.AbsolutePosition.X, 0, slider.AbsoluteSize.X) knob.Size = UDim2.new(relX/slider.AbsoluteSize.X,0,1,0) label.Text = labelText..": "..math.floor((relX/slider.AbsoluteSize.X)*maxVal) if labelText == "Spin Speed" then spinSpeed = math.floor((relX/slider.AbsoluteSize.X)*maxVal) end if labelText == "Fly Speed" then flySpeed = math.floor((relX/slider.AbsoluteSize.X)*maxVal) end end end) end makeSlider("Spin Speed", 260, 200, spinSpeed) makeSlider("Fly Speed", 300, 100, flySpeed) elseif currentTab == "Credits" then local creditsLabel = Instance.new("TextLabel", contentFrame) creditsLabel.Size = UDim2.new(1,0,1,0) creditsLabel.BackgroundTransparency = 1 creditsLabel.TextColor3 = Color3.new(1,1,1) creditsLabel.TextScaled = true creditsLabel.Font = Enum.Font.GothamBold creditsLabel.Text = "Credits to PJV" end end updateContent() -- ===== FOV CIRCLE ===== local fov = Instance.new("Frame", gui) fov.Size = UDim2.new(0,PREDICTION_FOV_RADIUS*2,0,PREDICTION_FOV_RADIUS*2) fov.Position = UDim2.new(0.5,-PREDICTION_FOV_RADIUS,0.5,-PREDICTION_FOV_RADIUS) fov.BackgroundTransparency = 1 Instance.new("UICorner", fov).CornerRadius = UDim.new(1,0) local stroke = Instance.new("UIStroke", fov) stroke.Thickness = 2 stroke.Transparency = 0.3 stroke.Color = Color3.fromRGB(0,170,255) -- ===== Helper Functions ===== local colors = {} local function getColor(p) colors[p] = colors[p] or Color3.fromHSV(math.random(),1,1) return colors[p] end local function inFOV(pos) local s, vis = camera:WorldToViewportPoint(pos) if not vis then return false end local c = camera.ViewportSize/2 return (Vector2.new(s.X,s.Y)-c).Magnitude <= PREDICTION_FOV_RADIUS end -- ===== Anti-AFK Logic ===== local VirtualUser = game:GetService("VirtualUser") player.Idled:Connect(function() if antiAfkEnabled then VirtualUser:Button2Down(Vector2.new(0,0), camera.CFrame) wait(1) VirtualUser:Button2Up(Vector2.new(0,0), camera.CFrame) end end) -- ===== Main Loop ===== RunService.RenderStepped:Connect(function() -- Fly if flyEnabled then local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart") local hum = player.Character and player.Character:FindFirstChildOfClass("Humanoid") if hrp and hum then local moveDir = Vector3.new(0,0,0) if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + camera.CFrame.RightVector end hrp.Velocity = moveDir.Unit * flySpeed hum.PlatformStand = true end else if player.Character and player.Character:FindFirstChildOfClass("Humanoid") then player.Character:FindFirstChildOfClass("Humanoid").PlatformStand = false end end -- Spin if spinEnabled and player.Character then local hrp = player.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = hrp.CFrame * CFrame.Angles(0,math.rad(spinSpeed),0) end end -- Noclip walls only if noclipEnabled and player.Character then for _,part in ipairs(player.Character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.Touched:Connect(function(hit) if hit.CanCollide and hit.Position.Y > part.Position.Y then part.CanCollide = false wait(0.1) part.CanCollide = true end end) end end end end)