Could someone please expain this script?

Whats up. I was wondering around the DevForum and I saw a script. This script is supposedly supposed to print out all of the ID’s a user has created. What I want to know is how does this script work, could there be any senarios where the script doesn’t work, and other information that could be useful for me to know. I’m asking this because I’m interested in how games like PLS DONATE and STARVING ARTISTS work and function. Here is the script:

local http = game:GetService("HttpService")

local baseUrl = "https://www.roproxy.com/users/inventory/list-json?assetTypeId=34&cursor=&itemsPerPage=100&pageNumber=%s&userId=%s"

local function getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
	gamepasses = gamepasses or {}
	pageNumber = pageNumber or 1
	lastLength = lastLength or math.huge
	
	local requestUrl = baseUrl:format(pageNumber, userId)
	local success, result = pcall(function()
		return http:GetAsync(requestUrl)
	end)
	
	if success then
		if result then
			local success2, result2 = pcall(function()
				return http:JSONDecode(result)
			end)
			
			if success2 then
				if result2 then
					for _, gamepass in ipairs(result2.Data.Items) do
						if gamepass.Creator.Id == userId then
							table.insert(gamepasses, gamepass.Item.AssetId)
						end
					end
					
					if result:len() ~= lastLength then
						lastLength = result:len()
						pageNumber += 1
						getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
					end
				end
			else
				warn(result)
				getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
			end
		end
	else
		warn(result)
		getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
	end
	return gamepasses
end

local userGamepasses = getUserCreatedGamepassesRecursive(2032622)
print(#userGamepasses) --6 gamepasses.
for _, gamepassId in ipairs(userGamepasses) do
	print(gamepassId) --6 gamepass IDs.
end

Here is the link to the original post just in case some of you are interested in this as well: Player Created Gamepasses - DevForum

1 Like

This is a script for retrieving a user’s created game passes using the RoProxy API. Here’s a brief overview of how the script works:

The script gets a reference to the HttpService, which is a Roblox service that allows HTTP requests to be made from within a game. The baseUrl variable contains a URL template for the RoProxy API endpoint that returns a JSON list of game passes for a given user ID. The getUserCreatedGamepassesRecursive function is defined to recursively retrieve all of a user’s created game passes using the RoProxy API. The function takes in the user ID, an optional list of game passes, an optional page number, and an optional last length parameter. Inside the function, the http:GetAsync method is used to make an HTTP GET request to the RoProxy API endpoint with the appropriate URL for the current page number and user ID. The result of the request is stored in the result variable. If the request was successful (i.e., pcall returned true), the result is then decoded from JSON format into a Lua table using the http:JSONDecode method. The resulting table contains information about the user’s game passes. The script then iterates over each game pass in the table, and if the game pass’s creator ID matches the user ID, it adds the game pass’s asset ID to the gamepasses list. The script then checks if the length of the result string has changed from the last time the function was called. If it has not changed, then there are no more game passes to retrieve, and the function returns the gamepasses list. If there are more game passes to retrieve, then the function recursively calls itself with an incremented page number and the current gamepasses list. Finally, the script calls the getUserCreatedGamepassesRecursive function with a user ID of 2032622, which retrieves all of that user’s created game passes. The script then prints the total number of game passes retrieved (#userGamepasses), followed by each game pass ID in the list.

Overall, this script demonstrates how to use the RoProxy API and the HttpService in Lua to retrieve information about a user’s game passes.

If anyone still has more information on this topic please reply :smiley:

Would you know if there was a way to create a custom proxy as an atlernate to RoProxy?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.