@rbxts/types 1.0.664 → 1.0.666

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -67,12 +67,14 @@ interface Services {
67
67
  LSPFileSyncService: LSPFileSyncService;
68
68
  LuauScriptAnalyzerService: LuauScriptAnalyzerService;
69
69
  MarketplaceService: MarketplaceService;
70
+ MaterialGenerationService: MaterialGenerationService;
70
71
  MaterialService: MaterialService;
71
72
  MemoryStoreService: MemoryStoreService;
72
73
  MessageBusService: MessageBusService;
73
74
  MessagingService: MessagingService;
74
75
  MetaBreakpointManager: MetaBreakpointManager;
75
76
  PackageUIService: PackageUIService;
77
+ PatchBundlerFileWatch: PatchBundlerFileWatch;
76
78
  PathfindingService: PathfindingService;
77
79
  PhysicsService: PhysicsService;
78
80
  Players: Players;
@@ -98,6 +100,7 @@ interface Services {
98
100
  ServerScriptService: ServerScriptService;
99
101
  ServerStorage: ServerStorage;
100
102
  SessionService: SessionService;
103
+ SharedTableRegistry: SharedTableRegistry;
101
104
  ShorelineUpgraderService: ShorelineUpgraderService;
102
105
  SmoothVoxelsUpgraderService: SmoothVoxelsUpgraderService;
103
106
  SnippetService: SnippetService;
@@ -177,6 +180,7 @@ interface CreatableInstances {
177
180
  BoxHandleAdornment: BoxHandleAdornment;
178
181
  Breakpoint: Breakpoint;
179
182
  BrickColorValue: BrickColorValue;
183
+ BuoyancySensor: BuoyancySensor;
180
184
  Camera: Camera;
181
185
  CanvasGroup: CanvasGroup;
182
186
  CFrameValue: CFrameValue;
@@ -191,6 +195,7 @@ interface CreatableInstances {
191
195
  ConeHandleAdornment: ConeHandleAdornment;
192
196
  Configuration: Configuration;
193
197
  ControllerManager: ControllerManager;
198
+ ControllerPartSensor: ControllerPartSensor;
194
199
  CornerWedgePart: CornerWedgePart;
195
200
  CurveAnimation: CurveAnimation;
196
201
  CylinderHandleAdornment: CylinderHandleAdornment;
@@ -238,6 +243,7 @@ interface CreatableInstances {
238
243
  ImageLabel: ImageLabel;
239
244
  IntConstrainedValue: IntConstrainedValue;
240
245
  InternalSyncItem: InternalSyncItem;
246
+ IntersectOperation: IntersectOperation;
241
247
  IntValue: IntValue;
242
248
  Keyframe: Keyframe;
243
249
  KeyframeMarker: KeyframeMarker;
@@ -434,6 +440,7 @@ interface Instances extends Services, CreatableInstances, AbstractInstances {
434
440
  CloudLocalizationTable: CloudLocalizationTable;
435
441
  CommandInstance: CommandInstance;
436
442
  ControllerBase: ControllerBase;
443
+ ControllerSensor: ControllerSensor;
437
444
  CoreScriptBuilder: CoreScriptBuilder;
438
445
  CustomSoundEffect: CustomSoundEffect;
439
446
  DataModel: DataModel;
@@ -449,11 +456,11 @@ interface Instances extends Services, CreatableInstances, AbstractInstances {
449
456
  DebuggerConnection: DebuggerConnection;
450
457
  DebuggerLuaResponse: DebuggerLuaResponse;
451
458
  DebuggerVariable: DebuggerVariable;
452
- DynamicTextureAlpha: DynamicTextureAlpha;
453
- DynamicTextureLayerAlpha: DynamicTextureLayerAlpha;
454
459
  EmotesPages: EmotesPages;
460
+ FacialAnimationStreamingServiceStats: FacialAnimationStreamingServiceStats;
455
461
  FriendPages: FriendPages;
456
462
  GlobalDataStore: GlobalDataStore;
463
+ ImageDataExperimental: ImageDataExperimental;
457
464
  ImporterAnimationSettings: ImporterAnimationSettings;
458
465
  ImporterBaseSettings: ImporterBaseSettings;
459
466
  ImporterFacsSettings: ImporterFacsSettings;
@@ -467,8 +474,10 @@ interface Instances extends Services, CreatableInstances, AbstractInstances {
467
474
  InventoryPages: InventoryPages;
468
475
  LocalDebuggerConnection: LocalDebuggerConnection;
469
476
  LodDataEntity: LodDataEntity;
477
+ MaterialGenerationSession: MaterialGenerationSession;
470
478
  MemoryStoreQueue: MemoryStoreQueue;
471
479
  MemoryStoreSortedMap: MemoryStoreSortedMap;
480
+ MeshDataExperimental: MeshDataExperimental;
472
481
  MessageBusConnection: MessageBusConnection;
473
482
  MetaBreakpoint: MetaBreakpoint;
474
483
  MetaBreakpointContext: MetaBreakpointContext;
@@ -493,18 +502,21 @@ interface Instances extends Services, CreatableInstances, AbstractInstances {
493
502
  ScreenshotHud: ScreenshotHud;
494
503
  ScriptBuilder: ScriptBuilder;
495
504
  ScriptDocument: ScriptDocument;
505
+ SensorBase: SensorBase;
496
506
  Speaker: Speaker;
497
507
  StackFrame: StackFrame;
498
508
  StandardPages: StandardPages;
499
509
  StarterCharacterScripts: StarterCharacterScripts;
500
510
  StarterPlayerScripts: StarterPlayerScripts;
501
511
  SurfaceGuiBase: SurfaceGuiBase;
512
+ SyncScriptBuilder: SyncScriptBuilder;
502
513
  TeleportAsyncResult: TeleportAsyncResult;
503
514
  Terrain: Terrain;
504
515
  TextChatConfigurations: TextChatConfigurations;
505
516
  TextChatMessage: TextChatMessage;
506
517
  TextFilterResult: TextFilterResult;
507
518
  TextSource: TextSource;
519
+ TextureGuiExperimental: TextureGuiExperimental;
508
520
  ThreadState: ThreadState;
509
521
  TouchTransmitter: TouchTransmitter;
510
522
  TrackerLodController: TrackerLodController;
@@ -1228,7 +1240,6 @@ interface AdPortal extends Instance {
1228
1240
  * Tags: ReadOnly, NotReplicated
1229
1241
  */
1230
1242
  readonly PortalStatus: Enum.AdPortalStatus;
1231
- PortalType: Enum.AdPortalType;
1232
1243
  }
1233
1244
 
1234
1245
  /** **Note**
@@ -2017,6 +2028,10 @@ interface Animator extends Instance {
2017
2028
  * @deprecated
2018
2029
  */
2019
2030
  readonly _nominal_Animator: unique symbol;
2031
+ /**
2032
+ * Tags: ReadOnly, NotReplicated, NotBrowsable
2033
+ */
2034
+ readonly EvaluationThrottled: boolean;
2020
2035
  PreferLodEnabled: boolean;
2021
2036
  /**
2022
2037
  * Given the current set of [AnimationTracks](https://developer.roblox.com/en-us/api-reference/class/AnimationTrack) playing, and their current times and play speeds, compute relative velocities between the parts and apply them to Motor6D.Part1 (the part which [Animator](https://developer.roblox.com/en-us/api-reference/class/Animator) considers the “child” part). These relative velocity calculations and assignments happen in the order provided.
@@ -2116,7 +2131,8 @@ interface AssetImportSession extends Instance {
2116
2131
  * @deprecated
2117
2132
  */
2118
2133
  readonly _nominal_AssetImportSession: unique symbol;
2119
- readonly UploadComplete: RBXScriptSignal<(succeeded: boolean, errorMap: object) => void>;
2134
+ readonly UploadComplete: RBXScriptSignal<(results: object) => void>;
2135
+ readonly UploadCompleteDeprecated: RBXScriptSignal<(succeeded: boolean, errorMap: object) => void>;
2120
2136
  readonly UploadProgress: RBXScriptSignal<(progressRatio: number) => void>;
2121
2137
  }
2122
2138
 
@@ -2262,6 +2278,10 @@ interface AssetService extends Instance {
2262
2278
  * Tags: Yields
2263
2279
  */
2264
2280
  GetGamePlacesAsync(this: AssetService): StandardPages<{ Name: string; PlaceId: number }>;
2281
+ /**
2282
+ * Tags: Yields
2283
+ */
2284
+ PromptPublishAssetAsync(this: AssetService, player: Player, instance: Instance, assetType: CastsToEnum<Enum.AssetType>): unknown;
2265
2285
  /**
2266
2286
  * Saves the state of the current place. This will only work for places that have been created with [AssetService:CreatePlaceAsync](https://developer.roblox.com/en-us/api-reference/function/AssetService/CreatePlaceAsync) or [AssetService:CreatePlaceInPlayerInventoryAsync](https://developer.roblox.com/en-us/api-reference/function/AssetService/CreatePlaceInPlayerInventoryAsync).
2267
2287
  * Tags: Yields
@@ -2945,243 +2965,6 @@ interface Backpack extends Instance {
2945
2965
  readonly _nominal_Backpack: unique symbol;
2946
2966
  }
2947
2967
 
2948
- /** BackpackItem is an abstract class for backpack items such as HopperBins and Tools. */
2949
- interface BackpackItem extends Instance {
2950
- /**
2951
- * **DO NOT USE!**
2952
- *
2953
- * This field exists to force TypeScript to recognize this as a nominal type
2954
- * @hidden
2955
- * @deprecated
2956
- */
2957
- readonly _nominal_BackpackItem: unique symbol;
2958
- /**
2959
- * The texture icon that is displayed for a tool in the [Player](https://developer.roblox.com/en-us/api-reference/class/Player)'s backpack.
2960
- *
2961
- * This property should be set to the content ID of an image uploaded to the Roblox website.
2962
- *
2963
- * If this property is left blank, the [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) GUI will display the name of the tool instead.
2964
- */
2965
- TextureId: string;
2966
- }
2967
-
2968
- /** Tools are objects that a [Humanoid](https://developer.roblox.com/en-us/api-reference/class/Humanoid) object can equip. For players, they are stored in a [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) object parented to a [Player](https://developer.roblox.com/en-us/api-reference/class/Player) object. In-game, players may have multiple tools which appear as icons at the bottom of the screen. Equipping a tool moves it from the Backpack and into a player's [character](https://developer.roblox.com/en-us/api-reference/class/Character) model in the [Workspace](https://developer.roblox.com/en-us/api-reference/class/Workspace). By default, tools are held in the right hand and have a handle in them, which is a [Part](https://developer.roblox.com/en-us/api-reference/class/BasePart) named “Handle” inside (though one is not required if [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is off). Tools that are to be provided to (re)spawning players ought to be stored in the [StarterPack](https://developer.roblox.com/en-us/api-reference/class/StarterPack).
2969
- *
2970
- * On desktop, pressing a number key (1, 2, 3…) will equip a tool. Equipped tools can be dropped into the Workspace by pressing Backspace. It's recommended that you turn [Tool.CanBeDropped](https://developer.roblox.com/en-us/api-reference/property/Tool/CanBeDropped) off so it is not possible to drop a tool, die, respawn and drop again to duplicate tools. On gamepads, LB and RB buttons will equip tools. You can disable activation via left click (or right trigger on gamepad) by setting [Tool.ManualActivationOnly](https://developer.roblox.com/en-us/api-reference/property/Tool/ManualActivationOnly) on. Doing so requires that you call Activate yourself through some sort of other user input.
2971
- *
2972
- * Tools are not the only way to capture user input. You can also use [ContextActionService](https://developer.roblox.com/en-us/api-reference/class/ContextActionService), [UserInputService](https://developer.roblox.com/en-us/api-reference/class/UserInputService) or [Player:GetMouse](https://developer.roblox.com/en-us/api-reference/function/Player/GetMouse). If you need a Tool to have multiple actions, such as pressing a key while the Tool is equipped, you should use ContextActionService's [BindAction](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/BindAction) and [UnbindAction](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/UnbindAction) in the [Equipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Equipped) and [Unequipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Unequipped) events, respectively. Use a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) send these actions to the server via a [RemoteFunction](https://developer.roblox.com/en-us/api-reference/class/RemoteFunction) inside the Tool.
2973
- */
2974
- interface Tool extends BackpackItem {
2975
- /**
2976
- * **DO NOT USE!**
2977
- *
2978
- * This field exists to force TypeScript to recognize this as a nominal type
2979
- * @hidden
2980
- * @deprecated
2981
- */
2982
- readonly _nominal_Tool: unique symbol;
2983
- /**
2984
- * The CanBeDropped property controls whether the player can drop the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool).
2985
- *
2986
- * If true, when the backspace button is pressed the tool will be parented to the [Workspace](https://developer.roblox.com/en-us/api-reference/class/Workspace) and removed from the player's [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). If false, the when the backspace button is pressed the tool will go back to the player's Backpack and it will not be dropped.
2987
- */
2988
- CanBeDropped: boolean;
2989
- /**
2990
- * The Enabled property relates to whether or not the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) can be used. This is useful if you want to prevent a player from using a tool, but do not want to remove it from their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack).
2991
- *
2992
- * When set to true, the tool can use the tool.
2993
- *
2994
- * When set to false, the tool is disabled and the player cannot use the tool. It prevents the tool from being activated or deactivated by `the Tool/Activate` and [Tool:Deactivate](https://developer.roblox.com/en-us/api-reference/function/Tool/Deactivate) functions. It also prevents the [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) and [Tool.Deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) events from firing for the tool.
2995
- */
2996
- Enabled: boolean;
2997
- /**
2998
- * The Grip property stores the [Tool's](https://developer.roblox.com/en-us/api-reference/class/Tool) Grip properties as a single [CFrame](https://developer.roblox.com/en-us/api-reference/datatype/CFrame). This includes the `Grip/Up|Up`, `Grip/Right|Right`, `Grip/Forward|Forward`, and `Grip/Pos|Pos` properties.
2999
- *
3000
- * The grip properties are used to position how the player holds the tool.
3001
- *
3002
- * Unlike the grip properties that it stores, this property is not visible in a tool's `Properties` window in Studio. Regardless, it can be set and retrieved using a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript).
3003
- *
3004
- * ![Grip properties in Studio's Properties Window](https://developer.roblox.com/assets/blt87cc763d68414be8/Screen_Shot_2018-08-26_at_8.35.48_PM.png)
3005
- *
3006
- * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a Studio plugin such as [this](https://developer.roblox.com/assets/blt87cc763d68414be8/Screen_Shot_2018-08-26_at_8.35.48_PM.png) one.
3007
- */
3008
- Grip: CFrame;
3009
- /**
3010
- * The GripForward properties is one of the properties that specifies a Tool's orientation in a character's hand. This represents the R02, R12, and R22 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
3011
- *
3012
- * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripRight|Right`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
3013
- *
3014
- * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a Studio plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
3015
- * Tags: Hidden, NotReplicated
3016
- */
3017
- GripForward: Vector3;
3018
- /**
3019
- * The GripPos property controls the positional offset of a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) weld matrix. It is one of several properties used to position how the player holds the tool.
3020
- *
3021
- * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripRight|Right`, and `Grip/GripForward|Forward` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
3022
- *
3023
- * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
3024
- * Tags: Hidden, NotReplicated
3025
- */
3026
- GripPos: Vector3;
3027
- /**
3028
- * The GripRight property is one of the properties that specifies a [Tool's](https://developer.roblox.com/en-us/api-reference/class/Tool) orientation in a character's hand. This represents the R00, R10, and R20 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
3029
- *
3030
- * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripForward|Forward`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
3031
- *
3032
- * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
3033
- * Tags: Hidden, NotReplicated
3034
- */
3035
- GripRight: Vector3;
3036
- /**
3037
- * The GripUp property is one of the properties that specifies a Tool's orientation in a character's hand. This represents the R01, R11, and R21 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
3038
- *
3039
- * Other tool properties that control how a player holds a tool include: `Grip/GripRight|Right`, `Grip/GripForward|Forward`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
3040
- *
3041
- * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
3042
- * Tags: Hidden, NotReplicated
3043
- */
3044
- GripUp: Vector3;
3045
- /**
3046
- * The ManualActivationOnly property controls whether the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) can be activated without explicitly executing [Tool:Activate](https://developer.roblox.com/en-us/api-reference/function/Tool/Activate) in a script.
3047
- *
3048
- * When set to true, the tool will only fire [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) when [Tool:Activate](https://developer.roblox.com/en-us/api-reference/function/Tool/Activate) is called. This also suppresses the [ContextActionService](https://developer.roblox.com/en-us/api-reference/class/ContextActionService)'s [ContextActionService:BindActivate](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/BindActivate) function.
3049
- *
3050
- * When set to false, mouse clicks (when the tool is equipped) will also fire [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated).
3051
- */
3052
- ManualActivationOnly: boolean;
3053
- /**
3054
- * The RequiresTool property determines whether a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) functions without a handle.
3055
- *
3056
- * A tool has a handle when it has a child part named “Handle”. Tools without handles are typically ones that do not require the player equipping them to hold anything to use them. For instance, handles may not be necessary for _fly_ or _build_ tools. Tools with handles are typically ones that require the player equipping them to hold an object to use them. For instance, handle are likely necessary for weapons such as guns and swords.
3057
- *
3058
- * When set to true, the tool will function and be [activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) and [deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) without a handle.
3059
- *
3060
- * When set to false, the tool will not function without a handle.
3061
- */
3062
- RequiresHandle: boolean;
3063
- /**
3064
- * The ToolTip property controls the message that will be displayed when the player's [Mouse](https://developer.roblox.com/en-us/api-reference/class/Mouse) hovers over the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) in their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack).
3065
- *
3066
- * Generally, the value of this property should describe the what the tool is or its use. For instance, for a shovel tool, you may choose to set the ToolTip to:
3067
- *
3068
- * tool.ToolTip = "Shovel"
3069
- *
3070
- * or
3071
- *
3072
- * tool.ToolTip = "Use to dig"
3073
- *
3074
- * or
3075
- *
3076
- * tool.ToolTip = "Shovel - Use to dig"
3077
- */
3078
- ToolTip: string;
3079
- /**
3080
- * The Activate function simulates a click on a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool). The Tool must be equipped for this function to work.
3081
- *
3082
- * Tools will normally trigger the [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) event when the player releases the left mouse button, while the tool is equipped.
3083
- *
3084
- * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will simulate the tool being activated and print “Tool activated” when the player equips the tool.
3085
- *
3086
- * local tool = Instance.new("Tool")
3087
- * tool.RequiresHandle = false
3088
- * tool.Parent = game.Players.LocalPlayer.Backpack
3089
- *
3090
- * tool.Equipped:Connect(function()
3091
- * tool:Activate()
3092
- * end)
3093
- *
3094
- * function toolActivated()
3095
- * print("Tool activated")
3096
- * end
3097
- *
3098
- * tool.Activated:Connect(toolActivated)
3099
- */
3100
- Activate(this: Tool): void;
3101
- /**
3102
- * The Deactivate function simulates the deactivation of a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool). The Tool must be equipped for this function to work.
3103
- *
3104
- * Tools will normally trigger the [Tool.Deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) event when the player releases the left mouse button, while the tool is equipped.
3105
- *
3106
- * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will simulate the tool being deactivated and print “Tool deactivated” when the player equips the tool.
3107
- *
3108
- * local tool = Instance.new("Tool")
3109
- * tool.RequiresHandle = false
3110
- * tool.Parent = game.Players.LocalPlayer.Backpack
3111
- *
3112
- * tool.Equipped:Connect(function()
3113
- * tool:Deactivate()
3114
- * end)
3115
- *
3116
- * function toolDeactivated()
3117
- * print("Tool deactivated")
3118
- * end
3119
- *
3120
- * tool.Deactivated:Connect(toolDeactivated)
3121
- */
3122
- Deactivate(this: Tool): void;
3123
- /**
3124
- * **Activated** is not called if the Ctrl key is pressed during a click.
3125
- *
3126
- * The Activated event fires when the player clicks while a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) is equipped.
3127
- *
3128
- * This function is used to perform an action when the player uses the tool. For instance, when the player clicks while a _Rocket Launcher_ tool is equipped, the activated event executes the code to create and launch a rocket.
3129
- *
3130
- * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will print “Tool activated” when the player clicks while the created tool is equipped.
3131
- *
3132
- * local tool = Instance.new("Tool")
3133
- * tool.RequiresHandle = false
3134
- * tool.Parent = game.Players.LocalPlayer.Backpack
3135
- *
3136
- * function onActivation()
3137
- * print("Tool activated")
3138
- * end
3139
- *
3140
- * tool.Activated:Connect(onActivation)
3141
- */
3142
- readonly Activated: RBXScriptSignal<() => void>;
3143
- /**
3144
- * The Deactivated event fires when the left mouse button is released while a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) is equipped.
3145
- *
3146
- * This function is used to perform an action when the player stops using a tool. For instance, a tool may make a player fly until they release their left mouse button.
3147
- *
3148
- * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will print “Tool deactivated” when the player releases the left mouse button, while the tool is equipped.
3149
- *
3150
- * local tool = Instance.new("Tool")
3151
- * tool.RequiresHandle = false
3152
- * tool.Parent = game.Players.LocalPlayer.Backpack
3153
- *
3154
- * function toolDeactivated()
3155
- * print("Tool deactivated")
3156
- * end
3157
- *
3158
- * tool.Deactivated:Connect(toolDeactivated)
3159
- */
3160
- readonly Deactivated: RBXScriptSignal<() => void>;
3161
- /**
3162
- * The Equipped event fires when a player when a player takes a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) out of their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) to use. This event can be used to determine when a player stops using and puts a tool away.
3163
- *
3164
- * This event does not fire when [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is enabled and no handle is present.
3165
- *
3166
- * The opposite of this event, [Tool.Unequipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Unequipped), can be used alongside this event to determine unequips a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) by putting in back in their backpack.
3167
- */
3168
- readonly Equipped: RBXScriptSignal<(mouse: Mouse) => void>;
3169
- /**
3170
- * The Unequipped event fires when a player unequips a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) by putting in back in their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). This event can be used to determine when a player stops using and puts a tool away.
3171
- *
3172
- * This event does not fire when [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is enabled and no handle is present.
3173
- *
3174
- * The opposite of this event, [Tool.Equipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Equipped), can be used alongside this event to determine when a player takes a tool out of their backpack to use.
3175
- *
3176
- * The example shown below will print “A tool was unequipped” each time the tool is unequipped by the player. Please note that the below example assumes that you've already defined what “Tool” is.
3177
- *
3178
- * Tool.Unequipped:Connect(function()
3179
- * print("The tool was unequipped")
3180
- * end)
3181
- */
3182
- readonly Unequipped: RBXScriptSignal<() => void>;
3183
- }
3184
-
3185
2968
  /** The **BadgeService** class provides information and functionality related to [badges](https://developer.roblox.com/en-us/articles/badges-special-game-awards). Badges are used across the platform to recognize a player's achievements and activity. Upon awarding a badge to a player, it is added to their inventory and displayed on their profile page.
3186
2969
  *
3187
2970
  * See the [badges](https://developer.roblox.com/en-us/articles/badges-special-game-awards) article for more information, as well as the code samples below.
@@ -8063,6 +7846,8 @@ interface ContentProvider extends Instance {
8063
7846
  * Tags: ReadOnly, NotReplicated
8064
7847
  */
8065
7848
  readonly RequestQueueSize: number;
7849
+ GetAssetFetchStatus(this: ContentProvider, contentId: string): Enum.AssetFetchStatus;
7850
+ GetAssetFetchStatusChangedSignal(this: ContentProvider, contentId: string): RBXScriptSignal;
8066
7851
  ListEncryptedAssets(this: ContentProvider): unknown;
8067
7852
  /**
8068
7853
  * Usually, content is loaded only when it starts being used. That explains why it often takes a moment for an image to appear in a [GUI](https://developer.roblox.com/en-us/api-reference/class/GuiObject), or a [mesh](https://developer.roblox.com/en-us/api-reference/class/Mesh) to appear in a [part](https://developer.roblox.com/en-us/api-reference/class/BasePart), or why a [sound](https://developer.roblox.com/en-us/api-reference/class/Sound) doesn't play for the first time. All because the asset has not yet finished loading. Preload is used to load this content beforehand, so that it works instantly.
@@ -8460,7 +8245,6 @@ interface AirController extends ControllerBase {
8460
8245
  * @deprecated
8461
8246
  */
8462
8247
  readonly _nominal_AirController: unique symbol;
8463
- CancelAirMomentum: boolean;
8464
8248
  MaintainAngularMomentum: boolean;
8465
8249
  MaintainLinearMomentum: boolean;
8466
8250
  MoveMaxForce: number;
@@ -8537,7 +8321,9 @@ interface ControllerManager extends Instance {
8537
8321
  readonly ActiveController: ControllerBase | undefined;
8538
8322
  BaseMoveSpeed: number;
8539
8323
  BaseTurnSpeed: number;
8324
+ ClimbSensor: ControllerSensor | undefined;
8540
8325
  FacingDirection: Vector3;
8326
+ GroundSensor: ControllerSensor | undefined;
8541
8327
  MovingDirection: Vector3;
8542
8328
  GetControllers(this: ControllerManager): Array<Instance>;
8543
8329
  }
@@ -9602,30 +9388,6 @@ interface DraggerService extends Instance {
9602
9388
  ShowPivotIndicator: boolean;
9603
9389
  }
9604
9390
 
9605
- interface DynamicTextureAlpha extends Instance {
9606
- /**
9607
- * **DO NOT USE!**
9608
- *
9609
- * This field exists to force TypeScript to recognize this as a nominal type
9610
- * @hidden
9611
- * @deprecated
9612
- */
9613
- readonly _nominal_DynamicTextureAlpha: unique symbol;
9614
- CreateLayer(this: DynamicTextureAlpha): DynamicTextureLayerAlpha;
9615
- }
9616
-
9617
- interface DynamicTextureLayerAlpha extends Instance {
9618
- /**
9619
- * **DO NOT USE!**
9620
- *
9621
- * This field exists to force TypeScript to recognize this as a nominal type
9622
- * @hidden
9623
- * @deprecated
9624
- */
9625
- readonly _nominal_DynamicTextureLayerAlpha: unique symbol;
9626
- ZIndex: number;
9627
- }
9628
-
9629
9391
  /** A EulerRotation Curve represents a 3D rotation curve, it groups 3 [FloatCurves](https://developer.roblox.com/en-us/api-reference/class/FloatCurve), stored as 3 FloatCurve child instances. The rotation is decomposed in 3 Euler angles channels that can be accessed via [EulerRotationCurve:X](https://developer.roblox.com/en-us/api-reference/function/EulerRotationCurve/X), [EulerRotationCurve:Y](https://developer.roblox.com/en-us/api-reference/function/EulerRotationCurve/Y), [EulerRotationCurve:Z](https://developer.roblox.com/en-us/api-reference/function/EulerRotationCurve/Z) methods. The 3 axes can be sampled simultaneously via the method [EulerRotationCurve:GetAnglesAtTime](https://developer.roblox.com/en-us/api-reference/function/EulerRotationCurve/GetAnglesAtTime) returning the 3 Euler angles as a Vector3. Similarly, [EulerRotationCurve:GetRotationAtTime](https://developer.roblox.com/en-us/api-reference/function/EulerRotationCurve/GetRotationAtTime) samples all channels simultaneously but returns a CFrame rotated by X, Y, and Z according to the specified rotation order. */
9630
9392
  interface EulerRotationCurve extends Instance {
9631
9393
  /**
@@ -10069,6 +9831,17 @@ interface FacialAnimationStreamingService extends Instance {
10069
9831
  readonly _nominal_FacialAnimationStreamingService: unique symbol;
10070
9832
  }
10071
9833
 
9834
+ interface FacialAnimationStreamingServiceStats extends Instance {
9835
+ /**
9836
+ * **DO NOT USE!**
9837
+ *
9838
+ * This field exists to force TypeScript to recognize this as a nominal type
9839
+ * @hidden
9840
+ * @deprecated
9841
+ */
9842
+ readonly _nominal_FacialAnimationStreamingServiceStats: unique symbol;
9843
+ }
9844
+
10072
9845
  interface FacialAnimationStreamingServiceV2 extends Instance {
10073
9846
  /**
10074
9847
  * **DO NOT USE!**
@@ -10666,7 +10439,7 @@ interface DataStore extends GlobalDataStore {
10666
10439
  * * [Data Stores](https://developer.roblox.com/en-us/articles/data-store), an in-depth guide on data structure, management, error handling, etc.
10667
10440
  * Tags: Yields
10668
10441
  */
10669
- ListKeysAsync(this: DataStore, prefix?: string, pageSize?: number, cursor?: string): DataStoreKeyPages;
10442
+ ListKeysAsync(this: DataStore, prefix?: string, pageSize?: number, cursor?: string, excludeDeleted?: boolean): DataStoreKeyPages;
10670
10443
  /**
10671
10444
  * This function enumerates versions of the specified key in either ascending or descending order specified by a [SortDirection](https://developer.roblox.com/en-us/api-reference/enum/SortDirection) parameter. It can optionally filter the returned versions by minimum and maximum timestamp.
10672
10445
  *
@@ -13522,6 +13295,22 @@ interface SurfaceGui extends SurfaceGuiBase {
13522
13295
  ZOffset: number;
13523
13296
  }
13524
13297
 
13298
+ interface TextureGuiExperimental extends LayerCollector {
13299
+ /**
13300
+ * **DO NOT USE!**
13301
+ *
13302
+ * This field exists to force TypeScript to recognize this as a nominal type
13303
+ * @hidden
13304
+ * @deprecated
13305
+ */
13306
+ readonly _nominal_TextureGuiExperimental: unique symbol;
13307
+ Size: Vector2;
13308
+ /**
13309
+ * Tags: ReadOnly, NotReplicated
13310
+ */
13311
+ readonly TemporaryId: string;
13312
+ }
13313
+
13525
13314
  /** An abstract class for 3D GUI elements that are rendered in the world. */
13526
13315
  interface GuiBase3d extends GuiBase {
13527
13316
  /**
@@ -13890,6 +13679,7 @@ interface WireframeHandleAdornment extends HandleAdornment {
13890
13679
  * @deprecated
13891
13680
  */
13892
13681
  readonly _nominal_WireframeHandleAdornment: unique symbol;
13682
+ Scale: Vector3;
13893
13683
  AddLine(this: WireframeHandleAdornment, from: Vector3, to: Vector3): void;
13894
13684
  AddLines(this: WireframeHandleAdornment, points: Array<any>): void;
13895
13685
  AddPath(this: WireframeHandleAdornment, points: Array<any>, loop: boolean): void;
@@ -16477,6 +16267,30 @@ interface IXPService extends Instance {
16477
16267
  readonly _nominal_IXPService: unique symbol;
16478
16268
  }
16479
16269
 
16270
+ interface ImageDataExperimental extends Instance {
16271
+ /**
16272
+ * **DO NOT USE!**
16273
+ *
16274
+ * This field exists to force TypeScript to recognize this as a nominal type
16275
+ * @hidden
16276
+ * @deprecated
16277
+ */
16278
+ readonly _nominal_ImageDataExperimental: unique symbol;
16279
+ Size: Vector2;
16280
+ /**
16281
+ * Tags: ReadOnly, NotReplicated
16282
+ */
16283
+ readonly TemporaryId: string;
16284
+ Clear(this: ImageDataExperimental): void;
16285
+ DrawCircle(this: ImageDataExperimental, center: Vector2, radius: number, color: Color3, alpha: number): void;
16286
+ Resize(this: ImageDataExperimental, newSize: Vector2): void;
16287
+ Rotate(this: ImageDataExperimental, degrees: number, resizeCanvas?: boolean): void;
16288
+ /**
16289
+ * Tags: Yields
16290
+ */
16291
+ PopulateFromImageAsync(this: ImageDataExperimental, textureId: string): void;
16292
+ }
16293
+
16480
16294
  interface ImporterBaseSettings extends Instance {
16481
16295
  /**
16482
16296
  * **DO NOT USE!**
@@ -16629,11 +16443,13 @@ interface ImporterRootSettings extends ImporterBaseSettings {
16629
16443
  readonly _nominal_ImporterRootSettings: unique symbol;
16630
16444
  AddModelToInventory: boolean;
16631
16445
  Anchored: boolean;
16446
+ ExistingPackageId: string;
16632
16447
  /**
16633
16448
  * Tags: ReadOnly, NotReplicated
16634
16449
  */
16635
16450
  readonly FileDimensions: Vector3;
16636
16451
  ImportAsModelAsset: boolean;
16452
+ ImportAsPackage: boolean;
16637
16453
  InsertInWorkspace: boolean;
16638
16454
  InsertWithScenePosition: boolean;
16639
16455
  InvertNegativeFaces: boolean;
@@ -16642,8 +16458,10 @@ interface ImporterRootSettings extends ImporterBaseSettings {
16642
16458
  * Tags: ReadOnly, NotReplicated
16643
16459
  */
16644
16460
  readonly PolygonCount: number;
16461
+ RigScale: Enum.RigScale;
16645
16462
  RigType: Enum.RigType;
16646
16463
  ScaleUnit: Enum.MeshScaleUnit;
16464
+ UseSceneOriginAsCFrame: boolean;
16647
16465
  UseSceneOriginAsPivot: boolean;
16648
16466
  UsesCages: boolean;
16649
16467
  WorldForward: Enum.NormalId;
@@ -16661,6 +16479,7 @@ interface IncrementalPatchBuilder extends Instance {
16661
16479
  readonly _nominal_IncrementalPatchBuilder: unique symbol;
16662
16480
  AddPathsToBundle: boolean;
16663
16481
  HighCompression: boolean;
16482
+ SerializePatch: boolean;
16664
16483
  ZstdCompression: boolean;
16665
16484
  }
16666
16485
 
@@ -21145,6 +20964,7 @@ interface BaseScript extends LuaSourceContainer {
21145
20964
  * For the LinkedSource property for [ModuleScript](https://developer.roblox.com/en-us/api-reference/class/ModuleScript)s, please see [ModuleScript.LinkedSource](https://developer.roblox.com/en-us/api-reference/property/ModuleScript/LinkedSource).
21146
20965
  */
21147
20966
  LinkedSource: string;
20967
+ readonly RunContext: Enum.RunContext;
21148
20968
  }
21149
20969
 
21150
20970
  /** A Script is a type of Lua code container that will run its contents on the server. By default, Scripts have `print("Hello, world")` as their contents. The instant that the following conditions are met, a Script's Lua code is run in a new thread:
@@ -21657,6 +21477,28 @@ interface MarketplaceService extends Instance {
21657
21477
  ProcessReceipt: ((receiptInfo: ReceiptInfo) => Enum.ProductPurchaseDecision) | undefined;
21658
21478
  }
21659
21479
 
21480
+ interface MaterialGenerationService extends Instance {
21481
+ /**
21482
+ * **DO NOT USE!**
21483
+ *
21484
+ * This field exists to force TypeScript to recognize this as a nominal type
21485
+ * @hidden
21486
+ * @deprecated
21487
+ */
21488
+ readonly _nominal_MaterialGenerationService: unique symbol;
21489
+ }
21490
+
21491
+ interface MaterialGenerationSession extends Instance {
21492
+ /**
21493
+ * **DO NOT USE!**
21494
+ *
21495
+ * This field exists to force TypeScript to recognize this as a nominal type
21496
+ * @hidden
21497
+ * @deprecated
21498
+ */
21499
+ readonly _nominal_MaterialGenerationSession: unique symbol;
21500
+ }
21501
+
21660
21502
  interface MaterialService extends Instance {
21661
21503
  /**
21662
21504
  * **DO NOT USE!**
@@ -21806,6 +21648,25 @@ interface MemoryStoreSortedMap extends Instance {
21806
21648
  ): T;
21807
21649
  }
21808
21650
 
21651
+ interface MeshDataExperimental extends Instance {
21652
+ /**
21653
+ * **DO NOT USE!**
21654
+ *
21655
+ * This field exists to force TypeScript to recognize this as a nominal type
21656
+ * @hidden
21657
+ * @deprecated
21658
+ */
21659
+ readonly _nominal_MeshDataExperimental: unique symbol;
21660
+ /**
21661
+ * Tags: ReadOnly, NotReplicated
21662
+ */
21663
+ readonly Size: Vector3;
21664
+ /**
21665
+ * Tags: Yields
21666
+ */
21667
+ PopulateFromMeshAsync(this: MeshDataExperimental, meshId: string): void;
21668
+ }
21669
+
21809
21670
  interface MessageBusConnection extends Instance {
21810
21671
  /**
21811
21672
  * **DO NOT USE!**
@@ -23245,6 +23106,8 @@ interface BasePart extends PVInstance {
23245
23106
  ApplyImpulseAtPosition(this: BasePart, impulse: Vector3, position: Vector3): void;
23246
23107
  /**
23247
23108
  * Breaks any surface connection with any adjacent part, including [Weld](https://developer.roblox.com/en-us/api-reference/class/Weld) and other [JointInstance](https://developer.roblox.com/en-us/api-reference/class/JointInstance).
23109
+ * Tags: Deprecated
23110
+ * @deprecated
23248
23111
  */
23249
23112
  BreakJoints(this: BasePart): void;
23250
23113
  /**
@@ -23353,6 +23216,8 @@ interface BasePart extends PVInstance {
23353
23216
  * part:MakeJoints({part1, part2, part3})
23354
23217
  *
23355
23218
  * Joints are broken if enough force is applied to them due to an [Explosion](https://developer.roblox.com/en-us/api-reference/class/Explosion), unless a [ForceField](https://developer.roblox.com/en-us/api-reference/class/ForceField) object is parented to the [BasePart](https://developer.roblox.com/en-us/api-reference/class/BasePart) or ancestor [Model](https://developer.roblox.com/en-us/api-reference/class/Model). For this reason, they are often used to make simple destructible buildings and other models.
23219
+ * Tags: Deprecated
23220
+ * @deprecated
23356
23221
  */
23357
23222
  MakeJoints(this: BasePart): void;
23358
23223
  /**
@@ -23376,6 +23241,10 @@ interface BasePart extends PVInstance {
23376
23241
  * Lets the game engine dynamically decide who will handle the part's physics (one of the clients or the server).
23377
23242
  */
23378
23243
  SetNetworkOwnershipAuto(this: BasePart): void;
23244
+ /**
23245
+ * Tags: Yields
23246
+ */
23247
+ IntersectAsync(this: BasePart, parts: Array<Instance>, collisionfidelity?: CastsToEnum<Enum.CollisionFidelity>, renderFidelity?: CastsToEnum<Enum.RenderFidelity>): Instance | undefined;
23379
23248
  /**
23380
23249
  * **SubtractAsync** creates new [UnionOperation](https://developer.roblox.com/en-us/api-reference/class/UnionOperation) which occupies the same space as the part minus the space(s) occupied by the parts in the given array. It does this by invoking the real-time CSG solver. Similar to [Clone](https://developer.roblox.com/en-us/api-reference/function/Instance/Clone), the returned object has no [Parent](https://developer.roblox.com/en-us/api-reference/property/Instance/Parent) set.
23381
23250
  *
@@ -24203,6 +24072,17 @@ interface PartOperation extends TriangleMeshPart {
24203
24072
  UsePartColor: boolean;
24204
24073
  }
24205
24074
 
24075
+ interface IntersectOperation extends PartOperation {
24076
+ /**
24077
+ * **DO NOT USE!**
24078
+ *
24079
+ * This field exists to force TypeScript to recognize this as a nominal type
24080
+ * @hidden
24081
+ * @deprecated
24082
+ */
24083
+ readonly _nominal_IntersectOperation: unique symbol;
24084
+ }
24085
+
24206
24086
  /** The NegateOperation creates a CSG part that can be removed from other part via solid modeling. To use it, select a part and click the **Negate** button in the **Model** tab.
24207
24087
  *
24208
24088
  * ![](https://developer.roblox.com/assets/blt7dc16d2d629426a6/CSG-Negate-Button.png)
@@ -24411,6 +24291,8 @@ interface Model extends PVInstance {
24411
24291
  * When BreakJoints is used on a Player character [Model](https://developer.roblox.com/en-us/api-reference/class/Model), the character's [Humanoid](https://developer.roblox.com/en-us/api-reference/class/Humanoid) will die as it relies on the Neck joint.
24412
24292
  *
24413
24293
  * Note that although joints produced by surface connections with adjacent Parts can technically be recreated using [Model:MakeJoints](https://developer.roblox.com/en-us/api-reference/function/Model/MakeJoints), this will only recreate joints produced by surfaces. Developers should not rely on this as following the joints being broken parts may no longer be in contact with each other.
24294
+ * Tags: Deprecated
24295
+ * @deprecated
24414
24296
  */
24415
24297
  BreakJoints(this: Model): void;
24416
24298
  /**
@@ -24490,6 +24372,8 @@ interface Model extends PVInstance {
24490
24372
  * * Hinge and Motor surfaces create [Rotate](https://developer.roblox.com/en-us/api-reference/class/Rotate) and [RotateV](https://developer.roblox.com/en-us/api-reference/class/RotateV) joint instances
24491
24373
  *
24492
24374
  * This function will not work if the Part is not a descendant of [Workspace](https://developer.roblox.com/en-us/api-reference/class/Workspace). Therefore developers must first ensure the Model is parented to Workspace before using MakeJoints.
24375
+ * Tags: Deprecated
24376
+ * @deprecated
24493
24377
  */
24494
24378
  MakeJoints(this: Model): void;
24495
24379
  /**
@@ -24552,6 +24436,243 @@ interface Actor extends Model {
24552
24436
  readonly _nominal_Actor: unique symbol;
24553
24437
  }
24554
24438
 
24439
+ /** BackpackItem is an abstract class for backpack items such as HopperBins and Tools. */
24440
+ interface BackpackItem extends Model {
24441
+ /**
24442
+ * **DO NOT USE!**
24443
+ *
24444
+ * This field exists to force TypeScript to recognize this as a nominal type
24445
+ * @hidden
24446
+ * @deprecated
24447
+ */
24448
+ readonly _nominal_BackpackItem: unique symbol;
24449
+ /**
24450
+ * The texture icon that is displayed for a tool in the [Player](https://developer.roblox.com/en-us/api-reference/class/Player)'s backpack.
24451
+ *
24452
+ * This property should be set to the content ID of an image uploaded to the Roblox website.
24453
+ *
24454
+ * If this property is left blank, the [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) GUI will display the name of the tool instead.
24455
+ */
24456
+ TextureId: string;
24457
+ }
24458
+
24459
+ /** Tools are objects that a [Humanoid](https://developer.roblox.com/en-us/api-reference/class/Humanoid) object can equip. For players, they are stored in a [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) object parented to a [Player](https://developer.roblox.com/en-us/api-reference/class/Player) object. In-game, players may have multiple tools which appear as icons at the bottom of the screen. Equipping a tool moves it from the Backpack and into a player's [character](https://developer.roblox.com/en-us/api-reference/class/Character) model in the [Workspace](https://developer.roblox.com/en-us/api-reference/class/Workspace). By default, tools are held in the right hand and have a handle in them, which is a [Part](https://developer.roblox.com/en-us/api-reference/class/BasePart) named “Handle” inside (though one is not required if [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is off). Tools that are to be provided to (re)spawning players ought to be stored in the [StarterPack](https://developer.roblox.com/en-us/api-reference/class/StarterPack).
24460
+ *
24461
+ * On desktop, pressing a number key (1, 2, 3…) will equip a tool. Equipped tools can be dropped into the Workspace by pressing Backspace. It's recommended that you turn [Tool.CanBeDropped](https://developer.roblox.com/en-us/api-reference/property/Tool/CanBeDropped) off so it is not possible to drop a tool, die, respawn and drop again to duplicate tools. On gamepads, LB and RB buttons will equip tools. You can disable activation via left click (or right trigger on gamepad) by setting [Tool.ManualActivationOnly](https://developer.roblox.com/en-us/api-reference/property/Tool/ManualActivationOnly) on. Doing so requires that you call Activate yourself through some sort of other user input.
24462
+ *
24463
+ * Tools are not the only way to capture user input. You can also use [ContextActionService](https://developer.roblox.com/en-us/api-reference/class/ContextActionService), [UserInputService](https://developer.roblox.com/en-us/api-reference/class/UserInputService) or [Player:GetMouse](https://developer.roblox.com/en-us/api-reference/function/Player/GetMouse). If you need a Tool to have multiple actions, such as pressing a key while the Tool is equipped, you should use ContextActionService's [BindAction](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/BindAction) and [UnbindAction](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/UnbindAction) in the [Equipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Equipped) and [Unequipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Unequipped) events, respectively. Use a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) send these actions to the server via a [RemoteFunction](https://developer.roblox.com/en-us/api-reference/class/RemoteFunction) inside the Tool.
24464
+ */
24465
+ interface Tool extends BackpackItem {
24466
+ /**
24467
+ * **DO NOT USE!**
24468
+ *
24469
+ * This field exists to force TypeScript to recognize this as a nominal type
24470
+ * @hidden
24471
+ * @deprecated
24472
+ */
24473
+ readonly _nominal_Tool: unique symbol;
24474
+ /**
24475
+ * The CanBeDropped property controls whether the player can drop the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool).
24476
+ *
24477
+ * If true, when the backspace button is pressed the tool will be parented to the [Workspace](https://developer.roblox.com/en-us/api-reference/class/Workspace) and removed from the player's [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). If false, the when the backspace button is pressed the tool will go back to the player's Backpack and it will not be dropped.
24478
+ */
24479
+ CanBeDropped: boolean;
24480
+ /**
24481
+ * The Enabled property relates to whether or not the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) can be used. This is useful if you want to prevent a player from using a tool, but do not want to remove it from their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack).
24482
+ *
24483
+ * When set to true, the tool can use the tool.
24484
+ *
24485
+ * When set to false, the tool is disabled and the player cannot use the tool. It prevents the tool from being activated or deactivated by `the Tool/Activate` and [Tool:Deactivate](https://developer.roblox.com/en-us/api-reference/function/Tool/Deactivate) functions. It also prevents the [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) and [Tool.Deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) events from firing for the tool.
24486
+ */
24487
+ Enabled: boolean;
24488
+ /**
24489
+ * The Grip property stores the [Tool's](https://developer.roblox.com/en-us/api-reference/class/Tool) Grip properties as a single [CFrame](https://developer.roblox.com/en-us/api-reference/datatype/CFrame). This includes the `Grip/Up|Up`, `Grip/Right|Right`, `Grip/Forward|Forward`, and `Grip/Pos|Pos` properties.
24490
+ *
24491
+ * The grip properties are used to position how the player holds the tool.
24492
+ *
24493
+ * Unlike the grip properties that it stores, this property is not visible in a tool's `Properties` window in Studio. Regardless, it can be set and retrieved using a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript).
24494
+ *
24495
+ * ![Grip properties in Studio's Properties Window](https://developer.roblox.com/assets/blt87cc763d68414be8/Screen_Shot_2018-08-26_at_8.35.48_PM.png)
24496
+ *
24497
+ * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a Studio plugin such as [this](https://developer.roblox.com/assets/blt87cc763d68414be8/Screen_Shot_2018-08-26_at_8.35.48_PM.png) one.
24498
+ */
24499
+ Grip: CFrame;
24500
+ /**
24501
+ * The GripForward properties is one of the properties that specifies a Tool's orientation in a character's hand. This represents the R02, R12, and R22 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
24502
+ *
24503
+ * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripRight|Right`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
24504
+ *
24505
+ * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a Studio plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
24506
+ * Tags: Hidden, NotReplicated
24507
+ */
24508
+ GripForward: Vector3;
24509
+ /**
24510
+ * The GripPos property controls the positional offset of a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) weld matrix. It is one of several properties used to position how the player holds the tool.
24511
+ *
24512
+ * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripRight|Right`, and `Grip/GripForward|Forward` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
24513
+ *
24514
+ * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
24515
+ * Tags: Hidden, NotReplicated
24516
+ */
24517
+ GripPos: Vector3;
24518
+ /**
24519
+ * The GripRight property is one of the properties that specifies a [Tool's](https://developer.roblox.com/en-us/api-reference/class/Tool) orientation in a character's hand. This represents the R00, R10, and R20 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
24520
+ *
24521
+ * Other tool properties that control how a player holds a tool include: `Grip/GripUp|Up`, `Grip/GripForward|Forward`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
24522
+ *
24523
+ * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
24524
+ * Tags: Hidden, NotReplicated
24525
+ */
24526
+ GripRight: Vector3;
24527
+ /**
24528
+ * The GripUp property is one of the properties that specifies a Tool's orientation in a character's hand. This represents the R01, R11, and R21 values of the Grip [CFrame's](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) rotation matrix.
24529
+ *
24530
+ * Other tool properties that control how a player holds a tool include: `Grip/GripRight|Right`, `Grip/GripForward|Forward`, and `Grip/GripPos|Pos` properties. All of these properties are stored in a single CFrame in the [Tool.Grip](https://developer.roblox.com/en-us/api-reference/property/Tool/Grip) property.
24531
+ *
24532
+ * In order to change a tool's grip properties, you must either use a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) or a plugin such as [this](https://www.roblox.com/library/174577307/Tool-Grip-Editor-Plugin) one.
24533
+ * Tags: Hidden, NotReplicated
24534
+ */
24535
+ GripUp: Vector3;
24536
+ /**
24537
+ * The ManualActivationOnly property controls whether the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) can be activated without explicitly executing [Tool:Activate](https://developer.roblox.com/en-us/api-reference/function/Tool/Activate) in a script.
24538
+ *
24539
+ * When set to true, the tool will only fire [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) when [Tool:Activate](https://developer.roblox.com/en-us/api-reference/function/Tool/Activate) is called. This also suppresses the [ContextActionService](https://developer.roblox.com/en-us/api-reference/class/ContextActionService)'s [ContextActionService:BindActivate](https://developer.roblox.com/en-us/api-reference/function/ContextActionService/BindActivate) function.
24540
+ *
24541
+ * When set to false, mouse clicks (when the tool is equipped) will also fire [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated).
24542
+ */
24543
+ ManualActivationOnly: boolean;
24544
+ /**
24545
+ * The RequiresTool property determines whether a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) functions without a handle.
24546
+ *
24547
+ * A tool has a handle when it has a child part named “Handle”. Tools without handles are typically ones that do not require the player equipping them to hold anything to use them. For instance, handles may not be necessary for _fly_ or _build_ tools. Tools with handles are typically ones that require the player equipping them to hold an object to use them. For instance, handle are likely necessary for weapons such as guns and swords.
24548
+ *
24549
+ * When set to true, the tool will function and be [activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) and [deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) without a handle.
24550
+ *
24551
+ * When set to false, the tool will not function without a handle.
24552
+ */
24553
+ RequiresHandle: boolean;
24554
+ /**
24555
+ * The ToolTip property controls the message that will be displayed when the player's [Mouse](https://developer.roblox.com/en-us/api-reference/class/Mouse) hovers over the [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) in their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack).
24556
+ *
24557
+ * Generally, the value of this property should describe the what the tool is or its use. For instance, for a shovel tool, you may choose to set the ToolTip to:
24558
+ *
24559
+ * tool.ToolTip = "Shovel"
24560
+ *
24561
+ * or
24562
+ *
24563
+ * tool.ToolTip = "Use to dig"
24564
+ *
24565
+ * or
24566
+ *
24567
+ * tool.ToolTip = "Shovel - Use to dig"
24568
+ */
24569
+ ToolTip: string;
24570
+ /**
24571
+ * The Activate function simulates a click on a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool). The Tool must be equipped for this function to work.
24572
+ *
24573
+ * Tools will normally trigger the [Tool.Activated](https://developer.roblox.com/en-us/api-reference/event/Tool/Activated) event when the player releases the left mouse button, while the tool is equipped.
24574
+ *
24575
+ * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will simulate the tool being activated and print “Tool activated” when the player equips the tool.
24576
+ *
24577
+ * local tool = Instance.new("Tool")
24578
+ * tool.RequiresHandle = false
24579
+ * tool.Parent = game.Players.LocalPlayer.Backpack
24580
+ *
24581
+ * tool.Equipped:Connect(function()
24582
+ * tool:Activate()
24583
+ * end)
24584
+ *
24585
+ * function toolActivated()
24586
+ * print("Tool activated")
24587
+ * end
24588
+ *
24589
+ * tool.Activated:Connect(toolActivated)
24590
+ */
24591
+ Activate(this: Tool): void;
24592
+ /**
24593
+ * The Deactivate function simulates the deactivation of a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool). The Tool must be equipped for this function to work.
24594
+ *
24595
+ * Tools will normally trigger the [Tool.Deactivated](https://developer.roblox.com/en-us/api-reference/event/Tool/Deactivated) event when the player releases the left mouse button, while the tool is equipped.
24596
+ *
24597
+ * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will simulate the tool being deactivated and print “Tool deactivated” when the player equips the tool.
24598
+ *
24599
+ * local tool = Instance.new("Tool")
24600
+ * tool.RequiresHandle = false
24601
+ * tool.Parent = game.Players.LocalPlayer.Backpack
24602
+ *
24603
+ * tool.Equipped:Connect(function()
24604
+ * tool:Deactivate()
24605
+ * end)
24606
+ *
24607
+ * function toolDeactivated()
24608
+ * print("Tool deactivated")
24609
+ * end
24610
+ *
24611
+ * tool.Deactivated:Connect(toolDeactivated)
24612
+ */
24613
+ Deactivate(this: Tool): void;
24614
+ /**
24615
+ * **Activated** is not called if the Ctrl key is pressed during a click.
24616
+ *
24617
+ * The Activated event fires when the player clicks while a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) is equipped.
24618
+ *
24619
+ * This function is used to perform an action when the player uses the tool. For instance, when the player clicks while a _Rocket Launcher_ tool is equipped, the activated event executes the code to create and launch a rocket.
24620
+ *
24621
+ * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will print “Tool activated” when the player clicks while the created tool is equipped.
24622
+ *
24623
+ * local tool = Instance.new("Tool")
24624
+ * tool.RequiresHandle = false
24625
+ * tool.Parent = game.Players.LocalPlayer.Backpack
24626
+ *
24627
+ * function onActivation()
24628
+ * print("Tool activated")
24629
+ * end
24630
+ *
24631
+ * tool.Activated:Connect(onActivation)
24632
+ */
24633
+ readonly Activated: RBXScriptSignal<() => void>;
24634
+ /**
24635
+ * The Deactivated event fires when the left mouse button is released while a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) is equipped.
24636
+ *
24637
+ * This function is used to perform an action when the player stops using a tool. For instance, a tool may make a player fly until they release their left mouse button.
24638
+ *
24639
+ * The below code, when placed in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript), would create a tool in the [LocalPlayer's](https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer) [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). It will print “Tool deactivated” when the player releases the left mouse button, while the tool is equipped.
24640
+ *
24641
+ * local tool = Instance.new("Tool")
24642
+ * tool.RequiresHandle = false
24643
+ * tool.Parent = game.Players.LocalPlayer.Backpack
24644
+ *
24645
+ * function toolDeactivated()
24646
+ * print("Tool deactivated")
24647
+ * end
24648
+ *
24649
+ * tool.Deactivated:Connect(toolDeactivated)
24650
+ */
24651
+ readonly Deactivated: RBXScriptSignal<() => void>;
24652
+ /**
24653
+ * The Equipped event fires when a player when a player takes a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) out of their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack) to use. This event can be used to determine when a player stops using and puts a tool away.
24654
+ *
24655
+ * This event does not fire when [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is enabled and no handle is present.
24656
+ *
24657
+ * The opposite of this event, [Tool.Unequipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Unequipped), can be used alongside this event to determine unequips a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) by putting in back in their backpack.
24658
+ */
24659
+ readonly Equipped: RBXScriptSignal<(mouse: Mouse) => void>;
24660
+ /**
24661
+ * The Unequipped event fires when a player unequips a [Tool](https://developer.roblox.com/en-us/api-reference/class/Tool) by putting in back in their [Backpack](https://developer.roblox.com/en-us/api-reference/class/Backpack). This event can be used to determine when a player stops using and puts a tool away.
24662
+ *
24663
+ * This event does not fire when [Tool.RequiresHandle](https://developer.roblox.com/en-us/api-reference/property/Tool/RequiresHandle) is enabled and no handle is present.
24664
+ *
24665
+ * The opposite of this event, [Tool.Equipped](https://developer.roblox.com/en-us/api-reference/event/Tool/Equipped), can be used alongside this event to determine when a player takes a tool out of their backpack to use.
24666
+ *
24667
+ * The example shown below will print “A tool was unequipped” each time the tool is unequipped by the player. Please note that the below example assumes that you've already defined what “Tool” is.
24668
+ *
24669
+ * Tool.Unequipped:Connect(function()
24670
+ * print("The tool was unequipped")
24671
+ * end)
24672
+ */
24673
+ readonly Unequipped: RBXScriptSignal<() => void>;
24674
+ }
24675
+
24555
24676
  interface WorldRoot extends Model {
24556
24677
  /**
24557
24678
  * **DO NOT USE!**
@@ -25707,6 +25828,17 @@ interface ParticleEmitter extends Instance {
25707
25828
  readonly OnEmitRequested: RBXScriptSignal<(particleCount: number) => void>;
25708
25829
  }
25709
25830
 
25831
+ interface PatchBundlerFileWatch extends Instance {
25832
+ /**
25833
+ * **DO NOT USE!**
25834
+ *
25835
+ * This field exists to force TypeScript to recognize this as a nominal type
25836
+ * @hidden
25837
+ * @deprecated
25838
+ */
25839
+ readonly _nominal_PatchBundlerFileWatch: unique symbol;
25840
+ }
25841
+
25710
25842
  interface PatchMapping extends Instance {
25711
25843
  /**
25712
25844
  * **DO NOT USE!**
@@ -28749,6 +28881,21 @@ interface CoreScriptBuilder extends ScriptBuilder {
28749
28881
  readonly _nominal_CoreScriptBuilder: unique symbol;
28750
28882
  }
28751
28883
 
28884
+ interface SyncScriptBuilder extends ScriptBuilder {
28885
+ /**
28886
+ * **DO NOT USE!**
28887
+ *
28888
+ * This field exists to force TypeScript to recognize this as a nominal type
28889
+ * @hidden
28890
+ * @deprecated
28891
+ */
28892
+ readonly _nominal_SyncScriptBuilder: unique symbol;
28893
+ CoverageInfo: boolean;
28894
+ DebugInfo: boolean;
28895
+ PackAsSource: boolean;
28896
+ RawBytecode: boolean;
28897
+ }
28898
+
28752
28899
  interface ScriptChangeService extends Instance {
28753
28900
  /**
28754
28901
  * **DO NOT USE!**
@@ -28842,6 +28989,60 @@ interface SelectionHighlightManager extends Instance {
28842
28989
  readonly _nominal_SelectionHighlightManager: unique symbol;
28843
28990
  }
28844
28991
 
28992
+ interface SensorBase extends Instance {
28993
+ /**
28994
+ * **DO NOT USE!**
28995
+ *
28996
+ * This field exists to force TypeScript to recognize this as a nominal type
28997
+ * @hidden
28998
+ * @deprecated
28999
+ */
29000
+ readonly _nominal_SensorBase: unique symbol;
29001
+ UpdateType: Enum.SensorUpdateType;
29002
+ Sense(this: SensorBase): void;
29003
+ readonly OnSensorOutputChanged: RBXScriptSignal<() => void>;
29004
+ }
29005
+
29006
+ interface BuoyancySensor extends SensorBase {
29007
+ /**
29008
+ * **DO NOT USE!**
29009
+ *
29010
+ * This field exists to force TypeScript to recognize this as a nominal type
29011
+ * @hidden
29012
+ * @deprecated
29013
+ */
29014
+ readonly _nominal_BuoyancySensor: unique symbol;
29015
+ FullySubmerged: boolean;
29016
+ TouchingSurface: boolean;
29017
+ }
29018
+
29019
+ interface ControllerSensor extends SensorBase {
29020
+ /**
29021
+ * **DO NOT USE!**
29022
+ *
29023
+ * This field exists to force TypeScript to recognize this as a nominal type
29024
+ * @hidden
29025
+ * @deprecated
29026
+ */
29027
+ readonly _nominal_ControllerSensor: unique symbol;
29028
+ }
29029
+
29030
+ interface ControllerPartSensor extends ControllerSensor {
29031
+ /**
29032
+ * **DO NOT USE!**
29033
+ *
29034
+ * This field exists to force TypeScript to recognize this as a nominal type
29035
+ * @hidden
29036
+ * @deprecated
29037
+ */
29038
+ readonly _nominal_ControllerPartSensor: unique symbol;
29039
+ HitFrame: CFrame;
29040
+ HitNormal: Vector3;
29041
+ SearchDistance: number;
29042
+ SensedPart: BasePart | undefined;
29043
+ SensorMode: Enum.SensorMode;
29044
+ }
29045
+
28845
29046
  /** **ServerScriptService** is a container service for [Script](https://developer.roblox.com/en-us/api-reference/class/Script), [ModuleScript](https://developer.roblox.com/en-us/api-reference/class/ModuleScript) and other scripting-related assets that are only meant for server use. The contents are never replicated to player clients at all, which allows for a secure storage of important game logic. Script objects will run if they are within this service and not [Disabled](https://developer.roblox.com/en-us/api-reference/property/BaseScript/Disabled).
28846
29047
  *
28847
29048
  * This service houses just one property, [LoadStringEnabled](https://developer.roblox.com/en-us/api-reference/property/ServerScriptService/LoadStringEnabled), which determines whether the `loadstring` function in Lua is enabled. It's recommended to keep this disabled for security reasons, as misusing this function can lead to remote code execution vulnerabilities.
@@ -29283,6 +29484,19 @@ interface SessionService extends Instance {
29283
29484
  readonly _nominal_SessionService: unique symbol;
29284
29485
  }
29285
29486
 
29487
+ interface SharedTableRegistry extends Instance {
29488
+ /**
29489
+ * **DO NOT USE!**
29490
+ *
29491
+ * This field exists to force TypeScript to recognize this as a nominal type
29492
+ * @hidden
29493
+ * @deprecated
29494
+ */
29495
+ readonly _nominal_SharedTableRegistry: unique symbol;
29496
+ GetSharedTable(this: SharedTableRegistry, name: string): SharedTable;
29497
+ SetSharedTable(this: SharedTableRegistry, name: string, st: SharedTable | undefined): void;
29498
+ }
29499
+
29286
29500
  interface ShorelineUpgraderService extends Instance {
29287
29501
  /**
29288
29502
  * **DO NOT USE!**
@@ -34044,6 +34258,10 @@ interface UserGameSettings extends Instance {
34044
34258
  * The type of controls being used by the client on a mobile device.
34045
34259
  */
34046
34260
  TouchMovementMode: Enum.TouchMovementMode;
34261
+ /**
34262
+ * Tags: Hidden, NotReplicated
34263
+ */
34264
+ readonly VRPlayMode: Enum.VRPlayMode;
34047
34265
  readonly VRSmoothRotationEnabled: boolean;
34048
34266
  readonly VignetteEnabled: boolean;
34049
34267
  /**