local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CollectionService = game:GetService("CollectionService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local oldReady = PlayerGui:FindFirstChild("__MVS_READY_UI") if oldReady then oldReady:Destroy() end for _, name in ipairs({"__MVS_GAMESENSE_UI", "__MVS_ESP_KNIFE_UI"}) do local old = PlayerGui:FindFirstChild(name) if old then old.Enabled = false; old:Destroy() end end LocalPlayer:SetAttribute("__MVS_KNIFE_ENABLED", false) LocalPlayer:SetAttribute("__MVS_REVOLVER_FAST", false) LocalPlayer:SetAttribute("__MVS_REVOLVER_AIMKILL", false) local colors = { background = Color3.fromRGB(30, 30, 30), tab = Color3.fromRGB(26, 26, 26), middle = Color3.fromRGB(40, 40, 40), inline = Color3.fromRGB(50, 50, 50), outline = Color3.fromRGB(20, 20, 20), accent = Color3.fromRGB(50, 119, 186), text = Color3.fromRGB(239, 239, 239), muted = Color3.fromRGB(145, 145, 145), } local alive = true local ui = Instance.new("ScreenGui") ui.Name = "__MVS_READY_UI" ui.ResetOnSpawn = false ui.IgnoreGuiInset = true ui.DisplayOrder = 100000 ui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ui.Parent = PlayerGui ui.Destroying:Connect(function() alive = false end) local espState = Instance.new("BoolValue") espState.Name = "ESPEnabled" espState.Value = true espState.Parent = ui local knifeState = Instance.new("BoolValue") knifeState.Name = "KnifeEnabled" knifeState.Value = true knifeState.Parent = ui local revolverState = Instance.new("BoolValue") revolverState.Name = "RevolverEnabled" revolverState.Value = true revolverState.Parent = ui local function make(className, parent, properties) local object = Instance.new(className) for key, value in pairs(properties or {}) do object[key] = value end object.Parent = parent return object end local function makeText(parent, name, value, position, size, color) return make("TextLabel", parent, { Name = name, BackgroundTransparency = 1, Text = value, Position = position, Size = size, TextColor3 = color, TextSize = 10, Font = Enum.Font.Code, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Center, }) end local window = make("Frame", ui, { Name = "Window", Position = UDim2.fromOffset(28, 110), Size = UDim2.fromOffset(360, 242), BackgroundColor3 = colors.outline, BorderSizePixel = 0, Active = true, }) local inner = make("Frame", window, { Name = "Inner", Position = UDim2.fromOffset(2, 2), Size = UDim2.new(1, -4, 1, -4), BackgroundColor3 = colors.background, BorderSizePixel = 0, }) local header = make("Frame", inner, { Name = "Header", Position = UDim2.fromOffset(0, 0), Size = UDim2.new(1, 0, 0, 31), BackgroundColor3 = colors.middle, BorderSizePixel = 0, Active = true, }) make("Frame", header, { Name = "Accent", Position = UDim2.fromOffset(0, 30), Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = colors.accent, BorderSizePixel = 0, }) makeText(header, "Title", "gamesense", UDim2.fromOffset(10, 0), UDim2.fromOffset(120, 30), colors.text) local live = makeText(header, "Live", "MVS DUELS", UDim2.new(1, -110, 0, 0), UDim2.fromOffset(100, 30), colors.muted) live.TextXAlignment = Enum.TextXAlignment.Right local tabs = make("Frame", inner, { Name = "Tabs", Position = UDim2.fromOffset(0, 32), Size = UDim2.new(1, 0, 0, 28), BackgroundColor3 = colors.tab, BorderSizePixel = 0, }) local pages = make("Frame", inner, { Name = "Pages", Position = UDim2.fromOffset(0, 60), Size = UDim2.new(1, 0, 1, -60), BackgroundColor3 = colors.background, BorderSizePixel = 0, }) local ragePage = make("Frame", pages, {Name = "RAGE", Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1}) local espPage = make("Frame", pages, {Name = "ESP", Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, Visible = false}) local configPage = make("Frame", pages, {Name = "CONFIG", Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, Visible = false}) local function setTab(name) ragePage.Visible = name == "RAGE" espPage.Visible = name == "ESP" configPage.Visible = name == "CONFIG" for _, button in ipairs(tabs:GetChildren()) do if button:IsA("TextButton") then local selected = button.Name == name button.BackgroundColor3 = selected and colors.inline or colors.tab button.TextColor3 = selected and colors.text or colors.muted end end end local function addTab(name, x) local button = make("TextButton", tabs, { Name = name, Position = UDim2.fromOffset(x, 4), Size = UDim2.fromOffset(78, 20), AutoButtonColor = false, Text = name, TextSize = 10, Font = Enum.Font.Code, BackgroundColor3 = colors.tab, TextColor3 = colors.muted, BorderSizePixel = 0, }) button.Activated:Connect(function() setTab(name) end) return button end addTab("RAGE", 8) addTab("ESP", 88) addTab("CONFIG", 168) setTab("RAGE") local function addToggle(parent, name, y, value, callback) local row = make("Frame", parent, { Name = name, Position = UDim2.fromOffset(13, y), Size = UDim2.fromOffset(320, 31), BackgroundColor3 = colors.middle, BorderSizePixel = 0, }) make("Frame", row, { Name = "Accent", Position = UDim2.fromOffset(0, 0), Size = UDim2.fromOffset(2, 31), BackgroundColor3 = colors.accent, BorderSizePixel = 0, }) makeText(row, "Label", name, UDim2.fromOffset(11, 0), UDim2.fromOffset(220, 31), colors.text) local button = make("TextButton", row, { Name = "Toggle", Position = UDim2.new(1, -72, 0, 6), Size = UDim2.fromOffset(62, 19), AutoButtonColor = false, TextSize = 9, Font = Enum.Font.Code, BorderSizePixel = 0, }) local function render(on) button.Text = on and "ON" or "OFF" button.TextColor3 = on and colors.text or colors.muted button.BackgroundColor3 = on and colors.accent or colors.inline end render(value) button.Activated:Connect(function() value = not value render(value) callback(value) end) return button end makeText(ragePage, "Caption", "PLAYER CONTROL", UDim2.fromOffset(14, 10), UDim2.fromOffset(200, 18), colors.text) addToggle(ragePage, "KNIFE KILLER", 40, true, function(on) knifeState.Value = on end) addToggle(ragePage, "FAST AIM REVOLVER", 76, true, function(on) revolverState.Value = on end) makeText(espPage, "Caption", "PLAYER ESP", UDim2.fromOffset(14, 10), UDim2.fromOffset(200, 18), colors.text) addToggle(espPage, "ESP", 40, true, function(on) espState.Value = on end) local dragging = false local dragStart local startPosition local dragInput header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = window.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) header.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 dragging and input == dragInput then local delta = input.Position - dragStart window.Position = UDim2.new(startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y) end end) UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.Insert then ui.Enabled = not ui.Enabled end end) local espLayer = make("Frame", ui, {Name = "ESP_LAYER", BackgroundTransparency = 1, Size = UDim2.fromScale(1, 1), ZIndex = 10}) local visuals = {} local function createVisual(index) local outline = make("Frame", espLayer, {Name = "Outline" .. index, BackgroundTransparency = 1, BorderColor3 = colors.outline, BorderSizePixel = 3, Visible = false, ZIndex = 10}) local box = make("Frame", espLayer, {Name = "Box" .. index, BackgroundTransparency = 1, BorderColor3 = colors.accent, BorderSizePixel = 1, Visible = false, ZIndex = 11}) local healthBack = make("Frame", espLayer, {Name = "HealthBack" .. index, BackgroundColor3 = colors.outline, BorderSizePixel = 0, Visible = false, ZIndex = 10}) local health = make("Frame", espLayer, {Name = "Health" .. index, BackgroundColor3 = colors.accent, BorderSizePixel = 0, Visible = false, ZIndex = 11}) local name = makeText(espLayer, "Name" .. index, "", UDim2.fromOffset(0, 0), UDim2.fromOffset(0, 0), colors.text) name.TextSize = 9 name.ZIndex = 12 return {outline = outline, box = box, healthBack = healthBack, health = health, name = name} end for i = 1, 16 do visuals[i] = createVisual(i) end local function hideVisual(v) v.outline.Visible = false; v.box.Visible = false; v.healthBack.Visible = false; v.health.Visible = false; v.name.Visible = false end local function isCurrentEnemy(player) if player == LocalPlayer then return false end local mine, theirs = LocalPlayer:GetAttribute("Match"), player:GetAttribute("Match") if mine == nil or theirs == nil or tostring(mine) ~= tostring(theirs) then return false end return LocalPlayer.Team ~= nil and player.Team ~= nil and LocalPlayer.Team ~= player.Team end local function projectBounds(character, camera) local ok, cf, size = pcall(function() return character:GetBoundingBox() end) if not ok or not cf or not size then return end local hx, hy, hz = size.X / 2, size.Y / 2, size.Z / 2 local minX, minY, maxX, maxY = math.huge, math.huge, -math.huge, -math.huge local onScreen = false for sx = -1, 1, 2 do for sy = -1, 1, 2 do for sz = -1, 1, 2 do local worldPoint = cf:PointToWorldSpace(Vector3.new(hx * sx, hy * sy, hz * sz)) local screen, visible = camera:WorldToViewportPoint(worldPoint) if screen.Z > 0 then onScreen = onScreen or visible minX = math.min(minX, screen.X); minY = math.min(minY, screen.Y) maxX = math.max(maxX, screen.X); maxY = math.max(maxY, screen.Y) end end end end if not onScreen or minX == math.huge then return end local viewport = camera.ViewportSize if maxX < 0 or minX > viewport.X or maxY < 0 or minY > viewport.Y then return end return math.floor(minX), math.floor(minY), math.max(12, math.floor(maxX - minX)), math.max(24, math.floor(maxY - minY)) end local function drawVisual(v, x, y, width, height, health, maxHealth, displayName) local ratio = maxHealth and maxHealth > 0 and math.clamp(health / maxHealth, 0, 1) or 0 v.outline.Position = UDim2.fromOffset(x - 1, y - 1); v.outline.Size = UDim2.fromOffset(width + 2, height + 2); v.outline.Visible = true v.box.Position = UDim2.fromOffset(x, y); v.box.Size = UDim2.fromOffset(width, height); v.box.Visible = true v.healthBack.Position = UDim2.fromOffset(x - 6, y); v.healthBack.Size = UDim2.fromOffset(3, height); v.healthBack.Visible = true v.health.Position = UDim2.fromOffset(x - 6, y + height * (1 - ratio)); v.health.Size = UDim2.fromOffset(3, math.max(1, height * ratio)); v.health.BackgroundColor3 = Color3.fromHSV(ratio * 0.33, 0.85, 0.95); v.health.Visible = true v.name.Text = string.upper(displayName); v.name.Position = UDim2.fromOffset(x, y - 15); v.name.Size = UDim2.fromOffset(width, 14); v.name.Visible = true end local espClock = 0 local visibleEnemies = 0 RunService.RenderStepped:Connect(function(delta) if not alive then return end espClock = espClock + delta if espClock < 0.033 then return end espClock = 0 local used = 0 if espState.Value and LocalPlayer.Team and LocalPlayer:GetAttribute("Match") ~= nil then local camera = workspace.CurrentCamera if camera then for _, player in ipairs(Players:GetPlayers()) do if used < #visuals and isCurrentEnemy(player) then local character = player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if character and character:IsDescendantOf(workspace) and humanoid and humanoid.Health > 0 then local x, y, width, height = projectBounds(character, camera) if x then used = used + 1 drawVisual(visuals[used], x, y, width, height, humanoid.Health, humanoid.MaxHealth, player.DisplayName or player.Name) end end end end end end visibleEnemies = used for index = used + 1, #visuals do hideVisual(visuals[index]) end end) local knifeRemote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("Stab") local gunRemote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ShootGun") local knifeBusy = false local gunBusy = false local knifeLast = {} local gunLast = {} local gunNextShot = 0 local function hasKnife() local character = LocalPlayer.Character if not character then return false end for _, tool in ipairs(character:GetChildren()) do if tool:IsA("Tool") then local tagged = false pcall(function() tagged = CollectionService:HasTag(tool, "KnifeTool") end) if tagged or string.find(tostring(tool:GetAttribute("ActivatedAnimation") or ""), "Stab", 1, true) or string.find(tostring(tool:GetAttribute("PulloutAnimation") or ""), "Knife", 1, true) then return true end end end return false end local function getGun() local character = LocalPlayer.Character if not character then return end for _, tool in ipairs(character:GetChildren()) do if tool:IsA("Tool") then local tagged = false pcall(function() tagged = CollectionService:HasTag(tool, "GunTool") end) if tagged or string.find(tostring(tool:GetAttribute("ActivatedAnimation") or ""), "Shoot", 1, true) then return tool end end end end local function targetList() local list = {} local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") for _, player in ipairs(Players:GetPlayers()) do if isCurrentEnemy(player) then local character = player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") local part = character and (character:FindFirstChild("Head") or character:FindFirstChild("UpperTorso") or character:FindFirstChild("HumanoidRootPart")) local root = character and (character:FindFirstChild("HumanoidRootPart") or part) if character and humanoid and humanoid.Health > 0 and part and root then local distance = myRoot and (root.Position - myRoot.Position).Magnitude or 0 table.insert(list, {character = character, humanoid = humanoid, part = part, root = root, distance = distance}) end end end table.sort(list, function(a, b) return a.distance < b.distance end) return list end local function knifeHit(target) if knifeBusy then return end knifeBusy = true local mine = LocalPlayer.Character local myRoot = mine and mine:FindFirstChild("HumanoidRootPart") if myRoot then local original = myRoot.CFrame pcall(function() myRoot.CFrame = CFrame.lookAt(target.root.Position - target.root.CFrame.LookVector * 2.25 + Vector3.new(0, 0.4, 0), target.root.Position) RunService.Heartbeat:Wait() knifeRemote:FireServer(target.part) task.wait(0.025) end) if myRoot.Parent then myRoot.CFrame = original end end knifeBusy = false end local function gunHit(target) if gunBusy then return end gunBusy = true local mine = LocalPlayer.Character local myRoot = mine and mine:FindFirstChild("HumanoidRootPart") if myRoot then local original = myRoot.CFrame pcall(function() myRoot.CFrame = CFrame.lookAt(target.root.Position - target.root.CFrame.LookVector * 4 + Vector3.new(0, 0.4, 0), target.root.Position) RunService.Heartbeat:Wait() local head = mine:FindFirstChild("Head") local origin = head and (head.CFrame * CFrame.new(0, head.Size.Y / 2, head.Size.Z / 2)).Position or myRoot.Position local hitPosition = target.part.Position gunRemote:FireServer(origin, hitPosition, target.part, hitPosition) task.wait(0.025) end) if myRoot.Parent then myRoot.CFrame = original end end gunBusy = false end RunService.Heartbeat:Connect(function() if not alive then return end local now = os.clock() local targets = targetList() if knifeState.Value and not knifeBusy and hasKnife() then for _, target in ipairs(targets) do if not knifeLast[target.character] or now - knifeLast[target.character] > 0.45 then knifeLast[target.character] = now task.spawn(knifeHit, target) break end end end local gun = getGun() if revolverState.Value and not gunBusy and gun and now >= gunNextShot then for _, target in ipairs(targets) do if not gunLast[target.character] or now - gunLast[target.character] > 2.55 then gunLast[target.character] = now gunNextShot = now + math.max(tonumber(gun:GetAttribute("Cooldown")) or 2.5, 0.05) task.spawn(gunHit, target) break end end end end)