Reference API Roblox

Engine API

Website

Related

Reference API Roblox

Chat

Houses the Lua code responsible for running the legacy chat system.

This class is not replicated. Its interface does not cross the network boundary.
This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service, NotReplicated]

Member index 18

HistoryMember
553BubbleChatEnabled: bool
553LoadDefaultChat: bool
462CanUserChatAsync(userId: int64): bool
462CanUsersChatAsync(userIdFrom: int64, userIdTo: int64): bool
573Chat(partOrCharacter: Instance, message: string, color: ChatColor = Blue): null
573ChatLocal(partOrCharacter: Instance, message: string, color: ChatColor = Blue): null
484FilterStringAsync(stringToFilter: string, playerFrom: Player, playerTo: Player): string
484FilterStringForBroadcast(stringToFilter: string, playerFrom: Player): string
553FilterStringForPlayerAsync(stringToFilter: string, playerToFilterFor: Player): string
462GetShouldUseLuaChat(): bool
462InvokeChatCallback(callbackType: ChatCallbackType, callbackArguments: Tuple): Tuple
573RegisterChatCallback(callbackType: ChatCallbackType, callbackFunction: Function): null
573SetBubbleChatSettings(settings: Variant): null
462BubbleChatSettingsChanged(settings: Variant)
462Chatted(part: Instance, message: string, color: ChatColor)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553ClassName: string
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
553className: string
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
486GetChildren(): Objects
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
462GetPropertyChangedSignal(property: string): RBXScriptSignal
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsA(className: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
553children(): Objects
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
553getChildren(): Objects
462isA(className: string): bool
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462Changed(property: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)

Removed member index 1

HistoryMember
267SetIsLuaChatBackendOverwritten(value: bool): void

Description

The Chat service houses the Lua code responsible for running the legacy chat system. Similar to StarterPlayerScripts, default objects like Scripts and ModuleScripts are inserted into the service.

History 55

Members 18

BubbleChatEnabled

TypeDefault
boolfalse

If true, entering a message in the chat will result in a chat bubble popping up above the player's Player.Character. This behavior can either be enabled by directly ticking this checkbox in Studio, or by using a LocalScript:

1
2
local ChatService = game:GetService("Chat")
ChatService.BubbleChatEnabled = true

This must be done on the client, toggling this value in a server-side Script will have no effect.

History 4

BubbleChatSettingsChanged

Parameters (1)
settingsVariant

History 2

CanUserChatAsync

Parameters (1)
userIdint64
Returns (1)
bool

Will return false if the player with the specified Player.UserId is not allowed to chat because of their account settings.

This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

CanUsersChatAsync

Parameters (2)
userIdFromint64
userIdToint64
Returns (1)
bool

Will return false if the two users cannot communicate because their account settings do not allow it.

This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

Chat

Parameters (3)Default
partOrCharacterInstance
messagestring
colorChatColorBlue
Returns (1)
null

The Chat function fires the Chat.Chatted event with the parameters specified in this method.

By default, there is a LocalScript inside of each player's PlayerScripts object named BubbleChat, which causes a dialog-like billboard to appear above the partOrCharacter when the chatted event is fired.

Note: Since dialogs are controlled by a LocalScript, you will not be able to see any dialogs created from this method unless you are running in Play Solo mode.

History 3

ChatLocal

Parameters (3)Default
partOrCharacterInstance
messagestring
colorChatColorBlue
Returns (1)
null

History 3

Chatted

Parameters (3)
partInstance
messagestring
colorChatColor

Fires when Chat:Chat() is called.

History 2

FilterStringAsync

Parameters (3)
stringToFilterstring
playerFromPlayer
playerToPlayer
Returns (1)
string

Partial Deprecation Warning: Calling this function from the client using a LocalScript is deprecated, and will be disabled in the future. Text filtering should be done from a Script on the server using the similarly-named TextService:FilterStringAsync(), which uses a different set of parameters and return type.

Games that do not properly filter player-generated text might be subject to moderation action. Please be sure a game properly filters text before publishing it.

FilterStringAsync filters a string using filtering that is appropriate for the sending and receiving player. If the filtered string is to be used for a persistent message, such as the name of a shop, writing on a plaque, etc, then the function should be called with the author as both the sender and receiver.

This function should be used every time a player can enter custom text in any context, most commonly using a TextBox. Some examples of text to be filtered:

  • Custom chat messages
  • Custom character names
  • Names for a shop in a tycoon-style game
This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

FilterStringForBroadcast

Parameters (2)
stringToFilterstring
playerFromPlayer
Returns (1)
string

Filters a string sent from playerFrom for broadcast to no particular target. The filtered message has more restrictions than Chat:FilterStringAsync().

Some examples of where this method could be used:

  • Message walls
  • Cross-server shouts
  • User-created signs

Calling FilterString from LocalScripts is deprecated and will be disabled in the future. Text filtering should be done from server-side Scripts using FilterStringAsync.

Note: A game not using this filter function for custom chat or other user generated text may be subjected to moderation action.

This function yields. It will block the calling thread until completion.

History 5

Tags: [Yields]

FilterStringForPlayerAsync

Parameters (2)
stringToFilterstring
playerToFilterForPlayer
Returns (1)
string

The FilterStringForPlayerAsync function filters a string appropriate to the given player's age settings, so they see what is appropriate to them. This function will only work if called from a Script on the server. If called on a client it will fail.

This function is deprecated. It exists only for backward compatibility, and should not be used for new work. FilterStringAsync should be used instead.
This function yields. It will block the calling thread until completion.

History 7

Tags: [Yields, Deprecated]

GetShouldUseLuaChat

Parameters (0)
No parameters.
Returns (1)
bool

History 2

InvokeChatCallback

Parameters (2)
callbackTypeChatCallbackType
callbackArgumentsTuple
Returns (1)
Tuple

InvokeChatCallback will call a function registered by RegisterChatCallback, given the ChatCallbackType enum and the arguments to send the function. It will return the result of the registered function, or raise an error if no function has been registered.

This function is called by the Lua Chat System so that chat callbacks may be registered to change the behavior of certain features. Unless you are replacing the default Lua Chat System with your own, you should not need to call this function. You can read about the different callback functions at Chat:RegisterChatCallback().

History 2

LoadDefaultChat

TypeDefault
booltrue

Toggles whether the default chat framework should be automatically loaded when the game runs.

History 4

RegisterChatCallback

Parameters (2)
callbackTypeChatCallbackType
callbackFunctionFunction
Returns (1)
null

RegisterChatCallback binds a function to some chat system event in order to affect the behavior of the Lua chat system. The first argument determines the event (using the ChatCallbackType enum) to which the second argument, the function, shall be bound. The default Lua chat system uses InvokeChatCallback to invoke registered functions. Attempting to register a server- or client- only callback on a peer that isn't a server or client respectively will raise an error. The following sections describe in what ways registered functions will be used.

OnCreatingChatWindow

Client-only. Invoked before the client constructs the chat window. Must return a table of settings to be merged into the information returned by the ChatSettings module.

OnClientFormattingMessage

Client-only. Invoked before the client displays a message (whether it is a player chat message, system message, or /me command). This function is invoked with the message object and may (or may not) return a table to be merged into message.ExtraData.

OnClientSendingMessage

Not invoked at this time.

OnServerReceivingMessage

Server-only. Invoked when the server receives a message from a speaker (note that speakers may not necessarily be a Player chatting). This callback is called with the Message object. The function can make changes to the Message object to change the manner in which the message is processed. The Message object must be returned for this callback to do anything. Setting this callback can allow the server to, for example:

  • Set message.ShouldDeliver to false in order to cancel delivery of the message to players (useful for implementing a chat exclusion list)
  • Get/set the speaker's name color (message.ExtraData.NameColor, a Color3) on a message-by-message basis

History 3

SetBubbleChatSettings

Parameters (1)
settingsVariant
Returns (1)
null

This function customizes various settings of the in-game bubble chat.

Before using this, make sure that bubble chat is enabled by setting Chat.BubbleChatEnabled to true.

The settings argument is a table where the keys are the names of the settings you want to edit and the values are what you want to change these settings to. Note that you don't have to include all of them in the settings argument, omitting some will result in them keeping their default value.

This function is client-side only, attempting to call it on the server will trigger an error.

History 3

Removed members 1

SetIsLuaChatBackendOverwritten

Parameters (1)
valuebool
Returns (1)
void

History 2

Settings