Scriptdude999s Superman script
Key RequiredUniversal

Scriptdude999s Superman script

Universal ScriptScriptdude999Scriptdude999 10.8K views 21K executesUpdated Nov 20, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•326 lines (11154 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

local char = player.Character or player.CharacterAdded:Wait()
local humanoid = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")

local flying = false
local speedBoost = false
local flyConnection
local flyBV, flyBG
local flySpeed = 100
local hoverAmplitude = 2
local hoverSpeed = 2
local hoverTime = 0
local laserEnabled = false
local laserLeft, laserRight, laserConnection

local function updateCharacter(newChar)
    char = newChar
    humanoid = char:WaitForChild("Humanoid")
    root = char:WaitForChild("HumanoidRootPart")
end
player.CharacterAdded:Connect(updateCharacter)

local screen = Instance.new("ScreenGui")
screen.Name = "SupermanGUI"
screen.ResetOnSpawn = false
screen.Parent = player:WaitForChild("PlayerGui")

local main = Instance.new("Frame")
main.Parent = screen
main.Position = UDim2.new(0,120,0,200)
main.BackgroundColor3 = Color3.fromRGB(0,51,160)
main.Active = true
main.Draggable = true
main.ZIndex = 2

local corner = Instance.new("UICorner", main)
corner.CornerRadius = UDim.new(0,12)
local stroke = Instance.new("UIStroke", main)
stroke.Color = Color3.fromRGB(255,0,0)
stroke.Thickness = 3

local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1,0,0,40)
title.Text = "SUPERMAN POWERS"
title.TextScaled = true
title.BackgroundTransparency = 1
title.TextColor3 = Color3.fromRGB(255,255,0)
title.ZIndex = 3

local buttonNames = {
    "Fly / Stop Flying",
    "Run as Fast as Bullet",
    "X-Ray Vision",
    "Recover",
    "Laser Eyes (NPC Only)",
    "Script Info"
}

local buttons = {}
local buttonHeight = 50
local spacing = 10
local startY = 50

main.Size = UDim2.new(0, 250, 0, startY + #buttonNames * (buttonHeight + spacing))

for i, name in ipairs(buttonNames) do
    local b = Instance.new("TextButton", main)
    b.Size = UDim2.new(1, -30, 0, buttonHeight)
    b.Position = UDim2.new(0, 15, 0, startY + (i - 1) * (buttonHeight + spacing))
    b.Text = name
    b.TextScaled = true
    b.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
    b.TextColor3 = Color3.fromRGB(255, 255, 0)
    b.BorderSizePixel = 0
    b.ZIndex = 3
    Instance.new("UICorner", b)
    buttons[name] = b
end

local flyBtn = buttons["Fly / Stop Flying"]
local speedBtn = buttons["Run as Fast as Bullet"]
local xrayBtn = buttons["X-Ray Vision"]
local recoverBtn = buttons["Recover"]
local laserBtn = buttons["Laser Eyes (NPC Only)"]
local infoBtn = buttons["Script Info"]

local toggle = Instance.new("ImageButton")
toggle.Parent = screen
toggle.Size = UDim2.new(0,70,0,70)
toggle.Position = UDim2.new(0,20,0,200)
toggle.BackgroundTransparency = 0
toggle.BackgroundColor3 = Color3.fromRGB(255,0,0)
toggle.Active = true
toggle.Draggable = true
toggle.ZIndex = 5

local label = Instance.new("TextLabel")
label.Parent = toggle
label.Size = UDim2.new(1,0,1,0)
label.Position = UDim2.new(0,0,0,0)
label.BackgroundTransparency = 1
label.Text = "Superman Abilities"
label.TextScaled = true
label.TextColor3 = Color3.fromRGB(0,0,255)
label.ZIndex = 6

toggle.MouseButton1Click:Connect(function()
    main.Visible = not main.Visible
end)

local function startFly()
    if flying then return end
    flying = true
    humanoid.PlatformStand = true

    flyBV = Instance.new("BodyVelocity")
    flyBV.MaxForce = Vector3.new(1e5,1e5,1e5)
    flyBV.Velocity = Vector3.new(0,0,0)
    flyBV.Parent = root

    flyBG = Instance.new("BodyGyro")
    flyBG.MaxTorque = Vector3.new(1e5,1e5,1e5)
    flyBG.P = 3000
    flyBG.CFrame = root.CFrame
    flyBG.Parent = root

    hoverTime = 0

    flyConnection = RunService.RenderStepped:Connect(function(dt)
        if not root or not root.Parent then return end
        local moveDir = humanoid.MoveDirection
        local camForward = workspace.CurrentCamera.CFrame.LookVector
        local forwardMag = camForward:Dot(moveDir)
        if forwardMag > 0 then
            local velocity = camForward.Unit * flySpeed * forwardMag
            flyBV.Velocity = velocity
            flyBG.CFrame = CFrame.new(root.Position, root.Position + camForward) * CFrame.Angles(math.rad(-90),0,0)
        else
            hoverTime = hoverTime + dt * hoverSpeed
            local hoverOffset = math.sin(hoverTime) * hoverAmplitude
            flyBV.Velocity = Vector3.new(0,hoverOffset,0)
            flyBG.CFrame = CFrame.new(root.Position, root.Position + camForward)
        end
    end)
end

local function stopFly()
    flying = false
    humanoid.PlatformStand = false
    if flyConnection then flyConnection:Disconnect() flyConnection = nil end
    if flyBV then
        flyBV:Destroy()
        flyBV = nil
    end
    if flyBG then flyBG:Destroy() flyBG = nil end
end

local function enableSpeed()
    speedBoost = true
    humanoid.WalkSpeed = 60
end

local function disableSpeed()
    speedBoost = false
    humanoid.WalkSpeed = 16
end

local xrayEnabled = false
local pulseTime = 0
local originalColors = {}

xrayBtn.MouseButton1Click:Connect(function()
    xrayEnabled = not xrayEnabled
    if not xrayEnabled then
        for _, obj in pairs(workspace:GetDescendants()) do
            if obj:IsA("BasePart") then
                obj.LocalTransparencyModifier = 0
                if originalColors[obj] then
                    obj.Color = originalColors[obj]
                    obj.Material = Enum.Material.Plastic
                    originalColors[obj] = nil
                end
            end
        end
    end
end)

RunService.RenderStepped:Connect(function(dt)
    if not xrayEnabled then return end
    pulseTime = pulseTime + dt * 2
    local pulse = 0.5 + 0.5 * math.sin(pulseTime)
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj:IsA("BasePart") and not obj:IsDescendantOf(char) and obj.Name ~= "HumanoidRootPart" then
            obj.LocalTransparencyModifier = 0.5
        end
        if obj:IsA("Model") and obj:FindFirstChild("Humanoid") and obj ~= char then
            for _, part in pairs(obj:GetDescendants()) do
                if part:IsA("BasePart") then
                    if not originalColors[part] then
                        originalColors[part] = part.Color
                    end
                    local redIntensity = 255 * pulse
                    part.Color = Color3.fromRGB(redIntensity, 0, 0)
                    part.Material = Enum.Material.Neon
                end
            end
        end
    end
end)

recoverBtn.MouseButton1Click:Connect(function()
    humanoid.Health = humanoid.MaxHealth
end)

laserBtn.MouseButton1Click:Connect(function()
    if laserEnabled then
        laserEnabled = false
        if laserLeft then laserLeft:Destroy() end
        if laserRight then laserRight:Destroy() end
        if laserConnection then laserConnection:Disconnect() end
        return
    end
    laserEnabled = true
    local mouse = player:GetMouse()
    laserLeft = Instance.new("Part")
    laserLeft.Size = Vector3.new(0.2,0.2,50)
    laserLeft.Anchored = true
    laserLeft.CanCollide = false
    laserLeft.BrickColor = BrickColor.new("Bright red")
    laserLeft.Material = Enum.Material.Neon
    laserLeft.Parent = workspace
    laserRight = Instance.new("Part")
    laserRight.Size = Vector3.new(0.2,0.2,50)
    laserRight.Anchored = true
    laserRight.CanCollide = false
    laserRight.BrickColor = BrickColor.new("Bright red")
    laserRight.Material = Enum.Material.Neon
    laserRight.Parent = workspace
    laserConnection = RunService.RenderStepped:Connect(function()
        if not laserEnabled or not mouse or not root then
            if laserLeft then laserLeft:Destroy() end
            if laserRight then laserRight:Destroy() end
            if laserConnection then laserConnection:Disconnect() end
            return
        end
        local head = char:FindFirstChild("Head")
        if not head then return end
        local originLeft = head.Position + Vector3.new(-0.3,0,0)
        local originRight = head.Position + Vector3.new(0.3,0,0)
        local direction = (mouse.Hit.Position - head.Position).Unit
        local distance = (mouse.Hit.Position - head.Position).Magnitude
        laserLeft.CFrame = CFrame.new(originLeft + direction * distance/2, mouse.Hit.Position)
        laserLeft.Size = Vector3.new(0.2,0.2,distance)
        laserRight.CFrame = CFrame.new(originRight + direction * distance/2, mouse.Hit.Position)
        laserRight.Size = Vector3.new(0.2,0.2,distance)
        for _, npc in pairs(workspace:GetDescendants()) do
            if npc:IsA("Model") and npc ~= char then
                local humanoids = {}
                for _, obj in pairs(npc:GetDescendants()) do
                    if obj:IsA("Humanoid") then
                        table.insert(humanoids, obj)
                    end
                end
                if #humanoids > 0 then
                    local npcRoot = npc:FindFirstChild("HumanoidRootPart") or npc:FindFirstChildWhichIsA("BasePart")
                    if npcRoot then
                        for _, origin in pairs({originLeft, originRight}) do
                            local toNpc = (npcRoot.Position - origin)
                            local proj = toNpc:Dot(direction)
                            local closest = origin + direction * proj
                            if (closest - npcRoot.Position).Magnitude < 2 then
                                for _, hum in pairs(humanoids) do
                                    hum.Health = 0
                                end
                            end
                        end
                    end
                end
            end
        end
    end)
end)

infoBtn.MouseButton1Click:Connect(function()
    local infoGui = Instance.new("ScreenGui", player.PlayerGui)
    local frame = Instance.new("Frame", infoGui)
    frame.Size = UDim2.new(0,400,0,300)
    frame.Position = UDim2.new(0.5,-200,0.5,-150)
    frame.BackgroundColor3 = Color3.fromRGB(255,0,0)
    local corner = Instance.new("UICorner", frame)
    corner.CornerRadius = UDim.new(0,12)
    local txt = Instance.new("TextLabel", frame)
    txt.Size = UDim2.new(1,0,1,0)
    txt.Text = [[Superman GUI Buttons:
Fly / Stop Flying - Toggle flying
Run as Fast as Bullet - Super speed (60)
X-Ray Vision - See through walls, highlights NPCs
Recover - Instantly restore health
Laser Eyes - Only kills certain NPCs, only visible to you
Made by ScriptDude999]]
    txt.TextColor3 = Color3.fromRGB(0,0,255)
    txt.TextScaled = true
    txt.BackgroundTransparency = 1
    local closeBtn = Instance.new("TextButton", frame)
    closeBtn.Size = UDim2.new(0,50,0,50)
    closeBtn.Position = UDim2.new(1,-60,0,10)
    closeBtn.Text = "X"
    closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
    closeBtn.TextScaled = true
    closeBtn.BackgroundColor3 = Color3.fromRGB(0,0,0)
    closeBtn.MouseButton1Click:Connect(function()
        infoGui:Destroy()
    end)
end)

flyBtn.MouseButton1Click:Connect(function()
    if flying then stopFly() else startFly() end
end)

speedBtn.MouseButton1Click:Connect(function()
    if speedBoost then disableSpeed() else enableSpeed() end
end)

Features & Information

Superman fly run faster then a bullet x ray vision... check the script info button for more info its important info

Community Comments (5)

squid_pizzasquid_pizzaNov 20, 2025

lol i like how its not just like a boring fly and esp script you become superman with flying powers and x ray vision

Replying to @squid_pizza
Scriptdude999Scriptdude999Nov 21, 2025

@squid_pizza what do you mean by that do you like it or dislike it?

Replying to @Scriptdude999
nadaanadaaDec 10, 2025

@Scriptdude999 e como se activa pasa tutorial

Replying to @Scriptdude999
idkwhatimdoing222idkwhatimdoing222Dec 13, 2025

@Scriptdude999 is this fe

vex11kvex11kApr 17, 2026

this fire bro got banned from a game because of it loll but thats algg not really the scripts fault but i like it good job man

More Scripts for Universal Scripts