Group

This page has methods that include things like making group shouts & ranking users. The page below introduces you to "promises" which is what is used to handle success and errors with the API.

Introduction to Promises

shout

This method requires authorization.

This method allows you to shout in a group (if you have permissions).

Sample code: (sent from my own group)

client.group:shout(12551284,"hello world"):andThen(function(response)
    print(response)
end):catch(warn)

Arguments:

Type
Name

integer

groupId

string

message

Returns: <array>

{
    ["body"] = "hello world (sent from an API:tm:)",
    ["created"] = "2021-10-10T17:27:41.233Z",
    ["poster"] = {
        ["buildersClubMembershipType"] = "None",
        ["displayName"] = "imAnExampleDeveloper",
        ["userId"] = 2969571965,
        ["username"] = "imAnExampleDeveloper"
    },
    ["updated"] = "2021-10-11T21:31:25.8120424Z"
}

rank

This method requires authorization.

This method allows you to rank a specified user in a group to a specified rank (it has to exist and they cannot already be that rank or it will error)

Sample code:

local player = game:GetService("Players").imAvizandum;
client.group:rank(player,12551284,52):andThen(function(response)
    print(response)
end):catch(warn)

Arguments:

Type
Name

integer (userId) or object (player)

player

integer

groupId

integer

group rank

Returns:

<array> (none of the information in this is valid, it's just a blank array)

getAuditLogs

This method requires authorization.

This method gets group audit logs in a page format. More about pages below if you haven't used them:

Introduction to Pages

Sample code:

client.group:getAuditLogs(12551284):andThen(function(r)
    print(r:getCurrentPage())
end):catch(warn)

Arguments:

Type
Name

integer

groupId

Returns:

<page object>

getGroupWall

This method does not natively require authentication, but some groups have their wall hidden so I'm going to enforce it.

This method provides you with the group's wall and posts. It also uses a page format. More about pages below if you haven't used them:

Introduction to Pages

Sample code:

client.group:getGroupWall(1):andThen(function(wall)
-- do stuff here
end):catch(warn)

Arguments:

Type
Name

integer

groupId

Returns:

<page object>

exile

This method requires authorization.

This method exiles (kicks out) the specified user from a group.

Sample code:

-- You can input an actual player or a userId for some methods
client.group:exile(game.Players.Roblox,123456):andThen(function(response)
    -- pretty sure the response is always empty
end):catch(warn)

Arguments:

Type
Name

integer / player object

userId

integer

groupId

Returns: {}

updateDescription

This method requires authorization and ownership of the specified group.

This method updates the specified group's description. It requires the authorized account to be the group's owner.

Sample code:

client.group:updateDescription(1,"The first roblox group!"):andThen(function(response)
--> wow
end):catch(warn);

Arguments:

Type
Name

integer

groupId

string

description

Returns: <array>

{
    newDescription = ...
}

deleteWallPost

This method requires authentication

Sample code:

-- The post variable here is grabbed from a random post fetched in "getGroupWall"
-- You can directly provide a post from that array or just provide it's ID

client.group:deleteWallPost(12551284,post):andThen(function(resp)
    print(resp)
end):catch(warn)

Arguments:

Type
Name

integer

groupId

integer / array

wall post

Returns: {}

deleteWallPostsByUser

This method requires authentication.

This method deletes all of the posts on the wall by a specified user.

Sample code:

client.group:deleteWallPostsByUser(12551284,123456):andThen(function(resp)
    print(resp)
end):catch(warn)

Arguments:

Type
Name

integer

groupId

integer / player object

userId

Returns: {}

getJoinRequests

This method requires authentication.

This method provides you with the group's join requests. It also uses a page format. More about pages below if you haven't used them:

Introduction to Pages

Sample code:

client.group:getJoinRequests(12551284):andThen(function(requests)
-- cool things here
end):catch(warn)

Arguments:

Type
Name

integer

groupId

Returns <page object>

acceptJoinRequests

This method requires authentication.

This method allows you to bulk accept up to hundreds of join requests at the same time. You can also just accept a single request.

Sample code:

client.group:acceptJoinRequests(12551284,87424828):andThen(function(response)
    --> {}
end):catch(warn)

After the group ID, you can have however many user IDs you want, the example I provided only has one.

Arguments:

Type
Name

integer

groupId

integer (unlimited amount of times)

userId

Returns: {}

declineJoinRequests

This method requires authentication.

This method allows you to bulk decline up to hundreds of join requests at the same time. You can also just decline a single request.

Sample code:

client.group:declineJoinRequests(12551284,87424828):andThen(function(response)
    --> {}
end):catch(warn)

After the group ID, you can have however many user IDs you want, the example I provided only has one.

Arguments:

Type
Name

integer

groupId

integer (unlimited amount of times)

userId

Returns: {}

getGroupInformation

This method does not require authentication.

This method provides group information for the specified ID such as; if public joining is allowed, shout info, description, name, owner, etc.

Sample code:

client.group:getGroupInformation(12345678):andThen(function(information)
    print(information)
end):catch(warn)

Arguments:

Type
Name

integer

groupId

Returns: <array>

getUsers

This method does not require authentication.

This method provides all the users in a group (in 100 increments as pages), it also uses pages to navigate the web API. If you don't know how to use them, here's information on them:

Introduction to Pages

Sample code:

client.group:getUsers(1):andThen(function(pages)
-- do stuff lol
end):catch(warn)

Arguments:

Type
Name

integer

groupId

Returns: <pages>

createRank

This method requires authentication. It also costs 25 robux (if there is any)

This method creates a group rank in the specified group, be warned that it costs robux still. You also require ownership of said group with the cookie.

Sample code:

client.group:createRank(9231886,{
   name = "hi",
   description = "a role",
   rank = 100,
   useGroupFunds = false
}):andThen(print):catch(warn);

Arguments:

Type
Name

integer

groupId

array (name <string>, description <string>, rank <integer>, useGroupFunds <boolean>)

description

Returns: array (description <string>, id <integer>, name <string>, rank <integer>

modifyRankPermissions

This method requires authentication & ownership of the group.

This method modifies the specified rank's permissions and here's a list of permissions. (all of them are booleans)

  • DeleteFromWall

  • PostToWall

  • InviteMembers

  • PostToStatus

  • RemoveMembers

  • ViewStatus

  • ViewWall

  • ChangeRank

  • AdvertiseGroup

  • ManageRelationships

  • AddGroupPlaces

  • ViewAuditLogs

  • CreateItems

  • ManageItems

  • SpendGroupFunds

  • ManageClan

  • ManageGroupGames

Sample code: (you can update more than one at a time, I'm just keeping it simple in samples)

client.group:modifyRankPermissions(9231886,100,{
    ["ViewAuditLogs"] = true
}):andThen(function(response)
--> {}
end):catch(warn)

Arguments:

Type
Name

integer

groupId

integer

rank

array (permission <boolean>)

permissions to update

Returns: {}

getRoleInformation

This method does not require authentication.

This method gets information for a role like the roleset ID, rank, group, etc. I don't know why you need this but ok.

Sample code:

client.group:getRoleInformation(1,255):andThen(print):catch(warn)

Arguments:

Type
Name

integer

groupId

integer

rank

Returns: <array> example:

{
    ["groupId"] = 1,
    ["id"] = 28,
    ["name"] = "TREX",
    ["rank"] = 255,
}

Last updated