M4rkLose (KILLSTREAK)
Key Required

M4rkLose (KILLSTREAK)

Killstreak Battle RoyaleM4rkhnvdM4rkhnvd 1K views 8.3K executesUpdated Aug 24, 2026
Unrated
00
Lua Scriptβ€’1131 lines (42568 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

-- ═══════════════════════════════════════════════════════════════════════════════
--  CONFIGURATION
-- ═══════════════════════════════════════════════════════════════════════════════

local Config = {
    -- ESP
    ESP_Enabled = true,
    Boxes = true,
    BoxType = "Glow",
    Tracers = true,
    Names = true,
    HealthBar = true,
    HealthBarType = "Vertical",
    Distance = true,
    HeadDot = true,
    Snaplines = false,
    TeamCheck = true,
    MaxDistance = 1000,
    
    -- Colors
    BoxColor = Color3.fromRGB(0, 180, 255),
    BoxGlowColor = Color3.fromRGB(0, 100, 255),
    TracerColor = Color3.fromRGB(255, 50, 150),
    NameColor = Color3.fromRGB(255, 255, 255),
    HealthColorLow = Color3.fromRGB(255, 30, 30),
    HealthColorMid = Color3.fromRGB(255, 200, 50),
    HealthColorHigh = Color3.fromRGB(30, 255, 150),
    TeamColor = Color3.fromRGB(0, 255, 100),
    EnemyColor = Color3.fromRGB(255, 30, 80),
    HeadDotColor = Color3.fromRGB(255, 50, 50),
    SnaplineColor = Color3.fromRGB(255, 255, 255),
    
    -- Aimbot
    Aimbot_Enabled = false,
    Aimbot_Key = Enum.UserInputType.MouseButton2,
    Aimbot_Smoothness = 0.08,
    Aimbot_FOV = 150,
    Aimbot_FOV_Color = Color3.fromRGB(255, 80, 120),
    Show_FOV = true,
    TargetPart = "Head",
    TeamCheck_Aimbot = true,
    Aimbot_VisibleCheck = true,
    Aimbot_Prediction = 0.35,
    Aimbot_HitChance = 95,
    Aimbot_RecoilComp = 0.6,
    Aimbot_MinDistance = 0,
    Aimbot_MaxDistance = 1000,
    Aimbot_IgnoreCloaked = true,
    
    -- Visuals
    Crosshair = false,
    CrosshairColor = Color3.fromRGB(255, 255, 255),
    CrosshairSize = 20,
    CrosshairThickness = 2,
    Watermark = true,
    ShowFPS = true,
    ShowTime = false,
    
    -- Misc
    MenuKey = Enum.KeyCode.RightShift,
    Theme = "Dark",
}

-- ═══════════════════════════════════════════════════════════════════════════════
--  THEMES
-- ═══════════════════════════════════════════════════════════════════════════════

local Themes = {
    Dark = {
        bg = Color3.fromRGB(10, 10, 16),
        sidebar = Color3.fromRGB(14, 14, 22),
        panel = Color3.fromRGB(18, 18, 28),
        accent = Color3.fromRGB(0, 180, 255),
        accent2 = Color3.fromRGB(0, 220, 180),
        text = Color3.fromRGB(240, 240, 250),
        textDim = Color3.fromRGB(160, 160, 185),
        textDark = Color3.fromRGB(100, 100, 120),
        border = Color3.fromRGB(40, 40, 60),
        toggleOn = Color3.fromRGB(0, 200, 150),
        toggleOff = Color3.fromRGB(50, 50, 70),
        glow = Color3.fromRGB(0, 100, 200),
        hover = Color3.fromRGB(30, 30, 50),
    },
    Light = {
        bg = Color3.fromRGB(240, 240, 248),
        sidebar = Color3.fromRGB(225, 225, 235),
        panel = Color3.fromRGB(255, 255, 255),
        accent = Color3.fromRGB(0, 110, 230),
        accent2 = Color3.fromRGB(0, 200, 150),
        text = Color3.fromRGB(30, 30, 45),
        textDim = Color3.fromRGB(120, 120, 140),
        textDark = Color3.fromRGB(80, 80, 100),
        border = Color3.fromRGB(200, 200, 215),
        toggleOn = Color3.fromRGB(0, 180, 130),
        toggleOff = Color3.fromRGB(180, 180, 195),
        glow = Color3.fromRGB(0, 80, 160),
        hover = Color3.fromRGB(220, 220, 235),
    },
    Neon = {
        bg = Color3.fromRGB(6, 0, 16),
        sidebar = Color3.fromRGB(10, 2, 22),
        panel = Color3.fromRGB(16, 4, 30),
        accent = Color3.fromRGB(255, 0, 200),
        accent2 = Color3.fromRGB(0, 255, 200),
        text = Color3.fromRGB(235, 210, 255),
        textDim = Color3.fromRGB(160, 110, 190),
        textDark = Color3.fromRGB(80, 40, 100),
        border = Color3.fromRGB(60, 20, 80),
        toggleOn = Color3.fromRGB(0, 255, 200),
        toggleOff = Color3.fromRGB(75, 35, 95),
        glow = Color3.fromRGB(200, 0, 150),
        hover = Color3.fromRGB(35, 10, 55),
    }
}

local Theme = Themes[Config.Theme] or Themes.Dark

-- ═══════════════════════════════════════════════════════════════════════════════
--  STATE & DRAWING OBJECTS
-- ═══════════════════════════════════════════════════════════════════════════════

local ESP_Cache = {}
local Cleanups = {}
local CurrentPanel = "ESP"
local Panels = {}  -- <-- EZT KELL INICIALIZÁLNI!

-- Drawing objects
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 2
FOVCircle.Color = Config.Aimbot_FOV_Color
FOVCircle.Filled = false
FOVCircle.Transparency = 0.25
FOVCircle.Visible = false
FOVCircle.NumSides = 64

local AimbotDot = Drawing.new("Circle")
AimbotDot.Thickness = 0
AimbotDot.Filled = true
AimbotDot.Radius = 5
AimbotDot.Color = Color3.fromRGB(255, 0, 0)
AimbotDot.Transparency = 0.4
AimbotDot.Visible = false

local CrosshairH = Drawing.new("Line")
CrosshairH.Thickness = Config.CrosshairThickness
CrosshairH.Color = Config.CrosshairColor
CrosshairH.Transparency = 1
CrosshairH.Visible = false

local CrosshairV = Drawing.new("Line")
CrosshairV.Thickness = Config.CrosshairThickness
CrosshairV.Color = Config.CrosshairColor
CrosshairV.Transparency = 1
CrosshairV.Visible = false

local WatermarkText = Drawing.new("Text")
WatermarkText.Size = 14
WatermarkText.Center = false
WatermarkText.Outline = true
WatermarkText.OutlineColor = Color3.fromRGB(0, 0, 0)
WatermarkText.Color = Theme.accent
WatermarkText.Transparency = 1
WatermarkText.Visible = true
WatermarkText.Position = Vector2.new(10, 10)

-- ═══════════════════════════════════════════════════════════════════════════════
--  UTILITY FUNCTIONS
-- ═══════════════════════════════════════════════════════════════════════════════

local function getColorForHealth(health, maxHealth)
    local ratio = math.clamp(health / maxHealth, 0, 1)
    if ratio > 0.5 then
        return Config.HealthColorHigh:lerp(Config.HealthColorMid, (ratio - 0.5) * 2)
    else
        return Config.HealthColorMid:lerp(Config.HealthColorLow, ratio * 2)
    end
end

local function isVisible(part)
    if not Config.Aimbot_VisibleCheck then return true end
    local origin = Camera.CFrame.Position
    local direction = (part.Position - origin).Unit
    local distance = (part.Position - origin).Magnitude
    local ray = Ray.new(origin, direction * distance)
    local hit = Workspace:FindPartOnRayWithIgnoreList(ray, {LocalPlayer.Character})
    return hit == part or (hit and hit:IsDescendantOf(part.Parent))
end

-- ═══════════════════════════════════════════════════════════════════════════════
--  AIMBOT CORE
-- ═══════════════════════════════════════════════════════════════════════════════

local function getClosestPlayer()
    local target = nil
    local shortest = math.huge
    local mousePos = UserInputService:GetMouseLocation()
    
    for _, player in ipairs(Players:GetPlayers()) do
        if player == LocalPlayer then continue end
        if Config.TeamCheck_Aimbot and player.Team == LocalPlayer.Team then continue end
        
        local char = player.Character
        if not char then continue end
        
        local part = char:FindFirstChild(Config.TargetPart)
        if not part then part = char:FindFirstChild("HumanoidRootPart") end
        if not part then continue end
        
        local hum = char:FindFirstChild("Humanoid")
        if not hum or hum.Health <= 0 then continue end
        
        local dist = (Camera.CFrame.Position - part.Position).Magnitude
        if dist < Config.Aimbot_MinDistance or dist > Config.Aimbot_MaxDistance then continue end
        if Config.Aimbot_IgnoreCloaked and char:FindFirstChild("Cloak") then continue end
        if not isVisible(part) then continue end
        
        local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
        if not onScreen then continue end
        
        local screenDist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
        if screenDist <= Config.Aimbot_FOV and screenDist < shortest then
            local velocity = part.AssemblyLinearVelocity or Vector3.new()
            local predictedPos = part.Position + velocity * Config.Aimbot_Prediction
            local predScreen = Camera:WorldToViewportPoint(predictedPos)
            local predDist = (Vector2.new(predScreen.X, predScreen.Y) - mousePos).Magnitude
            if predDist < shortest then
                shortest = predDist
                target = {part = part, predicted = predScreen}
            else
                shortest = screenDist
                target = {part = part, predicted = screenPos}
            end
        end
    end
    return target
end

-- ═══════════════════════════════════════════════════════════════════════════════
--  ESP FUNCTIONS
-- ═══════════════════════════════════════════════════════════════════════════════

local function cleanupESP(player)
    if ESP_Cache[player] then
        for _, obj in pairs(ESP_Cache[player]) do
            pcall(function() obj:Remove() end)
        end
        ESP_Cache[player] = nil
    end
end

local function cleanupAllESP()
    for player, _ in pairs(ESP_Cache) do cleanupESP(player) end
    pcall(function()
        FOVCircle:Remove()
        AimbotDot:Remove()
        CrosshairH:Remove()
        CrosshairV:Remove()
        WatermarkText:Remove()
    end)
end

local function createESP(player)
    cleanupESP(player)
    local drawings = {}
    
    if Config.BoxType == "Corner" then
        for i = 1, 4 do
            drawings["Corner"..i] = Drawing.new("Line")
            drawings["Corner"..i].Thickness = 3
            drawings["Corner"..i].Color = Config.BoxColor
            drawings["Corner"..i].Transparency = 1
            drawings["Corner"..i].Visible = false
        end
    elseif Config.BoxType == "Filled" then
        drawings.Box = Drawing.new("Square")
        drawings.Box.Thickness = 1
        drawings.Box.Filled = true
        drawings.Box.FillColor = Config.BoxColor
        drawings.Box.FillTransparency = 0.2
        drawings.Box.Color = Config.BoxColor
        drawings.Box.Transparency = 1
        drawings.Box.Visible = false
    else
        drawings.Box = Drawing.new("Square")
        drawings.Box.Thickness = 2
        drawings.Box.Filled = false
        drawings.Box.Color = Config.BoxColor
        drawings.Box.Transparency = 1
        drawings.Box.Visible = false
        if Config.BoxType == "Glow" then
            drawings.Glow = Drawing.new("Square")
            drawings.Glow.Thickness = 8
            drawings.Glow.Filled = false
            drawings.Glow.Color = Config.BoxGlowColor
            drawings.Glow.Transparency = 0.15
            drawings.Glow.Visible = false
        end
    end
    
    drawings.Tracer = Drawing.new("Line")
    drawings.Tracer.Thickness = 2
    drawings.Tracer.Color = Config.TracerColor
    drawings.Tracer.Transparency = 1
    drawings.Tracer.Visible = false
    
    drawings.Snapline = Drawing.new("Line")
    drawings.Snapline.Thickness = 1
    drawings.Snapline.Color = Config.SnaplineColor
    drawings.Snapline.Transparency = 0.4
    drawings.Snapline.Visible = false
    
    drawings.Name = Drawing.new("Text")
    drawings.Name.Size = 14
    drawings.Name.Center = true
    drawings.Name.Outline = true
    drawings.Name.OutlineColor = Color3.fromRGB(0, 0, 0)
    drawings.Name.Color = Config.NameColor
    drawings.Name.Transparency = 1
    drawings.Name.Visible = false
    
    drawings.HealthBar = Drawing.new("Line")
    drawings.HealthBar.Thickness = 5
    drawings.HealthBar.Color = Config.HealthColorHigh
    drawings.HealthBar.Transparency = 1
    drawings.HealthBar.Visible = false
    
    drawings.HealthBarH = Drawing.new("Line")
    drawings.HealthBarH.Thickness = 4
    drawings.HealthBarH.Color = Config.HealthColorHigh
    drawings.HealthBarH.Transparency = 1
    drawings.HealthBarH.Visible = false
    
    drawings.Distance = Drawing.new("Text")
    drawings.Distance.Size = 12
    drawings.Distance.Center = true
    drawings.Distance.Outline = true
    drawings.Distance.OutlineColor = Color3.fromRGB(0, 0, 0)
    drawings.Distance.Color = Color3.fromRGB(180, 180, 200)
    drawings.Distance.Transparency = 1
    drawings.Distance.Visible = false
    
    drawings.HeadDot = Drawing.new("Circle")
    drawings.HeadDot.Thickness = 0
    drawings.HeadDot.Filled = true
    drawings.HeadDot.Radius = 4
    drawings.HeadDot.Color = Config.HeadDotColor
    drawings.HeadDot.Transparency = 0.7
    drawings.HeadDot.Visible = false
    
    ESP_Cache[player] = drawings
end

local function rebuildAllESP()
    for player, _ in pairs(ESP_Cache) do
        cleanupESP(player)
    end
    ESP_Cache = {}
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer then
            createESP(player)
        end
    end
end

-- ═══════════════════════════════════════════════════════════════════════════════
--  MAIN ESP RENDER LOOP
-- ═══════════════════════════════════════════════════════════════════════════════

local renderConnection = RunService.RenderStepped:Connect(function()
    -- Watermark
    if Config.Watermark then
        local fpsText = ""
        if Config.ShowFPS then
            local fps = math.floor(1 / RunService.Heartbeat:Wait())
            fpsText = " | FPS: " .. fps
        end
        local timeText = ""
        if Config.ShowTime then
            timeText = " | " .. os.date("%H:%M")
        end
        WatermarkText.Text = "✦ M4rkLose" .. fpsText .. timeText
        WatermarkText.Visible = true
    else
        WatermarkText.Visible = false
    end
    
    -- Crosshair
    if Config.Crosshair then
        local size = Config.CrosshairSize
        local mousePos = UserInputService:GetMouseLocation()
        CrosshairH.From = Vector2.new(mousePos.X - size, mousePos.Y)
        CrosshairH.To = Vector2.new(mousePos.X + size, mousePos.Y)
        CrosshairH.Visible = true
        CrosshairV.From = Vector2.new(mousePos.X, mousePos.Y - size)
        CrosshairV.To = Vector2.new(mousePos.X, mousePos.Y + size)
        CrosshairV.Visible = true
    else
        CrosshairH.Visible = false
        CrosshairV.Visible = false
    end
    
    if not Config.ESP_Enabled then
        for _, d in pairs(ESP_Cache) do
            for _, obj in pairs(d) do
                if obj.Visible ~= nil then obj.Visible = false end
            end
        end
        return
    end
    
    local viewport = Camera.ViewportSize
    local centerX, centerY = viewport.X / 2, viewport.Y
    
    for player, drawings in pairs(ESP_Cache) do
        local char = player.Character
        local hrp = char and char:FindFirstChild("HumanoidRootPart")
        local hum = char and char:FindFirstChild("Humanoid")
        
        if hrp and hum and hum.Health > 0 then
            local pos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
            local dist = (Camera.CFrame.Position - hrp.Position).Magnitude
            
            if onScreen and dist <= Config.MaxDistance then
                local height = math.abs(
                    Camera:WorldToViewportPoint(hrp.Position + Vector3.new(0, 3, 0)).Y - 
                    Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0)).Y
                )
                local width = height * 0.55
                local topY = pos.Y - height/2
                local leftX = pos.X - width/2
                
                local isTeam = Config.TeamCheck and player.Team == LocalPlayer.Team
                local boxColor = isTeam and Config.TeamColor or Config.EnemyColor
                
                if Config.Boxes then
                    if Config.BoxType == "Corner" then
                        local len = math.min(width * 0.25, 25)
                        drawings.Corner1.From = Vector2.new(leftX, topY + len)
                        drawings.Corner1.To = Vector2.new(leftX, topY)
                        drawings.Corner2.From = Vector2.new(leftX, topY)
                        drawings.Corner2.To = Vector2.new(leftX + len, topY)
                        drawings.Corner3.From = Vector2.new(leftX + width, topY + height - len)
                        drawings.Corner3.To = Vector2.new(leftX + width, topY + height)
                        drawings.Corner4.From = Vector2.new(leftX + width, topY + height)
                        drawings.Corner4.To = Vector2.new(leftX + width - len, topY + height)
                        for i = 1, 4 do
                            drawings["Corner"..i].Color = boxColor
                            drawings["Corner"..i].Visible = true
                        end
                    else
                        drawings.Box.Size = Vector2.new(width, height)
                        drawings.Box.Position = Vector2.new(leftX, topY)
                        drawings.Box.Color = boxColor
                        if Config.BoxType == "Filled" then
                            drawings.Box.FillColor = boxColor
                        end
                        drawings.Box.Visible = true
                        if drawings.Glow then
                            drawings.Glow.Size = Vector2.new(width + 16, height + 16)
                            drawings.Glow.Position = Vector2.new(leftX - 8, topY - 8)
                            drawings.Glow.Color = boxColor
                            drawings.Glow.Visible = true
                        end
                    end
                else
                    for i = 1, 4 do if drawings["Corner"..i] then drawings["Corner"..i].Visible = false end end
                    if drawings.Box then drawings.Box.Visible = false end
                    if drawings.Glow then drawings.Glow.Visible = false end
                end
                
                if Config.Tracers then
                    drawings.Tracer.From = Vector2.new(centerX, centerY)
                    drawings.Tracer.To = Vector2.new(pos.X, pos.Y + height/2)
                    drawings.Tracer.Color = Config.TracerColor
                    drawings.Tracer.Visible = true
                else
                    drawings.Tracer.Visible = false
                end
                
                if Config.Snaplines then
                    drawings.Snapline.From = Vector2.new(centerX, 0)
                    drawings.Snapline.To = Vector2.new(pos.X, pos.Y)
                    drawings.Snapline.Visible = true
                else
                    drawings.Snapline.Visible = false
                end
                
                if Config.Names then
                    drawings.Name.Position = Vector2.new(pos.X, topY - 20)
                    drawings.Name.Text = string.format("%s [%d]", player.DisplayName or player.Name, math.floor(hum.Health))
                    drawings.Name.Color = isTeam and Config.TeamColor or Config.EnemyColor
                    drawings.Name.Visible = true
                else
                    drawings.Name.Visible = false
                end
                
                if Config.HealthBar and (Config.HealthBarType == "Vertical" or Config.HealthBarType == "Both") then
                    local healthPercent = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
                    local barHeight = height * healthPercent
                    drawings.HealthBar.From = Vector2.new(leftX - 10, topY + height)
                    drawings.HealthBar.To = Vector2.new(leftX - 10, topY + height - barHeight)
                    drawings.HealthBar.Color = getColorForHealth(hum.Health, hum.MaxHealth)
                    drawings.HealthBar.Visible = true
                else
                    drawings.HealthBar.Visible = false
                end
                
                if Config.HealthBar and (Config.HealthBarType == "Horizontal" or Config.HealthBarType == "Both") then
                    local healthPercent = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
                    local barWidth = width * healthPercent
                    drawings.HealthBarH.From = Vector2.new(leftX, topY + height + 3)
                    drawings.HealthBarH.To = Vector2.new(leftX + barWidth, topY + height + 3)
                    drawings.HealthBarH.Color = getColorForHealth(hum.Health, hum.MaxHealth)
                    drawings.HealthBarH.Visible = true
                else
                    drawings.HealthBarH.Visible = false
                end
                
                if Config.Distance then
                    drawings.Distance.Position = Vector2.new(pos.X, topY + height + 22)
                    drawings.Distance.Text = string.format("%.0fm", dist)
                    drawings.Distance.Visible = true
                else
                    drawings.Distance.Visible = false
                end
                
                if Config.HeadDot then
                    local head = char:FindFirstChild("Head")
                    if head then
                        local headPos = Camera:WorldToViewportPoint(head.Position)
                        drawings.HeadDot.Position = Vector2.new(headPos.X, headPos.Y)
                        drawings.HeadDot.Color = isTeam and Config.TeamColor or Config.EnemyColor
                        drawings.HeadDot.Visible = true
                    end
                else
                    drawings.HeadDot.Visible = false
                end
                
            else
                for _, obj in pairs(drawings) do
                    if obj.Visible ~= nil then obj.Visible = false end
                end
            end
        else
            for _, obj in pairs(drawings) do
                if obj.Visible ~= nil then obj.Visible = false end
            end
        end
    end
end)
table.insert(Cleanups, renderConnection)

-- ═══════════════════════════════════════════════════════════════════════════════
--  AIMBOT LOOP
-- ═══════════════════════════════════════════════════════════════════════════════

local aimConnection = RunService.RenderStepped:Connect(function()
    local mousePos = UserInputService:GetMouseLocation()
    
    if Config.Show_FOV and Config.Aimbot_Enabled then
        FOVCircle.Position = mousePos
        FOVCircle.Radius = Config.Aimbot_FOV
        FOVCircle.Color = Config.Aimbot_FOV_Color
        FOVCircle.Visible = true
    else
        FOVCircle.Visible = false
    end
    
    if Config.Aimbot_Enabled then
        local keyDown = false
        local key = Config.Aimbot_Key
        if key == Enum.UserInputType.MouseButton1 or key == Enum.UserInputType.MouseButton2 or key == Enum.UserInputType.MouseButton3 then
            keyDown = UserInputService:IsMouseButtonPressed(key)
        else
            keyDown = UserInputService:IsKeyDown(key)
        end
        
        if keyDown then
            local targetData = getClosestPlayer()
            if targetData then
                local screenPos = targetData.predicted
                if math.random(1, 100) <= Config.Aimbot_HitChance then
                    local dx = screenPos.X - mousePos.X
                    local dy = screenPos.Y - mousePos.Y
                    if Config.Aimbot_RecoilComp > 0 then
                        dy = dy - (dy * Config.Aimbot_RecoilComp * 0.25)
                    end
                    local smoothX = dx * Config.Aimbot_Smoothness
                    local smoothY = dy * Config.Aimbot_Smoothness
                    mousemoverel(smoothX, smoothY)
                    AimbotDot.Position = Vector2.new(screenPos.X, screenPos.Y)
                    AimbotDot.Color = Color3.fromRGB(0, 255, 100)
                    AimbotDot.Visible = true
                else
                    AimbotDot.Position = Vector2.new(screenPos.X, screenPos.Y)
                    AimbotDot.Color = Color3.fromRGB(255, 200, 0)
                    AimbotDot.Visible = true
                end
            else
                AimbotDot.Visible = false
            end
        else
            AimbotDot.Visible = false
        end
    else
        AimbotDot.Visible = false
    end
end)
table.insert(Cleanups, aimConnection)

-- ═══════════════════════════════════════════════════════════════════════════════
--  UI - NEVERLOSE STYLE (Left Sidebar Navigation)
-- ═══════════════════════════════════════════════════════════════════════════════

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "M4rkLose"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = (gethui and gethui()) or LocalPlayer:WaitForChild("PlayerGui")

-- Main Window
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 700, 0, 520)
MainFrame.Position = UDim2.new(0.5, -350, 0.5, -260)
MainFrame.BackgroundColor3 = Theme.bg
MainFrame.BackgroundTransparency = 0.05
MainFrame.BorderSizePixel = 1
MainFrame.BorderColor3 = Theme.border
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Visible = false
MainFrame.Parent = ScreenGui

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 12)
UICorner.Parent = MainFrame

-- Glow border
local GlowBorder = Instance.new("Frame")
GlowBorder.Size = UDim2.new(1, 8, 1, 8)
GlowBorder.Position = UDim2.new(0, -4, 0, -4)
GlowBorder.BackgroundColor3 = Theme.glow
GlowBorder.BackgroundTransparency = 0.5
GlowBorder.BorderSizePixel = 0
GlowBorder.ZIndex = 0
GlowBorder.Parent = MainFrame

local GlowCorner = Instance.new("UICorner")
GlowCorner.CornerRadius = UDim.new(0, 14)
GlowCorner.Parent = GlowBorder

local glowTween = TweenService:Create(GlowBorder, TweenInfo.new(3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1), {
    BackgroundTransparency = 0.2
})
glowTween:Play()

-- ===== SIDEBAR =====
local Sidebar = Instance.new("Frame")
Sidebar.Size = UDim2.new(0, 180, 1, 0)
Sidebar.BackgroundColor3 = Theme.sidebar
Sidebar.BackgroundTransparency = 0.2
Sidebar.BorderSizePixel = 0
Sidebar.ZIndex = 2
Sidebar.Parent = MainFrame

local SidebarCorner = Instance.new("UICorner")
SidebarCorner.CornerRadius = UDim.new(0, 12)
SidebarCorner.Parent = Sidebar

-- Sidebar title
local SidebarTitle = Instance.new("TextLabel")
SidebarTitle.Size = UDim2.new(1, 0, 0, 50)
SidebarTitle.BackgroundTransparency = 1
SidebarTitle.Text = "✦ M4rkLose"
SidebarTitle.TextColor3 = Theme.accent
SidebarTitle.TextSize = 18
SidebarTitle.Font = Enum.Font.SourceSansBold
SidebarTitle.TextXAlignment = Enum.TextXAlignment.Center
SidebarTitle.ZIndex = 3
SidebarTitle.Parent = Sidebar

-- Sidebar buttons (tΓ‘bla)
local SidebarButtons = {}
local ButtonNames = {"ESP", "Aimbot", "Visuals", "Misc"}

-- ===== CONTENT PANELS =====
local ContentContainer = Instance.new("Frame")
ContentContainer.Size = UDim2.new(1, -190, 1, 0)
ContentContainer.Position = UDim2.new(0, 185, 0, 0)
ContentContainer.BackgroundTransparency = 1
ContentContainer.ZIndex = 2
ContentContainer.Parent = MainFrame

-- ===== PANEL LΓ‰TREHOZÁS =====
local function createPanel(name)
    local Panel = Instance.new("ScrollingFrame")
    Panel.Size = UDim2.new(1, -20, 1, -10)
    Panel.Position = UDim2.new(0, 10, 0, 5)
    Panel.BackgroundTransparency = 1
    Panel.ScrollBarThickness = 4
    Panel.ScrollBarImageColor3 = Theme.accent
    Panel.ScrollBarImageTransparency = 0.6
    Panel.CanvasSize = UDim2.new(0, 0, 0, 800)
    Panel.ZIndex = 3
    Panel.Visible = false
    Panel.Parent = ContentContainer
    
    local UIList = Instance.new("UIListLayout")
    UIList.SortOrder = Enum.SortOrder.LayoutOrder
    UIList.Padding = UDim.new(0, 6)
    UIList.Parent = Panel
    
    Panels[name] = Panel
    return Panel
end

-- Panel content helpers
local function createPanelSection(panel, title)
    local Section = Instance.new("TextLabel")
    Section.Size = UDim2.new(1, 0, 0, 32)
    Section.BackgroundTransparency = 1
    Section.Text = "β–Έ " .. title
    Section.TextColor3 = Theme.accent
    Section.TextSize = 15
    Section.Font = Enum.Font.SourceSansSemibold
    Section.TextXAlignment = Enum.TextXAlignment.Left
    Section.ZIndex = 3
    Section.Parent = panel
    return Section
end

local function createPanelToggle(panel, name, defaultVal, callback)
    local Row = Instance.new("Frame")
    Row.Size = UDim2.new(1, -4, 0, 38)
    Row.BackgroundColor3 = Theme.panel
    Row.BackgroundTransparency = 0.3
    Row.BorderSizePixel = 1
    Row.BorderColor3 = Theme.border
    Row.ZIndex = 2
    Row.Parent = panel
    
    local RowCorner = Instance.new("UICorner")
    RowCorner.CornerRadius = UDim.new(0, 8)
    RowCorner.Parent = Row
    
    local Label = Instance.new("TextLabel")
    Label.Size = UDim2.new(0.65, 0, 1, 0)
    Label.Position = UDim2.new(0, 14, 0, 0)
    Label.BackgroundTransparency = 1
    Label.Text = name
    Label.TextColor3 = Theme.text
    Label.TextSize = 12
    Label.Font = Enum.Font.SourceSansSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.ZIndex = 3
    Label.Parent = Row
    
    local Toggle = Instance.new("TextButton")
    Toggle.Size = UDim2.new(0, 50, 0, 24)
    Toggle.Position = UDim2.new(1, -58, 0.5, -12)
    Toggle.BackgroundColor3 = defaultVal and Theme.toggleOn or Theme.toggleOff
    Toggle.BackgroundTransparency = 0.2
    Toggle.Text = defaultVal and "ON" or "OFF"
    Toggle.TextColor3 = Color3.fromRGB(255, 255, 255)
    Toggle.TextSize = 10
    Toggle.Font = Enum.Font.SourceSansBold
    Toggle.ZIndex = 3
    Toggle.Parent = Row
    
    local ToggleCorner = Instance.new("UICorner")
    ToggleCorner.CornerRadius = UDim.new(0, 4)
    ToggleCorner.Parent = Toggle
    
    local state = defaultVal
    Toggle.MouseButton1Click:Connect(function()
        state = not state
        Toggle.BackgroundColor3 = state and Theme.toggleOn or Theme.toggleOff
        Toggle.Text = state and "ON" or "OFF"
        callback(state)
    end)
end

local function createPanelSlider(panel, name, min, max, default, callback)
    local Row = Instance.new("Frame")
    Row.Size = UDim2.new(1, -4, 0, 50)
    Row.BackgroundColor3 = Theme.panel
    Row.BackgroundTransparency = 0.3
    Row.BorderSizePixel = 1
    Row.BorderColor3 = Theme.border
    Row.ZIndex = 2
    Row.Parent = panel
    
    local RowCorner = Instance.new("UICorner")
    RowCorner.CornerRadius = UDim.new(0, 8)
    RowCorner.Parent = Row
    
    local Label = Instance.new("TextLabel")
    Label.Size = UDim2.new(0.5, 0, 0.5, 0)
    Label.Position = UDim2.new(0, 14, 0, 2)
    Label.BackgroundTransparency = 1
    Label.Text = name
    Label.TextColor3 = Theme.text
    Label.TextSize = 12
    Label.Font = Enum.Font.SourceSansSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.ZIndex = 3
    Label.Parent = Row
    
    local ValueLabel = Instance.new("TextLabel")
    ValueLabel.Size = UDim2.new(0.35, 0, 0.5, 0)
    ValueLabel.Position = UDim2.new(0.65, 0, 0, 2)
    ValueLabel.BackgroundTransparency = 1
    ValueLabel.Text = tostring(default)
    ValueLabel.TextColor3 = Theme.accent2
    ValueLabel.TextSize = 13
    ValueLabel.Font = Enum.Font.SourceSansBold
    ValueLabel.TextXAlignment = Enum.TextXAlignment.Right
    ValueLabel.ZIndex = 3
    ValueLabel.Parent = Row
    
    local Slider = Instance.new("Frame")
    Slider.Size = UDim2.new(0.88, 0, 0.22, 0)
    Slider.Position = UDim2.new(0.06, 0, 0.6, 0)
    Slider.BackgroundColor3 = Theme.toggleOff
    Slider.BackgroundTransparency = 0.3
    Slider.BorderSizePixel = 0
    Slider.ZIndex = 2
    Slider.Parent = Row
    local SliderCorner = Instance.new("UICorner")
    SliderCorner.CornerRadius = UDim.new(0, 4)
    SliderCorner.Parent = Slider
    
    local Fill = Instance.new("Frame")
    Fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
    Fill.BackgroundColor3 = Theme.accent
    Fill.BorderSizePixel = 0
    Fill.ZIndex = 3
    Fill.Parent = Slider
    local FillCorner = Instance.new("UICorner")
    FillCorner.CornerRadius = UDim.new(0, 4)
    FillCorner.Parent = Fill
    
    local val = default
    Slider.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            local x = (input.Position.X - Slider.AbsolutePosition.X) / Slider.AbsoluteSize.X
            val = math.floor((min + (max - min) * math.clamp(x, 0, 1)) * 10) / 10
            Fill.Size = UDim2.new(math.clamp(x, 0, 1), 0, 1, 0)
            ValueLabel.Text = tostring(val)
            callback(val)
        end
    end)
end

local function createPanelDropdown(panel, name, options, default, callback)
    local Row = Instance.new("Frame")
    Row.Size = UDim2.new(1, -4, 0, 38)
    Row.BackgroundColor3 = Theme.panel
    Row.BackgroundTransparency = 0.3
    Row.BorderSizePixel = 1
    Row.BorderColor3 = Theme.border
    Row.ZIndex = 2
    Row.Parent = panel
    
    local RowCorner = Instance.new("UICorner")
    RowCorner.CornerRadius = UDim.new(0, 8)
    RowCorner.Parent = Row
    
    local Label = Instance.new("TextLabel")
    Label.Size = UDim2.new(0.45, 0, 1, 0)
    Label.Position = UDim2.new(0, 14, 0, 0)
    Label.BackgroundTransparency = 1
    Label.Text = name
    Label.TextColor3 = Theme.text
    Label.TextSize = 12
    Label.Font = Enum.Font.SourceSansSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.ZIndex = 3
    Label.Parent = Row
    
    local Dropdown = Instance.new("TextButton")
    Dropdown.Size = UDim2.new(0.4, 0, 0.7, 0)
    Dropdown.Position = UDim2.new(0.5, 0, 0.15, 0)
    Dropdown.BackgroundColor3 = Theme.panel
    Dropdown.BackgroundTransparency = 0.4
    Dropdown.BorderSizePixel = 1
    Dropdown.BorderColor3 = Theme.border
    Dropdown.Text = default
    Dropdown.TextColor3 = Theme.text
    Dropdown.TextSize = 11
    Dropdown.Font = Enum.Font.SourceSansBold
    Dropdown.ZIndex = 3
    Dropdown.Parent = Row
    local DropCorner = Instance.new("UICorner")
    DropCorner.CornerRadius = UDim.new(0, 4)
    DropCorner.Parent = Dropdown
    
    local index = 1
    for i, opt in ipairs(options) do
        if opt == default then index = i end
    end
    
    Dropdown.MouseButton1Click:Connect(function()
        index = index % #options + 1
        local val = options[index]
        Dropdown.Text = val
        callback(val)
    end)
end

-- ===== BUILD PANELS =====

-- ESP Panel
local ESPPanel = createPanel("ESP")
createPanelSection(ESPPanel, "ESP Settings")
createPanelToggle(ESPPanel, "Enable ESP", Config.ESP_Enabled, function(v) Config.ESP_Enabled = v end)
createPanelToggle(ESPPanel, "Boxes", Config.Boxes, function(v) Config.Boxes = v end)
createPanelDropdown(ESPPanel, "Box Type", {"Corner", "Full", "Glow", "Filled"}, Config.BoxType, function(v)
    Config.BoxType = v
    rebuildAllESP()
end)
createPanelToggle(ESPPanel, "Tracers", Config.Tracers, function(v) Config.Tracers = v end)
createPanelToggle(ESPPanel, "Snaplines", Config.Snaplines, function(v) Config.Snaplines = v end)
createPanelToggle(ESPPanel, "Names", Config.Names, function(v) Config.Names = v end)
createPanelToggle(ESPPanel, "Health Bar", Config.HealthBar, function(v) Config.HealthBar = v end)
createPanelDropdown(ESPPanel, "Health Type", {"Vertical", "Horizontal", "Both"}, Config.HealthBarType, function(v)
    Config.HealthBarType = v
end)
createPanelToggle(ESPPanel, "Distance", Config.Distance, function(v) Config.Distance = v end)
createPanelToggle(ESPPanel, "Head Dot", Config.HeadDot, function(v) Config.HeadDot = v end)
createPanelToggle(ESPPanel, "Team Check", Config.TeamCheck, function(v) Config.TeamCheck = v end)

-- Aimbot Panel
local AimbotPanel = createPanel("Aimbot")
createPanelSection(AimbotPanel, "Aimbot Settings")
createPanelToggle(AimbotPanel, "Enable Aimbot", Config.Aimbot_Enabled, function(v) Config.Aimbot_Enabled = v end)
createPanelToggle(AimbotPanel, "Show FOV", Config.Show_FOV, function(v) Config.Show_FOV = v end)
createPanelToggle(AimbotPanel, "Team Check", Config.TeamCheck_Aimbot, function(v) Config.TeamCheck_Aimbot = v end)
createPanelToggle(AimbotPanel, "Visible Check", Config.Aimbot_VisibleCheck, function(v) Config.Aimbot_VisibleCheck = v end)
createPanelToggle(AimbotPanel, "Ignore Cloaked", Config.Aimbot_IgnoreCloaked, function(v) Config.Aimbot_IgnoreCloaked = v end)
createPanelSlider(AimbotPanel, "FOV Radius", 30, 400, Config.Aimbot_FOV, function(v) Config.Aimbot_FOV = v end)
createPanelSlider(AimbotPanel, "Smoothness", 0.02, 0.5, Config.Aimbot_Smoothness, function(v) Config.Aimbot_Smoothness = v end)
createPanelSlider(AimbotPanel, "Prediction", 0, 0.8, Config.Aimbot_Prediction, function(v) Config.Aimbot_Prediction = v end)
createPanelSlider(AimbotPanel, "Hit Chance", 0, 100, Config.Aimbot_HitChance, function(v) Config.Aimbot_HitChance = v end)
createPanelSlider(AimbotPanel, "Recoil Comp", 0, 1, Config.Aimbot_RecoilComp, function(v) Config.Aimbot_RecoilComp = v end)

-- Visuals Panel
local VisualsPanel = createPanel("Visuals")
createPanelSection(VisualsPanel, "Visual Settings")
createPanelToggle(VisualsPanel, "Crosshair", Config.Crosshair, function(v) Config.Crosshair = v end)
createPanelSlider(VisualsPanel, "Crosshair Size", 5, 50, Config.CrosshairSize, function(v) Config.CrosshairSize = v end)
createPanelSlider(VisualsPanel, "Crosshair Thickness", 1, 5, Config.CrosshairThickness, function(v) 
    Config.CrosshairThickness = v
    CrosshairH.Thickness = v
    CrosshairV.Thickness = v
end)
createPanelToggle(VisualsPanel, "Watermark", Config.Watermark, function(v) Config.Watermark = v end)
createPanelToggle(VisualsPanel, "Show FPS", Config.ShowFPS, function(v) Config.ShowFPS = v end)
createPanelToggle(VisualsPanel, "Show Time", Config.ShowTime, function(v) Config.ShowTime = v end)

-- Misc Panel
local MiscPanel = createPanel("Misc")
createPanelSection(MiscPanel, "Misc Settings")
createPanelDropdown(MiscPanel, "Theme", {"Dark", "Light", "Neon"}, Config.Theme, function(v)
    Config.Theme = v
    Theme = Themes[v] or Themes.Dark
    -- Update all UI elements
    MainFrame.BackgroundColor3 = Theme.bg
    MainFrame.BorderColor3 = Theme.border
    Sidebar.BackgroundColor3 = Theme.sidebar
    GlowBorder.BackgroundColor3 = Theme.glow
    SidebarTitle.TextColor3 = Theme.accent
    for name, data in pairs(SidebarButtons) do
        data.Button.BackgroundColor3 = Theme.sidebar
        data.Button.TextColor3 = data.Active and Theme.accent or Theme.textDim
    end
    for _, panel in pairs(Panels) do
        for _, child in ipairs(panel:GetChildren()) do
            if child:IsA("Frame") then
                child.BackgroundColor3 = Theme.panel
                child.BorderColor3 = Theme.border
            end
            if child:IsA("TextLabel") then
                child.TextColor3 = Theme.text
            end
        end
    end
    WatermarkText.Color = Theme.accent
end)

-- ===== UPDATE PANEL FUNCTION (IDE KELL!) =====
local function UpdatePanel(name)
    for panelName, panel in pairs(Panels) do
        panel.Visible = (panelName == name)
    end
end

-- ===== SIDEBAR GOMBOK LΓ‰TREHOZÁSA =====
local function createSidebarButton(name, yPos)
    local Btn = Instance.new("TextButton")
    Btn.Size = UDim2.new(0.9, 0, 0, 40)
    Btn.Position = UDim2.new(0.05, 0, 0, yPos)
    Btn.BackgroundColor3 = Theme.sidebar
    Btn.BackgroundTransparency = 0.5
    Btn.Text = name
    Btn.TextColor3 = Theme.textDim
    Btn.TextSize = 14
    Btn.Font = Enum.Font.SourceSansSemibold
    Btn.TextXAlignment = Enum.TextXAlignment.Left
    Btn.ZIndex = 3
    Btn.Parent = Sidebar
    
    -- Padding
    local padding = Instance.new("UIPadding")
    padding.PaddingLeft = UDim.new(0, 15)
    padding.Parent = Btn
    
    local BtnCorner = Instance.new("UICorner")
    BtnCorner.CornerRadius = UDim.new(0, 6)
    BtnCorner.Parent = Btn
    
    -- Active indicator
    local Indicator = Instance.new("Frame")
    Indicator.Size = UDim2.new(0, 3, 1, 0)
    Indicator.BackgroundColor3 = Theme.accent
    Indicator.BorderSizePixel = 0
    Indicator.ZIndex = 4
    Indicator.Visible = false
    Indicator.Parent = Btn
    
    local data = {
        Button = Btn,
        Indicator = Indicator,
        Active = false,
    }
    
    Btn.MouseEnter:Connect(function()
        if not data.Active then
            Btn.BackgroundTransparency = 0.3
            Btn.TextColor3 = Theme.text
        end
    end)
    Btn.MouseLeave:Connect(function()
        if not data.Active then
            Btn.BackgroundTransparency = 0.5
            Btn.TextColor3 = Theme.textDim
        end
    end)
    Btn.MouseButton1Click:Connect(function()
        for _, d in pairs(SidebarButtons) do
            d.Active = false
            d.Button.BackgroundTransparency = 0.5
            d.Button.TextColor3 = Theme.textDim
            d.Indicator.Visible = false
        end
        data.Active = true
        data.Button.BackgroundTransparency = 0.15
        data.Button.TextColor3 = Theme.accent
        data.Indicator.Visible = true
        CurrentPanel = name
        UpdatePanel(name)
    end)
    
    SidebarButtons[name] = data
    return data
end

-- Gombok lΓ©trehozΓ‘sa
local yOffset = 60
for _, name in ipairs(ButtonNames) do
    createSidebarButton(name, yOffset)
    yOffset = yOffset + 46
end

-- AlapΓ©rtelmezett panel aktivΓ‘lΓ‘sa
local espData = SidebarButtons["ESP"]
if espData then
    espData.Active = true
    espData.Button.BackgroundTransparency = 0.15
    espData.Button.TextColor3 = Theme.accent
    espData.Indicator.Visible = true
end
UpdatePanel("ESP")

-- ===== KEYBIND =====
local keyConn = UserInputService.InputBegan:Connect(function(input, processed)
    if not processed and input.KeyCode == Config.MenuKey then
        MainFrame.Visible = not MainFrame.Visible
    end
end)
table.insert(Cleanups, keyConn)

-- Player tracking
local function onPlayerAdded(player)
    if player ~= LocalPlayer then createESP(player) end
end
local function onPlayerRemoving(player)
    cleanupESP(player)
end

for _, p in ipairs(Players:GetPlayers()) do
    if p ~= LocalPlayer then createESP(p) end
end

Players.PlayerAdded:Connect(onPlayerAdded)
Players.PlayerRemoving:Connect(onPlayerRemoving)

-- Cleanup
if STATE then
    STATE.onCleanup(function()
        for _, c in ipairs(Cleanups) do
            if c and c.Disconnect then c:Disconnect() end
        end
        cleanupAllESP()
        ScreenGui:Destroy()
    end)
end

print("═══════════════════════════════════════════════════════════════")
print("✦ M4RKLOSE v1.0 - Neverlose-Style Premium Cheat Menu")
print("πŸ“Œ Left sidebar navigation | Dynamic content panels")
print("🎯 ESP + Aimbot with premium visuals")
print("πŸ“Œ Right Shift to toggle menu β€’ Right Click for aimbot")
print("═══════════════════════════════════════════════════════════════")

Features & Information

πŸ› FIXED BUGS I HAD TO DEAL WITH TextXOffset error – Look, Roblox doesn't accept TextXOffset on buttons, so I killed it and used UIPadding + left alignment instead. Works now. Indicator error – I thought I was smart putting the indicator directly on the button, but buttons don't have that property... so I store it separately in a table. It works. UpdatePanel didn't exist – I was calling the function before it was defined, so I moved that crap up. Now it's where it should be. Panel switching – You thought clicking another tab would do nothing? Yeah that happened. Fixed it, all panels open now. ✨ NEW SHIT Watermark – Shows "✦ M4rkLose" on the top of your screen, plus FPS and time if you turn them on. And yes, it actually works. Sidebar button states – Each button knows if it's active or not, and if it is, it changes color and transparency. Theme switching – You can switch between Dark, Light, and Neon in the Misc tab. Not just for show, it actually changes the whole UI. 🎨 DESIGN STUFF Sidebar buttons have proper padding now, text doesn't look like crap. Active button has that colored bar on the side, just like Neverlose. Hover effects work, click effects work, everything feels smooth. Doesn't look like garbage anymore. πŸ”₯ OVERALL Everything works: ESP, Aimbot, Visuals, Misc, watermark, FPS, theme switching, panel switching, all of it. Tested, working. If it doesn't work, you probably messed something up. Version: v1.0
#killstreak#aimbot#esp#ai

Community Comments (3)

M4rkhnvdM4rkhnvdSep 6, 2026

New update coming

FujicoldFujicoldSep 7, 2026

Terribly vibe coded

Replying to @Fujicold
M4rkhnvdM4rkhnvdSep 9, 2026

@Fujicold ofc, cuz its ai

More Scripts for Killstreak Battle Royale