Reference API Roblox

Engine API

Website

Related

Reference API Roblox

TextService

The TextService is a service internally responsible for handling the display of text in the game.

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 8

HistoryMember
607FilterAndTranslateStringAsync(stringToFilter: string, fromUserId: int64, targetLocales: Array, textContext: TextFilterContext = PrivateChat): TextFilterTranslatedResult
607FilterStringAsync(stringToFilter: string, fromUserId: int64, textContext: TextFilterContext = PrivateChat): TextFilterResult
645GetFamilyInfoAsync(assetId: ContentId): Dictionary
552GetFontMemoryData(): Dictionary
529GetTextBoundsAsync(params: GetTextBoundsParams): Vector2
462GetTextSize(string: string, fontSize: int, font: Font, frameSize: Vector2): Vector2
647GetTextSizeOffsetAsync(fontSize: int, font: Font): float
573SetResolutionScale(scale: float): null
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
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
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: 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
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Description

The TextService is a service internally responsible for handling the display of text in the game.

This class has two member functions:

The TextService:GetTextSize() function gives developers the ability to calculate the space required for a specific text string with specified formatting, returning a Vector2 pixel size.

The TextService:FilterStringAsync() function is required to properly filter user specified text (such as chat messages or other inputs) in the interests of user safety. Developers not using the Roblox default Chat, or allowing users to otherwise input text must use this function.

History 19

Members 8

FilterAndTranslateStringAsync

Parameters (4)Default
stringToFilterstring
fromUserIdint64
targetLocalesArray
textContextTextFilterContextPrivateChat
Returns (1)
TextFilterTranslatedResult

Chat translation is not supported in legacy chat. This method is no longer supported and should not be used. All calls return an empty object. Translating chat messages is only available via TextChatService.

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

History 2

Tags: [Yields]

FilterStringAsync

Parameters (3)Default
stringToFilterstring
fromUserIdint64
textContextTextFilterContextPrivateChat
Returns (1)
TextFilterResult

The FilterStringAsync function filters a string being received from a user, using the TextService, and returns a TextFilterResult which can be used to distribute the correctly filtered text accordingly.

Usage

This method should be called once each time a user submits a message. Do not cache the results of this function and re-use them for separate messages. If a user submits the same text multiple times this method must be called again each time the message is sent. If the results are cached and reused spam detection and many forms of context-aware filtering will be broken and potentially put user safety at risk. Games that improperly use cached results may face moderation.

However, it is encouraged to keep these result objects to display the same message to users who join the server later. For example: this can be used to safely and efficiently implement a server chat log that always uses the least restrictive filtering for users who join later, or for efficiently displaying text like a pet name to a user who joins the game after the pet was first spawned and name filtered.

The optional TextFilterContext parameter will not impact the filtered result of the query. This value will be used to improve Roblox's text filtering.

Private text is anything that is seen only by specific players, rather than every player. For example, if the chat is seen by a single player, or by a selected group of players, then the chat is considered private. Chat for teams or chat that is potentially visible to a wider group, such as the server, is considered public. If you are unsure what your text qualifies as, leave the optional field blank.

Note:

  • This method always yields to make a text filtering service call
  • This method may throw if there is a service error that can not be resolved. If this function throws an error please do not retry the request; this method implements its own retry logic internally. If this method fails do not display the text to any user.
  • This method currently throws if fromUserId is not online on the current server. We plan to support users who are offline or on a different server in the future.
This function yields. It will block the calling thread until completion.

History 5

Tags: [Yields]

GetFamilyInfoAsync

Parameters (1)
assetIdContentId
Returns (1)
Dictionary

Returns a table containing the name and faces of a font family.

The returned table is structured like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
type FaceInfo = {
  Name: string, -- Examples: "Regular", "Book", "Italic", "Thin Italic"
  Weight: Enum.FontWeight,
  Style: Enum.FontStyle, -- Either Normal or Italic
}

type FamilyInfo = {
  Name: string, -- Examples: "Source Sans Pro", "Grenze Gotisch"
  Faces: {FaceInfo} -- There's always at least 1 but there can be up to 18.
}

If the font family has already been loaded by a previous call to GetFamilyInfoAsync, ContentProvider:PreloadAsync(), or a text object with the TextLabel.FontFace property set, then the method returns without yielding.

Errors

This method can fail because of network errors. You should always wrap it in a pcall for error handling.

Throws an error in these scenarios:

  • The passed family is an empty string.
  • Downloading the family failed.
  • The asset ID is invalid or points to an asset that doesn't exist.
This function yields. It will block the calling thread until completion.

History 2

Tags: [Yields]

GetFontMemoryData

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

History 1

GetTextBoundsAsync

Parameters (1)
paramsGetTextBoundsParams
Returns (1)
Vector2

This method is similar to TextService:GetTextSize(), but uses the Font object instead of Font, which has access to more fonts.

Used to measure how big some text will be given a set of properties like the string, size, and font.

This is a yield function because some fonts may need to be loaded in order to measure them. If the font is already loaded, then it will not yield. ContentProvider:PreloadAsync() can be used to make sure a font is loaded.

Errors

This method can fail because of network errors. You should always wrap it in a pcall for error handling.

Throws an error in these scenarios:

  • The GetTextBoundsParams.Font has a blank family.
  • The params argument was nil.
  • The font family or font face failed to download.
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GetTextSize

Parameters (4)
stringstring
fontSizeint
fontFont
frameSizeVector2
Returns (1)
Vector2

Computes the Vector2 dimensions (in pixels) that will be taken up with text when using the specified formatting parameters and size constraints.

Note, the fontSize parameter will not accept the FontSize Enum. Instead the integer size corresponding with the FontSize Enum should be used. This is not equal to the value of the FontSize Enum. For example, for Size11 font, the integer 11 should be used.

This function is a useful alternative to the TextLabel.TextBounds property of the TextLabel and TextButton objects. Using the TextLabel.TextBounds property to calculate the dimensions text requires is often impractical as it requires a TextLabel object to be created.

With GetTextSize, the dimensions required by a particular text string in a particular TextLabel or TextButton can be calculated before any object is created or text property set.

Developers are recommended to add a pixel of padding to the result to ensure no text is cut off.

This method is limited to only fonts that are listed in Font. To get access to more fonts, you can use TextService:GetTextBoundsAsync() instead.

History 3

GetTextSizeOffsetAsync

Parameters (2)
fontSizeint
fontFont
Returns (1)
float
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

SetResolutionScale

Parameters (1)
scalefloat
Returns (1)
null

History 3

Settings