-- 🌈 FULL Rainbow Animated Game Decompiler GUI local plr = game:GetService("Players").LocalPlayer local UIS = game:GetService("UserInputService") local gui = Instance.new("ScreenGui") gui.Name = "GameDecompilerGUI" gui.ResetOnSpawn = false gui.Parent = plr:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 340, 0, 240) frame.Position = UDim2.new(0.5, -170, 0.5, -120) frame.BackgroundColor3 = Color3.new(0,0,0) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui -- Rainbow animated background gradient local bgGradient = Instance.new("UIGradient") bgGradient.Parent = frame bgGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.2, Color3.fromRGB(255, 127, 0)), ColorSequenceKeypoint.new(0.4, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.6, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.8, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(139, 0, 255)) } bgGradient.Rotation = 0 -- Rainbow outline for frame local outline = Instance.new("UIStroke") outline.Parent = frame outline.Thickness = 3 outline.Transparency = 0 outline.Color = Color3.fromRGB(255, 0, 0) -- starting color, will animate -- Animate rainbow background and outline task.spawn(function() local rotation = 0 local hue = 0 while true do rotation = (rotation + 1) % 360 bgGradient.Rotation = rotation hue = (hue + 1) % 360 outline.Color = Color3.fromHSV(hue / 360, 1, 1) wait(0.03) end end) -- Title container for outline effect local titleContainer = Instance.new("Frame") titleContainer.Size = UDim2.new(1, 0, 0, 60) titleContainer.Position = UDim2.new(0, 0, 0, 0) titleContainer.BackgroundTransparency = 1 titleContainer.Parent = frame -- Black outline text behind (offset for outline effect) local outlineText = Instance.new("TextLabel") outlineText.Size = UDim2.new(1, 4, 1, 4) outlineText.Position = UDim2.new(-0.007, 0, -0.007, 0) outlineText.BackgroundTransparency = 1 outlineText.Font = Enum.Font.GothamBlack outlineText.TextScaled = true outlineText.Text = "Game Decompiler" outlineText.TextColor3 = Color3.new(0, 0, 0) outlineText.Parent = titleContainer outlineText.ZIndex = 1 -- Main rainbow animated text (on top) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 1, 0) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBlack title.TextScaled = true title.Text = "Game Decompiler" title.TextColor3 = Color3.new(1, 1, 1) title.Parent = titleContainer title.ZIndex = 2 -- Rainbow gradient on text local titleGradient = Instance.new("UIGradient") titleGradient.Parent = title titleGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.17, Color3.fromRGB(255, 127, 0)), ColorSequenceKeypoint.new(0.34, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.51, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.68, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.85, Color3.fromRGB(139, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)), } titleGradient.Rotation = 0 -- Animate title rainbow gradient rotation smoothly task.spawn(function() while true do titleGradient.Rotation = (titleGradient.Rotation + 2) % 360 wait(0.03) end end) -- Create buttons with rainbow gradients local function createRainbowButton(text, positionY) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.8, 0, 0, 40) btn.Position = UDim2.new(0.1, 0, positionY, 0) btn.Text = text btn.Font = Enum.Font.GothamBold btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) btn.TextColor3 = Color3.new(1, 1, 1) btn.Parent = frame local grad = Instance.new("UIGradient", btn) grad.Color = bgGradient.Color return btn end local copyBtn = createRainbowButton("🧠 Copy All Scripts", 0.55) local saveBtn = createRainbowButton("💾 Save Full Game (.rbxl)", 0.75) -- Improved Copy All Scripts function local function copyAllScripts() local scriptDump = {} local function tryGetSource(obj) local ok, src = pcall(function() return obj.Source end) if ok and src and #src > 0 then return src end return nil end for _, obj in pairs(game:GetDescendants()) do if obj:IsA("LocalScript") or obj:IsA("ModuleScript") or obj:IsA("Script") then local source = tryGetSource(obj) if source then table.insert(scriptDump, ("-- %s (%s):\n%s"):format(obj:GetFullName(), obj.ClassName, source)) end end end local fullText = table.concat(scriptDump, "\n\n") if #fullText == 0 then return false, "No readable scripts found." end if setclipboard then pcall(setclipboard, fullText) return true, "All readable scripts copied to clipboard!" else return false, "setclipboard not supported by executor." end end -- Connect Copy button copyBtn.MouseButton1Click:Connect(function() local success, message = copyAllScripts() if success then copyBtn.Text = "✅ " .. message else copyBtn.Text = "❌ " .. message end wait(2) copyBtn.Text = "🧠 Copy All Scripts" end) -- Save full game button saveBtn.MouseButton1Click:Connect(function() if saveinstance then saveinstance() saveBtn.Text = "✅ Game Saved" else saveBtn.Text = "⚠️ Executor Needed" end wait(2) saveBtn.Text = "💾 Save Full Game (.rbxl)" end) -- Toggle GUI with F key UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.F then frame.Visible = not frame.Visible end end)