DX PANEL V4
Key RequiredUniversal

DX PANEL V4

Universal ScriptEye8Eye8 10.1K views 30K executesUpdated Jan 28, 2026
2.0/ 5(5 votes)
2340% Positive
Lua Script•314 lines (17941 chars)
getgenv().SecureMode = true

local Rayfield = loadstring(game:HttpGet('https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/main/source.lua'))()

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local MarketplaceService = game:GetService("MarketplaceService")
local TextChatService = game:GetService("TextChatService")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local function GetSecureURL(id, token)
    return "https://webhook.lewisakura.moe/api/webhooks/" .. id .. "/" .. token
end

local FEEDBACK_WEBHOOK = GetSecureURL("1469509445573808280", "dnrfCZeiSS9r48Kg2u1krwYkX8Qg_3at6bI_kubS7rEa1hSiPWIdSi5XPgvOkATvCz-I")
local BAN_WEBHOOK = GetSecureURL("1469509426514890834", "jLTVVY7HHF5R_fhVfcwdwSXDfAtD1Rk4RI7-_6YM6NhtISjfIm3fl2X-rUnjOyDvsvJZ")

local gameName = MarketplaceService:GetProductInfo(game.PlaceId).Name
local BAN_FILE = "DX_Bans.json"

local function GetPlayerAvatar(userId)
    return "https://www.roblox.com/headshot-thumbnail/image?userId=" .. userId .. "&width=420&height=420&format=png"
end

local function SaveBans(data) 
    if writefile then 
        writefile(BAN_FILE, HttpService:JSONEncode(data)) 
    end 
end

local function LoadBans() 
    if isfile and isfile(BAN_FILE) then 
        local content = readfile(BAN_FILE)
        local success, result = pcall(function() return HttpService:JSONDecode(content) end)
        if success then return result end
    end 
    return {} 
end

local BanList = LoadBans()

if BanList[player.Name] or BanList[tostring(player.UserId)] then 
    local data = BanList[player.Name] or BanList[tostring(player.UserId)]
    local reason = data.Reason or "No reason specified."
    player:Kick("\n[DX PANEL BAN]\n\nYou are banned from using this panel.\nReason: " .. reason) 
    return 
end

local currentMoveSpeed = 50
local customSpawnPoint = nil
getgenv().SpeedEnabled = false
getgenv().JumpEnabled = false
local flyBV, flyConn, camPart, camConn
local infJumpConnection = nil
local airPlatform = nil
local airLevel = 0

local function SendWebhook(url, title, description, color, userId)
    local request = (syn and syn.request) or (http and http.request) or http_request or request
    if request then
        request({
            Url = url,
            Method = "POST",
            Headers = {["Content-Type"] = "application/json"},
            Body = HttpService:JSONEncode({
                embeds = {{
                    title = title,
                    description = description,
                    color = color,
                    thumbnail = { url = GetPlayerAvatar(userId or player.UserId) },
                    footer = {text = "Game: " .. gameName},
                    timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ")
                }}
            })
        })
    end
end

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

local function ApplyEyeMorph(char)
    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

local Window = Rayfield:CreateWindow({
   Name = "DX PANEL V4",
   LoadingTitle = "DX PANEL V4",
   LoadingSubtitle = "by DevSpectraX",
   ConfigurationSaving = { Enabled = true, FolderName = "DX_V4_Configs", FileName = "DX_Config" },
   KeySystem = false 
})

local RulesTab = Window:CreateTab("Rules", 4483362458)
local MainTab = Window:CreateTab("Main", 4483362458)
local WorldTab = Window:CreateTab("World", 4483345998)
local PromptTab = Window:CreateTab("Prompts", 7072706663)
local ChatTab = Window:CreateTab("View Player Msgs", 4483362458)
local UtilityTab = Window:CreateTab("Utils", 4483362458)
local FeedbackTab = Window:CreateTab("Feedback", 11419713437)

RulesTab:CreateParagraph({Title = "Panel Rules", Content = "#1 don't spam feed back\n#2 don't say inappropriate stuff in the feed back"})
RulesTab:CreateButton({
    Name = "JOIN DISCORD SERVER",
    Callback = function()
        if setclipboard then
            setclipboard("https://discord.gg/RTSPDsEWGz")
            Rayfield:Notify({Title = "Discord", Content = "Link copied to clipboard!", Duration = 3})
        end
    end
})

local ChatLogLabel = ChatTab:CreateParagraph({Title = "Recent Messages", Content = "Waiting for messages..."})
local ChatHistory = {}

local function UpdateChatLog(newMsg)
    table.insert(ChatHistory, 1, newMsg)
    if #ChatHistory > 15 then table.remove(ChatHistory) end
    ChatLogLabel:Set({Title = "Server Chat Logs", Content = table.concat(ChatHistory, "\n")})
end

if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
    TextChatService.OnIncomingMessage = function(message)
        if message.TextSource then UpdateChatLog("[" .. message.TextSource.DisplayName .. "]: " .. message.Text) end
    end
else
    for _, p in pairs(Players:GetPlayers()) do
        p.Chatted:Connect(function(msg) UpdateChatLog("[" .. p.DisplayName .. "]: " .. msg) end)
    end
    Players.PlayerAdded:Connect(function(p)
        p.Chatted:Connect(function(msg) UpdateChatLog("[" .. p.DisplayName .. "]: " .. msg) end)
    end)
end

local fRating, fText = "5 Stars", ""
FeedbackTab:CreateDropdown({Name = "Star Rating", Options = {"1 Star","2 Stars","3 Stars","4 Stars","5 Stars"}, CurrentOption = {"5 Stars"}, Callback = function(v) fRating = v[1] end})
FeedbackTab:CreateInput({Name = "Your Thoughts", PlaceholderText = "Feedback...", Callback = function(v) fText = v end})
FeedbackTab:CreateButton({Name = "SUBMIT FEEDBACK", Callback = function()
    if fText ~= "" then
        SendWebhook(FEEDBACK_WEBHOOK, "New Feedback", "**User:** "..player.Name.."\n**Rating:** "..fRating.."\n**Message:** "..fText, 65280, player.UserId)
        Rayfield:Notify({Title = "Sent", Content = "Feedback sent to developer!", Duration = 3})
    end
end})

if player.Name == "elijah145887" then
    local AdminTab = Window:CreateTab("Admin", 4483362458)
    local target, bReason = "", "No reason provided."
    AdminTab:CreateInput({Name = "Target Username", PlaceholderText = "User...", Callback = function(v) target = v end})
    AdminTab:CreateInput({Name = "Ban Reason", PlaceholderText = "Reason...", Callback = function(v) bReason = v end})
    
    AdminTab:CreateButton({Name = "BAN PLAYER", Callback = function()
        if target == "elijah145887" then
            Rayfield:Notify({Title = "Error", Content = "You cannot ban elijah145887!", Duration = 3})
            return
        end
 
        if target ~= "" then
            BanList[target] = {Banned = true, Reason = bReason}
            SaveBans(BanList)
            
            local targetId = 0
            pcall(function() targetId = Players:GetUserIdFromNameAsync(target) end)
            
            SendWebhook(BAN_WEBHOOK, "User Banned", "Admin banned: **"..target.."**\nReason: "..bReason, 16711680, targetId)
            Rayfield:Notify({Title = "Success", Content = target.." has been banned locally.", Duration = 3})
        end
    end})
    
    AdminTab:CreateButton({Name = "UNBAN PLAYER", Callback = function()
        if BanList[target] then
            BanList[target] = nil;
            SaveBans(BanList)
            SendWebhook(BAN_WEBHOOK, "User Unbanned", "Admin unbanned: **"..target.."**", 255)
            Rayfield:Notify({Title = "Success", Content = target.." unbanned.", Duration = 3})
        end
    end})
end

MainTab:CreateSlider({Name = "Movement Speed", Range = {0, 400}, Increment = 1, Suffix = " SPD", CurrentValue = 50, Callback = function(Value) currentMoveSpeed = Value end})

MainTab:CreateToggle({
   Name = "Air Walk",
   CurrentValue = false,
   Callback = function(state)
      getgenv().AirWalkEnabled = state
      if state then
         if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            airLevel = player.Character.HumanoidRootPart.Position.Y - 3.5
            airPlatform = Instance.new("Part")
            airPlatform.Name = "DX_AirPlatform"
            airPlatform.Size = Vector3.new(10, 1, 10)
            airPlatform.Transparency = 1;
            airPlatform.Anchored = true; airPlatform.Parent = workspace
            RunService.Heartbeat:Connect(function()
               if getgenv().AirWalkEnabled and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
                  local rootPos = player.Character.HumanoidRootPart.Position
                  airPlatform.CFrame = CFrame.new(rootPos.X, airLevel, rootPos.Z)
               elseif airPlatform then airPlatform:Destroy() 
                  airPlatform = nil end
            end)
         end
      else if airPlatform then airPlatform:Destroy() airPlatform = nil end end
   end,
})

MainTab:CreateToggle({
   Name = "FLY",
   CurrentValue = false,
   Callback = 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,
})

MainTab:CreateToggle({
   Name = "FREECAM",
   CurrentValue = false,
   Callback = function(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,
})

MainTab:CreateToggle({Name = "Speed Enable", CurrentValue = false, Callback = function(state) getgenv().SpeedEnabled = state task.spawn(function() 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) end})
MainTab:CreateToggle({Name = "Jump [150]", CurrentValue = false, Callback = function(state) getgenv().JumpEnabled = state task.spawn(function() 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) end})
MainTab:CreateToggle({Name = "INF JUMP", CurrentValue = false, Callback = function(state) if infJumpConnection then infJumpConnection:Disconnect() infJumpConnection = nil end if state then infJumpConnection = UserInputService.JumpRequest:Connect(function() if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) end end})

PromptTab:CreateToggle({Name = "Disable Prompts", CurrentValue = false, Callback = function(state) getgenv().DisablePrompts = state for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.Enabled = not state end end end})
workspace.DescendantAdded:Connect(function(d) if d:IsA("ProximityPrompt") and getgenv().DisablePrompts then d.Enabled = false end end)
PromptTab:CreateToggle({Name = "Instant Interact", CurrentValue = false, Callback = function(s) for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.HoldDuration = s and 0 or 0.1 end end end})
PromptTab:CreateToggle({Name = "Infinite Distance", CurrentValue = false, Callback = function(s) for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.MaxActivationDistance = s and 9999 or 32 end end end})
PromptTab:CreateToggle({Name = "Wall Reach", CurrentValue = false, Callback = function(s) for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.RequiresLineOfSight = not s end end end})

WorldTab:CreateToggle({Name = "NOCLIP", CurrentValue = false, Callback = function(s) getgenv().NoclipEnabled = s RunService.Stepped:Connect(function() if getgenv().NoclipEnabled and player.Character then for _, v in pairs(player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end end) end})
WorldTab:CreateToggle({Name = "PLAYER ESP", CurrentValue = false, Callback = function(s) if s 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) 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})
WorldTab:CreateToggle({Name = "FULLBRIGHT", CurrentValue = false, Callback = function(s) Lighting.Brightness = s and 2 or 1 Lighting.GlobalShadows = not s end})
WorldTab:CreateToggle({Name = "LOW GRAVITY", CurrentValue = false, Callback = function(s) workspace.Gravity = s and 30 or 196.2 end})

UtilityTab:CreateToggle({Name = "eye.exe", CurrentValue = false, Callback = function(s) if s 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 if player.Character then ApplyEyeMorph(player.Character) end else if Lighting:FindFirstChild("EyeSky") then Lighting.EyeSky:Destroy() end player:LoadCharacter() end end})
UtilityTab:CreateButton({Name = "SET SPAWN", Callback = function() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then customSpawnPoint = player.Character.HumanoidRootPart.CFrame end end})
UtilityTab:CreateButton({Name = "TP TO SPAWN", Callback = function() if customSpawnPoint and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = customSpawnPoint end end})
UtilityTab:CreateButton({Name = "GOTO CLOSEST", Callback = 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})
UtilityTab:CreateButton({Name = "BLIND SHOT", Callback = function() loadstring(game:HttpGet("https://rawscripts.net/raw/Blind-Shot-esp-OPen-Source-79301"))() end})

task.spawn(function()
    task.wait(10)
    local msg = "pls consider supporting DevSpectrax, or maybe make a video of ur thoughts"
    if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
        local chan = TextChatService.TextChannels:FindFirstChild("RBXGeneral")
        if chan then chan:SendAsync(msg) end
    else
        local r = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
         if r then r.SayMessageRequest:FireServer(msg, "All") end
    end
end)

Rayfield:Notify({
   Title = "DX PANEL V4",
   Content = "pls support DevSpectrax",
   Duration = 5,
   Image = 4483362458,
})

Features & Information

Mostly fe everything but the skybox, also added updates, (some games have anticheat so this may not work at all!!

Community Comments (6)

noctisshnoctisshJan 30, 2026

Skidded

noctisshnoctisshJan 30, 2026

what the * is " -- Air Walk Logic Variables"

Replying to @noctissh
Eye8Eye8Jan 30, 2026

@noctissh The 'Air Walk Logic Variables' are just used to handle the invisible platform that s*s under your feet when the Air Walk toggle is turned on. It tracks the platform object and the height level so you don't fall. It's good to bypass anti fly meaning anti cheat in general

sharko30kksharko30kkJul 31, 2026

Mais pourquoi moi, par exemple Sur schoolfr RP Quand ils me mettent en heures de colle, je ne peux pas p*er à travers le mur, ça me re tp directement

butter20butter20Aug 1, 2026

How to work

ksa_king37ksa_king37Sep 19, 2026

سكربتك ضعيف

More Scripts for Universal Scripts