Skip to content

Commit 2a3d76d

Browse files
update Open Source Docs from Roblox internal teams
1 parent 75175a3 commit 2a3d76d

File tree

9 files changed

+333
-371
lines changed

9 files changed

+333
-371
lines changed
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:91983a3f75f4e74d40b58240444326982f431c90a08b7e421aa61e02345036e0
3+
size 412943539
Lines changed: 2 additions & 2 deletions
Loading

content/en-us/input/input-action-system.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ An `Class.InputAction` can be of several variations depending on its `Class.Inpu
5252
<td>`Enum.InputActionType|Direction3D`</td>
5353
<td>3D directional movement like an airborne vehicle that can levitate up/down, accelerate/decelerate, and drift left/right.</td>
5454
</tr>
55+
<tr>
56+
<td>`Enum.InputActionType|ViewportPosition`</td>
57+
<td>2D viewport coordinates like mouse input, such as for custom cursors or raycasting to select world objects.</td>
58+
</tr>
5559
</tbody>
5660
</table>
5761

@@ -133,7 +137,7 @@ The `Class.InputAction` instance has three built-in **events** to handle player
133137
- `Class.InputAction.Released|Released` — This event fires only when the input action's `Class.InputAction.Type|Type` is set to `Enum.InputActionType|Bool`, and only when the state transitions from `true` to `false`.
134138
- `Class.InputAction.StateChanged|StateChanged` — This event fires for all input action types whenever the state changes, except if the state attempts to transition to the same state.
135139

136-
Depending on the input action's `Class.InputAction.Type|Type` (`Enum.InputActionType|Bool`, `Enum.InputActionType|Direction1D`, `Enum.InputActionType|Direction2D`, or `Enum.InputActionType|Direction3D`) and the general input type coming from a child `Class.InputBinding` (key/button/tap, analog trigger, thumbstick, etc.), different values are returned to the `Class.InputAction.Pressed|Pressed`, `Class.InputAction.Released|Released`, and `Class.InputAction.StateChanged|StateChanged` event handlers. Examine the following tables to better understand the correlation.
140+
Depending on the input action's `Class.InputAction.Type|Type` (`Enum.InputActionType|Bool`, `Enum.InputActionType|Direction1D`, `Enum.InputActionType|Direction2D`, `Enum.InputActionType|Direction3D`, or `Enum.InputActionType|ViewportPosition`) and the general input type coming from a child `Class.InputBinding` (key/button/tap, analog trigger, thumbstick, etc.), different values are returned to the `Class.InputAction.Pressed|Pressed`, `Class.InputAction.Released|Released`, and `Class.InputAction.StateChanged|StateChanged` event handlers. Examine the following tables to better understand the correlation.
137141

138142
<Tabs>
139143
<TabItem label="Bool">
@@ -235,6 +239,25 @@ The `Enum.InputActionType|Direction3D` type is best for 3D directional movement
235239
</tbody>
236240
</table>
237241

242+
</TabItem>
243+
<TabItem label="ViewportPosition">
244+
The `Enum.InputActionType|ViewportPosition` type is best for 2D absolute viewport coordinates of a pointer-like input such as mouse, which can be used for features like custom cursors or selecting 2D and 3D objects.
245+
246+
<table>
247+
<thead>
248+
<tr>
249+
<th>Valid Input Types on `Class.InputBinding|InputBindings`</th>
250+
<th>Returned to the `Class.InputAction` Event(s)</th>
251+
</tr>
252+
</thead>
253+
<tbody>
254+
<tr>
255+
<td width="40%">Variable input amounts from pointer inputs such as a mouse (`Enum.KeyCode|MousePosition`).</td>
256+
<td><ul style={{marginBottom: -16}}><li>`Class.InputAction.StateChanged|StateChanged` event:<ul><li>`Datatype.Vector2` between <Typography noWrap>`(0, 0)`</Typography> and the maximum absolute <Typography noWrap>`(X, Y)`</Typography> pixel size in the viewport.</li></ul></li></ul></td>
257+
</tr>
258+
</tbody>
259+
</table>
260+
238261
</TabItem>
239262
</Tabs>
240263

content/en-us/makeup/index.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,26 @@ A comprehensive `.zip` folder of Maya assets, including multiple reference heads
146146
<Button href="../assets/makeup/resources/Makeup-Reference-Maya.zip" fullWidth size='large' color='primary' variant='contained' style={{marginBottom:"4px;"}}>Download</Button>
147147
</CardActions>
148148

149+
</Card>
150+
</Grid>
151+
152+
<Grid item xs={12} md={6} lg={4} style={{ padding: 6, display: 'flex' }}>
153+
<Card style={{ flex: 1, display: 'flex', flexDirection: 'column' }}>
154+
<CardContent style={{ flexGrow: 1 }}>
155+
156+
<center>FBX / GLTF template reference files</center>
157+
<figure>
158+
<center> <img src="../assets/makeup/resources/Fbx-Thumbnail.png" width="100%" /> </center>
159+
</figure>
160+
<figure>
161+
A comprehensive `.zip` folder of `.fbx` and `.gltf` assets, including multiple reference heads pre-configured for testing in the Makeup test place or for authoring your own makeup. <br /><br />Includes both Cage and Reference Mesh Head templates.
162+
</figure>
163+
</CardContent>
164+
165+
<CardActions style={{bottom: 0, width: '100%'}}>
166+
<Button href="../assets/makeup/resources/Makeup-Reference-Fbx-Gltf.zip" fullWidth size='large' color='primary' variant='contained' style={{marginBottom:"4px;"}}>Download</Button>
167+
</CardActions>
168+
149169
</Card>
150170
</Grid>
151171

content/en-us/production/earn-on-roblox.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ This page provides information about different ways to earn on Roblox and how to
2424

2525
## Economy powered by creators
2626

27-
We are building one of the world's largest immersive platforms with 85.3M global daily active users (DAUs) in 17 languages across 180 countries, available across platforms including mobile, desktop, consoles, and VR headsets. In 2024, approximately 60% of our daily active users were 13 and over, and users aged 17 and over accounted for 44% of our daily active users. In 2024, our community visited over 14 million experiences, and in the fourth quarter of 2024 alone, users spent 18.7 billion hours on our platform.
27+
We are building one of the world's largest immersive platforms with 151.5M global daily active users (DAUs) in 17 languages across 180 countries, available across platforms including mobile, desktop, consoles, and VR headsets. In 2024, approximately 60% of our daily active users were 13 and over, and users aged 17 and over accounted for 44% of our daily active users. In 2024, our community visited over 14 million experiences. In the third quarter of 2025 alone, users spent 39.6 billion hours on our platform.
2828

2929
<GridContainer numColumns="2">
3030
<figure>
@@ -48,7 +48,7 @@ We are seeing healthy growth across creators and studios of varying sizes. Since
4848

4949
<img src="../assets/monetization/earning/Monetization-Growth-CAGR.png" width="800" />
5050

51-
<figcaption><Typography variant="captionHeader" color="info">⑴</Typography> DAUs as of the quarter ended June&nbsp;30,&nbsp;2025.</figcaption>
51+
<figcaption><Typography variant="captionHeader" color="info">⑴</Typography> DAUs as of the quarter ended September&nbsp;30,&nbsp;2025.</figcaption>
5252
<figcaption><Typography variant="captionHeader" color="info">⑵</Typography> Payouts for the year ended December&nbsp;31,&nbsp;2024.</figcaption>
5353
<figcaption><Typography variant="captionHeader" color="info">⑶</Typography> Based on readily available public data for daily active users of virtual worlds.</figcaption>
5454
<figcaption><Typography variant="captionHeader" color="info">⑷</Typography> Measured based on Roblox's annual bookings, which measures total economic activity on our platform.</figcaption>
@@ -64,7 +64,7 @@ Building successful content takes time and effort, but there is low risk and low
6464
Unlike other platforms where you wait days or weeks for approvals, you can modify your Roblox experiences and publish immediately in multiple languages and on all popular platforms&nbsp;&mdash; iOS, Android, Mac, Windows, PlayStation, and Xbox.
6565

6666
<h5>Platform-driven discovery and rapid viral growth</h5>
67-
Our platform, with 85.3 million daily active users (DAUs) during 2024 now able to see and join experiences with no additional downloads required, provides opportunity for rapid growth. Creators can take advantage of our organic channels, our rich social graph and network effect, seamless exploration between experiences and our cost effective [Roblox&nbsp;ads](../production/promotion/advertise-on-roblox.md).
67+
Our platform, with 151.5 million daily active users (DAUs) now able to see and join experiences with no additional downloads required, provides opportunity for rapid growth. Creators can take advantage of our organic channels, our rich social graph and network effect, seamless exploration between experiences and our cost effective [Roblox&nbsp;ads](../production/promotion/advertise-on-roblox.md).
6868

6969
<h5>Rapid iteration and scaling with no upfront costs</h5>
7070
With your content live and in front of lots of users, we provide a rapid and rich feedback loop on how users are engaging with your work. This feedback loop is facilitated both by our integrated [analytics](../production/analytics/index.md) system and by our monetization mechanisms. On the cost side, we handle infrastructure hosting, storage, customer support, localization, payment processing, moderation, and platform costs. You do not have to worry about standing up multiplayer servers or scaling them as your experience goes viral. Off Roblox, you often have to take care of these expenses and manage these operations yourself.
@@ -175,7 +175,7 @@ Once you've developed an experience, you can earn through the following methods:
175175
#### In-experience purchases
176176

177177
- [Subscriptions](./monetization/subscriptions.md) within experiences offer you the ability to earn from your experience through subscription-based offerings and business models.
178-
- [Developer Products](../production/monetization/developer-products.md) which are items or abilities that a user can purchase, such as in-experience currency.
178+
- [Developer Products](../production/monetization/developer-products.md), which are items or abilities that a user can purchase, such as in-experience currency.
179179
- [Passes](../production/monetization/game-passes.md) for access to special privileges within an experience, such as entry to a restricted area or a permanent power‑up. When you sell your own passes in your experience, you earn 70% of the Robux spent. You can also sell passes within your experience that were made by other creators; in this case, you earn a 10% affiliate fee on the Robux spent within your experience, and the original creator of the pass earns 60%.
180180
- [Private servers](../production/monetization/private-servers.md) for users to play with just connections (subscription-based access fees).
181181

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

Lines changed: 53 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
name: InputBinding
66
type: class
77
memory_category: Instances
8-
summary: |
9-
Defines which hardware binding should trigger the parent `Class.InputAction`.
10-
description: |
8+
summary: Defines which hardware binding should trigger the parent `Class.InputAction`.
9+
description: |-
1110
An `InputBinding` defines which hardware binding should trigger the parent
1211
`Class.InputAction`, for example a key press, gamepad button, or tap on a
1312
touch‑enabled device. There can be multiple `InputBinding` instances parented
@@ -20,10 +19,10 @@ tags: []
2019
deprecation_message: ''
2120
properties:
2221
- name: InputBinding.Backward
23-
summary: |
22+
summary: |-
2423
Specifies an alternate `Enum.KeyCode` for dispatching directionally
2524
"backward" inputs to the parent `Class.InputAction`.
26-
description: |
25+
description: |-
2726
Specifies an alternate `Enum.KeyCode` for dispatching directionally
2827
"backward" inputs to `Class.InputAction:GetState()|GetState()` and the
2928
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -46,10 +45,10 @@ properties:
4645
capabilities:
4746
- Input
4847
- name: InputBinding.Down
49-
summary: |
48+
summary: |-
5049
Specifies an alternate `Enum.KeyCode` for dispatching directionally "down"
5150
inputs to the parent `Class.InputAction`.
52-
description: |
51+
description: |-
5352
Specifies an alternate `Enum.KeyCode` for dispatching directionally "down"
5453
inputs to `Class.InputAction:GetState()|GetState()` and the
5554
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -86,10 +85,10 @@ properties:
8685
capabilities:
8786
- Input
8887
- name: InputBinding.Forward
89-
summary: |
88+
summary: |-
9089
Specifies an alternate `Enum.KeyCode` for dispatching directionally
9190
"forward" inputs to the parent `Class.InputAction`.
92-
description: |
91+
description: |-
9392
Specifies an alternate `Enum.KeyCode` for dispatching directionally
9493
"forward" inputs to `Class.InputAction:GetState()|GetState()` and the
9594
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -112,10 +111,10 @@ properties:
112111
capabilities:
113112
- Input
114113
- name: InputBinding.KeyCode
115-
summary: |
114+
summary: |-
116115
Specifies the `Enum.KeyCode` which triggers the parent
117116
`Class.InputAction`.
118-
description: |
117+
description: |-
119118
Specifies the `Enum.KeyCode` which triggers the parent
120119
`Class.InputAction`. The code type should match the input action's
121120
`Class.InputAction.Type|Type`, for example `Enum.KeyCode.E` for an action
@@ -139,10 +138,10 @@ properties:
139138
capabilities:
140139
- Input
141140
- name: InputBinding.Left
142-
summary: |
141+
summary: |-
143142
Specifies an alternate `Enum.KeyCode` for dispatching directionally "left"
144143
inputs to the parent `Class.InputAction`.
145-
description: |
144+
description: |-
146145
Specifies an alternate `Enum.KeyCode` for dispatching directionally "left"
147146
inputs to `Class.InputAction:GetState()|GetState()` and the
148147
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -175,10 +174,10 @@ properties:
175174
capabilities:
176175
- Input
177176
- name: InputBinding.PressedThreshold
178-
summary: |
177+
summary: |-
179178
Numerical value above which to fire an `Class.InputAction` with a
180179
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`.
181-
description: |
180+
description: |-
182181
Numerical value above which to fire an `Class.InputAction` with a
183182
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`, for example
184183
when a gamepad trigger such as `Enum.KeyCode.ButtonL2` exceeds `0.5`
@@ -202,10 +201,10 @@ properties:
202201
capabilities:
203202
- Input
204203
- name: InputBinding.ReleasedThreshold
205-
summary: |
204+
summary: |-
206205
Numerical value below which to fire an `Class.InputAction` with a
207206
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`.
208-
description: |
207+
description: |-
209208
Numerical value below which to fire an `Class.InputAction` with a
210209
`Class.InputAction.Type|Type` of `Enum.InputActionType|Bool`, for example
211210
when a gamepad trigger such as `Enum.KeyCode.ButtonL2` falls below `0.5`
@@ -228,11 +227,38 @@ properties:
228227
can_save: true
229228
capabilities:
230229
- Input
230+
- name: InputBinding.ResponseCurve
231+
summary: Numerical value to configure scaling for more precise thumbstick aiming.
232+
description: |-
233+
A numerical value to control the sensitivity of gamepad thumbstick input by applying
234+
a quadratic response curve. Commonly used for camera control to make small thumbstick inputs more
235+
precise, while ramping up quickly to allow for large movements with higher magnitude input.
236+
237+
Ranges between `1` to `10`, with higher values providing a more intense curve.
238+
Default is `1`, at which input is returned exactly as received.
239+
240+
Only applicable when the parent action's `Class.InputAction.Type|Type` is
241+
`Enum.InputActionType|Direction2D` and the `Class.InputBinding.KeyCode|KeyCode`
242+
is `Enum.KeyCode.Thumbstick1|Thumbstick1` or `Enum.KeyCode.Thumbstick2|Thumbstick2`.
243+
code_samples: []
244+
type: float
245+
tags: []
246+
deprecation_message: ''
247+
security:
248+
read: None
249+
write: None
250+
thread_safety: ReadSafe
251+
category: Behavior
252+
serialization:
253+
can_load: true
254+
can_save: true
255+
capabilities:
256+
- Input
231257
- name: InputBinding.Right
232-
summary: |
258+
summary: |-
233259
Specifies an alternate `Enum.KeyCode` for dispatching directionally
234260
"right" inputs to the parent `Class.InputAction`.
235-
description: |
261+
description: |-
236262
Specifies an alternate `Enum.KeyCode` for dispatching directionally
237263
"right" inputs to `Class.InputAction:GetState()|GetState()` and the
238264
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -265,10 +291,10 @@ properties:
265291
capabilities:
266292
- Input
267293
- name: InputBinding.Scale
268-
summary: |
294+
summary: |-
269295
Amount by which to linearly scale the values of a directional
270296
`Class.InputAction`.
271-
description: |
297+
description: |-
272298
Amount by which to linearly scale the values of an `Class.InputAction`
273299
with `Class.InputAction.Type|Type` of `Enum.InputActionType|Direction1D`,
274300
`Enum.InputActionType|Direction2D`, or `Enum.InputActionType|Direction3D`.
@@ -287,10 +313,8 @@ properties:
287313
capabilities:
288314
- Input
289315
- name: InputBinding.UIButton
290-
summary: |
291-
Connects a `Class.GuiButton` to a boolean action.
292-
description: |
293-
`Class.GuiButton` to connect to a boolean action.
316+
summary: Connects a `Class.GuiButton` to a boolean action.
317+
description: '`Class.GuiButton` to connect to a boolean action.'
294318
code_samples: []
295319
type: GuiButton
296320
tags: []
@@ -306,10 +330,10 @@ properties:
306330
capabilities:
307331
- Input
308332
- name: InputBinding.Up
309-
summary: |
333+
summary: |-
310334
Specifies an alternate `Enum.KeyCode` for dispatching directionally "up"
311335
inputs to the parent `Class.InputAction`.
312-
description: |
336+
description: |-
313337
Specifies an alternate `Enum.KeyCode` for dispatching directionally "up"
314338
inputs to `Class.InputAction:GetState()|GetState()` and the
315339
`Class.InputAction.StateChanged|StateChanged` event of the parent
@@ -346,10 +370,10 @@ properties:
346370
capabilities:
347371
- Input
348372
- name: InputBinding.Vector2Scale
349-
summary: |
373+
summary: |-
350374
Amount by which to linearly scale the values of a two-directional
351375
`Class.InputAction`.
352-
description: |
376+
description: |-
353377
Amount by which to linearly scale the values of an `Class.InputAction`
354378
with `Class.InputAction.Type|Type` of `Enum.InputActionType|Direction2D`.
355379
code_samples: []

content/en-us/reference/engine/enums/InputActionType.yaml

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44

55
name: InputActionType
66
type: enum
7-
summary: |
7+
summary: |-
88
This enum is used by `Class.InputAction.Type` to determine which input data
99
type the `Class.InputAction` will receive.
10-
description: |
10+
description: |-
1111
This enum is used by `Class.InputAction.Type` to determine which input data
1212
type the `Class.InputAction` will receive.
1313
code_samples: []
1414
tags: []
1515
deprecation_message: ''
1616
items:
1717
- name: Bool
18-
summary: |
18+
summary: |-
1919
The `Class.InputAction` will receive boolean values from button inputs,
2020
for example `true`/`false` on press/release from inputs such as
2121
`Enum.KeyCode.ButtonA` or `Enum.KeyCode.E`. This setting also exposes the
@@ -26,7 +26,7 @@ items:
2626
tags: []
2727
deprecation_message: ''
2828
- name: Direction1D
29-
summary: |
29+
summary: |-
3030
The `Class.InputAction` will receive numerical values, generally from
3131
analog gamepad triggers such as `Enum.KeyCode.ButtonL2` or
3232
`Enum.KeyCode.ButtonR2`. This setting also exposes the
@@ -37,7 +37,7 @@ items:
3737
tags: []
3838
deprecation_message: ''
3939
- name: Direction2D
40-
summary: |
40+
summary: |-
4141
The `Class.InputAction` will receive `Datatype.Vector2` values, generally
4242
from thumbstick inputs such as `Enum.KeyCode.Thumbstick1` and
4343
`Enum.KeyCode.Thumbstick2`. This setting also exposes the
@@ -49,7 +49,7 @@ items:
4949
tags: []
5050
deprecation_message: ''
5151
- name: Direction3D
52-
summary: |
52+
summary: |-
5353
The `Class.InputAction` will receive `Datatype.Vector3` values from inputs
5454
assigned to the `Class.InputBinding.Up|Up`,
5555
`Class.InputBinding.Down|Down`, `Class.InputBinding.Left|Left`,
@@ -60,3 +60,10 @@ items:
6060
value: 3
6161
tags: []
6262
deprecation_message: ''
63+
- name: ViewportPosition
64+
summary: |-
65+
The `Class.InputAction` will receive `Datatype.Vector2` values representing
66+
the absolute pixel (**X**, **Y**) coordinates of a pointer input in the viewport.
67+
value: 4
68+
tags: []
69+
deprecation_message: ''

0 commit comments

Comments
 (0)