From 1d14dea0e5a31b6a5c5e6a6554e6c771e9a57f48 Mon Sep 17 00:00:00 2001
From: "rbx-open-source-docs[bot]"
<138828531+rbx-open-source-docs[bot]@users.noreply.github.com>
Date: Mon, 2 Dec 2024 20:02:52 +0000
Subject: [PATCH] update Open Source Docs from Roblox internal teams
---
.../data-stores/error-codes-and-limits.md | 15 +++-
content/en-us/effects/beams.md | 10 +--
content/en-us/effects/highlighting.md | 34 ++++----
content/en-us/effects/index.md | 12 +--
content/en-us/effects/light-sources.md | 44 +++++-----
content/en-us/effects/trails.md | 4 +-
content/en-us/parts/materials.md | 24 +++---
content/en-us/parts/meshes.md | 18 ++---
content/en-us/parts/models.md | 10 +--
content/en-us/parts/textures-decals.md | 38 ++++-----
.../en-us/physics/adaptive-timestepping.md | 17 ++--
content/en-us/physics/assemblies.md | 16 ++--
.../en-us/physics/character-controllers.md | 18 ++---
content/en-us/physics/index.md | 6 +-
.../en-us/physics/mechanical-constraints.md | 18 ++---
content/en-us/physics/mover-constraints.md | 28 +++----
content/en-us/reference/cloud/cloud.docs.json | 81 +++++++++++++++++--
.../reference/engine/classes/DataStore.yaml | 39 +++++++++
content/en-us/workspace/camera.md | 4 +-
tools/checks/utils/allowedHttpLinks.txt | 2 +-
20 files changed, 279 insertions(+), 159 deletions(-)
diff --git a/content/en-us/cloud-services/data-stores/error-codes-and-limits.md b/content/en-us/cloud-services/data-stores/error-codes-and-limits.md
index 0af97ea3f..3c7659d61 100644
--- a/content/en-us/cloud-services/data-stores/error-codes-and-limits.md
+++ b/content/en-us/cloud-services/data-stores/error-codes-and-limits.md
@@ -209,6 +209,12 @@ Requests you make to data stores can fail due to poor connectivity or other issu
`GetVersionAsync` request dropped. Request was throttled.
`Class.DataStore:GetVersionAsync()|GetVersionAsync()` request has exceeded the maximum queue size and Roblox is unable to process the requests at the current throughput.
+
+
+
`GetVersionAtTimeAsyncThrottle`
+
`GetVersionAtTimeAsync` request dropped. Request was throttled.
+
`Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync()` request has exceeded the maximum queue size and Roblox is unable to process the requests at the current throughput.
+
`ListDataStoresAsyncThrottle`
@@ -234,6 +240,13 @@ Requests you make to data stores can fail due to poor connectivity or other issu
`Class.DataStore:RemoveVersionAsync()|RemoveVersionAsync()` request has exceeded the maximum queue size and Roblox is unable to process the requests at the current throughput.
+
+
+
`InvalidTimestamp`
+
Timestamp must be positive and not more than ten minutes in the future.
+
The timestamp provided to `Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync()` was not valid.
+
+
@@ -339,7 +352,7 @@ Each server is allowed a certain number of data store requests based on the requ
diff --git a/content/en-us/effects/beams.md b/content/en-us/effects/beams.md
index 6631012ad..6941b27be 100644
--- a/content/en-us/effects/beams.md
+++ b/content/en-us/effects/beams.md
@@ -70,11 +70,11 @@ The visual quality of your beams can change depending on the graphics settings o
The `Class.Beam.Texture|Texture` property renders that texture across the length of the beam. You can set a beam's `Class.Beam.Texture|Texture` property to any asset ID. For more information, including how to add or upload your own textures, see [Importing Assets](../projects/assets/manager.md#importing-assets).
-
+
A beam renders its texture using two triangles drawn between `Class.Beam.Segments|Segments`, and the segments are laid out between the two attachment points' orientation. When you rotate attachment points in different directions, segments also rotate.
-
+
### Color
@@ -89,7 +89,7 @@ The `Class.Beam.Color|Color` property tints the beam's texture to either a speci
1. Click on the color square to open the **Colors** pop-up window and select a color.
2. Input three numbers into the RGB color value field.
-
+
@@ -175,7 +175,7 @@ You can set the beam's width in studs at each endpoint by configuring the
The beam below has a `Class.Beam.Width0|Width0` value of **0.5** and a
`Class.Beam.Width1|Width1` value of **3**.
-
+
### Texture Length/Mode
@@ -211,4 +211,4 @@ Beams are configured to use a cubic Bézier curve formed by four control points.
-
+
diff --git a/content/en-us/effects/highlighting.md b/content/en-us/effects/highlighting.md
index c3f9c4497..6ff62b0d6 100644
--- a/content/en-us/effects/highlighting.md
+++ b/content/en-us/effects/highlighting.md
@@ -8,15 +8,15 @@ The `Class.Highlight` instance is a visual effect which you can use to call atte
@@ -40,7 +40,7 @@ To add a highlight effect to an object, you can parent a new `Class.Highlight` d
1. In the [Explorer](../studio/explorer.md) window, hover over either a `Class.Model` or a `Class.BasePart`, then click the ⊕ button. A contextual menu displays.
2. From the menu, insert a **Highlight**. The highlight displays on the object with its default property values that create a white outline and a red tint overlay.
-
+
### Setting the Adornee
@@ -56,15 +56,15 @@ The `Class.Highlight.OutlineColor|OutlineColor` property sets the `Datatype.Colo
@@ -75,11 +75,11 @@ The `Class.Highlight.OutlineTransparency|OutlineTransparency` property sets the
@@ -90,15 +90,15 @@ The `Class.Highlight.FillColor|FillColor` property sets the `Datatype.Color3` va
@@ -109,15 +109,15 @@ The `Class.Highlight.FillTransparency|FillTransparency` property sets the visibi
@@ -132,10 +132,10 @@ The `Class.Highlight.DepthMode|DepthMode` property controls how the effect displ
-
+
-
+
diff --git a/content/en-us/effects/index.md b/content/en-us/effects/index.md
index 675ed7dc2..26c01c003 100644
--- a/content/en-us/effects/index.md
+++ b/content/en-us/effects/index.md
@@ -23,15 +23,15 @@ are three types of light sources:
@@ -75,15 +75,15 @@ width="100%">
diff --git a/content/en-us/effects/light-sources.md b/content/en-us/effects/light-sources.md
index 9cc81254c..12c2d6750 100644
--- a/content/en-us/effects/light-sources.md
+++ b/content/en-us/effects/light-sources.md
@@ -9,7 +9,7 @@ light sources instead of just general global lighting through the `Class.Lightin
service, you can create immersive environments such as cyberpunk cities,
traditional light festivals, and moody detective scenes.
-
+
The `Class.Lighting.Technology|Technology` property, modifiable only in the [Properties](../studio/properties.md) window for the global `Class.Lighting` object, sets your experience's lighting technology and affects the visual appearance of light sources. For more information, see [Technology](../environment/lighting.md#technology).
@@ -31,18 +31,18 @@ A point light's `Class.PointLight.Range|Range` property defines the radial dista
To create a `Class.PointLight` in Studio:
-1. In the [Explorer](../studio/explorer.md) window, hover over an `Class.Attachment` or a `Class.BasePart` and click the ⊕ button (`Class.Attachment` is recommended for point‑specific light emission).
+1. In the **Explorer** window, hover over an `Class.Attachment` or a `Class.BasePart` and click the ⊕ button (`Class.Attachment` is recommended for point‑specific light emission).
1. From the menu, insert a `Class.PointLight`.
1. Adjust the light's `Class.PointLight.Range|Range` as well as [shared properties](#shared-properties) like `Class.PointLight.Brightness|Brightness` and `Class.PointLight.Color|Color`.
@@ -55,11 +55,11 @@ as shown from the following streetlamp's glowing light part:
@@ -68,18 +68,18 @@ A spotlight's `Class.SpotLight.Angle|Angle` property defines the angle of light
To create a `Class.SpotLight` in Studio:
-1. In the [Explorer](../studio/explorer.md) window, hover over an `Class.Attachment` or a `Class.BasePart` and click the ⊕ button.
+1. In the **Explorer** window, hover over an `Class.Attachment` or a `Class.BasePart` and click the ⊕ button.
1. From the menu, insert a `Class.SpotLight`.
1. Set the light's `Class.SpotLight.Face|Face` property to specify which direction light emits from.
1. Adjust the light's `Class.SpotLight.Angle|Angle` and `Class.SpotLight.Range|Range`, as well as [shared properties](#shared-properties) like `Class.SpotLight.Brightness|Brightness` and `Class.SpotLight.Color|Color`.
@@ -92,11 +92,11 @@ A surface light's `Class.SurfaceLight.Face|Face` property determines the face of
@@ -105,18 +105,18 @@ A surface light's `Class.SurfaceLight.Angle|Angle` property defines the angle of
To create a `Class.SurfaceLight` in Studio:
-1. In the [Explorer](../studio/explorer.md) window, hover over a `Class.BasePart` and click the ⊕ button.
+1. In the **Explorer** window, hover over a `Class.BasePart` and click the ⊕ button.
1. From the menu, insert a `Class.SurfaceLight`.
1. Set the light's `Class.SurfaceLight.Face|Face` property to specify which surface light emits from.
1. Adjust the light's `Class.SurfaceLight.Angle|Angle` and `Class.SurfaceLight.Range|Range`, as well as [shared properties](#shared-properties) like `Class.SurfaceLight.Brightness|Brightness` and `Class.SurfaceLight.Color|Color`.
@@ -131,15 +131,15 @@ The `Class.Light.Color|Color` property sets the `Datatype.Color3` value of the e
@@ -150,15 +150,15 @@ The `Class.Light.Brightness|Brightness` property sets the light's brightness wit
@@ -169,11 +169,11 @@ The `Class.Light.Shadows|Shadows` property projects shadows where light is block
diff --git a/content/en-us/effects/trails.md b/content/en-us/effects/trails.md
index 5c2bcea1c..cef898e72 100644
--- a/content/en-us/effects/trails.md
+++ b/content/en-us/effects/trails.md
@@ -34,7 +34,7 @@ To create a trail on a part:
1. Hover over the part and click the **⊕** button. A contextual menu displays.
2. From the menu, insert two **Attachments** and one **Trail**.
-
+
2. Select the new **Trail** object and assign its attachments. Ensure you assign each attachment property to a different `Class.Attachment` object.
@@ -79,7 +79,7 @@ The `Class.Trail.Color|Color` property tints the trail's texture to either a spe
1. Click on the color square to open the **Colors** pop-up window and select a color.
2. Input three numbers into the RGB color value field.
-
+
diff --git a/content/en-us/parts/materials.md b/content/en-us/parts/materials.md
index 76defd18e..06f7ee486 100644
--- a/content/en-us/parts/materials.md
+++ b/content/en-us/parts/materials.md
@@ -19,7 +19,7 @@ You can quickly apply materials to [parts](../parts/index.md) through the [Mater
The **Material** widget is accessible from either the [Home](../studio/home-tab.md) or [Model](../studio/model-tab.md) tabs. Clicking the small dropdown arrow reveals a material picker.
-
+
By default, clicking the overall **Material** button applies the chosen material to any **selected** parts. If you prefer a fill/paint workflow instead, toggle on **Material Action as Tool** and then click parts in the 3D viewport to apply the chosen material.
@@ -77,15 +77,15 @@ To create a custom material in the [Material Manager](#material-manager):
1. Click the **base material** from which your custom material will inherit [physical properties](#physical-properties). If you skip this step, the base material will be **Plastic**, but you can change it later.
-
+
2. In the top-left corner, click **Create Material Variant**.
-
+
A new variant appears in the palette with an icon in the bottom-right corner, indicating it's a custom material.
-
+
3. In the inspector, rename your custom material to describe its purpose. You can change the name later, but if you do so **after** applying the material to parts, you'll need to re-apply it to those parts.
4. For each **texture map** option such as **Color** or **Normal**, paste an asset ID or import a new texture from your computer. Square textures work best. If you don't specify an asset for a texture map, that texture remains blank.
@@ -101,7 +101,7 @@ For [parts](../parts/index.md), you can use a custom material just like any othe
You can also apply the new material to a part by setting its **MaterialVariant** property in the [Properties](../studio/properties.md) window. In this case, Studio automatically sets its **Material** property to the base material you chose when creating the material.
-
+
Note that if you rename a custom material **after** applying it to parts, those parts will not automatically use the custom material with the new name. This behavior allows for [Adaptive Materials](#adaptive-materials). If you want parts to continue using a custom material after you rename it, you'll need to re-apply the custom material.
@@ -124,11 +124,11 @@ To set a custom material as a material override in the [Material Manager](#mater
1. Click the custom material that you want to set as an override.
1. In the inspector, scroll down to **Overrides** and enable **Set as Override**.
-
+
The new override appears as a property of **MaterialService** in the [Properties](../studio/properties.md) window.
-
+
#### Terrain Details
@@ -139,15 +139,15 @@ To customize the faces of terrain using a custom material:
1. In the palette of the [Material Manager](#material-manager), click the custom material.
1. In the inspector, confirm that its **Set as Override** toggle is enabled.
-
+
1. In the **Terrain Details** section, click **Create** for each face you want to customize.
-
+
1. For each face you enable, expand the arrow to access and edit details such as its name, texture maps, studs per tile, and pattern.
-
+
#### Disabling Overrides
@@ -158,13 +158,13 @@ You can disable an entire material override and all base materials that it's cur
1. In the palette of the [Material Manager](#material-manager), click a **custom material** that's being used as an override.
1. In the inspector, scroll down to **Overrides** and disable **Set as Override**.
-
+
1. In the palette of the [Material Manager](#material-manager), click a **base material** which is being overridden by a custom material.
2. In the inspector, scroll down to **Material Override** and select **None** from the menu.
-
+
diff --git a/content/en-us/parts/meshes.md b/content/en-us/parts/meshes.md
index a246c0a55..e48564f3b 100644
--- a/content/en-us/parts/meshes.md
+++ b/content/en-us/parts/meshes.md
@@ -11,15 +11,15 @@ Roblox supports many types of meshes, as long as they adhere to the [general mes
@@ -56,8 +56,8 @@ Unlike basic parts, meshes have more customization options that you can adjust f
Studio supports four PBR texture maps, each corresponding to a visual characteristic of an object's surface appearance. Combining multiple texture maps can more accurately simulate color, roughness, and reflectivity in any lighting environment, and enhance the visual elements of your assets and environment. For more information on PBR textures and the texture maps, see [PBR Textures](../art/modeling/surface-appearance.md).
-
-
+
+
You can apply PBR textures using one of the following objects:
@@ -106,17 +106,17 @@ You can dynamically control a mesh's level of detail using its `Enum.RenderFidel
Less than 250 studs
Highest
-
+
250-500 studs
Medium
-
+
500 or more studs
Lowest
-
+
@@ -152,7 +152,7 @@ You can dynamically control a mesh's level of detail using its `Enum.RenderFidel
To view collision fidelity in Studio, toggle on **Collision fidelity** from the [Visualization Options](../studio/ui-overview.md#visualization-options) widget in the upper‑right corner of the 3D viewport.
-For more information on the performance impact of collision fidelity options and how to mitigate them, see [Performance Optimization](../performance-optimization/improving.md#physics-computation). For an in-depth walkthrough on how to choose a collision fidelity option that balances your precision and performance requirements, see [Set Physics and Rendering Parameters](../tutorials/environmental-art/assemble-an-asset-library.md#collisionfidelity).
+For more information on the performance impact of collision fidelity options and how to mitigate them, see [Performance Optimization](../performance-optimization/improving.md#physics-computation). For an in-depth walkthrough on how to choose a collision fidelity option that balances your precision and performance requirements, see [Set Physics and Rendering Parameters](../tutorials/curriculums/environmental-art/optimize-your-experience.md#review-physics-and-rendering-parameters).
## Rigging and Skinning Meshes
diff --git a/content/en-us/parts/models.md b/content/en-us/parts/models.md
index e2cf39ea1..e06261b76 100644
--- a/content/en-us/parts/models.md
+++ b/content/en-us/parts/models.md
@@ -9,11 +9,11 @@ Characters, such as avatars or NPCs, are a single `Class.Model` containing the a
@@ -25,7 +25,7 @@ When you **group** objects together, they automatically become a `Class.Model` o
1. In the 3D viewport or the [Explorer](../studio/explorer.md) window, select every object that you want to group into a model.
1. Right-click on one of the objects and select **Group**, or press CtrlG on Windows or ⌘G on Mac. A new `Class.Model` object displays with all of the objects that make up the model nested underneath.
-
+
To completely ungroup a model back to its original objects, right-click it and select **Ungroup**, or press CtrlU on Windows or ⌘U on Mac.
@@ -45,7 +45,7 @@ To set a primary part:
As you hover over models in the viewport, they are outlined to indicate their potential selection. You can select an outlined model by clicking it, or you can select multiple models by holding Shift, Ctrl, or ⌘ as you hover over and click them.
-
+
As models typically contain multiple child [parts](../parts/index.md) or [meshes](../parts/meshes.md), some children may be hidden from view. To select a specific child without moving the camera around or locating the child in the [Explorer](../studio/explorer.md) hierarchy, click while holding Alt on Windows or ⌥ on Mac to perform [selection cycling](../studio/ui-overview.md#selection-cycling).
@@ -94,7 +94,7 @@ While models act similarly to `Class.Folder` objects for most purposes in your e
When a `Class.Humanoid` is present inside a model that contains a `Class.Part` named **Head**, Roblox displays a name and/or health bar above that part. For more information, see [Character Name/Health Display](../characters/name-health-display.md).
-
+
### Destroy Height
diff --git a/content/en-us/parts/textures-decals.md b/content/en-us/parts/textures-decals.md
index 8f5363499..e3754ec28 100644
--- a/content/en-us/parts/textures-decals.md
+++ b/content/en-us/parts/textures-decals.md
@@ -23,22 +23,22 @@ can:
@@ -69,15 +69,15 @@ To add a texture or decal to a part or union:
4. **(Optional)** Set a color tint by clicking the small box to the left of the **Color3** property or by entering a RGB color code.
-
-
+
+
@@ -86,11 +86,11 @@ To add a texture or decal to a part or union:
@@ -101,11 +101,11 @@ A **face** is a surface on a part/union that displays a texture or decal: **Top*
@@ -114,7 +114,7 @@ To choose a face:
1. **(Optional)** To assist in choosing the correct face, right-click the part/union and select **Show Orientation Indicator**. This displays a blue circle with an **F** and a line attached to the object's **Front** face, and a green arrow that points in the direction of the object's **Top** face.
-
+
2. Select a texture or decal that is a child of the part or union.
@@ -132,15 +132,15 @@ The `Class.Texture.StudsPerTileU|StudsPerTileU` and `Class.Texture.StudsPerTileV
@@ -157,15 +157,15 @@ If you want more control over a texture's position, offset the texture by adjust
diff --git a/content/en-us/physics/adaptive-timestepping.md b/content/en-us/physics/adaptive-timestepping.md
index 8cb6cdc52..55323bc23 100644
--- a/content/en-us/physics/adaptive-timestepping.md
+++ b/content/en-us/physics/adaptive-timestepping.md
@@ -7,7 +7,7 @@ The Roblox physics engine simulates all parts inside the 3D workspace through Ne
By default, Roblox simulates physics at 240 Hz. Given cycles of approximately 60 frames per second, around 4 worldsteps are advanced per frame. With **adaptive timestepping**, the physics engine automatically assigns parts to three "solver islands" by varying their simulation timestep, with an emphasis on 60 Hz for best performance. However, parts that are "harder" to solve will use a faster timestep like 240 Hz to ensure physical stability.
-
+
Assignment criterions are subject to change, but parts assigned to the 240 Hz island include [assemblies](../physics/assemblies.md) with high velocity values, high acceleration values, and complex mechanisms that are hard to solve.
@@ -17,24 +17,21 @@ To enable adaptive timestepping in Studio:
1. In the **Explorer** window, select the **Workspace** object.
-
+
2. In the **Properties** window, locate **PhysicsSteppingMethod** and select **Adaptive**.
-
+
To observe the timestepping process in action, you can open the Studio **Microprofiler** (CtrlF6; ⌘F6). Once the experience is running, press CtrlP (⌘P) to pause at the current frame.
Under the scope named **physicsStepped**, observe that the scope name of **worldStep** now reads **worldStep - Adaptive**.
-
+
Hovering your cursor above **LDLPGSSolver::solve** will reveal the status of how many islands belong in each frequency bucket; **1dt Islands** (240 Hz), **2dt Islands** (120 Hz) and **4dt Islands** (60 Hz).
-
+
## Debugging Visualization
@@ -43,11 +40,11 @@ During testing, it may be useful to visualize frequencies for simulated parts. T
1. Open the Studio settings window (**File** 〉 **Studio Settings**).
2. From the **Physics** tab, enable **Are Timesteps Shown**.
-
+
Once enabled, simulated parts will be outlined by their current simulation rate. If a part stops being simulated, either via the [sleep system](../physics/sleep-system.md) or a network ownership change, the part will no longer be outlined.
-
+