-
Notifications
You must be signed in to change notification settings - Fork 45
Group Functions
-
Groups
-
Group Gets
-
Group Events
Moves the user with userId target
up or down the list of ranks in group
by change
. For example changeRank(group, target, 1)
would promote the user 1 rank and changeRank(group, target, -1)
would demote them down 1. Note that this simply follows the list, ignoring ambiguous ranks. The full newRole
as well as the user's original oldRole
is returned.
Arguments
- group (number)
- target (number)
- change (number)
- optional jar (CookieJar)
Returns
(Promise)
- roles (Object)
- newRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- oldRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- newRole (Object)
Deletes the wall post with id
in group
. If page
is known it can be inserted to speed up finding the post, otherwise it will search for the post. Alternatively post
can be passed in, which only has to contain view
and parent.index
to work properly. Using post
will be much faster because it will not have to search for the post first.
Arguments
- group (number)
- id (number)
-
or post (Object)
- parent (Object)
- index (number)
- view (Object)
-
__VIEWSTATE
(string) -
__VIEWSTATEGENERATOR
(string) -
__EVENTVALIDATION
(string) -
__RequestVerificationToken
(string)
-
- parent (Object)
- optional page (number)
- optional jar (CookieJar)
Returns
(Promise)
Alias of changeRank(group, target, -1)
.
Arguments
- group (number)
- target (number)
- optional jar (CookieJar)
Returns
(Promise)
- roles (Object)
- newRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- oldRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- newRole (Object)
Exiles user with userId target
from group
and using option deleteAllPosts
. The senderRolesetId
is retrieved automatically if it is not provided.
Arguments
- group (number)
- target (number)
-
optional deleteAllPosts
- default false
- optional senderRolesetId
- optional jar (CookieJar)
Returns
(Promise)
Performs a payout in group with the groupId group
. If recurring
is true this will configure the recurring options for the group's payout replacing all old values, otherwise a one-time-payout is made. To clear the recurring payouts, pass in empty arrays to both member and amount. Argument member
can either be a single userId or an array of userIds. If it is a single value amount
must be as well, otherwise amount
has to be a parallel array of equal length. If usePercentage
is true amount
percentage of the total group funds is paid to the members, otherwise it pays amount
ROBUX. Note that recurring payouts are always percentages, and when recurring
is true usePercentage
is ignored.
Arguments
- group (number)
- members (number/Array)
-
either
userId
-
or
[userId1, userId2]
-
either
- amount (number/Array)
-
either
amount
-
or
[amount1, amount2]
-
either
-
optional recurring
- default false
-
optional usePercentage
- default false
- optional jar (CookieJar)
Returns
(Promise)
Accept
s user with username
into group
. Note that username
is case-sensitive.
Arguments
- group (number)
- username (string)
- accept (boolean)
- optional jar (CookieJar)
Returns
(Promise)
Raw utility for handling join requests based on their unique requestId
. If accept
is true the user is accepted into group
, otherwise they are denied.
Arguments
- group (number)
- requestId (number)
- accept (boolean)
- optional jar (CookieJar)
Returns
(Promise)
Joins the group with id group
. Unless useCache
is enabled the function will not cache because errors will occur if joining or leaving the same group multiple times, you can enable it if you are only joining or leaving a group once or many differenct groups once.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(Promise)
Leaves the group with id group
. Unless useCache
is enabled the function will not cache because errors will occur if joining or leaving the same group multiple times, you can enable it if you are only joining or leaving a group once or many differenct groups once.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(Promise)
Posts message message
on the group wall with groupId group
and return the wall post id id
. Because ROBLOX often does not provide error messages after failure a manual check has to be made to make sure the post was successful. Since this requires an extra step and also skips the cache it is disabled by default, only turn it on by enabling verify
if you absolutely have to make sure the post was successful. If you are using id
for anything this is recommended because otherwise you will get the id of the wrong post.
Arguments
- group (number)
- message (string)
- optional jar (CookieJar)
Returns
(Promise)
- id (number)
Alias of changeRank(group, target, 1)
.
Arguments
- group (number)
- target (number)
- optional jar (CookieJar)
Returns
(Promise)
- roles (Object)
- newRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- oldRole (Object)
- Name (string)
- Rank (number)
- ID (number)
- newRole (Object)
Promotes player with userId target
in group with groupId group
to rank rank
, roleset roleset
, or name name
. One is required but not all, use roleset
to speed up requests and name
if there are ambiguous ranks (same rank number). If a rank or name was passed the corresponding role will be returned.
Arguments
- group (number)
- target (number)
- either rank (number)
- or roleset (number)
- or name (string)
- optional jar (CookieJar)
Returns
(Promise)
- newRole (Object)
- NOTE: If the function was called directly with a roleset only
ID
is present - Name (string)
- Rank (number)
- ID (number)
- NOTE: If the function was called directly with a roleset only
Shouts message message
in the group with groupId group
. Leaving message
empty will clear the shout.
Arguments
- group (number)
-
optional message (string)
- default ""
- optional jar (CookieJar)
Returns
(Promise)
Gets audit log entries in group
for the specified action
or username
where action
is the actionTypeId. To find the actionTypeId for the action you want, go to the audit log and check the URL when you select a specific action. If username
selected only entries from that user are searched for. To specify what page(s) to retrieve use page
, which is a number or array of numbers. Negative numbers are allowed and instruct the function to return the trailing pages of the log.
Each row has an action
object which contains the ID of the target and any parameters it gets. Currently this will be populated with change rank, shout, and delete post logs. The target
is the ID of the user or game the action was targeted to. Sometimes there is no target and this will equal the user ID of the user who did the action. Params are in the order that they appear on the log.
For example, if you have a log with text: Froast changed user ROBLOX's rank from [L1] Initiate to [L2] Novice.
then
log.action.params[0] == '[L1] Initiate'
log.action.params[1] == '[L2] Novice'
log.action.target == 1 // (ROBLOX's user ID)
Not all log types are supported, if the log you want isn't added you will have to get the parameters yourself by using the full text
of the log.
The stream
argument can be a writable stream in order to handle logs without taking up a ton of RAM. Each log is individually written to the stream. The audit
object will still be fulfilled with the promise at the end but the logs
array will be empty.
Logs are sorted from most newest to oldest.
Arguments
- group (number)
- optional page (number/Array)
- optional action (number)
- optional username (string)
- optional jar (CookieJar)
Returns
(Promise)
- audit (Object)
- logs (Array)
- user (Object)
- name (string)
- id (number)
- role (string)
- text (string)
- Full text of the audit row
- action (Object)
- target (number)
- params (Array)
- date (Date)
- parent (Object)
- page (number)
- index (number)
- user (Object)
- totalPages (number)
- total (number)
- logs (Array)
Gets the first page of join requests from group
.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(Promise)
- requests (Array)
- request (Object)
- username (string)
- date (Date)
- requestId (number)
- request (Object)
Gets all players in group
with rank
, roleset
, or name
, which can be a single value or an array of values. If rank
is not specified all players from all ranks of group
are retrieved. If page
(which can be a number or Array) is specified a specific page of that ranks players will be retrieved. Players are returned in the order they appear in the rank list, with higher ranks at the end. The field rankIndex
specified the index of the rank the player is in on the list of ranks while index
and page
represents where the player is located in the list of players.
If a set of ranks was not specified and all players were retrieved, players will be returned in the order they appear on the site (same order in a rank) as well as the same order of ranks. In this case the owner of the group would always be the final player in the array. If a set of ranks is specified they are still kept in the same order per rank but the rank indexes and therefore the different groups of ranks will be parallel to the array.
The stream
argument can be a writable stream in order to handle players without taking up a ton of RAM. Each player is individually written to the stream. The group
object will still be fulfilled with the promise at the end but the players
array will be empty.
The getStatus
function is returned as a property of the promise and returns the percent completion.
Arguments
- group (number)
- either rank (number/Array)
- or roleset (number/Array)
- or name (string/Array)
- optional page (number/Array)
Returns
(Promise)
- group (Object)
- players (Array)
- player (Object)
- id (number)
- name (number)
- online (boolean)
- parent (Object)
- role (Object)
- Rank (number)
- ID (number)
- Name (string)
- page (number)
- rankIndex (number)
- role (Object)
- index (number)
- player (Object)
- totalPages (Array)
Contains the total number of pages for each individual role.
- role (Object)
- Rank (number)
- ID (number)
- Name (string)
- total (number)
- role (Object)
- players (Array)
Gets rank
of user with userId
in group
and caches according to settings.
Arguments
- group (number)
- userId (number)
Returns
(Promise)
- rank (number)
Gets the rank name
of user with userId
in group
and caches according to settings.
Arguments
- group (number)
- userId (number)
Returns
(Promise)
- name (string)
Returns role information of rank rank
, which can be a single rank or an array of ranks. The roles
object can be passed in directly from the getRoles
function or the group
id can be given to retrieve it automatically. If an array of ranks is inputted a parallel array of roles is returned. Alternatively, the name name
of the role can be searched for, this should be used if there are "ambiguous roles" that have the same rank. If ambiguous roles cannot be resolved an error will be thrown. The actual roleset id
may be used as well.
Arguments
- roles (Object)
- either rank (number/Array)
- or name (string/Array)
- or id (number/Array)
Returns
(Promise)
- role (Object)
- ID (number)
- Name (string)
- Rank (number)
Returns role information of a group with groupId group
in the form [{"ID":number,"Name":"string","Rank":number},{"ID":number,"Name":"string","Rank":number}]
.
Arguments
- group (number)
Returns
(Promise)
- roles (Object)
- ID (number)
- Name (string)
- Rank (number)
Gets the roleset
of the logged in user in group
.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(Promise)
- rolesetId (number)
Gets the current shout in group
. If there is no shout the promise is fulfilled but nothing is returned.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(Promise)
- shout (Object)
- message (string)
- author (Object)
- name (string)
- id (number)
- date (Date)
Gets posts on the group
wall. Parameter page
may be a number or array where negative numbers indicate trailing pages, if it is not specified all pages of the wall will be retrieved.
The body of the post is in content
and the id
and name
of the poster are stored in the author
object. The id
is the unique ID of the wall post that is internally used by ROBLOX. This serves no real use other than reporting it (although it can be used indirectly to track down specific posts).
The page
the post was found on and its index
on that page are both in the parent
object.
If view
is true the viewstates of each page will be returned in the views
object, with each page having its viewstates at the corresponding page number. For example page 5 of the wall will have its view stored in wall.views[5]
.
The getStatus
function is returned as a property of the promise and returns the percent completion of the operation.
If stream
is specified post
objects will be written to the stream and will not be added to the wall object. The stream can process posts as they are retrieved but for the most part should be written to a file for post processing. This should be used for extremely large walls, as when javascript arrays reach a certain point it slows down considerably and will begin running into a lot of errors. Note that if stream
is specified the entries will not be returned in order because there is no chance for the script to sort them. Page numbers and indexes, however, are always returned with the post, allowing the data to be sorted later. The wall
object will still be fulfilled with the promise at the end but the posts
array will be empty.
Arguments
- group (number)
- optional page (number/Array)
- optional stream (Stream)
- optional jar (CookieJar)
Returns
(Promise)
- wall (Object)
- posts (Array)
- post (Object)
- content (string)
- author (Object)
- id (number)
- name (string)
- date (Date)
- parent (Object)
- page (number)
- index (number)
- id (number)
- post (Object)
- totalPages (number)
- views (Object)
- page (number): view (Object)
-
__VIEWSTATE
(string) -
__VIEWSTATEGENERATOR
(string) -
__EVENTVALIDATION
(string) -
__RequestVerificationToken
(string)
-
- page (number): view (Object)
- posts (Array)
Gets the post with id
. If view
is true view
information will be returned, which can be used to do actions on the post. If page
is known it can be given to speed up the request, otherwise it will be found automatically using a binary search.
Arguments
- group (number)
- optional id (number)
- optional page (number)
- optional jar (CookieJar)
Returns
(Promise)
- post (Object)
- content (string)
- author (Object)
- id (number)
- name (string)
- date (Date)
- id (number)
- parent (Object)
- page (number)
- index (number)
- view (Object)
- totalPages (number)
This function emits all join requests and waits until all of them have been resolved by firing the handle
event with the request and either true or false. You can also pass a third argument callback
to handle to execute once the join request has been handled. Once all requests on a page have been resolved, the next page is collected. Make sure that all join requests are handled in some way. Because this function has to wait for input, it does handle timeouts but does them within the function as opposed to within shortPoll.
To accept all new users that aren't on a blacklist and send them a message, for example:
var blacklist = [1, 261]
var evt = rbx.onJoinRequestHandle(18)
evt.on('data', function (request) {
rbx.getIdFromUsername(request.username).then(function (id) {
for (var i = 0; i < blacklist.length; i++) {
if (blacklist[i] === id) {
evt.emit('handle', request, false);
return;
}
}
evt.emit('handle', request, true, function () {
rbx.message(id, 'Welcome', 'Welcome to my group');
});
});
});
Arguments
- group (number)
- optional jar (CookieJar)
Settings
- event
- onJoinRequestHandle (number)
Returns
(EventEmitter)
- data
- request (Object)
- name (string)
- date (Date)
- requestId (number)
- request (Object)
Fires when there is a shout in the group with groupId group
. If the shout was cleared a shout with a blank message and the current date will be fired.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(EventEmitter)
- data
- shout (Object)
- message (string)
- author (Object)
- name (string)
- userId (number)
- date (Date)
- shout (Object)
Example
To get a shout update on a group and log it to console:
let GroupID = 123456;
rbx.login({username: "USERNAME", password: "PASSWORD"}).then((success) => { // Required if the group's shout is private
let onShout = rbx.onShout(GroupID);
onShout.on('data', function(post) {
console.log(post.author.username + " shouted: " + post.message);
});
onShout.on('error', function (err) {
console.error(err.stack);
});
console.log('Logged in.');
}).catch((err) => console.error(err.stack));
Fires when there is a new wall post in the group with groupId group
. If view
is enabled the wall posts viewstate will be returned in view
, otherwise it will not be present.
Arguments
- group (number)
- optional jar (CookieJar)
Returns
(EventEmitter)
- data
- post (Object)
- content (String)
- author (Object)
- id (number)
- name (String)
- date (Date)
- id (number)
- view (Object)
-
__VIEWSTATE
(string) -
__VIEWSTATEGENERATOR
(string) -
__EVENTVALIDATION
(string) -
__RequestVerificationToken
(string)
-
- post (Object)
Recommended! Use Noblox! Noblox is a improved version!