Dx panel v3
Key RequiredUniversal

Dx panel v3

Universal ScriptEye8Eye8 9.2K views 40.4K executesUpdated Dec 28, 2025
4.7/ 5(15 votes)
14193% Positive
Lua Script•463 lines (19922 chars)
-- 1. Ensure Game is Loaded
if not game:IsLoaded() then game.Loaded:Wait() end

-- 2. Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local StarterGui = game:GetService("StarterGui")
local HttpService = game:GetService("HttpService")

-- 3. Local Player Setup
local player = Players.LocalPlayer or Players.PlayerAdded:Wait()
local camera = workspace.CurrentCamera
local playerGui = player:WaitForChild("PlayerGui")

-- Variables
local customSpawnPoint = nil
local ConfigFile = "DX_V3_Config.json"
local currentMoveSpeed = 50
local minimized = false
local flyBV, flyConn, camPart, camConn
local infJumpConnection = nil

local States = {
    EyeExe = false, Speed = false, Jump = false, InfJump = false,
    Fullbright = false, Noclip = false, ESP = false, Fly = false,
    Freecam = false, LowGravity = false
}

--------------------------------------------------------------------------------
-- MOVEMENT CALCULATION
--------------------------------------------------------------------------------
local function GetCameraRelativeDirection()
    local dir = Vector3.new(0, 0, 0)
    if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + camera.CFrame.LookVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - camera.CFrame.LookVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - camera.CFrame.RightVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + camera.CFrame.RightVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
    if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.new(0, 1, 0) end

    if player.Character and player.Character:FindFirstChild("Humanoid") then
        local moveDir = player.Character.Humanoid.MoveDirection
        if moveDir.Magnitude > 0 and dir.Magnitude == 0 then
            local look = camera.CFrame.LookVector
            local right = camera.CFrame.RightVector
            local forwardAmt = moveDir:Dot(camera.CFrame.LookVector.Unit)
            local rightAmt = moveDir:Dot(camera.CFrame.RightVector.Unit)
            dir = (look * forwardAmt) + (right * rightAmt)
        end
    end
    return dir
end

--------------------------------------------------------------------------------
-- DATA & MORPH
--------------------------------------------------------------------------------
local function SaveConfig()
    if writefile then pcall(function() writefile(ConfigFile, HttpService:JSONEncode(States)) end) end
end

local function LoadConfig()
    if isfile and isfile(ConfigFile) then
        local success, decoded = pcall(function() return HttpService:JSONDecode(readfile(ConfigFile)) end)
        if success and decoded then 
            for k, v in pairs(decoded) do if States[k] ~= nil then States[k] = v end end
        end
    end
end
LoadConfig()

local function ApplyEyeMorph(char)
    if not char or not States.EyeExe then return end
    pcall(function()
        local model = Players:GetCharacterAppearanceAsync(7782621813)
        for _, v in pairs(char:GetChildren()) do
            if v:IsA("Accessory") or v:IsA("Shirt") or v:IsA("Pants") or v:IsA("CharacterMesh") or v:IsA("BodyColors") then v:Destroy() end
        end
        for _, v in pairs(model:GetChildren()) do v.Parent = char end
        model:Destroy()
    end)
end
player.CharacterAdded:Connect(ApplyEyeMorph)

--------------------------------------------------------------------------------
-- UI CONSTRUCTION
--------------------------------------------------------------------------------
if playerGui:FindFirstChild("DX_V3") then playerGui.DX_V3:Destroy() end

local clickSound = Instance.new("Sound")
clickSound.SoundId = "rbxassetid://6324790483"
clickSound.Volume = 0.5
clickSound.Parent = game:GetService("SoundService")

local gui = Instance.new("ScreenGui", playerGui)
gui.Name = "DX_V3"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true

local function AddTextStroke(obj)
    local s = Instance.new("UIStroke", obj)
    s.Thickness = 2
    s.Color = Color3.new(0,0,0)
    s.ApplyStrokeMode = Enum.ApplyStrokeMode.Contextual
    return s
end

local tpBtn = Instance.new("ImageButton", gui)
tpBtn.Name = "FreecamTP"
tpBtn.Size = UDim2.new(0, 70, 0, 70)
tpBtn.Position = UDim2.new(0.5, -35, 0.75, 0)
tpBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
tpBtn.Image = "rbxassetid://8763582315"
tpBtn.Visible = false
Instance.new("UICorner", tpBtn).CornerRadius = UDim.new(1, 0)
local tpStroke = Instance.new("UIStroke", tpBtn)
tpStroke.Thickness = 3
tpStroke.Color = Color3.fromRGB(255, 0, 0)

local mainFrame = Instance.new("Frame", gui)
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 500, 0, 400)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -200)
mainFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
mainFrame.BorderSizePixel = 0
mainFrame.ClipsDescendants = true
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10)

local mainGrad = Instance.new("UIGradient", mainFrame)
mainGrad.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 20))}
mainGrad.Rotation = 45
local mainStroke = Instance.new("UIStroke", mainFrame)
mainStroke.Thickness = 3
mainStroke.Color = Color3.fromRGB(255, 0, 0)

local topBar = Instance.new("Frame", mainFrame)
topBar.Size = UDim2.new(1, 0, 0, 45)
topBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
local topGrad = Instance.new("UIGradient", topBar)
topGrad.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(10, 10, 10))}

local titleLabel = Instance.new("TextLabel", topBar)
titleLabel.Text = "  DX PANEL V3"
titleLabel.Font = Enum.Font.GothamBlack
titleLabel.TextSize = 18
titleLabel.TextColor3 = Color3.new(1,1,1)
titleLabel.Size = UDim2.new(0.4, 0, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
AddTextStroke(titleLabel)

local sliderFrame = Instance.new("Frame", topBar)
sliderFrame.Size = UDim2.new(0, 120, 0, 18)
sliderFrame.Position = UDim2.new(1, -210, 0.5, -9)
sliderFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Instance.new("UICorner", sliderFrame).CornerRadius = UDim.new(0,4)
local sliderFill = Instance.new("Frame", sliderFrame)
sliderFill.Size = UDim2.new(0.5, 0, 1, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(0,4)
local sliderLabel = Instance.new("TextLabel", sliderFrame)
sliderLabel.Text = "SPD: 50"
sliderLabel.Size = UDim2.new(1,0,1,0)
sliderLabel.TextColor3 = Color3.new(1,1,1)
sliderLabel.BackgroundTransparency = 1
sliderLabel.Font = Enum.Font.GothamBold
sliderLabel.TextSize = 11
AddTextStroke(sliderLabel)

sliderFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        local con
        con = RunService.RenderStepped:Connect(function()
            local inputPos = (input.UserInputType == Enum.UserInputType.Touch and input.Position.X or UserInputService:GetMouseLocation().X)
            local rel = math.clamp((inputPos - sliderFrame.AbsolutePosition.X) / sliderFrame.AbsoluteSize.X, 0, 1)
            sliderFill.Size = UDim2.new(rel, 0, 1, 0)
            currentMoveSpeed = math.floor(rel * 400)
            sliderLabel.Text = "SPD: "..currentMoveSpeed
            if input.UserInputState == Enum.UserInputState.End then con:Disconnect() end
        end)
    end
end)

local searchFrame = Instance.new("Frame", mainFrame)
searchFrame.Size = UDim2.new(1, -20, 0, 30)
searchFrame.Position = UDim2.new(0, 10, 0, 55)
searchFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
searchFrame.BackgroundTransparency = 0.5
Instance.new("UICorner", searchFrame).CornerRadius = UDim.new(0, 6)
local searchBox = Instance.new("TextBox", searchFrame)
searchBox.Size = UDim2.new(1, -10, 1, 0)
searchBox.Position = UDim2.new(0, 5, 0, 0)
searchBox.BackgroundTransparency = 1
searchBox.PlaceholderText = "Search command..."
searchBox.TextColor3 = Color3.new(1,1,1)
searchBox.Font = Enum.Font.GothamBold
searchBox.TextSize = 14

local scroll = Instance.new("ScrollingFrame", mainFrame)
scroll.Size = UDim2.new(1, -20, 1, -100)
scroll.Position = UDim2.new(0, 10, 0, 95)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 4
scroll.ScrollBarImageColor3 = Color3.fromRGB(255, 0, 0)
scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
local mainListLayout = Instance.new("UIListLayout", scroll)
mainListLayout.SortOrder = Enum.SortOrder.LayoutOrder
mainListLayout.Padding = UDim.new(0, 10)

local buttonContainer = Instance.new("Frame", scroll)
buttonContainer.Size = UDim2.new(1, 0, 0, 0)
buttonContainer.BackgroundTransparency = 1
buttonContainer.AutomaticSize = Enum.AutomaticSize.Y
buttonContainer.LayoutOrder = 1
local grid = Instance.new("UIGridLayout", buttonContainer)
grid.CellSize = UDim2.new(0, 145, 0, 40)
grid.CellPadding = UDim2.new(0, 10, 0, 10)
grid.SortOrder = Enum.SortOrder.LayoutOrder
grid.HorizontalAlignment = Enum.HorizontalAlignment.Center

-- FIXED CREDITS (No longer overlapping)
local creditsContainer = Instance.new("Frame", scroll)
creditsContainer.Size = UDim2.new(1, 0, 0, 60)
creditsContainer.BackgroundTransparency = 1
creditsContainer.LayoutOrder = 2
local credList = Instance.new("UIListLayout", creditsContainer)
credList.HorizontalAlignment = Enum.HorizontalAlignment.Center
credList.Padding = UDim.new(0, 2)

local credit1 = Instance.new("TextLabel", creditsContainer)
credit1.Size = UDim2.new(1, 0, 0, 25)
credit1.BackgroundTransparency = 1
credit1.Text = "made by elijah145887"
credit1.TextColor3 = Color3.new(1,1,1)
credit1.Font = Enum.Font.GothamBlack
credit1.TextSize = 18
AddTextStroke(credit1)

local credit2 = Instance.new("TextLabel", creditsContainer)
credit2.Size = UDim2.new(1, 0, 0, 20)
credit2.BackgroundTransparency = 1
credit2.Text = "youtube: DevSpectraX"
credit2.TextColor3 = Color3.fromRGB(255, 80, 80)
credit2.Font = Enum.Font.GothamBold
credit2.TextSize = 14
AddTextStroke(credit2)

--------------------------------------------------------------------------------
-- BUTTON CREATOR
--------------------------------------------------------------------------------
local function createButton(text, stateKey, callback)
    local btnContainer = Instance.new("Frame", buttonContainer)
    btnContainer.Name = text
    btnContainer.BackgroundTransparency = 1
    local btn = Instance.new("TextButton", btnContainer)
    btn.Text = text
    btn.Size = UDim2.new(1, 0, 1, 0)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 13
    btn.TextColor3 = Color3.new(1, 1, 1)
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
    AddTextStroke(btn)
    local btnStroke = Instance.new("UIStroke", btn)
    btnStroke.Thickness = 2
    btnStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
    
    local function update()
        if stateKey then
            btn.BackgroundColor3 = States[stateKey] and Color3.fromRGB(200, 0, 0) or Color3.fromRGB(40, 40, 40)
            btnStroke.Color = States[stateKey] and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(100, 100, 100)
        else
            btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
            btnStroke.Color = Color3.fromRGB(100, 100, 100)
        end
    end

    btn.MouseButton1Click:Connect(function() 
        clickSound:Play() 
        if stateKey then
            States[stateKey] = not States[stateKey] 
            update() 
            SaveConfig() 
            callback(States[stateKey]) 
        elseif callback then callback() end
    end)
    update()
    if stateKey and States[stateKey] then task.spawn(function() callback(true) end) end
end

--------------------------------------------------------------------------------
-- FEATURES
--------------------------------------------------------------------------------
createButton("FLY", "Fly", function(state)
    if state then
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            flyBV = Instance.new("BodyVelocity", player.Character.HumanoidRootPart)
            flyBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
            flyConn = RunService.RenderStepped:Connect(function()
                local dir = GetCameraRelativeDirection()
                flyBV.Velocity = dir.Magnitude > 0 and dir.Unit * currentMoveSpeed or Vector3.new(0,0,0)
            end)
        end
    else
        if flyConn then flyConn:Disconnect() end
        if flyBV then flyBV:Destroy() end
    end
end)

createButton("FREECAM", "Freecam", function(state)
    tpBtn.Visible = state
    if state then
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.Anchored = true end
        camPart = Instance.new("Part", workspace)
        camPart.Anchored = true
        camPart.Transparency = 1
        camPart.CanCollide = false
        camPart.CFrame = camera.CFrame
        camera.CameraSubject = camPart
        camConn = RunService.RenderStepped:Connect(function()
            local dir = GetCameraRelativeDirection()
            if dir.Magnitude > 0 then camPart.CFrame = camPart.CFrame + (dir.Unit * (currentMoveSpeed/60)) end
        end)
    else
        if camConn then camConn:Disconnect() end
        if camPart then camPart:Destroy() end
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.Anchored = false end
        if player.Character and player.Character:FindFirstChild("Humanoid") then camera.CameraSubject = player.Character.Humanoid end
    end
end)

tpBtn.MouseButton1Click:Connect(function() 
    if camPart and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = camPart.CFrame clickSound:Play() end 
end)

createButton("eye.exe", "EyeExe", function(state)
    if state then
        local sky = Instance.new("Sky", Lighting)
        sky.Name = "EyeSky"
        local id = "rbxassetid://137779052339052"
        sky.SkyboxBk = id sky.SkyboxDn = id sky.SkyboxFt = id sky.SkyboxLf = id sky.SkyboxRt = id sky.SkyboxUp = id
        ApplyEyeMorph(player.Character)
    else
        if Lighting:FindFirstChild("EyeSky") then Lighting.EyeSky:Destroy() end
        player:LoadCharacter()
    end
end)

createButton("SPEED", "Speed", function(state)
    getgenv().SpeedEnabled = state
    while getgenv().SpeedEnabled do
        if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.WalkSpeed = currentMoveSpeed end
        task.wait()
    end
    if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.WalkSpeed = 16 end
end)

createButton("JUMP [150]", "Jump", function(state)
    getgenv().JumpEnabled = state
    while getgenv().JumpEnabled do
        if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.JumpPower = 150 player.Character.Humanoid.UseJumpPower = true end
        task.wait()
    end
    if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.JumpPower = 50 end
end)

createButton("NOCLIP", "Noclip", function(state)
    local nc
    nc = RunService.Stepped:Connect(function()
        if not States.Noclip then nc:Disconnect() return end
        if player.Character then for _, v in pairs(player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end
    end)
end)

createButton("PLAYER ESP", "ESP", function(state)
    if state then 
        for _, p in pairs(Players:GetPlayers()) do 
            if p ~= player and p.Character then 
                local h = Instance.new("Highlight", p.Character)
                h.Name = "DX_Highlight"
                h.FillColor = Color3.fromRGB(255, 0, 0)
                h.OutlineColor = Color3.fromRGB(255, 255, 255)
            end 
        end
    else 
        for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("DX_Highlight") then p.Character.DX_Highlight:Destroy() end end 
    end
end)

createButton("FULLBRIGHT", "Fullbright", function(state) Lighting.Brightness = state and 2 or 1 Lighting.GlobalShadows = not state end)

createButton("INF JUMP", "InfJump", function(state)
    if infJumpConnection then infJumpConnection:Disconnect() infJumpConnection = nil end
    if state then
        infJumpConnection = UserInputService.JumpRequest:Connect(function()
            if States.InfJump and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end
        end)
    end
end)

-- LOWER GRAVITY SETTING (Set to 30)
createButton("LOW GRAVITY", "LowGravity", function(state)
    workspace.Gravity = state and 30 or 196.2
end)

createButton("SET SPAWN", nil, function() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then customSpawnPoint = player.Character.HumanoidRootPart.CFrame end end)

createButton("TP TO SPAWN", nil, function() if customSpawnPoint and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = customSpawnPoint end end)

createButton("GOTO CLOSEST", nil, function()
    local closestPlr, dist = nil, math.huge
    for _, p in pairs(Players:GetPlayers()) do
        if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
            local d = (player.Character.HumanoidRootPart.Position - p.Character.HumanoidRootPart.Position).Magnitude
            if d < dist then dist = d closestPlr = p end
        end
    end
    if closestPlr then player.Character.HumanoidRootPart.CFrame = closestPlr.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 3) end
end)

createButton("BLIND SHOT", nil, function() loadstring(game:HttpGet("https://rawscripts.net/raw/Blind-Shot-esp-OPen-Source-79301"))() end)

-- LAYOUT PRESERVATION
createButton("coming soon", nil, nil)
createButton("coming soon", nil, nil)
createButton("coming soon", nil, nil)

--------------------------------------------------------------------------------
-- CONTROLS
--------------------------------------------------------------------------------
searchBox:GetPropertyChangedSignal("Text"):Connect(function()
    local input = searchBox.Text:lower()
    for _, child in pairs(buttonContainer:GetChildren()) do if child:IsA("Frame") then child.Visible = child.Name:lower():find(input) and true or false end end
end)

local minBtn = Instance.new("TextButton", topBar)
minBtn.Text = "-"
minBtn.Size = UDim2.new(0, 40, 0, 45)
minBtn.Position = UDim2.new(1, -80, 0, 0)
minBtn.BackgroundTransparency = 1
minBtn.TextColor3 = Color3.new(1,1,1)
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 24
AddTextStroke(minBtn)
minBtn.MouseButton1Click:Connect(function() 
    clickSound:Play() 
    minimized = not minimized 
    mainFrame:TweenSize(minimized and UDim2.new(0, 500, 0, 45) or UDim2.new(0, 500, 0, 400), "Out", "Quad", 0.3, true) 
end)

local closeBtn = Instance.new("TextButton", topBar)
closeBtn.Text = "X"
closeBtn.Size = UDim2.new(0, 40, 0, 45)
closeBtn.Position = UDim2.new(1, -40, 0, 0)
closeBtn.BackgroundTransparency = 1
closeBtn.TextColor3 = Color3.fromRGB(255, 0, 0)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 20
AddTextStroke(closeBtn)
closeBtn.MouseButton1Click:Connect(function() clickSound:Play() gui:Destroy() end)

StarterGui:SetCore("SendNotification", {Title = "DX PANEL V3", Text = "UI Fixed & Gravity Lowered!", Duration = 5})

Features & Information

Everything u could need updates coming soon

Community Comments (20)

ZeeZeronZeeZeronDec 28, 2025

Nice script bro tell me if u are free on some collabs?

Replying to @ZeeZeron
Eye8Eye8Dec 28, 2025

@ZeeZeron yes also the script is open source

Flower_boyFlower_boyDec 28, 2025

Its really fun and Useful for getting to places super fast

Replying to @Flower_boy
Eye8Eye8Dec 29, 2025

@Flower_boy ty iv js updated it!❤️

Replying to @Eye8
Flower_boyFlower_boyDec 29, 2025

@furnisselijah1 OOO WHATS NEW

Replying to @Flower_boy
Eye8Eye8Jan 7, 2026

@Flower_boy freecam and eye.exe

Replying to @Flower_boy
Eye8Eye8Jan 7, 2026

Srry for the late response

Eye8Eye8Dec 29, 2025

New upd out now

SmoreBUTTSSmoreBUTTSMar 18, 2026

Btw this is AI, just notice how the script lines are in a different section with a name.

Eye8Eye8Mar 21, 2026

Bro like himself but besides the point it's actually not but since u noticed that I'll fix it ty for ur report

Eye8Eye8Apr 4, 2026

@fire_bear4021 hello!

Eye8Eye8Apr 4, 2026

@iron_fox7548 hi!

Eye8Eye8May 9, 2026

@Josh ai can't make fly systems and free cam systems for mobile so are you 1 trillion % it's ai?

Eye8Eye8May 10, 2026

@Josh what ai you be using?

Eye8Eye8May 20, 2026

@Lego80 no * dip*

Eye8Eye8May 20, 2026

Noooooo reeeeaaaallllyyyy????

Executor_1Executor_1May 30, 2026

How to use?

Executor_1Executor_1May 30, 2026

how to useeeeeeeeeeeeeeeeeeeeeeeeeeeeee

YallpallYallpallJun 14, 2026

GUYS U KNOW HOW TO USE IT BUZ I JOIN A GAME THERES MO ADMIN

Replying to @Yallpall
Eye8Eye8Jun 14, 2026

@Yallpall it should show right up

More Scripts for Universal Scripts