Skip to content

Commit 5dc0d64

Browse files
authored
Merge branch 'main' into yusufameri-creator-store-docs
2 parents 4282b81 + eb82640 commit 5dc0d64

File tree

8 files changed

+130
-55
lines changed

8 files changed

+130
-55
lines changed

content/en-us/cloud/open-cloud/index.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,29 @@ description: In addition to using Engine and Studio tools to create experiences
55

66
With Open Cloud, you can access Roblox resources through standard REST APIs, which lets you build everything from command line automation tools to complex web apps. The Open Cloud APIs support HTTPS and let you update experiences, restart servers, work with your data stores and memory stores, manage user restrictions, list inventory items, and much, much more.
77

8-
For the full list of available operations, see the Open Cloud API reference.
9-
108
<a href="../reference/index.md">
119
<Button variant="contained">Open Cloud API Reference</Button>
1210
</a>
1311

12+
## About the APIs
13+
14+
Roblox has four categories of HTTP REST API:
15+
16+
- [Open Cloud v2](../reference/index.md)
17+
- [Open Cloud v1](../reference/index.md)
18+
- [Legacy with API key and/or OAuth 2.0 authentication](../legacy.md)
19+
- [Legacy with cookie authentication](../legacy.md)
20+
21+
Whenever possible, use the Open Cloud v2 API. This API has the strongest stability guarantees and regularly adds new resources. The Open Cloud v1 API also has strong stability guarantees, but a more limited set of resources.
22+
23+
The legacy APIs, no matter which types of authentication they support, can incorporate breaking changes without notice and have minimal stability guarantees. They are not part of the Open Cloud v1 or v2 APIs, and we don't recommend them for production applications.
24+
1425
## Getting Started with Open Cloud
1526

16-
1. See the authentication documentation for how to use [API keys](api-keys.md) or [OAuth 2.0](oauth2-overview.md).
27+
1. Set up authentication for your application.
28+
29+
See the documentation for how to use [API keys](api-keys.md) or [OAuth 2.0](oauth2-overview.md). API keys are the easiest way to get started.
30+
1731
1. Use a tool like [Postman](https://www.postman.com) or the [OAuth 2.0 sample app](oauth2-sample.md) to test API calls.
1832
1. Review the [resource guides](experience-notifications.md) for end-to-end walkthroughs of using certain APIs.
19-
1. See the Open Cloud [reference documentation](../reference/index.md) for the full list of resources, [common API patterns](../reference/patterns.md), and [types](../reference/types.md).
33+
1. See the Open Cloud [reference documentation](../reference/index.md) for the full list of v1 and v2 resources, [common API patterns](../reference/patterns.md), and [types](../reference/types.md).

content/en-us/production/game-design/ui-ux-design.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ Irrelevant elements can cause confusion and distraction. [_Spellbound RPG_](http
3737
<GridContainer numColumns="2">
3838
<figure>
3939
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-3.png" alt="A close up view of an unselected circular Items button with a brown book icon. The environment in the background is a brown dirt with a patch of snow." width="100%"/>
40-
<figcaption>Items prior to selection in *Spellbound RPG*</figcaption>
40+
<figcaption>Items prior to selection in [Spellbound RPG](https://www.roblox.com/games/6468323505/)</figcaption>
4141
</figure>
4242
<figure>
4343
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-2.png" alt="A close up view of a selected circular Items button with a brown book icon, along with three additional buttons for skills, equipment, and the players deck. The additional buttons only display when the button is selected." width="90%"/>
44-
<figcaption>Items after selection in *Spellbound RPG*</figcaption>
44+
<figcaption>Items after selection in [Spellbound RPG](https://www.roblox.com/games/6468323505/)</figcaption>
4545
</figure>
4646
</GridContainer>
4747

@@ -50,19 +50,19 @@ In [_Super Striker League_](https://www.roblox.com/games/3360853050/), player in
5050
<GridContainer numColumns="2">
5151
<figure>
5252
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-6.png" width="100%"/>
53-
<figcaption>Contextual buttons in _Super Striker League_</figcaption>
53+
<figcaption>Contextual buttons in [Super Striker League](https://www.roblox.com/games/3360853050/)</figcaption>
5454
</figure>
5555
<figure>
5656
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-7.png" width="100%"/>
57-
<figcaption>Contextual buttons in _Super Striker League_</figcaption>
57+
<figcaption>Contextual buttons in [Super Striker League](https://www.roblox.com/games/3360853050/)</figcaption>
5858
</figure>
5959
</GridContainer>
6060

6161
In [_The Survival Game,_](https://www.roblox.com/games/11156779721/) players need to be aware of their health and hunger status, and have quick access to their map, inventory, and tools. This information allows them to make decisions and prioritize actions for survival. If this information or tools are hard to find or missing, survival becomes more challenging and needlessly frustrating.
6262

6363
<figure>
6464
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-1.png" width="60%"/>
65-
<figcaption> HUD features in _The Survival Game_ </figcaption>
65+
<figcaption> HUD features in [The Survival Game](https://www.roblox.com/games/11156779721/)</figcaption>
6666
</figure>
6767

6868
### Attention
@@ -83,21 +83,21 @@ In [_Jailbreak_](https://www.roblox.com/games/606849621/)'s season pass UI, a st
8383

8484
<figure>
8585
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-8.png" width="60%"/>
86-
<figcaption> Season pass UI in _Jailbreak_ </figcaption>
86+
<figcaption> Season pass UI in [Jailbreak](https://www.roblox.com/games/606849621/)</figcaption>
8787
</figure>
8888

8989
In [_Dragon Adventures,_](https://www.roblox.com/games/3475397644/) visual priority is given to the highest-value coin bundle by increasing its size and separating it with more padding, to distinguish it from smaller bundles.
9090

9191
<figure>
9292
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-9.png" width="60%"/>
93-
<figcaption> Coin bundles in _Dragon Adventures_</figcaption>
93+
<figcaption> Coin bundles in [Dragon Adventures](https://www.roblox.com/games/3475397644/)</figcaption>
9494
</figure>
9595

9696
In [_Tower Defense Simulator_](https://www.roblox.com/games/3260590327/), both size and proximity are used to visually group and distinguish Daily Tower Skins from Daily Crates.
9797

9898
<figure>
9999
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-10.png" width="60%"/>
100-
<figcaption> _Tower Defense Simulator_ shop</figcaption>
100+
<figcaption>The shop in [Tower Defense Simulator](https://www.roblox.com/games/3260590327/)</figcaption>
101101
</figure>
102102

103103
### Visual language
@@ -128,7 +128,7 @@ Headers and titles containing significant high-level information should be large
128128

129129
<figure>
130130
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-13.png" width="40%"/>
131-
<figcaption> Clothing Shop in *Winds of Fortune*</figcaption>
131+
<figcaption> Clothing Shop in [Winds of Fortune](https://www.roblox.com/games/7714627632/)</figcaption>
132132
</figure>
133133

134134
Once the visual language has been designed, it can be documented in a _Style Guide_, a set of rules and examples that help everyone on the team understand how to apply the language consistently across the game.
@@ -146,11 +146,11 @@ Given their widespread use, players are typically familiar with such conventions
146146
<GridContainer numColumns="2">
147147
<figure>
148148
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-14.png" width="100%"/>
149-
<figcaption>X Close Buttons in *Winds of Fortune*, *Dragon Adventures*, *BotClashSimulator*, and *DOORS*</figcaption>
149+
<figcaption>X Close Buttons in [Winds of Fortune](https://www.roblox.com/games/7714627632/), [Dragon Adventures](https://www.roblox.com/games/3475397644/), [BotClash Simulator](https://www.roblox.com/games/9300407930/), and [DOORS](https://www.roblox.com/games/6516141723/)</figcaption>
150150
</figure>
151151
<figure>
152152
<img src="../../assets/game-design/ui-ux-design/ui-ux-design-15.png" width="90%"/>
153-
<figcaption>Green "Health" stat consistency in *Arcane Odyssey*</figcaption>
153+
<figcaption>Green "Health" stat consistency in [Arcane Odyssey](https://www.roblox.com/games/3272915504/)</figcaption>
154154
</figure>
155155
</GridContainer>
156156

@@ -245,7 +245,7 @@ For example, to equip an item on an avatar in [Berry Avenue RP](https://www.robl
245245

246246
<figure>
247247
<video controls src="../../assets/game-design/ui-ux-design/ui-ux-design-18-video.mp4"></video>
248-
<figcaption>Avatar customization flow in *Berry Avenue RP*.</figcaption>
248+
<figcaption>Avatar customization flow in [Berry Avenue RP](https://www.roblox.com/games/8481844229/)</figcaption>
249249
</figure>
250250

251251
These steps taken together represent the avatar customization flow. This flow is simple and straightforward, with as few steps as possible needed to equip an item. Because players do not have to perform many actions or think too much about what they need to do, this flow is low in _friction_, a measurement of the effort required to reach a goal.

content/en-us/projects/assets/index.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,18 @@ if success then
260260
end
261261
```
262262

263+
### rbxgameasset
264+
265+
`rbxgameasset` points to an asset uploaded through the [Asset Manager](../../projects/assets/manager.md). It allows access to assets by a user‑friendly name instead of ID, so if you upload an image named `Potion.png`, you can reference it as:
266+
267+
<span><Chip label='rbxgameasset://Images/Potion' color='primary' size='large' /></span><br />
268+
269+
In the above example, `Images` is the category/folder that appears in the [Asset Manager](../../projects/assets/manager.md) and `Potion` is the asset name, minus its extension.
270+
271+
<Alert severity="warning">
272+
`rbxgameasset` only works for the current game. If you paste a parent object that utilizes the asset into another game, the asset will not load (or will load a different asset if you've uploaded one with the same name to that other game). If you need an asset to work across multiple games, use `rbxassetid` instead of `rbxgameasset`.
273+
</Alert>
274+
263275
### rbxhttp
264276

265277
`rbxhttp` is shorthand for `Class.ContentProvider.BaseUrl`, for example:

content/en-us/reference/engine/classes/AtmosphereSensor.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ category:
44
memory_category: Instances
55
summary: |
66
A `Class.SensorBase` that outputs data about the
7-
`Class.AtmosphereSensor.AirDenstiy|AirDenstiy` and
7+
`Class.AtmosphereSensor.AirDensity|AirDensity` and
88
`Class.AtmosphereSensor.RelativeWindVelocity|RelativeWindVelocity` at the
99
sensor's position.
1010
description: |
1111
A `Class.SensorBase` that outputs data about the
12-
`Class.AtmosphereSensor.AirDenstiy|AirDenstiy` and
12+
`Class.AtmosphereSensor.AirDensity|AirDensity` and
1313
`Class.AtmosphereSensor.RelativeWindVelocity|RelativeWindVelocity` at the
1414
sensor's position.
1515
code_samples: []

content/en-us/reference/engine/classes/FluidForceSensor.yaml

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,15 @@ name: FluidForceSensor
22
type: class
33
category:
44
memory_category: Instances
5-
summary: ''
6-
description: ''
5+
summary: |
6+
A `Class.SensorBase` that outputs `Class.FluidForceSensor.Force|Force`, `Class.FluidForceSensor.Torque|Torque` and `Class.FluidForceSensor.CenterOfPressure|CenterOfPressure`.
7+
description: |
8+
`FluidForceSensor` is a `Class.SensorBase` which outputs the results of fluid
9+
force simulation from the last physics frame for the part it is attached to.
10+
The sensor outputs the `Class.FluidForceSensor.Force|Force`,
11+
`Class.FluidForceSensor.Torque|Torque` and
12+
`Class.FluidForceSensor.CenterOfPressure|CenterOfPressure` which were computed
13+
by the fluid force simulation on the last physics frame.
714
code_samples: []
815
inherits:
916
- SensorBase
@@ -12,8 +19,12 @@ tags:
1219
deprecation_message: ''
1320
properties:
1421
- name: FluidForceSensor.CenterOfPressure
15-
summary: ''
16-
description: ''
22+
summary: |
23+
Assembly center of pressure offset from its center of mass in world
24+
coordinates.
25+
description: |
26+
Assembly center of pressure offset from its center of mass in world
27+
coordinates.
1728
code_samples: []
1829
type: Vector3
1930
tags:
@@ -31,8 +42,10 @@ properties:
3142
capabilities: []
3243
writeCapabilities: []
3344
- name: FluidForceSensor.Force
34-
summary: ''
35-
description: ''
45+
summary: |
46+
Assembly fluid force in world coordinates.
47+
description: |
48+
Assembly fluid force in world coordinates.
3649
code_samples: []
3750
type: Vector3
3851
tags:
@@ -50,8 +63,10 @@ properties:
5063
capabilities: []
5164
writeCapabilities: []
5265
- name: FluidForceSensor.Torque
53-
summary: ''
54-
description: ''
66+
summary: |
67+
Assembly fluid torque in world coordinates.
68+
description: |
69+
Assembly fluid torque in world coordinates.
5570
code_samples: []
5671
type: Vector3
5772
tags:
@@ -70,25 +85,36 @@ properties:
7085
writeCapabilities: []
7186
methods:
7287
- name: FluidForceSensor:EvaluateAsync
73-
summary: ''
74-
description: ''
88+
summary: |
89+
Asynchronously computes force, torque, and center of pressure for the
90+
parent part of a sensor given provided inputs.
91+
description: |
92+
Asynchronously computes force, torque, and center of pressure for the
93+
parent part of a sensor given provided inputs.
7594
code_samples: []
7695
parameters:
7796
- name: linearVelocity
7897
type: Vector3
7998
default:
80-
summary: ''
99+
summary: |
100+
Linear velocity in world coordinates.
81101
- name: angularVelocity
82102
type: Vector3
83103
default:
84-
summary: ''
104+
summary: |
105+
Angular velocity in world coordinates.
85106
- name: cframe
86107
type: CFrame
87108
default:
88-
summary: ''
109+
summary: |
110+
`Datatype.CFrame` to be used for evaluation.
89111
returns:
90112
- type: Tuple
91-
summary: ''
113+
summary: |
114+
Tuple of `Class.FluidForceSensor.Force|Force`,
115+
`Class.FluidForceSensor.Torque|Torque` and
116+
`Class.FluidForceSensor.CenterOfPressure|CenterOfPressure` calculated
117+
given the input parameters.
92118
tags:
93119
- Yields
94120
deprecation_message: ''

content/en-us/reference/engine/classes/Instance.yaml

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,22 +1727,31 @@ events:
17271727
writeCapabilities: []
17281728
- name: Instance.Destroying
17291729
summary: |
1730-
Fires immediately before the instance is destroyed via
1731-
`Class.Instance:Destroy()`.
1730+
Fires immediately before (or is deferred until after) the instance is destroyed via `Class.Instance:Destroy()`.
17321731
description: |
1733-
The Destroying event fires immediately before the Instance or one of its
1734-
ancestors is destroyed with `Instance.Destroy()`.
1735-
1736-
The Instance will never be deleted from memory while a connected function
1737-
is still using it. However, if the function yields at any point, the
1738-
Instance and its descendants will be parented to `nil`.
1739-
1740-
When deleting an instance in Studio, such as manually deleting through the
1741-
Explorer or through a plugin, the instance isn't destroyed. Instead, the
1742-
parent is set to `nil` which you can track with
1743-
`Class.Instance.AncestryChanged`.
1732+
The `Class.Instance` will
1733+
never be deleted from memory while a connected function is still using it. However,
1734+
if the function yields at any point, the `Class.Instance` and its descendants will be
1735+
parented to `nil`.
1736+
1737+
If the `Class.Workspace.SignalBehavior` property is set to `Enum.SignalBehavior.Immediate`,
1738+
this event fires immediately before the `Class.Instance` or one of its ancestors is destroyed
1739+
with `Class.Instance:Destroy()`.
1740+
1741+
If the `Class.Workspace.SignalBehavior` property is set to `Enum.SignalBehavior.Deferred`, this event
1742+
fires at the next resumption point, which will be after the `Class.Instance` or one of its ancestors is
1743+
destroyed with `Class.Instance:Destroy()`.
1744+
1745+
With `Enum.SignalBehavior.Deferred|Deferred` behavior, connecting a script to its own
1746+
`Class.Instance.Destroying` event is problematic, as the script will be destroyed before the callback
1747+
can be called (meaning it will not execute).
1748+
1749+
When deleting an `Class.Instance` in Studio, such as manually deleting through the
1750+
[Explorer](../../../studio/explorer.md) or through a plugin, the `Class.Instance` isn't destroyed. Instead,
1751+
the parent is set to `nil` which you can track with `Class.Instance.AncestryChanged`.
17441752
code_samples:
1745-
- Instance-Destroying
1753+
- Instance-Destroying-Immediate
1754+
- Instance-Destroying-Deferred
17461755
parameters: []
17471756
tags: []
17481757
deprecation_message: ''

content/en-us/reference/engine/classes/Workspace.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -760,8 +760,16 @@ properties:
760760
capabilities: []
761761
writeCapabilities: []
762762
- name: Workspace.SignalBehavior
763-
summary: ''
764-
description: ''
763+
summary: |
764+
Configures when the engine resumes event handlers.
765+
description: |
766+
This property determines whether event handlers will be resumed immediately when the event fires,
767+
or deferred and then resumed at a later resumption point. Resumption points currently include:
768+
- `Class.RunService.RenderStepped`
769+
- Waiting script resumption such as `Library.task.wait()`, `Library.task.spawn()`, and `Library.task.delay()`
770+
- `Class.RunService.Stepped`
771+
- `Class.RunService.Heartbeat`
772+
- `Class.DataModel.BindToClose`
765773
code_samples:
766774
type: SignalBehavior
767775
tags:
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
name: SignalBehavior
22
type: enum
3-
summary: ''
4-
description: ''
3+
summary: 'Determines when the engine resumes event handlers.'
4+
description: |
5+
Determines when the engine resumes event handlers. At some future point, the default mode will
6+
be `Deferred` but opt-out will still be possible through use of `Immediate`.
57
code_samples:
68
tags: []
79
deprecation_message: ''
810
items:
911
- name: Default
1012
value: 0
11-
summary: ''
13+
summary: |
14+
The default behavior; currently equivalent to `Immediate` but this will eventually change to `Deferred`.
1215
tags: []
1316
deprecation_message: ''
1417
- name: Immediate
1518
value: 1
16-
summary: ''
19+
summary: |
20+
Event handlers are resumed immediately when the event occurs.
1721
tags: []
1822
deprecation_message: ''
1923
- name: Deferred
2024
value: 2
21-
summary: ''
25+
summary: |
26+
All events are deferred and their handlers resumed at specific resumptions points each frame.
2227
tags: []
2328
deprecation_message: ''
2429
- name: AncestryDeferred
2530
value: 3
26-
summary: ''
31+
summary: |
32+
Equivalent to `Deferred` but only for events triggered by changes in ancestry.
2733
tags: []
28-
deprecation_message: ''
34+
deprecation_message: ''

0 commit comments

Comments
 (0)