21 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

SocialService

Inherits from: Instance → Object

SocialService facilitates social functions that impact relationships made on the Roblox platform. Its primary usage is to show invite prompts and the phone book to players, allowing them to send invitation requests to their friends through PromptGameInvite() and PromptPhoneBook() respectively. You may leverage signals when such requests are made.

Inherits from: Instance

Memory category: Instances

Tags: NotCreatable, Service, NotReplicated

Methods

NameType / ReturnsDescription
SocialService:CanSendCallInviteAsyncbooleanIndicates whether the given Player can invite other players to a call.
SocialService:CanSendGameInviteAsyncbooleanIndicates whether the given Player can invite other players.
SocialService:GetEventRsvpStatusAsyncRsvpStatusReturns the local player's RSVP status for the given event.
SocialService:GetExperienceEventAsyncExperienceEvent?Returns details for the specified experience event or nil if it is unavailable.
SocialService:GetPartyAsyncArrayReturns an array of dictionaries containing data for all members of the specified party who are currently in the experience.
SocialService:GetPlayersByPartyIdListReturns a table of all presently connected Player objects whose Player.PartyId property matches the passed partyId.
SocialService:GetUpcomingExperienceEventsAsyncListReturns active and upcoming experience events for the current experience.
SocialService:HideSelfView()Hides the calling player's self view.
SocialService:PromptFeedbackSubmissionAsync()Prompts the player to submit feedback or a player support ticket about the current experience.
SocialService:PromptGameInvite()Prompts the given Player with the invite screen.
SocialService:PromptLinkSharingTuple
SocialService:PromptLinkSharingAsyncTupleGenerates an expiring share link and prompts the given Player with the platform share sheet.
SocialService:PromptPhoneBook()Prompts the given Player with the phone book.
SocialService:PromptRsvpToEventAsyncRsvpStatusPrompts the local Player with a prompt to change their RSVP status to the given event.
SocialService:ShowSelfView()Shows the calling player's self view.

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
Instance:Destroy()Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children.
Instance:destroy()
Instance:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns an array containing all descendants of the instance that match the selector string.
Instance:Remove()Sets the object's Parent to nil, and does the same for all its descendants.
Instance:remove()
Instance:RemoveTag()Removes a tag from the instance.
Instance:ResetPropertyToDefault()Resets a property to its default value.
Instance:SetAttribute()Sets the attribute with the given name to the given value.
Instance:WaitForChildInstanceReturns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Inherited from Object

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

SocialService:CanSendCallInviteAsync

Returns true if the given Player can send a call invite to a friend. You should always use the result of this method before calling PromptPhoneBook() since the ability to open the phone book may vary depending on the player.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player instance of the player potentially sending a call invite.

Returns

TypeDescription
booleanWhether the specified player can send a call invite.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-PromptPhoneBook).

SocialService:CanSendGameInviteAsync

CanSendGameInviteAsync() returns true if the given Player can invite other players to the current experience. You should always use the result of this method before calling PromptGameInvite() since the ability to invite players may vary depending on the platform or player.

See Player Invite Prompts for more details on implementing player invite prompts, customizing prompts and notifications, and using launch data.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player instance of the player potentially sending an invite.
recipientIdUserU1.AQAAAAAAAAAAAAAAAAAAAAAOptional Player.UserId of the potential recipient, used to check whether the sender can invite that specific recipient.

Returns

TypeDescription
booleanWhether the specified player can send an invite.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (sending-a-game-invite).

SocialService:GetEventRsvpStatusAsync

Returns the local player's RSVP status for the given event. Events must be in the current experience and must not have already started. If the event has already started, this method will return an error.

Use GetUpcomingExperienceEventsAsync() to obtain a valid event ID at runtime rather than hardcoding one. Note that you can use PromptRsvpToEventAsync() to prompt the player to change their RSVP status for the event.

Parameters

NameTypeDefaultDescription
eventIdstringThe event ID of the event to prompt the player to change their RSVP status for. This must be a valid event ID that exists in the current experience, represented as a string (not a number).

Returns

TypeDescription
RsvpStatusReturns an RsvpStatus indicating the player's current RSVP status for the event. If the player has not RSVP'd to the event, this will return RsvpStatus.None.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-PromptRsvpToEventAsync).

SocialService:GetExperienceEventAsync

GetExperienceEventAsync() yields until the request completes and then returns a dictionary describing the requested event. The dictionary contains the following fields:

If the event cannot be found, belongs to a different experience, or the response is malformed, this method returns nil. Requests may also fail with a HttpError <status> message if the service returns an unexpected error code.

Parameters

NameTypeDefaultDescription
eventIdstringThe string identifier of the event to retrieve. Must correspond to an event in the current experience.

Returns

TypeDescription
ExperienceEvent?A dictionary describing the event, or nil if the event does not exist, belongs to another experience, or is otherwise unavailable.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-GetUpcomingExperienceEventsAsync).

SocialService:GetPartyAsync

Returns an array of dictionaries containing data for all members associated with the given partyId. The returned array reflects the current state of the party across all active server instances within the experience and it is ordered by the time each party member accepted the party invite. This means the first element in the array is the earliest to accept and the last is the most recent.

This method is useful for retrieving up-to-date information about all party members currently in the experience and across different servers, enabling coordinated group behavior such as teleportation, matchmaking, or party-based gameplay logic.

Each dictionary in the returned array contains the following fields:

Key Value Type Description
UserId number The player's Class.Player.UserId property.
PlaceId number The Class.DataModel.PlaceId of the place the party member is currently in.
JobId string The Class.DataModel.JobId of the server instance the user currently resides in.
PrivateServerId string If applicable, the Class.DataModel.PrivateServerId when the party member is in a private or reserved server.
ReservedServerAccessCode string If applicable, the access code for the reserved server that the user currently resides in. Useful for teleporting party members to each other using Class.TeleportService:TeleportAsync().

To test this service in your experience, use the Party Simulator in Roblox Studio or publish the experience and play it in the Roblox application.

Parameters

NameTypeDefaultDescription
partyIdstringThe unique identifier of the party to retrieve member data for, corresponding to a Player.PartyId value.

Returns

TypeDescription
ArrayAn array of dictionaries representing the members of the specified party who are currently in the experience.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-GetPartyAsync).

SocialService:GetPlayersByPartyId

Returns a table of all presently connected Player objects whose Player.PartyId property matches the provided partyId. This method behaves similarly to Players:GetPlayers() but filters the results to include only those players belonging to the specified party.

To test this service in your experience, use the Party Simulator in Roblox Studio or publish the experience and play it in the Roblox application.

Parameters

NameTypeDefaultDescription
partyIdstringThe unique identifier of the party to filter players by, corresponding to a Player.PartyId value.

Returns

TypeDescription
ListA table of Player objects whose Player.PartyId property matches the passed partyId.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-GetPlayersByPartyId, Party-Team-Integration).

SocialService:GetUpcomingExperienceEventsAsync

GetUpcomingExperienceEventsAsync() yields while the client requests data for the current experience and then returns an array of dictionaries, each with the same structure described in GetExperienceEventAsync(). The array includes only events that are currently active or have not yet ended, excluding cancelled, moderated, or unpublished events. Results are sorted so the soonest start time appears first.

Use this method to discover valid event IDs at runtime rather than hardcoding them; hardcoded IDs become stale when events end and cause RSVP prompts to fail until the experience is republished.

If the service indicates there are no matching events, this method returns an empty array. Requests may raise a HttpError <status> message if the service returns an unexpected error code.

Returns

TypeDescription
ListAn array of dictionaries describing each active or upcoming event in the current experience, ordered by soonest start time first.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-GetUpcomingExperienceEventsAsync).

SocialService:HideSelfView

Hides the calling player's self view. If this method is called while the self view is already hidden, it does nothing.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

SocialService:PromptFeedbackSubmissionAsync

Displays a dialog to the player, allowing them to provide feedback about their experience or submit a player support ticket.

This method yields until the player either submits feedback, dismisses the dialog, or a timeout is reached. As an asynchronous operation, it should be called using task.spawn() or within a coroutine.

Feedback Types

The FeedbackType key in the options dictionary determines which flow is displayed:

Feedback Flow

When FeedbackType is Enum.FeedbackType.Feedback (or omitted), the player is shown a general feedback prompt where they can rate and optionally comment on the experience. Submitted feedback appears in the Creator Dashboard under Audience > Feedback. Players can submit feedback once per day per experience.

Player Support Flow (Alpha)

When FeedbackType is set to Enum.FeedbackType.PlayerSupport, the player is guided through a support ticket submission flow. This flow is currently in alpha and is only available to select experiences. The prompt presents a form where the player selects a category, writes a description of their issue, and chooses whether to share their user ID with the developer. The available categories are:

Category Description
Bug Report The player is reporting a bug or technical issue.
Data Restore Request The player is requesting that lost or corrupted data be restored.
Purchasing Issue The player has an issue with an in-experience purchase.
Other A general issue that does not fit the other categories.

The player also chooses whether to share their Player.UserId with the developer as part of the ticket.

Eligibility

Before showing the prompt, this method performs an eligibility check. The eligibility rules differ depending on the feedback type.

A player is ineligible for the Feedback flow if:

A player is ineligible for the Player Support flow if:

If the player is ineligible, the prompt displays a message indicating that feedback or support is unavailable and the method returns without error.

Notes

Parameters

NameTypeDefaultDescription
optionsDictionary?Optional Dictionary configuring the prompt. Supported keys: - FeedbackType (Enum.FeedbackType). Selects which feedback flow to display. Defaults to Enum.FeedbackType.Feedback.

Returns

TypeDescription
()
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (PromptFeedbackSubmissionAsync, PromptFeedbackSubmissionAsync-PlayerSupport).

SocialService:PromptGameInvite

PromptGameInvite() displays an invite prompt to the local player through which they may invite their friends to the current experience. Before calling this method, you should use CanSendGameInviteAsync() to determine whether the player can send an invite, as this ability may vary depending on the platform or player.

See Player Invite Prompts for more details on implementing invite prompts, customizing prompts and notifications, and using launch data.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player to prompt with the invite popup.
experienceInviteOptionsInstancenilOptional ExperienceInviteOptions object for customizing the prompt.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (sending-a-game-invite).

SocialService:PromptLinkSharing

Deprecated. Use PromptLinkSharingAsync() instead.

Parameters

NameTypeDefaultDescription
playerPlayerPrompts the given Player with a Roblox platform-level share sheet with a generated share link.
optionsDictionarynilDictionary that specifies the configuration for the generated link. It includes the following optional key-value pairs: - FallbackLinkId (string). Determines how this share link will direct player to once expired. Default to experience join link. - ExpirationSeconds (number). Determines time to expiration once the share link is created. Truncates to nearest integer. Defaults to 86,400. - PreviewTitle (string) Preview title of the share link. - PreviewDescription (string) Preview description of the share link. - PreviewAssetId (number) Image asset ID used for share link preview. - LaunchData (string). Used to set a parameter in Player:GetJoinData() when a player joined using the generated share link.

Returns

TypeDescription
TupleA tuple containing an Enum.PromptLinkSharingResult indicating the result of the link sharing prompt.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["Social"]

SocialService:PromptLinkSharingAsync

This call is restricted to server scripts. After a link is successfully generated, the target player will either be prompted to open a share sheet with the generated link, or the link will be copied directly to the clipboard if share sheet functionality is not available to the player.

Parameters

NameTypeDefaultDescription
playerPlayerPrompts the given Player with a Roblox platform-level share sheet with a generated share link.
optionsDictionarynilDictionary that specifies the configuration for the generated link. It includes the following optional key-value pairs: - FallbackLinkId (string). Determines how this share link will direct player to once expired. Default to experience join link. - ExpirationSeconds (number). Determines time to expiration once the share link is created. Truncates to nearest integer. Defaults to 86,400. - PreviewTitle (string) Preview title of the share link. - PreviewDescription (string) Preview description of the share link. - PreviewAssetId (number) Image asset ID used for share link preview. - LaunchData (string). Used to set a parameter in Player:GetJoinData() when a player joined using the generated share link.

Returns

TypeDescription
TupleA tuple containing an Enum.PromptLinkSharingResult indicating the result of the link sharing prompt.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-PromptLinkSharingAsync).

SocialService:PromptPhoneBook

Prompts the given Player with the phone book. If the player chooses to call someone, the CallInviteStateChanged event fires. You should use CanSendCallInviteAsync() prior to calling PromptPhoneBook() since the ability to see the phone book may vary depending on the player.

If a player is not eligible to open the phone book, an error dialog is shown.

Parameters

NameTypeDefaultDescription
playerInstanceThe player to prompt with the phone book.
tagstringString to help differentiate between various phone book "entry points" or similar. For example, you can pass a string defining what region of an experience the calling player's character is currently in.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-PromptPhoneBook).

SocialService:PromptRsvpToEventAsync

PromptRsvpToEventAsync() displays a prompt to the local player through which they may change their RSVP status to the given event.

Events must be in the current experience and must not have already started. If the event has already started, this method will return an error.

Note that you can use GetEventRsvpStatusAsync() to check the player's current RSVP status before calling this method.

Parameters

NameTypeDefaultDescription
eventIdstringThe event ID of the event to prompt the player to change their RSVP status for. This must be a valid event ID that exists in the current experience, represented as a string (not a number).

Returns

TypeDescription
RsvpStatusReturns a RsvpStatus indicating the player's new RSVP status after the prompt is closed. If the player closes the prompt without changing their RSVP status, this will return RsvpStatus.None or their old RsvpStatus if they had already selected a status.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-PromptRsvpToEventAsync).

SocialService:ShowSelfView

Shows the calling player's self view. If this method is called while the self view is already visible, it does nothing.

Parameters

NameTypeDefaultDescription
selfViewPositionSelfViewPositionLastPositionThe position to place the self view .

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

Events

NameType / ReturnsDescription
SocialService.CallInviteStateChangedFires when a player's call invite state changes.
SocialService.GameInvitePromptClosedFires when a player closes an invite prompt.
SocialService.PhoneBookPromptClosedFires when a player closes the phone book prompt.
SocialService.ShareSheetClosedFires when the player closes the share sheet opened by PromptLinkSharingAsync().

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.

SocialService.CallInviteStateChanged

This event fires when a player's call invite state changes.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player instance of the player who had a call invite state change.
inviteStateInviteStateThe new call invite state.
FieldValue
securityNone
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-CallInviteStateChanged).

SocialService.GameInvitePromptClosed

This event fires when a player closes an invite prompt.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player instance of the player who closed the prompt.
recipientIdsArrayNo longer populated; an empty array.
FieldValue
securityNone
capabilities["Social"]

SocialService.PhoneBookPromptClosed

Fires when a player closes the phone book prompt.

Parameters

NameTypeDefaultDescription
playerInstanceThe Player instance of the player who closed the phone book.
FieldValue
securityNone
capabilities["Social"]

SocialService.ShareSheetClosed

Fires on the server when the player closes or dismisses the platform share sheet that was opened as a result of a successful call to PromptLinkSharingAsync(). The player argument is the Player who closed the share sheet.

Parameters

NameTypeDefaultDescription
playerPlayerThe Player who closed the share sheet.
FieldValue
securityNone
capabilities["Social"]

Callbacks

NameType / ReturnsDescription
SocialService.OnCallInviteInvokedInstanceCallback for when a call is placed from the phone book.

SocialService.OnCallInviteInvoked

A callback to process when a call is placed from the phone book. The tag parameter can be used to differentiate between different "entry points" or similar, as described in PromptPhoneBook(). Only one callback can be set.

Parameters

NameTypeDefaultDescription
tagstringString to help differentiate between various phone book entry points.
callParticipantIdsArrayArray containing all of the players involved in the call. The caller will always be the first player in the array.

Returns

TypeDescription
InstanceTable including the PlaceId and ReservedServerAccessCode keys whose values are the DataModel.PlaceId and the server access code returned by TeleportService:ReserveServerAsync(), respectively.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Social"]

Code samples: View on Creator Hub (SocialService-OnCallInviteInvoked).

Properties

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring