Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/en-us/production/analytics/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ The **Server** tab includes the following charts:
<tbody>
<tr>
<td>Server CPU time</td>
<td>Stacked area chart showing milliseconds (ms) of processing time per frame. Values over 16.67 ms are highly undesirable; they can cause server frame rates to drop below 60. See [Server Compute](../../performance-optimization/identify.md#server-compute)</td>
<td>Stacked area chart showing milliseconds (ms) of processing time per frame. Values over 16.67 ms are highly undesirable; they can cause server frame rates to drop below 60. See [Server Compute](../../performance-optimization/identify.md#server-compute).</td>
</tr>
<tr>
<td>Server frame rate</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,8 +444,7 @@ methods:
- type: RBXScriptSignal
summary: |
The signal created and fired when the animation reaches the created
`KeyframeMarker`. Not to be confused with the name of the
`Class.Keyframe`.
`Class.KeyframeMarker`.
tags: []
deprecation_message: ''
security: None
Expand Down
8 changes: 4 additions & 4 deletions content/en-us/reference/engine/classes/IKControl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@ description: |
their environment.

For example, you can make a character place its hand on a door handle exactly,
and the character will do so independently of its position. IKControls provide
the advantage of needing to create much fewer animations for your game while
and the character will do so independently of its position. `Class.IKControl|IKControls`
provide the advantage of needing to create much fewer animations for your game while
giving your experience a more realistic and polished feel.

`Class.IKControl|IKControls` must be a child of a `Class.Humanoid` or
`Class.AnimationController` with an `Class.Animator` and have all of their
required properties set properly, otherwise they don't have any effect. The
required properties are `Class.IKControl.Type|Type`,
`Class.IKControl.EndEffector|EndEffector`, `Class.IKControl.Target|Target`,
`Class.IKControl.ChainRoot|ChainRoot`. As soon as those are set, the IkControl
`Class.IKControl.ChainRoot|ChainRoot`. As soon as those are set, the `Class.IKControl`
modifies the pose of your character as you specify. The following code sample
demonstrates how to set up your first `Class.IKControl` and get started with
creating more realistic animations for your game.

You can use IKControls to make a character:
You can use `Class.IKControl|IKControls` to make a character:

- Rotate its head and torso to look at a point of interest in the world.
- Modify its feet positions to respond to dynamic terrain. Adjust its legs and
Expand Down
4 changes: 2 additions & 2 deletions content/en-us/reference/engine/classes/Instance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -402,12 +402,12 @@ methods:
return `nil`.

If a reference property such as `Class.ObjectValue.Value` is set in a
cloned instance, the value of the copy's property depends on original's
cloned instance, the value of the copy's property depends on the original's
value:

- If a reference property refers to an instance that was **also** cloned,
the copy will refer to the copy.
- If a reference property refers to an object that was **not** cloned, the
- If a reference property refers to an instance that was **not** cloned, the
same value is maintained in the copy.
code_samples:
- Clone-Example
Expand Down
28 changes: 15 additions & 13 deletions content/en-us/reference/engine/classes/MarketplaceService.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1258,7 +1258,7 @@ events:

This might not accurately reflect if the purchase itself has been
successfully processed. Use
`MarketplaceService.UserOwnsGamePassAsync|UserOwnsGamePassAsync` as
`Class.MarketplaceService:UserOwnsGamePassAsync()|UserOwnsGamePassAsync` as
ownership confirmation.
tags: []
deprecation_message: ''
Expand Down Expand Up @@ -1292,11 +1292,12 @@ events:
Fires when a purchase prompt for a developer product is closed. Do not use
this event to process purchases.
description: |
**IMPORTANT:** Do **not** use the `PromptProductPurchaseFinished` event to
process purchases; instead, use the
`Class.MarketplaceService.ProcessReceipt|ProcessReceipt` callback. The
firing of `PromptProductPurchaseFinished` does **not** mean that a user
has successfully purchased an item.
**IMPORTANT:** Do **not** use the
`Class.MarketplaceService.PromptProductPurchaseFinished|PromptProductPurchaseFinished`
event to process purchases; instead, use the
`Class.MarketplaceService.ProcessReceipt|ProcessReceipt` callback. The firing of
`Class.MarketplaceService.PromptProductPurchaseFinished|PromptProductPurchaseFinished`
does **not** mean that a user has successfully purchased an item.

This event fires when a purchase prompt for a
[developer product](../../../production/monetization/developer-products.md)
Expand All @@ -1305,18 +1306,19 @@ events:
**OK**. The firing of this event does **not** mean that a user has
successfully purchased an item.

While you can use the `PromptProductPurchaseFinished` event to detect when
a user closes a purchase prompt, you should **not** use it to process
purchases because those purchases might still fail in the backend for
While you can use the
`Class.MarketplaceService.PromptProductPurchaseFinished|PromptProductPurchaseFinished`
event to detect when a user closes a purchase prompt, you should **not** use it
to process purchases because those purchases might still fail in the backend for
several reasons. For example, if a Roblox system is offline, or if the
product price has changed and the user now doesn't have enough Robux to
make the purchase. To process purchases, you must use
`Class.MarketplaceService.ProcessReceipt()|ProcessReceipt`. Using
`ProcessReceipt` allows you to confirm that the purchase has succeeded
before you grant the user the item they have purchased.
`Class.MarketplaceService.ProcessReceipt()|ProcessReceipt` allows you to confirm
that the purchase has succeeded before you grant the user the item they have purchased.

The `PromptProductPurchaseFinished` event fires with a `Player.UserId`
instead of a reference to the `Player` object.
The `Class.MarketplaceService.PromptProductPurchaseFinished|PromptProductPurchaseFinished`
event fires with a `Class.Player.UserId` instead of a reference to the `Class.Player` object.

##### See also

Expand Down
5 changes: 2 additions & 3 deletions content/en-us/reference/engine/classes/VideoFrame.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -248,9 +248,8 @@ methods:
Sets `Class.VideoFrame.Playing` to true, playing the
`Class.VideoFrame.Video` from the current `Class.VideoFrame.TimePosition`.
description: |
Sets `Class.VideoFrame.Playing` to true, This plays the
`Class.VideoFrame.Video`, continuing from the current
`Class.VideoFrame.TimePosition`.
Sets `Class.VideoFrame.Playing` to true, playing the
`Class.VideoFrame.Video` from the current `Class.VideoFrame.TimePosition`.
code_samples:
- creating-and-playing-a-video
parameters: []
Expand Down
8 changes: 4 additions & 4 deletions content/en-us/reference/engine/enums/AdEventType.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,24 +33,24 @@ items:
This option should not be used for new work.
- name: RewardedAdLoaded
summary: |
The event is fired when a click-to-play video ads is being served. This
The event is fired when a click-to-play video ad is being served. This
can be used to communicate and promote the reward to users through the UI
or signage.
value: 3
tags: []
deprecation_message: ''
- name: RewardedAdGrant
summary: |
The event is fired when a user has watched the click-to-play video for a
certain time. This can be used to grant the player a reward such as an
The event is fired when a user has watched the click-to-play video ad for
a certain time. This can be used to grant the player a reward such as an
in-game item or in-game currency. The RewardedAdGrant enum will only be
triggered once per ad rotation.
value: 4
tags: []
deprecation_message: ''
- name: RewardedAdUnloaded
summary: |
The event is fired when a click-to-play video ads is rotated out. This can
The event is fired when a click-to-play video ad is rotated out. This can
be used to remove any UI or signage that is promoting the reward.
value: 5
tags: []
Expand Down
2 changes: 1 addition & 1 deletion content/en-us/scripting/multithreading.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Scripts that are part of the same actor always execute sequentially with respect

### Thread safety

During the parallel execution, you can access most instances of the `DataModel` hierarchy as usual, but some API properties and functions aren't safe to read or write. If you use them in your parallel code, Roblox Engine can automatically detect and prevent these accesses from occurring.
During the parallel execution, you can access most instances of the `Class.DataModel` hierarchy as usual, but some API properties and functions aren't safe to read or write. If you use them in your parallel code, the Roblox Engine can automatically detect and prevent these accesses from occurring.

API members have a thread safety level that indicates whether and how you can use them in your parallel code, as the following table shows:

Expand Down