--[[ PHANTOM DECOMPILER v10 By Phantom Studios discord.gg/bbffN2zugm Cross-Executor: Delta · Synapse X/V3 · KRNL · Fluxus · Arceus X · Hydrogen · Solara · Wave ]] local Players = game:GetService("Players") local TS = game:GetService("TweenService") local LP = Players.LocalPlayer local PG = LP:WaitForChild("PlayerGui") local KEYS = {"PHANTOM-5278-8262-8272","PHANTOM-9272-8282-8291","PHANTOM-0163-9274-9272","5833"} local DISCORD = "discord.gg/bbffN2zugm" local VERSION = "v10" local STUDIO = "Phantom Studios" local SSI_URL = "https://raw.githubusercontent.com/luau/UniversalSynSaveInstance/main/saveinstance.luau" local function tw(obj, t, props, style, dir) return TS:Create(obj, TweenInfo.new(t, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) end -- ══════════════════════════════════════ -- EXECUTOR ENVIRONMENT -- ══════════════════════════════════════ local ENV = { isDelta = typeof(getgamestate) == "function", isSynapse = typeof(syn) == "table", isKRNL = rawget(_G,"KRNL_ENV") ~= nil, isFluxus = typeof(fluxus) == "table", isArceus = rawget(_G,"ARCEUS_X") ~= nil, isHydrogen = typeof(Hydrogen) == "table", isSolara = rawget(_G,"Solara") ~= nil, isWave = rawget(_G,"Wave") ~= nil, isScriptWare = rawget(_G,"ScriptWare") ~= nil, hasDecompile = typeof(decompile) == "function", hasBytecode = typeof(getscriptbytecode) == "function", hasGetScripts = typeof(getscripts) == "function", hasGetLoadedModules = typeof(getloadedmodules) == "function", hasGetfenv = typeof(getfenv) == "function", hasGetScriptThread = typeof(getscriptthread) == "function", hasIsExecThread = typeof(isexecutorthread) == "function", hasGetConnections = typeof(getconnections) == "function", hasGetAllActors = typeof(getallactors) == "function", hasGetLuaState = typeof(getluastate) == "function", hasGetActorStates = typeof(getactorstates) == "function", hasGetGameState = typeof(getgamestate) == "function", hasRaknet = typeof(raknet) == "table", hasLuaStateProxy = typeof(LuaStateProxy) ~= "nil", } local function getEnvLabel() local t = {} if ENV.isDelta then table.insert(t,"Delta") end if ENV.isSynapse then table.insert(t,(syn and rawget(syn,"version")) and "Synapse V3" or "Synapse X") end if ENV.isKRNL then table.insert(t,"KRNL") end if ENV.isFluxus then table.insert(t,"Fluxus") end if ENV.isArceus then table.insert(t,"Arceus X") end if ENV.isHydrogen then table.insert(t,"Hydrogen") end if ENV.isSolara then table.insert(t,"Solara") end if ENV.isWave then table.insert(t,"Wave") end if ENV.isScriptWare then table.insert(t,"Script-Ware") end return #t>0 and table.concat(t," + ") or "Generic" end -- ══════════════════════════════════════ -- SAFE FETCH (kick fix: executor-native HTTP first) -- ══════════════════════════════════════ local function safeFetch(url) if ENV.isSynapse and syn and syn.request then local ok,r = pcall(syn.request,{Url=url,Method="GET"}) if ok and r and r.StatusCode==200 and #(r.Body or "")>100 then return r.Body end end if typeof(request)=="function" then local ok,r = pcall(request,{Url=url,Method="GET"}) if ok and r then local b = r.Body or r.body if b and #b>100 then return b end end end if typeof(http)=="table" and typeof(http.request)=="function" then local ok,r = pcall(http.request,{Url=url,Method="GET"}) if ok and r and #(r.Body or "")>100 then return r.Body end end if ENV.isFluxus and fluxus and fluxus.request then local ok,r = pcall(fluxus.request,{Url=url,Method="GET"}) if ok and r and #(r.Body or "")>100 then return r.Body end end local ok,r = pcall(game.HttpGet,game,url,true) if ok and r and #r>100 then return r end return nil end -- ══════════════════════════════════════ -- EXECUTOR SCRIPT FILTER (Delta API) -- ══════════════════════════════════════ local function isExecutorScript(obj) if ENV.hasIsExecThread and ENV.hasGetScriptThread then local ok,thread = pcall(getscriptthread,obj) if ok and thread then local ok2,res = pcall(isexecutorthread,thread) if ok2 and res==true then return true end end end return false end -- ══════════════════════════════════════ -- MULTI-METHOD DECOMPILE -- ══════════════════════════════════════ local function getSource(obj, header) if isExecutorScript(obj) then return (header or "").."-- [executor script]\n" end local methods = { function() return obj.Source end, function() if ENV.hasDecompile then return decompile(obj) end end, function() if ENV.hasBytecode and ENV.hasDecompile then local bc = getscriptbytecode(obj) if bc and #bc>2 then return decompile(bc) end end end, function() if ENV.isSynapse and syn and syn.decompile then return syn.decompile(obj) end end, function() if ENV.isFluxus and fluxus and fluxus.decompile then return fluxus.decompile(obj) end end, function() if ENV.hasGetScriptThread and ENV.hasDecompile then local ok,thread = pcall(getscriptthread,obj) if ok and thread then return decompile(obj) end end end, function() if ENV.hasGetLuaState and ENV.hasLuaStateProxy and LuaStateProxy then local ok,state = pcall(getluastate) if ok and state then local ctor = rawget(LuaStateProxy,"new") or LuaStateProxy local ok2,proxy = pcall(ctor,state) if ok2 and proxy then local ok3,src = pcall(function() return proxy:GetSource(obj) end) if ok3 and src and type(src)=="string" and #src>2 then return src end end end end end, function() if ENV.hasGetActorStates and ENV.hasLuaStateProxy and LuaStateProxy then local ok,states = pcall(getactorstates) if ok and states then local ctor = rawget(LuaStateProxy,"new") or LuaStateProxy for _,state in ipairs(states) do local ok2,proxy = pcall(ctor,state) if ok2 and proxy then local ok3,src = pcall(function() return proxy:GetSource(obj) end) if ok3 and src and type(src)=="string" and #src>2 then return src end end end end end end, } for _,fn in ipairs(methods) do local ok,r = pcall(fn) if ok and r and type(r)=="string" and #r>2 then local src = r src = src:gsub("l_(%d+)_(%d+)",function(a,b) return "var"..a.."_"..b end) src = src:gsub("%(true%)","true"):gsub("%(false%)","false"):gsub("\n\n\n+","\n\n") return (header or "")..src end end return (header or "").."-- Source unavailable\n" end -- ══════════════════════════════════════ -- CLEANUP -- ══════════════════════════════════════ if PG:FindFirstChild("PhantomUI") then PG.PhantomUI:Destroy() end -- ══════════════════════════════════════ -- COLOR PALETTE -- ══════════════════════════════════════ local C = { bg = Color3.fromRGB(6,4,16), card = Color3.fromRGB(11,9,22), dark = Color3.fromRGB(7,6,15), accent = Color3.fromRGB(148,58,255), soft = Color3.fromRGB(185,110,255), pink = Color3.fromRGB(255,58,130), blue = Color3.fromRGB(58,128,255), green = Color3.fromRGB(48,228,112), cyan = Color3.fromRGB(48,198,255), red = Color3.fromRGB(255,68,68), text = Color3.fromRGB(222,212,255), sub = Color3.fromRGB(112,106,162), dim = Color3.fromRGB(56,52,82), faded = Color3.fromRGB(36,34,54), white = Color3.new(1,1,1), } -- ══════════════════════════════════════ -- GUI ROOT -- ══════════════════════════════════════ local GUI = Instance.new("ScreenGui") GUI.Name, GUI.ResetOnSpawn, GUI.DisplayOrder = "PhantomUI", false, 99999 GUI.IgnoreGuiInset = true GUI.ZIndexBehavior = Enum.ZIndexBehavior.Sibling GUI.Parent = PG -- Deep background local BG = Instance.new("Frame",GUI) BG.Size, BG.BackgroundColor3, BG.BorderSizePixel, BG.ZIndex = UDim2.new(1,0,1,0), C.bg, 0, 1 local BGG = Instance.new("UIGradient",BG) BGG.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(5,3,14)), ColorSequenceKeypoint.new(.5, Color3.fromRGB(10,6,24)), ColorSequenceKeypoint.new(1, Color3.fromRGB(5,3,14)), }) BGG.Rotation = 135 -- Animated ambient orbs local ORB_DATA = { {x=0.14,y=0.22,s=300,c=Color3.fromRGB(110,38,210),sp=0.38}, {x=0.76,y=0.56,s=240,c=Color3.fromRGB(52,96,255), sp=0.29}, {x=0.44,y=0.76,s=200,c=Color3.fromRGB(200,38,118),sp=0.48}, {x=0.62,y=0.18,s=160,c=Color3.fromRGB(80,160,255),sp=0.55}, } for _,d in ipairs(ORB_DATA) do local orb = Instance.new("Frame",BG) orb.Size = UDim2.new(0,d.s,0,d.s) orb.Position = UDim2.new(d.x,-d.s/2,d.y,-d.s/2) orb.BackgroundColor3 = d.c orb.BackgroundTransparency = 0.91 orb.BorderSizePixel = 0 orb.ZIndex = 2 Instance.new("UICorner",orb).CornerRadius = UDim.new(1,0) local bx,by,sp = d.x,d.y,d.sp task.spawn(function() local t = math.random()*math.pi*2 while orb.Parent do t = t+sp*0.016 orb.Position = UDim2.new(bx+math.cos(t*0.7)*0.02,-d.s/2,by+math.sin(t)*0.035,-d.s/2) task.wait(0.016) end end) end -- ══════════════════════════════════════ -- UI HELPERS -- ══════════════════════════════════════ local function makeSep(parent,posY,pW,zi) local f = Instance.new("Frame",parent) f.Size = UDim2.new(0,pW,0,1) f.Position = UDim2.new(0.5,-pW/2,0,posY) f.BorderSizePixel,f.ZIndex = 0,zi or 8 local g = Instance.new("UIGradient",f) g.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0,0,0)), ColorSequenceKeypoint.new(.25,Color3.fromRGB(70,28,145)), ColorSequenceKeypoint.new(.75,Color3.fromRGB(28,72,195)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0,0,0)), }) g.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(.2, 0), NumberSequenceKeypoint.new(.8, 0), NumberSequenceKeypoint.new(1, 1), }) return f end local function lbl(parent,txt,sz,col,font,w,h,x,y,xa,zi) local l = Instance.new("TextLabel",parent) l.Size = UDim2.new(0,w,0,h) l.Position = UDim2.new(0,x,0,y) l.BackgroundTransparency = 1 l.Text = txt l.TextSize = sz l.TextColor3 = col l.Font = font or Enum.Font.Gotham l.TextXAlignment = xa or Enum.TextXAlignment.Center l.ZIndex = zi or 8 return l end local function makeCard(w,h) local card = Instance.new("Frame",GUI) card.Size = UDim2.new(0,w,0,h) card.Position = UDim2.new(0.5,-w/2,1.3,0) card.BackgroundColor3 = C.card card.BorderSizePixel = 0 card.ZIndex = 5 Instance.new("UICorner",card).CornerRadius = UDim.new(0,18) local cg = Instance.new("UIGradient",card) cg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,Color3.fromRGB(18,14,32)), ColorSequenceKeypoint.new(1,Color3.fromRGB(8,8,18)), }) cg.Rotation = 145 local stroke = Instance.new("UIStroke",card) stroke.Color,stroke.Thickness,stroke.Transparency = C.accent,1.5,0.35 -- top gradient bar local bar = Instance.new("Frame",card) bar.Size = UDim2.new(1,0,0,3) bar.BackgroundColor3,bar.BorderSizePixel,bar.ZIndex = C.accent,0,6 Instance.new("UICorner",bar).CornerRadius = UDim.new(0,18) local bg = Instance.new("UIGradient",bar) bg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, C.pink), ColorSequenceKeypoint.new(.5, C.accent), ColorSequenceKeypoint.new(1, C.blue), }) -- breathing border task.spawn(function() local t = 0 while card.Parent do t = t+0.022 stroke.Transparency = 0.28+math.sin(t)*0.16 task.wait(0.033) end end) -- slide-in entrance task.delay(0.04,function() tw(card,0.55,{Position=UDim2.new(0.5,-w/2,0.5,-h/2)},Enum.EasingStyle.Back,Enum.EasingDirection.Out):Play() end) return card,stroke end -- ══════════════════════════════════════ -- KEY SCREEN -- ══════════════════════════════════════ local KW,KH = 352,316 local KeyCard,KeyStroke = makeCard(KW,KH) -- Ghost bounce local kghost = lbl(KeyCard,"👻",32,C.white,Enum.Font.GothamBold,KW,38,0,10,Enum.TextXAlignment.Center,8) task.spawn(function() local t=0 while kghost.Parent do t=t+0.055 kghost.Position = UDim2.new(0,0,0,10+math.sin(t)*4) task.wait(0.033) end end) lbl(KeyCard,"PHANTOM DECOMPILER",17,C.soft,Enum.Font.GothamBold,KW,22,0,52,nil,8) lbl(KeyCard,"By "..STUDIO.." · "..VERSION,10,C.sub,Enum.Font.Gotham,KW,14,0,76,nil,8) makeSep(KeyCard,96,KW-40) lbl(KeyCard,"Enter your key below",11,C.dim,Enum.Font.Gotham,KW,14,0,104,nil,8) -- Key input container local KIBG = Instance.new("Frame",KeyCard) KIBG.Size = UDim2.new(0,KW-36,0,48) KIBG.Position = UDim2.new(0,18,0,122) KIBG.BackgroundColor3,KIBG.BorderSizePixel,KIBG.ZIndex = C.dark,0,7 Instance.new("UICorner",KIBG).CornerRadius = UDim.new(0,10) local kibgg = Instance.new("UIGradient",KIBG) kibgg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,Color3.fromRGB(14,10,26)), ColorSequenceKeypoint.new(1,Color3.fromRGB(8,10,20)), }) kibgg.Rotation = 135 local KIS = Instance.new("UIStroke",KIBG) KIS.Color,KIS.Thickness,KIS.Transparency = Color3.fromRGB(100,40,200),1.5,0.38 lbl(KIBG,"🔑",14,C.white,Enum.Font.GothamBold,38,48,0,0,Enum.TextXAlignment.Center,8) local KInput = Instance.new("TextBox",KIBG) KInput.Size = UDim2.new(1,-46,1,-4) KInput.Position = UDim2.new(0,38,0,2) KInput.BackgroundTransparency = 1 KInput.PlaceholderText = "PHANTOM-XXXX-XXXX-XXXX" KInput.PlaceholderColor3 = Color3.fromRGB(50,50,78) KInput.Text,KInput.TextColor3 = "",C.text KInput.TextSize,KInput.Font = 12,Enum.Font.Code KInput.ClearTextOnFocus,KInput.ZIndex = false,9 KInput.TextXAlignment = Enum.TextXAlignment.Left KInput.Focused:Connect(function() tw(KIS,0.2,{Color=Color3.fromRGB(200,100,255),Transparency=0}):Play() tw(KIBG,0.2,{BackgroundColor3=Color3.fromRGB(15,11,28)}):Play() end) KInput.FocusLost:Connect(function() tw(KIS,0.3,{Transparency=0.38}):Play() tw(KIBG,0.3,{BackgroundColor3=C.dark}):Play() end) local KSL = lbl(KeyCard,"",10,C.red,Enum.Font.Gotham,KW,16,0,180,nil,8) -- Unlock button local KBF = Instance.new("Frame",KeyCard) KBF.Size = UDim2.new(0,KW-36,0,48) KBF.Position = UDim2.new(0,18,0,200) KBF.BackgroundColor3,KBF.BorderSizePixel,KBF.ZIndex = C.accent,0,7 Instance.new("UICorner",KBF).CornerRadius = UDim.new(0,10) local kbfg = Instance.new("UIGradient",KBF) kbfg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,C.pink), ColorSequenceKeypoint.new(1,C.blue), }) local KBL = Instance.new("TextLabel",KBF) KBL.Size,KBL.BackgroundTransparency = UDim2.new(1,0,1,0),1 KBL.Text,KBL.TextColor3 = "UNLOCK 🔓",C.white KBL.TextSize,KBL.Font,KBL.ZIndex = 14,Enum.Font.GothamBold,8 local KBtn = Instance.new("TextButton",KBF) KBtn.Size,KBtn.BackgroundTransparency,KBtn.Text,KBtn.ZIndex = UDim2.new(1,0,1,0),1,"",9 KBtn.MouseEnter:Connect(function() tw(KBF,0.14,{Size=UDim2.new(0,KW-28,0,52),Position=UDim2.new(0,14,0,198)}):Play() end) KBtn.MouseLeave:Connect(function() tw(KBF,0.14,{Size=UDim2.new(0,KW-36,0,48),Position=UDim2.new(0,18,0,200)}):Play() end) KBtn.MouseButton1Down:Connect(function() tw(KBF,0.07,{Size=UDim2.new(0,KW-44,0,44),Position=UDim2.new(0,22,0,202)}):Play() end) KBtn.MouseButton1Up:Connect(function() tw(KBF,0.1,{Size=UDim2.new(0,KW-28,0,52),Position=UDim2.new(0,14,0,198)}):Play() end) makeSep(KeyCard,260,KW-40) lbl(KeyCard,"No key? Join "..DISCORD,10,C.dim,Enum.Font.Gotham,KW,14,0,268,nil,8) lbl(KeyCard,"©️ 2025 "..STUDIO,9,C.faded,Enum.Font.Gotham,KW,14,0,285,nil,8) -- ══════════════════════════════════════ -- KEY CLICK -- ══════════════════════════════════════ KBtn.MouseButton1Click:Connect(function() local key = KInput.Text:gsub("%s+","") local valid = false for _,v in ipairs(KEYS) do if v==key then valid=true break end end if valid then KSL.Text,KSL.TextColor3 = "✅ nice — loading phantom now",C.green KBL.Text = "UNLOCKED ✅" KIS.Color,KIS.Transparency = C.green,0 tw(KBF,0.3,{BackgroundColor3=Color3.fromRGB(18,138,66)}):Play() task.wait(1.0) tw(KeyCard,0.45,{Position=UDim2.new(0.5,-KW/2,1.6,0)},Enum.EasingStyle.Back,Enum.EasingDirection.In):Play() task.wait(0.5) KeyCard:Destroy() -- ══════════════════════════════════════ -- DECOMPILER SCREEN -- ══════════════════════════════════════ local DW,DH = 428,552 local DCard,DStroke = makeCard(DW,DH) -- Ghost bounce local dgh = lbl(DCard,"👻",28,C.white,Enum.Font.GothamBold,DW,34,0,10,nil,8) task.spawn(function() local t=0 while dgh.Parent do t=t+0.055 dgh.Position = UDim2.new(0,0,0,10+math.sin(t)*3) task.wait(0.033) end end) lbl(DCard,"PHANTOM DECOMPILER",17,C.soft,Enum.Font.GothamBold,DW,22,0,48,nil,8) lbl(DCard,VERSION.." · "..STUDIO,10,C.sub,Enum.Font.Gotham,DW,14,0,72,nil,8) makeSep(DCard,92,DW-40) lbl(DCard,"🎮 "..game.Name:sub(1,32),11,C.sub,Enum.Font.Gotham,DW-28,14,14,100,Enum.TextXAlignment.Left,8) lbl(DCard,"👤 "..LP.Name,11,C.sub,Enum.Font.Gotham,DW-28,14,14,116,Enum.TextXAlignment.Left,8) -- Filename section local FNLabel = lbl(DCard,"💾 Output filename:",11,C.sub,Enum.Font.Gotham,DW-28,14,14,136,Enum.TextXAlignment.Left,8) local FNBG = Instance.new("Frame",DCard) FNBG.Size = UDim2.new(0,DW-28,0,34) FNBG.Position = UDim2.new(0,14,0,154) FNBG.BackgroundColor3,FNBG.BorderSizePixel,FNBG.ZIndex = C.dark,0,7 Instance.new("UICorner",FNBG).CornerRadius = UDim.new(0,8) local FNS = Instance.new("UIStroke",FNBG) FNS.Color,FNS.Thickness,FNS.Transparency = Color3.fromRGB(100,40,200),1,0.38 local FNInput = Instance.new("TextBox",FNBG) FNInput.Size = UDim2.new(1,-14,1,0) FNInput.Position = UDim2.new(0,8,0,0) FNInput.BackgroundTransparency = 1 FNInput.PlaceholderText = "e.g. MyGame.rbxl" FNInput.PlaceholderColor3 = Color3.fromRGB(50,50,78) FNInput.Text,FNInput.TextColor3 = "",C.text FNInput.TextSize,FNInput.Font,FNInput.ZIndex = 11,Enum.Font.Code,8 FNInput.TextXAlignment = Enum.TextXAlignment.Left FNInput.Focused:Connect(function() tw(FNS,0.2,{Color=Color3.fromRGB(200,100,255),Transparency=0}):Play() end) FNInput.FocusLost:Connect(function() tw(FNS,0.3,{Transparency=0.38}):Play() end) -- Start button local SBF = Instance.new("Frame",DCard) SBF.Size = UDim2.new(0,DW-28,0,42) SBF.Position = UDim2.new(0,14,0,194) SBF.BackgroundColor3,SBF.BorderSizePixel,SBF.ZIndex = C.accent,0,7 Instance.new("UICorner",SBF).CornerRadius = UDim.new(0,9) local sbg = Instance.new("UIGradient",SBF) sbg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,C.pink), ColorSequenceKeypoint.new(1,C.blue), }) local SBL = Instance.new("TextLabel",SBF) SBL.Size,SBL.BackgroundTransparency = UDim2.new(1,0,1,0),1 SBL.Text,SBL.TextColor3 = "▶️ START DECOMPILATION",C.white SBL.TextSize,SBL.Font,SBL.ZIndex = 12,Enum.Font.GothamBold,8 local SBtn = Instance.new("TextButton",SBF) SBtn.Size,SBtn.BackgroundTransparency,SBtn.Text,SBtn.ZIndex = UDim2.new(1,0,1,0),1,"",9 SBtn.MouseEnter:Connect(function() tw(SBF,0.13,{Size=UDim2.new(0,DW-22,0,46),Position=UDim2.new(0,11,0,192)}):Play() end) SBtn.MouseLeave:Connect(function() tw(SBF,0.13,{Size=UDim2.new(0,DW-28,0,42),Position=UDim2.new(0,14,0,194)}):Play() end) SBtn.MouseButton1Down:Connect(function() tw(SBF,0.07,{Size=UDim2.new(0,DW-36,0,38),Position=UDim2.new(0,18,0,196)}):Play() end) SBtn.MouseButton1Up:Connect(function() tw(SBF,0.1,{Size=UDim2.new(0,DW-22,0,46),Position=UDim2.new(0,11,0,192)}):Play() end) makeSep(DCard,242,DW-40) local DSL = lbl(DCard,"⏳ give it a filename first",11,C.text,Enum.Font.GothamBold,DW-28,18,14,250,Enum.TextXAlignment.Left,8) -- Progress bar local MBG = Instance.new("Frame",DCard) MBG.Size = UDim2.new(0,DW-28,0,12) MBG.Position = UDim2.new(0,14,0,272) MBG.BackgroundColor3,MBG.BorderSizePixel,MBG.ZIndex = Color3.fromRGB(10,8,20),0,7 Instance.new("UICorner",MBG).CornerRadius = UDim.new(0,6) local mbgs = Instance.new("UIStroke",MBG) mbgs.Color,mbgs.Thickness,mbgs.Transparency = Color3.fromRGB(50,20,100),1,0.5 local MF = Instance.new("Frame",MBG) MF.Size,MF.BorderSizePixel,MF.ZIndex = UDim2.new(0,0,1,0),0,8 Instance.new("UICorner",MF).CornerRadius = UDim.new(0,6) local mfg = Instance.new("UIGradient",MF) mfg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,C.pink), ColorSequenceKeypoint.new(1,C.blue), }) -- Sheen loop on progress bar task.spawn(function() local sheen = Instance.new("Frame",MF) sheen.Size = UDim2.new(0,50,1,0) sheen.BackgroundColor3 = C.white sheen.BackgroundTransparency = 0.72 sheen.BorderSizePixel,sheen.ZIndex = 0,9 Instance.new("UICorner",sheen).CornerRadius = UDim.new(0,6) local sg = Instance.new("UIGradient",sheen) sg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0,0,0)), ColorSequenceKeypoint.new(.5, C.white), ColorSequenceKeypoint.new(1, Color3.fromRGB(0,0,0)), }) while sheen.Parent do sheen.Position = UDim2.new(-0.6,0,0,0) tw(sheen,1.4,{Position=UDim2.new(1.6,0,0,0)},Enum.EasingStyle.Sine):Play() task.wait(2.2) end end) local PctLbl = lbl(DCard,"0%",10,C.soft,Enum.Font.GothamBold,DW-28,14,14,288,Enum.TextXAlignment.Right,8) -- Phase bars local PHASES = {"Load","Scan","Scripts","Engine","Dump"} local phW = math.floor((DW-28-4*(#PHASES-1))/#PHASES) local pbars = {} for i,name in ipairs(PHASES) do local px = 14+(i-1)*(phW+4) local pbg = Instance.new("Frame",DCard) pbg.Size = UDim2.new(0,phW,0,22) pbg.Position = UDim2.new(0,px,0,306) pbg.BackgroundColor3,pbg.BorderSizePixel,pbg.ZIndex = Color3.fromRGB(10,8,18),0,7 Instance.new("UICorner",pbg).CornerRadius = UDim.new(0,5) local pstroke = Instance.new("UIStroke",pbg) pstroke.Color,pstroke.Thickness,pstroke.Transparency = Color3.fromRGB(40,20,80),1,0.56 local pf = Instance.new("Frame",pbg) pf.Size = UDim2.new(0,0,1,0) pf.BackgroundColor3 = Color3.fromHSV(i/#PHASES*0.74,0.8,0.9) pf.BackgroundTransparency,pf.BorderSizePixel,pf.ZIndex = 0.18,0,8 Instance.new("UICorner",pf).CornerRadius = UDim.new(0,5) local pl = lbl(pbg,name,8,C.sub,Enum.Font.GothamBold,phW,22,0,0,nil,9) table.insert(pbars,{fill=pf,lbl=pl,stroke=pstroke,done=false,hue=i/#PHASES*0.74}) end makeSep(DCard,334,DW-40) -- Terminal local TB = Instance.new("Frame",DCard) TB.Size = UDim2.new(0,DW-28,0,174) TB.Position = UDim2.new(0,14,0,342) TB.BackgroundColor3,TB.BorderSizePixel,TB.ZIndex = Color3.fromRGB(3,2,10),0,7 Instance.new("UICorner",TB).CornerRadius = UDim.new(0,10) local tbs = Instance.new("UIStroke",TB) tbs.Color,tbs.Thickness,tbs.Transparency = Color3.fromRGB(18,9,42),1,0.42 for i=0,7 do local sl = Instance.new("Frame",TB) sl.Size = UDim2.new(1,0,0,1) sl.Position = UDim2.new(0,0,0,i*22+24) sl.BackgroundColor3 = C.white sl.BackgroundTransparency,sl.BorderSizePixel,sl.ZIndex = 0.965,0,8 end local TTH = Instance.new("Frame",TB) TTH.Size = UDim2.new(1,0,0,22) TTH.BackgroundColor3,TTH.BorderSizePixel,TTH.ZIndex = Color3.fromRGB(14,7,28),0,9 Instance.new("UICorner",TTH).CornerRadius = UDim.new(0,10) local tthg = Instance.new("UIGradient",TTH) tthg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,Color3.fromRGB(20,8,38)), ColorSequenceKeypoint.new(1,Color3.fromRGB(8,8,28)), }) local TTHL = Instance.new("TextLabel",TTH) TTHL.Size = UDim2.new(1,-8,1,0) TTHL.Position = UDim2.new(0,8,0,0) TTHL.BackgroundTransparency = 1 TTHL.TextColor3 = Color3.fromRGB(110,105,160) TTHL.TextSize,TTHL.Font = 9,Enum.Font.Code TTHL.TextXAlignment = Enum.TextXAlignment.Left TTHL.ZIndex = 10 -- Cursor blink tied to live base text local tthBase = {"phantom_engine.lua — idle"} task.spawn(function() local cur = true while TB.Parent do cur = not cur TTHL.Text = "🔴 🟡 🟢 "..tthBase[1]..(cur and "█" or " ") task.wait(0.55) end end) -- Log system local LogLL = Instance.new("UIListLayout",TB) LogLL.SortOrder = Enum.SortOrder.LayoutOrder LogLL.Padding = UDim.new(0,1) local LogPad = Instance.new("UIPadding",TB) LogPad.PaddingLeft,LogPad.PaddingTop = UDim.new(0,6),UDim.new(0,24) local logLines,logOrd,colIdx = {},0,0 local logCols = { Color3.fromRGB(80,255,120), Color3.fromRGB(100,210,255), Color3.fromRGB(255,210,80), Color3.fromRGB(195,108,255), } local function addLog(msg,col) logOrd = logOrd+1 colIdx = (colIdx%#logCols)+1 local l = Instance.new("TextLabel",TB) l.Size = UDim2.new(1,-12,0,13) l.BackgroundTransparency = 1 l.Text = "> "..tostring(msg):sub(1,62) l.TextColor3 = col or logCols[colIdx] l.TextSize,l.Font = 9,Enum.Font.Code l.TextXAlignment = Enum.TextXAlignment.Left l.TextTruncate = Enum.TextTruncate.AtEnd l.ZIndex,l.LayoutOrder = 9,logOrd l.TextTransparency = 0.65 l.Parent = TB tw(l,0.22,{TextTransparency=0}):Play() table.insert(logLines,l) if #logLines>7 then logLines[1]:Destroy() table.remove(logLines,1) end end lbl(DCard,"⚠️ keep the game open · ©️ 2025 "..STUDIO,9,C.faded,Enum.Font.Gotham,DW,14,0,530,nil,8) -- Progress state local curPct,lastPhase = 0,0 local phaseMap = {[8]=1,[20]=2,[40]=3,[58]=4,[66]=5} local function setProgress(pct,status) if pct then tw(MF,0.55,{Size=UDim2.new(pct/100,0,1,0)},Enum.EasingStyle.Quad):Play() task.spawn(function() local from = curPct local steps = math.max(1,math.floor(math.abs(pct-from))) for i=1,steps do curPct = from+(i/steps)*(pct-from) PctLbl.Text = math.floor(curPct).."%" task.wait(0.01) end curPct,PctLbl.Text = pct,pct.."%" end) for thresh,idx in pairs(phaseMap) do if pct>=thresh and idx>lastPhase then lastPhase = idx local pb = pbars[idx] if pb and not pb.done then pb.done = true pb.lbl.TextColor3 = C.white pb.stroke.Color = Color3.fromHSV(pb.hue,0.8,0.9) pb.stroke.Transparency = 0.18 tw(pb.fill,0.4,{Size=UDim2.new(1,0,1,0)},Enum.EasingStyle.Back):Play() end end end end if status then DSL.Text = status end end -- ══════════════════════════════════════ -- START BUTTON CLICK -- ══════════════════════════════════════ SBtn.MouseButton1Click:Connect(function() local filename = FNInput.Text:gsub("^%s+",""):gsub("%s+$","") if filename=="" then tw(FNS,0.14,{Color=C.red,Transparency=0}):Play() task.spawn(function() task.wait(0.55) tw(FNS,0.3,{Transparency=0.38,Color=Color3.fromRGB(100,40,200)}):Play() end) return end if not filename:match("%.rbxl$") and not filename:match("%.rbxlx$") then filename = filename..".rbxl" end FNLabel:Destroy() FNBG:Destroy() SBF:Destroy() tthBase[1] = "phantom_engine.lua — running" -- ══════════════════════════════════════ -- ENGINE TASK -- ══════════════════════════════════════ task.spawn(function() local EXECUTOR = getEnvLabel() local HEADER = "--[[\n" .." Phantom Decompiler "..VERSION.." | "..STUDIO.."\n" .." "..DISCORD.."\n" .." Game: "..game.Name.."\n" .." Executor: "..EXECUTOR.."\n" .." Server scripts NOT included\n" .."]]\n\n" -- PHASE 1 — LOAD addLog("phantom starting up.. what's good") setProgress(2,"⏳ waking things up...") if ENV.isDelta then addLog("delta detected — new apis active") if ENV.hasRaknet then local ok,en = pcall(function() return raknet.is_enabled() end) if ok then addLog("raknet: "..(en and "on" or "off")) end end if ENV.hasGetGameState then local ok2,gs = pcall(getgamestate) if ok2 and gs then addLog("game state: acquired") end end end if not game:IsLoaded() then addLog("waiting on the game to finish loading") game.Loaded:Wait() end task.wait(1.5) setProgress(8,"✅ game's up, let's go") addLog("in: "..game.Name) -- PHASE 2 — SCAN setProgress(10,"🔍 scanning everything...") addLog("starting scan — might take a moment") local found,seen = {},{} for pass=1,3 do local new = 0 for _,v in ipairs(game:GetDescendants()) do if not seen[v] then seen[v]=true table.insert(found,v) new=new+1 end end addLog("scan pass "..pass.."/3 — +"..new) setProgress(10+(pass/3)*4,"🔍 pass "..pass.."/3") task.wait(0.3) end if ENV.hasGetAllActors then local ok,actors = pcall(getallactors) if ok and actors and #actors>0 then local an = 0 for _,actor in ipairs(actors) do local ok2,descs = pcall(function() return actor:GetDescendants() end) if ok2 and descs then for _,v in ipairs(descs) do if not seen[v] then seen[v]=true table.insert(found,v) an=an+1 end end end end addLog("actors: +"..an.." ("..#actors.." actors)") setProgress(15,"🔍 actors scanned") end end if ENV.hasGetLuaState and ENV.hasLuaStateProxy and LuaStateProxy then local ok,state = pcall(getluastate) if ok and state then local ctor = rawget(LuaStateProxy,"new") or LuaStateProxy local ok2,proxy = pcall(ctor,state) if ok2 and proxy then local ok3,ss = pcall(function() return proxy:GetScripts() end) if ok3 and ss then local ln = 0 for _,s in ipairs(ss) do if not seen[s] then seen[s]=true table.insert(found,s) ln=ln+1 end end if ln>0 then addLog("lua state: +"..ln) end end end end end if ENV.hasGetActorStates and ENV.hasLuaStateProxy and LuaStateProxy then local ok,states = pcall(getactorstates) if ok and states and #states>0 then local ctor = rawget(LuaStateProxy,"new") or LuaStateProxy local asn = 0 for _,state in ipairs(states) do local ok2,proxy = pcall(ctor,state) if ok2 and proxy then local ok3,ss = pcall(function() return proxy:GetScripts() end) if ok3 and ss then for _,s in ipairs(ss) do if not seen[s] then seen[s]=true table.insert(found,s) asn=asn+1 end end end end end addLog("actor states: +"..asn.." ("..#states..")") setProgress(17,"🔍 actor states done") end end if ENV.hasGetConnections and ENV.hasGetfenv then local evts = {} pcall(function() table.insert(evts,game.DescendantAdded) end) pcall(function() table.insert(evts,workspace.ChildAdded) end) pcall(function() table.insert(evts,Players.PlayerAdded) end) local cn = 0 for _,event in ipairs(evts) do local ok,conns = pcall(getconnections,event) if ok and conns then for _,conn in ipairs(conns) do local fn pcall(function() fn=conn.Function end) pcall(function() if not fn then fn=conn.Callback end end) if fn and typeof(fn)=="function" then local ok2,fe = pcall(getfenv,fn) if ok2 and type(fe)=="table" then local s = rawget(fe,"script") if s and not seen[s] then seen[s]=true table.insert(found,s) cn=cn+1 end end end end end end if cn>0 then addLog("connections: +"..cn) end end if ENV.hasGetScripts then local ok,list = pcall(getscripts) if ok and list then local gsn = 0 for _,s in ipairs(list) do if not seen[s] then seen[s]=true table.insert(found,s) gsn=gsn+1 end end if gsn>0 then addLog("getscripts: +"..gsn) end end end if ENV.hasGetLoadedModules then local ok,mods = pcall(getloadedmodules) if ok and mods then local gmn = 0 for _,m in ipairs(mods) do if not seen[m] then seen[m]=true table.insert(found,m) gmn=gmn+1 end end if gmn>0 then addLog("modules: +"..gmn) end end end setProgress(20,"🔍 got "..#found.." instances total") addLog("scan done — "..#found.." total") task.wait(0.2) -- PHASE 3 — SCRIPTS local scripts = {} for _,v in ipairs(found) do if (v:IsA("LocalScript") or v:IsA("ModuleScript") or v:IsA("Script")) and not isExecutorScript(v) then table.insert(scripts,v) end end addLog(#scripts.." scripts — starting decompile") setProgress(22,"✨ decompiling "..#scripts.." scripts") local done2 = 0 for _,obj in ipairs(scripts) do pcall(function() obj.Source = getSource(obj,HEADER) end) done2 = done2+1 if done2%15==0 then setProgress(22+(done2/#scripts)*16,"✨ "..done2.."/"..#scripts) addLog(done2.."/"..#scripts.." decompiled") task.wait() end end setProgress(40,"✨ "..done2.." scripts done") addLog("decompile wrapped — "..done2.." scripts") task.wait(0.4) -- PHASE 4 — ENGINE setProgress(42,"📦 fetching save engine") addLog("pulling ssi off github...") local src for i=1,6 do src = safeFetch(SSI_URL) if src and #src>100 then break end addLog("retry "..i.."/6 — connection's being slow") task.wait(1.5) end if not src then DSL.Text,DSL.TextColor3 = "❌ can't reach github — check your connection",C.red tthBase[1] = "phantom_engine.lua — connection failed" addLog("fetch failed",C.red) return end setProgress(58,"📦 engine ready — "..math.floor(#src/1024).."kb") addLog("engine downloaded — "..#src.." bytes") task.wait(0.3) -- Try syn.loadstring first (kick fix: more trusted by some games) local ok2,ssi if ENV.isSynapse and syn and syn.loadstring then ok2,ssi = pcall(syn.loadstring,src,"PhantomEngine") end if not ok2 or not ssi then ok2,ssi = pcall(loadstring,src,"PhantomEngine") end if not ok2 or not ssi then DSL.Text,DSL.TextColor3 = "❌ engine compile error",C.red addLog("compile failed",C.red) return end local ok3,inst = pcall(ssi) if not ok3 then DSL.Text,DSL.TextColor3 = "❌ engine init failed",C.red addLog("init failed",C.red) return end -- PHASE 5 — DUMP setProgress(66,"💾 writing the dump...") addLog("dump started — grab a coffee") task.wait(0.3) local ssiOpts = { SafeMode = true, SaveScripts = true, DecompileScripts = true, SaveBytecode = true, DecompileTimeout = 30, DecompilerMode = 3, SaveNonCreatable = true, NilInstances = false, -- OFF: primary kick cause in protected games IgnoreDefaultProps = true, SaveTerrain = true, SaveLighting = true, SavePlayers = false, Timeout = 900, ShowStatus = true, FilePath = filename, } if ENV.isDelta then ssiOpts.UseActorDescendants = true ssiOpts.ScanActorStates = true end local ok4,err = pcall(inst,ssiOpts) if ok4 then setProgress(100,"✅ saved — "..filename) local g1,g2 = C.green,C.cyan mfg.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0,g1), ColorSequenceKeypoint.new(1,g2), }) DStroke.Color,DStroke.Transparency = g1,0.08 PctLbl.TextColor3,DSL.TextColor3 = g1,g1 tthBase[1] = "phantom_engine.lua — done ✅" for i,pb in ipairs(pbars) do if not pb.done then pb.done = true tw(pb.fill,0.14+i*0.05,{Size=UDim2.new(1,0,1,0)},Enum.EasingStyle.Back):Play() end local ci = i task.delay(ci*0.06,function() tw(pb.lbl,0.3,{TextColor3=g1}):Play() end) end addLog("done! "..done2.." scripts saved",g1) addLog("check executor > workspace folder",g2) addLog("phantom "..VERSION.." — mission complete 👻",Color3.fromRGB(255,220,80)) -- Success border pulse for _=1,3 do tw(DStroke,0.28,{Transparency=0,Color=g1}):Play() task.wait(0.28) tw(DStroke,0.28,{Transparency=0.35}):Play() task.wait(0.28) end else local errStr = tostring(err):sub(1,52) DSL.Text,DSL.TextColor3 = "❌ "..errStr,C.red DStroke.Color = C.red tthBase[1] = "phantom_engine.lua — failed" addLog("error: "..errStr,C.red) end end) end) else -- Bad key — shake KSL.Text,KSL.TextColor3 = "❌ that key's not right · join "..DISCORD,C.red KIS.Color,KIS.Transparency = C.red,0 local ox = KeyCard.Position.X.Offset local oy = KeyCard.Position.Y.Offset for _,s in ipairs({12,-12,9,-9,6,-6,3,-3,0}) do tw(KeyCard,0.032,{Position=UDim2.new(0.5,ox+s,0.5,oy)}):Play() task.wait(0.032) end task.delay(1.0,function() tw(KIS,0.4,{Transparency=0.38,Color=Color3.fromRGB(100,40,200)}):Play() end) end end)