You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en-us/art/validation-errors.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -291,6 +291,15 @@ See the following resources for caging:
291
291
<td>Missing HSR data for `%s`. Please, try again.</td>
292
292
<td>The HSR (Hidden Surface Removal) data is calculated in the cloud server and may take a few minutes to be updated for your assets. Wait some time and try again.</td>
293
293
</tr>
294
+
<tr>
295
+
<td>Failed to execute body max cage distance check. Make sure all render meshes and their WrapTarget cage meshes exist, and try again.</td>
296
+
<td></td>
297
+
</tr>
298
+
<trid = "bodyCageMaxSize">
299
+
<td>A vertex was found on the `%s`'s cage mesh that is `%.2f` studs away from the closest render mesh. `%s` studs is the maximum. Make the cage mesh more closely match the shape and size of the render mesh.</td>
300
+
<td></td>
301
+
</tr>
302
+
294
303
</tbody>
295
304
</table>
296
305
@@ -475,7 +484,7 @@ See the following for more information on various character body components:
475
484
</tr>
476
485
<tr>
477
486
<td>Attachment `%s` in `%s` is placed at a position `%s` that is outside the valid range. You need to adjust the attachment position.<br/><br/>Attachment `%s` in `%s` is placed at a position `%s` that is outside the valid range of (`%s` to `%s`). You need to adjust the attachment position.</td>
478
-
<td>Body attachments need to be within reasonable distance from the body][should not have an applied rotation](../art/characters/specifications.md#attachments) to avoid introducing unrealistic gaps when equipping accessories to those attachments.</td>
487
+
<td>Body attachments need to be within reasonable distance from the body[should not have an applied rotation](../art/characters/specifications.md#attachments) to avoid introducing unrealistic gaps when equipping accessories to those attachments.</td>
479
488
</tr>
480
489
<tr>
481
490
<td>Body part `%s` does not follow R15 schema. The specific issues are: `%s`</td>
Copy file name to clipboardExpand all lines: content/en-us/input/gamepad.md
+18-95Lines changed: 18 additions & 95 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ import BetaAlert from '../includes/beta-features/beta-alert.md'
8
8
9
9
Roblox accepts input from USB gamepads such as Xbox and PlayStation controllers. Since gamepads come in different varieties, you need to follow additional setup to verify that a player's gamepad inputs are usable in your experience.
10
10
11
-
To set up gamepad inputs, you can use `Class.ContextActionService` or `Class.UserInputService` to [detect connected gamepads](#detect-gamepads) for a player's device, [verify supported inputs](#verify-supported-inputs) that are compatible with Roblox, [receive input](#receive-input), and more.
11
+
To set up gamepad inputs, you can use `Class.UserInputService` to [detect connected gamepads](#detect-gamepads) for a player's device, [verify supported inputs](#verify-supported-inputs) that are compatible with Roblox, [receive input](#receive-input), and more.
12
12
13
13
When binding gamepad inputs, see [common control schemas](#common-control-schemas) to create a consistent gamepad experience for players. After inputs are set, you can enhance the player's experience by including [haptic feedback](#haptic-feedback) on supported controllers.
14
14
@@ -67,25 +67,7 @@ end
67
67
68
68
## Receive input
69
69
70
-
`Class.ContextActionService` is useful for binding controls to both gamepads and other input sources such as [mouse and keyboard](./mouse-and-keyboard.md) inputs or [mobile](../input/mobile.md) touchscreen buttons, or for binding multiple functions to a single button input on any device. For example, the following code sample binds an `OpenSpellBook` action to the gamepad's `Enum.KeyCode.ButtonR2|ButtonR2` button and the keyboard's `Enum.KeyCode.B|B` key.
Functions bound to `Class.ContextActionService` will fire on all input states (`Enum.UserInputState|Begin`, `Enum.UserInputState|Change`, and `Enum.UserInputState|End`), so it's recommended that you check the `Class.InputObject.UserInputState|UserInputState` as seen on line 4 to ensure the desired action only happens on the gamepad input state you intend it to.
86
-
</Alert>
87
-
88
-
Alternatively, you can use `Class.UserInputService` to bind controls directly from a gamepad. When detecting gamepad events through this service, use the `Class.UserInputService.InputBegan|InputBegan` event to detect when the button was initially pressed and `Class.UserInputService.InputEnded|InputEnded` to detect when the button is released. In the handling function, the `Class.InputObject.UserInputType` property indicates which gamepad fired the event and `Class.InputObject.KeyCode` indicates the specific button or stick that fired it.
70
+
You can use `Class.UserInputService` to bind controls directly from a gamepad. When detecting gamepad events through this service, use the `Class.UserInputService.InputBegan|InputBegan` event to detect when the button was initially pressed and `Class.UserInputService.InputEnded|InputEnded` to detect when the button is released. In the handling function, the `Class.InputObject.UserInputType` property indicates which gamepad fired the event and `Class.InputObject.KeyCode` indicates the specific button or stick that fired it.
@@ -194,88 +176,29 @@ The following are common input binds that will help players immediately feel fam
194
176
195
177
## Haptic feedback
196
178
197
-
Many gamepad controllers have motors built in to provide haptic feedback. Adding rumbles and vibrations can greatly enhance a player's experience and provide subtle feedback beyond visuals or audio. You can use the `Class.HapticService` to [verify vibration support](#vibration-support) before [turning on the motors](#activate-motors).
179
+
Many gamepad controllers have motors built in to provide haptic feedback. Adding rumbles and vibrations can greatly enhance a player's experience and provide subtle feedback beyond visuals or audio.
198
180
199
-
### Vibration support
181
+
Roblox supports haptics for the following devices:
200
182
201
-
Not all controllers have motors so it is important to check for support before attempting to use the haptic motors. To query if a given controller has vibration support, call `Class.HapticService:IsVibrationSupported()`.
183
+
- Android and iOS phones supporting haptics including most iPhone, Pixel, and
Haptic feedback is managed through `Class.HapticEffect` instances which can be set to a specific `Class.HapticEffect.Type|Type` such as `Enum.HapticEffectType|GameplayCollision` or `Enum.HapticEffectType|UIClick`.
Once a `Class.HapticEffect` is in place, you can initiate it through the `Class.HapticEffect:Play()|Play()` method, for instance:
209
192
210
-
Some controllers have multiple motors for various scales of vibration. Once you've checked if a gamepad supports vibration, you should also check if it supports the motors you intend to use through `Class.HapticService:IsMotorSupported()`.
Once you've confirmed that a player's gamepad [supports vibration](#vibration-support), you can turn on a specific motor with `Class.HapticService:SetMotor()`. This method takes the gamepad and the amplitude of the vibration as arguments. Amplitude can be any value between 0 and 1.
0 commit comments