Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

is there a function that can return the number of members a group has?

i am simply curious to know if there is a function that can return the number of members that a group has and if so how would i use it??

4 comments

1

This is a good question

0

thank you

0

Agreed. I did check ROBLOX's official group APIs when I looked at this question to see if I could find anything, but with no luck.

0

alright thanks anyway

1 answer

✓ Accepted answer

There is probably some public API out there, but since I have no knowledge of web development and it seems you do not either, I will show you the way I would do it using only RBX.Lua.

When thinking of where I would find the size of a group on the website, I immediately thought of the group page. When you visit a group page on Roblox it begins with http://www.roblox.com/Groups/group.aspx?gid= followed by the group's id number.

Now that we know on what page what we are looking for would be displayed on, we just have to get the web page! Fortunately, ROBLOX's HttpService already has one for us: GetAsync! GetAsync can give us the HTML representation of the page that we request, which is a step closer to extracting the information we need.

Note: When you use GetAsync on a page on ROBLOX, be sure to use roproxy.tk or some other ROBLOX proxy instead of roblox.com. GetAsync cannot be used on ROBLOX's own pages!

Next, we need to process the HTML and find exactly what we are looking for. Since I have no knowledge of HTML, I just opened up the group webpage and looked for the number on Chrome. I used CTRL+F to find "Members:" in the huge mess of HTML, and I found the following:

<div id="MemberCount">Members: 8</div>

Since GetAsync gets us a string with the HTML in it, we just have to find that line! With my knowledge of string manipulation in Lua, I knew there was a function called match in the string library that I could use to match lines that are similar to the one above from a large amount of text. If html was a variable that pointed to the HTML source, then I would do something like:

local pattern = [[<div id="MemberCount">Members: %d+</div>]]
local line = html:match(pattern)

The above would get rid of the rest of the code and give me only the line that looks similar to the line above. We're not done yet, though! Notice that we still do not only have numbers. Fortunately, in this line there is only one possible number, which is the group size. We can use match again and search only for numbers using the string pattern %d+. I would then do something like this:

local pattern = [[<div id="MemberCount">Members: %d+</div>]]
local line = html:match(pattern)
local size = line:match("%d+")

Then we're done! Altogether, here is a function that will get the size of a group on ROBLOX.

function getGroupSize(groupId)
	local groupLink = "http://www.roproxy.tk/My/Groups.aspx?gid=" .. groupId
	local html = game:GetService("HttpService"):GetAsync(groupLink, true)
	local pattern = [[<div id="MemberCount">Members: %d+</div>]]
	local size = tonumber(html:match(pattern):match("%d+"))
	return size
end

-- Test with my development circle, Hanabi
-- http://www.roblox.com/My/Groups.aspx?gid=2578747
print(getGroupSize(2578747)) --> 8

2 comments

1

wow

1

amazing

This discussion is preserved as it was. New answers, comments, and votes are closed.