-- Murder Script GUI | LocalScript -- Full expanded UI: 9 tabs, ESP, Player mods, Teleport, Settings, and more local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local Lighting = game:GetService("Lighting") local VirtualUser = game:GetService("VirtualUser") local TeleportService = game:GetService("TeleportService") local HttpService = game:GetService("HttpService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local Camera = Workspace.CurrentCamera -- ============================================= -- CONFIGURATION -- ============================================= local CONFIG = { Colors = { Sheriff = Color3.fromRGB(50, 130, 255), Murderer = Color3.fromRGB(220, 50, 50), Player = Color3.fromRGB(50, 220, 80), Innocent = Color3.fromRGB(100, 220, 160), Accent = Color3.fromRGB(120, 80, 255), }, UI = { Background = Color3.fromRGB(28, 28, 34), Sidebar = Color3.fromRGB(19, 19, 25), ButtonOff = Color3.fromRGB(42, 42, 54), ButtonOn = Color3.fromRGB(58, 58, 75), TextColor = Color3.fromRGB(225, 225, 235), SubText = Color3.fromRGB(130, 130, 158), CloseColor = Color3.fromRGB(190, 45, 45), InputBg = Color3.fromRGB(16, 16, 22), Divider = Color3.fromRGB(40, 40, 54), Green = Color3.fromRGB(50, 200, 100), Red = Color3.fromRGB(200, 60, 60), TweenSpeed = 0.18, }, ESPSize = Vector3.new(3, 3, 3), ESPTransparency = 0.6, } -- ============================================= -- LAYOUT CONSTANTS -- ============================================= local SIDEBAR_W = 72 local CONTENT_W = 310 local TOTAL_W = SIDEBAR_W + CONTENT_W local TITLE_H = 48 local TOTAL_H = 420 local HEADER_H = 52 local BOTTOM_H = 26 local NAV_H = 44 local NAV_W = SIDEBAR_W - 8 local GUI_OPEN = UDim2.new(0, TOTAL_W, 0, TOTAL_H) local GUI_CLOSED = UDim2.new(0, 0, 0, 0) local isGuiVisible = true -- ============================================= -- FEATURE STATE -- ============================================= local State = { -- ESP XRay = false, MurdererESP = false, InnocentESP = false, SheriffESP = false, GunDropESP = false, -- Player InfJump = false, Noclip = false, Flying = false, FlySpeed = 50, -- Misc AntiAFK = false, FullBright = false, BoostFPS = false, AutoGetGun = false, KillAll = false, Spectate = false, LockCamera = false, Autofarm = false, ClickTP = false, BuildTools = false, AimbotSheriff= false, AimbotMurd = false, ShotType = "Ping", AimbotTarget = "Murderer", -- Player mods WalkSpeed = 16, JumpPower = 50, Gravity = 196.2, FOV = 70, } -- ESP boxes table local ESPBoxes = {} -- ============================================= -- UTILITY -- ============================================= local function tween(obj, props, dur, style, dir) style = style or Enum.EasingStyle.Quart dir = dir or Enum.EasingDirection.Out local t = TweenService:Create(obj, TweenInfo.new(dur or CONFIG.UI.TweenSpeed, style, dir), props) t:Play() return t end local function notify(title, text) StarterGui:SetCore("SendNotification", { Title = title, Text = text, Duration = 3, }) end local function getCharacter() return LocalPlayer.Character end local function getHumanoid() local c = getCharacter() return c and c:FindFirstChildOfClass("Humanoid") end local function getRoot() local c = getCharacter() return c and c:FindFirstChild("HumanoidRootPart") end -- ============================================= -- ESP LOGIC -- ============================================= local function getESPCategory(player) local char = player.Character local backpack = player:FindFirstChildOfClass("Backpack") local hasKnife, hasGun = false, false local function scan(c) if not c then return end for _, o in ipairs(c:GetChildren()) do if o:IsA("Tool") then local n = o.Name:lower() if n:find("knife") then hasKnife = true end if n:find("gun") then hasGun = true end end end end scan(char) scan(backpack) if hasKnife then return "Murderer" elseif hasGun then return "Sheriff" else return "Innocent" end end local function clearESP(player) if ESPBoxes[player] then for _, b in ipairs(ESPBoxes[player]) do if b and b.Parent then b:Destroy() end end ESPBoxes[player] = nil end end local function applyESP(player) if player == LocalPlayer then return end local char = player.Character if not char then clearESP(player) return end local cat = getESPCategory(player) -- Determine if this category is enabled local enabled = false if cat == "Murderer" and State.MurdererESP then enabled = true end if cat == "Sheriff" and State.SheriffESP then enabled = true end if cat == "Innocent" and State.InnocentESP then enabled = true end if not enabled then clearESP(player) return end clearESP(player) local root = char:FindFirstChild("HumanoidRootPart") if not root then return end local color = CONFIG.Colors.Innocent if cat == "Murderer" then color = CONFIG.Colors.Murderer end if cat == "Sheriff" then color = CONFIG.Colors.Sheriff end local box = Instance.new("BoxHandleAdornment") box.Adornee = root box.Size = CONFIG.ESPSize box.Transparency = CONFIG.ESPTransparency box.Color3 = color box.AlwaysOnTop = true box.ZIndex = 5 box.Parent = Workspace ESPBoxes[player] = { box } end local function refreshAllESP() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then applyESP(p) end end end local function clearAllESP() for p in pairs(ESPBoxes) do clearESP(p) end end -- ============================================= -- DYNAMIC ESP UPDATES -- ============================================= local playerConnections = {} local function watchPlayer(player) if playerConnections[player] then for _, c in ipairs(playerConnections[player]) do c:Disconnect() end end playerConnections[player] = {} local function refresh() task.wait() applyESP(player) end local char = player.Character local backpack = player:FindFirstChildOfClass("Backpack") if char then table.insert(playerConnections[player], char.ChildAdded:Connect(refresh)) table.insert(playerConnections[player], char.ChildRemoved:Connect(refresh)) end if backpack then table.insert(playerConnections[player], backpack.ChildAdded:Connect(refresh)) table.insert(playerConnections[player], backpack.ChildRemoved:Connect(refresh)) end end local function connectPlayer(player) player.CharacterAdded:Connect(function() task.wait(0.5) watchPlayer(player) applyESP(player) end) player.CharacterRemoving:Connect(function() clearESP(player) end) if player.Character then task.wait(0.3) watchPlayer(player) applyESP(player) end end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then connectPlayer(p) end end Players.PlayerAdded:Connect(connectPlayer) Players.PlayerRemoving:Connect(function(p) clearESP(p) if playerConnections[p] then for _, c in ipairs(playerConnections[p]) do c:Disconnect() end playerConnections[p] = nil end end) -- ============================================= -- PLAYER FEATURES — LOOPS -- ============================================= -- Infinite Jump UserInputService.JumpRequest:Connect(function() if State.InfJump then local h = getHumanoid() if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end end end) -- Noclip loop RunService.Stepped:Connect(function() if State.Noclip then local char = getCharacter() if char then for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end end) -- Fly logic local flyBodyVelocity, flyBodyGyro local function startFly() local root = getRoot() if not root then return end flyBodyVelocity = Instance.new("BodyVelocity") flyBodyVelocity.Velocity = Vector3.zero flyBodyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5) flyBodyVelocity.Parent = root flyBodyGyro = Instance.new("BodyGyro") flyBodyGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5) flyBodyGyro.CFrame = root.CFrame flyBodyGyro.Parent = root end local function stopFly() if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end if flyBodyGyro then flyBodyGyro:Destroy() flyBodyGyro = nil end end RunService.RenderStepped:Connect(function() if State.Flying and flyBodyVelocity and flyBodyGyro then local cf = Camera.CFrame local dir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.yAxis end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.yAxis end flyBodyVelocity.Velocity = dir.Magnitude > 0 and dir.Unit * State.FlySpeed or Vector3.zero flyBodyGyro.CFrame = cf end end) -- Anti AFK RunService.Heartbeat:Connect(function() if State.AntiAFK then pcall(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.zero) end) end end) -- Full Brightness RunService.Heartbeat:Connect(function() if State.FullBright then Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.FogEnd = 1e6 Lighting.GlobalShadows = false Lighting.Ambient = Color3.new(1,1,1) Lighting.OutdoorAmbient = Color3.new(1,1,1) end end) -- ============================================= -- SCREEN GUI -- ============================================= local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MurderGUI" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.IgnoreGuiInset = true ScreenGui.Parent = PlayerGui -- Shadow local ShadowHolder = Instance.new("Frame") ShadowHolder.Name = "ShadowHolder" ShadowHolder.AnchorPoint = Vector2.new(0.5, 0.5) ShadowHolder.Position = UDim2.new(0.5, 0, 0.5, 0) ShadowHolder.Size = UDim2.new(0, 0, 0, 0) ShadowHolder.BackgroundTransparency = 1 ShadowHolder.ZIndex = 0 ShadowHolder.Parent = ScreenGui local Shadow = Instance.new("ImageLabel") Shadow.AnchorPoint = Vector2.new(0.5, 0.5) Shadow.Position = UDim2.new(0.5, 0, 0.5, 10) Shadow.Size = UDim2.new(1, 60, 1, 60) Shadow.BackgroundTransparency = 1 Shadow.Image = "rbxassetid://6015897843" Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0) Shadow.ImageTransparency = 0.45 Shadow.ScaleType = Enum.ScaleType.Slice Shadow.SliceCenter = Rect.new(49, 49, 450, 450) Shadow.ZIndex = 0 Shadow.Parent = ShadowHolder -- Main Frame local MainFrame = Instance.new("CanvasGroup") MainFrame.Name = "MainFrame" MainFrame.AnchorPoint = Vector2.new(0.5, 0.5) MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0) MainFrame.Size = UDim2.new(0, 0, 0, 0) MainFrame.BackgroundColor3 = CONFIG.UI.Background MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 14) MainCorner.Parent = MainFrame -- ============================================= -- TITLE BAR -- ============================================= local TitleBar = Instance.new("Frame") TitleBar.Name = "TitleBar" TitleBar.Size = UDim2.new(1, 0, 0, TITLE_H) TitleBar.Position = UDim2.new(0, 0, 0, 0) TitleBar.BackgroundColor3 = Color3.fromRGB(19, 19, 25) TitleBar.BorderSizePixel = 0 TitleBar.ZIndex = 3 TitleBar.Parent = MainFrame local TitleFix = Instance.new("Frame") TitleFix.Size = UDim2.new(1, 0, 0, 14) TitleFix.Position = UDim2.new(0, 0, 1, -14) TitleFix.BackgroundColor3 = Color3.fromRGB(19, 19, 25) TitleFix.BorderSizePixel = 0 TitleFix.ZIndex = 3 TitleFix.Parent = TitleBar local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, -55, 1, 0) TitleLabel.Position = UDim2.new(0, SIDEBAR_W + 10, 0, 0) TitleLabel.BackgroundTransparency= 1 TitleLabel.TextColor3 = CONFIG.UI.TextColor TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 14 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Text = "🔪 Murder Script" TitleLabel.ZIndex = 4 TitleLabel.Parent = TitleBar local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 28, 0, 28) CloseBtn.Position = UDim2.new(1, -40, 0.5, -14) CloseBtn.Text = "✕" CloseBtn.BackgroundColor3 = CONFIG.UI.CloseColor CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 12 CloseBtn.BorderSizePixel = 0 CloseBtn.AutoButtonColor = false CloseBtn.ZIndex = 5 CloseBtn.Parent = TitleBar local CloseBtnCorner = Instance.new("UICorner") CloseBtnCorner.CornerRadius = UDim.new(0, 6) CloseBtnCorner.Parent = CloseBtn -- ============================================= -- SIDEBAR BACKGROUND -- ============================================= local Sidebar = Instance.new("Frame") Sidebar.Name = "Sidebar" Sidebar.Size = UDim2.new(0, SIDEBAR_W, 1, -TITLE_H) Sidebar.Position = UDim2.new(0, 0, 0, TITLE_H) Sidebar.BackgroundColor3 = CONFIG.UI.Sidebar Sidebar.BorderSizePixel = 0 Sidebar.ZIndex = 2 Sidebar.Parent = MainFrame -- Fix frames (not in layout) local function makeSidebarFix(size, pos) local f = Instance.new("Frame") f.Size = size f.Position = pos f.BackgroundColor3 = CONFIG.UI.Sidebar f.BorderSizePixel = 0 f.ZIndex = 2 f.Parent = Sidebar return f end makeSidebarFix(UDim2.new(1,0,0,14), UDim2.new(0,0,0,0)) -- top fix makeSidebarFix(UDim2.new(0,14,1,0), UDim2.new(1,-14,0,0)) -- right edge fix local SidebarBorder = Instance.new("Frame") SidebarBorder.Size = UDim2.new(0, 1, 1, 0) SidebarBorder.Position = UDim2.new(1, -1, 0, 0) SidebarBorder.BackgroundColor3 = CONFIG.UI.Divider SidebarBorder.BorderSizePixel = 0 SidebarBorder.ZIndex = 3 SidebarBorder.Parent = Sidebar -- NAV INNER — layout container (only nav buttons go here) local NavInner = Instance.new("ScrollingFrame") NavInner.Name = "NavInner" NavInner.Size = UDim2.new(1, 0, 1, 0) NavInner.Position = UDim2.new(0, 0, 0, 0) NavInner.BackgroundTransparency = 1 NavInner.BorderSizePixel = 0 NavInner.ScrollBarThickness = 0 NavInner.CanvasSize = UDim2.new(0, 0, 0, 0) NavInner.AutomaticCanvasSize = Enum.AutomaticSize.Y NavInner.ZIndex = 3 NavInner.Parent = Sidebar local NavLayout = Instance.new("UIListLayout") NavLayout.SortOrder = Enum.SortOrder.LayoutOrder NavLayout.Padding = UDim.new(0, 2) NavLayout.FillDirection = Enum.FillDirection.Vertical NavLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center NavLayout.VerticalAlignment = Enum.VerticalAlignment.Center NavLayout.Parent = NavInner local NavPad = Instance.new("UIPadding") NavPad.PaddingTop = UDim.new(0, 8) NavPad.PaddingBottom = UDim.new(0, 8) NavPad.Parent = NavInner -- ============================================= -- CONTENT AREA -- ============================================= local ContentArea = Instance.new("Frame") ContentArea.Name = "ContentArea" ContentArea.Size = UDim2.new(0, CONTENT_W, 1, -TITLE_H) ContentArea.Position = UDim2.new(0, SIDEBAR_W, 0, TITLE_H) ContentArea.BackgroundTransparency = 1 ContentArea.ClipsDescendants = true ContentArea.ZIndex = 2 ContentArea.Parent = MainFrame local SectionHeader = Instance.new("Frame") SectionHeader.Size = UDim2.new(1, 0, 0, HEADER_H) SectionHeader.Position = UDim2.new(0, 0, 0, 0) SectionHeader.BackgroundTransparency= 1 SectionHeader.Parent = ContentArea local ScriptTitle = Instance.new("TextLabel") ScriptTitle.Size = UDim2.new(1, -16, 0, 24) ScriptTitle.Position = UDim2.new(0, 14, 0, 7) ScriptTitle.BackgroundTransparency= 1 ScriptTitle.TextColor3 = CONFIG.UI.TextColor ScriptTitle.Font = Enum.Font.GothamBold ScriptTitle.TextSize = 15 ScriptTitle.TextXAlignment = Enum.TextXAlignment.Left ScriptTitle.Text = "Murder Script" ScriptTitle.Parent = SectionHeader local SectionIndicator = Instance.new("TextLabel") SectionIndicator.Size = UDim2.new(1, -16, 0, 14) SectionIndicator.Position = UDim2.new(0, 14, 0, 33) SectionIndicator.BackgroundTransparency= 1 SectionIndicator.TextColor3 = CONFIG.UI.SubText SectionIndicator.Font = Enum.Font.Gotham SectionIndicator.TextSize = 11 SectionIndicator.TextXAlignment = Enum.TextXAlignment.Left SectionIndicator.Text = "Main" SectionIndicator.Parent = SectionHeader local HeaderDiv = Instance.new("Frame") HeaderDiv.Size = UDim2.new(1, -14, 0, 1) HeaderDiv.Position = UDim2.new(0, 7, 0, HEADER_H - 1) HeaderDiv.BackgroundColor3 = CONFIG.UI.Divider HeaderDiv.BorderSizePixel = 0 HeaderDiv.Parent = ContentArea -- Section container local SectionContainer = Instance.new("Frame") SectionContainer.Size = UDim2.new(1, 0, 1, -(HEADER_H + BOTTOM_H)) SectionContainer.Position = UDim2.new(0, 0, 0, HEADER_H) SectionContainer.BackgroundTransparency= 1 SectionContainer.ClipsDescendants = true SectionContainer.Parent = ContentArea local BottomLabel = Instance.new("TextLabel") BottomLabel.Size = UDim2.new(1, 0, 0, BOTTOM_H) BottomLabel.Position = UDim2.new(0, 0, 1, -BOTTOM_H) BottomLabel.BackgroundTransparency= 1 BottomLabel.TextColor3 = CONFIG.UI.SubText BottomLabel.Font = Enum.Font.Gotham BottomLabel.TextSize = 10 BottomLabel.Text = "v3.0 • RightShift to toggle" BottomLabel.Parent = ContentArea local BottomDiv = Instance.new("Frame") BottomDiv.Size = UDim2.new(1, -14, 0, 1) BottomDiv.Position = UDim2.new(0, 7, 1, -BOTTOM_H) BottomDiv.BackgroundColor3 = CONFIG.UI.Divider BottomDiv.BorderSizePixel = 0 BottomDiv.Parent = ContentArea -- ============================================= -- SECTION SYSTEM -- ============================================= local currentSection = nil local activeNavBtn = nil -- Creates a scrollable section frame local function makeSection() local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, 0, 1, 0) scroll.BackgroundTransparency= 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 3 scroll.ScrollBarImageColor3 = CONFIG.UI.Divider scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.Visible = false scroll.Parent = SectionContainer local pad = Instance.new("UIPadding") pad.PaddingTop = UDim.new(0, 12) pad.PaddingBottom = UDim.new(0, 12) pad.PaddingLeft = UDim.new(0, 12) pad.PaddingRight = UDim.new(0, 12) pad.Parent = scroll local layout = Instance.new("UIListLayout") layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0, 7) layout.FillDirection = Enum.FillDirection.Vertical layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.Parent = scroll return scroll end local function showSection(section, name, navBtn) if currentSection then currentSection.Visible = false end currentSection = section section.Visible = true SectionIndicator.Text = name if activeNavBtn and activeNavBtn ~= navBtn then tween(activeNavBtn, { BackgroundTransparency = 1 }, 0.15) local ind = activeNavBtn:FindFirstChild("ActiveIndicator") if ind then tween(ind, { BackgroundTransparency = 1 }, 0.15) end for _, l in ipairs(activeNavBtn:GetChildren()) do if l:IsA("TextLabel") then tween(l, { TextColor3 = CONFIG.UI.SubText }, 0.15) end end end activeNavBtn = navBtn if navBtn then tween(navBtn, { BackgroundTransparency = 0 }, 0.15) local ind = navBtn:FindFirstChild("ActiveIndicator") if ind then tween(ind, { BackgroundTransparency = 0 }, 0.15) end for _, l in ipairs(navBtn:GetChildren()) do if l:IsA("TextLabel") then tween(l, { TextColor3 = CONFIG.UI.TextColor }, 0.15) end end end end -- ============================================= -- UI COMPONENT BUILDERS -- ============================================= -- Standard row label local function makeLabel(parent, text, order, subtext) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, subtext and 16 or 14) lbl.BackgroundTransparency= 1 lbl.TextColor3 = subtext and CONFIG.UI.SubText or CONFIG.UI.SubText lbl.Font = Enum.Font.GothamBold lbl.TextSize = subtext and 10 or 11 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Text = text lbl.LayoutOrder = order lbl.Parent = parent return lbl end -- Toggle button row local function makeToggle(parent, label, accentColor, order, onToggle) accentColor = accentColor or CONFIG.UI.Accent local BTN_H = 44 local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, BTN_H) btn.BackgroundColor3 = CONFIG.UI.ButtonOff btn.BorderSizePixel = 0 btn.LayoutOrder = order btn.AutoButtonColor = false btn.Text = "" btn.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = btn local accent = Instance.new("Frame") accent.Size = UDim2.new(0, 4, 1, -14) accent.Position = UDim2.new(0, 6, 0.5, 0) accent.AnchorPoint = Vector2.new(0, 0.5) accent.BackgroundColor3 = Color3.fromRGB(55, 55, 68) accent.BorderSizePixel = 0 accent.Parent = btn local ac = Instance.new("UICorner") ac.CornerRadius = UDim.new(0, 3) ac.Parent = accent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -70, 1, 0) lbl.Position = UDim2.new(0, 18, 0, 0) lbl.BackgroundTransparency= 1 lbl.TextColor3 = CONFIG.UI.TextColor lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Text = label lbl.Parent = btn local badge = Instance.new("TextLabel") badge.Size = UDim2.new(0, 42, 0, 20) badge.Position = UDim2.new(1, -50, 0.5, -10) badge.BackgroundColor3 = Color3.fromRGB(30, 30, 40) badge.TextColor3 = CONFIG.UI.SubText badge.Font = Enum.Font.GothamBold badge.TextSize = 10 badge.Text = "OFF" badge.BorderSizePixel = 0 badge.Parent = btn local bc = Instance.new("UICorner") bc.CornerRadius = UDim.new(0, 5) bc.Parent = badge local isOn = false local function update() if isOn then accent.BackgroundColor3 = accentColor badge.Text = "ON" badge.TextColor3 = accentColor btn.BackgroundColor3 = CONFIG.UI.ButtonOn else accent.BackgroundColor3 = Color3.fromRGB(55, 55, 68) badge.Text = "OFF" badge.TextColor3 = CONFIG.UI.SubText btn.BackgroundColor3 = CONFIG.UI.ButtonOff end end btn.MouseButton1Down:Connect(function() tween(btn, { Size = UDim2.new(1, -2, 0, BTN_H-2) }, 0.07) end) btn.MouseButton1Up:Connect(function() tween(btn, { Size = UDim2.new(1, 0, 0, BTN_H) }, 0.10) end) btn.MouseButton1Click:Connect(function() isOn = not isOn update() if onToggle then onToggle(isOn) end end) update() return btn, function() return isOn end end -- Action button (one-shot press) local function makeButton(parent, label, accentColor, order, onClick) accentColor = accentColor or CONFIG.UI.Accent local BTN_H = 40 local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, BTN_H) btn.BackgroundColor3 = CONFIG.UI.ButtonOff btn.BorderSizePixel = 0 btn.LayoutOrder = order btn.AutoButtonColor = false btn.Text = "" btn.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = btn local leftBar = Instance.new("Frame") leftBar.Size = UDim2.new(0, 4, 1, -14) leftBar.Position = UDim2.new(0, 6, 0.5, 0) leftBar.AnchorPoint = Vector2.new(0, 0.5) leftBar.BackgroundColor3 = accentColor leftBar.BorderSizePixel = 0 leftBar.Parent = btn local lc = Instance.new("UICorner") lc.CornerRadius = UDim.new(0, 3) lc.Parent = leftBar local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 1, 0) lbl.Position = UDim2.new(0, 18, 0, 0) lbl.BackgroundTransparency= 1 lbl.TextColor3 = CONFIG.UI.TextColor lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Text = label lbl.Parent = btn btn.MouseButton1Down:Connect(function() tween(btn, { BackgroundColor3 = CONFIG.UI.ButtonOn }, 0.07) end) btn.MouseButton1Up:Connect(function() tween(btn, { BackgroundColor3 = CONFIG.UI.ButtonOff }, 0.12) end) btn.MouseButton1Click:Connect(function() if onClick then onClick() end end) return btn end -- Divider line local function makeDivider(parent, order) local d = Instance.new("Frame") d.Size = UDim2.new(1, 0, 0, 1) d.BackgroundColor3 = CONFIG.UI.Divider d.BorderSizePixel = 0 d.LayoutOrder = order d.Parent = parent return d end -- Section label header local function makeSectionLabel(parent, text, order) local f = Instance.new("Frame") f.Size = UDim2.new(1, 0, 0, 20) f.BackgroundTransparency = 1 f.LayoutOrder = order f.Parent = parent local l = Instance.new("TextLabel") l.Size = UDim2.new(1, 0, 1, 0) l.BackgroundTransparency= 1 l.TextColor3 = CONFIG.UI.SubText l.Font = Enum.Font.GothamBold l.TextSize = 10 l.TextXAlignment = Enum.TextXAlignment.Left l.Text = text:upper() l.Parent = f return f end -- ============================================= -- PLAYER DROPDOWN BUILDER (shared) -- ============================================= local function makePlayerDropdown(parent, order, onSelected) local selectedPlayer = nil local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, 40) container.BackgroundColor3 = CONFIG.UI.InputBg container.BorderSizePixel = 0 container.LayoutOrder = order container.Parent = parent local cc = Instance.new("UICorner") cc.CornerRadius = UDim.new(0, 8) cc.Parent = container local selectedLbl = Instance.new("TextLabel") selectedLbl.Size = UDim2.new(1, -90, 1, 0) selectedLbl.Position = UDim2.new(0, 12, 0, 0) selectedLbl.BackgroundTransparency= 1 selectedLbl.TextColor3 = CONFIG.UI.SubText selectedLbl.Font = Enum.Font.Gotham selectedLbl.TextSize = 12 selectedLbl.TextXAlignment = Enum.TextXAlignment.Left selectedLbl.Text = "Select player..." selectedLbl.Parent = container local refreshBtn = Instance.new("TextButton") refreshBtn.Size = UDim2.new(0, 76, 0, 28) refreshBtn.Position = UDim2.new(1, -84, 0.5, -14) refreshBtn.BackgroundColor3 = CONFIG.UI.ButtonOff refreshBtn.TextColor3 = CONFIG.UI.TextColor refreshBtn.Font = Enum.Font.GothamBold refreshBtn.TextSize = 10 refreshBtn.Text = "⟳ Refresh" refreshBtn.BorderSizePixel = 0 refreshBtn.AutoButtonColor = false refreshBtn.Parent = container local rc = Instance.new("UICorner") rc.CornerRadius = UDim.new(0, 6) rc.Parent = refreshBtn -- Dropdown list local dropList = Instance.new("Frame") dropList.Size = UDim2.new(1, 0, 0, 0) dropList.Position = UDim2.new(0, 0, 1, 4) dropList.BackgroundColor3 = CONFIG.UI.InputBg dropList.BorderSizePixel = 0 dropList.ClipsDescendants = true dropList.ZIndex = 10 dropList.Visible = false dropList.Parent = container local dlc = Instance.new("UICorner") dlc.CornerRadius = UDim.new(0, 8) dlc.Parent = dropList local dlLayout = Instance.new("UIListLayout") dlLayout.SortOrder = Enum.SortOrder.LayoutOrder dlLayout.Parent = dropList local function populateList() for _, c in ipairs(dropList:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then local item = Instance.new("TextButton") item.Size = UDim2.new(1, 0, 0, 32) item.BackgroundColor3 = CONFIG.UI.ButtonOff item.TextColor3 = CONFIG.UI.TextColor item.Font = Enum.Font.Gotham item.TextSize = 12 item.Text = p.Name item.BorderSizePixel = 0 item.AutoButtonColor = false item.ZIndex = 11 item.Parent = dropList item.MouseButton1Click:Connect(function() selectedPlayer = p selectedLbl.Text = p.Name selectedLbl.TextColor3 = CONFIG.UI.TextColor dropList.Visible = false tween(dropList, { Size = UDim2.new(1, 0, 0, 0) }, 0.15) if onSelected then onSelected(p) end end) end end local count = #Players:GetPlayers() - 1 local h = math.max(0, count * 32) dropList.Visible = true tween(dropList, { Size = UDim2.new(1, 0, 0, h) }, 0.15) end refreshBtn.MouseButton1Click:Connect(populateList) return container, function() return selectedPlayer end end -- ============================================= -- CREATE ALL SECTIONS -- ============================================= -- ── MAIN ────────────────────────────────────── local MainSection = makeSection() local o = 0 makeSectionLabel(MainSection, "Aimbot Target", o) o=o+1 local aimbotFrame = Instance.new("Frame") aimbotFrame.Size = UDim2.new(1, 0, 0, 40) aimbotFrame.BackgroundColor3 = CONFIG.UI.ButtonOff aimbotFrame.BorderSizePixel = 0 aimbotFrame.LayoutOrder = o; o=o+1 aimbotFrame.Parent = MainSection local afc = Instance.new("UICorner") afc.CornerRadius = UDim.new(0, 8) afc.Parent = aimbotFrame local afLayout = Instance.new("UIListLayout") afLayout.FillDirection = Enum.FillDirection.Horizontal afLayout.HorizontalAlignment= Enum.HorizontalAlignment.Center afLayout.VerticalAlignment = Enum.VerticalAlignment.Center afLayout.Padding = UDim.new(0, 8) afLayout.Parent = aimbotFrame local function makeTabSelectBtn(parent, label, isActive) local b = Instance.new("TextButton") b.Size = UDim2.new(0, 110, 0, 28) b.BackgroundColor3 = isActive and CONFIG.UI.Accent or CONFIG.UI.ButtonOff b.TextColor3 = CONFIG.UI.TextColor b.Font = Enum.Font.GothamBold b.TextSize = 11 b.Text = label b.BorderSizePixel = 0 b.AutoButtonColor = false b.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = b return b end local abt1 = makeTabSelectBtn(aimbotFrame, "Sheriff", State.AimbotTarget == "Sheriff") local abt2 = makeTabSelectBtn(aimbotFrame, "Murderer", State.AimbotTarget == "Murderer") abt1.MouseButton1Click:Connect(function() State.AimbotTarget = "Sheriff" abt1.BackgroundColor3 = CONFIG.UI.Accent abt2.BackgroundColor3 = CONFIG.UI.ButtonOff end) abt2.MouseButton1Click:Connect(function() State.AimbotTarget = "Murderer" abt2.BackgroundColor3 = CONFIG.UI.Accent abt1.BackgroundColor3 = CONFIG.UI.ButtonOff end) makeDivider(MainSection, o); o=o+1 makeSectionLabel(MainSection, "Features", o); o=o+1 makeToggle(MainSection, "Spectate Mode", CONFIG.UI.Accent, o, function(v) State.Spectate = v notify("Spectate", v and "Enabled" or "Disabled") end); o=o+1 makeToggle(MainSection, "Lock Camera", CONFIG.UI.Accent, o, function(v) State.LockCamera = v notify("Lock Camera", v and "Enabled" or "Disabled") end); o=o+1 makeToggle(MainSection, "Autofarm", CONFIG.Colors.Player, o, function(v) State.Autofarm = v notify("Autofarm", v and "Enabled" or "Disabled") end); o=o+1 makeToggle(MainSection, "Click Teleport", CONFIG.UI.Accent, o, function(v) State.ClickTP = v if v then local conn conn = UserInputService.InputBegan:Connect(function(i, gp) if not State.ClickTP then conn:Disconnect() return end if gp then return end if i.UserInputType == Enum.UserInputType.MouseButton1 then local root = getRoot() if root then local hit = Workspace:Raycast( Camera.CFrame.Position, Camera.CFrame.LookVector * 500, RaycastParams.new() ) if hit then root.CFrame = CFrame.new(hit.Position + Vector3.yAxis * 3) end end end end) end end); o=o+1 makeToggle(MainSection, "Building Tools", Color3.fromRGB(255, 180, 50), o, function(v) State.BuildTools = v local tool = Workspace:FindFirstChild("BuildTool") if v and not tool then local bt = Instance.new("Tool") bt.Name = "BuildTool" bt.Parent = LocalPlayer.Backpack end end); o=o+1 makeDivider(MainSection, o); o=o+1 makeSectionLabel(MainSection, "Actions", o); o=o+1 makeButton(MainSection, "Teleport to Lobby", CONFIG.Colors.Sheriff, o, function() local placeId = game.PlaceId TeleportService:Teleport(placeId) end); o=o+1 makeButton(MainSection, "Fling All Players", CONFIG.Colors.Murderer, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local hrp = p.Character:FindFirstChild("HumanoidRootPart") if hrp then local bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(math.random(-500,500), 800, math.random(-500,500)) bv.MaxForce = Vector3.new(1e6,1e6,1e6) bv.Parent = hrp game:GetService("Debris"):AddItem(bv, 0.2) end end end notify("Fling", "Flung all players!") end); o=o+1 -- ── ESP ─────────────────────────────────────── local ESPSection = makeSection() o = 0 makeSectionLabel(ESPSection, "ESP Toggles", o); o=o+1 makeToggle(ESPSection, "X-Ray Vision", CONFIG.UI.Accent, o, function(v) State.XRay = v -- Toggle character transparency for walls for _, p in ipairs(Players:GetPlayers()) do if p.Character then for _, part in ipairs(p.Character:GetDescendants()) do if part:IsA("BasePart") then part.CastShadow = not v end end end end end); o=o+1 makeToggle(ESPSection, "Murderer ESP", CONFIG.Colors.Murderer, o, function(v) State.MurdererESP = v refreshAllESP() end); o=o+1 makeToggle(ESPSection, "Innocent ESP", CONFIG.Colors.Innocent, o, function(v) State.InnocentESP = v refreshAllESP() end); o=o+1 makeToggle(ESPSection, "Sheriff ESP", CONFIG.Colors.Sheriff, o, function(v) State.SheriffESP = v refreshAllESP() end); o=o+1 makeToggle(ESPSection, "GunDrop ESP", Color3.fromRGB(255,200,50), o, function(v) State.GunDropESP = v -- Highlight gun drops in workspace for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Tool") and obj.Name:lower():find("gun") then if obj.Parent == Workspace then local handle = obj:FindFirstChild("Handle") if handle then local existing = handle:FindFirstChild("GunDropHL") if v and not existing then local sel = Instance.new("SelectionBox") sel.Name = "GunDropHL" sel.Adornee = handle sel.Color3 = Color3.fromRGB(255, 200, 50) sel.LineThickness= 0.06 sel.SurfaceTransparency = 0.8 sel.AlwaysOnTop= true sel.Parent = Workspace elseif not v and existing then existing:Destroy() end end end end end end); o=o+1 -- ── PLAYER ──────────────────────────────────── local PlayerSection = makeSection() o = 0 makeSectionLabel(PlayerSection, "Movement", o); o=o+1 -- WalkSpeed row local function makeSliderRow(parent, label, minVal, maxVal, defaultVal, order, onChange) local row = Instance.new("Frame") row.Size = UDim2.new(1, 0, 0, 54) row.BackgroundColor3 = CONFIG.UI.ButtonOff row.BorderSizePixel = 0 row.LayoutOrder = order row.Parent = parent local rc = Instance.new("UICorner") rc.CornerRadius = UDim.new(0, 8) rc.Parent = row local nameLbl = Instance.new("TextLabel") nameLbl.Size = UDim2.new(0.6, 0, 0, 22) nameLbl.Position = UDim2.new(0, 12, 0, 4) nameLbl.BackgroundTransparency= 1 nameLbl.TextColor3 = CONFIG.UI.TextColor nameLbl.Font = Enum.Font.Gotham nameLbl.TextSize = 12 nameLbl.TextXAlignment = Enum.TextXAlignment.Left nameLbl.Text = label nameLbl.Parent = row local valLbl = Instance.new("TextLabel") valLbl.Size = UDim2.new(0.4, -12, 0, 22) valLbl.Position = UDim2.new(0.6, 0, 0, 4) valLbl.BackgroundTransparency= 1 valLbl.TextColor3 = CONFIG.UI.SubText valLbl.Font = Enum.Font.GothamBold valLbl.TextSize = 12 valLbl.TextXAlignment = Enum.TextXAlignment.Right valLbl.Text = tostring(defaultVal) valLbl.Parent = row local trackBg = Instance.new("Frame") trackBg.Size = UDim2.new(1, -24, 0, 6) trackBg.Position = UDim2.new(0, 12, 0, 34) trackBg.BackgroundColor3 = CONFIG.UI.InputBg trackBg.BorderSizePixel = 0 trackBg.Parent = row local tbc = Instance.new("UICorner") tbc.CornerRadius = UDim.new(1, 0) tbc.Parent = trackBg local fill = Instance.new("Frame") local initRatio = (defaultVal - minVal) / (maxVal - minVal) fill.Size = UDim2.new(initRatio, 0, 1, 0) fill.BackgroundColor3 = CONFIG.UI.Accent fill.BorderSizePixel = 0 fill.Parent = trackBg local fc = Instance.new("UICorner") fc.CornerRadius = UDim.new(1, 0) fc.Parent = fill local dragging = false trackBg.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local absPos = trackBg.AbsolutePosition.X local absSize = trackBg.AbsoluteSize.X local ratio = math.clamp((i.Position.X - absPos) / absSize, 0, 1) local val = math.round(minVal + (maxVal - minVal) * ratio) fill.Size = UDim2.new(ratio, 0, 1, 0) valLbl.Text = tostring(val) if onChange then onChange(val) end end end) return row end makeSliderRow(PlayerSection, "⚡ Walk Speed", 1, 200, 16, o, function(v) State.WalkSpeed = v local h = getHumanoid() if h then h.WalkSpeed = v end end); o=o+1 makeSliderRow(PlayerSection, "⬆ Jump Power", 1, 200, 50, o, function(v) State.JumpPower = v local h = getHumanoid() if h then h.JumpPower = v end end); o=o+1 makeSliderRow(PlayerSection, "🌍 Gravity", 0, 400, 196, o, function(v) State.Gravity = v Workspace.Gravity = v end); o=o+1 makeSliderRow(PlayerSection, "🎥 FOV", 30, 120, 70, o, function(v) State.FOV = v Camera.FieldOfView = v end); o=o+1 makeDivider(PlayerSection, o); o=o+1 makeSectionLabel(PlayerSection, "Abilities", o); o=o+1 makeToggle(PlayerSection, "Infinite Jump", CONFIG.Colors.Player, o, function(v) State.InfJump = v end); o=o+1 makeToggle(PlayerSection, "Noclip", CONFIG.UI.Accent, o, function(v) State.Noclip = v end); o=o+1 makeToggle(PlayerSection, "Fly", CONFIG.Colors.Sheriff, o, function(v) State.Flying = v if v then startFly() else stopFly() end end); o=o+1 makeSliderRow(PlayerSection, "✈ Fly Speed", 10, 300, 50, o, function(v) State.FlySpeed = v end); o=o+1 makeDivider(PlayerSection, o); o=o+1 makeButton(PlayerSection, "Restore Defaults", CONFIG.Colors.Murderer, o, function() State.WalkSpeed = 16 State.JumpPower = 50 State.Gravity = 196.2 State.FOV = 70 local h = getHumanoid() if h then h.WalkSpeed = 16 h.JumpPower = 50 end Workspace.Gravity = 196.2 Camera.FieldOfView = 70 notify("Defaults", "Player settings restored") end); o=o+1 -- ── INNOCENT ────────────────────────────────── local InnocentSection = makeSection() o = 0 makeSectionLabel(InnocentSection, "Gun Utilities", o); o=o+1 makeButton(InnocentSection, "Get Dropped Gun", CONFIG.Colors.Innocent, o, function() for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Tool") and obj.Name:lower():find("gun") then local handle = obj:FindFirstChild("Handle") if handle then local root = getRoot() if root then root.CFrame = handle.CFrame task.wait(0.1) obj.Parent = LocalPlayer.Backpack notify("Gun", "Picked up " .. obj.Name) return end end end end notify("Gun", "No dropped gun found") end); o=o+1 makeToggle(InnocentSection, "Auto-Get Dropped Gun", CONFIG.Colors.Innocent, o, function(v) State.AutoGetGun = v if v then task.spawn(function() while State.AutoGetGun do for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Tool") and obj.Name:lower():find("gun") and obj.Parent == Workspace then local handle = obj:FindFirstChild("Handle") if handle then local root = getRoot() if root then root.CFrame = handle.CFrame task.wait(0.1) obj.Parent = LocalPlayer.Backpack end end end end task.wait(1) end end) end end); o=o+1 makeButton(InnocentSection, "Get Gun & Shoot Murderer", CONFIG.Colors.Murderer, o, function() -- Get gun first for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Tool") and obj.Name:lower():find("gun") and obj.Parent == Workspace then local handle = obj:FindFirstChild("Handle") if handle then local root = getRoot() if root then root.CFrame = handle.CFrame task.wait(0.1) obj.Parent = LocalPlayer.Backpack task.wait(0.2) -- Equip and aim at murderer for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local bp = p:FindFirstChildOfClass("Backpack") local char = p.Character local hasMurder = false for _, t in ipairs(char:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then hasMurder = true end end if bp then for _, t in ipairs(bp:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then hasMurder = true end end end if hasMurder then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp and root then root.CFrame = CFrame.new(root.Position, hrp.Position) notify("Auto Shoot", "Aimed at murderer: " .. p.Name) end end end end end end return end end notify("Gun", "No gun found to pick up") end); o=o+1 makeButton(InnocentSection, "Insta Win (Fling Murderer)", CONFIG.Colors.Murderer, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local char = p.Character for _, t in ipairs(char:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then local bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(0, 2000, 0) bv.MaxForce = Vector3.new(1e6,1e6,1e6) bv.Parent = hrp game:GetService("Debris"):AddItem(bv, 0.1) notify("Insta Win", "Flung " .. p.Name) end end end end end end); o=o+1 -- ── MURDERER ────────────────────────────────── local MurdererSection = makeSection() o = 0 makeSectionLabel(MurdererSection, "Target", o); o=o+1 local _, getMurdTargetFn = makePlayerDropdown(MurdererSection, o, nil); o=o+1 makeDivider(MurdererSection, o); o=o+1 makeSectionLabel(MurdererSection, "Actions", o); o=o+1 makeToggle(MurdererSection, "Aimbot (Lock Sheriff)", CONFIG.Colors.Murderer, o, function(v) State.AimbotMurd = v if v then task.spawn(function() while State.AimbotMurd do local root = getRoot() if root then for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local bp = p:FindFirstChildOfClass("Backpack") local chr = p.Character local hasGun = false for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("gun") then hasGun = true end end if bp then for _, t in ipairs(bp:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("gun") then hasGun = true end end end if hasGun then local hrp = chr:FindFirstChild("HumanoidRootPart") if hrp then Camera.CFrame = CFrame.new(Camera.CFrame.Position, hrp.Position) end end end end end task.wait(0.05) end end) end end); o=o+1 makeButton(MurdererSection, "Kill Selected Player", CONFIG.Colors.Murderer, o, function() local target = getMurdTargetFn() if not target or not target.Character then notify("Kill", "No player selected") return end local hrp = target.Character:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame notify("Kill", "Teleported to " .. target.Name) end end); o=o+1 makeToggle(MurdererSection, "Kill All Players", CONFIG.Colors.Murderer, o, function(v) State.KillAll = v if v then task.spawn(function() while State.KillAll do local root = getRoot() if root then for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local hrp = p.Character:FindFirstChild("HumanoidRootPart") if hrp then root.CFrame = hrp.CFrame task.wait(0.1) end end end end task.wait(0.5) end end) end end); o=o+1 -- ── SHERIFF ─────────────────────────────────── local SheriffSection = makeSection() o = 0 makeSectionLabel(SheriffSection, "Shot Configuration", o); o=o+1 local shotFrame = Instance.new("Frame") shotFrame.Size = UDim2.new(1, 0, 0, 40) shotFrame.BackgroundColor3 = CONFIG.UI.ButtonOff shotFrame.BorderSizePixel = 0 shotFrame.LayoutOrder = o; o=o+1 shotFrame.Parent = SheriffSection local sfc = Instance.new("UICorner") sfc.CornerRadius = UDim.new(0, 8) sfc.Parent = shotFrame local sfLayout = Instance.new("UIListLayout") sfLayout.FillDirection = Enum.FillDirection.Horizontal sfLayout.HorizontalAlignment= Enum.HorizontalAlignment.Center sfLayout.VerticalAlignment = Enum.VerticalAlignment.Center sfLayout.Padding = UDim.new(0, 8) sfLayout.Parent = shotFrame local shotPing = makeTabSelectBtn(shotFrame, "Ping", State.ShotType == "Ping") local shotTP = makeTabSelectBtn(shotFrame, "Teleport", State.ShotType == "Teleport") shotPing.MouseButton1Click:Connect(function() State.ShotType = "Ping" shotPing.BackgroundColor3 = CONFIG.UI.Accent shotTP.BackgroundColor3 = CONFIG.UI.ButtonOff end) shotTP.MouseButton1Click:Connect(function() State.ShotType = "Teleport" shotTP.BackgroundColor3 = CONFIG.UI.Accent shotPing.BackgroundColor3 = CONFIG.UI.ButtonOff end) makeDivider(SheriffSection, o); o=o+1 makeSectionLabel(SheriffSection, "Actions", o); o=o+1 makeButton(SheriffSection, "Shoot Murderer", CONFIG.Colors.Sheriff, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local chr = p.Character for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then local hrp = chr:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then if State.ShotType == "Teleport" then root.CFrame = hrp.CFrame + Vector3.new(2, 0, 0) else Camera.CFrame = CFrame.new(Camera.CFrame.Position, hrp.Position) end notify("Sheriff", "Targeting " .. p.Name) end end end end end end); o=o+1 makeToggle(SheriffSection, "Aimbot (Lock Murderer)", CONFIG.Colors.Sheriff, o, function(v) State.AimbotSheriff = v if v then task.spawn(function() while State.AimbotSheriff do for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local chr = p.Character for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then local hrp = chr:FindFirstChild("HumanoidRootPart") if hrp then Camera.CFrame = CFrame.new(Camera.CFrame.Position, hrp.Position) end end end end end task.wait(0.05) end end) end end); o=o+1 makeButton(SheriffSection, "Insta Win (TP to Murderer)", CONFIG.Colors.Sheriff, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local chr = p.Character for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then local hrp = chr:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame notify("Insta Win", "Teleported to " .. p.Name) end end end end end end); o=o+1 -- ── TELEPORT ────────────────────────────────── local TeleportSection = makeSection() o = 0 makeSectionLabel(TeleportSection, "Player Teleport", o); o=o+1 local _, getTpTargetFn = makePlayerDropdown(TeleportSection, o, nil); o=o+1 makeButton(TeleportSection, "Teleport to Selected", CONFIG.Colors.Sheriff, o, function() local target = getTpTargetFn() if not target or not target.Character then notify("TP", "No player selected") return end local hrp = target.Character:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame + Vector3.new(2, 0, 0) notify("TP", "Teleported to " .. target.Name) end end); o=o+1 makeDivider(TeleportSection, o); o=o+1 makeSectionLabel(TeleportSection, "Quick Teleport", o); o=o+1 makeButton(TeleportSection, "Teleport to Lobby", CONFIG.Colors.Innocent, o, function() TeleportService:Teleport(game.PlaceId) end); o=o+1 makeButton(TeleportSection, "Teleport to Sheriff", CONFIG.Colors.Sheriff, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local bp = p:FindFirstChildOfClass("Backpack") local chr = p.Character local has = false for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("gun") then has = true end end if bp then for _, t in ipairs(bp:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("gun") then has = true end end end if has then local hrp = chr:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame + Vector3.new(2,0,0) notify("TP", "Teleported to Sheriff: " .. p.Name) return end end end end notify("TP", "Sheriff not found") end); o=o+1 makeButton(TeleportSection, "Teleport to Murderer", CONFIG.Colors.Murderer, o, function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local chr = p.Character for _, t in ipairs(chr:GetChildren()) do if t:IsA("Tool") and t.Name:lower():find("knife") then local hrp = chr:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame + Vector3.new(2,0,0) notify("TP", "Teleported to Murderer: " .. p.Name) return end end end end end notify("TP", "Murderer not found") end); o=o+1 makeButton(TeleportSection, "Teleport to Random Player", CONFIG.Colors.Player, o, function() local list = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then table.insert(list, p) end end if #list == 0 then notify("TP", "No players found") return end local target = list[math.random(1, #list)] local hrp = target.Character:FindFirstChild("HumanoidRootPart") local root = getRoot() if hrp and root then root.CFrame = hrp.CFrame + Vector3.new(2,0,0) notify("TP", "Teleported to " .. target.Name) end end); o=o+1 -- ── SETTINGS ────────────────────────────────── local SettingsSection = makeSection() o = 0 makeSectionLabel(SettingsSection, "Performance & Display", o); o=o+1 makeToggle(SettingsSection, "Boost FPS", CONFIG.UI.Accent, o, function(v) State.BoostFPS = v if v then for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("ParticleEmitter") or obj:IsA("Smoke") or obj:IsA("Fire") then obj.Enabled = false end end Lighting.GlobalShadows = false else Lighting.GlobalShadows = true end end); o=o+1 makeToggle(SettingsSection, "Full Brightness", CONFIG.UI.Accent, o, function(v) State.FullBright = v end); o=o+1 makeDivider(SettingsSection, o); o=o+1 makeSectionLabel(SettingsSection, "Connectivity", o); o=o+1 makeToggle(SettingsSection, "Anti AFK", CONFIG.Colors.Player, o, function(v) State.AntiAFK = v end); o=o+1 makeButton(SettingsSection, "Rejoin Server", CONFIG.UI.Accent, o, function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end); o=o+1 makeButton(SettingsSection, "Server Hop", CONFIG.UI.Accent, o, function() local servers = {} local ok, result = pcall(function() return HttpService:JSONDecode( game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100") ) end) if ok and result and result.data then for _, s in ipairs(result.data) do if s.id ~= game.JobId then table.insert(servers, s.id) end end end if #servers > 0 then TeleportService:TeleportToPlaceInstance(game.PlaceId, servers[1], LocalPlayer) else notify("Server Hop", "No other servers found") end end); o=o+1 makeButton(SettingsSection, "Join Lower Server", CONFIG.Colors.Innocent, o, function() local bestServer = nil local bestCount = math.huge local ok, result = pcall(function() return HttpService:JSONDecode( game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100") ) end) if ok and result and result.data then for _, s in ipairs(result.data) do if s.id ~= game.JobId and s.playing < bestCount then bestCount = s.playing bestServer = s.id end end end if bestServer then TeleportService:TeleportToPlaceInstance(game.PlaceId, bestServer, LocalPlayer) else notify("Join", "No lower-population server found") end end); o=o+1 -- ── INFO ────────────────────────────────────── local InfoSection = makeSection() o = 0 -- Avatar local avatarRow = Instance.new("Frame") avatarRow.Size = UDim2.new(1, 0, 0, 80) avatarRow.BackgroundColor3 = CONFIG.UI.ButtonOff avatarRow.BorderSizePixel = 0 avatarRow.LayoutOrder = o; o=o+1 avatarRow.Parent = InfoSection local arc = Instance.new("UICorner") arc.CornerRadius = UDim.new(0, 10) arc.Parent = avatarRow local AvatarFrame = Instance.new("Frame") AvatarFrame.Size = UDim2.new(0, 64, 0, 64) AvatarFrame.Position = UDim2.new(0, 8, 0.5, -32) AvatarFrame.BackgroundColor3 = CONFIG.UI.Background AvatarFrame.BorderSizePixel = 0 AvatarFrame.Parent = avatarRow local afc2 = Instance.new("UICorner") afc2.CornerRadius = UDim.new(0, 8) afc2.Parent = AvatarFrame local AvatarImg = Instance.new("ImageLabel") AvatarImg.Size = UDim2.new(1, 0, 1, 0) AvatarImg.BackgroundTransparency= 1 AvatarImg.Parent = AvatarFrame local aic = Instance.new("UICorner") aic.CornerRadius = UDim.new(0, 8) aic.Parent = AvatarImg task.spawn(function() local ok, url = pcall(function() return Players:GetUserThumbnailAsync( LocalPlayer.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100 ) end) if ok then AvatarImg.Image = url end end) local TX = 84 local function makeInfoText(parent, text, y, bold, size) local l = Instance.new("TextLabel") l.Size = UDim2.new(1, -TX - 8, 0, 18) l.Position = UDim2.new(0, TX, 0, y) l.BackgroundTransparency= 1 l.TextColor3 = bold and CONFIG.UI.TextColor or CONFIG.UI.SubText l.Font = bold and Enum.Font.GothamBold or Enum.Font.Gotham l.TextSize = size or 13 l.TextXAlignment = Enum.TextXAlignment.Left l.Text = text l.Parent = parent return l end makeInfoText(avatarRow, LocalPlayer.DisplayName, 8, true, 14) makeInfoText(avatarRow, "@"..LocalPlayer.Name, 28, false, 11) makeInfoText(avatarRow, os.date("%B %d, %Y"), 46, false, 11) -- UID row local uidRow = Instance.new("Frame") uidRow.Size = UDim2.new(1, 0, 0, 38) uidRow.BackgroundColor3 = CONFIG.UI.ButtonOff uidRow.BorderSizePixel = 0 uidRow.LayoutOrder = o; o=o+1 uidRow.Parent = InfoSection local uidrc = Instance.new("UICorner") uidrc.CornerRadius = UDim.new(0, 8) uidrc.Parent = uidRow local uidKey = Instance.new("TextLabel") uidKey.Size = UDim2.new(0.45,0,1,0) uidKey.Position = UDim2.new(0,12,0,0) uidKey.BackgroundTransparency= 1 uidKey.TextColor3 = CONFIG.UI.SubText uidKey.Font = Enum.Font.Gotham uidKey.TextSize = 12 uidKey.TextXAlignment = Enum.TextXAlignment.Left uidKey.Text = "User ID" uidKey.Parent = uidRow local uidVal = Instance.new("TextLabel") uidVal.Size = UDim2.new(0.55,-12,1,0) uidVal.Position = UDim2.new(0.45,0,0,0) uidVal.BackgroundTransparency= 1 uidVal.TextColor3 = CONFIG.UI.TextColor uidVal.Font = Enum.Font.GothamBold uidVal.TextSize = 12 uidVal.TextXAlignment = Enum.TextXAlignment.Right uidVal.Text = tostring(LocalPlayer.UserId) uidVal.Parent = uidRow -- Account age local ageRow = Instance.new("Frame") ageRow.Size = UDim2.new(1, 0, 0, 38) ageRow.BackgroundColor3 = CONFIG.UI.ButtonOff ageRow.BorderSizePixel = 0 ageRow.LayoutOrder = o; o=o+1 ageRow.Parent = InfoSection local agerc = Instance.new("UICorner") agerc.CornerRadius = UDim.new(0, 8) agerc.Parent = ageRow local ageKey = Instance.new("TextLabel") ageKey.Size = UDim2.new(0.55,0,1,0) ageKey.Position = UDim2.new(0,12,0,0) ageKey.BackgroundTransparency= 1 ageKey.TextColor3 = CONFIG.UI.SubText ageKey.Font = Enum.Font.Gotham ageKey.TextSize = 12 ageKey.TextXAlignment = Enum.TextXAlignment.Left ageKey.Text = "Account Age" ageKey.Parent = ageRow local ageVal = Instance.new("TextLabel") ageVal.Size = UDim2.new(0.45,-12,1,0) ageVal.Position = UDim2.new(0.55,0,0,0) ageVal.BackgroundTransparency= 1 ageVal.TextColor3 = CONFIG.UI.TextColor ageVal.Font = Enum.Font.GothamBold ageVal.TextSize = 12 ageVal.TextXAlignment = Enum.TextXAlignment.Right ageVal.Text = tostring(LocalPlayer.AccountAge) .. " days" ageVal.Parent = ageRow -- ============================================= -- SIDEBAR NAV BUTTONS -- ============================================= local navData = { { icon = "⊞", name = "Main", section = MainSection, color = CONFIG.UI.Accent }, { icon = "◉", name = "ESP", section = ESPSection, color = CONFIG.UI.Accent }, { icon = "👤", name = "Player", section = PlayerSection, color = CONFIG.Colors.Player }, { icon = "😇", name = "Innocent", section = InnocentSection, color = CONFIG.Colors.Innocent }, { icon = "🔪", name = "Murderer", section = MurdererSection, color = CONFIG.Colors.Murderer }, { icon = "🔵", name = "Sheriff", section = SheriffSection, color = CONFIG.Colors.Sheriff }, { icon = "📍", name = "Teleport", section = TeleportSection, color = Color3.fromRGB(255,200,50) }, { icon = "⚙", name = "Settings", section = SettingsSection, color = CONFIG.UI.SubText }, { icon = "ℹ", name = "Info", section = InfoSection, color = CONFIG.UI.SubText }, } for i, data in ipairs(navData) do local navBtn = Instance.new("TextButton") navBtn.Name = data.name navBtn.Size = UDim2.new(0, NAV_W, 0, NAV_H) navBtn.BackgroundColor3 = Color3.fromRGB(38, 38, 50) navBtn.BackgroundTransparency = 1 navBtn.BorderSizePixel = 0 navBtn.AutoButtonColor = false navBtn.LayoutOrder = i navBtn.Text = "" navBtn.ZIndex = 4 navBtn.Parent = NavInner local nbc = Instance.new("UICorner") nbc.CornerRadius = UDim.new(0, 8) nbc.Parent = navBtn -- Active left indicator local ind = Instance.new("Frame") ind.Name = "ActiveIndicator" ind.Size = UDim2.new(0, 3, 0.5, 0) ind.Position = UDim2.new(0, 0, 0.25, 0) ind.BackgroundColor3 = data.color ind.BackgroundTransparency = 1 ind.BorderSizePixel = 0 ind.ZIndex = 5 ind.Parent = navBtn local indc = Instance.new("UICorner") indc.CornerRadius = UDim.new(0, 2) indc.Parent = ind local iconLbl = Instance.new("TextLabel") iconLbl.Size = UDim2.new(1, 0, 0, 18) iconLbl.Position = UDim2.new(0, 0, 0, 5) iconLbl.BackgroundTransparency= 1 iconLbl.TextColor3 = CONFIG.UI.SubText iconLbl.Font = Enum.Font.GothamBold iconLbl.TextSize = 14 iconLbl.Text = data.icon iconLbl.ZIndex = 5 iconLbl.Parent = navBtn local textLbl = Instance.new("TextLabel") textLbl.Size = UDim2.new(1, 0, 0, 11) textLbl.Position = UDim2.new(0, 0, 0, 25) textLbl.BackgroundTransparency= 1 textLbl.TextColor3 = CONFIG.UI.SubText textLbl.Font = Enum.Font.Gotham textLbl.TextSize = 8 textLbl.Text = data.name textLbl.ZIndex = 5 textLbl.Parent = navBtn navBtn.MouseEnter:Connect(function() if activeNavBtn ~= navBtn then tween(navBtn, { BackgroundTransparency = 0.6 }, 0.10) end end) navBtn.MouseLeave:Connect(function() if activeNavBtn ~= navBtn then tween(navBtn, { BackgroundTransparency = 1 }, 0.12) end end) navBtn.MouseButton1Down:Connect(function() tween(navBtn, { BackgroundTransparency = 0.3 }, 0.07) end) navBtn.MouseButton1Click:Connect(function() showSection(data.section, data.name, navBtn) end) end -- Default to Main tab local function activateDefault() for _, child in ipairs(NavInner:GetChildren()) do if child:IsA("TextButton") and child.Name == "Main" then showSection(MainSection, "Main", child) break end end end activateDefault() -- ============================================= -- OPEN / CLOSE -- ============================================= local function syncShadow() ShadowHolder.Size = MainFrame.Size ShadowHolder.Position = MainFrame.Position end local function openGUI() ScreenGui.Enabled = true MainFrame.GroupTransparency = 1 MainFrame.Size = GUI_CLOSED ShadowHolder.Size = GUI_CLOSED local t = tween(MainFrame, { Size = GUI_OPEN, GroupTransparency = 0 }, CONFIG.UI.TweenSpeed) tween(ShadowHolder, { Size = GUI_OPEN }, CONFIG.UI.TweenSpeed) t.Completed:Connect(syncShadow) end local function closeGUI(destroy) local t = tween(MainFrame, { Size = GUI_CLOSED, GroupTransparency = 1 }, CONFIG.UI.TweenSpeed) tween(ShadowHolder, { Size = GUI_CLOSED }, CONFIG.UI.TweenSpeed) t.Completed:Connect(function() if destroy then clearAllESP() ScreenGui:Destroy() else ScreenGui.Enabled = false end end) end openGUI() CloseBtn.MouseButton1Click:Connect(function() closeGUI(true) end) CloseBtn.MouseEnter:Connect(function() tween(CloseBtn, { BackgroundColor3 = Color3.fromRGB(230, 65, 65) }, 0.10) end) CloseBtn.MouseLeave:Connect(function() tween(CloseBtn, { BackgroundColor3 = CONFIG.UI.CloseColor }, 0.10) end) -- ============================================= -- DRAGGING -- ============================================= local dragging = false local dragInput = nil local dragStart = nil local startPos = nil TitleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TitleBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart local newPos = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) MainFrame.Position = newPos ShadowHolder.Position = newPos end end) -- ============================================= -- RIGHT SHIFT TOGGLE -- ============================================= UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.RightShift then isGuiVisible = not isGuiVisible if isGuiVisible then openGUI() else closeGUI(false) end end end) print("[Murder Script v3.0] Loaded. RightShift = toggle.")