Obfuscator luau by GPT5
Key RequiredUniversal

Obfuscator luau by GPT5

Universal ScriptYota_Yota_ 1.5K views 4 executesUpdated Aug 9, 2025
1.7/ 5(3 votes)
1233% Positive
Lua Script•179 lines (5121 chars)
-- Luau GUI Obfuscator (LocalScript)
-- Tempatkan di StarterPlayerScripts atau StarterGui

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

local function New(class, props)
    local o = Instance.new(class)
    for k, v in pairs(props or {}) do
        o[k] = v
    end
    return o
end

local gui = New("ScreenGui", {
    Name = "LuauObfuscatorGUI",
    Parent = pg,
    ResetOnSpawn = false
})

local frame = New("Frame", {
    Parent = gui,
    Size = UDim2.new(0, 560, 0, 380),
    Position = UDim2.new(0.5, -280, 0.5, -190),
    BackgroundColor3 = Color3.fromRGB(30, 30, 30),
    BorderSizePixel = 0
})

local title = New("TextLabel", {
    Parent = frame,
    Size = UDim2.new(1, 0, 0, 30),
    Position = UDim2.new(0, 0, 0, 0),
    Text = "Luau GUI Obfuscator",
    TextColor3 = Color3.new(1, 1, 1),
    BackgroundTransparency = 1,
    Font = Enum.Font.SourceSansBold,
    TextSize = 18
})

local input = New("TextBox", {
    Parent = frame,
    Size = UDim2.new(1, -20, 0, 150),
    Position = UDim2.new(0, 10, 0, 40),
    TextWrapped = true,
    ClearTextOnFocus = false,
    MultiLine = true,
    TextSize = 14,
    Font = Enum.Font.Code,
    Text = "-- paste kode Luau di sini"
})

local out = New("TextBox", {
    Parent = frame,
    Size = UDim2.new(1, -20, 0, 180),
    Position = UDim2.new(0, 10, 0, 200),
    TextWrapped = true,
    ClearTextOnFocus = false,
    MultiLine = true,
    TextSize = 14,
    Font = Enum.Font.Code,
    Text = ""
})

local btnObf = New("TextButton", {
    Parent = frame,
    Size = UDim2.new(0, 150, 0, 30),
    Position = UDim2.new(0, 10, 0, 160),
    Text = "Obfuscate",
    TextSize = 14,
    Font = Enum.Font.SourceSans,
    BackgroundColor3 = Color3.fromRGB(60, 60, 60),
    TextColor3 = Color3.new(1, 1, 1)
})

local btnCopy = New("TextButton", {
    Parent = frame,
    Size = UDim2.new(0, 150, 0, 30),
    Position = UDim2.new(0, 170, 0, 160),
    Text = "Copy",
    TextSize = 14,
    Font = Enum.Font.SourceSans,
    BackgroundColor3 = Color3.fromRGB(60, 60, 60),
    TextColor3 = Color3.new(1, 1, 1)
})

local lbl = New("TextLabel", {
    Parent = frame,
    Size = UDim2.new(1, -20, 0, 20),
    Position = UDim2.new(0, 10, 0, 344),
    Text = "Output sudah tanpa spasi dan komentar.",
    TextColor3 = Color3.fromRGB(180, 180, 180),
    BackgroundTransparency = 1,
    Font = Enum.Font.SourceSans,
    TextSize = 12
})

-- Encoder: char -> number (c*97+53)
local function encodeToNumbers(s)
    local t = {}
    for i = 1, #s do
        t[i] = tostring(string.byte(s, i) * 97 + 53)
    end
    return t
end

local function buildObfuscated(s)
    -- numbers table
    local nums = encodeToNumbers(s)
    local tbl = "local _X={" .. table.concat(nums, ",") .. "};"

    -- decoder: tambahkan semicolon pemisah agar aman
    local dec = "local function _d(t)local _s={}for i=1,#t do local v=t[i];local m=(v-53)/97;local c=math.floor(m+0.0000001);_s[#_s+1]=string.char(c);end;return table.concat(_s);end;"

    -- twist: tambahkan pemisah setelah setiap statement
    local twist = "local function _twist(s)local a={}for i=1,#s do a[i]=string.sub(s,i,i);end;for i=1,#a do local j=((i*13)%(#a))+1; a[i],a[j]=a[j],a[i];end;for i=#a,1,-1 do local j=((i*13)%(#a))+1; a[i],a[j]=a[j],a[i];end;return table.concat(a);end;"

    -- runner/loader: gunakan semicolon untuk memisahkan statement
    local runner = "local payload=_twist(_d(_X));local _L=(loadstring or load);local f=_L(payload);if type(f)=='function' then local P=setmetatable({},{__call=function(_,...)return f(...)end});P();end;"

    -- concat; hilangkan newline/tab saja (spasi tetap ada di string karena kita pakai semicolon)
    local full = tbl .. dec .. twist .. runner
    full = full:gsub("[\n\r\t]", "")
    return full
end

-- button logic
btnObf.MouseButton1Click:Connect(function()
    local code = input.Text or ""
    if code == "" then
        out.Text = ""
        return
    end
    local ok, chunk = pcall(function()
        return buildObfuscated(code)
    end)
    if ok then
        out.Text = chunk
    else
        out.Text = tostring(chunk)
    end
end)

btnCopy.MouseButton1Click:Connect(function()
    local txt = out.Text or ""
    pcall(function()
        setclipboard(txt)
    end)
end)

-- simple draggable
local dragging = false
local dragStart, guiStart

frame.InputBegan:Connect(function(inputObj)
    if inputObj.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = inputObj.Position
        guiStart = frame.Position
    end
end)

frame.InputChanged:Connect(function(inputObj)
    if dragging and inputObj.UserInputType == Enum.UserInputType.MouseMovement then
        local delta = inputObj.Position - dragStart
        frame.Position = UDim2.new(
            guiStart.X.Scale,
            guiStart.X.Offset + delta.X,
            guiStart.Y.Scale,
            guiStart.Y.Offset + delta.Y
        )
    end
end)

frame.InputEnded:Connect(function(inputObj)
    if inputObj.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = false
    end
end)

Features & Information

Work

Community Comments (6)

xbcq_1490xbcq_1490Aug 9, 2025

this is NOT a real obfuscator..

mjcontegamjcontegaAug 9, 2025

It can obfuscation but some executor can't load this * cater you obfuscate

velocityc0revelocityc0reAug 9, 2025

easily cracked dont use !!

zyletrophenezyletropheneAug 9, 2025

ye i can just *ing loadstring = setclipboard

2kr3kn2kr3knAug 9, 2025

Govno

6kash6kashAug 9, 2025

skids ketika Nemu ai:

More Scripts for Universal Scripts