// THIS FILE IS GENERATED AUTOMATICALLY AND SHOULD NOT BE EDITED BY HAND!
///
///
///
interface Services {
AccountService: AccountService;
AchievementService: AchievementService;
ActivityHistoryEventService: ActivityHistoryEventService;
AdService: AdService;
AnalyticsService: AnalyticsService;
AnimatedImageService: AnimatedImageService;
AnimationClipProvider: AnimationClipProvider;
AnimationFromVideoCreatorService: AnimationFromVideoCreatorService;
AnimationFromVideoCreatorStudioService: AnimationFromVideoCreatorStudioService;
AnnotationsService: AnnotationsService;
AppAgeSignalsService: AppAgeSignalsService;
AppLifecycleObserverService: AppLifecycleObserverService;
AppRatingPromptService: AppRatingPromptService;
AppUpdateService: AppUpdateService;
AssetCounterService: AssetCounterService;
AssetDeliveryProxy: AssetDeliveryProxy;
AssetImportService: AssetImportService;
AssetManagerService: AssetManagerService;
AssetQualityService: AssetQualityService;
AssetService: AssetService;
AudioFocusService: AudioFocusService;
AuroraScriptService: AuroraScriptService;
AuroraService: AuroraService;
AvatarChatService: AvatarChatService;
AvatarCreationService: AvatarCreationService;
AvatarEditorService: AvatarEditorService;
AvatarImportService: AvatarImportService;
AvatarSettings: AvatarSettings;
BadgeService: BadgeService;
BranchService: BranchService;
BugReporterService: BugReporterService;
BulkImportService: BulkImportService;
CacheableContentProvider: CacheableContentProvider;
CallingService: CallingService;
CalloutService: CalloutService;
CaptureService: CaptureService;
ChangeHistoryStreamingService: ChangeHistoryStreamingService;
Chat: Chat;
ClientStorageService: ClientStorageService;
CloudCRUDService: CloudCRUDService;
CloudExecutionService: CloudExecutionService;
CollaboratorsService: CollaboratorsService;
CollectionService: CollectionService;
CommerceService: CommerceService;
ConfigService: ConfigService;
ConfigureServerService: ConfigureServerService;
ConnectivityService: ConnectivityService;
ContentProvider: ContentProvider;
ContextActionService: ContextActionService;
ControllerService: ControllerService;
CoreGuiConfiguration: CoreGuiConfiguration;
CoreScriptDebuggingManagerHelper: CoreScriptDebuggingManagerHelper;
CreationDBService: CreationDBService;
CreatorStoreService: CreatorStoreService;
CrossDMScriptChangeListener: CrossDMScriptChangeListener;
DataStoreService: DataStoreService;
Debris: Debris;
DebuggablePluginWatcher: DebuggablePluginWatcher;
DebuggerConnectionManager: DebuggerConnectionManager;
DebuggerUIService: DebuggerUIService;
DeferredAssetManagerService: DeferredAssetManagerService;
DesignFoundationsService: DesignFoundationsService;
DeviceDisplayService: DeviceDisplayService;
DeviceIdService: DeviceIdService;
DraggerService: DraggerService;
EditableService: EditableService;
EditorSourceService: EditorSourceService;
EncodingService: EncodingService;
EventIngestService: EventIngestService;
ExampleV2Service: ExampleV2Service;
ExperienceAuthService: ExperienceAuthService;
ExperienceNotificationService: ExperienceNotificationService;
ExperienceService: ExperienceService;
ExperienceStateCaptureService: ExperienceStateCaptureService;
ExperienceStateRecordingService: ExperienceStateRecordingService;
ExplorerServiceVisibilityService: ExplorerServiceVisibilityService;
ExternalIdentityService: ExternalIdentityService;
FaceAnimatorService: FaceAnimatorService;
FacialAgeEstimationService: FacialAgeEstimationService;
FacialAnimationRecordingService: FacialAnimationRecordingService;
FacialAnimationStreamingServiceV2: FacialAnimationStreamingServiceV2;
FeatureRestrictionManager: FeatureRestrictionManager;
FileManagerService: FileManagerService;
FileSyncReplicationService: FileSyncReplicationService;
GamepadService: GamepadService;
GamePassService: GamePassService;
GenerationService: GenerationService;
GenericChallengeService: GenericChallengeService;
GeometryService: GeometryService;
GongService: GongService;
GroupService: GroupService;
GuiService: GuiService;
HapticService: HapticService;
HarmonyService: HarmonyService;
HeapProfilerService: HeapProfilerService;
HeatmapQueryService: HeatmapQueryService;
HeatmapService: HeatmapService;
HeightmapImporterService: HeightmapImporterService;
HttpService: HttpService;
ILegacyStudioBridge: ILegacyStudioBridge;
ImageScreenCaptureService: ImageScreenCaptureService;
IncrementalPatchBuilder: IncrementalPatchBuilder;
InsertService: InsertService;
InstanceExtensionsService: InstanceExtensionsService;
InstanceFileSyncService: InstanceFileSyncService;
IntentService: IntentService;
InternalMessagingService: InternalMessagingService;
InternalMessagingServiceVerifier: InternalMessagingServiceVerifier;
InternalSyncService: InternalSyncService;
IXPService: IXPService;
JointsService: JointsService;
KeyframeSequenceProvider: KeyframeSequenceProvider;
LanguageService: LanguageService;
LegacyStudioBridge: LegacyStudioBridge;
Lighting: Lighting;
LinkingService: LinkingService;
LiveScriptingService: LiveScriptingService;
LiveSyncService: LiveSyncService;
LocalizationService: LocalizationService;
LodDataService: LodDataService;
LogReporterService: LogReporterService;
LogService: LogService;
LuauExpressionService: LuauExpressionService;
LuauScriptAnalyzerService: LuauScriptAnalyzerService;
MarketplaceService: MarketplaceService;
MatchmakingService: MatchmakingService;
MaterialGenerationService: MaterialGenerationService;
MaterialService: MaterialService;
MemoryStoreService: MemoryStoreService;
MessageBusService: MessageBusService;
MessagingService: MessagingService;
MetaBreakpointManager: MetaBreakpointManager;
MicroProfilerService: MicroProfilerService;
MLModelDeliveryService: MLModelDeliveryService;
MLService: MLService;
ModerationService: ModerationService;
MomentsService: MomentsService;
OmniRecommendationsService: OmniRecommendationsService;
OpenCloudService: OpenCloudService;
Packages: Packages;
PackageUIService: PackageUIService;
PartyEmulatorService: PartyEmulatorService;
PatchBundlerFileWatch: PatchBundlerFileWatch;
PathfindingService: PathfindingService;
PerformanceControlService: PerformanceControlService;
PhysicsService: PhysicsService;
PinShortcutService: PinShortcutService;
PlaceAssetIdsService: PlaceAssetIdsService;
PlacesService: PlacesService;
PlaceStatsService: PlaceStatsService;
PlatformCloudStorageService: PlatformCloudStorageService;
PlatformFriendsService: PlatformFriendsService;
PlatformLibraries: PlatformLibraries;
PlayerDataService: PlayerDataService;
PlayerHydrationService: PlayerHydrationService;
Players: Players;
PlayerViewService: PlayerViewService;
PluginConnectionService: PluginConnectionService;
PluginManagementService: PluginManagementService;
PluginPolicyService: PluginPolicyService;
PolicyService: PolicyService;
PopLatencyService: PopLatencyService;
Preloaded: Preloaded;
ProceduralBehaviorSchedulerService: ProceduralBehaviorSchedulerService;
ProcessInstancePhysicsService: ProcessInstancePhysicsService;
ProximityPromptService: ProximityPromptService;
PublishService: PublishService;
QueueService: QueueService;
RecommendationService: RecommendationService;
ReflectionService: ReflectionService;
RemoteCommandService: RemoteCommandService;
RemoteCursorService: RemoteCursorService;
RemoteDebuggerServer: RemoteDebuggerServer;
ReplicatedFirst: ReplicatedFirst;
ReplicatedStorage: ReplicatedStorage;
RequestOrchestratorService: RequestOrchestratorService;
RibbonNotificationService: RibbonNotificationService;
RobloxServerStorage: RobloxServerStorage;
RolloutValidationService: RolloutValidationService;
RomarkRbxAnalyticsService: RomarkRbxAnalyticsService;
RomarkService: RomarkService;
RtMessagingService: RtMessagingService;
RunService: RunService;
RuntimeContentService: RuntimeContentService;
SafetyService: SafetyService;
SceneAnalysisService: SceneAnalysisService;
ScriptChangeService: ScriptChangeService;
ScriptCloneWatcher: ScriptCloneWatcher;
ScriptCloneWatcherHelper: ScriptCloneWatcherHelper;
ScriptCommitService: ScriptCommitService;
ScriptContext: ScriptContext;
ScriptDebuggerService: ScriptDebuggerService;
ScriptProfilerService: ScriptProfilerService;
ScriptRegistrationService: ScriptRegistrationService;
ScriptScannerService: ScriptScannerService;
SelectionHighlightManager: SelectionHighlightManager;
SerializationService: SerializationService;
ServerScriptService: ServerScriptService;
ServerStorage: ServerStorage;
ServiceVisibilityService: ServiceVisibilityService;
SessionCheckService: SessionCheckService;
SessionService: SessionService;
SharedTableRegistry: SharedTableRegistry;
SlimAnimationReplicationService: SlimAnimationReplicationService;
SlimContentProvider: SlimContentProvider;
SlimDebugSettings: SlimDebugSettings;
SlimReplicationService: SlimReplicationService;
SlimService: SlimService;
SmoothVoxelsUpgraderService: SmoothVoxelsUpgraderService;
SnippetService: SnippetService;
SocialService: SocialService;
SoundService: SoundService;
SoundShimService: SoundShimService;
StarterGui: StarterGui;
StarterPack: StarterPack;
StarterPlayer: StarterPlayer;
StartPageService: StartPageService;
StartupMessageService: StartupMessageService;
Stats: Stats;
StudioAssetService: StudioAssetService;
StudioCameraService: StudioCameraService;
StudioCaptureService: StudioCaptureService;
StudioDeviceEmulatorService: StudioDeviceEmulatorService;
StudioDeviceSimulatorService: StudioDeviceSimulatorService;
StudioPublishService: StudioPublishService;
StudioScriptDebugEventListener: StudioScriptDebugEventListener;
StudioSdkService: StudioSdkService;
StudioTestService: StudioTestService;
StudioUserService: StudioUserService;
StudioWidgetsService: StudioWidgetsService;
StylingService: StylingService;
SystemThemeService: SystemThemeService;
TeamCreateData: TeamCreateData;
TeamCreatePublishService: TeamCreatePublishService;
TeamCreateService: TeamCreateService;
Teams: Teams;
TelemetryService: TelemetryService;
TeleportService: TeleportService;
TemporaryCageMeshProvider: TemporaryCageMeshProvider;
TemporaryScriptService: TemporaryScriptService;
TestService: TestService;
TextBoxService: TextBoxService;
TextChatService: TextChatService;
TextService: TextService;
TextureGenerationService: TextureGenerationService;
ToastNotificationService: ToastNotificationService;
TraceRouteService: TraceRouteService;
TracerService: TracerService;
TutorialService: TutorialService;
TweenService: TweenService;
UGCAvatarService: UGCAvatarService;
UIDragDetectorService: UIDragDetectorService;
UniqueIdLookupService: UniqueIdLookupService;
UnvalidatedAssetService: UnvalidatedAssetService;
UserGameSettings: UserGameSettings;
UserInputService: UserInputService;
UserService: UserService;
VideoCaptureService: VideoCaptureService;
VideoScreenCaptureService: VideoScreenCaptureService;
VideoService: VideoService;
VisibilityCheckDispatcher: VisibilityCheckDispatcher;
VisualizationModeService: VisualizationModeService;
VoiceChatInternal: VoiceChatInternal;
VoiceChatService: VoiceChatService;
VRService: VRService;
VRStatusService: VRStatusService;
WebSocketService: WebSocketService;
WebViewService: WebViewService;
WindowProtocolService: WindowProtocolService;
Workspace: Workspace;
WrapContentProvider: WrapContentProvider;
WrapDeformMeshProvider: WrapDeformMeshProvider;
}
interface CreatableInstances {
Accessory: Accessory;
AccessoryDescription: AccessoryDescription;
Accoutrement: Accoutrement;
Actor: Actor;
AdGui: AdGui;
AdPlacement: AdPlacement;
AdPortal: AdPortal;
AirController: AirController;
AlignOrientation: AlignOrientation;
AlignPosition: AlignPosition;
AngularVelocity: AngularVelocity;
Animation: Animation;
AnimationConstraint: AnimationConstraint;
AnimationController: AnimationController;
AnimationGraphDefinition: AnimationGraphDefinition;
AnimationNodeDefinition: AnimationNodeDefinition;
AnimationRigData: AnimationRigData;
AnimationValueNodeDefinition: AnimationValueNodeDefinition;
AnimationValueOutputDefinition: AnimationValueOutputDefinition;
Animator: Animator;
Annotation: Annotation;
ArcHandles: ArcHandles;
Atmosphere: Atmosphere;
AtmosphereSensor: AtmosphereSensor;
Attachment: Attachment;
AudioAnalyzer: AudioAnalyzer;
AudioChannelMixer: AudioChannelMixer;
AudioChannelSplitter: AudioChannelSplitter;
AudioChorus: AudioChorus;
AudioCompressor: AudioCompressor;
AudioDeviceInput: AudioDeviceInput;
AudioDeviceOutput: AudioDeviceOutput;
AudioDistortion: AudioDistortion;
AudioEcho: AudioEcho;
AudioEmitter: AudioEmitter;
AudioEqualizer: AudioEqualizer;
AudioFader: AudioFader;
AudioFilter: AudioFilter;
AudioFlanger: AudioFlanger;
AudioGate: AudioGate;
AudioLimiter: AudioLimiter;
AudioListener: AudioListener;
AudioPitchShifter: AudioPitchShifter;
AudioPlayer: AudioPlayer;
AudioRecorder: AudioRecorder;
AudioReverb: AudioReverb;
AudioSearchParams: AudioSearchParams;
AudioSpeechToText: AudioSpeechToText;
AudioTextToSpeech: AudioTextToSpeech;
AudioTremolo: AudioTremolo;
AudioWindSynthesizer: AudioWindSynthesizer;
AuroraScript: AuroraScript;
AvatarAbilityRules: AvatarAbilityRules;
AvatarAccessoryRules: AvatarAccessoryRules;
AvatarAnimationRules: AvatarAnimationRules;
AvatarBodyRules: AvatarBodyRules;
AvatarClothingRules: AvatarClothingRules;
AvatarCollisionRules: AvatarCollisionRules;
AvatarRules: AvatarRules;
Backpack: Backpack;
BallSocketConstraint: BallSocketConstraint;
Beam: Beam;
BillboardGui: BillboardGui;
BindableEvent: BindableEvent;
BindableFunction: BindableFunction;
BlockMesh: BlockMesh;
BloomEffect: BloomEffect;
BlurEffect: BlurEffect;
BodyAngularVelocity: BodyAngularVelocity;
BodyColors: BodyColors;
BodyForce: BodyForce;
BodyGyro: BodyGyro;
BodyPartDescription: BodyPartDescription;
BodyPosition: BodyPosition;
BodyThrust: BodyThrust;
BodyVelocity: BodyVelocity;
Bone: Bone;
BoolValue: BoolValue;
BoxHandleAdornment: BoxHandleAdornment;
Breakpoint: Breakpoint;
BrickColorValue: BrickColorValue;
BubbleChatMessageProperties: BubbleChatMessageProperties;
BuoyancySensor: BuoyancySensor;
Camera: Camera;
CanvasGroup: CanvasGroup;
CFrameValue: CFrameValue;
CharacterMesh: CharacterMesh;
ChorusSoundEffect: ChorusSoundEffect;
ClickDetector: ClickDetector;
ClimbController: ClimbController;
Clouds: Clouds;
Color3Value: Color3Value;
ColorCorrectionEffect: ColorCorrectionEffect;
ColorGradingEffect: ColorGradingEffect;
CompositeValueCurve: CompositeValueCurve;
CompressorSoundEffect: CompressorSoundEffect;
ConeHandleAdornment: ConeHandleAdornment;
Configuration: Configuration;
ControllerManager: ControllerManager;
ControllerPartSensor: ControllerPartSensor;
ControlState: ControlState;
CornerWedgePart: CornerWedgePart;
CurveAnimation: CurveAnimation;
CustomLog: CustomLog;
CylinderHandleAdornment: CylinderHandleAdornment;
CylinderMesh: CylinderMesh;
CylindricalConstraint: CylindricalConstraint;
DataStoreGetOptions: DataStoreGetOptions;
DataStoreIncrementOptions: DataStoreIncrementOptions;
DataStoreOptions: DataStoreOptions;
DataStoreSetOptions: DataStoreSetOptions;
Decal: Decal;
DepthOfFieldEffect: DepthOfFieldEffect;
Dialog: Dialog;
DialogChoice: DialogChoice;
DigitsRigDescription: DigitsRigDescription;
DistortionSoundEffect: DistortionSoundEffect;
DoubleConstrainedValue: DoubleConstrainedValue;
DragDetector: DragDetector;
Dragger: Dragger;
EchoSoundEffect: EchoSoundEffect;
EqualizerSoundEffect: EqualizerSoundEffect;
EulerRotationCurve: EulerRotationCurve;
ExperienceInviteOptions: ExperienceInviteOptions;
ExplorerFilter: ExplorerFilter;
Explosion: Explosion;
FaceControls: FaceControls;
FileMesh: FileMesh;
Fire: Fire;
FlangeSoundEffect: FlangeSoundEffect;
FloatCurve: FloatCurve;
FloorWire: FloorWire;
FluidForceSensor: FluidForceSensor;
Folder: Folder;
ForceField: ForceField;
Frame: Frame;
GeneratedFolder: GeneratedFolder;
GetTextBoundsParams: GetTextBoundsParams;
Glue: Glue;
GroundController: GroundController;
Handles: Handles;
HapticEffect: HapticEffect;
Hat: Hat;
HiddenSurfaceRemovalAsset: HiddenSurfaceRemovalAsset;
Highlight: Highlight;
HingeConstraint: HingeConstraint;
Hole: Hole;
Humanoid: Humanoid;
HumanoidController: HumanoidController;
HumanoidDescription: HumanoidDescription;
HumanoidRigDescription: HumanoidRigDescription;
IKControl: IKControl;
ImageButton: ImageButton;
ImageHandleAdornment: ImageHandleAdornment;
ImageLabel: ImageLabel;
InputAction: InputAction;
InputActionLabel: InputActionLabel;
InputBinding: InputBinding;
InputContext: InputContext;
IntConstrainedValue: IntConstrainedValue;
InternalSyncItem: InternalSyncItem;
IntersectOperation: IntersectOperation;
IntValue: IntValue;
Keyframe: Keyframe;
KeyframeMarker: KeyframeMarker;
KeyframeSequence: KeyframeSequence;
LinearVelocity: LinearVelocity;
LineForce: LineForce;
LineHandleAdornment: LineHandleAdornment;
LocalizationTable: LocalizationTable;
LocalScript: LocalScript;
MakeupDescription: MakeupDescription;
ManualGlue: ManualGlue;
ManualWeld: ManualWeld;
MarkerCurve: MarkerCurve;
MaterialVariant: MaterialVariant;
MeshPart: MeshPart;
Model: Model;
ModuleScript: ModuleScript;
Motor: Motor;
Motor6D: Motor6D;
MotorFeature: MotorFeature;
NegateOperation: NegateOperation;
NoCollisionConstraint: NoCollisionConstraint;
Noise: Noise;
NumberPose: NumberPose;
NumberValue: NumberValue;
ObjectValue: ObjectValue;
OperationGraph: OperationGraph;
Pants: Pants;
Part: Part;
ParticleEmitter: ParticleEmitter;
PartOperation: PartOperation;
Path2D: Path2D;
Path3D: Path3D;
PathfindingLink: PathfindingLink;
PathfindingModifier: PathfindingModifier;
PitchShiftSoundEffect: PitchShiftSoundEffect;
Plane: Plane;
PlaneConstraint: PlaneConstraint;
PluginCapabilities: PluginCapabilities;
PointLight: PointLight;
Pose: Pose;
PrismaticConstraint: PrismaticConstraint;
ProceduralModel: ProceduralModel;
ProximityPrompt: ProximityPrompt;
PyramidHandleAdornment: PyramidHandleAdornment;
RayValue: RayValue;
RealtimeMedia: RealtimeMedia;
RelativeGui: RelativeGui;
RemoteEvent: RemoteEvent;
RemoteFunction: RemoteFunction;
ReverbSoundEffect: ReverbSoundEffect;
RigidConstraint: RigidConstraint;
RocketPropulsion: RocketPropulsion;
RodConstraint: RodConstraint;
RopeConstraint: RopeConstraint;
Rotate: Rotate;
RotateP: RotateP;
RotateV: RotateV;
RotationCurve: RotationCurve;
RTAnimationTracker: RTAnimationTracker;
ScreenGui: ScreenGui;
Script: Script;
ScrollingFrame: ScrollingFrame;
Seat: Seat;
SelectionBox: SelectionBox;
SelectionPartLasso: SelectionPartLasso;
SelectionPointLasso: SelectionPointLasso;
SelectionSphere: SelectionSphere;
Shirt: Shirt;
ShirtGraphic: ShirtGraphic;
SkateboardController: SkateboardController;
SkateboardPlatform: SkateboardPlatform;
Sky: Sky;
Smoke: Smoke;
Snap: Snap;
Sound: Sound;
SoundGroup: SoundGroup;
Sparkles: Sparkles;
SpawnLocation: SpawnLocation;
SpecialMesh: SpecialMesh;
SphereHandleAdornment: SphereHandleAdornment;
SpotLight: SpotLight;
SpringConstraint: SpringConstraint;
StarterGear: StarterGear;
StateMachineDefinition: StateMachineDefinition;
StateMachineTransitionDefinition: StateMachineTransitionDefinition;
StringValue: StringValue;
StudioAttachment: StudioAttachment;
StudioCallout: StudioCallout;
StyleDerive: StyleDerive;
StyleLink: StyleLink;
StyleQuery: StyleQuery;
StyleRule: StyleRule;
StyleSheet: StyleSheet;
SunRaysEffect: SunRaysEffect;
SurfaceAppearance: SurfaceAppearance;
SurfaceGui: SurfaceGui;
SurfaceLight: SurfaceLight;
SurfaceSelection: SurfaceSelection;
SwimController: SwimController;
Team: Team;
TeleportOptions: TeleportOptions;
TerrainDetail: TerrainDetail;
TerrainRegion: TerrainRegion;
TextBox: TextBox;
TextButton: TextButton;
TextChannel: TextChannel;
TextChannelWindow: TextChannelWindow;
TextChatCommand: TextChatCommand;
TextChatMessageProperties: TextChatMessageProperties;
TextGenerator: TextGenerator;
TextLabel: TextLabel;
Texture: Texture;
Tool: Tool;
Torque: Torque;
TorsionSpringConstraint: TorsionSpringConstraint;
TrackerStreamAnimation: TrackerStreamAnimation;
Trail: Trail;
TremoloSoundEffect: TremoloSoundEffect;
TrussPart: TrussPart;
UIAspectRatioConstraint: UIAspectRatioConstraint;
UICorner: UICorner;
UIDragDetector: UIDragDetector;
UIFlexItem: UIFlexItem;
UIGradient: UIGradient;
UIGridLayout: UIGridLayout;
UIListLayout: UIListLayout;
UIPadding: UIPadding;
UIPageLayout: UIPageLayout;
UIScale: UIScale;
UIShadow: UIShadow;
UISizeConstraint: UISizeConstraint;
UIStroke: UIStroke;
UITableLayout: UITableLayout;
UITextSizeConstraint: UITextSizeConstraint;
UnionOperation: UnionOperation;
UniversalConstraint: UniversalConstraint;
UnreliableRemoteEvent: UnreliableRemoteEvent;
ValueCurve: ValueCurve;
Vector3Curve: Vector3Curve;
Vector3Value: Vector3Value;
VectorForce: VectorForce;
VehicleController: VehicleController;
VehicleSeat: VehicleSeat;
VelocityMotor: VelocityMotor;
VideoDeviceInput: VideoDeviceInput;
VideoDisplay: VideoDisplay;
VideoFrame: VideoFrame;
VideoPlayer: VideoPlayer;
ViewportCamera: ViewportCamera;
ViewportFrame: ViewportFrame;
VisualizationMode: VisualizationMode;
VisualizationModeCategory: VisualizationModeCategory;
WedgePart: WedgePart;
Weld: Weld;
WeldConstraint: WeldConstraint;
Wire: Wire;
WireframeHandleAdornment: WireframeHandleAdornment;
WorkspaceAnnotation: WorkspaceAnnotation;
WorldModel: WorldModel;
WrapDeformer: WrapDeformer;
WrapLayer: WrapLayer;
WrapTarget: WrapTarget;
WrapTextureTransfer: WrapTextureTransfer;
}
interface Instances extends Services, CreatableInstances {
AnimatedImage: AnimatedImage;
AnimationClip: AnimationClip;
AnimationImportData: AnimationImportData;
AnimationStreamTrack: AnimationStreamTrack;
AnimationTrack: AnimationTrack;
AssetImportSession: AssetImportSession;
AssetPatchSettings: AssetPatchSettings;
AssetSoundEffect: AssetSoundEffect;
AudioPages: AudioPages;
AuroraScriptObject: AuroraScriptObject;
BackpackItem: BackpackItem;
BanHistoryPages: BanHistoryPages;
BaseCoreGuiConfiguration: BaseCoreGuiConfiguration;
BaseImportData: BaseImportData;
BasePart: BasePart;
BasePlayerGui: BasePlayerGui;
BaseRemoteEvent: BaseRemoteEvent;
BaseScript: BaseScript;
BaseWrap: BaseWrap;
BevelMesh: BevelMesh;
BodyMover: BodyMover;
BubbleChatConfiguration: BubbleChatConfiguration;
CapturesPages: CapturesPages;
CapturesViewConfiguration: CapturesViewConfiguration;
CatalogPages: CatalogPages;
ChannelSelectorSoundEffect: ChannelSelectorSoundEffect;
ChannelTabsConfiguration: ChannelTabsConfiguration;
CharacterAppearance: CharacterAppearance;
ChatInputBarConfiguration: ChatInputBarConfiguration;
ChatWindowConfiguration: ChatWindowConfiguration;
ChatWindowMessageProperties: ChatWindowMessageProperties;
Clothing: Clothing;
CloudLocalizationTable: CloudLocalizationTable;
Collaborator: Collaborator;
Constraint: Constraint;
Controller: Controller;
ControllerBase: ControllerBase;
ControllerSensor: ControllerSensor;
CustomSoundEffect: CustomSoundEffect;
DataModel: DataModel;
DataModelMesh: DataModelMesh;
DataStore: DataStore;
DataStoreInfo: DataStoreInfo;
DataStoreKey: DataStoreKey;
DataStoreKeyInfo: DataStoreKeyInfo;
DataStoreKeyPages: DataStoreKeyPages;
DataStoreListingPages: DataStoreListingPages;
DataStoreObjectVersionInfo: DataStoreObjectVersionInfo;
DataStorePages: DataStorePages;
DataStoreVersionPages: DataStoreVersionPages;
DebuggerConnection: DebuggerConnection;
DebuggerLuaResponse: DebuggerLuaResponse;
DebuggerVariable: DebuggerVariable;
DisplayWakeLock: DisplayWakeLock;
DynamicRotate: DynamicRotate;
ExplorerFilterAutocompleter: ExplorerFilterAutocompleter;
FaceInstance: FaceInstance;
FacialAnimationStreamingServiceStats: FacialAnimationStreamingServiceStats;
FacialAnimationStreamingSubsessionStats: FacialAnimationStreamingSubsessionStats;
FacsImportData: FacsImportData;
Feature: Feature;
FormFactorPart: FormFactorPart;
FriendPages: FriendPages;
GenericSettings: GenericSettings;
GlobalDataStore: GlobalDataStore;
GroupImportData: GroupImportData;
GuiBase: GuiBase;
GuiBase2d: GuiBase2d;
GuiBase3d: GuiBase3d;
GuiButton: GuiButton;
GuiLabel: GuiLabel;
GuiObject: GuiObject;
HandleAdornment: HandleAdornment;
HandlesBase: HandlesBase;
ImportSession: ImportSession;
InputObject: InputObject;
Instance: Instance;
InstanceAdornment: InstanceAdornment;
InventoryPages: InventoryPages;
JointImportData: JointImportData;
JointInstance: JointInstance;
LayerCollector: LayerCollector;
Light: Light;
LocalDebuggerConnection: LocalDebuggerConnection;
LodDataEntity: LodDataEntity;
LuaSourceContainer: LuaSourceContainer;
ManualSurfaceJointInstance: ManualSurfaceJointInstance;
MaterialImportData: MaterialImportData;
MemoryStoreDistributedCounter: MemoryStoreDistributedCounter;
MemoryStoreHashMap: MemoryStoreHashMap;
MemoryStoreHashMapPages: MemoryStoreHashMapPages;
MemoryStoreQueue: MemoryStoreQueue;
MemoryStoreSortedMap: MemoryStoreSortedMap;
MeshImportData: MeshImportData;
MessageBusConnection: MessageBusConnection;
MetaBreakpoint: MetaBreakpoint;
MetaBreakpointContext: MetaBreakpointContext;
Mouse: Mouse;
NetworkMarker: NetworkMarker;
OpenCloudApiV1: OpenCloudApiV1;
OrderedDataStore: OrderedDataStore;
OutfitPages: OutfitPages;
PackageLink: PackageLink;
Pages: Pages;
ParabolaAdornment: ParabolaAdornment;
PartAdornment: PartAdornment;
PatchMapping: PatchMapping;
Path: Path;
PausedState: PausedState;
PausedStateBreakpoint: PausedStateBreakpoint;
PausedStateException: PausedStateException;
Platform: Platform;
Player: Player;
PlayerData: PlayerData;
PlayerDataRecord: PlayerDataRecord;
PlayerDataRecordConfig: PlayerDataRecordConfig;
PlayerGui: PlayerGui;
PlayerListConfiguration: PlayerListConfiguration;
PlayerMouse: PlayerMouse;
PlayerScripts: PlayerScripts;
PluginManagerInterface: PluginManagerInterface;
PoseBase: PoseBase;
PostEffect: PostEffect;
PVAdornment: PVAdornment;
PVInstance: PVInstance;
RecommendationPages: RecommendationPages;
RobloxSerializableInstance: RobloxSerializableInstance;
RolloutValidation: RolloutValidation;
RootImportData: RootImportData;
ScreenshotHud: ScreenshotHud;
ScriptBuilder: ScriptBuilder;
ScriptRuntime: ScriptRuntime;
SelectionLasso: SelectionLasso;
SelfViewConfiguration: SelfViewConfiguration;
SensorBase: SensorBase;
ServiceProvider: ServiceProvider;
SlidingBallConstraint: SlidingBallConstraint;
SlimAnimationDataEntity: SlimAnimationDataEntity;
SoundEffect: SoundEffect;
StackFrame: StackFrame;
StandardPages: StandardPages;
StandardQueue: StandardQueue;
StarterCharacterScripts: StarterCharacterScripts;
StarterPlayerScripts: StarterPlayerScripts;
StudioObjectBase: StudioObjectBase;
StudioScreenshotCapture: StudioScreenshotCapture;
StudioWidget: StudioWidget;
StyleBase: StyleBase;
SurfaceGuiBase: SurfaceGuiBase;
SyncScriptBuilder: SyncScriptBuilder;
TeleportAsyncResult: TeleportAsyncResult;
Terrain: Terrain;
TestCase: TestCase;
TextChatConfigurations: TextChatConfigurations;
TextChatMessage: TextChatMessage;
TextFilterResult: TextFilterResult;
TextFilterTranslatedResult: TextFilterTranslatedResult;
TextSource: TextSource;
TextureGenerationPartGroup: TextureGenerationPartGroup;
TextureGenerationUnwrappingRequest: TextureGenerationUnwrappingRequest;
ThreadState: ThreadState;
TouchTransmitter: TouchTransmitter;
TrackerLodController: TrackerLodController;
Translator: Translator;
TriangleMeshPart: TriangleMeshPart;
Tween: Tween;
TweenBase: TweenBase;
UIBase: UIBase;
UIComponent: UIComponent;
UIConstraint: UIConstraint;
UIGridStyleLayout: UIGridStyleLayout;
UILayout: UILayout;
UserSettings: UserSettings;
ValueBase: ValueBase;
WebSocketClient: WebSocketClient;
WorldRoot: WorldRoot;
}
interface Objects extends Instances {
AnimatedImageTrack: AnimatedImageTrack;
AnimationNode: AnimationNode;
Capture: Capture;
ConfigSnapshot: ConfigSnapshot;
DataModelDiff: DataModelDiff;
EditableImage: EditableImage;
EditableMesh: EditableMesh;
ExecutedRemoteCommand: ExecutedRemoteCommand;
Logger: Logger;
LuauExpression: LuauExpression;
MLSession: MLSession;
Object: RBXObject;
OutputLink: OutputLink;
PluginConnection: PluginConnection;
ScreenshotCapture: ScreenshotCapture;
StudioActionOverride: StudioActionOverride;
TerrainIterateOperation: TerrainIterateOperation;
TerrainModifyOperation: TerrainModifyOperation;
TerrainReadOperation: TerrainReadOperation;
TerrainWriteOperation: TerrainWriteOperation;
VideoCapture: VideoCapture;
VideoSampler: VideoSampler;
VirtualInput: VirtualInput;
VoxelBuffer: VoxelBuffer;
WebStreamClient: WebStreamClient;
}
// GENERATED ROBLOX INSTANCE CLASSES
/**
* `Object` is the base class for all classes in the Roblox class hierarchy.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Object)
*/
interface RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Object: unique symbol;
/**
* A read-only string representing the class this `Object` belongs to.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Object#ClassName)
*/
readonly ClassName: string;
/**
* Get an event that fires when a given property of the object changes.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Object#GetPropertyChangedSignal)
* @param this `Object` is the base class for all classes in the Roblox class hierarchy.
* @param property The property to connect to.
* @returns A signal that fires whenever the property changes.
*/
GetPropertyChangedSignal(this: T, propertyName: InstancePropertyNames): RBXScriptSignal<() => void>;
/**
* Returns true if an object's class matches or inherits from a given class.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Object#IsA)
* @param this `Object` is the base class for all classes in the Roblox class hierarchy.
* @param className The class against which the Object's class will be checked. Case-sensitive.
* @returns Describes whether the Object's class matched or is a subclass of the given class.
*/
IsA(this: RBXObject, className: T): this is Objects[T];
/**
* Fires immediately after a property of the object changes, with some limitations.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Object#Changed)
*/
readonly Changed: unknown;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimatedImageTrack)
*/
interface AnimatedImageTrack extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimatedImageTrack: unique symbol;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNode)
*/
interface AnimationNode extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationNode: unique symbol;
}
/**
* A class which defines a piece of content, such as a screenshot or video, taken in-experience.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture)
*/
interface Capture extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Capture: unique symbol;
/**
* The date and time at which the capture was taken.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture#CaptureTime)
*/
readonly CaptureTime: DateTime;
/**
* Indicates whether the capture is a screenshot or a video.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture#CaptureType)
*/
readonly CaptureType: Enum.CaptureType;
/**
* A temporary local identifier for the capture's stored file.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture#LocalId)
*/
readonly LocalId: string;
/**
* The ID of the place in which the capture was taken.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture#SourcePlaceId)
*/
readonly SourcePlaceId: number;
/**
* The ID of the experience in which the capture was taken.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Capture#SourceUniverseId)
*/
readonly SourceUniverseId: number;
}
/**
* A child class of `Capture` for screenshots.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ScreenshotCapture)
*/
interface ScreenshotCapture extends Capture {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_ScreenshotCapture: unique symbol;
}
/**
* A child class of `Capture` for videos.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/VideoCapture)
*/
interface VideoCapture extends Capture {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_VideoCapture: unique symbol;
/**
* The length of the recorded video, in seconds.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/VideoCapture#TimeLength)
*/
readonly TimeLength: number;
}
/**
* A snapshot of configuration values at a given version. Can be player-specific.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot)
*/
interface ConfigSnapshot extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_ConfigSnapshot: unique symbol;
/**
* Populated if snapshot was in an error state.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#Error)
*/
readonly Error: Enum.ConfigSnapshotErrorState;
/**
* If true, indicates the snapshot is outdated and can be refreshed to newer values.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#Outdated)
*/
readonly Outdated: boolean;
/**
* Returns the value for the given key.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#GetValue)
* @param this A snapshot of configuration values at a given version. Can be player-specific.
* @param key Key of the configuration to get the value for.
* @returns The value of the configuration for the given key.
*/
GetValue(this: ConfigSnapshot, key: string): unknown;
/**
* Returns a signal that fires when the value for the given key changes due to a refresh.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#GetValueChangedSignal)
* @param this A snapshot of configuration values at a given version. Can be player-specific.
* @param key Key of the configuration to get the change signal for.
* @returns A `RBXScriptSignal` that fires when the value for the given key changes upon refresh.
*/
GetValueChangedSignal(this: ConfigSnapshot, key: string): RBXScriptSignal;
/**
* Refreshes the snapshot to the latest configuration values.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#Refresh)
* @param this A snapshot of configuration values at a given version. Can be player-specific.
*/
Refresh(this: ConfigSnapshot): void;
/**
* Fires when a newer version of the configuration is available.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ConfigSnapshot#UpdateAvailable)
*/
readonly UpdateAvailable: RBXScriptSignal<() => void>;
}
/**
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/DataModelDiff)
*/
interface DataModelDiff extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_DataModelDiff: unique symbol;
}
/**
* Object which allows for the runtime creation and manipulation of images.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage)
*/
interface EditableImage extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_EditableImage: unique symbol;
/**
* Size of the `EditableImage` in pixels.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#Size)
*/
readonly Size: Vector2;
/**
* Destroys the image contents and immediately reclaims the memory they use.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#Destroy)
* @param this Object which allows for the runtime creation and manipulation of images.
*/
Destroy(this: EditableImage): void;
/**
* Draws a circle at the specified point.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawCircle)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param center Center of the circle, relative to the top-left corner of the `EditableImage`. Positions outside the canvas bounds are allowed.
* @param radius Radius of the circle in pixels.
* @param color Color of the circle.
* @param transparency Transparency of the circle with 0 being fully opaque and 1 being fully transparent.
* @param combineType How the drawn pixels (source) are combined with the existing pixels of this image (destination).
* @param antiAliasing Determines whether anti-aliasing is applied to the circle. When set to `AntiAliasing.Enabled`, circle edges are soft. When set to `AntiAliasing.Disabled`, circle edges are hard.
*/
DrawCircle(this: EditableImage, center: Vector2, radius: number, color: Color3, transparency: number, combineType: CastsToEnum, antiAliasing?: CastsToEnum): void;
/**
* Draws another `EditableImage` into this `EditableImage` at the given position.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawImage)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param position Position at which the top-left corner of the source image will be drawn.
* @param image The source `EditableImage` to draw into this `EditableImage`.
* @param combineType How the pixels of the source image are combined with the existing pixels of this image (destination).
*/
DrawImage(this: EditableImage, position: Vector2, image: EditableImage, combineType: CastsToEnum): void;
/**
* Projects another `EditableImage` into an `EditableMesh` and stores the result on this `EditableImage`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawImageProjected)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param mesh The `EditableMesh` used to project into.
* @param projection Projection configuration dictionary including the following key-value pairs: - `Direction` (`Vector3`) where the projector is facing.
* - `Position` (`Vector3`) as the position in local space with respect to the mesh.
* - `Size` (`Vector3`) as the size of the projector.
* - `Up` (`Vector3`) as the up vector of the projector in local space with respect to the mesh.
*
*
* @param brushConfig Brush configuration dictionary including the following key-value pairs: - `AlphaBlendType` (`ImageAlphaType`) which determines how this projection will blend alpha values.
* - `ColorBlendType` (`ImageCombineType`) which determines how this projection will blend color values.
* - `Decal` (`EditableImage`) as the image used for projection.
* - `FadeAngle` (number) as the angle in degrees for the projection edges to start to fall off. The projection will be fully faded out at 90 degrees. An angle of 0 means fading starts immediately at 0 degrees and an angle of 90 means no fading but instead a hard edge at 90 degrees. An angle of 70 degrees would mean the projection starts to fade at 70 degrees and is fully faded out at 90 degrees.
* - `BlendIntensity` (number) as the value between `0` and `1` which controls how much of the projection is blended into the resulting image.
*/
DrawImageProjected(this: EditableImage, mesh: EditableMesh, projection: DrawImageProjectedProjection, brushConfig: DrawImageProjectedBrushConfig): void;
/**
* Draws an image into this `EditableImage` with transformations including scaling and rotation, placing it at the specified position.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawImageTransformed)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param position Position in pixels where the pivot point of the source image will be placed on this image.
* @param scale Scaling factors for the source image along the X and Y axes.
* @param rotation The rotation angle in degrees, applied around the pivot point of the source image.
* @param image The source `EditableImage` to be drawn into this image.
* @param options Optional dictionary for additional configuration: - `CombineType`: Specifies how the pixels of the source image blend with those of the destination. Default is `ImageCombineType.AlphaBlend`.
* - `SamplingMode`: Specifies the sampling method (e.g. `Default` for bilinear or `Pixelated` for nearest neighbor). Default is `ResamplerMode.Default`.
* - `PivotPoint`: Specifies the pivot point within the source image for scaling and rotation. Default is the center of the source image (i.e. `Size / 2`).
*/
DrawImageTransformed(this: EditableImage, position: Vector2, scale: Vector2, rotation: number, image: EditableImage, options: DrawImageTransformedOptions): void;
/**
* Draws a line between two provided points.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawLine)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param p1 Start point of the line.
* @param p2 End point of the line.
* @param color Color of the line.
* @param transparency Transparency of the line.
* @param combineType How the drawn pixels (source) are combined with the existing pixels of this image (destination).
* @param antiAliasing Determines whether anti-aliasing is applied to the line. When set to `AntiAliasing.Enabled`, line edges are soft. When set to `AntiAliasing.Disabled`, line edges are hard.
*/
DrawLine(this: EditableImage, p1: Vector2, p2: Vector2, color: Color3, transparency: number, combineType: CastsToEnum, antiAliasing?: CastsToEnum): void;
/**
* Draws a rectangle of the given size at the given top-left position.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#DrawRectangle)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param position Position of the top-left of the rectangle. Unlike other drawing methods, this cannot be outside the canvas bounds of the `EditableImage`.
* @param size Size of the rectangle to draw, in pixels.
* @param color Color of the rectangle.
* @param transparency Transparency of the rectangle.
* @param combineType How the drawn pixels (source) are combined with the existing pixels of this image (destination).
*/
DrawRectangle(this: EditableImage, position: Vector2, size: Vector2, color: Color3, transparency: number, combineType: CastsToEnum): void;
/**
* Reads a rectangular region of pixels into a buffer.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#ReadPixelsBuffer)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param position Top-left corner of the rectangular region of pixels to read.
* @param size Size of the rectangular region of pixels to read.
* @returns Buffer where each pixel is represented by four bytes (red, green, blue and alpha respectively). The length of the buffer can be calculated as `X * Size.Y * 4` bytes.
*/
ReadPixelsBuffer(this: EditableImage, position: Vector2, size: Vector2): buffer;
/**
* Projects pixels from an `EditableMesh` texture into this `EditableImage`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#SampleImageProjected)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param sourceMesh The `EditableMesh` that maps `sourceTexture` onto the surface being sampled.
* @param sourceTexture The `EditableImage` from which pixels are sampled.
* @param projectionConfig Projection configuration dictionary containing the following key-value pairs: - `Direction` (`Vector3`) where the projector is facing.
* - `Position` (`Vector3`) as the projector position in local space with respect to the mesh.
* - `Size` (`Vector3`) as the size of the projector. The **X** and **Y** components specify its dimensions, while the **Z** component specifies the projection depth.
* - `Up` (`Vector3`) as the up vector of the projector in local space with respect to the mesh.
*
*
* @param brushConfig Brush configuration dictionary containing the following key-value pairs: - `AlphaBlendType` (`ImageAlphaType`) which determines how the sampled alpha values are blended.
* - `ColorBlendType` (`ImageCombineType`) which determines how the sampled color values are blended.
* - `FadeAngle` (number) as the angle in degrees at which the projection begins to fade based on the surface normal. A value of `180` applies no normal-angle fade.
*/
SampleImageProjected(this: EditableImage, sourceMesh: EditableMesh, sourceTexture: EditableImage, projectionConfig: object, brushConfig: object): void;
/**
* Writes a rectangular region of pixels into the image.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableImage#WritePixelsBuffer)
* @param this Object which allows for the runtime creation and manipulation of images.
* @param position Top-left corner of the rectangular region to draw the pixels into.
* @param size Size of the rectangular region of pixels to write.
* @param buffer A buffer where each pixel is represented by four bytes (red, green, blue, and alpha respectively). The length of the buffer should be `X * Size.Y * 4` bytes.
*/
WritePixelsBuffer(this: EditableImage, position: Vector2, size: Vector2, buffer: buffer): void;
}
/**
* Object which allows for the runtime creation and manipulation of meshes.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh)
*/
interface EditableMesh extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_EditableMesh: unique symbol;
/**
* Returns `true` if a mesh is fixed-size.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#FixedSize)
*/
get FixedSize(): boolean;
/**
* Adds a new bone and returns a bone ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddBone)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneProperties Options table containing bone parameters: - `Name` — A string that specifies the bone name. Note that all bone names in a mesh must be unique, and the maximum length is 100 characters.
* - `ParentId` — Optional bone ID of the new bone's parent.
* - `CFrame` — Initial `CFrame` of the bone in the bind pose of the mesh, in the mesh's local space.
* - `Virtual` — Boolean that specifies whether this bone is virtual. Virtual bones can only be bound to a `FaceControls` instance.
*
*
* @returns Bone ID of the new bone.
*/
AddBone(this: EditableMesh, boneProperties: object): number;
/**
* Adds a new color to the geometry and returns a color ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param color The new color.
* @param alpha The color alpha (transparency). `0` is fully transparent, and `1` is fully opaque.
* @returns Color ID of the new color.
*/
AddColor(this: EditableMesh, color: Color3, alpha: number): number;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddFace)
*/
AddFace(this: EditableMesh, vertexIds: Array): number;
/**
* Adds a new normal to the geometry and returns a normal ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normal The normal vector. If the normal value isn't specified, the normal will be automatically calculated.
* @returns Normal ID of the new normal.
*/
AddNormal(this: EditableMesh, normal?: Vector3): number;
/**
* Adds a new triangle to the mesh and returns a face ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddTriangle)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId0 ID of the first vertex of the triangle.
* @param vertexId1 ID of the second vertex of the triangle.
* @param vertexId2 ID of the third vertex of the triangle.
* @returns Face ID of the new face.
*/
AddTriangle(this: EditableMesh, vertexId0: number, vertexId1: number, vertexId2: number): number;
/**
* Adds a new UV to the geometry and returns a UV ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param uv The new UV coordinate.
* @returns UV ID of the new UV.
*/
AddUV(this: EditableMesh, uv: Vector2): number;
/**
* Adds a new vertex to the geometry and returns a vertex ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#AddVertex)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param p Position in the mesh's local object space.
* @returns Vertex ID of the new vertex.
*/
AddVertex(this: EditableMesh, p: Vector3): number;
/**
* Creates new mesh elements of the given attribute type and returns their IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchAdd)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param attr The `MeshAttribute` type of element to create.
* @param data Values to initialize the new elements. An array of `Vector3` for `Vertex` or `Normal`; an array of `Vector2` for `UV`; an array of `Color3` followed by a matching array of alpha numbers (same length) for `Color`; a 2D array of vertex-ID arrays for `Face`.
* @returns Ordered array of new element IDs matching the input order.
*/
BatchAdd(this: EditableMesh, attr: CastsToEnum, data: Array): Array;
/**
* Returns the per-corner attribute IDs for each face in a batch.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchGetFaceAttributes)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param attr The attribute to retrieve for each face's corners. Must be `MeshAttribute.Vertex`, `MeshAttribute.Normal`, `MeshAttribute.Color`, or `MeshAttribute.UV`; `MeshAttribute.Face` is not supported and throws an error.
* @param faceIds Faces to query.
* @returns 2D array where `result[i]` is the array of attribute IDs at the corners of `faceIds[i]`.
*/
BatchGetFaceAttributes(this: EditableMesh, attr: CastsToEnum, faceIds: Array): Array;
/**
* Returns attribute values for each ID in a batch.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchGetValues)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param ids IDs of the elements to read. All must be the same attribute type — vertex, normal, color, or UV. The attribute is determined by the ID type, so no `MeshAttribute` argument is needed. Mixing types, or passing face or bone IDs, throws an error.
* @returns A tuple of two values. The first is an array of attribute values: `Vector3` for vertex or normal IDs, `Vector2` for UV IDs, `Color3` for color IDs. The second is `nil` for all attribute types except color, where it is an array of alpha numbers.
*/
BatchGetValues(this: EditableMesh, ids: Array): unknown;
/**
* Returns the attribute IDs associated with each vertex in a batch.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchGetVertexAttributes)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param attr The attribute type to look up. Must be `MeshAttribute.Face` (faces that reference each vertex), `MeshAttribute.Normal`, `MeshAttribute.Color`, or `MeshAttribute.UV`; `MeshAttribute.Vertex` is not supported and throws an error (to read vertex positions, use `BatchGetValues()`).
* @param vertexIds Vertices to query.
* @returns 2D array where `result[i]` is the array of attribute IDs associated with `vertexIds[i]`.
*/
BatchGetVertexAttributes(this: EditableMesh, attr: CastsToEnum, vertexIds: Array): Array;
/**
* Returns the attribute ID at each specified corner for a batch of vertex–face pairs.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchGetVertexFaceAttributes)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param attr The attribute to retrieve. Must be `MeshAttribute.Normal`, `MeshAttribute.Color`, or `MeshAttribute.UV`; `MeshAttribute.Vertex` and `MeshAttribute.Face` are not supported and throw an error.
* @param vertexIds Vertices that identify each corner.
* @param faceIds Faces that identify each corner. Must be the same length as `vertexIds`.
* @returns Array of attribute IDs at each corner, in the same order as the inputs.
*/
BatchGetVertexFaceAttributes(this: EditableMesh, attr: CastsToEnum, vertexIds: Array, faceIds: Array): Array;
/**
* Removes a batch of faces.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchRemove)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceIds Face IDs to remove. An invalid or already-removed ID throws an error and removes nothing; duplicate IDs are collapsed to a single removal.
*/
BatchRemove(this: EditableMesh, ids: Array): void;
/**
* Sets the per-corner attribute IDs for each face in a batch.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchSetFaceAttributes)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceIds Face IDs to update. Must be the same length as `attrIdArrays`.
* @param attrIdArrays 2D array. `attrIdArrays[i]` is the list of attribute IDs for the corners of `faceIds[i]`, in order. Each inner array must have one entry per corner of the face. All IDs must be of the same attribute type — vertex, normal, color, or UV; mixing types (or passing another ID type) throws an error.
*/
BatchSetFaceAttributes(this: EditableMesh, faceIds: Array, attrIdArrays: Array): void;
/**
* Writes attribute values to a batch of mesh element IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchSetValues)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param ids IDs of the elements to write. All must be the same attribute type — vertex, normal, color, or UV. The attribute is determined by the ID type, so no `MeshAttribute` argument is needed. Mixing types, or passing face or bone IDs, throws an error.
* @param values Values to assign. Type depends on the ID type: `Vector3` for vertex or normal IDs, `Vector2` for UV IDs, `Color3` or a number for color IDs. Pass `nil` for normal IDs to reset each normal to auto-computed values, equivalent to calling `ResetNormal()` on each.
*/
BatchSetValues(this: EditableMesh, ids: Array, values: Array): void;
/**
* Sets the attribute at a specific corner for each vertex–face pair in a batch.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#BatchSetVertexFaceAttributes)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexIds Vertex IDs that identify each corner.
* @param faceIds Face IDs that identify each corner. Must be the same length as `vertexIds`.
* @param attrIds Attribute IDs to assign, one per pair; must be the same length as `vertexIds`. All must be the same attribute type — normal, color, or UV; passing a vertex or face ID throws an error.
*/
BatchSetVertexFaceAttributes(this: EditableMesh, vertexIds: Array, faceIds: Array, attrIds: Array): void;
/**
* Clears all of an EditableMesh's geometry.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#Clear)
* @param this Object which allows for the runtime creation and manipulation of meshes.
*/
Clear(this: EditableMesh): void;
/**
* Destroys the mesh.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#Destroy)
* @param this Object which allows for the runtime creation and manipulation of meshes.
*/
Destroy(this: EditableMesh): void;
/**
* Finds the closest point on the mesh's surface.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#FindClosestPointOnSurface)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param point Point position in the mesh's local object space.
* @returns Tuple of the face ID, point on the mesh in local object space, and the barycentric coordinate of the position within the face.
*/
FindClosestPointOnSurface(this: EditableMesh, point: Vector3): LuaTuple<[
number,
Vector3,
Vector3
]>;
/**
* Finds the closest vertex to a specific point in space.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#FindClosestVertex)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param toThisPoint Point position in the mesh's local object space.
* @returns Closest vertex ID to the specified point in space.
*/
FindClosestVertex(this: EditableMesh, toThisPoint: Vector3): number;
/**
* Finds all vertices within a specific sphere.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#FindVerticesWithinSphere)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param center Center of the sphere in the mesh's local object space.
* @param radius Radius of the sphere.
* @returns List of vertex IDs within the requested sphere.
*/
FindVerticesWithinSphere(this: EditableMesh, center: Vector3, radius: number): Array;
/**
* Returns a list of faces adjacent to a given face.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetAdjacentFaces)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to get adjacent faces.
* @returns List of face IDs adjacent to the given face.
*/
GetAdjacentFaces(this: EditableMesh, faceId: number): Array;
/**
* Returns a list of vertices adjacent to a given vertex.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetAdjacentVertices)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID around which to get adjacent vertices.
* @returns List of IDs of adjacent vertices around the given vertex ID.
*/
GetAdjacentVertices(this: EditableMesh, vertexId: number): Array;
/**
* Finds the bone ID of the bone with the given name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBoneByName)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneName Bone name to search for.
* @returns Bone ID of the bone with the given name.
*/
GetBoneByName(this: EditableMesh, boneName: string): number;
/**
* Returns the initial `CFrame` of the bone in the bind pose of the mesh.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBoneCFrame)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to get the `CFrame`.
* @returns Initial `CFrame` of the bone in the bind pose of the mesh, in the mesh's local space.
*/
GetBoneCFrame(this: EditableMesh, boneId: number): CFrame;
/**
* Returns `true` if the bone is virtual.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBoneIsVirtual)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to get whether the bone is virtual.
* @returns Whether the bone with the given bone ID is virtual. Virtual bones can only be bound to a `FaceControls` instance.
*/
GetBoneIsVirtual(this: EditableMesh, boneId: number): boolean;
/**
* Returns the bone name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBoneName)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to get the name.
* @returns Name of the bone with the given bone ID.
*/
GetBoneName(this: EditableMesh, boneId: number): string;
/**
* Returns the parent bone ID, if any.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBoneParent)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to get the parent.
* @returns Bone ID for the parent of the bone with the given bone ID. If there is no parent, returns `0`.
*/
GetBoneParent(this: EditableMesh, boneId: number): number;
/**
* Returns all bones of the mesh.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetBones)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of bone IDs.
*/
GetBones(this: EditableMesh): Array;
/**
* Returns the center of the mesh's axis-aligned bounding box.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetCenter)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns Center of the bounding box of the `EditableMesh`.
*/
GetCenter(this: EditableMesh): Vector3;
/**
* Returns the color for the given color ID.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID for which to get the color.
* @returns Color for the requested color ID.
*/
GetColor(this: EditableMesh, colorId: number): Color3 | undefined;
/**
* Returns the color alpha (transparency) at the given color ID.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetColorAlpha)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID for which to get the alpha.
* @returns Color alpha at the request color ID.
*/
GetColorAlpha(this: EditableMesh, colorId: number): number | undefined;
/**
* Returns all colors of the mesh.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetColors)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of color IDs.
*/
GetColors(this: EditableMesh): Array;
/**
* Returns the face's color IDs for the vertices on the face.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFaceColors)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to get the color IDs.
* @returns List of color IDs used for the vertices on the given face.
*/
GetFaceColors(this: EditableMesh, faceId: number): Array;
/**
* Returns the face's normal IDs for the vertices on the face.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFaceNormals)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to get the normal IDs.
* @returns List of normal IDs used for the vertices on the given face.
*/
GetFaceNormals(this: EditableMesh, faceId: number): Array;
/**
* Returns the face's UV IDs for the vertices on the face.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFaceUVs)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to get the UV IDs.
* @returns List of UV IDs used for the vertices on the given face.
*/
GetFaceUVs(this: EditableMesh, faceId: number): Array;
/**
* Returns the face's vertex IDs.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFaceVertices)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to get the vertex IDs.
* @returns List of vertex IDs around the given face.
*/
GetFaceVertices(this: EditableMesh, faceId: number): Array;
/**
* Returns all faces of the mesh.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFaces)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of face IDs.
*/
GetFaces(this: EditableMesh): Array;
/**
* **Deprecated:** This method is deprecated. Do not use it for new work.
*
* Returns a list of faces that use a given attribute ID.
*
* - **ThreadSafety**: Safe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacesWithAttribute)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param id Attribute ID for which to find faces that use it.
* @returns List of face IDs which use the given attribute ID.
*
* @deprecated
*/
GetFacesWithAttribute(this: EditableMesh, id: number): Array;
/**
* Returns an array of face IDs that use the given color ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacesWithColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID to find faces for.
* @returns List of face IDs that use the provided color ID.
*/
GetFacesWithColor(this: EditableMesh, colorId: number): Array;
/**
* Returns an array of face IDs that use the given normal ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacesWithNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normalId Normal ID to find faces for.
* @returns List of face IDs that use the provided normal ID.
*/
GetFacesWithNormal(this: EditableMesh, normalId: number): Array;
/**
* Returns an array of face IDs that use the given UV ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacesWithUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param uvId UV ID to find faces for.
* @returns List of face IDs that use the provided UV ID.
*/
GetFacesWithUV(this: EditableMesh, uvId: number): Array;
/**
* Returns bone IDs and bone `CFrames` for all bones in a specific FACS corrective pose.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacsCorrectivePose)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param actions Array or 2 or 3 `FacsActionUnit` values that specify a corrective pose.
* @returns Array of bone IDs and corresponding array of bone `CFrames`.
*/
GetFacsCorrectivePose(this: EditableMesh, actions: Array): unknown;
/**
* Returns all FACS corrective poses that are in use.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacsCorrectivePoses)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns Array of corrective poses. Each corrective pose is specified by a small array of 2 or 3 `FacsActionUnit` values.
*/
GetFacsCorrectivePoses(this: EditableMesh): Array;
/**
* Returns bone IDs and bone `CFrames` for all bones in a specific FACS action unit.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacsPose)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param action FACS action unit for which to get the pose.
* @returns Array of bone IDs and corresponding array of bone `CFrame`.
*/
GetFacsPose(this: EditableMesh, action: CastsToEnum): unknown;
/**
* Returns all FACS action units that have poses defined.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetFacsPoses)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns Array of `FacsActionUnit`, one for each FACS action unit that has a pose defined.
*/
GetFacsPoses(this: EditableMesh): Array;
/**
* Returns the normal vector for the given normal ID.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normalId Normal ID for which to get the normal vector.
* @returns Normal vector at the requested normal ID.
*/
GetNormal(this: EditableMesh, normalId: number): Vector3 | undefined;
/**
* Returns all normals of the mesh.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetNormals)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of normal IDs.
*/
GetNormals(this: EditableMesh): Array;
/**
* Gets the position of a vertex.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetPosition)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID for which to get the position.
* @returns Position of a vertex in the mesh's local object space.
*/
GetPosition(this: EditableMesh, vertexId: number): Vector3;
/**
* Returns the size of the mesh's axis-aligned bounding box.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetSize)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns Size of the `EditableMesh`.
*/
GetSize(this: EditableMesh): Vector3;
/**
* Returns UV coordinates at the given UV ID.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param uvId UV ID for which to get the UV coordinate.
* @returns UV coordinates at the requested UV ID.
*/
GetUV(this: EditableMesh, uvId: number): Vector2 | undefined;
/**
* Returns all UVs of the mesh.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetUVs)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of UV IDs.
*/
GetUVs(this: EditableMesh): Array;
/**
* Returns skinning blend weights for each bone that is associated with the vertex.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexBoneWeights)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID for which to get the associated bone weights.
* @returns Skinning blend weights for each bone that is associated with the vertex.
*/
GetVertexBoneWeights(this: EditableMesh, vertexId: number): Array;
/**
* Returns all bone IDs that are associated with the vertex for skinning.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexBones)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID for which to get the associated bones.
* @returns Bone IDs associated with the vertex for skinning.
*/
GetVertexBones(this: EditableMesh, vertexId: number): Array;
/**
* Returns the color IDs of the faces attached to the given vertex.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexColors)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID to find color IDs.
* @returns Array of color IDs of faces attached to the given vertex.
*/
GetVertexColors(this: EditableMesh, vertexId: number): Array;
/**
* Returns the color ID of a vertex/face pair.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexFaceColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @returns Color ID of the vertex/face pair.
*/
GetVertexFaceColor(this: EditableMesh, vertexId: number, faceId: number): number;
/**
* Returns the normal ID of a vertex/face pair.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexFaceNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @returns Normal ID of the vertex/face pair.
*/
GetVertexFaceNormal(this: EditableMesh, vertexId: number, faceId: number): number;
/**
* Returns the UV ID of a vertex/face pair.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexFaceUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @returns UV ID of the vertex/face pair.
*/
GetVertexFaceUV(this: EditableMesh, vertexId: number, faceId: number): number;
/**
* Returns the face IDs of the faces attached to the given vertex.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexFaces)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID to find faces for.
* @returns Array of face IDs attached to the given vertex.
*/
GetVertexFaces(this: EditableMesh, vertexId: number): Array;
/**
* Returns the normal IDs of the faces attached to the given vertex.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexNormals)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID to find normal IDs.
* @returns Array of normal IDs of faces attached to the given vertex.
*/
GetVertexNormals(this: EditableMesh, vertexId: number): Array;
/**
* Returns the UV IDs of the faces attached to the given vertex.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertexUVs)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID to find UV IDs.
* @returns Array of UV IDs of faces attached to the given vertex.
*/
GetVertexUVs(this: EditableMesh, vertexId: number): Array;
/**
* Returns all vertices as a list of vertex IDs.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVertices)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns List of vertex IDs.
*/
GetVertices(this: EditableMesh): Array;
/**
* **Deprecated:** This method is deprecated. Do not use it for new work.
*
* Returns a list of vertices that use a given attribute ID.
*
* - **ThreadSafety**: Safe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVerticesWithAttribute)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param id Attribute ID for which to find vertices that use it.
* @returns List of vertex IDs which use the given attribute ID.
*
* @deprecated
*/
GetVerticesWithAttribute(this: EditableMesh, id: number): Array;
/**
* Returns an array of vertex IDs that use the given color ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVerticesWithColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID to find faces for.
* @returns List of face IDs that use the provided color ID.
*/
GetVerticesWithColor(this: EditableMesh, colorId: number): Array;
/**
* Returns an array of vertex IDs that use the given normal ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVerticesWithNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normalId Normal ID to find vertices for.
* @returns List of vertex IDs that use the provided normal ID.
*/
GetVerticesWithNormal(this: EditableMesh, normalId: number): Array;
/**
* Returns an array of vertex IDs that use the given UV ID.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#GetVerticesWithUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param uvId UV ID to find vertices for.
* @returns List of vertex IDs that use the provided UV ID.
*/
GetVerticesWithUV(this: EditableMesh, uvId: number): Array;
/**
* Returns a string describing an ID, useful for debugging purposes.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#IdDebugString)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param id ID for which to return a debugging information string.
* @returns String that describes the ID in human-readable format.
*/
IdDebugString(this: EditableMesh, id: number): string;
/**
* Merges vertices that touch together.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#MergeVertices)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param mergeTolerance The distance at which the vertices are considered to touch each other.
* @returns A mapping of old vertex ID to new vertex ID for vertices that have been merged.
*/
MergeVertices(this: EditableMesh, mergeTolerance: number): unknown;
/**
* Casts a ray and returns the intersection point, face ID, and barycentric coordinates.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#RaycastLocal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param origin Origin of the ray in the mesh's local object space.
* @param direction Direction of the ray.
* @returns Tuple of the point of intersection, face ID, and barycentric coordinates.
*/
RaycastLocal(this: EditableMesh, origin: Vector3, direction: Vector3): LuaTuple<[
number,
Vector3,
Vector3
]>;
/**
* Removes a bone using its bone ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#RemoveBone)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID of the bone to remove.
*/
RemoveBone(this: EditableMesh, boneId: number): void;
/**
* Removes a face using its face ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#RemoveFace)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID of the face to remove.
*/
RemoveFace(this: EditableMesh, faceId: number): void;
/**
* Removes all unused vertices, normals, UVs, and colors, and returns the removed IDs.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#RemoveUnused)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @returns All of the removed IDs.
*/
RemoveUnused(this: EditableMesh): Array;
/**
* Reset this normal ID to be automatically calculated.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#ResetNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normalId Normal ID to reset.
*/
ResetNormal(this: EditableMesh, normalId: number): void;
/**
* Set the initial `CFrame` for a bone in the mesh's bind pose.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetBoneCFrame)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to set the initial `CFrame`.
* @param cframe Initial `CFrame` for the bone in the mesh's bind pose, in the mesh's local space.
*/
SetBoneCFrame(this: EditableMesh, boneId: number, cframe: CFrame): void;
/**
* Set whether a bone is virtual.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetBoneIsVirtual)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to set whether the bone is virtual.
* @param virtual Whether the bone should be virtual.
*/
SetBoneIsVirtual(this: EditableMesh, boneId: number, virtual: boolean): void;
/**
* Sets the name for a bone.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetBoneName)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to set the name.
* @param name Bone name to set.
*/
SetBoneName(this: EditableMesh, boneId: number, name: string): void;
/**
* Set a parent for a bone.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetBoneParent)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param boneId Bone ID for which to set the parent.
* @param parentBoneId Parent bone ID.
*/
SetBoneParent(this: EditableMesh, boneId: number, parentBoneId: number): void;
/**
* Sets the color for a color ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID for which to set the color.
* @param color Color to set.
*/
SetColor(this: EditableMesh, colorId: number, color: Color3): void;
/**
* Sets the color alpha (transparency) for a color ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetColorAlpha)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param colorId Color ID for which to set the color alpha.
* @param alpha Alpha to set.
*/
SetColorAlpha(this: EditableMesh, colorId: number, alpha: number): void;
/**
* Sets the face's vertex colors to new color IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFaceColors)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to update the vertex colors.
* @param ids List of new color IDs to use for the given face's vertices.
*/
SetFaceColors(this: EditableMesh, faceId: number, ids: Array): void;
/**
* Sets the face's vertex normals to new normal IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFaceNormals)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to update the vertex normals.
* @param ids List of new normal IDs to use for the given face's vertices.
*/
SetFaceNormals(this: EditableMesh, faceId: number, ids: Array): void;
/**
* Sets the face's vertex UVs to new UV IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFaceUVs)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to update the vertex UVs.
* @param ids List of new UV IDs to use for the given face's vertices.
*/
SetFaceUVs(this: EditableMesh, faceId: number, ids: Array): void;
/**
* Sets the face's vertices to new vertex IDs.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFaceVertices)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param faceId Face ID for which to update the vertices.
* @param ids List of new vertex IDs to use for the given face.
*/
SetFaceVertices(this: EditableMesh, faceId: number, ids: Array): void;
/**
* Set `CFrame` for an individual bone in a specific FACS action unit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFacsBonePose)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param action FACS action unit for which to set the pose.
* @param boneId Bone to set a `CFrame` for this pose.
* @param cframe `CFrame` which transforms the bone from the initial bone `CFrame` in the bind pose of the mesh to the combined bone `CFrame` for this pose. All `CFrames` are in the mesh's local space.
*/
SetFacsBonePose(this: EditableMesh, action: CastsToEnum, boneId: number, cframe: CFrame): void;
/**
* Set pose for all bones in a specific FACS corrective pose.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFacsCorrectivePose)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param actions Array or 2 or 3 `FacsActionUnit` values to apply as a corrective pose.
* @param boneIds Bones to set a `CFrame` for this pose.
* @param cframes `CFrame` transforms for the bones in this corrective pose. Each bone `CFrame` transforms the bone from the initial bone `CFrame` in the bind pose of the mesh to the combined bone `CFrame` for this pose. All `CFrames` are in the mesh's local space.
*/
SetFacsCorrectivePose(this: EditableMesh, actions: Array, boneIds: Array, cframes: Array): void;
/**
* Set pose for all bones in a specific FACS action unit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetFacsPose)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param action FACS action unit to set the pose for.
* @param boneIds Bones for which to set a `CFrame` for this pose.
* @param cframes `CFrame` transforms for the bones in this pose. Each bone `CFrame` transforms the bone from the initial bone `CFrame` in the bind pose of the mesh to the combined bone `CFrame` for this pose. All `CFrames` are in the mesh's local space.
*/
SetFacsPose(this: EditableMesh, action: CastsToEnum, boneIds: Array, cframes: Array): void;
/**
* Set the normal for a normal ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param normalId Normal ID for which to set the normal vector.
* @param normal Normal vector to set.
*/
SetNormal(this: EditableMesh, normalId: number, normal: Vector3): void;
/**
* Sets a vertex position in the mesh's local object space.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetPosition)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID of the vertex to position.
* @param p Position in the mesh's local object space.
*/
SetPosition(this: EditableMesh, vertexId: number, p: Vector3): void;
/**
* Sets UV coordinates for a UV ID.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param uvId UV ID for which to set the UV coordinates.
* @param uv UV coordinates.
*/
SetUV(this: EditableMesh, uvId: number, uv: Vector2): void;
/**
* Sets skinning blend weights for each bone associated with the vertex.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetVertexBoneWeights)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID on which to set skinning blend weights.
* @param boneWeights Skinning blend weights to set on the vertex.
*/
SetVertexBoneWeights(this: EditableMesh, vertexId: number, boneWeights: Array): void;
/**
* Assign a list of bones with the vertex for skinning.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetVertexBones)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID to set vertex skinning bones.
* @param boneIDs Bone IDs to use with this vertex for skinning.
*/
SetVertexBones(this: EditableMesh, vertexId: number, boneIDs: Array): void;
/**
* Sets the color ID of a vertex/face pair.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetVertexFaceColor)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @param colorId Color ID to set for the vertex/face pair.
*/
SetVertexFaceColor(this: EditableMesh, vertexId: number, faceId: number, colorId: number): void;
/**
* Sets the normal ID of a vertex/face pair.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetVertexFaceNormal)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @param normalId Normal ID to set for the vertex/face pair.
*/
SetVertexFaceNormal(this: EditableMesh, vertexId: number, faceId: number, normalId: number): void;
/**
* Sets the UV ID of a vertex/face pair.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#SetVertexFaceUV)
* @param this Object which allows for the runtime creation and manipulation of meshes.
* @param vertexId Vertex ID.
* @param faceId Face ID.
* @param uvId UV ID to set for the vertex/face pair.
*/
SetVertexFaceUV(this: EditableMesh, vertexId: number, faceId: number, uvId: number): void;
/**
* Splits all faces on the mesh to be triangles.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/EditableMesh#Triangulate)
* @param this Object which allows for the runtime creation and manipulation of meshes.
*/
Triangulate(this: EditableMesh): void;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ExecutedRemoteCommand)
*/
interface ExecutedRemoteCommand extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_ExecutedRemoteCommand: unique symbol;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ExecutedRemoteCommand#RunMoreCode)
*/
RunMoreCode(this: ExecutedRemoteCommand, code: string, args: unknown): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ExecutedRemoteCommand#SendUpdate)
*/
SendUpdate(this: ExecutedRemoteCommand, args: unknown): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ExecutedRemoteCommand#Stop)
*/
Stop(this: ExecutedRemoteCommand): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ExecutedRemoteCommand#ReceivedUpdate)
*/
readonly ReceivedUpdate: RBXScriptSignal<(args: unknown) => void>;
}
/**
* `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
*
* - **Tags**: NotCreatable, NotBrowsable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance)
*/
interface Instance extends RBXObject {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Instance: unique symbol;
/**
* Determines if an `Instance` and its descendants can be cloned using `Instance:Clone()`, and can be saved/published.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Archivable)
*/
Archivable: boolean;
/**
* The set of capabilities allowed to be used for scripts inside this container.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Capabilities)
*/
Capabilities: SecurityCapabilities;
/**
* A non-unique identifier of the `Instance`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Name)
*/
Name: string;
/**
* Determines the hierarchical parent of the `Instance`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Parent)
*/
Parent: Instance | undefined;
/**
* When enabled, the instance can only access abilities in its `Capabilities` list.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Sandboxed)
*/
Sandboxed: boolean;
/**
* Applies a tag to the instance.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#AddTag)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param tag The tag to apply to the instance.
*/
AddTag(this: Instance, tag: string): void;
/**
* This method destroys all of an instance's children.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#ClearAllChildren)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
*/
ClearAllChildren(this: Instance): void;
/**
* Create a copy of an instance and all its descendants, ignoring instances that are not `Archivable`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Clone)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns A copy of the instance, or `nil` if the instance is not `Archivable`.
*/
Clone(this: T): T;
/**
* Sets the `Instance.Parent` property to `nil`, locks the `Instance.Parent` property, disconnects all connections, and calls `Destroy()` on all children.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Destroy)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
*/
Destroy(this: Instance): void;
/**
* Returns the first ancestor of the `Instance` whose `Instance.Name` is equal to the given name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstAncestor)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param name The `Instance.Name` to be looked for.
* @returns The `Instance` found.
*/
FindFirstAncestor(this: Instance, name: string): Instance | undefined;
/**
* Returns the first ancestor of the `Instance` whose `Object.ClassName` is equal to the given className.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstAncestorOfClass)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param className The `Object.ClassName` to be looked for.
* @returns The `Instance` found.
*/
FindFirstAncestorOfClass(this: Instance, className: T): Instances[T] | undefined;
/**
* Returns the first ancestor of the `Instance` for whom `Object:IsA()` returns true for the given className.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstAncestorWhichIsA)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param className The `Object.ClassName` to be looked for.
* @returns The `Instance` found.
*/
FindFirstAncestorWhichIsA(this: Instance, className: T): Instances[T] | undefined;
/**
* Returns the first child of the `Instance` found with the given name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstChild)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param name The `Instance.Name` to be searched for.
* @param recursive Whether or not the search should be conducted recursively.
* @returns The `Instance` found.
*/
FindFirstChild(this: Instance, childName: string | number, recursive?: boolean): Instance | undefined;
/**
* Returns the first child of the `Instance` whose `ClassName` is equal to the given class name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstChildOfClass)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param className The `Object.ClassName` to be looked for.
* @returns The `Instance` found.
*/
FindFirstChildOfClass(this: Instance, className: T): Instances[T] | undefined;
/**
* Returns the first child of the `Instance` for whom `Object:IsA()` returns true for the given className.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstChildWhichIsA)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param className The `Object.ClassName` to be searched for.
* @param recursive Whether or not the search should be conducted recursively.
* @returns The `Instance` found.
*/
FindFirstChildWhichIsA(this: Instance, className: T, recursive?: boolean): Instances[T] | undefined;
/**
* Returns the first descendant found with the given `Instance.Name`.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#FindFirstDescendant)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param name The `Instance.Name` to search for.
* @returns The `Instance` found.
*/
FindFirstDescendant(this: Instance, name: string): Instance | undefined;
/**
* Returns the `Actor` associated with the Instance, if any.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetActor)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns The `Actor` found.
*/
GetActor(this: Instance): Actor | undefined;
/**
* Returns the value which has been assigned to the given attribute name.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetAttribute)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param attribute The name of the attribute being retrieved.
* @returns The value which has been assigned to the given attribute name. If no attribute has been assigned, `nil` is returned.
*/
GetAttribute(this: Instance, attribute: string): AttributeValue | undefined;
/**
* Returns an event that fires when the given attribute changes.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetAttributeChangedSignal)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param attribute The name of the specified attribute for which the change signal is being returned.
* @returns An event that fires when the given attribute changes.
*/
GetAttributeChangedSignal(this: Instance, attribute: string): RBXScriptSignal;
/**
* Returns a dictionary of the instance's attributes.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetAttributes)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns A dictionary of string → variant pairs for each attribute where the string is the name of the attribute and the variant is a non-nil value.
*/
GetAttributes(this: Instance): Map;
/**
* Returns an array containing all of the instance's children.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetChildren)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns An array containing the instance's children.
*/
GetChildren(this: Instance): Array;
/**
* Returns an array containing all of the descendants of the instance.
*
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetDescendants)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns An array containing the instance's descendants.
*/
GetDescendants(this: Instance): Array;
/**
* Returns a string describing the instance's ancestry.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetFullName)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns The full name of the `Instance`.
*/
GetFullName(this: Instance): string;
/**
* Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetStyled)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param name Name of the property to query.
* @param selector Optional selector for the pseudo instance you are targeting on the instance.
* @returns The styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
*/
GetStyled(this: Instance, name: string, selector?: string): unknown;
/**
* Returns an event that fires when the given style property changes on the instance.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetStyledPropertyChangedSignal)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param property Name of the style property for which to listen for changes.
* @returns Event that fires when the given style property changes.
*/
GetStyledPropertyChangedSignal(this: Instance, property: string): RBXScriptSignal;
/**
* Gets an array of all tags applied to the instance.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#GetTags)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @returns An array of strings, each representing a tag applied to the instance.
*/
GetTags(this: Instance): Array;
/**
* Check whether the instance has a given tag.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#HasTag)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param tag The tag to check for on the instance.
* @returns `true` if the instance has the given tag, `false` otherwise.
*/
HasTag(this: Instance, tag: string): boolean;
/**
* Returns true if an `Instance` is an ancestor of the given descendant.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#IsAncestorOf)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param descendant The descendant `Instance`.
* @returns True if the `Instance` is an ancestor of the given descendant.
*/
IsAncestorOf(this: Instance, descendant: Instance): boolean;
/**
* Returns `true` if an `Instance` is a descendant of the given ancestor.
*
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#IsDescendantOf)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param ancestor The ancestor `Instance`.
* @returns True if the `Instance` is a descendant of the given ancestor.
*/
IsDescendantOf(this: Instance, ancestor: Instance): boolean;
/**
* Returns `true` if the value stored in the specified property is not equal to the code-instantiated default.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#IsPropertyModified)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param property Name of the property to query.
* @returns Boolean indicating whether the property is modified from its code‑instantiated default.
*/
IsPropertyModified(this: Instance, property: string): boolean;
/**
* Returns an array containing all descendants of the instance that match the `selector` string.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#QueryDescendants)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param selector Selector string used to filter elements.
* @returns An array of instances (empty if nothing matched the selector).
*/
QueryDescendants(this: Instance, selector: Selector.ValidateSelector extends S ? S : Selector.ValidateSelector): string extends S ? Array : Array>;
/**
* Removes a tag from the instance.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#RemoveTag)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param tag The tag to remove from the instance.
*/
RemoveTag(this: Instance, tag: string): void;
/**
* Resets a property to its default value.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#ResetPropertyToDefault)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param property Name of the property to reset.
*/
ResetPropertyToDefault(this: Instance, property: string): void;
/**
* Sets the attribute with the given name to the given value.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#SetAttribute)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param attribute The name of the attribute being set.
* @param value The value to set the specified attribute to.
*/
SetAttribute(this: Instance, attribute: string, value: SetAttributeValue | undefined): void;
/**
* Returns the child of the `Instance` with the given name. If the child does not exist, it will yield the current thread until it does.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState, CanYield
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#WaitForChild)
* @param this `Instance` is the base class for all classes in the Roblox class hierarchy which can be part of the `DataModel` tree.
* @param childName The `Instance.Name` to be looked for.
* @param timeOut An optional time out parameter.
* @returns The `Instance` found.
*/
WaitForChild(this: Instance, childName: string | number): Instance;
WaitForChild(this: Instance, childName: string | number, timeOut: number): Instance | undefined;
/**
* Fires when the `Instance.Parent` property of this object or one of its ancestors is changed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#AncestryChanged)
*/
readonly AncestryChanged: RBXScriptSignal<(child: Instance, parent: Instance | undefined) => void>;
/**
* Fires whenever an attribute is changed on the `Instance`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#AttributeChanged)
*/
readonly AttributeChanged: RBXScriptSignal<(attribute: string) => void>;
/**
* Fires after an object is parented to this `Instance`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#ChildAdded)
*/
readonly ChildAdded: RBXScriptSignal<(child: Instance) => void>;
/**
* Fires after a child is removed from this `Instance`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#ChildRemoved)
*/
readonly ChildRemoved: RBXScriptSignal<(child: Instance) => void>;
/**
* Fires after a descendant is added to the `Instance`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#DescendantAdded)
*/
readonly DescendantAdded: RBXScriptSignal<(descendant: Instance) => void>;
/**
* Fires immediately before a descendant of the `Instance` is removed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#DescendantRemoving)
*/
readonly DescendantRemoving: RBXScriptSignal<(descendant: Instance) => void>;
/**
* Fires immediately before (or is deferred until after) the instance is destroyed via `Instance:Destroy()`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#Destroying)
*/
readonly Destroying: RBXScriptSignal<() => void>;
/**
* Fires whenever any style property is changed on the instance, including when a property is set to `nil`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Instance#StyledPropertiesChanged)
*/
readonly StyledPropertiesChanged: RBXScriptSignal<() => void>;
}
/**
* Describes the appearance of an `Accessory` for the `HumanoidDescription`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription)
*/
interface AccessoryDescription extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AccessoryDescription: unique symbol;
/**
* The `AccessoryType` of the `Accessory` referred to by this description.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#AccessoryType)
*/
AccessoryType: Enum.AccessoryType;
/**
* The asset ID that should be applied when applying this `AccessoryDescription`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#AssetId)
*/
AssetId: number;
/**
* A reference to the `Instance` that should be applied when applying this `AccessoryDescription`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Instance)
*/
Instance: Instance | undefined;
/**
* Whether the `Accessory` is layered or rigid.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#IsLayered)
*/
IsLayered: boolean;
/**
* The layered clothing sort order, if the `Accessory` is layered.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Order)
*/
Order: number;
/**
* The accessory adjustment position offset, if the `Accessory` is rigid.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Position)
*/
Position: Vector3;
/**
* **Deprecated:**
*
* The layered clothing puffiness, if the `Accessory` is layered.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Puffiness)
*
* @deprecated
*/
Puffiness: number;
/**
* The accessory adjustment rotation offset, if the `Accessory` is rigid.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Rotation)
*/
Rotation: Vector3;
/**
* The accessory adjustment scale, if the `Accessory` is rigid.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#Scale)
*/
Scale: Vector3;
/**
* Returns the applied `Accessory`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccessoryDescription#GetAppliedInstance)
* @param this Describes the appearance of an `Accessory` for the `HumanoidDescription`.
* @returns The applied `Accessory`.
*/
GetAppliedInstance(this: AccessoryDescription): Instance | undefined;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AccountService)
*/
interface AccountService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AccountService: unique symbol;
}
/**
* An object that can attach to a player's character.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement)
*/
interface Accoutrement extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Accoutrement: unique symbol;
/**
* Sets the offset position of the object on the Player.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement#AttachmentForward)
*/
AttachmentForward: Vector3;
/**
* The exact CFrame of the Accoutrement.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement#AttachmentPoint)
*/
AttachmentPoint: CFrame;
/**
* Sets the position of the object on the Player.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement#AttachmentPos)
*/
AttachmentPos: Vector3;
/**
* Sets the offset position of the object on the Player.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement#AttachmentRight)
*/
AttachmentRight: Vector3;
/**
* Sets the offset position of the object on the Player.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accoutrement#AttachmentUp)
*/
AttachmentUp: Vector3;
}
/**
* An item that a Character can wear.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accessory)
*/
interface Accessory extends Accoutrement {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Accessory: unique symbol;
/**
* Specifies the AccessoryType of the Accessory (eg. Hat, Tshirt, Waist).
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Accessory#AccessoryType)
*/
AccessoryType: Enum.AccessoryType;
}
/**
* **Deprecated:** This class has been superseded by the `Accessory` class. Do not use it for new work.
*
* A deprecated accessory container superseded by `Accessory`.
*
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Hat)
*
* @deprecated
*/
interface Hat extends Accoutrement {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Hat: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AchievementService)
*/
interface AchievementService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AchievementService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/ActivityHistoryEventService)
*/
interface ActivityHistoryEventService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_ActivityHistoryEventService: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement)
*/
interface AdPlacement extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AdPlacement: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#ActivationInstance)
*/
ActivationInstance: Instance | undefined;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#AdFormat)
*/
AdFormat: Enum.AdFormat;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#PlacementId)
*/
PlacementId: number;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#RewardId)
*/
readonly RewardId: string;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#RewardImageContent)
*/
readonly RewardImageContent: Content;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#RewardName)
*/
readonly RewardName: string;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPlacement#Visible)
*/
readonly Visible: boolean;
}
/**
* A portal that teleports players to a sponsored experience as part of immersive ads.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPortal)
*/
interface AdPortal extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AdPortal: unique symbol;
/**
* Indicates whether the portal is currently active and able to teleport players.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdPortal#Status)
*/
readonly Status: Enum.AdUnitStatus;
}
/**
* The service responsible for in-experience advertising.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService)
*/
interface AdService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AdService: unique symbol;
/**
* Creates an `AdReward` to give users who watch a video ad.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#CreateAdRewardFromDevProductId)
* @param this The service responsible for in-experience advertising.
* @param devProductId The ID of the developer product you want to grant as a reward.
* @returns An `AdReward` configured as a developer product reward for the specified product.
*/
CreateAdRewardFromDevProductId(this: AdService, devProductId: number): AdReward;
/**
* Registers an ad disclosure button for an [ad integration](../../../production/promotion/ad-integrations.md).
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#RegisterDisclosureButton)
* @param this The service responsible for in-experience advertising.
* @param disclosureButton The `GuiButton` you want to mark as an ad integration disclosure. The `GuiButton` must follow labeling guidelines outlined [here](../../../production/promotion/ad-integrations.md#labeling-and-disclosure).
* @param adIntegrationPlacementId The ID of the placement that this disclosure is attached to.
*/
RegisterDisclosureButton(this: AdService, disclosureButton: GuiButton, adIntegrationPlacementId: string): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#RegisterImpressionSource)
*/
RegisterImpressionSource(this: AdService, instance: Instance, adIntegrationPlacementId: string): void;
/**
* **Deprecated:** `ShowVideoAd` has been decommissioned and is no longer operational.
*
* Show mobile video advertisements.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#ShowVideoAd)
* @param this The service responsible for in-experience advertising.
*
* @deprecated
*/
ShowVideoAd(this: AdService): void;
/**
* Stops tracking an instance that was previously registered with `RegisterAdOpportunityAsync`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#UnregisterAdOpportunity)
* @param this The service responsible for in-experience advertising.
* @param instance The instance to stop tracking. This should be an instance that you previously passed to `RegisterAdOpportunityAsync()`.
*/
UnregisterAdOpportunity(this: AdService, instance: Instance): void;
/**
* Checks if an ad with the specified format is available to be shown to the `LocalPlayer`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#GetAdAvailabilityNowAsync)
* @param this The service responsible for in-experience advertising.
* @param adFormat The format of the requested ad. For example, `AdFormat.RewardedVideo`.
* @returns A dictionary that looks like `{ AdAvailabilityResult: Enum.AdAvailabilityResult }`.
*/
GetAdAvailabilityNowAsync(this: AdService, adFormat: CastsToEnum): object;
/**
* Checks a `Player`'s eligibility to be shown an [ad integration](../../../production/promotion/ad-integrations.md) campaign.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#GetCampaignEligibilityAsync)
* @param this The service responsible for in-experience advertising.
* @param campaignId The ID of the campaign that you want to check a `Player`'s eligibility for.
* @param player The `Player` you want to check eligibility for. If omitted, it will default to the `LocalPlayer`. On the server, `player` argument is required.
* @returns A dictionary that looks like `{ IsEligible: boolean }`.
*/
GetCampaignEligibilityAsync(this: AdService, campaignId: string, player?: Player): object;
/**
* Tracks how many times a user had the chance to watch a video ad and the rate at which they actually watched the ad.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#RegisterAdOpportunityAsync)
* @param this The service responsible for in-experience advertising.
* @param instance The `GuiButton` to track as a rewarded video ad opportunity. Must be a descendant of a `ScreenGui`.
* @param placementId The ID of the placement of the rewarded video ad inside the experience. Allows for reporting on the performance of individual ad placements.
*/
RegisterAdOpportunityAsync(this: AdService, instance: Instance, placementId?: number): void;
/**
* Plays the video ad to the current user inside the experience.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#ShowRewardedVideoAdAsync)
* @param this The service responsible for in-experience advertising.
* @param player The `Player` to trigger a rewarded video ad play for.
* @param reward The `AdReward` to grant the user after they view the ad.
* @param placementId The ID of the placement of the rewarded video ad inside the experience. Allows for reporting on the performance of individual ad placements.
* @returns The `ShowAdResult` of the client's ad presentation. You should not use this result to grant the reward. Instead, you should grant the reward from your `ProcessReceipt` implementation. For [developer products](../../../production/monetization/developer-products.md) earned through rewarded video ads, the `ProductPurchaseChannel` will be `ProductPurchaseChannel.AdReward`.
*/
ShowRewardedVideoAdAsync(this: AdService, player: Player, reward: AdReward, placementId?: number): Enum.ShowAdResult;
/**
* **Deprecated:** `VideoAdClosed` has been decommissioned and is no longer operational.
*
* Fires when an `AdService` video closes.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AdService#VideoAdClosed)
*
* @deprecated
*/
readonly VideoAdClosed: RBXScriptSignal<(adShown: boolean) => void>;
}
/**
* Collection of methods that allows you to track how users interact with your experiences.
*
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService)
*/
interface AnalyticsService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnalyticsService: unique symbol;
/**
* **Deprecated:** This deprecated function is a variant of `AnalyticsService:LogCustomEvent()` which should be used instead.
*
* Fires a custom event with a custom event name and data.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#FireCustomEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the custom event. `nil` if not player related.
* @param eventCategory User defined category. This should be the name of the event.
* @param customData Optional. User defined data, could be a string, a number or a table.
*
* @deprecated
*/
FireCustomEvent(this: AnalyticsService, player: Player | undefined, eventCategory: string, customData?: unknown): void;
/**
* **Deprecated:** This function has been deprecated in favor of more descriptive methods, including `AnalyticsService:LogCustomEvent()`, `AnalyticsService:LogEconomyEvent()`, and `AnalyticsService:LogProgressionEvent()`.
*
* Report a custom event to PlayFab.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#FireEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param category 'The category of event to report. Cannot contain the following characters: comma `,`, double quote `"` or newline characters `\r\n`'.
* @param value A value to be serialized and reported. Serialized length must not exceed 1 KiB, or 1024 bytes.
*
* @deprecated
*/
FireEvent(this: AnalyticsService, category: string, value: unknown): void;
/**
* **Deprecated:** This deprecated function is a variant of `AnalyticsService:LogEconomyEvent()` which should be used instead.
*
* Fire an event used to track player actions pertaining to the in-game
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#FireInGameEconomyEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the economy event.
* @param itemName The name of the item.
* @param economyAction Indicates the acquisition or spending of an in game resource.
* @param itemCategory A user defined category for items such as "Vehicle," "Weapon.".
* @param amount The amount of the currency.
* @param currency The currency used. Examples: 'gold', 'gems', 'life.'.
* @param location The event location. A dictionary that each key-value represents an entry of location data. The key-value is a string-string pair. With this you can query which are the most popular "stores" then maybe you want to increase/lower the price for the stores. See the example below:
* ```lua
* local location = { ["placeDesc"] = "Dungeon1", ["levelDesc"] = "level2", ["mapDesc"] = "LeftChamberMap", ["storeName"] = "DarkSmith", ["userDefinedKey"] = "0005" }
* ```
* @param customData Optional. User defined data, could be a string, a number or a table.
*
* @deprecated
*/
FireInGameEconomyEvent(this: AnalyticsService, player: Player | undefined, itemName: string, economyAction: CastsToEnum, itemCategory: string, amount: number, currency: string, location?: {
[index: string]: string;
}, customData?: unknown): void;
/**
* **Deprecated:** This method is deprecated. Do not use it for new work.
*
* Fire a log event used to track errors and warnings experienced by players.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#FireLogEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the error event, `nil` if not player related.
* @param logLevel The specified log level (e.g. Debug, Error).
* @param message User defined message.
* @param debugInfo Optional. A dictionary which contains predefined keys including "errorCode" and "stackTrace". Both keys values are strings. stackTrace is a traceback of the current function call stack.
* @param customData Optional. User defined data, could be a string, a number or a table.
*
* @deprecated
*/
FireLogEvent(this: AnalyticsService, player: Player | undefined, logLevel: CastsToEnum, message: string, debugInfo?: {
errorCode?: string;
stackTrace?: string;
}, customData?: unknown): void;
/**
* **Deprecated:** This deprecated function is a variant of `AnalyticsService:LogProgressionEvent()` which should be used instead.
*
* Fire an event used to track player progression through the game.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#FirePlayerProgressionEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the event.
* @param category A user defined category for progression.
* @param progressionStatus Indicates the status of the progression.
* @param location The event location. A dictionary that each key-value represents an entry of location data. The key-value is a string-string pair. With this developers can query where is the most frequent location for a specific progression event category. For example, the category could be "LevelUp".
* @param statistics Optional. A dictionary that each key-value represents an entry of statistics data that allows developers to track any specific data that they want to collect as players progress through their game. Key-Value is a string-number pair.
* @param customData Optional. User defined data, could be a string, a number or a table.
*
* @deprecated
*/
FirePlayerProgressionEvent(this: AnalyticsService, player: Player | undefined, category: string, progressionStatus: CastsToEnum, location?: {
[index: string]: string;
}, statistics?: {
[index: string]: number;
}, customData?: unknown): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#GetDurationLoggerTimestamp)
*/
GetDurationLoggerTimestamp(this: AnalyticsService): number;
/**
* Logs an event used to track custom metrics of a user in experience.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogCustomEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The user who triggered the event.
* @param eventName The name of the custom event.
* @param value The value of the event that will be used in aggregation.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogCustomEvent(this: AnalyticsService, player: Player, eventName: string, value?: number, customFields?: object): void;
/**
* Logs an event used to track player actions related in experience.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogEconomyEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The user who triggered the event.
* @param flowType Should specify the direction that currency is flowing using `AnalyticsEconomyFlowType`.
* @param currencyType The name of the currency being added or removed, for example `"gold"`, `"gems"`, or `"energy"`. Limited to 5 unique currency types per experience.
* @param amount The amount of currency being added or removed. This value should always be positive.
* @param endingBalance The user's balance after the currency has been added or removed. This value should always be greater than or equal to `0`.
* @param transactionType The type of transaction that occurred. While you're free to use any transaction type, it's recommended to use the provided types from `AnalyticsEconomyTransactionType` such as `"IAP"` or `"ContextualPurchase"` to enable future insights from Roblox tools and charts. Because this field type is a string, you'll need to pass the `Name` value of the enum. For example `Enum.AnalyticsEconomyTransactionType.IAP.Name`. Limited to 20 unique types per experience.
* @param itemSku Optional SKU of the item or bundle being purchased. This is a unique identifier for the item being purchased. Limited to 100 unique SKUs per experience.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogEconomyEvent(this: AnalyticsService, player: Player, flowType: CastsToEnum, currencyType: string, amount: number, endingBalance: number, transactionType: string, itemSku?: string, customFields?: object): void;
/**
* Logs an event used to track user actions stepping through a pre-planned funnel.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogFunnelStepEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The user who triggered the event.
* @param funnelName The name of the funnel. This should be the same for all steps in the funnel. Limited to 10 unique funnels per experience.
* @param funnelSessionId Optional unique identifier for the funnel session. This should be the same for all steps in the funnel. Note that this field is only necessary for **recurring** funnels, for example a purchase flow funnel or an item upgrade funnel. If you don't have a natural funnel session identifier, it's recommended to use `HttpService:GenerateGUID()`.
* @param step The step number in the funnel. This should be unique for each step in the funnel. All funnels start at step 1. Limited to steps 1-100. Repeated steps by the same user in the same funnel session, or when `funnelSessionId` is `nil` will be ignored. Note that if any steps are skipped, the intermediate steps will be considered completed.
* @param stepName Optional name of the step in the funnel. This field is only used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogFunnelStepEvent(this: AnalyticsService, player: Player, funnelName: string, funnelSessionId?: string, step?: number, stepName?: string, customFields?: object): void;
/**
* Logs a journey event used to track non-linear player paths through an experience.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogJourneyEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the journey event.
* @param journeyName The name of the journey. This should be the same for all nodes in the journey. Cannot be empty and cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param nodeName The name of the node the player reached in the journey. Cannot be empty, cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character, and cannot start with `__` (double underscore), which is reserved.
* @param journeySessionId Optional unique identifier for the journey session. This should be the same for all nodes in a single session of the journey. If provided, cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogJourneyEvent(this: AnalyticsService, player: Player, journeyName: string, nodeName: string, journeySessionId?: string, customFields?: object): void;
/**
* Logs an event used to track user actions stepping through an onboarding funnel.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogOnboardingFunnelStepEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The user who triggered the event.
* @param step The step number in the funnel. This should be unique for each step in the funnel. All funnels start at step 1. Limited to steps 1-100. Note that if any steps are skipped, the intermediate steps will be considered completed.
* @param stepName Optional name of the step in the funnel. This field is only used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogOnboardingFunnelStepEvent(this: AnalyticsService, player: Player, step: number, stepName?: string, customFields?: object): void;
/**
* Logs an event for when a user has completed a level attempt.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogProgressionCompleteEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the event.
* @param progressionPathName The name of the progression path this event belongs to, such as a world, chapter, or level group. This groups related progression events together. Cannot be empty and cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param level The numeric level the player is progressing through within the progression path.
* @param levelName The name of the level associated with this event. This field is used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogProgressionCompleteEvent(this: AnalyticsService, player: Player, progressionPathName: string, level: number, levelName?: string, customFields?: object): void;
/**
* Logs an event for when a user has started, completed, or failed a level attempt.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogProgressionEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the event.
* @param progressionPathName The name of the progression path this event belongs to, such as a world, chapter, or level group. This groups related progression events together. Cannot be empty and cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param status The progression status to record, provided as an `AnalyticsProgressionType` value such as `Start`, `Complete`, or `Fail`. The `AnalyticsService:LogProgressionStartEvent()`, `AnalyticsService:LogProgressionCompleteEvent()`, and `AnalyticsService:LogProgressionFailEvent()` methods are shortcuts that set this status for you.
* @param level The numeric level the player is progressing through within the progression path.
* @param levelName The name of the level associated with this event. This field is used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogProgressionEvent(this: AnalyticsService, player: Player, progressionPathName: string, status: CastsToEnum, level: number, levelName?: string, customFields?: object): void;
/**
* Logs an event for when a user has failed a level attempt.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogProgressionFailEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The user who triggered the event.
* @param progressionPathName The name of the progression path this event belongs to, such as a world, chapter, or level group. This groups related progression events together. Cannot be empty and cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param level The numeric level the player is progressing through within the progression path.
* @param levelName The name of the level associated with this event. This field is used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogProgressionFailEvent(this: AnalyticsService, player: Player, progressionPathName: string, level: number, levelName?: string, customFields?: object): void;
/**
* Logs an event for when a user has started a level attempt.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#LogProgressionStartEvent)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player who triggered the event.
* @param progressionPathName The name of the progression path this event belongs to, such as a world, chapter, or level group. This groups related progression events together. Cannot be empty and cannot contain a comma `,`, double quote `"`, single quote `'`, or newline character.
* @param level The numeric level the player is progressing through within the progression path.
* @param levelName The name of the level associated with this event. This field is used for display purposes in Roblox-provided charts.
* @param customFields Optional dictionary of custom fields that will provide breakdowns in Roblox-provided charts. Only specific keys, provided by `AnalyticsCustomFieldKeys`, will be used for these breakdowns. Limited to 8,000 unique combinations of values across the three custom fields per experience.
*/
LogProgressionStartEvent(this: AnalyticsService, player: Player, progressionPathName: string, level: number, levelName?: string, customFields?: object): void;
/**
* Returns coarse player segment buckets for the current experience.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnalyticsService#GetPlayerSegmentsAsync)
* @param this Collection of methods that allows you to track how users interact with your experiences.
* @param player The player whose segment buckets should be returned.
* @returns A dictionary containing coarse player segment buckets for the current experience.
*/
GetPlayerSegmentsAsync(this: AnalyticsService, player: Player): object;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimatedImageService)
*/
interface AnimatedImageService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimatedImageService: unique symbol;
}
/**
* References an animation asset which can be loaded by an `AnimationController`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animation)
*/
interface Animation extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Animation: unique symbol;
/**
* A reference to the animation asset associated with this `Animation`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animation#AnimationContent)
*/
AnimationContent: Content;
/**
* Asset ID of the animation an `Animation` object is referencing.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animation#AnimationId)
*/
AnimationId: ContentId;
}
/**
* Represents all types of animation data that the Roblox animation system can consume.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClip)
*/
interface AnimationClip extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationClip: unique symbol;
/**
* The length in seconds of this clip. Returns `0` until the animation has fully loaded.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClip#Length)
*/
readonly Length: number;
/**
* Determines whether the animation stored in this `AnimationClip` is intended to loop.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClip#Loop)
*/
Loop: boolean;
/**
* Determines which clip takes priority when multiple animations are playing simultaneously.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClip#Priority)
*/
Priority: Enum.AnimationPriority;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationGraphDefinition)
*/
interface AnimationGraphDefinition extends AnimationClip {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationGraphDefinition: unique symbol;
}
/**
* Stores animation data in the form of curves for each individual channel to animate.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/CurveAnimation)
*/
interface CurveAnimation extends AnimationClip {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_CurveAnimation: unique symbol;
}
/**
* This object stores all of the `Keyframes` and other data for the animation.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/KeyframeSequence)
*/
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;
/**
* Adds a `Keyframe` to the `KeyframeSequence` by parenting it to the `KeyframeSequence`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/KeyframeSequence#AddKeyframe)
* @param this This object stores all of the `Keyframes` and other data for the animation.
* @param keyframe The `Keyframe` to be added.
*/
AddKeyframe(this: KeyframeSequence, keyframe: Instance): void;
/**
* Returns an array that contains all `Keyframes` contained in a `KeyframeSequence`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/KeyframeSequence#GetKeyframes)
* @param this This object stores all of the `Keyframes` and other data for the animation.
* @returns An array of `Keyframes`.
*/
GetKeyframes(this: KeyframeSequence): Array;
/**
* This method removes a `Keyframe` from the `KeyframeSequence` by setting its parent to `nil`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/KeyframeSequence#RemoveKeyframe)
* @param this This object stores all of the `Keyframes` and other data for the animation.
* @param keyframe The `Keyframe` to be removed.
*/
RemoveKeyframe(this: KeyframeSequence, keyframe: Instance): void;
}
/**
* Provides functions to load and preview `AnimationClips`.
*
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider)
*/
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;
/**
* Generates a temporary asset ID from a `AnimationClip` that can be used for localized testing of an animation.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#RegisterActiveAnimationClip)
* @param this Provides functions to load and preview `AnimationClips`.
* @param animationClip The `AnimationClip` to be used.
* @returns A temporary asset ID generated for localized animation playback.
*/
RegisterActiveAnimationClip(this: AnimationClipProvider, animationClip: AnimationClip): ContentId;
/**
* Generates a temporary asset ID from a `AnimationClip` that can be used for localized testing of an animation. Generates a hash.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#RegisterAnimationClip)
* @param this Provides functions to load and preview `AnimationClips`.
* @param animationClip The `AnimationClip` to be used.
* @returns A temporary asset ID generated for localized animation playback.
*/
RegisterAnimationClip(this: AnimationClipProvider, animationClip: AnimationClip): ContentId;
/**
* Returns a `AnimationClip` based on the specified assetId asynchronously.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#GetAnimationClipAsync)
* @param this Provides functions to load and preview `AnimationClips`.
* @param assetId The content ID of the animation.
* @returns The `AnimationClip` found.
*/
GetAnimationClipAsync(this: AnimationClipProvider, assetId: ContentId): AnimationClip;
/**
* **Deprecated:**
*
* This function returns an `InventoryPages` object which can be used to iterate over animations owned by a specific user.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#GetAnimations)
* @param this Provides functions to load and preview `AnimationClips`.
* @param userId The user ID of the user.
* @returns An `InventoryPages` of animations.
*
* @deprecated GetAnimationsAsync
*/
GetAnimations(this: AnimationClipProvider, userId: User): Instance | undefined;
/**
* This function returns an `InventoryPages` object which can be used to iterate over animations owned by a specific user.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#GetAnimationsAsync)
* @param this Provides functions to load and preview `AnimationClips`.
* @param userId The user ID of the user.
* @returns An `InventoryPages` of animations.
*/
GetAnimationsAsync(this: AnimationClipProvider, userId: User): Instance | undefined;
/**
* Returns a `ClipEvaluator` for the `AnimationClip` at the given content ID, loaded asynchronously.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationClipProvider#GetClipEvaluatorAsync)
* @param this Provides functions to load and preview `AnimationClips`.
* @param assetId The content ID of the animation to load.
* @returns A `ClipEvaluator` that can sample the loaded `AnimationClip`.
*/
GetClipEvaluatorAsync(this: AnimationClipProvider, assetId: ContentId): ClipEvaluator;
}
/**
* Allows animations to be loaded and applied to a character or model in place of a `Humanoid`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationController)
*/
interface AnimationController extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationController: unique symbol;
/**
* **Deprecated:**
*
* Returns an array of all `AnimationTracks` that are currently being played by the `AnimationController`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationController#GetPlayingAnimationTracks)
* @param this Allows animations to be loaded and applied to a character or model in place of a `Humanoid`.
* @returns An array of playing `AnimationTracks`.
*
* @deprecated
*/
GetPlayingAnimationTracks(this: AnimationController): Array;
/**
* **Deprecated:** This function is deprecated in favor of using `Animator:LoadAnimation()` directly (the `Animator` may be created while editing or at runtime).
*
* Loads an `Animation` onto an `AnimationController`, returning an `AnimationTrack` that can be used for playback.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationController#LoadAnimation)
* @param this Allows animations to be loaded and applied to a character or model in place of a `Humanoid`.
* @param animation The `Animation` to be used.
*
* @deprecated
*/
LoadAnimation(this: AnimationController, animation: Animation): AnimationTrack;
/**
* **Deprecated:**
*
* Fires whenever the `AnimationController` begins playing an animation. It returns the `AnimationTrack` playing.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationController#AnimationPlayed)
*
* @deprecated
*/
readonly AnimationPlayed: RBXScriptSignal<(animationTrack: AnimationTrack) => void>;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationFromVideoCreatorService)
*/
interface AnimationFromVideoCreatorService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationFromVideoCreatorService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationFromVideoCreatorStudioService)
*/
interface AnimationFromVideoCreatorStudioService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationFromVideoCreatorStudioService: unique symbol;
}
/**
* A single node within an animation graph, connected to other nodes through named input pins.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition)
*/
interface AnimationNodeDefinition extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationNodeDefinition: unique symbol;
/**
* The kind of node this definition represents within its animation graph.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#NodeType)
*/
NodeType: Enum.AnimationNodeType;
/**
* Appends a named input pin to the end of the ordered input pin list.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#AddInputPin)
* @param this A single node within an animation graph, connected to other nodes through named input pins.
* @param pin Name of the input pin to append. Should match the `Name` of the corresponding `ObjectValue` wiring child.
*/
AddInputPin(this: AnimationNodeDefinition, pin: string): void;
/**
* Returns the current ordered list of input pin names.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#GetOrderedInputPinNames)
* @param this A single node within an animation graph, connected to other nodes through named input pins.
* @returns The ordered list of input pin names.
*/
GetOrderedInputPinNames(this: AnimationNodeDefinition): Array;
/**
* Removes the first input pin matching the given name from the ordered pin list.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#RemoveInputPin)
* @param this A single node within an animation graph, connected to other nodes through named input pins.
* @param pin Name of the input pin to remove. Only the first pin matching this name is removed.
*/
RemoveInputPin(this: AnimationNodeDefinition, pin: string): void;
/**
* Bulk-replaces the entire ordered input pin list.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#SetOrderedInputPinNames)
* @param this A single node within an animation graph, connected to other nodes through named input pins.
* @param pins The new ordered list of input pin names, replacing the existing list.
*/
SetOrderedInputPinNames(this: AnimationNodeDefinition, pins: Array): void;
/**
* Fires whenever the ordered input pin list is modified.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationNodeDefinition#InputPinsChanged)
*/
readonly InputPinsChanged: RBXScriptSignal<() => void>;
}
/**
* Used to store information regarding the model an animation was authored for.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationRigData)
*/
interface AnimationRigData extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationRigData: unique symbol;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack)
*/
interface AnimationStreamTrack extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationStreamTrack: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#Animation)
*/
readonly Animation: TrackerStreamAnimation | undefined;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#FACSDataLod)
*/
readonly FACSDataLod: Enum.FACSDataLod;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#IsPlaying)
*/
readonly IsPlaying: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#Priority)
*/
Priority: Enum.AnimationPriority;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#WeightCurrent)
*/
readonly WeightCurrent: number;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationStreamTrack#WeightTarget)
*/
readonly WeightTarget: number;
}
/**
* Controls the playback of an animation on an `Animator`.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack)
*/
interface AnimationTrack extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationTrack: unique symbol;
/**
* The `Animation` object that was used to create this `AnimationTrack`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Animation)
*/
readonly Animation: Animation | undefined;
/**
* A read-only property that returns true when the `AnimationTrack` is playing.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#IsPlaying)
*/
readonly IsPlaying: boolean;
/**
* A read-only property that returns the length (in seconds) of an `AnimationTrack`. This will return `0` until the animation has fully loaded and thus may not be immediately available.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Length)
*/
readonly Length: number;
/**
* Sets whether the animation will repeat after finishing. If it is changed while playing the result will take effect after the animation finishes.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Looped)
*/
Looped: boolean;
/**
* Sets the priority of an `AnimationTrack`. Depending on what this is set to, playing multiple animations at once will look to this property to figure out which `Keyframe` `Poses` should be played over one another.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Priority)
*/
Priority: Enum.AnimationPriority;
/**
* Read-only property that gives the current playback speed of the `AnimationTrack`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Speed)
*/
readonly Speed: number;
/**
* Returns the position in time in seconds that an `AnimationTrack` is through playing its source animation. Can be set to make the track jump to a specific moment in the animation.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#TimePosition)
*/
TimePosition: number;
/**
* Read-only property that gives the current weight of the `AnimationTrack`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#WeightCurrent)
*/
readonly WeightCurrent: number;
/**
* Read-only property that gives the current weight of the `AnimationTrack`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#WeightTarget)
*/
readonly WeightTarget: number;
/**
* Changes the `AnimationTrack.Speed` of an animation. A positive value for speed plays the animation forward, a negative one plays it backwards, and `0` pauses it.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#AdjustSpeed)
* @param this Controls the playback of an animation on an `Animator`.
* @param speed The playback speed the animation is to be changed to.
*/
AdjustSpeed(this: AnimationTrack, speed?: number): void;
/**
* Changes the weight of an animation, with the optional `fadeTime` parameter determining how long it takes for `AnimationTrack.WeightCurrent` to reach `AnimationTrack.WeightTarget`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#AdjustWeight)
* @param this Controls the playback of an animation on an `Animator`.
* @param weight The weight the animation is to be changed to.
* @param fadeTime The duration of time that the animation will fade between the old weight and the new weight for.
*/
AdjustWeight(this: AnimationTrack, weight?: number, fadeTime?: number): void;
/**
* Returns an `RBXScriptSignal` (event) that fires when a specified `KeyframeMarker` has been hit in an `animation`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetMarkerReachedSignal)
* @param this Controls the playback of an animation on an `Animator`.
* @param name The name of the `KeyframeMarker` the signal is being created for. Not to be confused with the name of the `Keyframe`.
* @returns The signal created and fired when the animation reaches the created `KeyframeMarker`.
*/
GetMarkerReachedSignal(this: AnimationTrack, name: string): RBXScriptSignal<(param?: string) => void>;
/**
* Returns the value of a parameter on the animation graph by key. Returns nil if the parameter has not been set.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetParameter)
* @param this Controls the playback of an animation on an `Animator`.
* @param key The name of the parameter to retrieve.
* @returns The current value of the parameter, or nil if not set.
*/
GetParameter(this: AnimationTrack, key: string): unknown;
/**
* Returns a dictionary of parameter values initially set as instance attributes on the `AnimationGraphDefinition` instance used to build the animation graph inside this track.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetParameterDefaults)
* @param this Controls the playback of an animation on an `Animator`.
* @returns A dictionary mapping parameter names to their default values. Returns an empty dictionary if the animation is not an animation graph.
*/
GetParameterDefaults(this: AnimationTrack): object;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetTargetInstance)
*/
GetTargetInstance(this: AnimationTrack, name: string): Instance | undefined;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetTargetNames)
*/
GetTargetNames(this: AnimationTrack): Array;
/**
* Returns the time position of the first `Keyframe` of the given name in an `AnimationTrack`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#GetTimeOfKeyframe)
* @param this Controls the playback of an animation on an `Animator`.
* @param keyframeName The name associated with the `Keyframe` to be found.
* @returns The time, in seconds, the `Keyframe` occurs at normal playback speed.
*/
GetTimeOfKeyframe(this: AnimationTrack, keyframeName: string): number;
/**
* Plays the `AnimationTrack`. Once called an `AnimationTrack` will play with the specified `fadeTime`, weight and speed.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Play)
* @param this Controls the playback of an animation on an `Animator`.
* @param fadeTime The duration of time that the animation's weight should be faded in for.
* @param weight The weight the animation is to be played at.
* @param speed The playback speed of the animation.
*/
Play(this: AnimationTrack, fadeTime?: number, weight?: number, speed?: number): void;
/**
* Sets a parameter value on the animation graph, driving animation graph node inputs.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#SetParameter)
* @param this Controls the playback of an animation on an `Animator`.
* @param key The name of the parameter to set.
* @param value The value to assign to the parameter. Non-finite numeric values are sanitized to 0.
*/
SetParameter(this: AnimationTrack, key: string, value: unknown): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#SetTargetInstance)
*/
SetTargetInstance(this: AnimationTrack, name: string, target: Instance): void;
/**
* Stops the `AnimationTrack`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Stop)
* @param this Controls the playback of an animation on an `Animator`.
* @param fadeTime The time, in seconds, for which animation weight is to be faded out over.
*/
Stop(this: AnimationTrack, fadeTime?: number): void;
/**
* Fires when an `AnimationTrack` loops on the next update following the end of the previous animation loop.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#DidLoop)
*/
readonly DidLoop: RBXScriptSignal<() => void>;
/**
* Fires when the `AnimationTrack` is completely done moving anything in the world.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Ended)
*/
readonly Ended: RBXScriptSignal<() => void>;
/**
* Fires every time playback of an `AnimationTrack` reaches a `Keyframe` that does not have the default name of `Keyframe`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#KeyframeReached)
*/
readonly KeyframeReached: RBXScriptSignal<(keyframeName: string) => void>;
/**
* Fires when the `AnimationTrack` finishes playing. The AnimationTrack might still animate the subject while the animation "fades out". To catch when the AnimationTrack is completely done moving anything in the world, use the `AnimationTrack.Ended` event.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationTrack#Stopped)
*/
readonly Stopped: RBXScriptSignal<() => void>;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationValueNodeDefinition)
*/
interface AnimationValueNodeDefinition extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationValueNodeDefinition: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationValueNodeDefinition#NodeType)
*/
NodeType: Enum.AnimationValueNodeType;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationValueOutputDefinition)
*/
interface AnimationValueOutputDefinition extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationValueOutputDefinition: unique symbol;
}
/**
* Responsible for the playback and replication of `Animations`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator)
*/
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;
/**
* Indicates whether animation evaluation was throttled (skipped) this frame for this `Animator`.
*
* - **ThreadSafety**: Safe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#EvaluationThrottled)
*/
readonly EvaluationThrottled: boolean;
/**
* Controls whether animation LOD throttling is allowed for this `Animator`. When set to `false`, animations always evaluate at full fidelity.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#PreferLodEnabled)
*/
PreferLodEnabled: boolean;
/**
* - **ThreadSafety**: Safe
* - **Tags**: NotReplicated, NotBrowsable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#RootMotion)
*/
readonly RootMotion: CFrame;
/**
* - **ThreadSafety**: Safe
* - **Tags**: NotReplicated, NotBrowsable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#RootMotionWeight)
*/
readonly RootMotionWeight: number;
/**
* Computes relative velocities between parts and applies them to `Motor6D.Part1`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#ApplyJointVelocities)
* @param this Responsible for the playback and replication of `Animations`.
* @param motors An array of `Motor6D` instances to compute and apply velocities for.
*/
ApplyJointVelocities(this: Animator, motors: Array): void;
/**
* Returns the list of currently active `AnimationTracks`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#GetPlayingAnimationTracks)
* @param this Responsible for the playback and replication of `Animations`.
* @returns An array of currently active `AnimationTracks` on this `Animator`, including tracks that are fading out.
*/
GetPlayingAnimationTracks(this: Animator): Array;
/**
* Returns an existing `AnimationTrack` on this `Animator` that was loaded from an `Animation` with the given animation ID. Unlike `LoadAnimation()`, this method does not create a new `AnimationTrack` instance.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#GetTrackByAnimationId)
* @param this Responsible for the playback and replication of `Animations`.
* @param animationId The asset ID of the `Animation` whose loaded track should be retrieved.
* @returns The first `AnimationTrack` on this `Animator` that was loaded from the given animation ID, or `nil` if none has been loaded.
*/
GetTrackByAnimationId(this: Animator, animationId: ContentId): AnimationTrack;
/**
* Loads an `Animation` onto an `Animator`, returning an `AnimationTrack`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#LoadAnimation)
* @param this Responsible for the playback and replication of `Animations`.
* @param animation The `Animation` to be used.
* @returns A new `AnimationTrack` linked to the given `Animation`.
*/
LoadAnimation(this: Animator, animation: Animation): AnimationTrack;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#RegisterEvaluationParallelCallback)
*/
RegisterEvaluationParallelCallback(this: Animator, callback: Callback): void;
/**
* Fires when the `Animator` starts playing an `AnimationTrack`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Animator#AnimationPlayed)
*/
readonly AnimationPlayed: RBXScriptSignal<(animationTrack: AnimationTrack) => void>;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Annotation)
*/
interface Annotation extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Annotation: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/WorkspaceAnnotation)
*/
interface WorkspaceAnnotation extends Annotation {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_WorkspaceAnnotation: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnnotationsService)
*/
interface AnnotationsService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnnotationsService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AppAgeSignalsService)
*/
interface AppAgeSignalsService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AppAgeSignalsService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AppLifecycleObserverService)
*/
interface AppLifecycleObserverService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AppLifecycleObserverService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AppRatingPromptService)
*/
interface AppRatingPromptService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AppRatingPromptService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AppUpdateService)
*/
interface AppUpdateService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AppUpdateService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetCounterService)
*/
interface AssetCounterService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetCounterService: unique symbol;
}
/**
* Runs a local HTTP server that serves assets to real devices.
*
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetDeliveryProxy)
*/
interface AssetDeliveryProxy extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetDeliveryProxy: unique symbol;
/**
* The network interface address that the asset-delivery HTTP server binds to.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetDeliveryProxy#Interface)
*/
Interface: string;
/**
* The TCP port that the asset-delivery HTTP server listens on.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetDeliveryProxy#Port)
*/
Port: number;
/**
* Controls whether the asset-delivery HTTP server is running.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetDeliveryProxy#StartServer)
*/
StartServer: boolean;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetImportService)
*/
interface AssetImportService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetImportService: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetManagerService)
*/
interface AssetManagerService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetManagerService: unique symbol;
}
/**
* Configures a single patch asset built by `IncrementalPatchBuilder` and served through `AssetDeliveryProxy`.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetPatchSettings)
*/
interface AssetPatchSettings extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetPatchSettings: unique symbol;
/**
* The content ID used to override this patch asset when it is served by `AssetDeliveryProxy`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetPatchSettings#ContentId)
*/
ContentId: string;
/**
* The filesystem path where the built patch asset is cached; when empty, an in-memory cache is used instead.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetPatchSettings#OutputPath)
*/
OutputPath: string;
/**
* An identifier for distinguishing patches under a single `IncrementalPatchBuilder`. Has no effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetPatchSettings#PatchId)
*/
PatchId: string;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetQualityService)
*/
interface AssetQualityService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AssetQualityService: unique symbol;
}
/**
* A non-replicated service that handles asset-related queries to the Roblox web API.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService)
*/
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;
/**
* Creates a new `EditableImage`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateEditableImage)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param editableImageOptions Options table containing controls for the method: - `Size` – A `Vector2` that specifies the image's desired width and height.
*
*
* @returns The new `EditableImage`, or `nil` if the device-specific editable memory budget is exhausted.
*/
CreateEditableImage(this: AssetService, editableImageOptions?: object): EditableImage;
/**
* Creates a new, empty `EditableMesh`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateEditableMesh)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param editableMeshOptions Table containing options for the created `EditableMesh`. Currently no options are available since `FixedSize` will always be `false` for empty editable meshes.
* @returns The new `EditableMesh`, or `nil` if the device-specific editable memory budget is exhausted.
*/
CreateEditableMesh(this: AssetService, editableMeshOptions?: object): EditableMesh;
/**
* Modifies an existing `Decal` to contain a composite PBR textures created by layering the provided textures in the order they are provided in the `layers` array. Textures layer based on the alpha value of the color map.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#ComposeDecalAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param decal A `Decal` instance that will be modified to contain a representation of the layers. Any existing maps on this instance will be cleared.
* @param layers An array of dictionary tables that maps PBR names to `Content` IDs.
*/
ComposeDecalAsync(this: AssetService, decal: Decal, layers: Array): void;
/**
* Uploads a new asset to Roblox from the given object.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateAssetAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param object The object to be created as an asset.
* @param assetType Currently supported types are: - `AssetType.Model` – with `object` as any valid `Instance` root.
* - `AssetType.Plugin` – with `object` as any valid `Instance` root.
* - `AssetType.Mesh` – with `object` as any valid `EditableMesh` root.
* - `AssetType.Image` – with `object` as any valid `EditableImage` root.
*
*
* @param requestParameters Options table containing asset metadata: - `Name` – Name of the asset as a string. Defaults to `[object.Name]`.
* - `Description` – Description of the asset as a string. Defaults to `"Created with AssetService:CreateAssetAsync"`.
* - `CreatorId` – ID of the asset creator as a number. Defaults to the logged in Roblox Studio user for Plugin context. Required for Open Cloud Luau Execution context.
* - `CreatorType` – `AssetCreatorType` indicating the type of asset creator. Defaults to `AssetCreatorType.User` in Plugin context. Required for Open Cloud Luau Execution context.
* - `IsPackage` – Boolean value, only applicable to the `AssetType.Model` type. Defaults to `true`.
*
*
* @returns The `CreateAssetResult` and asset ID pair if successful.
*/
CreateAssetAsync(this: AssetService, object: RBXObject, assetType: CastsToEnum, requestParameters?: object): unknown;
/**
* Uploads a new version for an existing asset from the given object.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateAssetVersionAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param object The object to be created as an asset.
* @param assetType Currently supported types are: - `AssetType.Model` – with `object` as any valid `Instance` root.
* - `AssetType.Plugin` – with `object` as any valid `Instance` root.
* - `AssetType.Mesh` – with `object` as any valid `EditableMesh` root.
* - `AssetType.Image` – with `object` as any valid `EditableImage` root.
*
*
* @param assetId The ID of the asset for the new version.
* @param requestParameters Options table containing asset metadata: - `Name` – A `string`. Name of the asset. Default: object.Name.
* - `Description` – A `string`. Description of the asset. Default: "Created with AssetService:CreateAssetAsync".
* - `CreatorId` – A `number`. ID of the asset creator. Default: The logged in Roblox Studio user for Plugin context. Required for Open Cloud Luau Execution context.
* - `CreatorType` – A `AssetCreatorType`. Type of asset creator. Default: `AssetCreatorType.User` in Plugin context. Required for Open Cloud Luau Execution context.
* - `IsPackage` – A `bool`. Only applicable to the `AssetType.Model` type. Default: true.
*
*
* @returns The `CreateAssetResult` and asset version number pair if successful.
*/
CreateAssetVersionAsync(this: AssetService, object: RBXObject, assetType: CastsToEnum, assetId: number, requestParameters?: object): unknown;
/**
* Creates ephemeral, `DataModel`-scoped content from the provided content input.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateDataModelContentAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param content Reference to the input content. Currently, this only supports `Content` wrapping a `EditableMesh` or `EditableImage`.
* @param options Optional dictionary containing configuration controls for the created `DataModel` content. Currently no controls are surfaced and this parameter exists for future functionality.
* @returns A tuple containing an `CreateContentResult` indicating the success or failure of the request, and the resulting `DataModel`-scoped `Opaque` `Content`.
*/
CreateDataModelContentAsync(this: AssetService, content: Content, options?: object): unknown;
/**
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateDecalAsync)
*/
CreateDecalAsync(this: AssetService, content: object): Decal;
/**
* Creates a new `EditableImage` object populated with the given image.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateEditableImageAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param content Reference to asset content stored externally or as an object within the place, wrapping a single value of one of the supported `ContentSourceType` values.
* @param editableImageOptions Table containing options for the created `EditableImage`. Currently no options are available since resizing via `Size` is not supported.
* @returns A new `EditableImage` containing the provided image.
*/
CreateEditableImageAsync(this: AssetService, content: Content, editableImageOptions?: object): EditableImage;
/**
* Returns a new `EditableMesh` object created from an existing mesh content ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateEditableMeshAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param content Reference to asset content stored externally or as an object within the place, wrapping a single value of one of the supported `ContentSourceType` values.
* @param editableMeshOptions Options table containing controls for the method: - `FixedSize` – A `bool`. Default value is `true`, and the returned `EditableMesh` will not allow you to add or remove vertices, only modify their values. Set to `false` if the ability to change the mesh topology is required, at the expense of using more memory.
*
*
* @returns The new `EditableMesh` object.
*/
CreateEditableMeshAsync(this: AssetService, content: Content, editableMeshOptions?: object): EditableMesh;
/**
* Creates a new `MeshPart` with a specified mesh ID and an optional table of fidelity values.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateMeshPartAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param meshContent Reference to asset content stored externally or as an object within the place, wrapping a single value of one of the supported `ContentSourceType` values.
* @param options Options table containing one or more controls for the method: - `CollisionFidelity` – The value of `CollisionFidelity` in the resulting part. Defaults to `CollisionFidelity.Default` if the option is absent or the `options` table is `nil`.
* - `RenderFidelity` – The value of `RenderFidelity` in the resulting part. Defaults to `RenderFidelity.Automatic` if the option is absent or the `options` table is `nil`.
* - `FluidFidelity` – The value of `FluidFidelity` in the resulting part. Defaults to `FluidFidelity.Automatic` if the option is absent or the `options` table is `nil`.
*
*
* @returns The new `MeshPart` with the specified mesh and fidelity settings applied.
*/
CreateMeshPartAsync(this: AssetService, meshContent: Content, options?: CreateMeshPartAsyncOptions): MeshPart;
/**
* Clones a place through the given `templatePlaceID`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreatePlaceAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param placeName Name of the new place.
* @param templatePlaceID `PlaceId` of the place to clone.
* @param description Description of the new place.
* @returns `PlaceId` of the new place.
*/
CreatePlaceAsync(this: AssetService, placeName: string, templatePlaceID: number, description?: string): number;
/**
* Clones a place through the given `templatePlaceID` and puts it into the inventory of the given player.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreatePlaceInPlayerInventoryAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param player The `Player` whose inventory receives the cloned place.
* @param placeName Name for the new place.
* @param templatePlaceID `PlaceId` of the place to clone.
* @param description Description for the new place.
* @returns `PlaceId` of the new place.
*/
CreatePlaceInPlayerInventoryAsync(this: AssetService, player: Player, placeName: string, templatePlaceID: number, description: string): number;
/**
* Creates a new `SurfaceAppearance` object using the provided content maps.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateSurfaceAppearanceAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param content Dictionary containing the following key-value pairs: - `ColorMap` — A `Content` object that contains the color map. Default is `nil`.
* - `MetalnessMap` — A `Content` object that contains the metalness map. If more than one channel is present, only the red channel is used. Default is `nil`.
* - `NormalMap` — A `Content` object that contains the normal map. Default is `nil`.
* - `RoughnessMap` — A `Content` object that contains the roughness map. If more than one channel is present, only the red channel is used. Default is `nil`.
* - `EmissiveMask` — A `Content` object that contains the emissive mask. If more than one channel is present, only the red channel is used. Default is `nil`.
*
*
* @returns A new `SurfaceAppearance` instance with the given maps from the `content` parameter.
*/
CreateSurfaceAppearanceAsync(this: AssetService, content: object): SurfaceAppearance;
/**
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#CreateTextureAsync)
*/
CreateTextureAsync(this: AssetService, content: object): Texture;
/**
* **Deprecated:** Use `GetAssetIdsForPackageAsync()` instead.
*
* Returns an array of asset IDs that are contained in a specified package.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetAssetIdsForPackage)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param packageAssetId The asset ID of the package to query.
* @returns Asset IDs that are contained in a specified package.
*
* @deprecated GetAssetIdsForPackageAsync
*/
GetAssetIdsForPackage(this: AssetService, packageAssetId: number): Array;
/**
* Returns an array of asset IDs that are contained in a specified package.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetAssetIdsForPackageAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param packageAssetId The asset ID of the package to query.
* @returns Asset IDs that are contained in a specified package.
*/
GetAssetIdsForPackageAsync(this: AssetService, packageAssetId: number): Array;
/**
* Provides relevant metadata about a specific audio source.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetAudioMetadataAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param idList Array of asset or content IDs for which to retrieve metadata. Max batch size is 30.
* @returns Array of dictionary tables in the same order as the request, where each dictionary contains the following metadata for its asset/content: - `AssetId` (string)
* - `Title` (string)
* - `Artist` (string)
* - `Duration` (number) in seconds
* - `AudioType` (`AudioSubType`)
*
* Note that if an error occurs on fetching metadata for any of the requested assets, for example the asset ID doesn't exist, its dictionary table is still included in the returned array but it only contains the `AssetId` field for reference purposes. Additionally, if the `AudioType` cannot be determined for a given asset (perhaps because it's private audio), the resulting dictionary will not contain an `AudioType` entry.
*/
GetAudioMetadataAsync(this: AssetService, idList: Array): Array;
/**
* Returns details of the contents of specified bundle.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetBundleDetailsAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param bundleId The ID of the specified bundle.
* @returns Dictionary with the following key-value pairs containing details about the specified bundle: - `Id` — Bundle ID (same as passed `bundleId` argument)
* - `Name` — Bundle name
* - `Description` — Bundle description
* - `BundleType` — String representing the `BundleType`, for example `"BodyParts"` or `"DynamicHead"`
* - `Items` — Array of items in the bundle, each with details represented through the following keys:
* - `Id` — Item ID
* - `Name` — Item name
* - `Type` — Item type such as `"Asset"`
* - `AssetType` — String representing the `AvatarAssetType`
* - `SupportsHeadShapes` — Whether the asset supports head shape swapping. Only present if `AssetType` is `"DynamicHead"`.
*/
GetBundleDetailsAsync(this: AssetService, bundleId: number): BundleInfo;
/**
* **Deprecated:** This item is deprecated and no longer functions correctly. Do not use it for new work.
*
* Returns the UserId of the account who created the creationID asset.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetCreatorAssetID)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param creationID The asset ID to look up for creator information.
* @returns The `Player.UserId` of the account that created the asset.
*
* @deprecated GetProductInfo
*/
GetCreatorAssetID(this: AssetService, creationID: number): number;
/**
* Returns a `StandardPages` object which contains the name and `PlaceId` of places within the current experience.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#GetGamePlacesAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @returns A `StandardPages` object whose pages contain the name and `PlaceId` of each place in the current experience.
*/
GetGamePlacesAsync(this: AssetService): StandardPages<{
Name: string;
PlaceId: number;
}>;
/**
* Loads a `Model` instance given its asset ID. This is the modern replacement for `InsertService:LoadAsset()` and supports loading third-party assets.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#LoadAssetAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param assetId The asset ID number of the asset being loaded.
* @returns A `Model` instance containing the loaded asset.
*/
LoadAssetAsync(this: AssetService, assetId: number): Instance | undefined;
/**
* Allows in-experience asset creation for users by prompting a publish dialog.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#PromptCreatePlatformContentAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param player The user who submits an asset creation.
* @param object The asset to be created. Currently can't contain scripts or nest non-public assets.
* @param assetType The asset type. Currently can only be `AssetType.Model`.
* @returns The `PromptCreatePlatformContentResult` and asset ID pair if successful.
*/
PromptCreatePlatformContentAsync(this: AssetService, player: Player, object: RBXObject, assetType: CastsToEnum): unknown;
/**
* Prompts the specified player to select and upload a video, which is then converted into an `AnimationClip`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#PromptImportAnimationClipFromVideoAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param player The player who is prompted, on their own client, to select and upload a video. The player's consent is required before the video is uploaded.
* @param progressCallback A function that receives status updates (an `AnimationClipFromVideoStatus` value) while the video is uploaded and processed.
* @returns A tuple containing an `AnimationClipFromVideoStatus` describing the outcome and, on success, the resulting `AnimationClip` (`nil` otherwise).
*/
PromptImportAnimationClipFromVideoAsync(this: AssetService, player: Player, progressCallback: Callback): unknown;
/**
* Saves the state of the current place.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#SavePlaceAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param requestParameters Optional dictionary that includes `SaveWithoutPublish`, a boolean indicating whether to save with publish or without publish, and `PlaceId`, the destination place ID to save over. An example usage would be: AssetService:SavePlaceAsync({PlaceId = 1, SaveWithoutPublish = true}). If PlaceId is not provided, the default behavior will save over the current original place which is calling SavePlaceAsync. If SaveWithoutPublish is not provided, the default behavior is SaveWithoutPublish=false.
*/
SavePlaceAsync(this: AssetService, requestParameters?: object): void;
/**
* **Deprecated:** Use `SearchAudioAsync()` instead.
*
* Finds audio assets matching a variety of search criteria.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#SearchAudio)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param searchParameters A `AudioSearchParams` object defining the search criteria such as keyword, title, artist, audio type, and duration range.
* @returns An `AudioPages` object containing the paginated results of the audio search.
*
* @deprecated SearchAudioAsync
*/
SearchAudio(this: AssetService, searchParameters: AudioSearchParams): AudioPages;
/**
* Finds audio assets matching a variety of search criteria.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AssetService#SearchAudioAsync)
* @param this A non-replicated service that handles asset-related queries to the Roblox web API.
* @param searchParameters A `AudioSearchParams` object defining the search criteria such as keyword, title, artist, audio type, and duration range.
* @returns An `AudioPages` object containing the paginated results of the audio search.
*/
SearchAudioAsync(this: AssetService, searchParameters: AudioSearchParams): AudioPages;
}
/**
* The `Atmosphere` object pushes Roblox closer toward realistic environments where sunlight scatters in different ways depending on density and other air particle properties.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere)
*/
interface Atmosphere extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Atmosphere: unique symbol;
/**
* Changes the `Atmosphere` hue for subtle environmental moods.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Color)
*/
Color: Color3;
/**
* When used with increased `Atmosphere.Haze` and `Atmosphere.Glare`, defines the hue of the `Atmosphere` away from the sun, gradually falling off from `Atmosphere.Color` towards this value.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Decay)
*/
Decay: Color3;
/**
* Defines the amount of particles in the `Atmosphere` and essentially controls how much in-game objects/terrain will be obscured by them.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Density)
*/
Density: number;
/**
* When used with increased `Atmosphere.Haze`, specifies the glow/glare of the `Atmosphere` around the sun. More glare results in an increased effect of sunlight cast onto the sky and world.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Glare)
*/
Glare: number;
/**
* Defines the haziness of the `Atmosphere` with a visible effect both above the horizon and into the distance.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Haze)
*/
Haze: number;
/**
* Controls how light transmits between the camera and the sky background.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Atmosphere#Offset)
*/
Offset: number;
}
/**
* Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment)
*/
interface Attachment extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Attachment: unique symbol;
/**
* Direction of the **X** axis of the attachment, represented as a unit `Vector3`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#Axis)
*/
Axis: Vector3;
/**
* `CFrame` offset of the attachment.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#CFrame)
*/
CFrame: CFrame;
/**
* Orientation of the attachment relative to the orientation of its parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#Orientation)
*/
Orientation: Vector3;
/**
* Positional offset of the attachment, relative to the position and orientation of its parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#Position)
*/
Position: Vector3;
/**
* **Deprecated:** This property is deprecated and should not be used in new work. See `Orientation` instead.
*
* Rotation of the attachment relative to the rotation of its parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#Rotation)
*
* @deprecated Orientation
*/
Rotation: Vector3;
/**
* Direction of the **Y** axis of the attachment, represented as a unit `Vector3`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#SecondaryAxis)
*/
SecondaryAxis: Vector3;
/**
* Toggles the in-experience visibility of the attachment.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#Visible)
*/
Visible: boolean;
/**
* Direction of the **X** axis of the attachment relative to the world, represented as a unit `Vector3` with a length of 1.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldAxis)
*/
WorldAxis: Vector3;
/**
* The exact `CFrame` of the attachment in world space coordinates.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldCFrame)
*/
WorldCFrame: CFrame;
/**
* Orientation of the attachment relative to the world rather than its own parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldOrientation)
*/
WorldOrientation: Vector3;
/**
* Position of the attachment relative to the world rather than its own parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldPosition)
*/
WorldPosition: Vector3;
/**
* **Deprecated:** This item has been superseded by `WorldOrientation` which should be used in new work.
*
* Rotation of the attachment relative to the world rather than its own parent.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldRotation)
*
* @deprecated WorldOrientation
*/
readonly WorldRotation: Vector3;
/**
* Direction of the **Y** axis of the attachment relative to the world, represented as a unit `Vector3` with a length of 1.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#WorldSecondaryAxis)
*/
WorldSecondaryAxis: Vector3;
/**
* **Deprecated:** This method is deprecated and should not be used in new work.
*
* Returns the value of the attachment's `Axis`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#GetAxis)
* @param this Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
* @returns The direction of the X axis as a unit `Vector3` in the attachment's local space.
*
* @deprecated Axis
*/
GetAxis(this: Attachment): Vector3;
/**
* Returns a list of `Constraints` connected to the attachment.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#GetConstraints)
* @param this Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
* @returns An array of `Constraint` objects that are connected to this attachment.
*/
GetConstraints(this: Attachment): Array;
/**
* **Deprecated:** This method is deprecated and should not be used in new work.
*
* Returns the value of the attachment's `SecondaryAxis`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#GetSecondaryAxis)
* @param this Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
* @returns The direction of the Y axis as a unit `Vector3` in the attachment's local space.
*
* @deprecated SecondaryAxis
*/
GetSecondaryAxis(this: Attachment): Vector3;
/**
* **Deprecated:** This method is deprecated and should not be used in new work.
*
* Sets the value of the attachment's `Axis`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#SetAxis)
* @param this Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
* @param axis The `Vector3` to set as the X-axis direction of the attachment.
*
* @deprecated Axis
*/
SetAxis(this: Attachment, axis: Vector3): void;
/**
* **Deprecated:** This method is deprecated and should not be used in new work.
*
* Sets the value of the attachment's `SecondaryAxis`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Attachment#SetSecondaryAxis)
* @param this Defines a point and orientation relative to an ancestor `PVInstance`, `Bone`, or another `Attachment`.
* @param axis The `Vector3` to set as the Y-axis direction of the attachment.
*
* @deprecated SecondaryAxis
*/
SetSecondaryAxis(this: Attachment, axis: Vector3): void;
}
/**
* Bones are non-rendered objects that drive the movement of one or more parts for the purposes of animation, or creating clothing and characters.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Bone)
*/
interface Bone extends Attachment {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Bone: unique symbol;
/**
* Determines the current animated offset of the bone in its local space.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Bone#Transform)
*/
Transform: CFrame;
/**
* Describes the combined `CFrame` offset of the bone and the current animation offset in the bone local space.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Bone#TransformedCFrame)
*/
readonly TransformedCFrame: CFrame;
/**
* Describes the combined `CFrame` offset of the bone and the current animation offset in world space.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Bone#TransformedWorldCFrame)
*/
readonly TransformedWorldCFrame: CFrame;
}
/**
* Takes measurements from audio streams that are connected to it via one or more `Wires`.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer)
*/
interface AudioAnalyzer extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioAnalyzer: unique symbol;
/**
* The loudest volume observed during the last audio buffer.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#PeakLevel)
*/
readonly PeakLevel: number;
/**
* The root-mean-square average volume observed during the last audio buffer.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#RmsLevel)
*/
readonly RmsLevel: number;
/**
* Enables usage of `GetSpectrum`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#SpectrumEnabled)
*/
SpectrumEnabled: boolean;
/**
* Controls the resolution and timeliness of `GetSpectrum`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#WindowSize)
*/
WindowSize: Enum.AudioWindowSize;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#GetConnectedWires)
* @param this Takes measurements from audio streams that are connected to it via one or more `Wires`.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioAnalyzer, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#GetInputPins)
* @param this Takes measurements from audio streams that are connected to it via one or more `Wires`.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioAnalyzer): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#GetOutputPins)
* @param this Takes measurements from audio streams that are connected to it via one or more `Wires`.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioAnalyzer): Array;
/**
* Returns the frequency spectrum of the last audio buffer.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#GetSpectrum)
* @param this Takes measurements from audio streams that are connected to it via one or more `Wires`.
* @returns A table of numbers representing the amplitude levels of various frequencies of audio within the last buffer, or an empty table if a spectrum cannot be obtained.
*/
GetSpectrum(this: AudioAnalyzer): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioAnalyzer` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioAnalyzer#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Combines multiple audio streams into a single, multichannel audio stream.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer)
*/
interface AudioChannelMixer extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioChannelMixer: unique symbol;
/**
* Controls the output channel layout to be mixed to.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer#Layout)
*/
Layout: Enum.AudioChannelLayout;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer#GetConnectedWires)
* @param this Combines multiple audio streams into a single, multichannel audio stream.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioChannelMixer, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer#GetInputPins)
* @param this Combines multiple audio streams into a single, multichannel audio stream.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioChannelMixer): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer#GetOutputPins)
* @param this Combines multiple audio streams into a single, multichannel audio stream.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioChannelMixer): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioChannelMixer` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelMixer#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Splits an audio stream into component channels so that each can be processed independently.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter)
*/
interface AudioChannelSplitter extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioChannelSplitter: unique symbol;
/**
* Controls the input channel layout to be split from.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter#Layout)
*/
Layout: Enum.AudioChannelLayout;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter#GetConnectedWires)
* @param this Splits an audio stream into component channels so that each can be processed independently.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioChannelSplitter, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter#GetInputPins)
* @param this Splits an audio stream into component channels so that each can be processed independently.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioChannelSplitter): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter#GetOutputPins)
* @param this Splits an audio stream into component channels so that each can be processed independently.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioChannelSplitter): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioChannelSplitter` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChannelSplitter#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Makes an audio stream sound more voluminous. If applied to a single voice, it may sound like multiple voices.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus)
*/
interface AudioChorus extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioChorus: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#Bypass)
*/
Bypass: boolean;
/**
* Controls the maximum delay time of the copied streams in the chorus effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#Depth)
*/
Depth: number;
/**
* Controls the balance of plain input stream to modified output stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#Mix)
*/
Mix: number;
/**
* Controls the rate of pitch modulations.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#Rate)
*/
Rate: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#GetConnectedWires)
* @param this Makes an audio stream sound more voluminous. If applied to a single voice, it may sound like multiple voices.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioChorus, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#GetInputPins)
* @param this Makes an audio stream sound more voluminous. If applied to a single voice, it may sound like multiple voices.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioChorus): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#GetOutputPins)
* @param this Makes an audio stream sound more voluminous. If applied to a single voice, it may sound like multiple voices.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioChorus): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioChorus` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioChorus#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Adjusts the dynamic range of input streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor)
*/
interface AudioCompressor extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioCompressor: unique symbol;
/**
* Controls how quickly the compressor will clamp down on volume after it surpasses `Threshold`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#Attack)
*/
Attack: number;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#Bypass)
*/
Bypass: boolean;
/**
* A gain value to be applied after compression.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#MakeupGain)
*/
MakeupGain: number;
/**
* Ratio of input volume to output volume, to be applied when surpassing `Threshold`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#Ratio)
*/
Ratio: number;
/**
* Controls how quickly the compressor will unclamp after the stream volume dips back below `Threshold`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#Release)
*/
Release: number;
/**
* Gain value at which the compressor will start to modify the input stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#Threshold)
*/
Threshold: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#GetConnectedWires)
* @param this Adjusts the dynamic range of input streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioCompressor, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#GetInputPins)
* @param this Adjusts the dynamic range of input streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioCompressor): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#GetOutputPins)
* @param this Adjusts the dynamic range of input streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioCompressor): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioCompressor` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioCompressor#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Produces audio streams from physical devices, such as microphones.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput)
*/
interface AudioDeviceInput extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioDeviceInput: unique symbol;
/**
* Determines whether the list of user IDs provided to `SetUserIdAccessList` is treated as an allow-list or deny-list.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#AccessType)
*/
AccessType: Enum.AccessModifierType;
/**
* Controls whether the physical device is actively recording.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#Active)
*/
get Active(): boolean;
/**
* Controls whether this `AudioDeviceInput` is muted.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#Muted)
*/
Muted: boolean;
/**
* Determines whose device is producing sound.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#Player)
*/
Player: Player | undefined;
/**
* Volume level which is multiplied onto the output audio stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#Volume)
*/
Volume: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#GetConnectedWires)
* @param this Produces audio streams from physical devices, such as microphones.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioDeviceInput, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#GetInputPins)
* @param this Produces audio streams from physical devices, such as microphones.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioDeviceInput): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#GetOutputPins)
* @param this Produces audio streams from physical devices, such as microphones.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioDeviceInput): Array;
/**
* Returns a list of user IDs that are either permitted to hear or blocked from hearing this `AudioDeviceInput`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#GetUserIdAccessList)
* @param this Produces audio streams from physical devices, such as microphones.
* @returns An array of user IDs that are either in the allow-list or the deny-list.
*/
GetUserIdAccessList(this: AudioDeviceInput): Array;
/**
* Sets a list of user IDs that are either permitted to hear or blocked from hearing this `AudioDeviceInput`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#SetUserIdAccessList)
* @param this Produces audio streams from physical devices, such as microphones.
* @param userIds An array of user IDs to apply to this `AudioDeviceInput`.
*/
SetUserIdAccessList(this: AudioDeviceInput, userIds: Array): void;
/**
* Fires when another instance is connected to or disconnected from the `AudioDeviceInput` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceInput#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Accepts audio streams to be rendered out to physical hardware devices such as speakers or headphones.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput)
*/
interface AudioDeviceOutput extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioDeviceOutput: unique symbol;
/**
* A `Player` who is intended to hear the connected audio streams.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput#Player)
*/
Player: Player | undefined;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput#GetConnectedWires)
* @param this Accepts audio streams to be rendered out to physical hardware devices such as speakers or headphones.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioDeviceOutput, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput#GetInputPins)
* @param this Accepts audio streams to be rendered out to physical hardware devices such as speakers or headphones.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioDeviceOutput): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput#GetOutputPins)
* @param this Accepts audio streams to be rendered out to physical hardware devices such as speakers or headphones.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioDeviceOutput): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioDeviceOutput` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDeviceOutput#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Distorts audio streams, making them sound fuzzier, grittier, and louder.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion)
*/
interface AudioDistortion extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioDistortion: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#Bypass)
*/
Bypass: boolean;
/**
* Controls how distorted the input stream will become.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#Level)
*/
Level: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#GetConnectedWires)
* @param this Distorts audio streams, making them sound fuzzier, grittier, and louder.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioDistortion, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#GetInputPins)
* @param this Distorts audio streams, making them sound fuzzier, grittier, and louder.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioDistortion): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#GetOutputPins)
* @param this Distorts audio streams, making them sound fuzzier, grittier, and louder.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioDistortion): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioDistortion` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioDistortion#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Overlays delayed copies of audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho)
*/
interface AudioEcho extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioEcho: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#Bypass)
*/
Bypass: boolean;
/**
* The amount of time between echoes.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#DelayTime)
*/
DelayTime: number;
/**
* Gain level determining how loud the original, unaltered audio stream will be.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#DryLevel)
*/
DryLevel: number;
/**
* How slowly echoes fade away.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#Feedback)
*/
Feedback: number;
/**
* The time taken to interpolate between `DelayTime` values.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#RampTime)
*/
RampTime: number;
/**
* Gain level determining how loud the echoed stream will be.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#WetLevel)
*/
WetLevel: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#GetConnectedWires)
* @param this Overlays delayed copies of audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioEcho, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#GetInputPins)
* @param this Overlays delayed copies of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioEcho): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#GetOutputPins)
* @param this Overlays delayed copies of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioEcho): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioEcho` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEcho#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Emits audio streams into the world.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter)
*/
interface AudioEmitter extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioEmitter: unique symbol;
/**
* Determines whether acoustic simulation should be used for this `AudioEmitter`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#AcousticSimulationEnabled)
*/
AcousticSimulationEnabled: boolean;
/**
* Controls which `AudioListeners` are capable of hearing this `AudioEmitter`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#AudioInteractionGroup)
*/
AudioInteractionGroup: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#DiffractionEnabled)
*/
DiffractionEnabled: Enum.SimulationMode;
/**
* The minimum and maximum distance range used by the selected `DistanceAttenuationMode` preset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#DistanceAttenuationBounds)
*/
DistanceAttenuationBounds: NumberRange;
/**
* Determines how the volume of this `AudioEmitter` attenuates over distance.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#DistanceAttenuationMode)
*/
DistanceAttenuationMode: Enum.DistanceAttenuationMode;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#OcclusionEnabled)
*/
OcclusionEnabled: Enum.SimulationMode;
/**
* The `Instance` whose position and orientation is used as the emitter's position if `PositionType` is set to `EmitterPositionType.Instance`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#PositionInstance)
*/
PositionInstance: Instance | undefined;
/**
* Determines how the `AudioEmitter` determines its 3D location.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#PositionType)
*/
PositionType: Enum.EmitterPositionType;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#ReverbEnabled)
*/
ReverbEnabled: Enum.SimulationMode;
/**
* **Deprecated:**
*
* Controls how detailed the audio simulation should be for this `AudioEmitter`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#SimulationFidelity)
*
* @deprecated AcousticSimulationEnabled
*/
SimulationFidelity: Enum.AudioSimulationFidelity;
/**
* Gets the angle attenuation curve that the `AudioEmitter` is using, or an empty table if it's using the default curve.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetAngleAttenuation)
* @param this Emits audio streams into the world.
* @returns Table mapping angle to volume, as described above.
*/
GetAngleAttenuation(this: AudioEmitter): object;
/**
* Calculates how audible this emitter is for a particular `AudioListener`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetAudibilityFor)
* @param this Emits audio streams into the world.
* @param listener The `AudioListener` to calculate audibility for.
* @returns A number between `0` and `1` representing the combined volume after distance and angle attenuation.
*/
GetAudibilityFor(this: AudioEmitter, listener: AudioListener): number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetConnectedWires)
* @param this Emits audio streams into the world.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioEmitter, pin: string): Array;
/**
* Gets the distance attenuation curve that the `AudioEmitter` is using, or an empty table if it's using the default curve.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetDistanceAttenuation)
* @param this Emits audio streams into the world.
* @returns A table mapping distance to volume, as described above.
*/
GetDistanceAttenuation(this: AudioEmitter): object;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetInputPins)
* @param this Emits audio streams into the world.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioEmitter): Array;
/**
* Lists all `AudioListeners` that are capable of hearing this emitter.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetInteractingListeners)
* @param this Emits audio streams into the world.
* @returns An array of `AudioListeners`.
*/
GetInteractingListeners(this: AudioEmitter): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#GetOutputPins)
* @param this Emits audio streams into the world.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioEmitter): Array;
/**
* Sets the angle attenuation curve that the `AudioEmitter` should use, or uses a constant curve of volume `1` if none is provided.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#SetAngleAttenuation)
* @param this Emits audio streams into the world.
* @param curve A table mapping angle to volume. Keys are numbers between `0` and `180`, values are numbers between `0` and `1`.
*/
SetAngleAttenuation(this: AudioEmitter, curve: object): void;
/**
* Sets the distance attenuation curve that the `AudioEmitter` should use, or uses an inverse rolloff curve if none is provided.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#SetDistanceAttenuation)
* @param this Emits audio streams into the world.
* @param curve A table mapping distance to volume. Keys are numbers greater than or equal to `0`, values are numbers between `0` and `1`.
*/
SetDistanceAttenuation(this: AudioEmitter, curve: DistanceAttenuationCurve): void;
/**
* Fires when another instance is connected to or disconnected from the `AudioEmitter` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEmitter#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Adjusts the frequency content of audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer)
*/
interface AudioEqualizer extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioEqualizer: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#Bypass)
*/
Bypass: boolean;
/**
* Gain value to be applied to the frequency content of the highest band in the equalizer.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#HighGain)
*/
HighGain: number;
/**
* Gain value to be applied to the frequency content of the lowest band in the equalizer.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#LowGain)
*/
LowGain: number;
/**
* Gain value to be applied to the frequency content of the middle band in the equalizer.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#MidGain)
*/
MidGain: number;
/**
* The frequency range of the band influenced by `MidGain`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#MidRange)
*/
MidRange: NumberRange;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#GetConnectedWires)
* @param this Adjusts the frequency content of audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioEqualizer, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#GetInputPins)
* @param this Adjusts the frequency content of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioEqualizer): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#GetOutputPins)
* @param this Adjusts the frequency content of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioEqualizer): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioEqualizer` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioEqualizer#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Adjusts the volume of audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader)
*/
interface AudioFader extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioFader: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#Bypass)
*/
Bypass: boolean;
/**
* Volume level which is multiplied onto the input stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#Volume)
*/
Volume: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#GetConnectedWires)
* @param this Adjusts the volume of audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioFader, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#GetInputPins)
* @param this Adjusts the volume of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioFader): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#GetOutputPins)
* @param this Adjusts the volume of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioFader): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioFader` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFader#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Adjusts the frequency content of audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter)
*/
interface AudioFilter extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioFilter: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#Bypass)
*/
Bypass: boolean;
/**
* The curve type of the band represented by the filter.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#FilterType)
*/
FilterType: Enum.AudioFilterType;
/**
* The central frequency that the filter acts around.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#Frequency)
*/
Frequency: number;
/**
* For peaking and shelving filters, controls volume increase or reduction.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#Gain)
*/
Gain: number;
/**
* For peaking, lowpass, highpass, bandpass, and notch filters, controls the selectiveness or resonance.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#Q)
*/
Q: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#GetConnectedWires)
* @param this Adjusts the frequency content of audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioFilter, pin: string): Array;
/**
* Returns the magnitude response of the filter at the given frequency.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#GetGainAt)
* @param this Adjusts the frequency content of audio streams.
* @param frequency The frequency, in hertz, to sample.
* @returns The gain value, in decibels, at the given frequency.
*/
GetGainAt(this: AudioFilter, frequency: number): number;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#GetInputPins)
* @param this Adjusts the frequency content of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioFilter): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#GetOutputPins)
* @param this Adjusts the frequency content of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioFilter): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioFilter` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFilter#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Imparts a whooshing or sweeping sound on audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger)
*/
interface AudioFlanger extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioFlanger: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#Bypass)
*/
Bypass: boolean;
/**
* Controls how strong the pitch modulation of the flanger is.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#Depth)
*/
Depth: number;
/**
* Controls the balance of plain input stream to modified output stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#Mix)
*/
Mix: number;
/**
* Controls the rate of pitch modulations.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#Rate)
*/
Rate: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#GetConnectedWires)
* @param this Imparts a whooshing or sweeping sound on audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioFlanger, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#GetInputPins)
* @param this Imparts a whooshing or sweeping sound on audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioFlanger): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#GetOutputPins)
* @param this Imparts a whooshing or sweeping sound on audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioFlanger): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioFlanger` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFlanger#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioFocusService)
*/
interface AudioFocusService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioFocusService: unique symbol;
}
/**
* Mutes audio streams that fall below a certain volume threshold.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate)
*/
interface AudioGate extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioGate: unique symbol;
/**
* Controls how long it takes for the gate to open when the signal level rises above the `Threshold`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#Attack)
*/
Attack: number;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#Bypass)
*/
Bypass: boolean;
/**
* Controls how long it takes for the gate to close when the signal level drops below the `Threshold`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#Release)
*/
Release: number;
/**
* The gain value(s) around which the gate opens and closes.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#Threshold)
*/
Threshold: NumberRange;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#GetConnectedWires)
* @param this Mutes audio streams that fall below a certain volume threshold.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioGate, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#GetInputPins)
* @param this Mutes audio streams that fall below a certain volume threshold.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioGate): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#GetOutputPins)
* @param this Mutes audio streams that fall below a certain volume threshold.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioGate): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioGate` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioGate#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Limits how loud audio streams are allowed to be.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter)
*/
interface AudioLimiter extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioLimiter: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#Bypass)
*/
Bypass: boolean;
/**
* The maximum volume tolerated.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#MaxLevel)
*/
MaxLevel: number;
/**
* The amount of time it takes for previously limited streams to return to their normal volume.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#Release)
*/
Release: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#GetConnectedWires)
* @param this Limits how loud audio streams are allowed to be.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioLimiter, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#GetInputPins)
* @param this Limits how loud audio streams are allowed to be.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioLimiter): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#GetOutputPins)
* @param this Limits how loud audio streams are allowed to be.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioLimiter): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioLimiter` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioLimiter#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener)
*/
interface AudioListener extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioListener: unique symbol;
/**
* Determines whether acoustic simulation should be used for this `AudioListener`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#AcousticSimulationEnabled)
*/
AcousticSimulationEnabled: boolean;
/**
* Controls which `AudioEmitters` are audible to this `AudioListener`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#AudioInteractionGroup)
*/
AudioInteractionGroup: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#DiffractionEnabled)
*/
DiffractionEnabled: Enum.SimulationMode;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#OcclusionEnabled)
*/
OcclusionEnabled: Enum.SimulationMode;
/**
* The `Instance` whose position and orientation is used as the listener's position if `PositionType` is set to `ListenerPositionType.Instance`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#PositionInstance)
*/
PositionInstance: Instance | undefined;
/**
* Determines how the `AudioListener` determines its 3D location.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#PositionType)
*/
PositionType: Enum.ListenerPositionType;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#ReverbEnabled)
*/
ReverbEnabled: Enum.SimulationMode;
/**
* **Deprecated:**
*
* Controls how detailed the audio simulation should be for this `AudioListener`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#SimulationFidelity)
*
* @deprecated AcousticSimulationEnabled
*/
SimulationFidelity: Enum.AudioSimulationFidelity;
/**
* Gets the angle attenuation curve that the `AudioListener` is using, or an empty table if it's using the default curve.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetAngleAttenuation)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @returns Table mapping angle to volume, as described above.
*/
GetAngleAttenuation(this: AudioListener): object;
/**
* Calculates how audible an `AudioEmitter` is for this listener
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetAudibilityFor)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @param emitter The `AudioEmitter` whose audibility should be calculated relative to this listener.
* @returns A number between 0 and 1 representing the combined volume after distance and angle attenuation from both the emitter and listener.
*/
GetAudibilityFor(this: AudioListener, emitter: AudioEmitter): number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetConnectedWires)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioListener, pin: string): Array;
/**
* Gets the distance attenuation curve that the `AudioListener` is using, or an empty table if it's using the default curve.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetDistanceAttenuation)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @returns A table mapping distance keys to volume values, or an empty table if the default curve is being used.
*/
GetDistanceAttenuation(this: AudioListener): object;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetInputPins)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioListener): Array;
/**
* Lists all `AudioEmitters` that this listener is capable of hearing.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetInteractingEmitters)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @returns An array of `AudioEmitters` that share an `AudioInteractionGroup` with this listener.
*/
GetInteractingEmitters(this: AudioListener): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#GetOutputPins)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioListener): Array;
/**
* Sets the angle attenuation curve that the `AudioListener` should use, or uses a constant curve of volume `1` if none is provided.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#SetAngleAttenuation)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @param curve A table mapping angle keys (0 to 180) to volume values (0 to 1), or an empty/nil table to use the default constant volume of 1.
*/
SetAngleAttenuation(this: AudioListener, curve: object): void;
/**
* Sets the distance attenuation curve that the `AudioListener` should use, or uses an inverse rolloff curve if none is provided.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#SetDistanceAttenuation)
* @param this Records an audio stream from its surrounding `AudioEmitters` in the 3D world.
* @param curve A table mapping distance keys (greater than or equal to 0) to volume values (0 to 1), or an empty/nil table to use the default constant volume of 1 everywhere.
*/
SetDistanceAttenuation(this: AudioListener, curve: object): void;
/**
* Fires when another instance is connected to or disconnected from the `AudioListener` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioListener#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Adjusts the perceived pitch of audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter)
*/
interface AudioPitchShifter extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioPitchShifter: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#Bypass)
*/
Bypass: boolean;
/**
* Pitch modification to be multiplied by the pitch of the input stream.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#Pitch)
*/
Pitch: number;
/**
* Controls how much audio will be buffered and shifted at once.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#WindowSize)
*/
WindowSize: Enum.AudioWindowSize;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#GetConnectedWires)
* @param this Adjusts the perceived pitch of audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioPitchShifter, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#GetInputPins)
* @param this Adjusts the perceived pitch of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioPitchShifter): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#GetOutputPins)
* @param this Adjusts the perceived pitch of audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioPitchShifter): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioPitchShifter` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPitchShifter#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Used to play audio assets.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer)
*/
interface AudioPlayer extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioPlayer: unique symbol;
/**
* The asset to be loaded into the `AudioPlayer`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Asset)
*/
Asset: ContentId;
/**
* **Deprecated:** This property is deprecated; use `Asset` instead.
*
* The asset to be loaded into the `AudioPlayer`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#AssetId)
*
* @deprecated Asset
*/
AssetId: string;
/**
* The audio content to be loaded into the `AudioPlayer`.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: Hidden
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#AudioContent)
*/
AudioContent: Content;
/**
* Controls whether `Asset` loads automatically once assigned.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#AutoLoad)
*/
AutoLoad: boolean;
/**
* Denotes whether this `AudioPlayer` starts playing as soon as it spawns in for the first time.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#AutoPlay)
*/
AutoPlay: boolean;
/**
* Denotes whether this `AudioPlayer` is currently playing or planning to play.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#IsPlaying)
*/
get IsPlaying(): boolean;
/**
* Denotes whether this `AudioPlayer` is loaded, buffered, and ready to play.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#IsReady)
*/
readonly IsReady: boolean;
/**
* A range, in seconds, denoting a desired loop start and loop end within the `PlaybackRegion` of this `AudioPlayer`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#LoopRegion)
*/
LoopRegion: NumberRange;
/**
* Controls whether this `AudioPlayer` loops.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Looping)
*/
Looping: boolean;
/**
* Range in seconds denoting a desired start time (minimum) and stop time (maximum) within the `TimeLength`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#PlaybackRegion)
*/
PlaybackRegion: NumberRange;
/**
* Controls how quickly the asset will be played, which controls its pitch.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#PlaybackSpeed)
*/
PlaybackSpeed: number;
/**
* Denotes the length of the loaded asset.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#TimeLength)
*/
readonly TimeLength: number;
/**
* Tracks the current position of the playhead within the asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#TimePosition)
*/
TimePosition: number;
/**
* Controls how loudly the asset will be played.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Volume)
*/
Volume: number;
/**
* Attempts to cancel a pre-planned future `Play` or `Stop` command.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Cancel)
* @param this Used to play audio assets.
* @param actionId The unique-ID of a pre-planned `Play` or `Stop` command.
* @returns Whether the cancellation was successful. Returns false if the action has already occurred, or otherwise does not exist.
*/
Cancel(this: AudioPlayer, actionId?: number): boolean;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#GetConnectedWires)
* @param this Used to play audio assets.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioPlayer, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#GetInputPins)
* @param this Used to play audio assets.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioPlayer): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#GetOutputPins)
* @param this Used to play audio assets.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioPlayer): Array;
/**
* Plays the `AudioPlayer` from wherever its `TimePosition` is.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Play)
* @param this Used to play audio assets.
* @param atTime A specific time, based on `GetMixerTime`, that this `AudioPlayer` should begin playing at.
* @returns If `atTime` was provided, a unique ID, which can be passed to `Cancel()`.
*/
Play(this: AudioPlayer, atTime?: number): number | undefined;
/**
* Stops the `AudioPlayer` wherever its `TimePosition` is.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Stop)
* @param this Used to play audio assets.
* @param atTime A specific time, based on `GetMixerTime`, that this `AudioPlayer` should stop playing at.
* @returns If `atTime` was provided, a unique ID, which can be passed to `Cancel()`.
*/
Stop(this: AudioPlayer, atTime?: number): number | undefined;
/**
* Returns a sampling of the waveform data for the loaded `Asset`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#GetWaveformAsync)
* @param this Used to play audio assets.
* @param timeRange The start and end time (in seconds) of the segment to read.
* @param samples The number of samples to return for the specified range.
* @returns A table of `samples` numbers ranging between -1 and 1 representing the sampled waveform, or an empty table if a waveform could not be read.
*/
GetWaveformAsync(this: AudioPlayer, timeRange: NumberRange, samples: number): Array;
/**
* Fires when the `AudioPlayer` has completed playback and stopped.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Ended)
*/
readonly Ended: RBXScriptSignal<() => void>;
/**
* Fires when the `AudioPlayer` loops.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#Looped)
*/
readonly Looped: RBXScriptSignal<() => void>;
/**
* Fires when another instance is connected to or disconnected from the `AudioPlayer` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioPlayer#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Records audio streams in-experience.
*
* - **Tags**: NotBrowsable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder)
*/
interface AudioRecorder extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioRecorder: unique symbol;
/**
* Whether the `AudioRecorder` is currently recording.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#IsRecording)
*/
get IsRecording(): boolean;
/**
* The current length of the recording in seconds.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#TimeLength)
*/
readonly TimeLength: number;
/**
* Clears out the recording from the `AudioRecorder`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#Clear)
* @param this Records audio streams in-experience.
*/
Clear(this: AudioRecorder): void;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#GetConnectedWires)
* @param this Records audio streams in-experience.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioRecorder, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#GetInputPins)
* @param this Records audio streams in-experience.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioRecorder): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#GetOutputPins)
* @param this Records audio streams in-experience.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioRecorder): Array;
/**
* Returns a `Content` object representing the current audio recording.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#GetTemporaryContent)
* @param this Records audio streams in-experience.
* @returns A temporary `Content` ID that can be used with `AudioPlayer`.
*/
GetTemporaryContent(this: AudioRecorder): Content;
/**
* Stops recording audio.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#Stop)
* @param this Records audio streams in-experience.
*/
Stop(this: AudioRecorder): void;
/**
* Returns whether the `AudioRecorder` can currently record.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#CanRecordAsync)
* @param this Records audio streams in-experience.
* @returns `true` if recording is possible, `false` otherwise.
*/
CanRecordAsync(this: AudioRecorder): boolean;
/**
* Returns any instances which cannot be recorded.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#GetUnrecordableInstancesAsync)
* @param this Records audio streams in-experience.
* @returns A table of `Instances` that are not recordable.
*/
GetUnrecordableInstancesAsync(this: AudioRecorder): Array;
/**
* Starts recording audio.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#RecordAsync)
* @param this Records audio streams in-experience.
*/
RecordAsync(this: AudioRecorder): void;
/**
* Fires when another instance is connected to or disconnected from the `AudioRecorder` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioRecorder#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Reverberates audio streams.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb)
*/
interface AudioReverb extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioReverb: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#Bypass)
*/
Bypass: boolean;
/**
* Controls how quickly high frequency sound decays compared to the overall reverb.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#DecayRatio)
*/
DecayRatio: number;
/**
* Controls how long it takes for the reverb to dissipate.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#DecayTime)
*/
DecayTime: number;
/**
* Controls how many reflections are generated.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#Density)
*/
Density: number;
/**
* Controls how smooth and reflective the simulated surfaces are.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#Diffusion)
*/
Diffusion: number;
/**
* Gain level determining how loud the original, unaltered audio stream will be.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#DryLevel)
*/
DryLevel: number;
/**
* Controls the amount of time before reverberation begins .
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#EarlyDelayTime)
*/
EarlyDelayTime: number;
/**
* Frequency above which sound is filtered out of the reverb.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#HighCutFrequency)
*/
HighCutFrequency: number;
/**
* Time, following early delays, before diffuse reverberations begin.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#LateDelayTime)
*/
LateDelayTime: number;
/**
* Frequency below which audio can be boosted or reduced in the reverb.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#LowShelfFrequency)
*/
LowShelfFrequency: number;
/**
* Controls the presence of low frequency content in the reverb.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#LowShelfGain)
*/
LowShelfGain: number;
/**
* Frequency that separates low frequency decay speeds from high frequency decay speeds.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#ReferenceFrequency)
*/
ReferenceFrequency: number;
/**
* Gain level determining how loud the reverberated stream will be.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#WetLevel)
*/
WetLevel: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#GetConnectedWires)
* @param this Reverberates audio streams.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioReverb, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#GetInputPins)
* @param this Reverberates audio streams.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioReverb): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#GetOutputPins)
* @param this Reverberates audio streams.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioReverb): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioReverb` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioReverb#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Instance to be passed to `AssetService:SearchAudioAsync()` to search for audio assets.
*
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams)
*/
interface AudioSearchParams extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioSearchParams: unique symbol;
/**
* The album the audio asset belongs to.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#Album)
*/
Album: string;
/**
* The artist that created the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#Artist)
*/
Artist: string;
/**
* The subtype of the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#AudioSubType)
*/
AudioSubType: Enum.AudioSubType;
/**
* **Deprecated:** Use `AudioSubType` instead.
*
* The subtype of the audio asset.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#AudioSubtype)
*
* @deprecated AudioSubType
*/
AudioSubtype: Enum.AudioSubType;
/**
* The maximum duration of the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#MaxDuration)
*/
MaxDuration: number;
/**
* The minimum duration of the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#MinDuration)
*/
MinDuration: number;
/**
* The keyword to search for.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#SearchKeyword)
*/
SearchKeyword: string;
/**
* The tag of the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#Tag)
*/
Tag: string;
/**
* The title of the audio asset.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSearchParams#Title)
*/
Title: string;
}
/**
* Converts spoken audio into text.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText)
*/
interface AudioSpeechToText extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioSpeechToText: unique symbol;
/**
* Whether the `AudioSpeechToText` object is enabled for processing input audio into text.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#Enabled)
*/
Enabled: boolean;
/**
* The text resulting from the conversion of speech audio.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#Text)
*/
Text: string;
/**
* Whether the `AudioSpeechToText` object is detecting speech in the incoming audio signal.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#VoiceDetected)
*/
readonly VoiceDetected: boolean;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#GetConnectedWires)
* @param this Converts spoken audio into text.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioSpeechToText, pin: string): Array;
/**
* Gets the list of pins that a `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#GetInputPins)
* @param this Converts spoken audio into text.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioSpeechToText): Array;
/**
* Gets the list of pins that a `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#GetOutputPins)
* @param this Converts spoken audio into text.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioSpeechToText): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioSpeechToText` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioSpeechToText#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Plays text as speech audio.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech)
*/
interface AudioTextToSpeech extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioTextToSpeech: unique symbol;
/**
* Denotes whether the `AudioTextToSpeech` object is loaded, buffered, and ready to play.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#IsLoaded)
*/
readonly IsLoaded: boolean;
/**
* Denotes whether the `AudioTextToSpeech` object is currently playing.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#IsPlaying)
*/
get IsPlaying(): boolean;
/**
* Controls whether the `AudioTextToSpeech` object loops.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Looping)
*/
Looping: boolean;
/**
* Controls the pitch of the generated speech audio, which will be independent of its speed.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Pitch)
*/
Pitch: number;
/**
* Controls how quickly the speech audio will be played, which controls its pitch.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#PlaybackSpeed)
*/
PlaybackSpeed: number;
/**
* Controls the speed of the generated speech audio, which will be independent of its pitch.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Speed)
*/
Speed: number;
/**
* The text to be converted into speech audio by `AudioTextToSpeech`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Text)
*/
Text: string;
/**
* Denotes the length of the generated speech audio.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#TimeLength)
*/
readonly TimeLength: number;
/**
* Tracks the current position of the playhead within the generated speech audio.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#TimePosition)
*/
TimePosition: number;
/**
* The voice style to be used by `AudioTextToSpeech`.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#VoiceId)
*/
VoiceId: string;
/**
* Controls how loudly the generated speech audio will be played.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Volume)
*/
Volume: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#GetConnectedWires)
* @param this Plays text as speech audio.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioTextToSpeech, pin: string): Array;
/**
* Gets the list of pins that a `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#GetInputPins)
* @param this Plays text as speech audio.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioTextToSpeech): Array;
/**
* Gets the list of pins that a `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#GetOutputPins)
* @param this Plays text as speech audio.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioTextToSpeech): Array;
/**
* Pauses the `AudioTextToSpeech` object wherever its `TimePosition` is.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Pause)
* @param this Plays text as speech audio.
*/
Pause(this: AudioTextToSpeech): void;
/**
* Plays the `AudioTextToSpeech` from wherever its `TimePosition` is.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Play)
* @param this Plays text as speech audio.
*/
Play(this: AudioTextToSpeech): void;
/**
* Unload the generated speech audio.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Unload)
* @param this Plays text as speech audio.
*/
Unload(this: AudioTextToSpeech): void;
/**
* Returns a sampling of the waveform data for the generated audio.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#GetWaveformAsync)
* @param this Plays text as speech audio.
* @param timeRange The start and end time (in seconds) of the segment to read.
* @param samples The number of samples to return for the specified range.
* @returns A table of `samples` numbers ranging between -1 and 1 representing the sampled waveform,
*/
GetWaveformAsync(this: AudioTextToSpeech, timeRange: NumberRange, samples: number): Array;
/**
* Generates speech audio.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#LoadAsync)
* @param this Plays text as speech audio.
* @returns An `AssetFetchStatus` — `Success` once the speech audio has been generated, or `Failure` if generation could not be completed.
*/
LoadAsync(this: AudioTextToSpeech): Enum.AssetFetchStatus;
/**
* Fires when the `AudioTextToSpeech` object has completed playback and paused.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Ended)
*/
readonly Ended: RBXScriptSignal<() => void>;
/**
* Fires when the `AudioTextToSpeech` object loops.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#Looped)
*/
readonly Looped: RBXScriptSignal<() => void>;
/**
* Fires when another instance is connected to or disconnected from the `AudioTextToSpeech` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTextToSpeech#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* Creates a trembling effect on a sound by varying the volume of the sound up and down.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo)
*/
interface AudioTremolo extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioTremolo: unique symbol;
/**
* Whether audio streams are passed-through unaffected by this effect.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Bypass)
*/
Bypass: boolean;
/**
* Controls how much the volume will raise and lower.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Depth)
*/
Depth: number;
/**
* Controls how long the effect will be active during one volume oscillation.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Duty)
*/
Duty: number;
/**
* Sets how often the effect will oscillate the volume.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Frequency)
*/
Frequency: number;
/**
* Controls the shape of the low frequency oscillations.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Shape)
*/
Shape: number;
/**
* Time-skews the low frequency oscillations cycle.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Skew)
*/
Skew: number;
/**
* Flatness of the low frequency oscillations shape.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#Square)
*/
Square: number;
/**
* Returns an array of `Wires` that are connected to the specified pin.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#GetConnectedWires)
* @param this Creates a trembling effect on a sound by varying the volume of the sound up and down.
* @param pin An input or output pin on this instance
* @returns An array of `Wires`
*/
GetConnectedWires(this: AudioTremolo, pin: string): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.TargetName` to connect to this instance via its `Wire.TargetInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#GetInputPins)
* @param this Creates a trembling effect on a sound by varying the volume of the sound up and down.
* @returns An array of strings representing valid pin names.
*/
GetInputPins(this: AudioTremolo): Array;
/**
* Gets the list of pins that `Wire` can use in `Wire.SourceName` to connect to this instance via its `Wire.SourceInstance` property.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#GetOutputPins)
* @param this Creates a trembling effect on a sound by varying the volume of the sound up and down.
* @returns An array of strings representing valid pin names.
*/
GetOutputPins(this: AudioTremolo): Array;
/**
* Fires when another instance is connected to or disconnected from the `AudioTremolo` via a `Wire`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioTremolo#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* - **Tags**: NotBrowsable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer)
*/
interface AudioWindSynthesizer extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AudioWindSynthesizer: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#Enabled)
*/
Enabled: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#PositionInstance)
*/
PositionInstance: Instance | undefined;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#PositionType)
*/
PositionType: Enum.AudioPositionType;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#Profile)
*/
Profile: Enum.WindSoundProfile;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#Volume)
*/
Volume: number;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#GetConnectedWires)
*/
GetConnectedWires(this: AudioWindSynthesizer, pin: string): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#GetInputPins)
*/
GetInputPins(this: AudioWindSynthesizer): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#GetOutputPins)
*/
GetOutputPins(this: AudioWindSynthesizer): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AudioWindSynthesizer#WiringChanged)
*/
readonly WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance) => void>;
}
/**
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptObject)
*
* @deprecated
*/
interface AuroraScriptObject extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AuroraScriptObject: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptObject#FrameId)
*/
FrameId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptObject#LODLevel)
*/
LODLevel: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptObject#PriorFrameInvoked)
*/
PriorFrameInvoked: number;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService)
*
* @deprecated
*/
interface AuroraScriptService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AuroraScriptService: unique symbol;
/**
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#FindBinding)
*/
FindBinding(this: AuroraScriptService, instance: Instance, scriptName: string): RBXObject;
/**
* - **ThreadSafety**: Safe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#FindBindings)
*/
FindBindings(this: AuroraScriptService, instance: Instance): object;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#GetAllCollections)
*/
GetAllCollections(this: AuroraScriptService): Array;
/**
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#GetLocalFrameId)
*/
GetLocalFrameId(this: AuroraScriptService): number;
/**
* - **ThreadSafety**: Safe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#SendMessage)
*/
SendMessage(this: AuroraScriptService, instance: Instance, behaviorName: string, functionName: string, args: unknown): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#getBehaviors)
*/
getBehaviors(this: AuroraScriptService): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#getBehaviorsForInstance)
*/
getBehaviorsForInstance(this: AuroraScriptService, instance: Instance): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraScriptService#getInstancesForBehavior)
*/
getInstancesForBehavior(this: AuroraScriptService, behavior: AuroraScript): Array;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService)
*
* @deprecated
*/
interface AuroraService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AuroraService: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#HashRoundingPoint)
*/
HashRoundingPoint: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#IgnoreRotation)
*/
IgnoreRotation: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#LockStepIdOffset)
*/
LockStepIdOffset: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#RollbackOffset)
*/
RollbackOffset: number;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#GetPredictedInstances)
*/
GetPredictedInstances(this: AuroraService): Array;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#GetRemoteWorldStepId)
*/
GetRemoteWorldStepId(this: AuroraService): number;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#GetServerView)
*/
GetServerView(this: AuroraService, target: Instance): Instance | undefined;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#GetWorldStepId)
*/
GetWorldStepId(this: AuroraService): number;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#IsInstancePredicted)
*/
IsInstancePredicted(this: AuroraService, target: Instance): boolean;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#PlayInputRecording)
*/
PlayInputRecording(this: AuroraService): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#SetReplicationLag)
*/
SetReplicationLag(this: AuroraService, seconds: number): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#ShowDebugVisualizer)
*/
ShowDebugVisualizer(this: AuroraService, state: boolean): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#StartInputRecording)
*/
StartInputRecording(this: AuroraService): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#StartPrediction)
*/
StartPrediction(this: AuroraService, target: Instance): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#StepPhysics)
*/
StepPhysics(this: AuroraService, worldSteps: number, parts?: Array): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#StopInputRecording)
*/
StopInputRecording(this: AuroraService): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#StopPrediction)
*/
StopPrediction(this: AuroraService, target: Instance): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#UpdateProperties)
*/
UpdateProperties(this: AuroraService, target: Instance): void;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#FixedRateTick)
*/
readonly FixedRateTick: RBXScriptSignal<(deltaTime: number, worldStepId: number) => void>;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AuroraService#Step)
*/
readonly Step: RBXScriptSignal<() => void>;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarAbilityRules)
*/
interface AvatarAbilityRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarAbilityRules: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarAccessoryRules)
*/
interface AvatarAccessoryRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarAccessoryRules: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarAnimationRules)
*/
interface AvatarAnimationRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarAnimationRules: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarBodyRules)
*/
interface AvatarBodyRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarBodyRules: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarChatService)
*/
interface AvatarChatService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarChatService: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarClothingRules)
*/
interface AvatarClothingRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarClothingRules: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCollisionRules)
*/
interface AvatarCollisionRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarCollisionRules: unique symbol;
}
/**
* A service to support developer avatar creators.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService)
*/
interface AvatarCreationService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarCreationService: unique symbol;
/**
* Gets data regarding rules that assets must abide by to pass UGC validation.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: CustomLuaState
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#GetValidationRules)
* @param this A service to support developer avatar creators.
* @returns Dictionary of validation rules as detailed above.
*/
GetValidationRules(this: AvatarCreationService): object;
/**
* Automatically sets up a custom `Model` and/or avatar accessories.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#AutoSetupAvatarAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` that the avatar is being set up for.
* @param autoSetupParams A table containing the arguments. Type: `type AutoSetupAccessory = { AccessoryType: Enum.AccessoryType, IsLayered: bool, Instance: Model, } type AutoSetupParams = { Body: Model?, Accessories: {AutoSetupAccessory}, }`
* @param progressCallback Optional callback function that will be invoked periodically with a progressInfo table with the overall progress (from 0 to 1). Type: `(progressInfo: { Progress: number }) -> ()`
* @returns A unique identifier for the generated avatar.
*/
AutoSetupAvatarAsync(this: AvatarCreationService, player: Player, autoSetupParams: object, progressCallback?: Callback): string;
/**
* Creates a 2D avatar preview and returns a `previewId`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#GenerateAvatar2DPreviewAsync)
* @param this A service to support developer avatar creators.
* @param avatarGeneration2dPreviewParams A table of arguments for 2D preview generation. Type: `avatarGeneration2dPreviewParams: {SessionId: string, FileId: string, TextPrompt: string?}`
* @param progressCallback Optional callback function that will be invoked periodically with a progressInfo table with the overall progress (from 0 to 1). Type: `(progressInfo: { Progress: number }) -> ()`
* @returns A string previewId
*/
GenerateAvatar2DPreviewAsync(this: AvatarCreationService, avatarGeneration2dPreviewParams: object, progressCallback?: Callback): string;
/**
* Generates an avatar and returns a generationId.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#GenerateAvatarAsync)
* @param this A service to support developer avatar creators.
* @param avatarGenerationParams A table of arguments for generating an avatar. Type: `avatarGenerationParams: {SessionId: string, PreviewId: string}`
* @param progressCallback Optional callback function that will be invoked periodically with a progressInfo table with the overall progress (from 0 to 1). Type: `(progressInfo: { Progress: number }) -> ()`
* @returns A string generationId.
*/
GenerateAvatarAsync(this: AvatarCreationService, avatarGenerationParams: object, progressCallback?: Callback): string;
/**
* Gets the avatar creation token details for a list of avatar creation tokens at once.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#GetBatchTokenDetailsAsync)
* @param this A service to support developer avatar creators.
* @param tokenIds The list of avatar creation token IDs to get details of.
* @returns Array of avatar creation token details as outlined above.
*/
GetBatchTokenDetailsAsync(this: AvatarCreationService, tokenIds: Array): Array;
/**
* Load an AvatarGeneration 2D preview on the client from a previewId.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#LoadAvatar2DPreviewAsync)
* @param this A service to support developer avatar creators.
* @param previewId Load the preview generated from `GenerateAvatar2DPreviewAsync()`.
* @returns An `EditableImage` containing the preview image.
*/
LoadAvatar2DPreviewAsync(this: AvatarCreationService, previewId: string): EditableImage;
/**
* Loads a generated avatar using an avatar generation ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#LoadGeneratedAvatarAsync)
* @param this A service to support developer avatar creators.
* @param generationId A unique string that identifies the generated avatar, as returned by `AutoSetupAvatarAsync()`.
* @returns The `HumanoidDescription` of the generated avatar, which includes all the generated instances and properties.
*/
LoadGeneratedAvatarAsync(this: AvatarCreationService, generationId: string): HumanoidDescription;
/**
* Prepares in-experience avatar for preview.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#PrepareAvatarForPreviewAsync)
* @param this A service to support developer avatar creators.
* @param humanoidModel The `Model` containing `MeshPart` children with `WrapDeformer` instances that require HSR data updating for preview.
*/
PrepareAvatarForPreviewAsync(this: AvatarCreationService, humanoidModel: Model): void;
/**
* Prompts a `Player` to purchase and create an avatar asset from an `Instance`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#PromptCreateAvatarAssetAsync)
* @param this A service to support developer avatar creators.
* @param tokenId The ID of a creation token. The token must be valid in that the universe the method is called from is the same universe the token was created for. Furthermore, the token creator must maintain ID verification and [Roblox Premium](https://www.roblox.com/premium/membership). To create a token for utilization in this API, follow the [token creation](../../../production/monetization/avatar-creation-token.md) process. The token's creation type must match the `AvatarAssetType` passed in to the method.
* @param player The `Player` intended to be presented with the creation prompt.
* @param assetInstance The `Instance` of the avatar asset intended for creation.
* @param assetType The `AvatarAssetType` of the expected creation. This must match the creation type of the provided token.
* @returns A tuple containing, in order: - An `PromptCreateAssetResult` indicating the result of the creation prompt.
* - A string result. In the case of `PromptCreateAssetResult.Success`, this will indicate the asset ID. In the case of any failure enum, this will indicate the resultant error message.
*/
PromptCreateAvatarAssetAsync(this: AvatarCreationService, tokenId: string, player: Player, assetInstance: Instance, assetType: CastsToEnum): unknown;
/**
* Prompts a `Player` to purchase and create an avatar from a `HumanoidDescription`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#PromptCreateAvatarAsync)
* @param this A service to support developer avatar creators.
* @param tokenId The ID of an avatar creation token. The token must be valid in that the universe the method is called from is the same universe the token was created for. Furthermore, the token creator must maintain ID verification and [Roblox Premium](https://www.roblox.com/premium/membership). To create a token for utilization in this API, follow the [token creation](../../../production/monetization/avatar-creation-token.md) process.
* @param player The `Player` intended to be presented with the creation prompt.
* @param humanoidDescription The `HumanoidDescription` of the avatar intended for creation.
* @returns A tuple containing, in order: - An `PromptCreateAvatarResult` indicating the result of the creation prompt.
* - A string result. In the case of `PromptCreateAvatarResult.Success`, this will indicate the bundle ID. In the case of any failure enum, this will indicate the resultant error message.
* - A secondary optional string result. In the case of `PromptCreateAvatarResult.Success`, this will indicate the outfit ID. In the case of any failure enum, this will be `nil`.
*/
PromptCreateAvatarAsync(this: AvatarCreationService, tokenId: string, player: Player, humanoidDescription: HumanoidDescription): unknown;
/**
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#PromptCreateMakeupAsync)
*/
PromptCreateMakeupAsync(this: AvatarCreationService, player: Player, makeupAssetEntries: Array, thumbnailHeadColor?: Color3): unknown;
/**
* Prompt the `Player` to take a selfie and return the FileId.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#PromptSelectAvatarGenerationImageAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` to prompt for taking a selfie.
* @returns A string FileId of the selfie on success, or an error string describing the reason for failure.
*/
PromptSelectAvatarGenerationImageAsync(this: AvatarCreationService, player: Player): string;
/**
* Request an AvatarGeneration session for a `Player`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#RequestAvatarGenerationSessionAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` to request an AvatarGeneration session for.
* @param callback Callback function that is invoked with a SessionInfo table, with information about the session. Type: `(SessionInfo: { SessionId: string, Allowed2DGenerations: number, Allowed3DGenerations: number, SessionTime: number }) -> ()`
* @returns A tuple containing a `RBXScriptConnection` that can be used to cancel the session request and the estimated wait time in seconds.
*/
RequestAvatarGenerationSessionAsync(this: AvatarCreationService, player: Player, callback: Callback): unknown;
/**
* Studio only. Runs UGC validation for an `AccessoryType`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#ValidateUGCAccessoryAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` validation is completed for.
* @param accessory The instance validation is run on.
* @param accessoryType The `AccessoryType` the instance is expected to be.
* @returns A tuple containing, in order: - A boolean indicating if validation was successful for the accessory.
* - An optional table of strings. This includes failure reasons if validation was unsuccessful; otherwise `nil` if validation was successful.
*/
ValidateUGCAccessoryAsync(this: AvatarCreationService, player: Player, accessory: Instance, accessoryType: CastsToEnum): unknown;
/**
* Studio only. Runs UGC validation for an `BodyPart`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#ValidateUGCBodyPartAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` validation is completed for.
* @param instance The instance validation is run on.
* @param bodyPart `BodyPart` the instance is expected to be.
* @returns A tuple containing, in order: - A boolean indicating if validation was successful for the body part.
* - An optional table of strings. This includes failure reasons if validation was unsuccessful; otherwise `nil` if validation was successful.
*/
ValidateUGCBodyPartAsync(this: AvatarCreationService, player: Player, instance: Instance, bodyPart: CastsToEnum): unknown;
/**
* Studio only. Runs UGC validation for a whole body.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#ValidateUGCFullBodyAsync)
* @param this A service to support developer avatar creators.
* @param player The `Player` validation is completed for.
* @param humanoidDescription `HumanoidDescription` representing the body that validation is run on.
* @returns A tuple containing, in order: - A boolean indicating if validation was successful for the body.
* - An optional table of strings. This includes failure reasons if validation was unsuccessful; otherwise `nil` if validation was successful.
*/
ValidateUGCFullBodyAsync(this: AvatarCreationService, player: Player, humanoidDescription: HumanoidDescription): unknown;
/**
* Fires when an in-experience-created avatar asset's moderation status has been updated from pending.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#AvatarAssetModerationCompleted)
*/
readonly AvatarAssetModerationCompleted: RBXScriptSignal<(assetId: number, moderationStatus: Enum.ModerationStatus) => void>;
/**
* Fires when an in-experience-created avatar's moderation status has been updated from pending.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#AvatarModerationCompleted)
*/
readonly AvatarModerationCompleted: RBXScriptSignal<(outfitId: number, moderationStatus: Enum.ModerationStatus) => void>;
/**
* Fires on the client when moderation completes for an in-experience-created outfit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarCreationService#AvatarOutfitModerationCompleted)
*/
readonly AvatarOutfitModerationCompleted: RBXScriptSignal<(outfitId: number, moderationStatus: Enum.ModerationStatus, outfitType: Enum.OutfitType) => void>;
}
/**
* A service to support developer Avatar Editors.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService)
*/
interface AvatarEditorService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarEditorService: unique symbol;
/**
* Returns the `AccessoryType` that corresponds to the given `AvatarAssetType`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetAccessoryType)
* @param this A service to support developer Avatar Editors.
* @param avatarAssetType The `AvatarAssetType` to convert to its corresponding `AccessoryType`.
* @returns The `AccessoryType` corresponding to the given `AvatarAssetType`, or `AccessoryType.Unknown` if the asset type has no matching accessory type.
*/
GetAccessoryType(this: AvatarEditorService, avatarAssetType: CastsToEnum): Enum.AccessoryType;
/**
* Prompts the `Players.LocalPlayer` to allow the developer to read what items the user has in their inventory and other avatar editor related information.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptAllowInventoryReadAccess)
* @param this A service to support developer Avatar Editors.
*/
PromptAllowInventoryReadAccess(this: AvatarEditorService): void;
/**
* Prompts the `Players.LocalPlayer` to save the given `HumanoidDescription` as an outfit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptCreateOutfit)
* @param this A service to support developer Avatar Editors.
* @param outfit The `Outfit` that the player will be prompted to created.
* @param rigType The `HumanoidRigType` that the outfit will be created for if the player confirms the prompt.
* @param outfitOptions Reserved for future options. Must be empty or omitted.
* @param outfitType Optional `OutfitType`. Only `Avatar` and `Makeup` values are accepted. When omitted, the type is inferred from the description.
*/
PromptCreateOutfit(this: AvatarEditorService, outfit: HumanoidDescription, rigType: CastsToEnum, outfitOptions: object, outfitType: unknown): void;
/**
* Prompts the `Players.LocalPlayer` to delete the given outfit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptDeleteOutfit)
* @param this A service to support developer Avatar Editors.
* @param outfitId The outfitId of the outfit to delete.
*/
PromptDeleteOutfit(this: AvatarEditorService, outfitId: number): void;
/**
* Prompts the `Players.LocalPlayer` to rename the given outfit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptRenameOutfit)
* @param this A service to support developer Avatar Editors.
* @param outfitId The outfitId of the outfit to rename.
*/
PromptRenameOutfit(this: AvatarEditorService, outfitId: number): void;
/**
* Prompts the `Players.LocalPlayer` to update their avatar based on the given `HumanoidDescription` and `HumanoidRigType` of R6 or R15.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptSaveAvatar)
* @param this A service to support developer Avatar Editors.
* @param humanoidDescription The given `HumanoidDescription` being prompted to save.
* @param rigType The `HumanoidRigType` that the avatar will be saved for if the player confirms the prompt.
*/
PromptSaveAvatar(this: AvatarEditorService, humanoidDescription: HumanoidDescription, rigType: CastsToEnum): void;
/**
* Prompts the `Players.LocalPlayer` to favorite or unfavorite the given asset or bundle.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptSetFavorite)
* @param this A service to support developer Avatar Editors.
* @param itemId The ItemId of the item being prompted to favorite.
* @param itemType The type of item being prompted to favorite.
* @param shouldFavorite Whether to favorite (`true`) or unfavorite (`false`) the item.
*/
PromptSetFavorite(this: AvatarEditorService, itemId: number, itemType: CastsToEnum, shouldFavorite: boolean): void;
/**
* Prompts the `Players.LocalPlayer` to update the given outfit.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptUpdateOutfit)
* @param this A service to support developer Avatar Editors.
* @param outfitId The outfitId of the outfit to update.
* @param updatedOutfit A `HumanoidDescription` that represents the new outfit data.
* @param rigType The `HumanoidRigType` to update the outfit to.
*/
PromptUpdateOutfit(this: AvatarEditorService, outfitId: number, updatedOutfit: HumanoidDescription, rigType: CastsToEnum): void;
/**
* **Deprecated:**
*
* Used to apply default clothing to the `HumanoidDescription` if necessary.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#CheckApplyDefaultClothing)
* @param this A service to support developer Avatar Editors.
* @param humanoidDescription The HumanoidDescription to check if default clothing is required.
* @returns Returns a HumanoidDescription if default clothing was necessary. Otherwise returns `nil`.
*
* @deprecated CheckApplyDefaultClothingAsync
*/
CheckApplyDefaultClothing(this: AvatarEditorService, humanoidDescription: HumanoidDescription): HumanoidDescription | undefined;
/**
* Used to apply default clothing to the `HumanoidDescription` if necessary.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#CheckApplyDefaultClothingAsync)
* @param this A service to support developer Avatar Editors.
* @param humanoidDescription The HumanoidDescription to check if default clothing is required.
* @returns Returns a HumanoidDescription if default clothing was necessary. Otherwise returns `nil`.
*/
CheckApplyDefaultClothingAsync(this: AvatarEditorService, humanoidDescription: HumanoidDescription): HumanoidDescription;
/**
* **Deprecated:**
*
* Deprecated. Returns a copy of the given `HumanoidDescription` that conforms to the platform Avatar rules.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#ConformToAvatarRules)
* @param this A service to support developer Avatar Editors.
* @param humanoidDescription The `HumanoidDescription` to conform to the platform Avatar rules.
* @returns A new `HumanoidDescription` that conforms to the platform Avatar rules.
*
* @deprecated ConformToAvatarRulesAsync
*/
ConformToAvatarRules(this: AvatarEditorService, humanoidDescription: HumanoidDescription): HumanoidDescription;
/**
* Returns a copy of the given `HumanoidDescription` that conforms to the platform Avatar rules.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#ConformToAvatarRulesAsync)
* @param this A service to support developer Avatar Editors.
* @param humanoidDescription The `HumanoidDescription` to conform.
* @returns A new `HumanoidDescription` that conforms to the platform Avatar rules.
*/
ConformToAvatarRulesAsync(this: AvatarEditorService, humanoidDescription: HumanoidDescription): HumanoidDescription;
/**
* **Deprecated:**
*
* Returns the platform Avatar rules for things such as scaling, default shirts and pants, number of wearable assets.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetAvatarRules)
* @param this A service to support developer Avatar Editors.
* @returns A dictionary containing the platform Avatar rules for things like scaling, default shirts and pants, number of wearable assets, ect. See the example return in the main description above.
*
* @deprecated GetAvatarRulesAsync
*/
GetAvatarRules(this: AvatarEditorService): AvatarRules;
/**
* Returns the platform Avatar rules for things such as scaling, default shirts and pants, number of wearable assets.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetAvatarRulesAsync)
* @param this A service to support developer Avatar Editors.
* @returns A dictionary containing the platform Avatar rules for things like scaling, default shirts and pants, number of wearable assets, ect. See the example return in the main description above.
*/
GetAvatarRulesAsync(this: AvatarEditorService): object;
/**
* **Deprecated:**
*
* Gets the item details for a list of items at once.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetBatchItemDetails)
* @param this A service to support developer Avatar Editors.
* @param itemIds The list of item ids to get details of.
* @param itemType The type of the item ids provided.
* @returns Returns an array of item details. See `AvatarEditorService:GetBatchItemDetailsAsync()` for the response format.
*
* @deprecated GetBatchItemDetailsAsync
*/
GetBatchItemDetails(this: AvatarEditorService, itemIds: ReadonlyArray, itemType: CastsToEnum): ReadonlyArray;
GetBatchItemDetails(this: AvatarEditorService, itemIds: ReadonlyArray, itemType: CastsToEnum): ReadonlyArray;
GetBatchItemDetails(this: AvatarEditorService, itemIds: ReadonlyArray, itemType: CastsToEnum): ReadonlyArray;
/**
* Gets the item details for a list of items at once.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetBatchItemDetailsAsync)
* @param this A service to support developer Avatar Editors.
* @param itemIds The list of item ids to get details of.
* @param itemType The type of the item ids provided.
* @returns Returns an array of item details.
*/
GetBatchItemDetailsAsync(this: AvatarEditorService, itemIds: Array, itemType: CastsToEnum): Array;
/**
* Returns a `CatalogPages` object containing bundles that include the given asset.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetBundlesByAssetIdAsync)
* @param this A service to support developer Avatar Editors.
* @param assetId The ID of the asset to find bundles for.
* @param limit The number of results per page. Accepts `10`, `25`, `50`, and `100`.
* @returns A `CatalogPages` object containing bundles that include the given asset.
*/
GetBundlesByAssetIdAsync(this: AvatarEditorService, assetId: number, limit?: number): CatalogPages;
/**
* **Deprecated:**
*
* Returns if the `Players.LocalPlayer` has favorited the given bundle or asset.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetFavorite)
* @param this A service to support developer Avatar Editors.
* @param itemId The ID of the specified asset or bundle.
* @param itemType The `AvatarItemType` of the specified asset or bundle.
* @returns Whether the `LocalPlayer` has favorited the given bundle or asset.
*
* @deprecated GetFavoriteAsync
*/
GetFavorite(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): boolean;
/**
* Returns if the `Players.LocalPlayer` has favorited the given bundle or asset.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetFavoriteAsync)
* @param this A service to support developer Avatar Editors.
* @param itemId The ID of the specified asset or bundle.
* @param itemType The `AvatarItemType` of the specified asset or bundle.
* @returns Whether the `LocalPlayer` has favorited the given bundle or asset.
*/
GetFavoriteAsync(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): boolean;
/**
* Returns an array of head shape names that the `Players.LocalPlayer` owns.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetHeadShapesAsync)
* @param this A service to support developer Avatar Editors.
* @returns An array of strings, each identifying a head shape owned by `Players.LocalPlayer`. Possible values include: `"Blockhead"`, `"Cheeks"`, `"Chiseled"`, `"ClassicFemaleV2"`, `"ClassicMaleV2"`, `"CoolThing"`, `"Default"`, `"EraserHead"`, `"FatHead"`, `"FlatTop"`, `"GoldenKorbloxGeneral"`, `"GoldenMrRobot"`, `"KnightOfChivalry"`, `"KnightOfCourage"`, `"ManHead"`, `"MercilessNinja"`, `"MrToilet"`, `"Narrow"`, `"NeoClassicFemaleV2"`, `"NeoClassicMaleV2"`, `"Paragon"`, `"Peabrain"`, `"Perfection"`, `"RobloxClassic"`, `"Roll"`, `"Roundy"`, `"RoxBox"`, `"StrongJaw"`, `"TheEngineer"`, `"Trim"`, `"WomanHead"`.
*/
GetHeadShapesAsync(this: AvatarEditorService): Array;
/**
* **Deprecated:**
*
* Returns an `InventoryPages` object with information about owned items in the users inventory with the given AvatarAssetTypes.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetInventory)
* @param this A service to support developer Avatar Editors.
* @param assetTypes The `AvatarAssetType` that can will be checked for in the player's inventory.
* @returns An `InventoryPages` object containing information about owned items matching the given asset types.
*
* @deprecated GetInventoryAsync
*/
GetInventory(this: AvatarEditorService, assetTypes: ReadonlyArray): InventoryPages<{
AssetId: number;
AssetType: string;
Created: string;
Name: string;
}>;
/**
* Returns an `InventoryPages` object with information about owned items in the users inventory with the given AvatarAssetTypes.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetInventoryAsync)
* @param this A service to support developer Avatar Editors.
* @param assetTypes The `AvatarAssetType` that can will be checked for in the player's inventory.
* @returns An `InventoryPages` object containing information about owned items matching the given asset types.
*/
GetInventoryAsync(this: AvatarEditorService, assetTypes: Array): InventoryPages;
/**
* **Deprecated:**
*
* Returns the item details for the given item.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetItemDetails)
* @param this A service to support developer Avatar Editors.
* @param itemId The ID of the item whose details are being retrieved.
* @param itemType An enum value indicating the type of item whose details are being retrieved.
* @returns A table containing the item info for the retrieved item. See above for a sample table.
*
* @deprecated GetItemDetailsAsync
*/
GetItemDetails(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): AssetItemDetails;
GetItemDetails(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): BundleItemDetails;
GetItemDetails(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): ItemDetails;
/**
* Returns the item details for the given item.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetItemDetailsAsync)
* @param this A service to support developer Avatar Editors.
* @param itemId The ID of the item whose details are being retrieved.
* @param itemType An enum value indicating the type of item whose details are being retrieved.
* @returns A table containing the item info for the retrieved item.
*/
GetItemDetailsAsync(this: AvatarEditorService, itemId: number, itemType: CastsToEnum): object;
/**
* **Deprecated:**
*
* Returns the outfit details for the given outfit.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetOutfitDetails)
* @param this A service to support developer Avatar Editors.
* @param outfitId The ID of the outfit whose details are being retrieved.
* @returns A table containing the outfit info for the retrieved outfit. See above for a sample table.
*
* @deprecated GetOutfitDetailsAsync
*/
GetOutfitDetails(this: AvatarEditorService, outfitId: number): object;
/**
* Returns the outfit details for the given outfit.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetOutfitDetailsAsync)
* @param this A service to support developer Avatar Editors.
* @param outfitId The ID of the outfit whose details are being retrieved.
* @returns A table containing the outfit info for the retrieved outfit. See above for a sample table.
*/
GetOutfitDetailsAsync(this: AvatarEditorService, outfitId: number): object;
/**
* **Deprecated:**
*
* Returns outfit data for the `Players.LocalPlayer`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetOutfits)
* @param this A service to support developer Avatar Editors.
* @param outfitSource An `OutfitSource` filter specifying which outfits to include. Defaults to `OutfitSource.All`.
* @param outfitType An `OutfitType` filter specifying the type of outfits to return. Defaults to `OutfitType.All`.
* @returns An `OutfitPages` object containing the outfit data for the local player.
*
* @deprecated GetOutfitsAsync
*/
GetOutfits(this: AvatarEditorService, outfitSource?: CastsToEnum, outfitType?: CastsToEnum): OutfitPages;
/**
* Returns outfit data for the `Players.LocalPlayer`.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetOutfitsAsync)
* @param this A service to support developer Avatar Editors.
* @param outfitSource An `OutfitSource` filter specifying which outfits to include. Defaults to `OutfitSource.All`.
* @param outfitType An `OutfitType` filter specifying the type of outfits to return. Defaults to `OutfitType.All`.
* @returns An `OutfitPages` object containing the outfit data for the local player.
*/
GetOutfitsAsync(this: AvatarEditorService, outfitSource?: CastsToEnum, outfitType?: CastsToEnum): OutfitPages;
/**
* **Deprecated:**
*
* Returns a list of recommended assets based on a given `AssetType` and asset ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetRecommendedAssets)
* @param this A service to support developer Avatar Editors.
* @param assetType The type of asset recommendations to retrieve recommendations for. Only affects the response when item based recommendations don't exist for the given `contextAssetId`.
* @param contextAssetId The ID of an asset with a type matching the provided assetType used for context when retrieving recommendations.
* @returns A list of recommendations based on the given `AssetType`.
*
* @deprecated GetRecommendedAssetsAsync
*/
GetRecommendedAssets(this: AvatarEditorService, assetType: CastsToEnum, contextAssetId?: number): ReadonlyArray;
/**
* Returns a list of recommended assets based on a given `AssetType` and asset ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetRecommendedAssetsAsync)
* @param this A service to support developer Avatar Editors.
* @param assetType The type of asset recommendations to retrieve recommendations for. Only affects the response when item based recommendations don't exist for the given `contextAssetId`.
* @param contextAssetId The ID of an asset with a type matching the provided assetType used for context when retrieving recommendations.
* @returns A list of recommendations based on the given `AssetType`.
*/
GetRecommendedAssetsAsync(this: AvatarEditorService, assetType: CastsToEnum, contextAssetId?: number): Array;
/**
* **Deprecated:**
*
* Returns a list of recommended bundles for a given bundle id.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetRecommendedBundles)
* @param this A service to support developer Avatar Editors.
* @param bundleId A list of recommended bundles.
* @returns The bundle ID that the recommended bundles will be returned for.
*
* @deprecated GetRecommendedBundlesAsync
*/
GetRecommendedBundles(this: AvatarEditorService, bundleId: number): ReadonlyArray;
/**
* Returns a list of recommended bundles for a given bundle id.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetRecommendedBundlesAsync)
* @param this A service to support developer Avatar Editors.
* @param bundleId A list of recommended bundles.
* @returns The bundle ID that the recommended bundles will be returned for.
*/
GetRecommendedBundlesAsync(this: AvatarEditorService, bundleId: number): Array;
/**
* **Deprecated:**
*
* Returns a `CatalogPages` object containing the result of the given search.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#SearchCatalog)
* @param this A service to support developer Avatar Editors.
* @param searchParameters An object containing the parameters used for the search.
* @returns A `CatalogPages` object containing the search results.
*
* @deprecated SearchCatalogAsync
*/
SearchCatalog(this: AvatarEditorService, searchParameters: CatalogSearchParams): CatalogPages;
/**
* Returns a `CatalogPages` object containing the result of the given search.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#SearchCatalogAsync)
* @param this A service to support developer Avatar Editors.
* @param searchParameters An object containing the parameters used for the search.
* @returns A `CatalogPages` object containing the search results.
*/
SearchCatalogAsync(this: AvatarEditorService, searchParameters: CatalogSearchParams): CatalogPages;
/**
* Fires when the `AvatarEditorService:PromptAllowInventoryReadAccess()` prompt is responded to by the user.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptAllowInventoryReadAccessCompleted)
*/
readonly PromptAllowInventoryReadAccessCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult) => void>;
/**
* Fires when the PromptSaveOutfit operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptCreateOutfitCompleted)
*/
readonly PromptCreateOutfitCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult, failureType: unknown) => void>;
/**
* Fires when the PromptDeleteOutfit operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptDeleteOutfitCompleted)
*/
readonly PromptDeleteOutfitCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult) => void>;
/**
* Fires when the PromptRenameOutfit operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptRenameOutfitCompleted)
*/
readonly PromptRenameOutfitCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult) => void>;
/**
* Fires when the `AvatarEditorService:PromptSaveAvatar()` operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptSaveAvatarCompleted)
*/
readonly PromptSaveAvatarCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult, humanoidDescription: HumanoidDescription) => void>;
/**
* Fires when the `AvatarEditorService:PromptSetFavorite()` operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptSetFavoriteCompleted)
*/
readonly PromptSetFavoriteCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult) => void>;
/**
* Fires when the `AvatarEditorService:PromptUpdateOutfit()` operation is completed.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#PromptUpdateOutfitCompleted)
*/
readonly PromptUpdateOutfitCompleted: RBXScriptSignal<(result: Enum.AvatarPromptResult) => void>;
}
/**
* - **Tags**: NotCreatable, Service, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarImportService)
*/
interface AvatarImportService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarImportService: unique symbol;
}
/**
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarRules)
*/
interface AvatarRules extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarRules: unique symbol;
}
/**
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AvatarSettings)
*/
interface AvatarSettings extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AvatarSettings: unique symbol;
}
/**
* A container object that holds a player's inventory. Any `Tool` in a player's `Backpack` will be displayed in their inventory at the bottom of the screen.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/Backpack)
*/
interface Backpack extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_Backpack: unique symbol;
}
/**
* Provides information on badges and awards them.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService)
*/
interface BadgeService extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_BadgeService: unique symbol;
/**
* **Deprecated:** Use `AwardBadgeAsync()` instead.
*
* Award a badge to a player given the ID of each.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#AwardBadge)
* @param this Provides information on badges and awards them.
* @param userId The `Player.UserId` of the user the badge is to be awarded to.
* @param badgeId The ID of the badge to be awarded.
* @returns Boolean of `true` if the badge was awarded successfully.
*
* @deprecated AwardBadgeAsync
*/
AwardBadge(this: BadgeService, userId: number, badgeId: number): boolean;
/**
* Award a badge to a player given the ID of each.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#AwardBadgeAsync)
* @param this Provides information on badges and awards them.
* @param userId The `Player.UserId` of the user the badge is to be awarded to.
* @param badgeId The ID of the badge to be awarded.
* @returns Boolean of `true` if the badge was awarded successfully.
*/
AwardBadgeAsync(this: BadgeService, userId: User, badgeId: number): boolean;
/**
* Checks a list of badge IDs against a `UserId` and returns a list of badge IDs that the player owns.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#CheckUserBadgesAsync)
* @param this Provides information on badges and awards them.
* @param userId The `UserId` of the player to check for ownership of the specified badges.
* @param badgeIds The list of IDs of the badges to check ownership of. Maximum length of 10.
* @returns The list of badge IDs the given user owns out of the provided badge IDs. Empty if none of the provided badges are owned by the given user. Not guaranteed to be in the same order as the input list. Some badge IDs may be omitted if the user with the target `userId` has not recently been in the server and the badge IDs are not associated with the requesting experience.
*/
CheckUserBadgesAsync(this: BadgeService, userId: User, badgeIds: Array): Array;
/**
* Fetch information about a badge given its ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#GetBadgeInfoAsync)
* @param this Provides information on badges and awards them.
* @param badgeId The badge ID of the badge whose information should be fetched.
* @returns A dictionary of information about the specified badge.
*/
GetBadgeInfoAsync(this: BadgeService, badgeId: number): BadgeInfo;
/**
* Checks a list of badge IDs against a `User` and returns, for each badge the player owns, its ID and the date it was awarded.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#GetUserBadgesAsync)
* @param this Provides information on badges and awards them.
* @param userId The `User` of the player to check for ownership of the specified badges.
* @param badgeIds The list of IDs of the badges to check ownership of. Maximum length of 100.
* @returns A list of dictionaries, one for each badge the given user owns out of the provided badge IDs. Each dictionary contains a `BadgeId` and an `AwardedDate`. Empty if none of the provided badges are owned by the given user. Not guaranteed to be in the same order as the input list. Some badge IDs may be omitted if the user with the target `User` has not recently been in the server and the badge IDs are not associated with the requesting experience.
*/
GetUserBadgesAsync(this: BadgeService, userId: User, badgeIds: Array): Array;
/**
* **Deprecated:** This function is deprecated. Do not use it for new work. Instead, it can be checked by calling BadgeService:GetBadgeInfoAsync() and checking the IsEnabled field.
*
* Returns whether a given badge is disabled.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#IsDisabled)
* @param this Provides information on badges and awards them.
* @param badgeId The ID of the badge.
* @returns True if the specified badge is not available to be awarded.
*
* @deprecated
*/
IsDisabled(this: BadgeService, badgeId: number): boolean;
/**
* **Deprecated:** This function is deprecated and will always return true. Do not use it for new work.
*
* Determines if a given badge is associated with the current game.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#IsLegal)
* @param this Provides information on badges and awards them.
* @param badgeId The badge ID of the badge.
* @returns True if the badge is associated with the current game.
*
* @deprecated
*/
IsLegal(this: BadgeService, badgeId: number): boolean;
/**
* **Deprecated:** This method has been superseded by `BadgeService:UserHasBadgeAsync()` which should be used for new work instead.
*
* Checks whether a user has the badge given the `Player.UserId` and the badge ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#UserHasBadge)
* @param this Provides information on badges and awards them.
* @param userId The user ID of the user.
* @param badgeId The badge ID of the badge.
* @returns True if the user has the badge.
*
* @deprecated
*/
UserHasBadge(this: BadgeService, userId: User, badgeId: number): boolean;
/**
* Checks whether a player has the badge given the `Player.UserId` and the badge ID.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BadgeService#UserHasBadgeAsync)
* @param this Provides information on badges and awards them.
* @param userId The `Player.UserId` of the player to check for ownership of the specified badge.
* @param badgeId The badge ID of the badge whose ownership will be checked.
* @returns Indicates if the specified user has the specified badge.
*/
UserHasBadgeAsync(this: BadgeService, userId: number, badgeId: number): boolean;
}
/**
* Base class for the configuration objects that control individual built-in `CoreGui` elements.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseCoreGuiConfiguration)
*/
interface BaseCoreGuiConfiguration extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_BaseCoreGuiConfiguration: unique symbol;
/**
* Determines whether the built-in `CoreGui` element controlled by this configuration object is enabled.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseCoreGuiConfiguration#Enabled)
*/
Enabled: boolean;
}
/**
* Controls the built-in captures view, the `CoreGui` element that lets players browse and manage screenshots and video captures they take within an experience.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/CapturesViewConfiguration)
*/
interface CapturesViewConfiguration extends BaseCoreGuiConfiguration {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_CapturesViewConfiguration: unique symbol;
/**
* Determines whether the built-in captures view is currently open.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/CapturesViewConfiguration#Open)
*/
Open: boolean;
}
/**
* Controls the built-in player list, the `CoreGui` element that displays the players currently in the experience.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerListConfiguration)
*/
interface PlayerListConfiguration extends BaseCoreGuiConfiguration {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_PlayerListConfiguration: unique symbol;
/**
* Determines whether the built-in player list is currently open.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerListConfiguration#Open)
*/
Open: boolean;
}
/**
* Controls the built-in self view, the `CoreGui` element that shows a player a preview of their own character within an experience.
*
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/SelfViewConfiguration)
*/
interface SelfViewConfiguration extends BaseCoreGuiConfiguration {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_SelfViewConfiguration: unique symbol;
/**
* Determines whether the built-in self view is currently open.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/SelfViewConfiguration#Open)
*/
Open: boolean;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData)
*/
interface BaseImportData extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_BaseImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData#Id)
*/
readonly Id: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData#ImportName)
*/
ImportName: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData#ShouldImport)
*/
ShouldImport: boolean;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData#StatusRemoved)
*/
readonly StatusRemoved: RBXScriptSignal<(status: object) => void>;
/**
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseImportData#StatusReported)
*/
readonly StatusReported: RBXScriptSignal<(status: object) => void>;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationImportData)
*/
interface AnimationImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_AnimationImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationImportData#ForceNewVersion)
*/
ForceNewVersion: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/AnimationImportData#VersionedAssetId)
*/
VersionedAssetId: number;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/FacsImportData)
*/
interface FacsImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_FacsImportData: unique symbol;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/GroupImportData)
*/
interface GroupImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_GroupImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/GroupImportData#Anchored)
*/
Anchored: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/GroupImportData#ImportAsModelAsset)
*/
ImportAsModelAsset: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/GroupImportData#InsertInWorkspace)
*/
InsertInWorkspace: boolean;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/JointImportData)
*/
interface JointImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_JointImportData: unique symbol;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData)
*/
interface MaterialImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_MaterialImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#DiffuseFilePath)
*/
DiffuseFilePath: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#DiffuseVersionedAssetId)
*/
DiffuseVersionedAssetId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#EmissiveFilePath)
*/
EmissiveFilePath: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#EmissiveVersionedAssetId)
*/
EmissiveVersionedAssetId: number;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#IsPbr)
*/
readonly IsPbr: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#MetalnessFilePath)
*/
MetalnessFilePath: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#MetalnessVersionedAssetId)
*/
MetalnessVersionedAssetId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#NormalFilePath)
*/
NormalFilePath: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#NormalVersionedAssetId)
*/
NormalVersionedAssetId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#RoughnessFilePath)
*/
RoughnessFilePath: string;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MaterialImportData#RoughnessVersionedAssetId)
*/
RoughnessVersionedAssetId: number;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData)
*/
interface MeshImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_MeshImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#Anchored)
*/
Anchored: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageManifold)
*/
readonly CageManifold: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageMeshIntersectedPreview)
*/
CageMeshIntersectedPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageMeshNotIntersected)
*/
readonly CageMeshNotIntersected: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageNoOverlappingVertices)
*/
readonly CageNoOverlappingVertices: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageNonManifoldPreview)
*/
CageNonManifoldPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageOverlappingVerticesPreview)
*/
CageOverlappingVerticesPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageUVMatched)
*/
readonly CageUVMatched: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#CageUVMisMatchedPreview)
*/
CageUVMisMatchedPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#Dimensions)
*/
readonly Dimensions: Vector3;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#DoubleSided)
*/
DoubleSided: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#IgnoreVertexColors)
*/
IgnoreVertexColors: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#IrrelevantCageModifiedPreview)
*/
IrrelevantCageModifiedPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#MeshHoleDetectedPreview)
*/
MeshHoleDetectedPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#MeshNoHoleDetected)
*/
readonly MeshNoHoleDetected: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#NoIrrelevantCageModified)
*/
readonly NoIrrelevantCageModified: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#NoOuterCageFarExtendedFromMesh)
*/
readonly NoOuterCageFarExtendedFromMesh: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#OuterCageFarExtendedFromMeshPreview)
*/
OuterCageFarExtendedFromMeshPreview: boolean;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#PolygonCount)
*/
readonly PolygonCount: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#UseImportedPivot)
*/
UseImportedPivot: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/MeshImportData#VersionedAssetId)
*/
VersionedAssetId: number;
}
/**
* - **Tags**: NotCreatable, NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData)
*/
interface RootImportData extends BaseImportData {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_RootImportData: unique symbol;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#AddModelToInventory)
*/
AddModelToInventory: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#Anchored)
*/
Anchored: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#AnimationIdForRestPose)
*/
AnimationIdForRestPose: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#ExistingPackageId)
*/
ExistingPackageId: string;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#FileDimensions)
*/
readonly FileDimensions: Vector3;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#ImportAsModelAsset)
*/
ImportAsModelAsset: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#ImportAsPackage)
*/
ImportAsPackage: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#InsertInWorkspace)
*/
InsertInWorkspace: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#InsertWithScenePosition)
*/
InsertWithScenePosition: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#InvertNegativeFaces)
*/
InvertNegativeFaces: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#KeepZeroInfluenceBones)
*/
KeepZeroInfluenceBones: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#MergeMeshes)
*/
MergeMeshes: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#PhysicalConstraintType)
*/
PhysicalConstraintType: Enum.PhysicalConstraintType;
/**
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#PolygonCount)
*/
readonly PolygonCount: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#PreferredUploadId)
*/
PreferredUploadId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#RestPose)
*/
RestPose: Enum.RestPose;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#RigScale)
*/
RigScale: Enum.RigScale;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#RigType)
*/
RigType: Enum.RigType;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#RigVisualization)
*/
RigVisualization: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#ScaleFactor)
*/
ScaleFactor: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#ScaleUnit)
*/
ScaleUnit: Enum.MeshScaleUnit;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#UseSceneOriginAsPivot)
*/
UseSceneOriginAsPivot: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#UsesCages)
*/
UsesCages: boolean;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#VersionedAssetId)
*/
VersionedAssetId: number;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#WorldForward)
*/
WorldForward: Enum.NormalId;
/**
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RootImportData#WorldUp)
*/
WorldUp: Enum.NormalId;
}
/**
* `BasePlayerGui` is an abstract class which the GUI drawing storage classes inherit from.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BasePlayerGui)
*/
interface BasePlayerGui extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_BasePlayerGui: unique symbol;
/**
* Returns a list of all `GuiObject` instances occupying the given
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BasePlayerGui#GetGuiObjectsAtPosition)
* @param this `BasePlayerGui` is an abstract class which the GUI drawing storage classes inherit from.
* @param x The **X** position on the screen relative to the top-left corner after the GUI inset is applied (see `GuiService:GetGuiInset()`).
* @param y The **Y** position on the screen relative to the top-left corner after the GUI inset is applied (see `GuiService:GetGuiInset()`).
* @returns A table of the `GuiObject` instances that occupy the given screen space.
*/
GetGuiObjectsAtPosition(this: BasePlayerGui, x: number, y: number): Array;
}
/**
* A container that holds a player's UI.
*
* - **Tags**: NotCreatable, PlayerReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui)
*/
interface PlayerGui extends BasePlayerGui {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_PlayerGui: unique symbol;
/**
* Describes the player's current screen orientation.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**: NotReplicated
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#CurrentScreenOrientation)
*/
readonly CurrentScreenOrientation: Enum.ScreenOrientation;
/**
* Sets the preferred screen orientation mode for this player, if on a mobile device.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#ScreenOrientation)
*/
ScreenOrientation: Enum.ScreenOrientation;
/**
* Overrides the default selection adornment used for gamepads.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#SelectionImageObject)
*/
SelectionImageObject: GuiObject | undefined;
/**
* **Deprecated:**
*
* Returns the transparency of the Topbar.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#GetTopbarTransparency)
* @param this A container that holds a player's UI.
* @returns The current topbar transparency, a number between 0 (completely opaque) and 1 (completely transparent).
*
* @deprecated
*/
GetTopbarTransparency(this: PlayerGui): number;
/**
* **Deprecated:**
*
* Sets the transparency of the top bar.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#SetTopbarTransparency)
* @param this A container that holds a player's UI.
* @param transparency A number between 0 (completely opaque) and 1 (completely transparent). Values outside this range are clamped.
*
* @deprecated
*/
SetTopbarTransparency(this: PlayerGui, transparency: number): void;
/**
* **Deprecated:**
*
* Fires when the transparency of the Topbar CoreGui changes.
*
* - **ThreadSafety**: Unsafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/PlayerGui#TopbarTransparencyChangedSignal)
*
* @deprecated
*/
readonly TopbarTransparencyChangedSignal: RBXScriptSignal<(transparency: number) => void>;
}
/**
* A container for `LayerCollector` objects to be copied into the `PlayerGui` of `Players`. Also provides a range of functions for interacting with the `CoreGui`.
*
* - **Tags**: NotCreatable, Service
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui)
*/
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;
/**
* **Deprecated:** This property is deprecated. Use `LayerCollector.ResetOnSpawn` to control the resetting behavior for individual `LayerCollector` objects.
*
* Determines whether each child parented to the StarterGui will be cloned into a player's PlayerGui when that player's character is respawned.
*
* - **ThreadSafety**: ReadSafe
* - **Tags**:
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#ResetPlayerGuiOnSpawn)
*
* @deprecated
*/
ResetPlayerGuiOnSpawn: boolean;
/**
* Sets the default screen orientation mode for users with mobile devices.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#ScreenOrientation)
*/
ScreenOrientation: Enum.ScreenOrientation;
/**
* Determines whether the contents of `StarterGui` is visible in Studio.
*
* - **ThreadSafety**: ReadSafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#ShowDevelopmentGui)
*/
ShowDevelopmentGui: boolean;
/**
* Returns whether the given `CoreGuiType`is enabled, or if it has been disabled using `StarterGui:SetCoreGuiEnabled()`.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#GetCoreGuiEnabled)
* @param this A container for `LayerCollector` objects to be copied into the `PlayerGui` of `Players`. Also provides a range of functions for interacting with the `CoreGui`.
* @param coreGuiType The given `CoreGuiType`.
* @returns Whether the given `CoreGuiType` is enabled.
*/
GetCoreGuiEnabled(this: StarterGui, coreGuiType: CastsToEnum): boolean;
/**
* Allows you to perform certain interactions with Roblox's core scripts.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#SetCore)
* @param this A container for `LayerCollector` objects to be copied into the `PlayerGui` of `Players`. Also provides a range of functions for interacting with the `CoreGui`.
* @param parameterName Selects the functionality with which the call will interact.
* @param value A table of `BindableEvents` and `BindableFunctions`.
*/
SetCore(this: StarterGui, parameter: T, option: SettableCores[T]): void;
/**
* Sets whether the `CoreGui` element associated with the given `CoreGuiType` is enabled or disabled.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#SetCoreGuiEnabled)
* @param this A container for `LayerCollector` objects to be copied into the `PlayerGui` of `Players`. Also provides a range of functions for interacting with the `CoreGui`.
* @param coreGuiType The given `CoreGuiType`.
* @param enabled Whether to enable or disable the given `CoreGuiType`.
*/
SetCoreGuiEnabled(this: StarterGui, coreGuiType: CastsToEnum, enabled: boolean): void;
/**
* Returns a variable that has been specified by a Roblox core script.
*
* - **ThreadSafety**: Unsafe
* - **Tags**: Yields
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/StarterGui#GetCore)
* @param this A container for `LayerCollector` objects to be copied into the `PlayerGui` of `Players`. Also provides a range of functions for interacting with the `CoreGui`.
* @param parameterName The name of the core parameter to retrieve, such as `"PointsNotificationsActive"` or `"ChatActive"`.
* @returns The value associated with the specified core parameter name, whose type depends on the parameter queried.
*/
GetCore(this: StarterGui, parameter: T): GettableCores[T];
}
/**
* Abstract base class inherited by `RemoteEvent` and `UnreliableRemoteEvent` for asynchronous, one-way communication across the client-server boundary.
*
* - **Tags**: NotCreatable
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/BaseRemoteEvent)
*/
interface BaseRemoteEvent extends Instance {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_BaseRemoteEvent: unique symbol;
}
/**
* An object which facilitates asynchronous, one-way communication across the client-server boundary. Scripts firing a `RemoteEvent` do not yield.
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RemoteEvent)
*/
interface RemoteEvent extends BaseRemoteEvent {
/**
* **DO NOT USE!**
*
* This field exists to force TypeScript to recognize this as a nominal type
* @hidden
* @deprecated
*/
readonly _nominal_RemoteEvent: unique symbol;
/**
* Fires the `OnClientEvent` event for each connected client.
*
* - **ThreadSafety**: Unsafe
*
* [Creator Hub](https://create.roblox.com/docs/reference/engine/classes/RemoteEvent#FireAllClients)
* @param this An object which facilitates asynchronous, one-way communication across the client-server boundary. Scripts firing a `RemoteEvent` do not yield.
* @param arguments Values to pass to all `OnClientEvent` events connected to the same `RemoteEvent`.
*/
FireAllClients(this: RemoteEvent, ...args: Parameters