-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] if not isfolder("DownloadedAssets") then makefolder("DownloadedAssets") end local downloaded = {} local function saveAsset(assetUrl, name) if not assetUrl or type(assetUrl) ~= "string" then return end -- Ignore default Roblox engine assets (rbxasset://) if assetUrl:find("rbxasset://") and not assetUrl:find("%d+") then return end local assetId = assetUrl:match("%d+") if not assetId or downloaded[assetId] then return end downloaded[assetId] = true task.spawn(function() local apiUrl = "https://thumbnails.roblox.com/v1/assets?assetIds=" .. assetId .. "&size=512x512&format=Png" local success, apiResponse = pcall(function() return game:HttpGet(apiUrl) end) if success and apiResponse then local imageUrl = apiResponse:match('"imageUrl"%s*:%s*"(.-)"') if imageUrl and imageUrl ~= "null" and #imageUrl > 0 then local imgSuccess, imgData = pcall(function() return game:HttpGet(imageUrl) end) if imgSuccess and #imgData > 0 then local cleanName = name:gsub("[^%w%_%-]", "") if cleanName == "" then cleanName = "Asset" end writefile("DownloadedAssets/" .. cleanName .. "_" .. assetId .. ".png", imgData) print("[+] Saved game asset:", cleanName, "(" .. assetId .. ")") return end end end print("[-] Rate-limited or private ID:", assetId) end) task.wait(0.05) -- Throttle to prevent Roblox API block end -- Scan ONLY game-specific locations local targets = { game:GetService("Players").LocalPlayer:FindFirstChild("PlayerGui"), game:GetService("StarterGui"), game:GetService("ReplicatedStorage"), game:GetService("Workspace") } for _, container in ipairs(targets) do if container then for _, obj in ipairs(container:GetDescendants()) do -- Ignore player character models local parentModel = obj:FindFirstAncestorOfClass("Model") if not parentModel or not game.Players:GetPlayerFromCharacter(parentModel) then if obj:IsA("ImageLabel") or obj:IsA("ImageButton") then saveAsset(obj.Image, obj.Name) elseif obj:IsA("Decal") or obj:IsA("Texture") then saveAsset(obj.Texture, obj.Name) end end end end end