local InsertService = game:GetService("InsertService") local CoreGui = game:GetService("CoreGui") local gui = Instance.new("ScreenGui", CoreGui) gui.Name = "UncopylockedGameImporterGUI" local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 460, 0, 340) frame.Position = UDim2.new(0.5, -230, 0.5, -170) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.Active = true frame.Draggable = true local title = Instance.new("TextLabel", frame) title.Text = "🎮 Uncopylocked Game Importer" title.Font = Enum.Font.GothamBold title.TextSize = 24 title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundColor3 = Color3.fromRGB(40, 40, 40) title.TextColor3 = Color3.fromRGB(255, 255, 255) local urlBox = Instance.new("TextBox", frame) urlBox.PlaceholderText = "Paste Roblox uncopylocked game URL or ID here" urlBox.Size = UDim2.new(0.9, 0, 0, 40) urlBox.Position = UDim2.new(0.05, 0, 0, 50) urlBox.Text = "" urlBox.ClearTextOnFocus = false urlBox.TextColor3 = Color3.fromRGB(255, 255, 255) urlBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) urlBox.Font = Enum.Font.Gotham urlBox.TextSize = 18 local importBtn = Instance.new("TextButton", frame) importBtn.Text = "⬇️ Import Game by URL/ID" importBtn.Size = UDim2.new(0.9, 0, 0, 50) importBtn.Position = UDim2.new(0.05, 0, 0, 100) importBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0) importBtn.TextColor3 = Color3.fromRGB(255, 255, 255) importBtn.Font = Enum.Font.GothamBold importBtn.TextSize = 20 local infoLabel = Instance.new("TextLabel", frame) infoLabel.Text = [[ Paste the uncopylocked game's URL or ID above. The script will try to load the place model. If successful, it clones Workspace, StarterGui, StarterPack, ReplicatedStorage, ServerScriptService, Lighting, and StarterPlayer to 'ExportedGame' folder under CoreGui. Then run in Delta console: getsaveinstance(game.CoreGui.ExportedGame) to export as .rbxm file. ]] infoLabel.Size = UDim2.new(0.9, 0, 0, 120) infoLabel.Position = UDim2.new(0.05, 0, 0, 160) infoLabel.TextWrapped = true infoLabel.TextColor3 = Color3.fromRGB(230, 230, 230) infoLabel.BackgroundTransparency = 1 infoLabel.Font = Enum.Font.Gotham infoLabel.TextSize = 14 local outputBox = Instance.new("TextBox", frame) outputBox.Size = UDim2.new(0.9, 0, 0, 40) outputBox.Position = UDim2.new(0.05, 0, 0, 280) outputBox.PlaceholderText = "Status / Output" outputBox.Text = "" outputBox.ClearTextOnFocus = false outputBox.TextColor3 = Color3.fromRGB(255, 255, 255) outputBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) outputBox.Font = Enum.Font.Gotham outputBox.TextSize = 16 outputBox.MultiLine = false outputBox.TextEditable = false local close = Instance.new("TextButton", frame) close.Text = "X" close.Size = UDim2.new(0, 30, 0, 30) close.Position = UDim2.new(1, -35, 0, 5) close.BackgroundColor3 = Color3.fromRGB(170, 0, 0) close.TextColor3 = Color3.fromRGB(255, 255, 255) close.Font = Enum.Font.GothamBold close.TextSize = 18 close.MouseButton1Click:Connect(function() gui:Destroy() end) local function extractIdFromUrl(url) local id = url:match("games/(%d+)") or url:match("places/(%d+)") or url:match("roblox.com/(%d+)") if not id then id = url:match("^(%d+)$") -- direct ID only end return id end importBtn.MouseButton1Click:Connect(function() local input = urlBox.Text if input == "" then outputBox.Text = "❌ Please enter a valid game URL or ID!" return end local placeId = extractIdFromUrl(input) if not placeId then outputBox.Text = "❌ Could not extract a valid numeric ID from input!" return end outputBox.Text = "⏳ Loading place ID: "..placeId.." ..." -- Remove old export folder if exists if CoreGui:FindFirstChild("ExportedGame") then CoreGui.ExportedGame:Destroy() end -- Try to load place asset (may error if not uncopylocked) local success, model = pcall(function() return InsertService:LoadAsset(tonumber(placeId)) end) if not success or not model or not model:IsA("Model") then outputBox.Text = "❌ Failed to load asset. Place may be locked or invalid." return end outputBox.Text = "✅ Place loaded! Preparing export folder..." local exportFolder = Instance.new("Folder") exportFolder.Name = "ExportedGame" -- Move all descendants of the loaded model to export folder for _, item in pairs(model:GetChildren()) do item.Parent = exportFolder end -- Also clone workspace explicitly (important) local workspaceClone = workspace:Clone() workspaceClone.Parent = exportFolder -- Clone key services local function safeClone(name) local obj = game:FindFirstChild(name) if obj then local cloned = obj:Clone() cloned.Parent = exportFolder end end safeClone("StarterGui") safeClone("StarterPack") safeClone("StarterPlayer") safeClone("ReplicatedStorage") safeClone("ServerScriptService") safeClone("Lighting") exportFolder.Parent = CoreGui outputBox.Text = "✅ Export ready! Run this in Delta console:\ngetsaveinstance(game.CoreGui.ExportedGame)" end)local InsertService = game:GetService("InsertService") local CoreGui = game:GetService("CoreGui") local gui = Instance.new("ScreenGui", CoreGui) gui.Name = "UncopylockedGameImporterGUI" local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 460, 0, 340) frame.Position = UDim2.new(0.5, -230, 0.5, -170) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.Active = true frame.Draggable = true local title = Instance.new("TextLabel", frame) title.Text = "🎮 Uncopylocked Game Importer" title.Font = Enum.Font.GothamBold title.TextSize = 24 title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundColor3 = Color3.fromRGB(40, 40, 40) title.TextColor3 = Color3.fromRGB(255, 255, 255) local urlBox = Instance.new("TextBox", frame) urlBox.PlaceholderText = "Paste Roblox uncopylocked game URL or ID here" urlBox.Size = UDim2.new(0.9, 0, 0, 40) urlBox.Position = UDim2.new(0.05, 0, 0, 50) urlBox.Text = "" urlBox.ClearTextOnFocus = false urlBox.TextColor3 = Color3.fromRGB(255, 255, 255) urlBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) urlBox.Font = Enum.Font.Gotham urlBox.TextSize = 18 local importBtn = Instance.new("TextButton", frame) importBtn.Text = "⬇️ Import Game by URL/ID" importBtn.Size = UDim2.new(0.9, 0, 0, 50) importBtn.Position = UDim2.new(0.05, 0, 0, 100) importBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0) importBtn.TextColor3 = Color3.fromRGB(255, 255, 255) importBtn.Font = Enum.Font.GothamBold importBtn.TextSize = 20 local infoLabel = Instance.new("TextLabel", frame) infoLabel.Text = [[ Paste the uncopylocked game's URL or ID above. The script will try to load the place model. If successful, it clones Workspace, StarterGui, StarterPack, ReplicatedStorage, ServerScriptService, Lighting, and StarterPlayer to 'ExportedGame' folder under CoreGui. Then run in Delta console: getsaveinstance(game.CoreGui.ExportedGame) to export as .rbxm file. ]] infoLabel.Size = UDim2.new(0.9, 0, 0, 120) infoLabel.Position = UDim2.new(0.05, 0, 0, 160) infoLabel.TextWrapped = true infoLabel.TextColor3 = Color3.fromRGB(230, 230, 230) infoLabel.BackgroundTransparency = 1 infoLabel.Font = Enum.Font.Gotham infoLabel.TextSize = 14 local outputBox = Instance.new("TextBox", frame) outputBox.Size = UDim2.new(0.9, 0, 0, 40) outputBox.Position = UDim2.new(0.05, 0, 0, 280) outputBox.PlaceholderText = "Status / Output" outputBox.Text = "" outputBox.ClearTextOnFocus = false outputBox.TextColor3 = Color3.fromRGB(255, 255, 255) outputBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) outputBox.Font = Enum.Font.Gotham outputBox.TextSize = 16 outputBox.MultiLine = false outputBox.TextEditable = false local close = Instance.new("TextButton", frame) close.Text = "X" close.Size = UDim2.new(0, 30, 0, 30) close.Position = UDim2.new(1, -35, 0, 5) close.BackgroundColor3 = Color3.fromRGB(170, 0, 0) close.TextColor3 = Color3.fromRGB(255, 255, 255) close.Font = Enum.Font.GothamBold close.TextSize = 18 close.MouseButton1Click:Connect(function() gui:Destroy() end) local function extractIdFromUrl(url) local id = url:match("games/(%d+)") or url:match("places/(%d+)") or url:match("roblox.com/(%d+)") if not id then id = url:match("^(%d+)$") -- direct ID only end return id end importBtn.MouseButton1Click:Connect(function() local input = urlBox.Text if input == "" then outputBox.Text = "❌ Please enter a valid game URL or ID!" return end local placeId = extractIdFromUrl(input) if not placeId then outputBox.Text = "❌ Could not extract a valid numeric ID from input!" return end outputBox.Text = "⏳ Loading place ID: "..placeId.." ..." -- Remove old export folder if exists if CoreGui:FindFirstChild("ExportedGame") then CoreGui.ExportedGame:Destroy() end -- Try to load place asset (may error if not uncopylocked) local success, model = pcall(function() return InsertService:LoadAsset(tonumber(placeId)) end) if not success or not model or not model:IsA("Model") then outputBox.Text = "❌ Failed to load asset. Place may be locked or invalid." return end outputBox.Text = "✅ Place loaded! Preparing export folder..." local exportFolder = Instance.new("Folder") exportFolder.Name = "ExportedGame" -- Move all descendants of the loaded model to export folder for _, item in pairs(model:GetChildren()) do item.Parent = exportFolder end -- Also clone workspace explicitly (important) local workspaceClone = workspace:Clone() workspaceClone.Parent = exportFolder -- Clone key services local function safeClone(name) local obj = game:FindFirstChild(name) if obj then local cloned = obj:Clone() cloned.Parent = exportFolder end end safeClone("StarterGui") safeClone("StarterPack") safeClone("StarterPlayer") safeClone("ReplicatedStorage") safeClone("ServerScriptService") safeClone("Lighting") exportFolder.Parent = CoreGui outputBox.Text = "✅ Export ready! Run this in Delta console:\ngetsaveinstance(game.CoreGui.ExportedGame)" end)