-- // Services local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local camera = workspace.CurrentCamera -- // State Variables local guiVisible = true local flyEnabled = false local noclipEnabled = false local bypassActive = true local flySpeed = 50 local activeConnections = {} -- // UI Creation local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MM2AdvancedSuiteUI" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = localPlayer:WaitForChild("PlayerGui") -- // Floating Toggle Button with Image local ToggleButton = Instance.new("ImageButton") ToggleButton.Name = "ToggleButton" ToggleButton.Size = UDim2.new(0, 50, 0, 50) ToggleButton.Position = UDim2.new(0, 15, 0, 15) ToggleButton.BackgroundColor3 = Color3.fromRGB(245, 130, 32) ToggleButton.Image = "rbxassetid://0" -- Replace with your uploaded decal asset ID if needed ToggleButton.Parent = ScreenGui local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(1, 0) ToggleCorner.Parent = ToggleButton -- // Advanced Mobile Fly Control Pad local FlyPad = Instance.new("Frame") FlyPad.Name = "FlyPad" FlyPad.Size = UDim2.new(0, 140, 0, 140) FlyPad.Position = UDim2.new(1, -150, 0.5, -70) FlyPad.BackgroundTransparency = 1 FlyPad.Visible = false FlyPad.Parent = ScreenGui local FlyUpBtn = Instance.new("TextButton") FlyUpBtn.Size = UDim2.new(0, 140, 0, 42) FlyUpBtn.Position = UDim2.new(0, 0, 0, 0) FlyUpBtn.BackgroundColor3 = Color3.fromRGB(245, 130, 32) FlyUpBtn.Text = "▲ UP" FlyUpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) FlyUpBtn.TextSize = 13 FlyUpBtn.Font = Enum.Font.GothamBold FlyUpBtn.Parent = FlyPad Instance.new("UICorner", FlyUpBtn).CornerRadius = UDim.new(0, 6) local FlyDownBtn = Instance.new("TextButton") FlyDownBtn.Size = UDim2.new(0, 140, 0, 42) FlyDownBtn.Position = UDim2.new(0, 0, 0, 48) FlyDownBtn.BackgroundColor3 = Color3.fromRGB(245, 130, 32) FlyDownBtn.Text = "▼ DOWN" FlyDownBtn.TextColor3 = Color3.fromRGB(255, 255, 255) FlyDownBtn.TextSize = 13 FlyDownBtn.Font = Enum.Font.GothamBold FlyDownBtn.Parent = FlyPad Instance.new("UICorner", FlyDownBtn).CornerRadius = UDim.new(0, 6) local SpeedToggleBtn = Instance.new("TextButton") SpeedToggleBtn.Size = UDim2.new(0, 140, 0, 36) SpeedToggleBtn.Position = UDim2.new(0, 0, 0, 96) SpeedToggleBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) SpeedToggleBtn.Text = "Speed: 50" SpeedToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) SpeedToggleBtn.TextSize = 12 SpeedToggleBtn.Font = Enum.Font.GothamSemibold SpeedToggleBtn.Parent = FlyPad Instance.new("UICorner", SpeedToggleBtn).CornerRadius = UDim.new(0, 6) -- Main Frame (Compact Height) local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 320, 0, 420) MainFrame.Position = UDim2.new(0.5, -160, 0.5, -210) MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 22) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 10) UICorner.Parent = MainFrame -- MM2 Header Bar local Header = Instance.new("Frame") Header.Size = UDim2.new(1, 0, 0, 38) Header.BackgroundColor3 = Color3.fromRGB(245, 130, 32) Header.Parent = MainFrame local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 10) HeaderCorner.Parent = Header local HeaderFix = Instance.new("Frame") HeaderFix.Size = UDim2.new(1, 0, 0, 8) HeaderFix.Position = UDim2.new(0, 0, 1, -8) HeaderFix.BackgroundColor3 = Color3.fromRGB(245, 130, 32) HeaderFix.BorderSizePixel = 0 HeaderFix.Parent = Header local HeaderTitle = Instance.new("TextLabel") HeaderTitle.Size = UDim2.new(1, -20, 1, 0) HeaderTitle.Position = UDim2.new(0, 12, 0, 0) HeaderTitle.BackgroundTransparency = 1 HeaderTitle.Text = "MM2 ADVANCED SUITE" HeaderTitle.TextColor3 = Color3.fromRGB(255, 255, 255) HeaderTitle.TextSize = 13 HeaderTitle.Font = Enum.Font.GothamBold HeaderTitle.TextXAlignment = Enum.TextXAlignment.Left HeaderTitle.Parent = Header -- Scrolling Container local Container = Instance.new("ScrollingFrame") Container.Size = UDim2.new(1, -16, 1, -48) Container.Position = UDim2.new(0, 8, 0, 44) Container.BackgroundTransparency = 1 Container.BorderSizePixel = 0 Container.CanvasSize = UDim2.new(0, 0, 0, 440) Container.ScrollBarThickness = 3 Container.ScrollBarImageColor3 = Color3.fromRGB(245, 130, 32) Container.Parent = MainFrame local UIListLayout = Instance.new("UIListLayout") UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0, 6) UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout.Parent = Container -- Helper Builders local function createButton(name, text, layoutOrder) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(1, 0, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(28, 28, 35) btn.Text = text btn.TextColor3 = Color3.fromRGB(225, 225, 235) btn.TextSize = 12 btn.Font = Enum.Font.GothamSemibold btn.LayoutOrder = layoutOrder btn.Parent = Container local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btn return btn end -- Controls List local ShootMurdererBtn = createButton("ShootMurdererBtn", "Shoot Murderer", 1) local KillAllBtn = createButton("KillAllBtn", "Kill All (Murderer)", 2) local FlingSheriffBtn = createButton("FlingSheriffBtn", "Fling Sheriff", 3) local FlingMurdererBtn = createButton("FlingMurdererBtn", "Fling Murderer", 4) local FlingInnocentBtn = createButton("FlingInnocentBtn", "Fling Innocents", 5) local FlingAllBtn = createButton("FlingAllBtn", "Fling All Players", 6) local FlyBtn = createButton("FlyBtn", "Fly: OFF", 7) local NoclipBtn = createButton("NoclipBtn", "Noclip: OFF", 8) local BypassKickBtn = createButton("BypassKickBtn", "Anti-Kick: ACTIVE", 9) -- // TOGGLE UI FUNCTIONALITY ToggleButton.MouseButton1Click:Connect(function() guiVisible = not guiVisible MainFrame.Visible = guiVisible end) -- // ROLE DETECTOR UTILITIES local function getPlayerRole(player) local char = player.Character if not char then return "Innocent" end if player.Backpack:FindFirstChild("Knife") or char:FindFirstChild("Knife") then return "Murderer" elseif player.Backpack:FindFirstChild("Gun") or char:FindFirstChild("Gun") or player.Backpack:FindFirstChild("Revolver") then return "Sheriff" end return "Innocent" end -- // SHOOT MURDERER ShootMurdererBtn.MouseButton1Click:Connect(function() local myChar = localPlayer.Character if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return end local gun = localPlayer.Backpack:FindFirstChild("Gun") or localPlayer.Backpack:FindFirstChild("Revolver") if gun then gun.Parent = myChar end for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and getPlayerRole(player) == "Murderer" then local targetChar = player.Character if targetChar and targetChar:FindFirstChild("HumanoidRootPart") then myChar.HumanoidRootPart.CFrame = targetChar.HumanoidRootPart.CFrame + Vector3.new(0, 0, 3) if targetChar:FindFirstChild("Humanoid") then targetChar.Humanoid.Health = 0 end end break end end end) -- // KILL ALL (MURDERER FEATURE) KillAllBtn.MouseButton1Click:Connect(function() local myChar = localPlayer.Character if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return end local knife = localPlayer.Backpack:FindFirstChild("Knife") or myChar:FindFirstChild("Knife") if knife then knife.Parent = myChar end local originalCFrame = myChar.HumanoidRootPart.CFrame for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character then local targetChar = player.Character if targetChar and targetChar:FindFirstChild("HumanoidRootPart") and targetChar:FindFirstChild("Humanoid") and targetChar.Humanoid.Health > 0 then myChar.HumanoidRootPart.CFrame = targetChar.HumanoidRootPart.CFrame + Vector3.new(0, 0, 2) task.wait(0.15) targetChar.Humanoid.Health = 0 end end end task.wait(0.1) if myChar and myChar:FindFirstChild("HumanoidRootPart") then myChar.HumanoidRootPart.CFrame = originalCFrame end end) -- // CORE FLING FUNCTION WITH EXACT POSITION RESTORATION local function executeFlingOnTarget(targetChar) local myChar = localPlayer.Character if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return end if not targetChar or not targetChar:FindFirstChild("HumanoidRootPart") then return end local myRoot = myChar.HumanoidRootPart local targetRoot = targetChar.HumanoidRootPart local originalCFrame = myRoot.CFrame for _, part in ipairs(myChar:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end local bav = Instance.new("BodyAngularVelocity") bav.Name = "MM2SpinFling" bav.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bav.AngularVelocity = Vector3.new(0, 99999, 0) bav.Parent = myRoot local bv = Instance.new("BodyVelocity") bv.Name = "MM2HoldFling" bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Velocity = Vector3.new(0, 50, 0) bv.Parent = myRoot local connection local startTime = tick() connection = RunService.RenderStepped:Connect(function() if targetRoot and myRoot then myRoot.CFrame = targetRoot.CFrame + Vector3.new(0, 1, 0) end if tick() - startTime > 0.4 then connection:Disconnect() end end) task.delay(0.4, function() if bav then bav:Destroy() end if bv then bv:Destroy() end for _, part in ipairs(myChar:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end myRoot.CFrame = originalCFrame if targetChar:FindFirstChild("Humanoid") then targetChar.Humanoid.Health = 0 end end) end -- // FLING BUTTON EVENTS FlingSheriffBtn.MouseButton1Click:Connect(function() for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and getPlayerRole(player) == "Sheriff" then if player.Character then executeFlingOnTarget(player.Character) end break end end end) FlingMurdererBtn.MouseButton1Click:Connect(function() for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and getPlayerRole(player) == "Murderer" then if player.Character then executeFlingOnTarget(player.Character) end break end end end) FlingInnocentBtn.MouseButton1Click:Connect(function() for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and getPlayerRole(player) == "Innocent" then if player.Character then executeFlingOnTarget(player.Character) task.wait(0.5) end end end end) FlingAllBtn.MouseButton1Click:Connect(function() for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character then executeFlingOnTarget(player.Character) task.wait(0.5) end end end) -- // NOCLIP FEATURE NoclipBtn.MouseButton1Click:Connect(function() noclipEnabled = not noclipEnabled NoclipBtn.Text = "Noclip: " .. (noclipEnabled and "ON" or "OFF") NoclipBtn.BackgroundColor3 = noclipEnabled and Color3.fromRGB(245, 130, 32) or Color3.fromRGB(28, 28, 35) end) RunService.Stepped:Connect(function() if noclipEnabled then local char = localPlayer.Character if char then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end end) -- // ANTI-KICK FEATURE BypassKickBtn.MouseButton1Click:Connect(function() bypassActive = not bypassActive BypassKickBtn.Text = "Anti-Kick: " .. (bypassActive and "ACTIVE" or "DISABLED") BypassKickBtn.BackgroundColor3 = bypassActive and Color3.fromRGB(245, 130, 32) or Color3.fromRGB(28, 28, 35) end) local mt = getrawmetatable(game) local oldNamecall = mt.__namecall setreadonly(mt, false) mt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() if bypassActive and method == "Kick" and self == localPlayer then return end return oldNamecall(self, ...) end) setreadonly(mt, true) -- // ADVANCED CONTROLLABLE FLY (MOBILE & PC) local flyingUp = false local flyingDown = false FlyUpBtn.MouseButton1Down:Connect(function() flyingUp = true end) FlyUpBtn.MouseButton1Up:Connect(function() flyingUp = false end) FlyDownBtn.MouseButton1Down:Connect(function() flyingDown = true end) FlyDownBtn.MouseButton1Up:Connect(function() flyingDown = false end) SpeedToggleBtn.MouseButton1Click:Connect(function() if flySpeed == 50 then flySpeed = 100 elseif flySpeed == 100 then flySpeed = 150 else flySpeed = 50 end SpeedToggleBtn.Text = "Speed: " .. flySpeed end) local function toggleFly() flyEnabled = not flyEnabled FlyBtn.Text = "Fly: " .. (flyEnabled and "ON" or "OFF") FlyBtn.BackgroundColor3 = flyEnabled and Color3.fromRGB(245, 130, 32) or Color3.fromRGB(28, 28, 35) FlyPad.Visible = flyEnabled local char = localPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end local rootPart = char.HumanoidRootPart local humanoid = char:FindFirstChildOfClass("Humanoid") if flyEnabled then local bv = Instance.new("BodyVelocity") bv.Name = "MM2FlyVel" bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Velocity = Vector3.new(0, 0, 0) bv.Parent = rootPart local bg = Instance.new("BodyGyro") bg.Name = "MM2FlyGyro" bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bg.CFrame = rootPart.CFrame bg.Parent = rootPart activeConnections["Fly"] = RunService.RenderStepped:Connect(function() if not flyEnabled then return end local camCFrame = camera.CFrame local moveDir = Vector3.new(0, 0, 0) if humanoid then moveDir = (camCFrame.LookVector * humanoid.MoveDirection.Z) + (camCFrame.RightVector * humanoid.MoveDirection.X) end -- Keyboard movement support for PC as well if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + camCFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - camCFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - camCFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + camCFrame.RightVector end if flyingUp then moveDir = moveDir + Vector3.new(0, 1, 0) end if flyingDown then moveDir = moveDir - Vector3.new(0, 1, 0) end bv.Velocity = moveDir * flySpeed bg.CFrame = camCFrame end) else flyingUp = false flyingDown = false if activeConnections["Fly"] then activeConnections["Fly"]:Disconnect() end if rootPart:FindFirstChild("MM2FlyVel") then rootPart.MM2FlyVel:Destroy() end if rootPart:FindFirstChild("MM2FlyGyro") then rootPart.MM2FlyGyro:Destroy() end end end FlyBtn.MouseButton1Click:Connect(toggleFly)