Skip to content

Group

This reference documents APIs relating to groups (also known as communities).

rblxopencloud.Group(id, api_key)

Bases: Creator

Represents a group on Roblox. It can be used for both uploading assets, and accessing group information.

Parameters:

Name Type Description Default
id int

The group's ID.

required
api_key str

Your API key created from Creator Dashboard with access to this group.

required

Attributes:

Name Type Description
id int

The group's ID.

name Optional[str]

The group's name.

description Optional[str]

The group's description.

created_at Optional[datetime]

When the group was created.

updated_at Optional[datetime]

When the group was last updated.

owner Optional[User]

The group's group's owner.

member_count Optional[int]

The number of members in the group.

public_entry Optional[bool]

Wether you can join without being approved.

locked Optional[bool]

Wether the group has been locked by Roblox moderation.

verified Optional[bool]

Wether the group has a verified badge.

fetch_asset(asset_id)

Fetches an asset uploaded to Roblox.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to fetch.

required

Returns:

Type Description
Asset

An Asset representing the asset.

upload_asset(file, asset_type, name, description, expected_robux_price=0, asset_privacy=AssetPrivacy.Default)

Uploads the file to Roblox as an asset and returns an Operation. The following asset types are currently supported:

Asset Type File Formats
Decal .png, .jpeg, .bmp, .tga
Audio .mp3, .ogg, .wav, .flac
Model .fbx, .gltf, .glb, .rbxm, .rbxmx
Video .mp4, .mov
Animation .rbxm, .rbxmx

According to Roblox staff in this DevForum post, the maximum file size using the API is 30MB.

Parameters:

Name Type Description Default
file BytesIO

The file opened in bytes to be uploaded.

required
asset_type Union[AssetType, str]

The AssetType for the asset type you're uploading.

required
name str

The name of your asset.

required
description str

The description of your asset.

required
expected_robux_price int

The amount of robux expected to upload this asset. Will fail if lower than the actual price.

0
asset_privacy AssetPrivacy

Whether the asset is restricted or open use.

Default

Returns:

Type Description
Operation[Asset]

Returns a Operation for the asset upload operation where T is an Asset.

Danger

Avoid uploading assets to Roblox that you don't have full control over, such as AI generated assets or content created by unknown people. Assets uploaded that break Roblox's Terms of Services can get your account moderated.

For OAuth2 developers, it has been confirmed by Roblox staff in this DevForum post, that your app will not be punished if a malicious user uses it to upload Terms of Service violating content, and instead the authorizing user's account will be punished.

update_asset(asset_id, file=None, name=None, description=None, expected_robux_price=0, facebook_social_link=None, twitter_social_link=None, youtube_social_link=None, twitch_social_link=None, discord_social_link=None, github_social_link=None, roblox_social_link=None, guilded_social_link=None, devforum_social_link=None, try_place_id=None)

Updates an asset on Roblox with the provided file. The following asset types are currently supported for file uploading:

Asset Type File Formats
Model .fbx

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to update.

required
file BytesIO

The file opened in bytes to upload. The asset must be one of the supported file formats above.

None
name str

The new name of the asset.

None
description str

The new description for the asset.

None
expected_robux_price int

The amount of robux expected to update this asset. Will fail if lower than the actual price.

0
facebook_social_link Optional[Union[AssetSocialLink, None]]

The new Facebook social link for the asset, or False to remove the social link.

None
twitter_social_link Optional[Union[AssetSocialLink, None]]

The new Twitter social link for the asset, or False to remove the social link.

None
youtube_social_link Optional[Union[AssetSocialLink, None]]

The new YouTube social link for the asset, or False to remove the social link.

None
twitch_social_link Optional[Union[AssetSocialLink, None]]

The new Twitch social link for the asset, or False to remove the social link.

None
discord_social_link Optional[Union[AssetSocialLink, None]]

The new Discord social link for the asset, or False to remove the social link.

None
github_social_link Optional[Union[AssetSocialLink, None]]

The new GitHub social link for the asset, or False to remove the social link.

None
roblox_social_link Optional[Union[AssetSocialLink, None]]

The new Roblox social link for the asset, or False to remove the social link.

None
guilded_social_link Optional[Union[AssetSocialLink, None]]

The new Guilded social link for the asset, or False to remove the social link.

None
devforum_social_link Optional[Union[AssetSocialLink, None]]

The new DevForum social link for the asset, or False to remove the social link.

None
try_place_id Optional[Union[int, bool]]

A place ID to set for the asset's 'Try in Roblox' button. Set to False to remove the Try in Roblox button.

None

Returns:

Type Description
Operation[Asset]

Returns a Operation for the asset update operation where T is an Asset.

list_asset_versions(asset_id, limit=None)

Iterates all avaliable versions of the asset, providing the latest version first.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to find versions for.

required
limit int

The maximum number of versions to return.

None

Yields:

Type Description
Iterable[AssetVersion]

An asset version for each version of the asset.

fetch_asset_version(asset_id, version_number)

Fetches the version for a specific version number of the asset.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to find the version for.

required
version_number int

The version number to find.

required

Returns:

Type Description
AssetVersion

The found asset version.

rollback_asset(asset_id, version_number)

Reverts the asset to a previous version specified.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to rollback.

required
version_number int

The version number to rollback to.

required

Returns:

Type Description
AssetVersion

The new asset version.

archive_asset(asset_id)

Archives the asset so it cannot be seen on the website or used in experiences.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to archive.

required

Returns:

Type Description
Asset

The updated asset information.

restore_asset(asset_id)

Unarchives an archived asset.

Parameters:

Name Type Description Default
asset_id int

The ID of the archived asset to unarchive.

required

Returns:

Type Description
Asset

The updated asset information.

fetch_asset_delivery_location(asset_id, version_number=None, expected_asset_type=None)

Fetches the download location for this asset using Asset Delivery.

Requires the legacy-assets:manage API key permission.

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to fetch the location for.

required
version_number Optional[int]

The specific version number of the asset to fetch the location for. Defaults to the latest version.

None
expected_asset_type Optional[Union[AssetType, str]]

The expected type of the asset. If provided, the request will fail if the asset is not of the provided type.

None

Returns:

Type Description
AssetDeliveryLocation

An AssetDeliveryLocation containing information on downloading the asset.

fetch_creator_store_product(asset_type, product_id)

Fetches information about an asset on the creator store.

Parameters:

Name Type Description Default
asset_type Union[AssetType, str]

The type of asset the product is.

required
product_id int

The ID of the asset to fetch.

required

Returns:

Type Description
CreatorStoreProduct

A CreatorStoreProduct representing the asset.

Tip

If the asset type is unknown or other information such as the description is required, use the fetch_asset.

fetch_toolbox_asset(asset_id)

Fetches information about an asset in the toolbox.

Requires creator-store-product:read on an API key. OAuth2 authorization is not supported. No authorization is supported (i.e. api_key is None).

Parameters:

Name Type Description Default
asset_id int

The ID of the asset to fetch.

required

Returns:

Type Description
ToolboxAsset

The asset information for the toolbox asset. The current creator object (e.g. user or group) will also be updated with resolved information such as name and verified status.

Tip

To search for assets in the toolbox, use ApiKey.search_toolbox.

grant_assets_permission(action, subject, assets)

Grants permission to the subject to perform the specified action on the provided assets. See the table in AssetPermissionAction for allowed actions per asset and subject type.

Parameters:

Name Type Description Default
action AssetPermissionAction

The action to grant permission for.

required
subject Union[AssetPermissionSubject, Experience, User, Group, GroupRole]

The subject to grant the permission to.

required
assets list[Union[int, Asset, AssetPermissionRequest]]

The asset IDs or assets to grant permission for. Use AssetPermissionRequest to specify additional options per asset.

required

Returns:

Type Description
AssetPermissionResult

The results of each asset permission grant request. Do not expect the function to raise an exceptions for errors, instead check the failed_asset_ids attribute.

Warning

Once permission is granted to a subject, it cannot be revoked using the API. It may also not be able to be revoked using the website, depending on the asset type and subject type. For instance, granting Open Use to All on a decal sets it as Open Use which cannot be revoked; however, granting Download to All on a place can be revoked on the Creator Dashboard.

Example

Setting the root place of an experience to be uncopylocked.

from rblxopencloud import Experience, AssetPermissionAction,             AssetPermissionSubject, AssetPermissionSubjectType

experience = Experience(00000000, "...") # initialise with ID and API key
experience.fetch_info() # Fetch root place

# grant download permission to everyone on Roblox
experience.creator.grant_assets_permission(
    action=AssetPermissionAction.Download,
    subject=AssetPermissionSubject(
        type=AssetPermissionSubjectType.All
    ),
    assets=[experience.root_place.get_asset()]
)
>>> <rblxopencloud.AssetPermissionResult granted_asset_ids=[00000000] failed_asset_ids={}>

Setting an asset to be Open Use.

from rblxopencloud import User, AssetPermissionAction,             AssetPermissionSubject, AssetPermissionSubjectType,             AssetPermissionRequest

creator = User(00000000, "...") # initialise with user ID and API key

creator.grant_assets_permission(
    action=AssetPermissionAction.Use,
    subject=AssetPermissionSubject(
        type=AssetPermissionSubjectType.All
    ),
    assets=[
        AssetPermissionRequest(
            asset_id=00000000, # ID of the asset to grant permission for
            grant_dependencies=True
        )
    ]
)
>>> <rblxopencloud.AssetPermissionResult granted_asset_ids=[00000000] failed_asset_ids={}>

Granting a specific user permission to use an asset.

from rblxopencloud import User, AssetPermissionAction,             AssetPermissionSubject, AssetPermissionSubjectType,             AssetPermissionRequest

creator = User(00000000, "...") # initialise with user ID and API key

creator.grant_assets_permission(
    action=AssetPermissionAction.Use,
    subject=AssetPermissionSubject( # subject can also be a User or Group object
        type=AssetPermissionSubjectType.User,
        id=00000000 # ID of the user to grant permission to
    ),
    assets=[
        AssetPermissionRequest(
            asset_id=00000000, # ID of the asset to grant permission for
            grant_dependencies=True
        )
    ]
)
>>> <rblxopencloud.AssetPermissionResult granted_asset_ids=[00000000] failed_asset_ids={}>

fetch_info()

Updates the empty parameters in this Group object and returns it self with the group info.

fetch_member(user_id)

Returns the member info for the provided user or None if the user is not a member of the group.

Parameters:

Name Type Description Default
user_id int

The user ID to fetch member info for.

required

Returns:

Type Description
Optional[GroupMember]

The GroupMember for the provided user or None if the user isn't a member of the group.

update_member(user_id, role_id=None)

Deprecated API

This endpoint has been deprecated in favour of Group.assign_member_role and Group.unassign_member_role .

Updates the member with the requested information and returns the updated member info.

Parameters:

Name Type Description Default
user_id int

The user ID to fetch member info for. Must not be the authorizing user.

required
role_id int

If provided, updates the member's group role to the provided GroupRole.id. This role must not be Owner or Guest and must be lower than the authorizing user's rank.

None

Returns:

Type Description
Optional[GroupMember]

The updated member.

assign_member_role(user_id, role_id)

Assigns a role to the member and updates the member object. If the member already has the requested role, no action occurs.

The Owner, Member, and Guest roles cannot be assigned to a member.

Requires group:write on an API Key or OAuth2 authorization.

Parameters:

Name Type Description Default
user_id int

The user ID to fetch member info for.

required
role_id int

The ID of the role to assign.

required

Returns:

Type Description
Optional[GroupMember]

The updated member.

unassign_member_role(user_id, role_id)

Removes a role from a member and returns the member. If the member does not have the requested role, no action occurs.

The Owner, Member, and Guest roles cannot be unassigned from a member.

Requires group:write on an API Key or OAuth2 authorization.

Parameters:

Name Type Description Default
user_id int

The user ID to fetch member info for.

required
role_id int

The ID of the role to unassign.

required

Returns:

Type Description
Optional[GroupMember]

The updated member.

fetch_role(role_id, skip_cache=False)

Returns the role info for the provided role ID or None if the role ID isn't found.

Parameters:

Name Type Description Default
role_id int

The ID of the role to find.

required
skip_cache bool

Whether to ignore any cached role information for this group and fetch updated role information.

False

Returns:

Type Description
Optional[GroupRole]

The GroupRole for the provided role ID or None if the role couldn't be found.

Tip

This endpoint uses a role cache at the Group level. This means that the library will fetch roles the first time that role information is request, but further calls for any of the role fetching methods will resolve without sending another request.

list_members(limit=None, role_id=None)

Iterates each member in the group, optionally limited to a specific role.

Example

Prints the first 20 group members to the console along with their username and the name of their highest role.

for member in group.list_members(limit=20):
    member.fetch_info() # fetch_info is inherited from User - GroupMember bases User.
    role_info = member.fetch_top_role() # After the first call, roles for the whole group are cached.

    print(f"@{member.name} has role {role_info.name}")

Parameters:

Name Type Description Default
limit int

The maximum number of members to iterate. This can be None to return all members.

None
role_id int

If present, the api will only provide members with this role.

None

Yields:

Type Description
Iterable[GroupMember]

GroupMember for every member in the group.

list_roles(limit=None)

Iterates every role in the group.

Parameters:

Name Type Description Default
limit int

The maximum number of roles to iterate. This can be None to return all role.

None

Yields:

Type Description
Iterable[GroupRole]

GroupRole for every role in the group.

list_join_requests(limit=None, user_id=None)

Iterates every group join request for private groups.

Parameters:

Name Type Description Default
limit int

The maximum number of join requests to iterate. This can be None to return all join requests.

None
user_id int

If present, the api will only provide the join request with this user ID.

None

Yields:

Type Description
Iterable[GroupJoinRequest]

GroupJoinRequest for each user who has requested to join.

fetch_shout()

Returns GroupShout with information about the group's current shout. It requires permission to view the shout from the API key owner or OAuth2 authorizing user.

Returns:

Type Description
GroupShout

GroupShout with information about the group's shout.

accept_join_request(user_id)

Accepts the join request for the provided user.

Parameters:

Name Type Description Default
user_id int

The user ID to accept the join request for. Must have requested to join.

required

decline_join_request(user_id)

Declines the join request for the provided user.

Parameters:

Name Type Description Default
user_id int

The user ID to decline the join request for. Must have requested to join.

required

list_audit_logs(limit=None, action_type=None, user_id=None, descending=True)

Lists the audit log entries for the group, optionally filtered by action type and user ID.

Requires legacy-group:manage on an API Key or OAuth2 authorization.

Example

Prints the 50 most recent audit log entries for saving a place to the console, along with the username of the member who performed the action, their role name in the group and the place name and version ID.

for entry in group.list_audit_logs(limit=50, action_type=GroupAuditLogEntryActionType.SavePlace):
    # Fetch role will not make an additional request because the role info is cached from the audit log entry request
    role = entry.member.fetch_role()
    print(
        f"{entry.member.username} ({role.name}) saved {entry.description.get('AssetName')}, version ID: {entry.description.get('VersionNumber')}"
    )

Parameters:

Name Type Description Default
limit int

The maximum number of audit log entries to iterate. Defaults to None, meaning no limit.

None
action_type GroupAuditLogEntryActionType

Filters audit log entries to only return those of the specified action type.

None
user_id int

Filters audit log entries to only return those performed by the specified user ID.

None
descending bool

Whether to sort the audit log entries in descending order by creation time meaning the most recent entries are returned first.

True

Yields:

Type Description
Iterable[GroupAuditLogEntry]

The audit log entries for each audit log entry found.

Legacy API

This endpoint uses the legacy Groups API. Roblox has noted in this DevForum post that these endpoints may change without notice and break your application. Therefore, they should be used with caution.

Please report issues with this endpoint on the GitHub issue tracker or the Discord server.

Edge case with role caching

This endpoint caches some basic rank info (e.g. role ID, name, and rank number) for any role found in the audit log. This means that calls to GroupMember.fetch_roles and similar methods will use the cached role information. While this means that additional requests aren't used for these members, it means that information such as permissions, member counts and descriptions are unavailable for these cached roles.

Furthermore, it means future requests to the relveant role fetching methods for roles not found in the audit log will not be cached, so None will be returned instead.

If you want to ensure all role information is available and all roles are available, you should either call Group.list_roles before calling this method or set skip_cache=True for the next request for role information.

Non-creatable Dataclasses

rblxopencloud.GroupJoinRequest

Bases: User

Represents a user requesting to join a group.

Attributes:

Name Type Description
id int

The user's ID.

group Group

The group this object is related to.

requested_at datetime

The time when the user requested to join the Group.

Tip

This class bases User, so all user methods can be used from this object, such as GroupJoinRequest.list_inventory.

accept()

Accepts the join request for this user. Shortcut for Group.accept_join_request.

decline()

Declines the join request for this user. Shortcut for Group.decline_join_request .

rblxopencloud.GroupMember

Bases: User

Represents a user inside of a group.

Attributes:

Name Type Description
id int

The user ID of the group member.

role_ids list[int]

The IDs of all roles assigned to the member.

top_role_id int

The ID of the highest ranking assigned role to the member.

group Group

The group this group member is associated with.

joined_at Optional[datetime]

The time the user joined the group.

updated_at Optional[datetime]

The time the user was last update in the group (Such as rank change).

role_id int

Deprecated in favour of top_role_id. The ID of the highest assigned role to the group member.

Tip

This class bases User, so all user methods can be used from this object, such as GroupMember.list_inventory.

fetch_top_role(skip_cache=False)

Fetches the role info (rank, role name, etc) for the member's highest assigned role.

Parameters:

Name Type Description Default
skip_cache bool

Whether to ignore any cached role information for this group and fetch updated role information.

False

Returns:

Type Description
GroupRole

The member's highest role.

Tip

This endpoint uses a role cache at the Group level. This means that the library will fetch roles the first time that role information is request, but further calls for any of the role fetching methods will resolve without sending another request.

fetch_roles(skip_cache=False)

Fetches and returns a list of roles assigned to the group member.

Example

Prints the name of every role assigned to the member with user ID 287113233.

member = group.fetch_member(287113233)
for role in member.fetch_roles():
    print(role.name)

Parameters:

Name Type Description Default
skip_cache bool

Whether to ignore any cached role information for this group and fetch updated role information.

False

Returns:

Type Description
list[GroupRole]

Role info for each of the member's assigned roles.

Tip

This endpoint uses a role cache at the Group level. This means that the library will fetch roles the first time that role information is request, but further calls for any of the role fetching methods will resolve without sending another request.

assign_role(role_id)

Assigns a role to the member and updates the member object. If the member already has the requested role, no action occurs.

The Owner, Member, and Guest roles cannot be assigned to a member.

Requires group:write on an API Key or OAuth2 authorization.

Parameters:

Name Type Description Default
role_id int

The ID of the role to assign.

required

Returns:

Type Description
GroupMember

The updated member.

unassign_role(role_id)

Removes a role from the member and updates the member object. If the member does not have the requested role, no action occurs.

The Owner, Member, and Guest roles cannot be unassigned from a member.

Requires group:write on an API Key or OAuth2 authorization.

Parameters:

Name Type Description Default
role_id int

The ID of the role to unassign.

required

Returns:

Type Description
GroupMember

The updated member.

update(role_id=None)

Deprecated API

This endpoint has been deprecated in favour of GroupMember.assign_role and GroupMember.unassign_role .

Updates the member with the requested information and updates the member object attributes.

Parameters:

Name Type Description Default
role_id int

If provided, updates the member's group role to the provided GroupRole.id. This role must not be Owner or Guest and must be lower than the authorizing user's rank.

None

Returns:

Type Description
GroupMember

The updated GroupMember object.

rblxopencloud.GroupRole

Represents a role inside of a group.

Attributes:

Name Type Description
id int

The ID of the role.

name str

The name of the role.

rank int

The rank number of this role (0-255).

description Optional[str]

The description of the rank. Will be None if the authorizing user is the owner.

member_count Optional[int]

The number of members in this rank. Will be None if it is the guest rank.

permissions Optional[GroupRolePermissions]

The permissions this rank has. Will be None unless the authorizing user owns the group, the authorizing user's rank in the group is this rank, or it is the guest rank.

rblxopencloud.GroupRolePermissions

Represents a role's permissions inside of a group.

Attributes:

Name Type Description
view_wall_posts bool

View group wall

create_wall_posts bool

Post on group wall

delete_wall_posts bool

Delete group wall posts

view_group_shout bool

View group shout

create_group_shout bool

Post group shout

change_member_ranks bool

Manage lower-ranked member ranks

accept_join_requests bool

Accept join requests

exile_members bool

Kick lower-ranked members

manage_relationships bool

Manage allies and enemies

view_audit_log bool

View audit log

spend_group_funds bool

Spend group funds

advertise_group bool

Advertise the group

create_avatar_items bool

Create avatar items

manage_avatar_items bool

Configure avatar items

manage_experiences bool

Create and edit group experiences

view_experience_analytics bool

View group experience analytics

create_api_keys bool

Create group API keys

manage_api_keys bool

Administer all group API keys

rblxopencloud.GroupShout

Represents a group shout.

Attributes:

Name Type Description
content str

The message content of the shout.

user User

The user who posted it.

created_at datetime

The timestamp the group shout was posted.

first_created_at datetime

The timestamp the first group shout was posted in this group.

rblxopencloud.GroupAuditLogEntry

Represents an entry in a group's audit log.

Attributes:

Name Type Description
member GroupMember

The member who performed the action logged in this entry. The username, display_name, role_id and verified attributes are resolved.

action_type GroupAuditLogEntryActionType

The type of action performed in this entry.

description GroupAuditLogEntryDescription

A dictionary containing raw information regarding the action, such as the target user, experience, asset, rank, text, etc.

created_at Optional[datetime]

The time when the action logged was performed.

Enums

rblxopencloud.GroupAuditLogEntryActionType

Bases: Enum

Enum denoting the action type of a group audit log entry.

Attributes:

Name Type Description
Unknown 0

An unknown action type.

DeletePost 1
RemoveMember 2
AcceptJoinRequest 3
DeclineJoinRequest 4
PostStatus 5
ChangeRank 6
BuyAd 7
SendAllyRequest 8
CreateEnemy 9
AcceptAllyRequest 10
DeclineAllyRequest 11
DeleteAlly 12
DeleteEnemy 13
AddGroupPlace 14
RemoveGroupPlace 15
CreateItems 16
ConfigureItems 17
SpendGroupFunds 18
ChangeOwner 19
Delete 20
AdjustCurrencyAmounts 21
Abandon 22
Claim 23
Rename 24
ChangeDescription 25
InviteToClan 26
KickFromClan 27
CancelClanInvite 28
BuyClan 29
CreateGroupAsset 30
UpdateGroupAsset 31
ConfigureGroupAsset 32
RevertGroupAsset 33
CreateGroupDeveloperProduct 34
ConfigureGroupGame 35
CreateGroupDeveloperSubscriptionProduct 36
Lock 37
Unlock 38
CreateGamePass 39
CreateBadge 40
ConfigureBadge 41
SavePlace 42
PublishPlace 43
UpdateRolesetRank 44
UpdateRolesetData 45
BanMember 46
UnbanMember 47
CreateForumCategory 48
UpdateForumCategory 49
ArchiveForumCategory 50
DeleteForumCategory 51
DeleteForumPost 52
DeleteForumComment 53
PinForumPost 54
UnpinForumPost 55
LockForumPost 56
UnlockForumPost 57
CreateRoleset 58
DeleteRoleset 59
CreateCommerceProduct 60
SetCommerceProductActive 61
ArchiveCommerceProduct 62
AcceptCommerceProductBundlingFee 63
SetCommerceProductInactive 64
ConnectMerchant 65
DisconnectMerchant 66
JoinGroup 67
LeaveGroup 68
UpdateGroupIcon 69
UpdateGroupCoverPhoto 70

Types

rblxopencloud.GroupAuditLogEntryDescription

Bases: TypedDict

Represents the description of a group audit log entry returned by Roblox. It contains information regarding the change that was made.

Note

This is a TypedDict, meaning the returned type is a dictionary. The attributed documented below are keys, not class attributes. Note that not all fields are present for every entry and that some fields may not be documented here. The following is a best effort based on available documentation.

Attributes:

Name Type Description
AssetType NotRequired[str]
AssetId NotRequired[int]
AssetName NotRequired[str]
VersionNumber NotRequired[int]
RevertVersionNumber NotRequired[Optional[int]]
TargetId NotRequired[int]
TargetName NotRequired[str]
TargetDisplayName NotRequired[str]
NewRoleSetId NotRequired[int]
OldRoleSetId NotRequired[int]
NewRoleSetName NotRequired[str]
OldRoleSetName NotRequired[str]
Actions NotRequired[Optional[list[int]]]
Type NotRequired[Optional[int]]
UniverseId NotRequired[Optional[int]]
UniverseName NotRequired[str]
NewDescription NotRequired[str]
NewName NotRequired[str]
OldDescription NotRequired[str]
OldName NotRequired[str]
RoleSetId NotRequired[int]
RoleSetName NotRequired[str]
PostDesc NotRequired[str]
BadgeId NotRequired[int]
BadgeName NotRequired[str]
Amount NotRequired[int]
CurrencyTypeId NotRequired[int]
ItemDescription NotRequired[str]
CurrencyTypeName NotRequired[str]
NewRank NotRequired[int]
OldRank NotRequired[int]
Text NotRequired[str]
GamePassId NotRequired[int]
PlaceId NotRequired[int]
GamePassName NotRequired[str]
PlaceName NotRequired[str]
TargetGroupId NotRequired[int]
TargetGroupName NotRequired[str]