UNPKG

@rbxts/types

Version:

TypeScript typings for the Roblox platform. Partially handwritten and partially automatically generated.

1,304 lines (1,264 loc) 199 kB
// THIS FILE IS GENERATED AUTOMATICALLY AND SHOULD NOT BE EDITED BY HAND! /// <reference no-default-lib="true"/> /// <reference path="None.d.ts" /> interface Services { ChangeHistoryService: ChangeHistoryService; CoreGui: CoreGui; DebuggerManager: DebuggerManager; NetworkClient: NetworkClient; NetworkServer: NetworkServer; NetworkSettings: NetworkSettings; PackageService: PackageService; PluginDebugService: PluginDebugService; PluginGuiService: PluginGuiService; RenderSettings: RenderSettings; RobloxPluginGuiService: RobloxPluginGuiService; Selection: Selection; Studio: Studio; StudioData: StudioData; StudioService: StudioService; TaskScheduler: TaskScheduler; TestService: TestService; VersionControlService: VersionControlService; } interface CreatableInstances { PluginAction: PluginAction; RenderingTest: RenderingTest; } interface Instances extends Services, CreatableInstances { ClientReplicator: ClientReplicator; DataModelSession: DataModelSession; DebuggerBreakpoint: DebuggerBreakpoint; DebuggerWatch: DebuggerWatch; DebugSettings: DebugSettings; DockWidgetPluginGui: DockWidgetPluginGui; File: File; GameSettings: GameSettings; GlobalSettings: GlobalSettings; LuaSettings: LuaSettings; MemStorageConnection: MemStorageConnection; MultipleDocumentInterfaceInstance: MultipleDocumentInterfaceInstance; NetworkPeer: NetworkPeer; NetworkReplicator: NetworkReplicator; PhysicsSettings: PhysicsSettings; Plugin: Plugin; PluginDragEvent: PluginDragEvent; PluginGui: PluginGui; PluginMenu: PluginMenu; PluginMouse: PluginMouse; PluginToolbar: PluginToolbar; PluginToolbarButton: PluginToolbarButton; QWidgetPluginGui: QWidgetPluginGui; RunningAverageItemDouble: RunningAverageItemDouble; RunningAverageItemInt: RunningAverageItemInt; RunningAverageTimeIntervalItem: RunningAverageTimeIntervalItem; ScriptDebugger: ScriptDebugger; ServerReplicator: ServerReplicator; StatsItem: StatsItem; StudioTheme: StudioTheme; TotalCountTimeIntervalItem: TotalCountTimeIntervalItem; } // GENERATED ROBLOX INSTANCE CLASSES interface Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_Instance: unique symbol; /** * This property used to protect objects in the [CoreGui](https://developer.roblox.com/en-us/api-reference/class/CoreGui) service from being altered by users in an unauthorized manner. It has been deprecated and does not do anything. * * Tags: Hidden */ RobloxLocked: boolean; /** * Returns a coded string of the [Instance](https://developer.roblox.com/en-us/api-reference/class/Instance)s DebugId used internally by Roblox. * * Notes * ----- * * * This item is protected. Attempting to use it in a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) will cause an error * * A debug ID is an ID used in debugging processes. It allows a debugger to read each instruction before an application processes it. All objects in Roblox act like processes and each run instructions (or 'code') that can be debugged if needed * * This can be helpful for plugins which need to distinguish similar objects from one-another (such as objects that share the same name) * * Tags: NotBrowsable */ GetDebugId(this: Instance, scopeLength?: number): string; } interface KeyframeSequence extends AnimationClip { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_KeyframeSequence: unique symbol; /** * Contains the hip height of the [Humanoid](https://developer.roblox.com/en-us/api-reference/class/Humanoid) of the model that was used to author this [KeyframeSequence](https://developer.roblox.com/en-us/api-reference/class/KeyframeSequence). Default value is 1.35 since that is the hip height set for a standard R15 [character](https://developer.roblox.com/en-us/api-reference/class/Character). * * Tags: Hidden */ AuthoredHipHeight: number; } interface AnimationClipProvider extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_AnimationClipProvider: unique symbol; /** * @deprecated Use `GetAnimationClipAsync` instead */ GetAnimationClip(this: AnimationClipProvider, assetId: string): AnimationClip; /** * @deprecated Use `GetAnimationClipAsync` instead */ GetAnimationClipById(this: AnimationClipProvider, assetId: number, useCache: boolean): AnimationClip; } interface Animator extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_Animator: unique symbol; /** * Increments the [AnimationTrack.TimePosition](https://developer.roblox.com/en-us/api-reference/property/AnimationTrack/TimePosition) of all playing [AnimationTrack](https://developer.roblox.com/en-us/api-reference/class/AnimationTrack)s that are loaded onto the [Animator](https://developer.roblox.com/en-us/api-reference/class/Animator), applying the offsets to the model associated with the [Animator](https://developer.roblox.com/en-us/api-reference/class/Animator). For use in the command bar or by plugins only. * * The deltaTime paramater determines the number of seconds to increment on the animation's progress. Typically this function will be called in a loop to preview the length of an animation (see example). * * Note that once animations have stopped playing, the model's joints will need to be manually reset to their original positions (see example). * * This function is used to simulate playback of [Animation](https://developer.roblox.com/en-us/api-reference/class/Animation)s when the game isn't running. This allows animations to be previewed without the consequences of running the game, such as scripts executing. If the function is called whilst the game is running, or by [Script](https://developer.roblox.com/en-us/api-reference/class/Script)s or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript)s, it will return an error. * * Developers designing their own custom animation editors are advised to use this function to preview animations, as it is the method the official Roblox Animation Editor plugin uses. */ StepAnimations(this: Animator, deltaTime: number): void; } interface AssetService extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_AssetService: unique symbol; /** * Tags: Yields */ CreateMeshPartAsync(this: AssetService, meshId: string, options?: object): MeshPart; } /** The CoreGui is a service used to store Guis created in-game by Roblox for the core user interface found in every game (such as the game menu, the playerlist, the backpack, etc.). It can also be used by [Plugins](https://developer.roblox.com/en-us/api-reference/class/Plugin) in Roblox Studio. * * You can use the [StarterGui:SetCoreGuiEnabled](https://developer.roblox.com/en-us/api-reference/function/StarterGui/SetCoreGuiEnabled) and [StarterGui:GetCoreGuiEnabled](https://developer.roblox.com/en-us/api-reference/function/StarterGui/GetCoreGuiEnabled) methods in a [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) to enable and disable most elements of the CoreGui. You can also use [PlayerGui:SetTopbarTransparency](https://developer.roblox.com/en-us/api-reference/function/PlayerGui/SetTopbarTransparency) to set the transparency of the top bar. */ interface CoreGui extends BasePlayerGui { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_CoreGui: unique symbol; /** * The current version of the CoreGui. Everytime the CoreGui is majorly changed, this number is increased. * * Tags: NotReplicated */ readonly Version: number; } interface StarterGui extends BasePlayerGui { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_StarterGui: unique symbol; /** * Allows the StarterGui service to process input like [PlayerGui](https://developer.roblox.com/en-us/api-reference/class/PlayerGui) and [CoreGui](https://developer.roblox.com/en-us/api-reference/class/CoreGui) do. The default value is false. * * Tags: Hidden, NotReplicated */ ProcessUserInput: boolean; /** * This property determines whether the contents of [StarterGui](https://developer.roblox.com/en-us/api-reference/class/StarterGui) is visible in studio */ ShowDevelopmentGui: boolean; } interface BaseWrap extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_BaseWrap: unique symbol; /** * This property is set up automatically by the Avatar Importer plugin. * * Asset ID for cage mesh. */ CageMeshId: string; /** * This property is set up automatically by the Avatar Importer plugin. * * Cage mesh offset relative to parent [MeshPart](https://developer.roblox.com/en-us/api-reference/class/MeshPart). */ CageOrigin: CFrame; /** * This property is set up automatically by the Avatar Importer plugin. * * Describes where a global zero was while authoring the cage mesh in an asset creation tool such as Blender or Maya. This property is not used by the deformer but it is useful for tools/aligning scripts, for example aligning two parts by matching their pivots as follows: * * local function alignWraps() * local selectionService = game:GetService("Selection") * local selectedObjects = selectionService:Get() * local alignObjects = {} * for \_, obj in pairs(selectedObjects) do * if obj:IsA("BaseWrap") then * --print("Wrap: " .. obj.Name) * table.insert(alignObjects, obj) * else * print("Ignore: " .. obj.Name) * end * end * * if #alignObjects < 2 then * warn("You need to select at least two wraps") * return * end * * local anchorWrap = alignObjects\[1\] * local worldA\_from\_Wrap = anchorWrap.ImportOriginWorld * print("Anchor: " .. anchorWrap.Name) * for i = 2, #alignObjects do * local wrapToAlign = alignObjects\[i\] * print("Align: " .. wrapToAlign.Name) * local wrap\_from\_WorldB = wrapToAlign.ImportOriginWorld:Inverse() * local worldA\_from\_WorldB = worldA\_from\_Wrap \* wrap\_from\_WorldB * local worldB = wrapToAlign.Parent.CFrame * -- Note: adjust CFrame of the parent part * wrapToAlign.Parent.CFrame = (worldB\_from\_WorldB \* worldB) * end * end */ ImportOrigin: CFrame; } interface WrapLayer extends BaseWrap { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_WrapLayer: unique symbol; /** * This property is intended for fine-tuning purposes and is highly optional. * * [CFrame](https://developer.roblox.com/en-us/api-reference/datatype/CFrame) to adjust a binding point for a clothing item mesh. Allows for fine-tuning of clothing items (slight adjustment of position/rotation to get a unique look) in contexts such as community-made avatar editors. */ BindOffset: CFrame; /** * AssetID for reference mesh used to define Inner Cage of a 3D object * * Reference mesh is used to define standard topology and UV coordinates for index matching. It is expected that for all catalog avatars, this will point to one of 15 standard reference meshes provided by Roblox. But for some NPCs or a custom avatar system, this might point to other meshes. * * Note: this property is set up automatically by the FBX importer */ ReferenceMeshId: string; /** * Reference mesh offset relative to parent MeshPart (in the parent MeshPart space) * * Note: this property is set up automatically by the FBX importer */ ReferenceOrigin: CFrame; /** * This property is intended for fine-tuning purposes and is highly optional. * * Allows slight shrinking/expanding of the resulting render mesh, without affecting any other layers. This is useful in rare cases when the clothing mesh does not precisely fit the underlying clothing layers (the cage is usually slightly overestimated atop the real shape to avoid layer interpenetration). Even slight overestimation has the tendency to accumulate, especially when there are a lot of layers. While this is usually not critical, some items like backpacks may be problematic. * * Valid range is -1 to 1. A value of -1 will maximally expand while a value of 1 will maximally shrink. A value of 0 (default) has no effect. */ ShrinkFactor: number; } interface WrapTarget extends BaseWrap { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_WrapTarget: unique symbol; /** * Defines how much the body mesh can be compressed by clothing. Super tight clothing may lead to an intersection between the clothing mesh and body mesh. To solve this visual artifact, the deformer can compress the body mesh slightly to solve possible intersections. * * Valid range is 0 to 1. A value of 0 will compress the body mesh as much as necessary to ensure that the intersections are eliminated (visible body parts might look a little bit deformed). A value of 1 will prevent the body mesh from being compressed (may lead to visible intersections or Z-fighting). A value of 0.9 (default) is a reasonable default that solves most of the intersections without introducing any significant body deformation. */ Stiffness: number; } /** The ChangeHistoryService provides a way for plugins to undo and redo changes and to create waypoints when changes are made to the place. */ interface ChangeHistoryService extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_ChangeHistoryService: unique symbol; FinishRecording(this: ChangeHistoryService, identifier: string, operation: CastsToEnum<Enum.FinishRecordingOperation>, finalOptions: object | undefined): void; /** * Returns whether there are actions that can be redone, and, if there are, returns the last of them. */ GetCanRedo(this: ChangeHistoryService): unknown; /** * Returns whether there are actions that can be undone, and, if there are, returns the last of them. */ GetCanUndo(this: ChangeHistoryService): unknown; IsRecordingInProgress(this: ChangeHistoryService, identifier: string | undefined): boolean; /** * Executes the last action that was undone. */ Redo(this: ChangeHistoryService): void; /** * Clears the history, causing all undo/redo waypoints to be removed. */ ResetWaypoints(this: ChangeHistoryService): void; /** * Sets whether or not the ChangeHistoryService is enabled. When set to false, the undo/redo list is cleared, and does not repopulate. When set to true again, the original list is not restored, but further operations append to the list once more */ SetEnabled(this: ChangeHistoryService, state: boolean): void; /** * Sets a new waypoint which can be used as an undo or redo point. */ SetWaypoint(this: ChangeHistoryService, name: string): void; TryBeginRecording(this: ChangeHistoryService, name: string, displayName: string | undefined): string | undefined; /** * Undos the last action taken, for which there exists a waypoint. */ Undo(this: ChangeHistoryService): void; readonly OnRecordingFinished: RBXScriptSignal<(name: string, displayName: string | undefined, identifier: string | undefined, operationn: Enum.FinishRecordingOperation, finalOptions: object | undefined) => void>; readonly OnRecordingStarted: RBXScriptSignal<(name: string, displayName: string | undefined) => void>; /** * Fired when the user reverses the undo command. Waypoint describes the type action that has been redone. */ readonly OnRedo: RBXScriptSignal<(waypoint: string) => void>; /** * Fired when the user undoes an action in studio. Waypoint describes the type action that has been undone. */ readonly OnUndo: RBXScriptSignal<(waypoint: string) => void>; } interface DataModelSession extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DataModelSession: unique symbol; } /** The DebugSettings allows you to view diagnostics information regarding Roblox. It is labeled as **Diagnostics** in the Roblox Studio Settings menu. */ interface DebugSettings extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DebugSettings: unique symbol; /** * Describes whether a [DataModel](https://developer.roblox.com/en-us/api-reference/class/DataModel) is actively in memory, as an integer (where 1 = true, and 0 = false). * * Tags: NotReplicated */ readonly DataModel: number; /** * The number of instances active in the simulation. * * Tags: NotReplicated */ readonly InstanceCount: number; /** * Whether or not a stacktrace is displayed in the output for an error. */ IsScriptStackTracingEnabled: boolean; /** * Returns the number of internal DataModel jobs actively being processed. * * Tags: NotReplicated */ readonly JobCount: number; /** * The number of players currently in the active game-instance. * * Tags: NotReplicated */ readonly PlayerCount: number; /** * Whether or not sound warnings should be reported. */ ReportSoundWarnings: boolean; /** * The current client version of Roblox. Can also be retrieved by using the version() function. * * Tags: NotReplicated */ readonly RobloxVersion: string; /** * Sets the internal sampling method used to measure elapsed time with consistency across platforms. */ TickCountPreciseOverride: Enum.TickCountSampleMethod; } /** Represents a breakpoint in Roblox's Lua Debugger. * This object cannot be created, but it can be retrieved from the [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) class. */ interface DebuggerBreakpoint extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DebuggerBreakpoint: unique symbol; /** * The condition of the debugger breakpoint. */ Condition: string; /** * This field controls whether debugger will stop on the breakpoint or not. * It is used together with the [DebuggerBreakpoint.LogExpression](https://developer.roblox.com/en-us/api-reference/property/DebuggerBreakpoint/LogExpression) to log a message when breakpoint is hit, without pausing into the debugger to act as a 'logpoint' instead of a 'breakpoint'. */ ContinueExecution: boolean; /** * Whether or not the breakpoint is enabled. */ IsEnabled: boolean; /** * The line that the breakpoint has been placed on. * * Tags: NotReplicated */ readonly Line: number; /** * An expression which is evaluated when the breakpoint is hit with the result being logged into the Output window. * Used together with [DebuggerBreakpoint.ContinueExecution](https://developer.roblox.com/en-us/api-reference/property/DebuggerBreakpoint/ContinueExecution) to implement a 'logpoint' instead of a 'breakpoint'. */ LogExpression: string; /** * Whether the breakpoint is unique for a single script instance or not. * When set, the breakpoint will not be duplicated into all the clones of the current script. */ isContextDependentBreakpoint: boolean; } /** The DebuggerManager is a special singleton class responsible for managing Roblox's Lua Debugger feature. * It can be retrieved via the `DebuggerManager()` function, but only from the command bar. */ interface DebuggerManager extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DebuggerManager: unique symbol; /** * Whether the debugger is enabled or disabled. * * Tags: NotReplicated */ readonly DebuggingEnabled: boolean; /** * Registers a script to be used in the Lua Debugger. Returns a [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) for the script. */ AddDebugger(this: DebuggerManager, script: LuaSourceContainer): Instance | undefined; /** * Returns a list of [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) present in the experience. */ GetDebuggers(this: DebuggerManager): Array<Instance>; /** * Resumes the Lua Debugger if it is paused. */ Resume(this: DebuggerManager): void; /** * Performs a [step into](https://developer.roblox.com/articles/Lua-debugger "Lua Debugger") operation on the Lua Debugger. * @deprecated */ StepIn(this: DebuggerManager): void; /** * Performs a [step out](https://developer.roblox.com/articles/Lua-debugger "Lua Debugger") operation on the Lua Debugger. * @deprecated */ StepOut(this: DebuggerManager): void; /** * Performs a [step over](https://developer.roblox.com/articles/Lua-debugger "Lua Debugger") operation on the Lua Debugger. * @deprecated */ StepOver(this: DebuggerManager): void; /** * Fires when a new [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) is created through the [DebuggerManager:AddDebugger](https://developer.roblox.com/en-us/api-reference/function/DebuggerManager/AddDebugger) method. */ readonly DebuggerAdded: RBXScriptSignal<(debug: Instance) => void>; /** * Fires when a registered [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) has been discontinued. */ readonly DebuggerRemoved: RBXScriptSignal<(debug: Instance) => void>; } /** Represents a watch in Roblox's Lua Debugger. * This object cannot be created, but it can be retrieved from the [ScriptDebugger](https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger) class. */ interface DebuggerWatch extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DebuggerWatch: unique symbol; /** * The expression set for the DebuggerWatch. */ Expression: string; } interface FaceControls extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_FaceControls: unique symbol; /** * Raises the chin up; moves the lower lip upwards * * Tags: NotReplicated */ ChinRaiser: number; /** * Moves the upper lip when ChinRaiser is engaged and touching the upper lip * * Tags: NotReplicated */ ChinRaiserUpperLip: number; /** * Brings the left and right brows inward together * * Tags: NotReplicated */ Corrugator: number; /** * Moves gaze down * * Tags: NotReplicated */ EyesLookDown: number; /** * Moves gaze left * * Tags: NotReplicated */ EyesLookLeft: number; /** * Moves gaze right * * Tags: NotReplicated */ EyesLookRight: number; /** * Moves gaze up * * Tags: NotReplicated */ EyesLookUp: number; /** * Also known as lip tightener; brings the corners of the mouth inward and pressing the lips back against the teeth * * Tags: NotReplicated */ FlatPucker: number; /** * Makes a 'O' shape with the mouth * * Tags: NotReplicated */ Funneler: number; /** * Lowers the jaw downward opening the mouth * * Tags: NotReplicated */ JawDrop: number; /** * Tags: NotReplicated */ JawLeft: number; /** * Moves mouth and jaw to the right (character right) * * Tags: NotReplicated */ JawRight: number; /** * Lowers the left brow down * * Tags: NotReplicated */ LeftBrowLowerer: number; /** * Puffs up the left cheek * * Tags: NotReplicated */ LeftCheekPuff: number; /** * Squints the left eye * * Tags: NotReplicated */ LeftCheekRaiser: number; /** * Moves the corners of the mouth back in Z * * Tags: NotReplicated */ LeftDimpler: number; /** * Closes the left eyelid * * Tags: NotReplicated */ LeftEyeClosed: number; /** * Raises the left eyelid upwards to reveal more of the eye white above the iris * * Tags: NotReplicated */ LeftEyeUpperLidRaiser: number; /** * Raises the interior half of the left brow upwards * * Tags: NotReplicated */ LeftInnerBrowRaiser: number; /** * Lowers the corners of the mouth downwards in a frown * * Tags: NotReplicated */ LeftLipCornerDown: number; /** * Raises the corners of the mouth upwards in a smile * * Tags: NotReplicated */ LeftLipCornerPuller: number; /** * Stretches the corners of the mouth apart * * Tags: NotReplicated */ LeftLipStretcher: number; /** * Lowers the lower lip down away from the upper lip revealing the lower teeth * * Tags: NotReplicated */ LeftLowerLipDepressor: number; /** * Raise the left nostril, pulls the brow down slightly, and wrinkles on the side of the nose * * Tags: NotReplicated */ LeftNoseWrinkler: number; /** * Raises the outer part of the left brow upwards * * Tags: NotReplicated */ LeftOuterBrowRaiser: number; /** * Raises the left upper lip away from the lower lip revealing the upper teeth * * Tags: NotReplicated */ LeftUpperLipRaiser: number; /** * Presses the lips together * * Tags: NotReplicated */ LipPresser: number; /** * Brings the lips together relative to JawDrop * * Tags: NotReplicated */ LipsTogether: number; /** * Rolls the lower lip up over the teeth * * Tags: NotReplicated */ LowerLipSuck: number; /** * Moves the mouth left * * Tags: NotReplicated */ MouthLeft: number; /** * Moves the mouth right * * Tags: NotReplicated */ MouthRight: number; /** * Makes a kiss-like shape with the mouth * * Tags: NotReplicated */ Pucker: number; /** * Lowers the right brow down * * Tags: NotReplicated */ RightBrowLowerer: number; /** * Puffs up the right cheek * * Tags: NotReplicated */ RightCheekPuff: number; /** * Squints the right eye * * Tags: NotReplicated */ RightCheekRaiser: number; /** * Moves the corners of the mouth back in Z * * Tags: NotReplicated */ RightDimpler: number; /** * Closes the right eyelid * * Tags: NotReplicated */ RightEyeClosed: number; /** * Raises the right eyelid upwards to reveal more of the eye white above the iris * * Tags: NotReplicated */ RightEyeUpperLidRaiser: number; /** * Raises the interior half of the right brow upwards * * Tags: NotReplicated */ RightInnerBrowRaiser: number; /** * Lowers the corners of the mouth downwards in a frown * * Tags: NotReplicated */ RightLipCornerDown: number; /** * Raises the corners of the mouth upwards in a smile * * Tags: NotReplicated */ RightLipCornerPuller: number; /** * Stretches the corners of the mouth apart * * Tags: NotReplicated */ RightLipStretcher: number; /** * Lowers the lower lip down away from the upper lip revealing the lower teeth * * Tags: NotReplicated */ RightLowerLipDepressor: number; /** * Raises the right nostril, pulls the brow down slightly, and wrinkles on the side of the nose * * Tags: NotReplicated */ RightNoseWrinkler: number; /** * Raises the outer part of the right brow upwards * * Tags: NotReplicated */ RightOuterBrowRaiser: number; /** * Raises the right upper lip away from the lower lip revealing the upper teeth * * Tags: NotReplicated */ RightUpperLipRaiser: number; /** * Bends the tongue down * * Tags: NotReplicated */ TongueDown: number; /** * Extends the tip of the tongue out of the mouth * * Tags: NotReplicated */ TongueOut: number; /** * Bends the tongue up * * Tags: NotReplicated */ TongueUp: number; /** * Rolls the upper lip around the teeth * * Tags: NotReplicated */ UpperLipSuck: number; } /** An object that represents an Asset loaded from a file on a local disk. * * Files generate a temporary asset id in the form _“rbxtemp://####”_, which can be used in Studio without uploading the asset, but will be destroyed when the File is destroyed or when the Studio session ends. Temporary asset ids are not shared across [Team Create](https://developer.roblox.com/en-us/articles/Team-Create). * * The default [Name](https://developer.roblox.com/en-us/api-reference/property/Instance/Name) of a File instance will be the filename on disk, excluding path, including extension. */ interface File extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_File: unique symbol; /** * The file size (in bytes) of the local file associated with this [File](https://developer.roblox.com/en-us/api-reference/class/File). * * Tags: Hidden, NotReplicated */ readonly Size: number; /** * This function is used to read the contents of the [File](https://developer.roblox.com/en-us/api-reference/class/File) as a raw binary string. This allows the file to be uploaded to web endpoints, or to be processed by plugins. */ GetBinaryContents(this: File): string; /** * This function is used to retrieve a temporary asset id associated with this [File](https://developer.roblox.com/en-us/api-reference/class/File). This id can be used like an _rbxassetid_ - for example, it can be assigned to the Image property of an [ImageLabel](https://developer.roblox.com/en-us/api-reference/class/ImageLabel). * * Throws an error if the file does not exist on disk. */ GetTemporaryId(this: File): string; } /** Various miscellaneous options for in-game. Can be accessed from Roblox Studio's settings menu under the _Game_ tab. */ interface GameSettings extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_GameSettings: unique symbol; /** * Toggles whether or not video capture is enabled. */ VideoCaptureEnabled: boolean; } /** PluginGui is an abstract class for GUIs that allow the display of [GuiObjects](https://developer.roblox.com/en-us/api-reference/class/GuiObject) in various Roblox Studio widgets. As of right now, the only available PluginGui type is [DockWidgetPluginGui](https://developer.roblox.com/en-us/api-reference/class/DockWidgetPluginGui), but there may be more in the future! */ interface PluginGui extends LayerCollector { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_PluginGui: unique symbol; /** * The title that is displayed above the contents of the [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui). Defaults to empty string. */ Title: string; /** * This function binds a function to the [PluginGui's](https://developer.roblox.com/en-us/api-reference/class/PluginGui) close button, overriding the default behavior. * * By default, when the user clicks the 'x' button in the top right corner of the [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) the [Enabled](https://developer.roblox.com/en-us/api-reference/property/LayerCollector/Enabled) property is set to _false_, closing the window. When a custom function is bound using BindToClose this behavior is overwritten, allowing you to check if the user really wants to close the window or give them an opportunity to save their work. * * As the default closing behavior is overwritten by this function, you'll need to configure the [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) to close manually by setting [PluginGui.Enabled](https://developer.roblox.com/en-us/api-reference/property/LayerCollector/Enabled) to _false_. For example, in the below snippet users are required to click a confirm button to close the GUI: * * local closing = false * pluginGui:BindToClose(function() * -- make sure we haven't already made a button * if closing then * return * end * closing = true * * -- create confirm button * local confirmButton = Instance.new("TextButton") * confirmButton.AnchorPoint = Vector2.new(0.5, 0.5) * confirmButton.Size = UDim2.new(0.5, 0, 0.5, 0) * confirmButton.Position = UDim2.new(0.5, 0, 0.5, 0) * confirmButton.BackgroundColor3 = Color3.new(1, 0, 0) * confirmButton.Text = "Close?" * confirmButton.Parent = pluginGui * * -- listen for click * confirmButton.Activated:Connect(function() * -- close the gui * pluginGui.Enabled = false * * -- remove confirm button * confirmButton:Destroy() * end) * end) * * You can call BindToClose with no argument to 'unbind' and revert to the default behavior described above. For example: * * pluginGui:BindToClose() * * See also * -------- * * * [Plugin:CreateDockWidgetPluginGui](https://developer.roblox.com/en-us/api-reference/function/Plugin/CreateDockWidgetPluginGui) to create a [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) * * [DataModel:BindToClose](https://developer.roblox.com/en-us/api-reference/function/DataModel/BindToClose), which can be used to bind a function to the game ending and should not be confused with this function */ BindToClose(this: PluginGui, callback?: Callback): void; /** * GetRelativeMousePosition returns the position of the mouse relative to the top-left corner of the [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui). The returned value changes only if a mouse input began on the PluginGui, or if the mouse is presently hovering over the window. * * ![An animation of the return value of Plugin:GetRelativeMousePosition](https://developer.roblox.com/assets/blt2bbcc6b4d96ba800/PluginGui.GetRelativeMousePosition.gif) * * The animation above displays the value returned by this function (the left mouse button is pressed in the animation). Notice how the X-value is negative when the mouse is on the left of the window. */ GetRelativeMousePosition(this: PluginGui): Vector2; /** * **PluginDragDropped** fires when the user releases their mouse over a [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) during a drag operation started by [Plugin:StartDrag](https://developer.roblox.com/en-us/api-reference/function/Plugin/StartDrag). * * See also * -------- * * * [PluginGui.PluginDragEntered](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragEntered) * * [PluginGui.PluginDragLeft](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragLeft) * * [PluginGui.PluginDragMoved](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragMoved) */ readonly PluginDragDropped: RBXScriptSignal<(dragData: object) => void>; /** * **PluginDragEntered** fires when the user's mouse enters the [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) during a drag operation started by [Plugin:StartDrag](https://developer.roblox.com/en-us/api-reference/function/Plugin/StartDrag). * * This event is useful for displaying a “Drop Here” UI on PluginGuis where a drag operation can be dropped. Such a UI should be hidden when either [PluginDragLeft](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragLeft) or [PluginDragDropped](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragDropped) fire. * * See Also * -------- * * * [Drag and Drop in Studio Widgets](https://developer.roblox.com/en-us/articles/drag-and-drop-in-studio-widgets) * * [PluginGui.PluginDragLeft](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragLeft) * * [PluginGui.PluginDragMoved](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragMoved) * * [PluginGui.PluginDragDropped](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragDropped) */ readonly PluginDragEntered: RBXScriptSignal<(dragData: object) => void>; /** * **PluginDragLeft** fires when the user's mouse leaves a [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) during a drag operation started by [Plugin:StartDrag](https://developer.roblox.com/en-us/api-reference/function/Plugin/StartDrag). * * This event and [PluginDragDropped](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragDropped) are useful for hiding a “Drop Here” UI on PluginGuis where a drag operation can be dropped. Such a UI should be shown when either [PluginDragEntered](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragEntered) fires. * * See Also * -------- * * * [Drag and Drop in Studio Widgets](https://developer.roblox.com/en-us/articles/drag-and-drop-in-studio-widgets) * * [PluginGui.PluginDragEntered](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragEntered) * * [PluginGui.PluginDragMoved](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragMoved) * * [PluginGui.PluginDragDropped](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragDropped) */ readonly PluginDragLeft: RBXScriptSignal<(dragData: object) => void>; /** * **PluginDragMoved** fires when the user's mouse moves within a [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) during a drag operation started by [Plugin:StartDrag](https://developer.roblox.com/en-us/api-reference/function/Plugin/StartDrag). * * See also * -------- * * * [PluginGui.PluginDragEntered](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragEntered) * * [PluginGui.PluginDragLeft](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragLeft) * * [PluginGui.PluginDragDropped](https://developer.roblox.com/en-us/api-reference/event/PluginGui/PluginDragDropped) */ readonly PluginDragMoved: RBXScriptSignal<(dragData: object) => void>; /** * **WindowFocusReleased** fires immediately when the user stops interacting with the PluginGui's window, usually by clicking on on something not in the window. This functions works similarly to the similarly-named [UserInputService.WindowFocusReleased](https://developer.roblox.com/en-us/api-reference/event/UserInputService/WindowFocusReleased) event. * * If focus is moving to another [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) while the user had this PluginGui in focus, then this event fires before the other's [WindowFocused](https://developer.roblox.com/en-us/api-reference/event/PluginGui/WindowFocused) event. However, if the main game window is being put in focus, this event fires **after** [UserInputService.WindowFocused](https://developer.roblox.com/en-us/api-reference/event/UserInputService/WindowFocused). */ readonly WindowFocusReleased: RBXScriptSignal<() => void>; /** * **WindowFocused** fires immediately when the user starts interacting with the PluginGui's window, usually by clicking on it. This functions works similarly to the similarly-named [UserInputService.WindowFocused](https://developer.roblox.com/en-us/api-reference/event/UserInputService/WindowFocused) event. It fires before any [GuiObject.InputBegan](https://developer.roblox.com/en-us/api-reference/event/GuiObject/InputBegan) events related to mouse buttons. * * If another [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) is in focus and the user focuses this PluginGui, then this event fires after the other's [WindowFocusReleased](https://developer.roblox.com/en-us/api-reference/event/PluginGui/WindowFocusReleased) event. However, if the main game window was in focus, this event fires **after** [UserInputService.WindowFocusReleased](https://developer.roblox.com/en-us/api-reference/event/UserInputService/WindowFocusReleased). */ readonly WindowFocused: RBXScriptSignal<() => void>; } /** **DockWidgetPluginGui** is a [PluginGui](https://developer.roblox.com/en-us/api-reference/class/PluginGui) that displays its contents inside a dockable Roblox Studio window. It is used to create widgets similar to the built-in **Animation Editor** and **Terrain Tools**. * * This GUI can be created using [Plugin:CreateDockWidgetPluginGui()](https://developer.roblox.com/en-us/api-reference/function/Plugin/CreateDockWidgetPluginGui). * * See the [Building Studio Widgets](https://developer.roblox.com/en-us/articles/building-studio-widgets) tutorial for details on working with custom Studio widgets. */ interface DockWidgetPluginGui extends PluginGui { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_DockWidgetPluginGui: unique symbol; } interface QWidgetPluginGui extends PluginGui { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_QWidgetPluginGui: unique symbol; } interface Humanoid extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_Humanoid: unique symbol; /** * This property selects the [HumanoidCollisionType](https://developer.roblox.com/en-us/api-reference/enum/HumanoidCollisionType) for R15 and Rthro non-player characters. * * The collision geometry for the InnerBox type is calculated at run-time and will not be applied in Studio when the simulation is not running. * * For player [Characters](https://developer.roblox.com/en-us/api-reference/property/Player/Character) the CollisionType property will be decided by the Avatar Collision Option in Game Settings. * * ![Collision Options in Game Settings](https://developer.roblox.com/assets/blt609585adde792b19/HumanoidCollisionType.jpg) * * This property is writable by [Plugins](https://developer.roblox.com/en-us/api-reference/class/Plugin) and can be read by all scripts. * * ### Enums * * Name * * Value * * Description * * ### OuterBox * * 0 * * Dynamically sized collision boxes based on mesh sizes * * ### Innerbox * * 1 * * Fixed size collision boxes, similar to the classic avatar collision */ CollisionType: Enum.HumanoidCollisionType; } interface KeyframeSequenceProvider extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_KeyframeSequenceProvider: unique symbol; /** * Returns a [KeyframeSequence](https://developer.roblox.com/en-us/api-reference/class/KeyframeSequence) from a given asset URL. * @deprecated Use `GetKeyframeSequenceAsync` instead */ GetKeyframeSequence(this: KeyframeSequenceProvider, assetId: string): Instance | undefined; /** * Returns a [KeyframeSequence](https://developer.roblox.com/en-us/api-reference/class/KeyframeSequence) from the supplied assetId. Can optionally cache to reduce unnecessary loading freezes. * @deprecated Use `GetKeyframeSequenceAsync` instead */ GetKeyframeSequenceById(this: KeyframeSequenceProvider, assetId: number, useCache: boolean): Instance | undefined; } /** The LuaSettings allows you to change certain properties, in regards to how Roblox handles Lua. * It is labeled as **Lua** in the Roblox Studio Settings menu. */ interface LuaSettings extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_LuaSettings: unique symbol; } interface BaseScript extends LuaSourceContainer { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_BaseScript: unique symbol; RunContext: Enum.RunContext; } interface Script extends BaseScript { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_Script: unique symbol; /** * A script's Source is the code to be executed. Modifying the code within a script modifies the source code executes when the script runs. * * For instance, given a script containing the line: * * print("Hello world!") * * The script's source is the “print(“Hello world”)” command because it is what will be executed when the script runs, leading to “Hello world” being printed in the command line. * * This item is protected. Attempting to use it in a [Script](https://developer.roblox.com/en-us/api-reference/class/Script) or [LocalScript](https://developer.roblox.com/en-us/api-reference/class/LocalScript) will cause an error. */ Source: string; } interface ModuleScript extends LuaSourceContainer { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_ModuleScript: unique symbol; /** * The code to be executed. */ Source: string; } interface MaterialVariant extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_MaterialVariant: unique symbol; BaseMaterial: Enum.Material; ColorMap: string; MetalnessMap: string; NormalMap: string; RoughnessMap: string; } interface MemStorageConnection extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_MemStorageConnection: unique symbol; Disconnect(this: MemStorageConnection): void; } /** The PluginMouse object gives [Plugin](https://developer.roblox.com/en-us/api-reference/class/Plugin)s access to the mouse. It works like the [Mouse](https://developer.roblox.com/en-us/api-reference/class/Mouse) object and can be obtained using the plugin [Plugin:GetMouse](https://developer.roblox.com/en-us/api-reference/function/Plugin/GetMouse) method. * * Note the PluginMouse can only be used when the plugin has been activated using [Plugin:Activate](https://developer.roblox.com/en-us/api-reference/function/Plugin/Activate). * * In addition to the functions from the [Mouse](https://developer.roblox.com/en-us/api-reference/class/Mouse) object, the PluginMouse includes the [PluginMouse.DragEnter](https://developer.roblox.com/en-us/api-reference/event/PluginMouse/DragEnter) function which keeps track of items being selected whilst the mouse is dragging. * * For more information on how to use mouse objects, see the [Mouse](https://developer.roblox.com/en-us/api-reference/class/Mouse) page. */ interface PluginMouse extends Mouse { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_PluginMouse: unique symbol; /** * Fired when Instances are being selected while the mouse is dragging. */ readonly DragEnter: RBXScriptSignal<(instances: Array<Instance>) => void>; } interface MultipleDocumentInterfaceInstance extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_MultipleDocumentInterfaceInstance: unique symbol; } /** The NetworkPeer object is the most basic class of the network objects. */ interface NetworkPeer extends Instance { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_NetworkPeer: unique symbol; /** * Sets the maximum outgoing bandwidth that Roblox can use. */ SetOutgoingKBPSLimit(this: NetworkPeer, limit: number): void; } /** This service is responsible for connecting a client to a server. */ interface NetworkClient extends NetworkPeer { /** * **DO NOT USE!** * * This field exists to force TypeScript to recognize this as a nominal type * @hidden * @deprecated */ readonly _nominal_NetworkClient: unique symbol; readonly ConnectionAccepted: RBXScriptSignal<(peer: string, replicator: ClientReplicator) => void>; } /** The NetworkServer stores all the [NetworkReplicator](https://developer.roblox.com/en-us/api-reference/class/NetworkReplicator) in the game and handles all connections. [NetworkPeer:SetOutgoingKBPSLimit](https://developer.roblox.com/en-us/api-reference/function/NetworkPeer/SetOutgoingKBPSLimit) can be used to imitate latency while using _Start Server_. */ interface NetworkServer extends NetworkPeer { /** * **D