BOBER Fly V2 Script [Keyless] Smooth Fly Mode & OP Tools

BOBER Fly V2 Script adds smooth fly mode and OP movement tools for Murder Mystery 2, helping players move faster, explore freely, and enjoy better gameplay control.

🔮

”BOBER

🕊️Fly ModeSpeed Up📍Teleport🎥Freecam👻No Clip🔮Wall Clip🌫️No Fog👁️ESP🔎MM2 ESP🔮New Menu🔓Keyless
💻 LUA CODE:
-- BOBER ULTIMATE | THE BUG-EXTERMINATOR | XENO local Player = game:GetService("Players").LocalPlayer local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local Camera = workspace.CurrentCamera -- СОСТОЯНИЯ local Bober = { WS = 16, FS = 50, isFly = false, isNoc = false, isWall = false, isEsp = false, isMM2 = false, isFog = false, isFree = false, Target = nil, Active = true } local Fly_Conn -- Очистка старого pcall(function() if Player.PlayerGui:FindFirstChild("BoberFinal") then Player.PlayerGui.BoberFinal:Destroy() end end) local sg = Instance.new("ScreenGui", Player:WaitForChild("PlayerGui")) sg.Name = "BoberFinal"; sg.ResetOnSpawn = false local function ApplyCorner(o) local c = Instance.new("UICorner", o); c.CornerRadius = UDim.new(0, 10) end -- === УЛЬТИМАТИВНЫЙ СБРОС (УБИВАЕТ ВСЁ) === local function FullPhysicsReset() pcall(function() local char = Player.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") if hum then hum.PlatformStand = false hum.AutoRotate = true hum.JumpPower = 50 hum:SetStateEnabled(Enum.HumanoidStateType.Climbing, true) end if root then root.Anchored = false -- Удаляем вообще все левые силы for _, v in pairs(root:GetChildren()) do if v:IsA("BodyVelocity") or v:IsA("BodyGyro") then v:Destroy() end end end for _, v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = true end end end Camera.CameraSubject = Player.Character:FindFirstChildOfClass("Humanoid") Player.DevCameraOcclusionMode = Enum.DevCameraOcclusionMode.Zoom if workspace:FindFirstChild("BoberCamPart") then workspace.BoberCamPart:Destroy() end end) end -- === ОКНО 1: SPEED UP === local SpeedWin = Instance.new("Frame", sg); SpeedWin.Size = UDim2.new(0, 130, 0, 65); SpeedWin.Position = UDim2.new(0.5, -280, 0.1, 0); SpeedWin.BackgroundColor3 = Color3.fromRGB(240, 245, 255); ApplyCorner(SpeedWin); SpeedWin.Active = true; SpeedWin.Draggable = true local SL = Instance.new("TextLabel", SpeedWin); SL.Size = UDim2.new(1,0,0,25); SL.Text = "SPEED UP"; SL.Font = "GothamBold"; SL.BackgroundTransparency = 1; SL.TextColor3 = Color3.fromRGB(60, 70, 90) local SI = Instance.new("TextBox", SpeedWin); SI.Size = UDim2.new(1,-20,0,30); SI.Position = UDim2.new(0,10,0,25); SI.Text = "16"; SI.BackgroundColor3 = Color3.new(1,1,1); ApplyCorner(SI); SI.TextColor3 = Color3.new(0,0,0) SI:GetPropertyChangedSignal("Text"):Connect(function() Bober.WS = tonumber(SI.Text) or 16 end) -- === ОКНО 2: TELEPORT === local TpWin = Instance.new("Frame", sg); TpWin.Size = UDim2.new(0, 160, 0, 280); TpWin.Position = UDim2.new(0.5, -280, 0.5, -140); TpWin.BackgroundColor3 = Color3.fromRGB(230, 235, 250); TpWin.Visible = false; ApplyCorner(TpWin); TpWin.Active = true; TpWin.Draggable = true local TL = Instance.new("TextLabel", TpWin); TL.Size = UDim2.new(1,0,0,30); TL.Text = "TELEPORT"; TL.Font = "GothamBold"; TL.BackgroundTransparency = 1; TL.TextColor3 = Color3.fromRGB(60, 70, 90) local sc = Instance.new("ScrollingFrame", TpWin); sc.Size = UDim2.new(1,-10,1,-80); sc.Position = UDim2.new(0,5,0,35); sc.BackgroundTransparency = 1; sc.ScrollBarThickness = 3; Instance.new("UIListLayout", sc).Padding = UDim.new(0, 5) local TpExec = Instance.new("TextButton", TpWin); TpExec.Size = UDim2.new(1,-20,0,35); TpExec.Position = UDim2.new(0,10,1,-40); TpExec.Text = "TELEPORT"; TpExec.BackgroundColor3 = Color3.fromRGB(80, 200, 120); TpExec.TextColor3 = Color3.new(1,1,1); TpExec.Font = "GothamBold"; ApplyCorner(TpExec) local function RefreshTP() for _, v in pairs(sc:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end for _, p in pairs(game.Players:GetPlayers()) do if p ~= Player then local b = Instance.new("TextButton", sc); b.Size = UDim2.new(1, 0, 0, 25); b.Text = p.Name:sub(1,12); b.BackgroundColor3 = (Bober.Target == p) and Color3.fromRGB(100, 130, 200) or Color3.fromRGB(190, 210, 240); b.TextColor3 = Color3.fromRGB(60, 70, 90); ApplyCorner(b) b.MouseButton1Click:Connect(function() Bober.Target = (Bober.Target == p) and nil or p; RefreshTP() end) end end end TpExec.MouseButton1Click:Connect(function() if Bober.Target and Bober.Target.Character then Player.Character:MoveTo(Bober.Target.Character.HumanoidRootPart.Position) end end) -- === ОКНО 3: ГЛАВНОЕ === local Main = Instance.new("Frame", sg); Main.Size = UDim2.new(0, 180, 0, 355); Main.Position = UDim2.new(0.5, 60, 0.5, -177); Main.BackgroundColor3 = Color3.fromRGB(245, 245, 250); Main.Active = true; Main.Draggable = true; ApplyCorner(Main) local Bar = Instance.new("Frame", Main); Bar.Size = UDim2.new(1,0,0,35); Bar.BackgroundColor3 = Color3.fromRGB(200, 210, 230); ApplyCorner(Bar) local TitleLabel = Instance.new("TextLabel", Bar); TitleLabel.Size = UDim2.new(1,-80,1,0); TitleLabel.Position = UDim2.new(0,35,0,0); TitleLabel.Text = "BOBER | FLY"; TitleLabel.Font = "GothamBold"; TitleLabel.TextSize = 10; TitleLabel.BackgroundTransparency = 1; TitleLabel.TextColor3 = Color3.fromRGB(60, 70, 90) local function HBtn(txt, x, col, func) local b = Instance.new("TextButton", Bar); b.Size = UDim2.new(0,26,0,26); b.Position = UDim2.new(0,x,0,4); b.Text = txt b.BackgroundColor3 = col; b.TextColor3 = Color3.new(1,1,1); b.Font = "GothamBold"; ApplyCorner(b); b.MouseButton1Click:Connect(func) end HBtn("TP", 4, Color3.fromRGB(80, 180, 120), function() TpWin.Visible = not TpWin.Visible; if TpWin.Visible then RefreshTP() end end) HBtn("-", 118, Color3.fromRGB(160, 170, 190), function() Main.Cont.Visible = not Main.Cont.Visible; Main.Size = Main.Cont.Visible and UDim2.new(0,180,0,355) or UDim2.new(0,180,0,35); TpWin.Visible = false end) HBtn("X", 148, Color3.fromRGB(220, 80, 80), function() Bober.Active = false; FullPhysicsReset(); sg:Destroy(); if Fly_Conn then Fly_Conn:Disconnect() end end) local Cont = Instance.new("Frame", Main); Cont.Name = "Cont"; Cont.Size = UDim2.new(1,0,1,-35); Cont.Position = UDim2.new(0,0,0,35); Cont.BackgroundTransparency = 1 local FI = Instance.new("TextBox", Cont); FI.Size = UDim2.new(0.6,-15,0,35); FI.Position = UDim2.new(0,10,0,10); FI.Text = "50"; FI.BackgroundColor3 = Color3.new(1,1,1); ApplyCorner(FI); FI.TextColor3 = Color3.new(0,0,0) FI:GetPropertyChangedSignal("Text"):Connect(function() Bober.FS = tonumber(FI.Text) or 50 end) local NB = Instance.new("TextButton", Cont); NB.Size = UDim2.new(0.4,-5,0,35); NB.Position = UDim2.new(0.6,0,0,10); NB.Text = "NOCLIP"; NB.TextColor3 = Color3.fromRGB(60, 70, 90); NB.BackgroundColor3 = Color3.fromRGB(180, 190, 210); ApplyCorner(NB) NB.MouseButton1Click:Connect(function() if Bober.isFly then Bober.isNoc = not Bober.isNoc end end) local function MBtn(txt, y, val) local b = Instance.new("TextButton", Cont); b.Size = UDim2.new(1,-20,0,40); b.Position = UDim2.new(0,10,0,y); b.Text = txt b.BackgroundColor3 = Color3.fromRGB(160, 175, 200); b.TextColor3 = Color3.fromRGB(60, 70, 90); b.Font = "GothamBold"; ApplyCorner(b) b.MouseButton1Click:Connect(function() if val == "isWall" then Bober.isWall = not Bober.isWall if Bober.isWall then Bober.isFly = false FullPhysicsReset() Bober.isWall = true end elseif val == "isFree" then Bober.isFree = not Bober.isFree else Bober[val] = not Bober[val] end end); return b end local WallB = MBtn("WALL CLIP", 55, "isWall") local EspB = MBtn("ESP", 100, "isEsp") local MM2B = MBtn("ESP (MM2)", 145, "isMM2") local FogB = MBtn("NO FOG", 190, "isFog") local FreeB = MBtn("FREECAM", 235, "isFree") -- === ЯДРО ЛОГИКИ === local freePart, bv, bg, antiy RunService.Stepped:Connect(function() if not Bober.Active then return end local char = Player.Character; if not char then return end char.Humanoid.WalkSpeed = Bober.WS Player.DevCameraOcclusionMode = (Bober.isFly or Bober.isWall or Bober.isFree) and Enum.DevCameraOcclusionMode.Invisicam or Enum.DevCameraOcclusionMode.Zoom if Bober.isFog then Lighting.FogEnd = 1e5 pcall(function() for _,v in pairs(Lighting:GetDescendants()) do if v:IsA("Atmosphere") then v.Density = 0 end end end) end local shouldNoc = (Bober.isFly and Bober.isNoc) or (Bober.isWall and not Bober.isFly) or Bober.isFree for _, v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = not shouldNoc end end if Bober.isWall and not Bober.isFly then char.Humanoid.JumpPower = 0; char.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing, false) if char.Humanoid.FloorMaterial ~= Enum.Material.Air and not char.HumanoidRootPart:FindFirstChild("BAnchor") then antiy = Instance.new("BodyVelocity", char.HumanoidRootPart); antiy.Name = "BAnchor"; antiy.Velocity = Vector3.new(0,0,0); antiy.MaxForce = Vector3.new(0,9e9,0) end elseif not Bober.isFly then if char.HumanoidRootPart:FindFirstChild("BAnchor") then char.HumanoidRootPart.BAnchor:Destroy() end if not Bober.isFree then char.Humanoid.JumpPower = 50 char.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing, true) end end if Bober.isFree then char.HumanoidRootPart.Anchored = true if not freePart then freePart = Instance.new("Part", workspace); freePart.Name = "BoberCamPart"; freePart.Transparency = 1; freePart.Anchored = true; freePart.CanCollide = false; freePart.CFrame = Camera.CFrame; Camera.CameraSubject = freePart end local d = Vector3.new(0,0,0) if UIS:IsKeyDown(Enum.KeyCode.W) then d = d + Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then d = d - Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then d = d - Camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then d = d + Camera.CFrame.RightVector end freePart.CFrame = freePart.CFrame + (d * (Bober.FS/100)) else if freePart then freePart:Destroy() freePart = nil Camera.CameraSubject = char.Humanoid end if not Bober.isFly then char.HumanoidRootPart.Anchored = false end end end) -- ESP + ОБНОВЛЕНИЕ КНОПОК RunService.RenderStepped:Connect(function() if not Bober.Active then return end for _, v in pairs(sg:GetChildren()) do if v.Name == "Extra" then v:Destroy() end end if Bober.isEsp or Bober.isMM2 then for _, p in pairs(game.Players:GetPlayers()) do if p ~= Player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local color = (Bober.isMM2 and (p.Backpack:FindFirstChild("Knife") or p.Character:FindFirstChild("Knife")) and Color3.new(1,0,0)) or (Bober.isMM2 and (p.Backpack:FindFirstChild("Gun") or p.Character:FindFirstChild("Gun") or p.Backpack:FindFirstChild("Revolver")) and Color3.new(0,0,1)) or (Bober.isMM2 and Color3.new(0,1,0)) or Color3.fromRGB(100,180,255) local h = Instance.new("Highlight", sg); h.Name = "Extra"; h.Adornee = p.Character; h.FillColor = color local b = Instance.new("BillboardGui", sg); b.Name = "Extra"; b.Adornee = p.Character.HumanoidRootPart; b.Size = UDim2.new(0,100,0,30); b.AlwaysOnTop = true; b.ExtentsOffset = Vector3.new(0,3,0) local l = Instance.new("TextLabel", b); l.Size = UDim2.new(1,0,1,0); l.Text = p.Name; l.TextColor3 = color; l.BackgroundTransparency = 1; l.Font = "GothamBold"; l.TextSize = 14 end end end pcall(function() WallB.BackgroundColor3 = Bober.isWall and Color3.fromRGB(120, 220, 160) or Color3.fromRGB(160, 175, 200) EspB.BackgroundColor3 = Bober.isEsp and Color3.fromRGB(120, 160, 220) or Color3.fromRGB(160, 175, 200) MM2B.BackgroundColor3 = Bober.isMM2 and Color3.fromRGB(255, 100, 100) or Color3.fromRGB(160, 175, 200) FogB.BackgroundColor3 = Bober.isFog and Color3.fromRGB(200, 140, 220) or Color3.fromRGB(160, 175, 200) FreeB.BackgroundColor3 = Bober.isFree and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(160, 175, 200) NB.BackgroundColor3 = (Bober.isFly and Bober.isNoc) and Color3.fromRGB(100, 200, 150) or Color3.fromRGB(180, 190, 210) end) end) Fly_Conn = UIS.InputBegan:Connect(function(i, g) if g or not Bober.Active then return end if i.KeyCode == Enum.KeyCode.E then Bober.isFly = not Bober.isFly if Bober.isFly then Bober.isWall = false -- ВЫКЛЮЧАЕМ ВАЛКЛИП ПРИ ВЗЛЕТЕ FullPhysicsReset(); Bober.isFly = true local r = Player.Character.HumanoidRootPart; Player.Character.Humanoid.PlatformStand = true bg = Instance.new("BodyGyro", r); bg.MaxTorque = Vector3.new(9e9,9e9,9e9); bg.P = 5e5 bv = Instance.new("BodyVelocity", r); bv.MaxForce = Vector3.new(9e9,9e9,9e9) task.spawn(function() while Bober.isFly and Bober.Active do local cam = Camera.CFrame; bg.CFrame = cam; local d = Vector3.new(0,0,0) if UIS:IsKeyDown(Enum.KeyCode.W) then d = d + cam.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then d = d - cam.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then d = d - cam.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then d = d + cam.RightVector end bv.Velocity = d.Magnitude > 0 and d.Unit * Bober.FS or Vector3.new(0,0,0) RunService.RenderStepped:Wait() end FullPhysicsReset() end) else FullPhysicsReset() end end end)

Leave a Comment