update docs

This commit is contained in:
Joe 2026-02-09 21:47:49 -06:00
parent 0b1e8c89dc
commit 7b73720143
586 changed files with 5616 additions and 1325 deletions

View file

@ -483,7 +483,7 @@ methods:
default:
summary: ''
returns:
- type: Instance
- type: Instance?
summary: ''
tags: []
deprecation_message: ''
@ -626,7 +626,7 @@ methods:
default:
summary: ''
- name: target
type: Instance
type: Instance?
default:
summary: ''
returns:

View file

@ -120,23 +120,6 @@ properties:
can_load: true
can_save: true
capabilities: []
- name: AudioDeviceInput.MutedByLocalUser
summary: ''
description: ''
code_samples: []
type: boolean
tags:
- NotReplicated
deprecation_message: ''
security:
read: RobloxScriptSecurity
write: RobloxScriptSecurity
thread_safety: ReadSafe
category: Recording
serialization:
can_load: false
can_save: false
capabilities: []
- name: AudioDeviceInput.Player
summary: |
Determines whose device is producing sound.

View file

@ -122,23 +122,6 @@ properties:
can_save: true
capabilities:
- Audio
- name: AudioEmitter.PositionOverride
summary: ''
description: ''
code_samples: []
type: Instance
tags: []
deprecation_message: ''
security:
read: RobloxEngineSecurity
write: RobloxEngineSecurity
thread_safety: ReadSafe
category: Data
serialization:
can_load: true
can_save: true
capabilities:
- Audio
- name: AudioEmitter.SimulationFidelity
summary: |
Controls how detailed the audio simulation should be for this

View file

@ -121,23 +121,6 @@ properties:
can_save: true
capabilities:
- Audio
- name: AudioListener.PositionOverride
summary: ''
description: ''
code_samples: []
type: Instance
tags: []
deprecation_message: ''
security:
read: RobloxEngineSecurity
write: RobloxEngineSecurity
thread_safety: ReadSafe
category: Data
serialization:
can_load: true
can_save: true
capabilities:
- Audio
- name: AudioListener.SimulationFidelity
summary: |
Controls how detailed the audio simulation should be for this

View file

@ -129,23 +129,6 @@ properties:
can_save: true
capabilities:
- Audio
- name: AudioPlayer.IsMutedForCapture
summary: ''
description: ''
code_samples: []
type: boolean
tags: []
deprecation_message: ''
security:
read: RobloxScriptSecurity
write: RobloxScriptSecurity
thread_safety: ReadSafe
category: Data
serialization:
can_load: true
can_save: true
capabilities:
- Audio
- name: AudioPlayer.IsPlaying
summary: |
Denotes whether this `Class.AudioPlayer` is currently playing.

View file

@ -23,7 +23,7 @@ properties: []
methods:
- name: AvatarCreationService:AutoSetupAvatarAsync
summary: |
Automatically sets up a custom `Class.Model` as an avatar asset.
Automatically sets up a custom `Class.Model` and/or avatar accessories.
description: |
Automatically sets up a custom `Class.Model` as an avatar asset. This
method returns a `string` generation ID which can be passed to
@ -49,11 +49,12 @@ methods:
default:
summary: |
The `Class.Player` that the avatar is being set up for.
- name: model
- name: autoSetupParams
type: Dictionary
default:
summary: |
The humanoid `Class.Model` that will be set up as an avatar.
A table containing the arguments. Type:
`type AutoSetupAccessory = { AccessoryType: Enum.AccessoryType, IsLayered: bool, Instance: Model, } type AutoSetupParams = { Body: Model?, Accessories: {AutoSetupAccessory}, }`
- name: progressCallback
type: Function?
default:

View file

@ -32,6 +32,327 @@ description: |
second to these `AvatarEditorService` endpoints, regardless of the number of
servers or user count. Exceeding these limits returns a
`429 Too Many Requests` error.
#### Item Details Response
The following methods return item data in a shared response format:
- `Class.AvatarEditorService:GetItemDetailsAsync()`
- `Class.AvatarEditorService:GetBatchItemDetailsAsync()`
- `Class.AvatarEditorService:SearchCatalogAsync()`
```lua
{
"Id": 0,
"ItemType": "Asset",
"AssetType": "Image",
"BundleType": "BodyParts",
"Name": "string",
"Description": "string",
"ProductId": 0,
"ItemStatus": ["New"],
"ItemRestrictions": ["Collectible"],
"BundledItems": [
{
"Id": 0,
"Name": "string",
"Type": "Asset",
"AssetType": 29
}
],
"IsRecolorable": false,
"CollectibleItemId": "string",
"TotalQuantity": 0,
"UnitsAvailableForConsumption": 0,
"QuantityLimitPerUser": 0,
"HasResellers": false,
"OffSaleDeadline": null,
"Price": 0,
"PremiumPricing": {
"PremiumDiscountPercentage": 0,
"PremiumPriceInRobux": 0
},
"LowestPrice": 0,
"LowestResalePrice": 0,
"PriceStatus": "string",
"SaleLocationType": "ShopAndAllExperiences",
"PurchaseCount": 0,
"FavoriteCount": 0,
"CreatorType": "User",
"CreatorTargetId": 0,
"CreatorName": "string",
"CreatorHasVerifiedBadge": false
}
```
##### Basic Information
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Id</code></td>
<td>number</td>
<td>The unique identifier of the item.</td>
</tr>
<tr>
<td><code>ItemType</code></td>
<td>string</td>
<td>The type of item: <code>"Asset"</code> or <code>"Bundle"</code>. Corresponds to <code>Enum.AvatarItemType</code>.</td>
</tr>
<tr>
<td><code>AssetType</code></td>
<td>string</td>
<td>The asset type. Corresponds to <code>Enum.AvatarAssetType</code> values (e.g., <code>"Hat"</code>, <code>"Shirt"</code>). Only present if <code>ItemType</code> is <code>"Asset"</code>.</td>
</tr>
<tr>
<td><code>BundleType</code></td>
<td>string</td>
<td>The bundle type. Corresponds to <code>Enum.BundleType</code> values (e.g., <code>"BodyParts"</code>, <code>"Animations"</code>). Only present if <code>ItemType</code> is <code>"Bundle"</code>.</td>
</tr>
<tr>
<td><code>Name</code></td>
<td>string</td>
<td>The display name of the item.</td>
</tr>
<tr>
<td><code>Description</code></td>
<td>string</td>
<td>The item's description text.</td>
</tr>
<tr>
<td><code>ProductId</code></td>
<td>number</td>
<td>The product ID associated with this item.</td>
</tr>
<tr>
<td><code>ItemStatus</code></td>
<td>array</td>
<td>An array of status strings (e.g., <code>"New"</code>, <code>"Sale"</code>, <code>"XboxExclusive"</code>, <code>"AmazonExclusive"</code>).</td>
</tr>
<tr>
<td><code>ItemRestrictions</code></td>
<td>array</td>
<td>An array of restriction strings. See the <code>itemRestrictions</code> table below.</td>
</tr>
</tbody>
</table>
##### Bundle Information
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>BundledItems</code></td>
<td>array</td>
<td>An array of items contained in the bundle. Only present if <code>ItemType</code> is <code>"Bundle"</code>. Each entry contains:</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>Id</code>: The unique identifier of the bundled item.</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>Name</code>: The display name of the bundled item.</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>Type</code>: The type of the bundled item (e.g., <code>"Asset"</code>).</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>AssetType</code>: The asset type as an integer. Corresponds to <code>Enum.AvatarAssetType</code>.</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>Owned</code>: Whether the bundled item is owned by the current user. Only present in <code>Class.AvatarEditorService:GetItemDetailsAsync()</code>.</td>
</tr>
<tr>
<td><code>IsRecolorable</code></td>
<td>boolean</td>
<td>Whether the bundle supports skin tone matching. Only applies to BodyParts and DynamicHead bundles.</td>
</tr>
</tbody>
</table>
##### Collectible Information
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CollectibleItemId</code></td>
<td>string</td>
<td>The unique item ID of the collectible.</td>
</tr>
<tr>
<td><code>TotalQuantity</code></td>
<td>number</td>
<td>The total quantity of the collectible available for purchase (not resale).</td>
</tr>
<tr>
<td><code>UnitsAvailableForConsumption</code></td>
<td>number</td>
<td>The number of units available for purchase. Only applies to Limited items with remaining stock.</td>
</tr>
<tr>
<td><code>QuantityLimitPerUser</code></td>
<td>number</td>
<td>Maximum number of the same collectible item a user can own.</td>
</tr>
<tr>
<td><code>HasResellers</code></td>
<td>boolean</td>
<td><code>true</code> when item is a Limited collectible and there are copies available for resale.</td>
</tr>
<tr>
<td><code>OffSaleDeadline</code></td>
<td>string</td>
<td>The date/time when the item goes off sale.</td>
</tr>
</tbody>
</table>
##### Pricing and Sale Information
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Price</code></td>
<td>number</td>
<td>The price in Robux. <code>0</code> if free or not for sale.</td>
</tr>
<tr>
<td><code>PremiumPricing</code></td>
<td>table</td>
<td>Premium pricing information. Contains the following fields:</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>PremiumDiscountPercentage</code>: The discount percentage for Premium members.</td>
</tr>
<tr>
<td colspan="2"></td>
<td><code>PremiumPriceInRobux</code>: The discounted price in Robux for Premium members.</td>
</tr>
<tr>
<td><code>LowestPrice</code></td>
<td>number</td>
<td>The lowest resale price for Limited items.</td>
</tr>
<tr>
<td><code>LowestResalePrice</code></td>
<td>number</td>
<td>The lowest resale price for the collectible in Robux.</td>
</tr>
<tr>
<td><code>PriceStatus</code></td>
<td>string</td>
<td>The price status (e.g., <code>"Free"</code>, <code>"Off Sale"</code>, <code>"No Resellers"</code>).</td>
</tr>
<tr>
<td><code>SaleLocationType</code></td>
<td>string</td>
<td>The type of sale location setting. See <code>SaleLocationType</code> values below.</td>
</tr>
<tr>
<td><code>PurchaseCount</code></td>
<td>number</td>
<td>The total number of times this item has been purchased.</td>
</tr>
<tr>
<td><code>FavoriteCount</code></td>
<td>number</td>
<td>The total number of users who have favorited this item.</td>
</tr>
</tbody>
</table>
##### Creator Information
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CreatorType</code></td>
<td>string</td>
<td>Either <code>User</code> or <code>Group</code>. See <code>Enum.CreatorType</code>.</td>
</tr>
<tr>
<td><code>CreatorTargetId</code></td>
<td>number</td>
<td>The ID of the creator user or group.</td>
</tr>
<tr>
<td><code>CreatorName</code></td>
<td>string</td>
<td>The display name of the creator.</td>
</tr>
<tr>
<td><code>CreatorHasVerifiedBadge</code></td>
<td>boolean</td>
<td>Boolean of whether the creator has a verified badge.</td>
</tr>
</tbody>
</table>
##### SaleLocationType Values
| Value | Description |
| :----------------------- | :------------------------------------------------------------------------------------- |
| `NotApplicable` | Default value, should not occur in practice. |
| `ShopOnly` | Item can only be purchased in the Roblox catalog shop. |
| `MyExperiencesOnly` | Item can only be purchased in the creator's experiences. |
| `ShopAndMyExperiences` | Item can be purchased in the Roblox catalog shop or the creator's experiences. |
| `ExperiencesById` | Item can only be purchased in a specific list of experiences. |
| `ShopAndAllExperiences` | Item can be purchased in the Roblox catalog shop and all experiences. |
| `ExperiencesDevApiOnly` | Item can only be purchased in experiences via developer APIs. |
| `ShopAndExperiencesById` | Item can be purchased in the Roblox catalog shop or a whitelisted list of experiences. |
##### itemRestrictions Values
| itemRestrictions | Limited or Unlimited |
| :--------------: | :-------------------: |
| `empty` | Unlimited |
| `Collectible` | UGC Limited |
| `Limited` | Roblox Limited |
| `LimitedUnique` | Roblox Limited Unique |
code_samples: []
inherits:
- Instance
@ -241,8 +562,10 @@ methods:
Gets the item details for a list of items at once.
description: |
Gets the item details for a list of items at once. More efficient than
`AvatarEditorService:GetItemDetailsAsync` if you need to get all the item
details of a list.
`Class.AvatarEditorService:GetItemDetailsAsync()` if you need to get the
item details for multiple items.
Returns an array of items (see Item Details Response above in summary).
code_samples: []
parameters:
- name: itemIds
@ -258,35 +581,7 @@ methods:
returns:
- type: Array
summary: |
Returns an array of item details with the following fields:
```lua
{
"AssetType" = "string",
"CreatorName" = "string",
"CreatorTargetId" = 0,
"CreatorType" = "string",
"Description" = "string",
"FavoriteCount" = 0,
"Genres" = [
"All"
],
"Id" = 0,
"ItemRestrictions" = [
"Limited"
],
"ItemStatus": [
"New"
],
"ItemType" = "string",
"LowestPrice" = 0,
"Name" = "string",
"Price" = 0,
"ProductId" = 0
}
```
.
Returns an array of item details.
tags:
- Yields
deprecation_message: ''
@ -312,35 +607,9 @@ methods:
returns:
- type: Array
summary: |
Returns an array of item details with the following fields:
```lua
{
"AssetType" = "string",
"CreatorName" = "string",
"CreatorTargetId" = 0,
"CreatorType" = "string",
"Description" = "string",
"FavoriteCount" = 0,
"Genres" = [
"All"
],
"Id" = 0,
"ItemRestrictions" = [
"Limited"
],
"ItemStatus": [
"New"
],
"ItemType" = "string",
"LowestPrice" = 0,
"Name" = "string",
"Price" = 0,
"ProductId" = 0
}
```
.
Returns an array of item details. See
`Class.AvatarEditorService:GetBatchItemDetailsAsync()` for the
response format.
tags:
- Yields
- Deprecated
@ -474,63 +743,41 @@ methods:
parameters - the first indicating the ID of the item being retrieved and
the second indicating its `Enum.AvatarItemType`.
Data returned in the format:
The response includes all fields from Item Details Response (see above in
summary), plus the following additional fields specific to single-item
queries:
```lua
{
"IsForRent": true,
"ExpectedSellerId": 0,
"Owned": true,
"IsPurchasable": true,
"Id": 0,
"ItemType": "Asset",
"AssetType": "Image",
"BundleType": "BodyParts",
"Name": "string",
"Description": "string",
"ProductId": 0,
"Genres": [
"All"
],
"BundledItems": [
{
"Owned": true,
"Id": 0,
"Name": "string",
"Type": "string"
}
],
"ItemStatus": [
"New"
],
"ItemRestrictions": [
"ThirteenPlus"
],
"CreatorType": "User",
"CreatorTargetId": 0,
"CreatorName": "string",
"Price": 0,
"PremiumPricing": {
"PremiumDiscountPercentage": 0,
"PremiumPriceInRobux": 0
},
"LowestPrice": 0,
"PriceStatus": "string",
"UnitsAvailableForConsumption": 0,
"PurchaseCount": 0,
"FavoriteCount": 0
}
```
<br /> <br /> To query for limited or unlimited assets, use the following
`itemRestrictions` values:
| itemRestrictions | Limited or Unlimited |
| :--------------: | :-------------------: |
| `empty` | Unlimited |
| `Collectible` | UGC Limited |
| `Limited` | Roblox Limited |
| `LimitedUnique` | Roblox Limited Unique |
<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Owned</code></td>
<td>boolean</td>
<td>Whether the item is owned by the current user.</td>
</tr>
<tr>
<td><code>IsPurchasable</code></td>
<td>boolean</td>
<td>Whether the item can be purchased by the current user.</td>
</tr>
<tr>
<td><code>ExpectedSellerId</code></td>
<td>number</td>
<td>The user ID of the lowest private seller if resellable, or the creator's target ID otherwise. Used when calling purchase APIs.</td>
</tr>
<tr>
<td><code>CreatingUniverseId</code></td>
<td>number</td>
<td>If this asset was created in an experience, this is the universe ID where it was created. <code>nil</code> if not an in-experience creation.</td>
</tr>
</tbody>
</table>
code_samples: []
parameters:
- name: itemId
@ -547,8 +794,7 @@ methods:
returns:
- type: Dictionary
summary: |
A table containing the item info for the retrieved item. See above for
a sample table.
A table containing the item info for the retrieved item.
tags:
- Yields
deprecation_message: ''
@ -781,12 +1027,12 @@ methods:
"AssetId": 0,
"Name": "string",
"Price": 0,
"PremiumPrice": 0,
"PremiumPrice": 0
},
"Creator": {
"CreatorId": 0,
"CreatorType": "string",
"Name": "string",
"Name": "string"
},
"Product": {
"Id": 0,
@ -1139,51 +1385,8 @@ methods:
This function returns a `Class.CatalogPages` object containing the result
of the given search.
The returned data has the format:
```lua
[
{
"Id": 0,
"ItemType": "Asset",
"AssetType": "Image",
"BundleType": "BodyParts",
"Name": "string",
"Description": "string",
"ProductId": 0,
"Genres": [
"All"
],
"BundledItems": [
{
"Owned": true,
"Id": 0,
"Name": "string",
"Type": "string"
}
],
"ItemStatus": [
"New"
],
"ItemRestrictions": [
"ThirteenPlus"
],
"CreatorType": "User",
"CreatorTargetId": 0,
"CreatorName": "string",
"Price": 0,
"PremiumPricing": {
"PremiumDiscountPercentage": 0,
"PremiumPriceInRobux": 0
},
"LowestPrice": 0,
"PriceStatus": "string",
"UnitsAvailableForConsumption": 0,
"PurchaseCount": 0,
"FavoriteCount": 0
}
]
```
Each item in the returned pages uses the Item Details Response format (see
above in summary).
code_samples: []
parameters:
- name: searchParameters
@ -1193,7 +1396,8 @@ methods:
An object containing the parameters used for the search.
returns:
- type: CatalogPages
summary: ''
summary: |
A `Class.CatalogPages` object containing the search results.
tags:
- Yields
deprecation_message: ''

View file

@ -224,7 +224,7 @@ methods:
An array of `Enum.CaptureType`.
- name: readFromAllEligibleExperiences
type: boolean
default:
default: false
summary: |
A boolean; default is `false`.
returns:

View file

@ -10,50 +10,9 @@ summary: |
description: |
`GenerationService` enables you to generate 3D objects from text prompts using
Roblox's Cube 3D foundation model. This enables the generation of objects like
environmental props in-experience.
You can control the output by providing an optional `Datatype.Vector3` to the
`SuggestedSize` parameter. Rather than simply rescaling the result, this
parameter guides the model during the creation process, influencing it to
create a mesh that attempts to match the proportions and size of your
specified bounding box.
Mesh generation is a two step process:
1. `Class.GenerationService:GenerateMeshAsync()|GenerateMeshAsync()` starts
the mesh generation process using a text prompt and other required
parameters. It returns a unique identifier (generation ID) that can be used
to retrieve the future result.
2. `Class.GenerationService:LoadGeneratedMeshAsync()|LoadGeneratedMeshAsync()`
loads the generated mesh into the experience. The mesh is returned as a
`Class.MeshPart` or `Class.Model`.
Currently, `GenerationService` only supports the following usage:
- `Class.GenerationService:GenerateMeshAsync()|GenerateMeshAsync()` must be
called from server scripts.
- `Class.GenerationService:LoadGeneratedMeshAsync()|LoadGeneratedMeshAsync()`
must be called from client scripts.
As a result, when a mesh generation request originates from a client, the
client must send a signal to the server to initiate generation. Once the
server determines that generation is complete, it should notify the
appropriate client to call
`Class.GenerationService:LoadGeneratedMeshAsync()|LoadGeneratedMeshAsync()`
and retrieve the mesh. Note that since the generated mesh is loaded with
`Class.EditableMesh` content and only on the client, it is not replicated to
any other clients.
See
[this demo experience](https://www.roblox.com/games/108838517877898/SuggestedSize-Generation-Template)
for a more detailed example including usage of the `SuggestedSize` option
(click the **&ctdot;** button and **Edit in Studio**).
code_samples:
- GenerationService-ServerSideMeshGeneration
- GenerationService-ClientSideMeshGeneration
- GenerationService-ServerSideMeshGeneration-WithSuggestedSize
- GenerationService-ClientSideMeshGeneration-WithSuggestedSize
- GenerationService-StarterPlayerScripts-WithSuggestedSize
environmental props in-experience, as well as fully functional models like
vehicles that drive, planes that fly, and weapons that shoot.
code_samples: []
inherits:
- Instance
descendants: []
@ -69,16 +28,18 @@ methods:
unique IDs used to track and retrieve the result.
description: |
Starts the generation of a new 3D mesh from a text prompt and returns
unique IDs used to track and retrieve the result. You can optionally
receive intermediate results, such as the untextured mesh, by providing an
`intermediateResultCallback` function. After the generation is complete,
use
unique IDs used to track and retrieve the result. Must be called from
server scripts. You can optionally receive intermediate results, such as
the untextured mesh, by providing an `intermediateResultCallback`
function.
After the generation is complete, use
`Class.GenerationService:LoadGeneratedMeshAsync|LoadGeneratedMeshAsync()`
to load and display the generated mesh.
**Error Codes**
#### Error Codes
| Error | Description | Recommended developer action |
| Error | Description | Recommended action |
| ------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| Rate limit exceeded | The maximum number of mesh generations has been exceeded for the minute. | Wait until the rate limit resets. |
| Moderation failed | The mesh generation was flagged for moderation. | Review and modify the prompt to ensure it adheres to Roblox's moderation guidelines. |
@ -105,11 +66,11 @@ methods:
default:
summary: |
A dictionary for additional generation options to influence the
result. The following key is supported: - `SuggestedSize` — Optional
`Datatype.Vector3` representing a size guide for the generated asset.
The service will attempt to create a model with a size and proportion
similar to the provided `Datatype.Vector3`. This does not guarantee
the final output size.
result. The optional `SuggestedSize` key (`Datatype.Vector3`)
represents a size guide for the generated asset, meaning
`GenerationService` will attempt to create a model with a size and
proportion similar to the provided `Datatype.Vector3`, although there
is no guarantee on the final output size.
- name: intermediateResultCallback
type: Function?
default:
@ -123,31 +84,70 @@ methods:
of `GenerateMeshAsync()`) and context ID (not currently used).
tags:
- Yields
deprecation_message: ''
deprecation_message: |
This method is scheduled for future deprecation. Explore
`Class.GenerationService:GenerateModelAsync()|GenerateModelAsync()` as a
newer method.
security: None
thread_safety: Unsafe
capabilities:
- DynamicGeneration
- name: GenerationService:GenerateModelAsync
summary: ''
description: ''
code_samples: []
summary: |
Enables generation of multi-mesh geometries according to provided `inputs`
and a `schema`.
description: |
Enables generation of multi-mesh geometries according to provided `inputs`
and a `schema`.
This method throws an error during the generation process for issues like
prompt rejection, generation timeouts, `schema` mismatches, or backend
service errors. It's recommended to wrap it in a
`Global.LuaGlobals.pcall()` to catch such errors.
See [this guide](../../../parts/model-generation.md) for more detailed
examples including usage of a `Behaviors` module to connect functional
behaviors to generated models.
code_samples:
- GenerationService-Basic-Car5
parameters:
- name: inputs
type: Dictionary
default:
summary: ''
summary: |
A table representing conditioning inputs with the following keys:
- `TextPrompt` — String description of the object to generate.
- `Size` — Optional `Datatype.Vector3` describing the object size to
generate. This is only approximate; scale the model extents
post‑generation if you need a specific size.
- `MaxTriangles` — Optional integer describing the maximum number of
triangles that the returned model will contain. Lower values result
in more faceted and low-poly generations.
- `GenerateTextures` — `true` (default) textures the resulting
generation, while `false` will not generate textures.
- name: schema
type: Dictionary
default:
summary: ''
summary: |
Table representing the generation schema. Must contain a
`PredefinedSchema` key with a string value; current valid options are
`Car5` for a basic vehicle chassis consisting of five
`Class.Model|Models`, or `Body1` which results in a single mesh
output.
- name: options
type: Dictionary?
default:
summary: ''
summary: |
Currently not used; reserved for future customization options.
returns:
- type: Tuple
summary: ''
summary: |
Tuple with the following elements:
- A standard `Class.Model` container instance that is compliant with
the specified `schema`.
- A table containing a UUID and other metadata about the generation.
tags:
- Yields
deprecation_message: ''
@ -163,10 +163,11 @@ methods:
description: |
Retrieves and loads a mesh generated by
`Class.GenerationService:GenerateMeshAsync()|GenerateMeshAsync()` using
the provided `generationId`. The mesh can be returned as a
`Class.MeshPart` or `Class.Model`. Because editable meshes are not
replicated, the loaded mesh is not replicated to any other clients and can
only be loaded once per `generationId`.
the provided `generationId`. Must be called from client scripts.
The mesh can be returned as a `Class.MeshPart` or `Class.Model`. Because
editable meshes are not replicated, the loaded mesh is not replicated to
any other clients and can only be loaded once per `generationId`.
code_samples: []
parameters:
- name: generationId

View file

@ -300,8 +300,9 @@ methods:
JSON. This may cause problems if you want to use the outputted JSON
elsewhere.
This method also accepts `Library.buffer|buffers`, which it encodes to
base64 (and often compresses) before converting to a JSON object.
This method also accepts `Library.buffer|buffers` up to 50 MiB, which it
encodes to base64 (and often compresses) before converting to a JSON
object.
To reverse the encoding process and decode a JSON object, use the
`Class.HttpService:JSONDecode()` method.
@ -430,6 +431,12 @@ methods:
<td>no</td>
<td>An optional compression field that will compress the data in the request. The value can either be <code>Enum.HttpCompression.None</code> or <code>Enum.HttpCompression.Gzip</code>.</td>
</tr>
<tr>
<td><code>Timeout</code></td>
<td><code>Integer</code></td>
<td>no</td>
<td>An optional timeout value in seconds to make requests time out more quickly. Values must be greater than zero and no greater than the default request timeout. This can be useful when debugging hanging requests.</td>
</tr>
</tbody>
</table>

View file

@ -5,9 +5,8 @@
name: InputBinding
type: class
memory_category: Instances
summary: |
Defines which hardware binding should trigger the parent `Class.InputAction`.
description: |
summary: Defines which hardware binding should trigger the parent `Class.InputAction`.
description: |-
An `InputBinding` defines which hardware binding should trigger the parent
`Class.InputAction`, for example a key press, gamepad button, or tap on a
touch‑enabled device. There can be multiple `InputBinding` instances parented
@ -20,10 +19,10 @@ tags: []
deprecation_message: ''
properties:
- name: InputBinding.Backward
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"backward" inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"backward" inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -46,10 +45,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Down
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "down"
inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "down"
inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -86,10 +85,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Forward
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"forward" inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"forward" inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -112,10 +111,10 @@ properties:
capabilities:
- Input
- name: InputBinding.KeyCode
summary: |
summary: |-
Specifies the `Enum.KeyCode` which triggers the parent
`Class.InputAction`.
description: |
description: |-
Specifies the `Enum.KeyCode` which triggers the parent
`Class.InputAction`. The code type should match the input action's
`Class.InputAction.Type|Type`, for example `Enum.KeyCode.E` for an action
@ -139,10 +138,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Left
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "left"
inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "left"
inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -175,10 +174,10 @@ properties:
capabilities:
- Input
- name: InputBinding.PressedThreshold
summary: |
summary: |-
Numerical value above which to fire an `Class.InputAction` with a
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`.
description: |
description: |-
Numerical value above which to fire an `Class.InputAction` with a
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`, for example
when a gamepad trigger such as `Enum.KeyCode.ButtonL2` exceeds `0.5`
@ -201,11 +200,37 @@ properties:
can_save: true
capabilities:
- Input
- name: InputBinding.PrimaryModifier
summary: Specifies a primary `Enum.KeyCode` that must be pressed for the binding to activate.
description: |-
Specifies a `Enum.KeyCode` that serves as a required modifier for the binding. The `Class.InputBinding`
will only trigger the parent `Class.InputAction` if this input is pressed prior to
`Class.InputBinding.KeyCode|KeyCode`, `Class.InputBinding.UIButton|UIButton`, or composite directions.
There is no ordering requirement between `Class.InputBinding.PrimaryModifier|PrimaryModifier` and
`Class.InputBinding.SecondaryModifier|SecondaryModifier`. If both properties are set, both modifiers
must be pressed to activate the binding, but the order in which they are pressed does not matter.
If set to `Enum.KeyCode.Unknown`, no primary modifier is required.
code_samples: []
type: KeyCode
tags: []
deprecation_message: ''
security:
read: None
write: None
thread_safety: ReadSafe
category: Behavior
serialization:
can_load: true
can_save: true
capabilities:
- Input
- name: InputBinding.ReleasedThreshold
summary: |
summary: |-
Numerical value below which to fire an `Class.InputAction` with a
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`.
description: |
description: |-
Numerical value below which to fire an `Class.InputAction` with a
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`, for example
when a gamepad trigger such as `Enum.KeyCode.ButtonL2` falls below `0.5`
@ -229,22 +254,18 @@ properties:
capabilities:
- Input
- name: InputBinding.ResponseCurve
summary: |
Numerical value to configure scaling for more precise thumbstick aiming.
description: |
A numerical value to control the sensitivity of gamepad thumbstick input
by applying a quadratic response curve. Commonly used for camera control
to make small thumbstick inputs more precise, while ramping up quickly to
allow for large movements with higher magnitude input.
summary: Numerical value to configure scaling for more precise thumbstick aiming.
description: |-
A numerical value to control the sensitivity of gamepad thumbstick input by applying
a quadratic response curve. Commonly used for camera control to make small thumbstick inputs more
precise, while ramping up quickly to allow for large movements with higher magnitude input.
Ranges between `1` to `10`, with higher values providing a more intense
curve. Default is `1`, at which input is returned exactly as received.
Ranges between `1` to `10`, with higher values providing a more intense curve.
Default is `1`, at which input is returned exactly as received.
Only applicable when the parent action's `Class.InputAction.Type|Type` is
`Enum.InputActionType|Direction2D` and the
`Class.InputBinding.KeyCode|KeyCode` is
`Enum.KeyCode.Thumbstick1|Thumbstick1` or
`Enum.KeyCode.Thumbstick2|Thumbstick2`.
`Enum.InputActionType|Direction2D` and the `Class.InputBinding.KeyCode|KeyCode`
is `Enum.KeyCode.Thumbstick1|Thumbstick1` or `Enum.KeyCode.Thumbstick2|Thumbstick2`.
code_samples: []
type: float
tags: []
@ -260,10 +281,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Right
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"right" inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally
"right" inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -296,10 +317,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Scale
summary: |
summary: |-
Amount by which to linearly scale the values of a directional
`Class.InputAction`.
description: |
description: |-
Amount by which to linearly scale the values of an `Class.InputAction`
with `Class.InputAction.Type|Type` of `Enum.InputActionType|Direction1D`,
`Enum.InputActionType|Direction2D`, or `Enum.InputActionType|Direction3D`.
@ -317,11 +338,35 @@ properties:
can_save: true
capabilities:
- Input
- name: InputBinding.SecondaryModifier
summary: Specifies a secondary `Enum.KeyCode` that must be pressed for the binding to activate.
description: |-
Specifies a `Enum.KeyCode` that serves as a required modifier for the binding. The `Class.InputBinding`
will only trigger the parent `Class.InputAction` if this input is pressed prior to
`Class.InputBinding.KeyCode|KeyCode`, `Class.InputBinding.UIButton|UIButton`, or composite directions.
There is no ordering requirement between `Class.InputBinding.PrimaryModifier|PrimaryModifier` and
`Class.InputBinding.SecondaryModifier|SecondaryModifier`. If both properties are set, both modifiers
must be pressed to activate the binding, but the order in which they are pressed does not matter.
If set to `Enum.KeyCode.Unknown`, no secondary modifier is required.
code_samples: []
type: KeyCode
tags: []
deprecation_message: ''
security:
read: None
write: None
thread_safety: ReadSafe
category: Behavior
serialization:
can_load: true
can_save: true
capabilities:
- Input
- name: InputBinding.UIButton
summary: |
Connects a `Class.GuiButton` to a boolean action.
description: |
`Class.GuiButton` to connect to a boolean action.
summary: Connects a `Class.GuiButton` to a boolean action.
description: '`Class.GuiButton` to connect to a boolean action.'
code_samples: []
type: GuiButton
tags: []
@ -337,10 +382,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Up
summary: |
summary: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "up"
inputs to the parent `Class.InputAction`.
description: |
description: |-
Specifies an alternate `Enum.KeyCode` for dispatching directionally "up"
inputs to `Class.InputAction:GetState()|GetState()` and the
`Class.InputAction.StateChanged|StateChanged` event of the parent
@ -377,10 +422,10 @@ properties:
capabilities:
- Input
- name: InputBinding.Vector2Scale
summary: |
summary: |-
Amount by which to linearly scale the values of a two-directional
`Class.InputAction`.
description: |
description: |-
Amount by which to linearly scale the values of an `Class.InputAction`
with `Class.InputAction.Type|Type` of `Enum.InputActionType|Direction2D`.
code_samples: []

View file

@ -920,7 +920,7 @@ methods:
summary: |
The `Class.Instance.Name` to be looked for.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -960,7 +960,7 @@ methods:
summary: |
The `Class.Object.ClassName` to be looked for.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -1006,7 +1006,7 @@ methods:
summary: |
The `Class.Object.ClassName` to be looked for.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -1095,7 +1095,7 @@ methods:
summary: |
Whether or not the search should be conducted recursively.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -1146,7 +1146,7 @@ methods:
summary: |
The `Class.Object.ClassName` to be looked for.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -1198,7 +1198,7 @@ methods:
summary: |
Whether or not the search should be conducted recursively.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []
@ -1223,7 +1223,7 @@ methods:
summary: |
The `Class.Instance.Name` to search for.
returns:
- type: Instance
- type: Instance?
summary: |
The `Class.Instance` found.
tags: []

View file

@ -78,7 +78,7 @@ methods:
summary: |
The absolute path to the file.
returns:
- type: Instance
- type: Instance?
summary: |
Returns the Instance being synced to the file path, if one exists.
Otherwise, returns nil.

View file

@ -1260,7 +1260,7 @@ methods:
- Deprecated
deprecation_message: |
This method has been superseded by
`Class.Player.GetFriendsOnline|GetFriendsOnline()`.
`Class.Player:GetFriendsOnlineAsync()|GetFriendsOnlineAsync()`.
security: None
thread_safety: Unsafe
capabilities:

View file

@ -10,8 +10,8 @@ description: |
`ReflectionService` allows scripts to query the engine for details about its
API, including required security permissions, functionality, and inheritance
structure. You can use this service to dynamically inspect classes and their
properties, which can be useful for debugging, tooling, or creating dynamic
behaviors based on the engine's capabilities.
properties, methods, and events, which can be useful for debugging, tooling,
or creating dynamic behaviors based on the engine's capabilities.
The following is an example script that inspects classes and their properties:
@ -65,11 +65,11 @@ methods:
```lua
{
-- The security context to use. Can be more expansive than the current script's security.
-- The security context to use; can be more expansive than the current script's security
Security: SecurityCapabilities?, -- default: SecurityCapabilities.fromCurrent()
-- Require classes to derive from the passed-in class name.
-- Require classes to derive from the passed-in class name
IsA: string?, -- default: nil
-- Whether to exclude Studio display information about the class.
-- Whether to exclude Studio display information about the class
ExcludeDisplay: boolean?, -- default: false
}
```
@ -79,24 +79,26 @@ methods:
```lua
{
-- The name of the class.
-- The name of the class
Name: string,
-- The class's parent in the instance hierarchy (unless it's the root).
-- Whether the class is serialized (able to be saved to disk)
Serialized: boolean,
-- The class's parent in the instance hierarchy (unless it's the root)
Superclass: string?,
-- The names of the class's direct children in the instance hierarchy.
-- The names of the class's direct children in the instance hierarchy
Subclasses: {string},
-- Studio display information.
-- Studio display information
Display: {
-- Always "General" for classes.
-- Always "General" for classes
Category: string,
-- A message indicating that the class is deprecated, if applicable.
-- A message indicating that the class is deprecated, if applicable
DeprecationMessage: string?,
}?,
-- The security permissions required to access this class.
-- The security permissions required to access this class
Permits: {
-- If the class is a Service, the security capabilities required to obtain access. If not applicable, this field isn't present.
-- If the class is a Service, the security capabilities required to obtain access. If not applicable, this field isn't present
GetService: SecurityCapabilities?,
-- The security capabilities required to create an instance of this class. If not possible, this field isn't present.
-- The security capabilities required to create an instance of this class. If not possible, this field isn't present
New: SecurityCapabilities?,
}
}
@ -137,11 +139,11 @@ methods:
```lua
{
-- The security context to use. Can be more expansive than the current script's security.
-- The security context to use; can be more expansive than the current script's security
Security: SecurityCapabilities?, -- default: SecurityCapabilities.fromCurrent()
-- Require classes to derive from the passed-in class name.
-- Require classes to derive from the passed-in class name
IsA: string?, -- default: nil
-- Whether to exclude Studio display information about the classes.
-- Whether to exclude Studio display information about the classes
ExcludeDisplay: boolean?, -- default: false
}
```
@ -182,11 +184,11 @@ methods:
```lua
{
-- The security context to use. Can be more expansive than the current script's security.
-- The security context to use; can be more expansive than the current script's security
Security: SecurityCapabilities?, -- default: SecurityCapabilities.fromCurrent()
-- Whether to exclude inherited properties from superclasses.
-- Whether to exclude inherited properties from superclasses
ExcludeInherited: boolean?, -- default: false
-- Whether to exclude Studio display information about the properties.
-- Whether to exclude Studio display information about the properties
ExcludeDisplay: boolean?, -- default: false
}
```
@ -197,32 +199,32 @@ methods:
```lua
{
-- The name of the property.
-- The name of the property
Name: string,
-- Whether the property is serialized (able to be saved to disk or sent over the network).
-- The superclass from which the property is inherited, or the class name if not inherited
Owner: string,
-- Whether the property is serialized (able to be saved to disk or sent over the network)
Serialized: boolean,
-- The type of the property.
-- The type of the property
Type: ReflectionType,
-- The content type of the property, if applicable.
-- The content type of the property, if applicable
ContentType: Enum.AssetType?,
-- Studio display information.
-- Studio display information
Display: {
-- The category under which the property is listed in Studio.
-- The category under which the property is listed in Studio
Category: string,
-- A message indicating that the property is deprecated, if applicable.
-- A message indicating that the property is deprecated, if applicable
DeprecationMessage: string?,
-- The order in which the property appears in Studio.
LayoutOrder: number,
}?,
-- The security permissions required to access this property.
-- The security permissions required to access this property
Permits: {
-- The security context required to read this property.
-- The security context required to read this property
Read: SecurityCapabilities?,
-- The security context required to read this property while thread-safe.
-- The security context required to read this property while thread-safe
ReadParallel: SecurityCapabilities?,
-- The security context required to write to this property.
-- The security context required to write to this property
Write: SecurityCapabilities?,
-- The security context required to write to this property while thread-safe.
-- The security context required to write to this property while thread-safe
WriteParallel: SecurityCapabilities?,
},
}
@ -251,5 +253,167 @@ methods:
security: None
thread_safety: Unsafe
capabilities: []
- name: ReflectionService:GetMethodsOfClass
summary: |
Returns a list of methods for a given class with filters applied.
description: |
Given a class name in the Roblox API, returns a list of `ReflectedMethod`
dictionaries for all methods of that class that match the provided filter
criteria. If no such class name exists, returns `nil`.
If you pass in a `ReflectionMemberFilter` dictionary, you can adjust the
set of eligible methods and adjust the output behavior:
```lua
{
-- The security context to use; can be more expansive than the current script's security
Security: SecurityCapabilities?, -- default: SecurityCapabilities.fromCurrent()
-- Whether to exclude inherited methods from superclasses
ExcludeInherited: boolean?, -- default: false
-- Whether to exclude Studio display information about the methods
ExcludeDisplay: boolean?, -- default: false
}
```
If the class name is valid and that class has methods, you'll get a list
of `ReflectedMethod` dictionaries as output, each with the following
structure:
```lua
{
-- The name of the method
Name: string,
-- The superclass from which the property is inherited, or the class name if not inherited
Owner: string,
-- A list of all parameters the method takes
Parameters: {
{
-- The name of the parameter
Name: string,
-- The type of the parameter
Type: ReflectionType,
-- The default value of the parameter, if it has one
DefaultValue: any?,
}
},
-- The return type of the method; "void" if none
ReturnType: ReflectionType,
-- Whether the method is yielding
CanYield: boolean,
-- Studio display information
Display: {
-- A message indicating that the method is deprecated, if applicable
DeprecationMessage: string?,
}?,
-- The security permissions required to access this method
Permits: {
-- The security permissions required to call the method in a single-threaded context
Call: SecurityCapabilities?,
-- The security permissions required to call the method in a parallel context
CallParallel: SecurityCapabilities?,
},
}
```
code_samples: []
parameters:
- name: className
type: string
default:
summary: |
The name of the class for which you wish to retrieve methods.
- name: filter
type: Dictionary
default: nil
summary: |
An optional filter to restrict or expand the set of methods that this
method can return and change the method's behavior.
returns:
- type: Array
summary: |
A list of `ReflectedMethod` dictionaries with reflection information
for each method of the class that matches the filter criteria.
tags:
- CustomLuaState
deprecation_message: ''
security: None
thread_safety: Unsafe
capabilities: []
- name: ReflectionService:GetEventsOfClass
summary: |
Returns a list of events for a given class with filters applied.
description: |
Given a class name in the Roblox API, returns a list of `ReflectedEvent`
dictionaries for all events of that class that match the provided filter
criteria. If no such class name exists, returns `nil`.
If you pass in a `ReflectionMemberFilter` dictionary, you can adjust the
set of eligible events and adjust the output behavior:
```lua
{
-- The security context to use; can be more expansive than the current script's security
Security: SecurityCapabilities?, -- default: SecurityCapabilities.fromCurrent()
-- Whether to exclude inherited events from superclasses
ExcludeInherited: boolean?, -- default: false
-- Whether to exclude Studio display information about the events
ExcludeDisplay: boolean?, -- default: false
}
```
If the class name is valid and that class has events, you'll get a list of
`ReflectedEvent` dictionaries as output, each with the following
structure:
```lua
{
-- The name of the event
Name: string,
-- The superclass from which the property is inherited, or the class name if not inherited
Owner: string,
-- A list of all parameters the event passes to connected functions
Parameters: {
{
-- The name of the parameter
Name: string,
-- The type of the parameter
Type: ReflectionType,
}
},
-- Studio display information
Display: {
-- A message indicating that the event is deprecated, if applicable
DeprecationMessage: string?,
}?,
-- The security permissions required to access this event
Permits: {
-- The security permissions required to listen for the event in any context
Listen: SecurityCapabilities?,
},
}
```
code_samples: []
parameters:
- name: className
type: string
default:
summary: |
The name of the class for which you wish to retrieve events.
- name: filter
type: Dictionary
default: nil
summary: |
An optional filter to restrict or expand the set of events that this
method can return and change the method's behavior.
returns:
- type: Array
summary: |
A list of `ReflectedEvent` dictionaries with reflection information
for each event of the class that matches the filter criteria.
tags:
- CustomLuaState
deprecation_message: ''
security: None
thread_safety: Unsafe
capabilities: []
events: []
callbacks: []

View file

@ -120,7 +120,7 @@ methods:
summary: |
Time at which to sample the curve.
returns:
- type: CoordinateFrame?
- type: CFrame?
summary: |
Value of the curve at the requested `time`.
tags: []

View file

@ -49,26 +49,6 @@ properties:
can_save: true
capabilities:
- LegacySound
- name: Sound.ChannelCount
summary: ''
description: ''
code_samples: []
type: int
tags:
- ReadOnly
- NotReplicated
- NotBrowsable
deprecation_message: ''
security:
read: RobloxScriptSecurity
write: RobloxScriptSecurity
thread_safety: ReadSafe
category: Asset
serialization:
can_load: false
can_save: false
capabilities:
- LegacySound
- name: Sound.EmitterSize
summary: |
The minimum distance, in studs, at which a 3D `Class.Sound` (direct child
@ -134,23 +114,6 @@ properties:
can_save: false
capabilities:
- LegacySound
- name: Sound.IsMutedForCapture
summary: ''
description: ''
code_samples: []
type: boolean
tags: []
deprecation_message: ''
security:
read: RobloxScriptSecurity
write: RobloxScriptSecurity
thread_safety: ReadSafe
category: Data
serialization:
can_load: true
can_save: true
capabilities:
- LegacySound
- name: Sound.IsPaused
summary: |
Read-only property which returns `true` when the `Class.Sound` is not

View file

@ -108,7 +108,6 @@ properties:
tags:
- NotReplicated
- NotScriptable
- NotBrowsable
deprecation_message: ''
security:
read: None
@ -387,8 +386,7 @@ properties:
description: ''
code_samples: []
type: boolean
tags:
- NotBrowsable
tags: []
deprecation_message: ''
security:
read: None

View file

@ -391,7 +391,7 @@ properties:
tags: []
deprecation_message: ''
security:
read: RobloxEngineSecurity
read: RobloxScriptSecurity
write: RobloxEngineSecurity
thread_safety: ReadSafe
category: Appearance

View file

@ -746,6 +746,10 @@ methods:
type: string
default:
summary: ''
- name: source
type: Instance
default:
summary: ''
returns:
- type: ()
summary: ''

View file

@ -417,6 +417,74 @@ methods:
thread_safety: Unsafe
capabilities:
- Chat
- name: TextChatService:GetChatGroupsAsync
summary: |
Returns chat group IDs that indicate which players can synchronously text
chat together.
description: |
Returns a sorted array of arrays of chat group IDs for the given players.
Each chat group ID is a string that represents a communication-compatible
group within the current universe.
If two or more players share the same chat group ID, those players are
able to synchronously text chat with each other based on their age-check
status and chat settings.
This method is server-side only and intended for real-time use cases such
as matchmaking and teleporting. Chat group IDs are unique to the current
universe, may change over time, and should not be stored once the user has
left the experience. While you can hold onto the data returned for the
purposes of gameplay while the user is in the experience, this data should
not be stored after they've left.
To use this method, you must enable **Chat & Voice Groups APIs** in
**Experience Settings** ⟩ **Communication** in Roblox Studio and agree to
the Roblox Terms of Use.
```lua
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local players = Players:GetPlayers()
local success, chatGroups = pcall(function()
return TextChatService:GetChatGroupsAsync(players)
end)
if not success then
warn("Failed to retrieve chat groups")
return
end
for _, group in ipairs(chatGroups) do
-- Each group contains chat group ID strings.
-- Players who share a matching group ID can chat with each other.
for _, groupId in ipairs(group) do
print("Chat group ID:", groupId)
end
end
```
code_samples:
- TextChatService-Chat-Groups-Teleport
parameters:
- name: players
type: Instances
default:
summary: |
A list of `Class.Player|Players` currently in the experience to
evaluate for text chat compatibility.
returns:
- type: Array
summary: |
A sorted array of arrays of chat group ID strings. Players who share a
matching chat group ID are eligible to synchronously text chat with
each other.
tags:
- Yields
deprecation_message: ''
security: None
thread_safety: Unsafe
capabilities:
- Chat
events:
- name: TextChatService.BubbleDisplayed
summary: |

View file

@ -115,6 +115,73 @@ properties:
can_save: true
capabilities: []
methods:
- name: VoiceChatService:GetChatGroupsAsync
summary: |
Returns chat group IDs that indicate which players can voice chat
together.
description: |
Returns a sorted array of arrays of chat group IDs for the given players.
Each chat group ID is a string that represents a communication-compatible
group within the current universe.
If two or more players share the same chat group ID, those players are
eligible to voice chat with each other based on their age-check status,
voice chat eligibility, and communication settings.
This method is server-side only and intended for real-time use cases such
as matchmaking and teleporting. Chat group IDs are unique to the current
universe, may change over time, and should not be stored once the user has
left the experience. While you can hold onto the data returned for the
purposes of gameplay while the user is in the experience, this data should
not be stored after they've left.
To use this method, you must enable **Chat & Voice Groups APIs** in
**Experience Settings** ⟩ **Communication** in Roblox Studio and agree to
the Roblox Terms of Use.
```lua
local VoiceChatService = game:GetService("VoiceChatService")
local Players = game:GetService("Players")
local players = Players:GetPlayers()
local success, chatGroups = pcall(function()
return VoiceChatService:GetChatGroupsAsync(players)
end)
if not success then
warn("Failed to retrieve chat groups")
return
end
for _, group in ipairs(chatGroups) do
-- Each group contains chat group ID strings.
-- Players who share a matching group ID can chat with each other.
for _, groupId in ipairs(group) do
print("Chat group ID:", groupId)
end
end
```
code_samples:
- VoiceChatService-Chat-Groups-Teleport
parameters:
- name: players
type: Instances
default:
summary: |
A list of `Class.Player|Players` currently in the experience to
evaluate for voice chat compatibility.
returns:
- type: Array
summary: |
A sorted array of arrays of chat group ID strings. Players who share a
matching chat group ID are eligible to voice chat with each other.
tags:
- Yields
deprecation_message: ''
security: None
thread_safety: Unsafe
capabilities:
- Chat
- name: VoiceChatService:IsVoiceEnabledForUserIdAsync
summary: |
Returns whether or not the given user has voice enabled.

View file

@ -239,7 +239,8 @@ properties:
serialization:
can_load: true
can_save: true
capabilities: []
capabilities:
- Basic
- name: Workspace.DistributedGameTime
summary: |
The amount of time, in seconds, that the game has been running.
@ -352,7 +353,8 @@ properties:
serialization:
can_load: false
can_save: false
capabilities: []
capabilities:
- Basic
- name: Workspace.FluidForces
summary: |
Determines whether the physics engine computes aerodynamic forces on
@ -400,7 +402,8 @@ properties:
serialization:
can_load: true
can_save: true
capabilities: []
capabilities:
- Basic
- name: Workspace.Gravity
summary: |
Determines the acceleration due to gravity applied to falling
@ -424,7 +427,8 @@ properties:
serialization:
can_load: true
can_save: true
capabilities: []
capabilities:
- Basic
- name: Workspace.IKControlConstraintSupport
summary: |
Enables support for constraints for IKControls. If disabled, IKControls
@ -1471,7 +1475,8 @@ methods:
deprecation_message: ''
security: None
thread_safety: Unsafe
capabilities: []
capabilities:
- Basic
- name: Workspace:UnjoinFromOutsiders
summary: |
Breaks all joints between the specified `Class.BasePart|BaseParts` and

View file

@ -92,7 +92,7 @@ methods:
default:
summary: ''
- name: cageOrigin
type: CoordinateFrame?
type: CFrame?
default:
summary: ''
returns: