LightningWare v2 UNFINISHED VERSION
Key Required

LightningWare v2 UNFINISHED VERSION

Evade ItzPnsdgItzPnsdg 6.2K views 32.8K executesUpdated Apr 29, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•1562 lines (50956 chars)
local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/main/dist/main.lua"))()
WindUI:SetTheme("Violet")
local Window = WindUI:CreateWindow({
    Title = "LightningWare V2 (Beta Test)",
    Icon = "sparkles",
    IconThemed = true,
    Size = UDim2.fromOffset(600, 400),
    Folder = "LightingWare",
  })
local Tabs = {}

Tabs.Main = Window:Section({
    Title = "Main",
    Icon = "zap",
    Opened = false,
})

Tabs.Customise = Window:Section({
    Title = "Appearance",
    Icon = "paintbrush",
    Opened = false,
})
local VisualsTab = Tabs.Main:Tab({ Title = "Visuals", Icon = "eye" })
local MainTab = Tabs.Main:Tab({ Title = "Actions", Icon = "star" })
local WindowTab = Tabs.Customise:Tab({ Title = "Window and File Configuration", Icon = "settings" })

local autoRespawnMethod = nil
local respawnConnection
local lastSavedPosition

local autoRespawnToggle = VisualsTab:Toggle({
    Title = "Automatic Respawn",
    Value = false,
    Callback = function(state)
        getgenv().AutoRespawnEnabled = state

        if respawnConnection then
            respawnConnection:Disconnect()
            respawnConnection = nil
        end

        if state then
            local player = game:GetService("Players").LocalPlayer

            task.defer(function()
                while not player.Character do
                    task.wait()
                end

                respawnConnection = player.CharacterAdded:Connect(function(character)
                    task.defer(function()
                        character:WaitForChild("HumanoidRootPart", 5)
                        character:WaitForChild("Humanoid", 5)

                        character:GetAttributeChangedSignal("Downed"):Connect(function()
                            if not getgenv().AutoRespawnEnabled then return end
                            if character:GetAttribute("Downed") ~= true then return end
                            if autoRespawnMethod ~= "Fake Revive" then return end

                            local hrp = character:FindFirstChild("HumanoidRootPart")
                            if hrp then
                                lastSavedPosition = hrp.Position
                            end

                            task.wait(3)

                            local start = tick()
                            repeat
                                game:GetService("ReplicatedStorage"):WaitForChild("Events", 9e9)
                                    :WaitForChild("Player", 9e9)
                                    :WaitForChild("ChangePlayerMode", 9e9)
                                    :FireServer(true)
                                task.wait(1)
                            until character:GetAttribute("Downed") ~= true or tick() - start > 1

                            local newChar
                            repeat
                                newChar = player.Character
                                task.wait()
                            until newChar and newChar:FindFirstChild("HumanoidRootPart")

                            local newHRP = newChar:FindFirstChild("HumanoidRootPart")
                            if lastSavedPosition and newHRP then
                                newHRP.CFrame = CFrame.new(lastSavedPosition)
                                task.wait(0.5)

                                local moved = (newHRP.Position - lastSavedPosition).Magnitude > 1
                                if moved then return end
                            end
                        end)
                    end)
                end)


                player.CharacterAdded:Fire(player.Character)
            end)
        end
    end
})

local respawnMethodDropdown = VisualsTab:Dropdown({
    Title = "Choose Respawn Method",
    Values = { "Random", "Fake Revive" },
    Multi = false,
    Default = "Random",
    Callback = function(value)
        autoRespawnMethod = value
    end
})


local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LightningWareTimer"
screenGui.Parent = PlayerGui
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Enabled = false -- start hidden

local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(0, 100, 0, 40)
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.fromRGB(135, 206, 250)
textLabel.TextStrokeColor3 = Color3.fromRGB(0, 191, 255)
textLabel.TextStrokeTransparency = 0
textLabel.Font = Enum.Font.GothamBlack
textLabel.TextScaled = true
textLabel.Text = "0"
textLabel.AnchorPoint = Vector2.new(0.5, 0)
textLabel.Position = UDim2.new(0.5, 0, 0, 10)
textLabel.Parent = screenGui

local statsFolder = workspace:WaitForChild("Game"):WaitForChild("Stats")

RunService.Heartbeat:Connect(function()
    if screenGui.Enabled then
        local timerValue = statsFolder:GetAttribute("Timer")
        textLabel.Text = timerValue and tostring(timerValue) or "0"
    end
end)

VisualsTab:Toggle({
    Title = "Game Timer Display",
    Value = false,
    Callback = function(state)
        screenGui.Enabled = state
    end,
})

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")


local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

local playerESPThread

VisualsTab:Toggle({
    Title = "Esp Player",
    Value = false,
    Callback = function(state)
        local Players = game:GetService("Players")
        local LocalPlayer = Players.LocalPlayer

        local function getDistance(pos)
            local char = LocalPlayer.Character
            local hrp = char and char:FindFirstChild("HumanoidRootPart")
            return hrp and (pos - hrp.Position).Magnitude or nil
        end

        local function createPlayerESP(part)
            local billboard = Instance.new("BillboardGui")
            billboard.Name = "PlayerESP"
            billboard.Adornee = part
            billboard.Size = UDim2.new(0, 180, 0, 25)
            billboard.StudsOffset = Vector3.new(0, 3.2, 0)
            billboard.AlwaysOnTop = true
            billboard.LightInfluence = 0
            billboard.Parent = part

            local label = Instance.new("TextLabel")
            label.Name = "Label"
            label.Size = UDim2.new(1, 0, 1, 0)
            label.BackgroundTransparency = 1
            label.TextStrokeTransparency = 0.25
            label.TextScaled = true
            label.RichText = true
            label.Font = Enum.Font.GothamSemibold
            label.Text = ""
            label.TextColor3 = Color3.fromRGB(100, 180, 255)
            label.Parent = billboard

            return label
        end

        local function removeAllESPs()
            local folder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
            if folder then
                for _, char in ipairs(folder:GetChildren()) do
                    if char:IsA("Model") then
                        local hrp = char:FindFirstChild("HumanoidRootPart")
                        if hrp then
                            local existing = hrp:FindFirstChild("PlayerESP")
                            if existing then
                                existing:Destroy()
                            end
                        end
                    end
                end
            end
        end

        if state then
            if playerESPThread and coroutine.status(playerESPThread) == "suspended" then
                coroutine.close(playerESPThread)
            end

            playerESPThread = coroutine.create(function()
                while true do
                    local folder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
                    if folder then
                        for _, char in ipairs(folder:GetChildren()) do
                            if char:IsA("Model") then
                                local team = char:GetAttribute("Team")
                                if team ~= "Nextbot" and char.Name ~= Players.LocalPlayer.Name then
                                    local hrp = char:FindFirstChild("HumanoidRootPart")
                                    if hrp then
                                        local espGui = hrp:FindFirstChild("PlayerESP")
                                        local label = espGui and espGui:FindFirstChild("Label")

                                        if not label then
                                            label = createPlayerESP(hrp)
                                        end

                                        if label then
                                            local dist = getDistance(hrp.Position) or 0
                                            local downed = char:GetAttribute("Downed")
                                            local downedTime = tonumber(char:GetAttribute("DownedTimeLeft")) or 0
                                            local name = char.Name

                                            local displayText
                                            local color

                                            if downed == true then
                                                color = Color3.fromRGB(255, 60, 60)
                                                displayText = string.format('%s <font size="16">(Downed %.0f)</font>', name, downedTime)
                                            elseif downed == false then
                                                color = Color3.fromRGB(100, 255, 100)
                                                displayText = string.format('%s\n%.0f studs', name, dist)
                                            else
                                                color = Color3.fromRGB(100, 180, 255)
                                                displayText = string.format('%s\n%.0f studs', name, dist)
                                            end

                                            if label.Text ~= displayText or label.TextColor3 ~= color then
                                                label.Text = displayText
                                                label.TextColor3 = color
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                    task.wait(0.5)
                end
            end)

            coroutine.resume(playerESPThread)
        else
            removeAllESPs()
            if playerESPThread and coroutine.status(playerESPThread) == "suspended" then
                coroutine.close(playerESPThread)
                playerESPThread = nil
            end
        end
    end
})

local ticketESPThread

VisualsTab:Toggle({
    Title = "Esp Ticket",
    Value = false,
    Callback = function(state)
        local Players = game:GetService("Players")
        local LocalPlayer = Players.LocalPlayer

        local function getDistance(pos)
            local char = LocalPlayer.Character
            local hrp = char and char:FindFirstChild("HumanoidRootPart")
            return hrp and (pos - hrp.Position).Magnitude or nil
        end

        local function createESP(part)
            local billboard = Instance.new("BillboardGui")
            billboard.Name = "TicketESP"
            billboard.Adornee = part
            billboard.Size = UDim2.new(0, 180, 0, 25)
            billboard.StudsOffset = Vector3.new(0, 3.2, 0)
            billboard.AlwaysOnTop = true
            billboard.LightInfluence = 0
            billboard.Parent = part

            local label = Instance.new("TextLabel")
            label.Name = "Ticket"
            label.Size = UDim2.new(1, 0, 1, 0)
            label.BackgroundTransparency = 1
            label.TextStrokeTransparency = 0.25
            label.TextScaled = true
            label.Font = Enum.Font.GothamSemibold
            label.TextColor3 = Color3.fromRGB(255, 255, 100)
            label.Text = "Ticket"
            label.Parent = billboard

            return billboard
        end

        local function removeAllTicketESP()
            local ticketFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Effects") and workspace.Game.Effects:FindFirstChild("Tickets")

            if ticketFolder then
                for _, ticketModel in ipairs(ticketFolder:GetChildren()) do
                    if ticketModel:IsA("Model") then
                        local part = ticketModel:FindFirstChildWhichIsA("BasePart")
                        if part then
                            local existing = part:FindFirstChild("TicketESP")
                            if existing then
                                existing:Destroy()
                            end
                        end
                    end
                end
            end
        end

        if state then
            if ticketESPThread and coroutine.status(ticketESPThread) == "suspended" then
                coroutine.close(ticketESPThread)
            end

            ticketESPThread = coroutine.create(function()
                while true do
                    local ticketFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Effects") and workspace.Game.Effects:FindFirstChild("Tickets")

                    if ticketFolder then
                        for _, ticketModel in ipairs(ticketFolder:GetChildren()) do
                            if ticketModel:IsA("Model") then
                                local part = ticketModel:FindFirstChildWhichIsA("BasePart")
                                if part then
                                    local billboard = part:FindFirstChild("TicketESP") or createESP(part)
                                    local label = billboard and billboard:FindFirstChild("Label")
                                    if label then
                                        local dist = getDistance(part.Position)
                                        if dist then
                                            label.Text = string.format("%s\n%.0f studs", ticketModel.Name, dist)
                                        else
                                            label.Text = ticketModel.Name
                                        end
                                    end
                                end
                            end
                        end
                    end

                    task.wait(0.5)
                end
            end)

            coroutine.resume(ticketESPThread)
        else
            removeAllTicketESP()
            if ticketESPThread and coroutine.status(ticketESPThread) == "suspended" then
                coroutine.close(ticketESPThread)
                ticketESPThread = nil
            end
        end
    end
})


local nextbotESPThread
VisualsTab:Toggle({
    Title = "Esp Nextbot",
    Value = false,
    Callback = function(state)
        local function getDistance(pos)
            local char = LocalPlayer.Character
            local hrp = char and char:FindFirstChild("HumanoidRootPart")
            return hrp and (pos - hrp.Position).Magnitude or nil
        end

        local function getESPPart(obj)
            if obj:IsA("BasePart") then
                return obj
            elseif obj:IsA("Model") then
                return obj:FindFirstChild("Root") or obj:FindFirstChild("Head") or obj:FindFirstChild("HumanoidRootPart") or obj:FindFirstChildWhichIsA("BasePart")
            end
        end

        local function lerpColor(c1, c2, t)
            return Color3.new(
                c1.R + (c2.R - c1.R) * t,
                c1.G + (c2.G - c1.G) * t,
                c1.B + (c2.B - c1.B) * t
            )
        end

        local function getColorByDistance(dist)
    if dist <= 12 then
        return Color3.fromRGB(0, 0, 0) -- black 
    elseif dist <= 60 then
        local t = (dist - 6) / 14
        return Color3.new(
            255 / 255,
            (60 + (255 - 60) * t) / 255,
            60 / 255
        ) -- red n yellow
    else
        return Color3.fromRGB(200, 100, 255) -- Purple 
    end
end

        local function createESP(part)
            local billboard = Instance.new("BillboardGui")
            billboard.Name = "NextbotESP"
            billboard.Adornee = part
            billboard.Size = UDim2.new(0, 180, 0, 25)
            billboard.StudsOffset = Vector3.new(0, 3.2, 0)
            billboard.AlwaysOnTop = true
            billboard.LightInfluence = 0
            billboard.Parent = part

            local label = Instance.new("TextLabel")
            label.Name = "Label"
            label.Size = UDim2.new(1, 0, 1, 0)
            label.BackgroundTransparency = 1
            label.TextStrokeTransparency = 0.25
            label.TextScaled = true
            label.Font = Enum.Font.GothamSemibold
            label.Text = ""
            label.TextColor3 = Color3.fromRGB(255, 255, 255)
            label.Parent = billboard

            return billboard
        end

        local function removeAllNextbotESP()
            local folder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
            if folder then
                for _, npc in ipairs(folder:GetChildren()) do
                    local part = getESPPart(npc)
                    if part then
                        local existing = part:FindFirstChild("NextbotESP")
                        if existing then
                            existing:Destroy()
                        end
                    end
                end
            end
        end

        if state then
            if nextbotESPThread and coroutine.status(nextbotESPThread) == "suspended" then
                coroutine.close(nextbotESPThread)
            end
            nextbotESPThread = coroutine.create(function()
                while true do
                    local folder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
                    if folder then
                        for _, npc in ipairs(folder:GetChildren()) do
                            if npc:GetAttribute("Team") == "Nextbot" then
                                local part = getESPPart(npc)
                                if part then
                                    local billboard = part:FindFirstChild("NextbotESP") or createESP(part)
                                    local label = billboard and billboard:FindFirstChild("Label")
                                    if label then
                                        local dist = getDistance(part.Position)
                                        if dist then
                                            label.Text = string.format("%s\n%.0f studs", npc.Name, dist)
                                            label.TextColor3 = getColorByDistance(dist)
                                        else
                                            label.Text = npc.Name
                                            label.TextColor3 = Color3.fromRGB(255, 255, 255)
                                        end
                                    end
                                end
                            end
                        end
                    end
                    task.wait(0.5)
                end
            end)
            coroutine.resume(nextbotESPThread)
        else
            removeAllNextbotESP()
            if nextbotESPThread and coroutine.status(nextbotESPThread) == "suspended" then
                coroutine.close(nextbotESPThread)
                nextbotESPThread = nil
            end
        end
    end
})

local tracerThread = nil
local tracerLines = {}

VisualsTab:Toggle({
    Title = "Tracer Downed Players",
    Value = false,
    Callback = function(state)
        local Players = game:GetService("Players")
        local LocalPlayer = Players.LocalPlayer
        local Camera = workspace.CurrentCamera

        local function cleanup()
            for _, line in ipairs(tracerLines) do
                if line and line.Remove then
                    line:Remove()
                elseif line then
                    line.Visible = false
                end
            end
            tracerLines = {}
        end

        if state then
            tracerThread = coroutine.create(function()
                while true do
                    cleanup()

                    local folder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
                    if folder then
                        for _, char in ipairs(folder:GetChildren()) do
                            if char:IsA("Model") then
                                local team = char:GetAttribute("Team")
                                local downed = char:GetAttribute("Downed")
                                if team ~= "Nextbot" and char.Name ~= LocalPlayer.Name and downed == true then
                                    local hrp = char:FindFirstChild("HumanoidRootPart")
                                    if hrp and Camera then
                                        local pos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
                                        if onScreen then
                                            local tracer = Drawing.new("Line")
                                            tracer.Color = Color3.fromRGB(255, 60, 60)
                                            tracer.Thickness = 2
                                            tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
                                            tracer.To = Vector2.new(pos.X, pos.Y)
                                            tracer.ZIndex = 1
                                            tracer.Visible = true
                                            table.insert(tracerLines, tracer)
                                        end
                                    end
                                end
                            end
                        end
                    end

                    task.wait(0.05)
                end
            end)
            coroutine.resume(tracerThread)
        else
            if tracerThread and coroutine.status(tracerThread) == "suspended" then
                coroutine.close(tracerThread)
                tracerThread = nil
            end
            cleanup()
        end
    end
})

MainTab:Section({ Title = "Modifications" })

local requiredFields = {
    Friction = true,
    AirStrafeAcceleration = true,
    JumpHeight = true,
    RunDeaccel = true,
    JumpSpeedMultiplier = true,
    JumpCap = true,
    SprintCap = true,
    WalkSpeedMultiplier = true,
    BhopEnabled = true,
    Speed = true,
    AirAcceleration = true,
    RunAccel = true,
    SprintAcceleration = true,
}

getgenv().ApplyMode = "Not Optimized"
local appliedOnce = false
local gameStatsPath = workspace.Game.Stats
local playersPath = workspace.Game.Players
local playerModelPresent = false

local currentSettings = {
    Speed = "1500",
    JumpCap = "1",
    AirStrafeAcceleration = "187"
}

local function isPlayerModelPresent()
    local player = game.Players.LocalPlayer
    if not player then return false end
    
    for _, model in pairs(playersPath:GetChildren()) do
        if model.Name == player.Name then
            return true
        end
    end
    return false
end

local function shouldApplySettings()
    if not gameStatsPath then return false end
    
    local roundStarted = gameStatsPath:GetAttribute("RoundStarted")
    local timer = gameStatsPath:GetAttribute("Timer")
    
    return roundStarted == false and timer == 3
end

local function getMatchingTables()
    local matched = {}
    for _, obj in pairs(getgc(true)) do
        if typeof(obj) == "table" then
            local ok = true
            for field in pairs(requiredFields) do
                if rawget(obj, field) == nil then
                    ok = false
                    break
                end
            end
            if ok then
                table.insert(matched, obj)
            end
        end
    end
    return matched
end

local function applyToTables(callback)
    if not isPlayerModelPresent() then
        return
    end
    
    local targets = getMatchingTables()
    
    if #targets == 0 then
        return
    end
    
    if getgenv().ApplyMode == "Optimized" then
        task.spawn(function()
            for i, tableObj in ipairs(targets) do
                if tableObj and typeof(tableObj) == "table" then
                    pcall(callback, tableObj)
                end
                
                if i % 3 == 0 then
                    task.wait()
                end
            end
        end)
    else
        for i, tableObj in ipairs(targets) do
            if tableObj and typeof(tableObj) == "table" then
                pcall(callback, tableObj)
            end
        end
    end
end

local function applyStoredSettings()
    local settings = {
        {field = "Speed", value = tonumber(currentSettings.Speed)},
        {field = "JumpCap", value = tonumber(currentSettings.JumpCap)},
        {field = "AirStrafeAcceleration", value = tonumber(currentSettings.AirStrafeAcceleration)}
    }
    
    for _, setting in ipairs(settings) do
        if setting.value and tostring(setting.value) ~= "1500" and tostring(setting.value) ~= "1" and tostring(setting.value) ~= "187" then
            applyToTables(function(obj)
                obj[setting.field] = setting.value
            end)
        end
    end
end

local function applySettingsWithDelay()
    if not shouldApplySettings() or appliedOnce then
        return
    end
    
    appliedOnce = true
    
    local settings = {
        {field = "Speed", value = tonumber(currentSettings.Speed), delay = math.random(1, 14)},
        {field = "JumpCap", value = tonumber(currentSettings.JumpCap), delay = math.random(1, 14)},
        {field = "AirStrafeAcceleration", value = tonumber(currentSettings.AirStrafeAcceleration), delay = math.random(1, 14)}
    }
    
    for _, setting in ipairs(settings) do
        if setting.value and tostring(setting.value) ~= "1500" and tostring(setting.value) ~= "1" and tostring(setting.value) ~= "187" then
            task.spawn(function()
                task.wait(setting.delay)
                applyToTables(function(obj)
                    obj[setting.field] = setting.value
                end)
            end)
        end
    end
end

local roundStartedConnection
local timerConnection

local function setupAttributeConnections()
    if roundStartedConnection then
        roundStartedConnection:Disconnect()
    end
    if timerConnection then
        timerConnection:Disconnect()
    end
    
    if gameStatsPath then
        roundStartedConnection = gameStatsPath:GetAttributeChangedSignal("RoundStarted"):Connect(function()
            local roundStarted = gameStatsPath:GetAttribute("RoundStarted")
            if roundStarted == true then
                appliedOnce = false
            end
        end)
        
        timerConnection = gameStatsPath:GetAttributeChangedSignal("Timer"):Connect(function()
            if shouldApplySettings() and not appliedOnce then
                applySettingsWithDelay()
            end
        end)
    end
end

setupAttributeConnections()

task.spawn(function()
    while true do
        task.wait(0.5)
        local currentlyPresent = isPlayerModelPresent()
        
        if currentlyPresent and not playerModelPresent then
            playerModelPresent = true
            applyStoredSettings()
        elseif not currentlyPresent and playerModelPresent then
            playerModelPresent = false
        end
    end
end)

local function createValidatedInput(config)
    return function(input)
        local val = tonumber(input)
        if not val then
            return
        end
        
        if config.min and val < config.min then
            return
        end
        
        if config.max and val > config.max then
            return
        end
        
        currentSettings[config.field] = input
        
        applyToTables(function(obj)
            obj[config.field] = val
        end)
    end
end

MainTab:Input({
    Title = "Set Speed",
    Icon = "speedometer",
    Placeholder = "Default 1500",
    Value = "1500",
    Callback = createValidatedInput({
        field = "Speed",
        min = 1450,
        max = 100008888
    })
})

MainTab:Input({
    Title = "Set Jump Cap",
    Icon = "chevrons-up",
    Placeholder = "Default 1",
    Value = "1",
    Callback = createValidatedInput({
        field = "JumpCap",
        min = 0.1,
        max = 5088888
    })
})

MainTab:Input({
    Title = "Strafe Acceleration",
    Icon = "wind",
    Placeholder = "Set Strafe Acceleration",
    Value = "187",
    Callback = createValidatedInput({
        field = "AirStrafeAcceleration",
        min = 1,
        max = 1000888888
    })
})

MainTab:Dropdown({
    Title = "Select Apply Method",
    Values = { "Not Optimized", "Optimized" },
    Multi = false,
    Default = "Not Optimized",
    Callback = function(value)
        getgenv().ApplyMode = value
    end,
})



MainTab:Section({ Title = "Automation" })
local player = game:GetService("Players").LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

getgenv().autoCarryEnabled = false
getgenv().autoReviveEnabled = false
getgenv().autoJumpEnabled = false

local function makeDraggable(frame)
	local dragging, dragInput, dragStart, startPos
	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = true
			dragStart = input.Position
			startPos = frame.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then dragging = false end
			end)
		end
	end)
	frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement then
			dragInput = input
		end
	end)
	UserInputService.InputChanged:Connect(function(input)
		if dragging and input == dragInput then
			local delta = input.Position - dragStart
			frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
		end
	end)
end

local function createToggleGui(name, varName, yOffset)
	local gui = playerGui:FindFirstChild(name.."Gui")
	if gui then gui:Destroy() end
	gui = Instance.new("ScreenGui", playerGui)
	gui.Name = name.."Gui"
	gui.IgnoreGuiInset = true
	gui.ResetOnSpawn = false
	gui.Enabled = false

	local frame = Instance.new("Frame", gui)
	frame.Size = UDim2.new(0, 190, 0, 30)
	frame.Position = UDim2.new(0.5, -95, 0.12 + yOffset, 0)
	frame.BackgroundColor3 = Color3.fromRGB(30, 50, 80)
	frame.BackgroundTransparency = 0.35
	frame.BorderSizePixel = 0
	makeDraggable(frame)

	local corner = Instance.new("UICorner", frame)
	corner.CornerRadius = UDim.new(1, 0)

	local stroke = Instance.new("UIStroke", frame)
	stroke.Color = Color3.fromRGB(100, 160, 255)
	stroke.Thickness = 2

	local label = Instance.new("TextLabel", frame)
	label.Text = name
	label.Size = UDim2.new(0.55, 0, 1, 0)
	label.Position = UDim2.new(0, 10, 0, 0)
	label.BackgroundTransparency = 1
	label.TextColor3 = Color3.fromRGB(220, 240, 255)
	label.Font = Enum.Font.Roboto
	label.TextSize = 14
	label.TextXAlignment = Enum.TextXAlignment.Left

	local toggleBtn = Instance.new("TextButton", frame)
	toggleBtn.Name = "ToggleButton"
	toggleBtn.Text = getgenv()[varName] and "On" or "Off"
	toggleBtn.Size = UDim2.new(0.3, 0, 0.75, 0)
	toggleBtn.Position = UDim2.new(0.65, 0, 0.13, 0)
	toggleBtn.BackgroundColor3 = getgenv()[varName] and Color3.fromRGB(0, 120, 80) or Color3.fromRGB(40, 40, 45)
	toggleBtn.TextColor3 = Color3.new(1, 1, 1)
	toggleBtn.Font = Enum.Font.Roboto
	toggleBtn.TextSize = 13

	local buttonCorner = Instance.new("UICorner", toggleBtn)
	buttonCorner.CornerRadius = UDim.new(1, 0)

	toggleBtn.MouseButton1Click:Connect(function()
		getgenv()[varName] = not getgenv()[varName]
		toggleBtn.Text = getgenv()[varName] and "On" or "Off"
		toggleBtn.BackgroundColor3 = getgenv()[varName] and Color3.fromRGB(0, 120, 80) or Color3.fromRGB(40, 40, 45)
	end)

	return gui
end

local carryGui, reviveGui, jumpGui

MainTab:Toggle({
	Title = "Auto Carry",
	Value = false,
	Callback = function(state)
		if not carryGui then
			carryGui = createToggleGui("Auto Carry", "autoCarryEnabled", 0.00)
		end
		carryGui.Enabled = state
	end
})
MainTab:Section({ Title = "" })
local infiniteSlideEnabled = false
local slideFrictionValue = -8

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")

local keys = {
    "Friction","AirStrafeAcceleration","JumpHeight","RunDeaccel",
    "JumpSpeedMultiplier","JumpCap","SprintCap","WalkSpeedMultiplier",
    "BhopEnabled","Speed","AirAcceleration","RunAccel","SprintAcceleration"
}

local function hasAll(tbl)
    if type(tbl) ~= "table" then return false end
    for _, k in ipairs(keys) do
        if rawget(tbl, k) == nil then return false end
    end
    return true
end

local cachedTables = nil
local plrModel = nil
local slideConnection = nil

local function getConfigTables()
    local tables = {}
    for _, obj in ipairs(getgc(true)) do
        local success, result = pcall(function()
            if hasAll(obj) then return obj end
        end)
        if success and result then
            table.insert(tables, obj)
        end
    end
    return tables
end

local function setFriction(value)
    if not cachedTables then return end
    for _, t in ipairs(cachedTables) do
        pcall(function()
            t.Friction = value
        end)
    end
end

local function updatePlayerModel()
    local GameFolder = workspace:FindFirstChild("Game")
    local PlayersFolder = GameFolder and GameFolder:FindFirstChild("Players")
    if PlayersFolder then
        plrModel = PlayersFolder:FindFirstChild(LocalPlayer.Name)
    else
        plrModel = nil
    end
end

local function onHeartbeat()
    if not plrModel then
        setFriction(5)
        return
    end

    local success, currentState = pcall(function()
        return plrModel:GetAttribute("State")
    end)

    if success and currentState then
        if currentState == "Slide" then
            pcall(function()
                plrModel:SetAttribute("State", "EmotingSlide")
            end)
        elseif currentState == "EmotingSlide" then
            setFriction(slideFrictionValue)
        else
            setFriction(5)
        end
    else
        setFriction(5)
    end
end

MainTab:Toggle({
    Title = "Infinite Slide",
    Value = false,
    Callback = function(state)
        infiniteSlideEnabled = state

        if slideConnection then
            slideConnection:Disconnect()
            slideConnection = nil
        end

        if state then
            cachedTables = getConfigTables()
            updatePlayerModel()

            slideConnection = RunService.Heartbeat:Connect(onHeartbeat)

            LocalPlayer.CharacterAdded:Connect(function()
                wait(0.1)
                updatePlayerModel()
            end)
        else
            cachedTables = nil
            plrModel = nil
            setFriction(5)
        end
    end,
})

MainTab:Input({
    Title = "Set Infinite Slide Speed (Negative Only)",
    Value = tostring(slideFrictionValue),
    Placeholder = "-8 (negative only)",
    Callback = function(text)
        local num = tonumber(text)
        if num and num < 0 then
            slideFrictionValue = num
        end
    end,
})

MainTab:Section({ Title = "" })
local player = game:GetService("Players").LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")

getgenv().autoJumpEnabled = false
getgenv().bhopMode = "Acceleration"
getgenv().bhopAccelValue = -0.1

local function makeDraggable(frame)
	local dragging, dragInput, dragStart, startPos
	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = true
			dragStart = input.Position
			startPos = frame.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then dragging = false end
			end)
		end
	end)
	frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement then
			dragInput = input
		end
	end)
	UserInputService.InputChanged:Connect(function(input)
		if dragging and input == dragInput then
			local delta = input.Position - dragStart
			frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
		end
	end)
end

local function createToggleGui(name, varName, yOffset)
	local gui = playerGui:FindFirstChild(name.."Gui")
	if gui then gui:Destroy() end
	gui = Instance.new("ScreenGui", playerGui)
	gui.Name = name.."Gui"
	gui.IgnoreGuiInset = true
	gui.ResetOnSpawn = false
	gui.Enabled = false

	local frame = Instance.new("Frame", gui)
	frame.Size = UDim2.new(0, 190, 0, 30)
	frame.Position = UDim2.new(0.5, -95, 0.12 + yOffset, 0)
	frame.BackgroundColor3 = Color3.fromRGB(30, 50, 80)
	frame.BackgroundTransparency = 0.35
	frame.BorderSizePixel = 0
	makeDraggable(frame)

	local corner = Instance.new("UICorner", frame)
	corner.CornerRadius = UDim.new(1, 0)

	local stroke = Instance.new("UIStroke", frame)
	stroke.Color = Color3.fromRGB(100, 160, 255)
	stroke.Thickness = 2

	local label = Instance.new("TextLabel", frame)
	label.Text = name
	label.Size = UDim2.new(0.55, 0, 1, 0)
	label.Position = UDim2.new(0, 10, 0, 0)
	label.BackgroundTransparency = 1
	label.TextColor3 = Color3.fromRGB(220, 240, 255)
	label.Font = Enum.Font.Roboto
	label.TextSize = 14
	label.TextXAlignment = Enum.TextXAlignment.Left

	local toggleBtn = Instance.new("TextButton", frame)
	toggleBtn.Name = "ToggleButton"
	toggleBtn.Text = getgenv()[varName] and "On" or "Off"
	toggleBtn.Size = UDim2.new(0.3, 0, 0.75, 0)
	toggleBtn.Position = UDim2.new(0.65, 0, 0.13, 0)
	toggleBtn.BackgroundColor3 = getgenv()[varName] and Color3.fromRGB(0, 120, 80) or Color3.fromRGB(40, 40, 45)
	toggleBtn.TextColor3 = Color3.new(1, 1, 1)
	toggleBtn.Font = Enum.Font.Roboto
	toggleBtn.TextSize = 13

	local buttonCorner = Instance.new("UICorner", toggleBtn)
	buttonCorner.CornerRadius = UDim.new(1, 0)

	toggleBtn.MouseButton1Click:Connect(function()
		getgenv()[varName] = not getgenv()[varName]
		toggleBtn.Text = getgenv()[varName] and "On" or "Off"
		toggleBtn.BackgroundColor3 = getgenv()[varName] and Color3.fromRGB(0, 120, 80) or Color3.fromRGB(40, 40, 45)
	end)

	return gui
end

MainTab:Toggle({
	Title = "Bhop",
	Value = false,
	Callback = function(state)
		if not jumpGui then
			jumpGui = createToggleGui("Bhop", "autoJumpEnabled", 0.12)
		end
		jumpGui.Enabled = state
	end
})

MainTab:Dropdown({
	Title = "Bhop Mode",
	Values = {"Acceleration", "No Acceleration"},
	Multi = false,
	Default = 1,
	Callback = function(value)
		getgenv().bhopMode = value
	end
})

MainTab:Input({
	Title = "Bhop Acceleration (Negative Only)",
	Placeholder = "-0.5",
	Numeric = true,
	Callback = function(value)
		if tostring(value):sub(1, 1) == "-" then
			getgenv().bhopAccelValue = tonumber(value)
		end
	end
})

task.spawn(function()
	while true do
		local friction = 5
		if getgenv().autoJumpEnabled and getgenv().bhopMode == "Acceleration" then
			friction = getgenv().bhopAccelValue or -5
		end
		if getgenv().autoJumpEnabled == false then
			friction = 5
		end

		for _, t in pairs(getgc(true)) do
			if type(t) == "table" and rawget(t, "Friction") then
				if getgenv().bhopMode == "No Acceleration" then
				else
					t.Friction = friction
				end
			end
		end
		task.wait(0.15)
	end
end)

task.spawn(function()
	while true do
		if getgenv().autoJumpEnabled and getgenv().bhopMode == "Acceleration" then
			local character = player.Character
			if character and character:FindFirstChild("Humanoid") then
				local humanoid = character.Humanoid
				if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping and humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
					humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
				end
			end
		end
		if getgenv().autoJumpEnabled and getgenv().bhopMode == "No Acceleration" then
			local character = player.Character
			if character and character:FindFirstChild("Humanoid") then
				local humanoid = character.Humanoid
				if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping and humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
					humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
				end
			end
			task.wait(0.05)
		else
			task.wait()
		end
	end
end)

task.spawn(function()
	while true do
		if getgenv().autoCarryEnabled then
			local char = player.Character
			local hrp = char and char:FindFirstChild("HumanoidRootPart")
			if hrp then
				for _, other in ipairs(game:GetService("Players"):GetPlayers()) do
					if other ~= player and other.Character and other.Character:FindFirstChild("HumanoidRootPart") then
						local dist = (hrp.Position - other.Character.HumanoidRootPart.Position).Magnitude
						if dist <= 20 then
							local args = { "Carry", [3] = other.Name }
							pcall(function()
								ReplicatedStorage:WaitForChild("Events"):WaitForChild("Character"):WaitForChild("Interact"):FireServer(unpack(args))
							end)
							task.wait(0.01)
						end
					end
				end
			end
		end
		task.wait(0.1)
	end
end)




MainTab:Section({ Title = "" })


local emoteList = {}

local success, emotesFolder = pcall(function()
    return game:GetService("ReplicatedStorage").Items.Emotes
end)

if success and typeof(emotesFolder) == "Instance" then
    for _, emote in ipairs(emotesFolder:GetChildren()) do
        if emote:IsA("ModuleScript") or emote:IsA("LocalScript") or emote:IsA("Script") then
            table.insert(emoteList, emote.Name)
        end
    end
end

table.sort(emoteList)

getgenv().SelectedEmote = nil
MainTab:Dropdown({
    Title = "Select Emote",
    Values = emoteList,
    Multi = false,
    Callback = function(option)
        getgenv().SelectedEmote = option
    end
})

getgenv().EmoteEnabled = false
MainTab:Toggle({
    Title = "Enable Emote (Hold Crouch Button)",
    Default = false,
    Callback = function(state)
        getgenv().EmoteEnabled = state
    end
})

task.spawn(function()
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    local guiPath = { "PlayerGui", "Shared", "HUD", "Mobile", "Right", "Mobile", "CrouchButton" }

    local function waitForDescendant(parent, name)
        local found = parent:FindFirstChild(name, true)
        while not found do
            parent.DescendantAdded:Wait()
            found = parent:FindFirstChild(name, true)
        end
        return found
    end

    local function connectCrouchButton()
        local gui = player:WaitForChild(guiPath[1])
        for i = 2, #guiPath do
            gui = waitForDescendant(gui, guiPath[i])
        end
        local button = gui

        local holding = false
        local validHold = false

        button.MouseButton1Down:Connect(function()
            holding = true
            validHold = true
            task.delay(0.5, function()
                if holding and validHold and getgenv().EmoteEnabled and getgenv().SelectedEmote then
                    local args = { [1] = getgenv().SelectedEmote }
                    game:GetService("ReplicatedStorage"):WaitForChild("Events", 9e9):WaitForChild("Character", 9e9):WaitForChild("Emote", 9e9):FireServer(unpack(args))
                end
            end)
        end)

        button.MouseButton1Up:Connect(function()
            holding = false
            validHold = false
        end)
    end

    while true do
        pcall(connectCrouchButton)
        task.wait(1)
    end
end)
-- dumb ass lag switch
MainTab:Section({ Title = "Utility" })

local function createLagGui()
    if lagGui then
        lagGui:Destroy()
    end

    lagGui = Instance.new("ScreenGui", playerGui)
    lagGui.Name = "LagSwitchGui"
    lagGui.IgnoreGuiInset = true
    lagGui.ResetOnSpawn = false
    lagGui.Enabled = getgenv().lagSwitchEnabled

    local frame = Instance.new("Frame", lagGui)
    frame.Size = UDim2.new(0, 190, 0, 30)
    frame.Position = UDim2.new(0.5, -95, 0.35, 0)
    frame.BackgroundColor3 = Color3.fromRGB(30, 50, 80)
    frame.BackgroundTransparency = 0.35
    frame.BorderSizePixel = 0
    makeDraggable(frame)

    local corner = Instance.new("UICorner", frame)
    corner.CornerRadius = UDim.new(1, 0)

    local stroke = Instance.new("UIStroke", frame)
    stroke.Color = Color3.fromRGB(100, 160, 255)
    stroke.Thickness = 2

    local label = Instance.new("TextLabel", frame)
    label.Text = "Lag Switch"
    label.Size = UDim2.new(0.55, 0, 1, 0)
    label.Position = UDim2.new(0, 10, 0, 0)
    label.BackgroundTransparency = 1
    label.TextColor3 = Color3.fromRGB(220, 240, 255)
    label.Font = Enum.Font.Roboto
    label.TextSize = 14
    label.TextXAlignment = Enum.TextXAlignment.Left

    lagGuiButton = Instance.new("TextButton", frame)
    lagGuiButton.Name = "ToggleButton"
    lagGuiButton.Text = "Trigger"
    lagGuiButton.Size = UDim2.new(0.3, 0, 0.75, 0)
    lagGuiButton.Position = UDim2.new(0.65, 0, 0.13, 0)
    lagGuiButton.BackgroundColor3 = Color3.fromRGB(0, 120, 80)
    lagGuiButton.TextColor3 = Color3.new(1, 1, 1)
    lagGuiButton.Font = Enum.Font.Roboto
    lagGuiButton.TextSize = 13

    local buttonCorner = Instance.new("UICorner", lagGuiButton)
    buttonCorner.CornerRadius = UDim.new(1, 0)

    lagGuiButton.MouseButton1Click:Connect(
        function()
            task.spawn(
                function()
                    local start = tick()
                    while tick() - start < (getgenv().lagDuration or 0.5) do
                        local a = math.random(1, 1000000) * math.random(1, 1000000)
                        a = a / math.random(1, 10000)
                    end
                end
            )
        end
    )
end

MainTab:Toggle(
    {
        Title = "Lag Switch",
        Icon = "zap",
        Default = false,
        Callback = function(state)
            getgenv().lagSwitchEnabled = state
            if state then
                if not lagGui then
                    createLagGui()
                else
                    lagGui.Enabled = true
                end
            else
                if lagGui then
                    lagGui.Enabled = false
                end
            end
        end
    }
)

MainTab:Input(
    {
        Title = "Lag Duration (seconds)",
        Default = tostring(getgenv().lagDuration),
        Placeholder = "Enter seconds",
        NumbersOnly = true,
        Callback = function(text)
            local n = tonumber(text)
            if n and n > 0 then
                getgenv().lagDuration = n
            end
        end
    }
)

WindowTab:Section({ Title = "Window" })
local themeValues = {}
for name, _ in pairs(WindUI:GetThemes()) do
    table.insert(themeValues, name)
end

local themeDropdown = WindowTab:Dropdown({
    Title = "Select Theme",
    Multi = false,
    AllowNone = false,
    Values = themeValues,
    Callback = function(theme)
        WindUI:SetTheme(theme)
    end
})
themeDropdown:Select(WindUI:GetCurrentTheme())

local currentBackground = "rbxassetid://1234"

local function applyBackground(value)
    -- Detect video links and auto-prefix if needed
    if value:match("^https?://") and value:match("%.webm") then
        currentBackground = "video:" .. value
    elseif value:match("^video:") or value:match("^rbxassetid://") then
        currentBackground = value
    elseif value:match("^%d+$") then
        currentBackground = "rbxassetid://" .. value
    else
        currentBackground = ""
    end

    Window:SetBackgroundImage(currentBackground)
end

local BackgroundInput = WindowTab:Input({
    Title = "Background Image/Video",
    Value = currentBackground:match("%d+") or "",
    Placeholder = "Asset ID or Video Link",
    Callback = function(input)
        applyBackground(input)
    end
})

local RecommendBackgroundDropdown = WindowTab:Dropdown({
    Title = "Recommended Backgrounds",
    Values = {
        "79199183782805",
        "85878831310179",
        "easter egg ig >:3"
    },
    Default = currentBackground:match("%d+"),
    Callback = function(option)
        applyBackground(option)
        local tb = BackgroundInput._TextBox
        if tb then
            if option:match("^rbxassetid://") then
                tb.Text = option:match("%d+")
            elseif option:match("^video:") then
                tb.Text = option:gsub("^video:", "")
            else
                tb.Text = option
            end
        end
    end
})

local RemoveBackgroundButton = WindowTab:Button({
    Title = "Remove Background",
    Callback = function()
        applyBackground("")
        local tb = BackgroundInput._TextBox
        if tb then tb.Text = "" end
        RecommendBackgroundDropdown:Select(nil)
    end
})

local ToggleTransparency = WindowTab:Toggle({
    Title = "Toggle Window Transparency",
    Callback = function(e)
        Window:ToggleTransparency(e)
    end,
    Value = WindUI:GetTransparency()
})

local ConfigManager = Window.ConfigManager
local myConfig = ConfigManager:CreateConfig("LightingWareConfig")

myConfig:Register("speed", speedInput)
myConfig:Register("jumpCap", jumpCapInput)
myConfig:Register("strafe", strafeInput)
myConfig:Register("autoCarry", autoCarryToggle)
myConfig:Register("autoRevive", autoReviveToggle)
myConfig:Register("autoJump", autoJumpToggle)
myConfig:Register("background", BackgroundInput)
myConfig:Register("theme", themeDropdown)
myConfig:Register("transparency", ToggleTransparency)

WindowTab:Section({ Title = "Configuration" })

WindowTab:Button({
    Title = "Save Configuration",
    Callback = function()
        myConfig:Save()
    end
})

WindowTab:Button({
    Title = "Load Configuration",
    Callback = function()
        myConfig:Load()
    end
})

Window:SelectTab(1)

Features & Information

Open source And laggy

Community Comments (1)

Huuuuuuii

More Scripts for Evade