# StudioAssetService

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Tags: Not creatable, Not replicated, Service
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/StudioAssetService/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/StudioAssetService

## Methods

### AutoSetupAvatarAsync

```luau
StudioAssetService:AutoSetupAvatarAsync(modelId: string, progressCallback: (...any) -> ...any, notificationCallback: ((...any) -> ...any)?, options: { [string]: any }?): Instance
```

- Tags: Yields, Roblox script security

### AutoSetupSerializedAvatarAsync

```luau
StudioAssetService:AutoSetupSerializedAvatarAsync(serializedInstance: string, publishInfo: { [string]: any }, telemetryMetadata: { [string]: any }, progressCallback: (...any) -> ...any, notificationCallback: ((...any) -> ...any)?, options: { [string]: any }?): Instance
```

- Tags: Yields, Roblox script security

### CancelAutoSetupAvatarAsync

```luau
StudioAssetService:CancelAutoSetupAvatarAsync(jobId: string)
```

- Tags: Yields, Roblox script security

### ConvertToPackageUpload

```luau
StudioAssetService:ConvertToPackageUpload(uploadUrl: string, cloneInstances: { Instance }, originalInstances: { Instance })
```

- Tags: Roblox script security

### DEPRECATED_SerializeInstances

```luau
StudioAssetService:DEPRECATED_SerializeInstances(instances: { Instance }): string
```

- Tags: Yields, Roblox script security

### FireOnUGCSubmitCompleted

```luau
StudioAssetService:FireOnUGCSubmitCompleted(cancelled: boolean)
```

- Tags: Roblox script security

### PromptSaveInstanceToRobloxAsync

```luau
StudioAssetService:PromptSaveInstanceToRobloxAsync(instance: Instance, assetType: any, groupId: number?): ...any
```

- Tags: Yields, Roblox script security

### PublishPackage

```luau
StudioAssetService:PublishPackage(instance: Instance, publishInfo: { [string]: any })
```

- Tags: Roblox script security

### RequestAvatarAutosetupAsync

```luau
StudioAssetService:RequestAvatarAutosetupAsync(meshId: string, textureId: string, progressCallback: (...any) -> ...any): Instance
```

- Tags: Yields, Roblox script security

### ResolveSaveInstanceToRoblox

```luau
StudioAssetService:ResolveSaveInstanceToRoblox(requestId: string, assetId: number?, assetName: string?, errorMessage: string?)
```

- Tags: Roblox script security

### SerializeInstances

```luau
StudioAssetService:SerializeInstances(instances: { Instance }, groupId: number? = 0, isPackage: boolean? = false): string
```

- Tags: Yields, Roblox script security

### ShowSaveToRoblox

```luau
StudioAssetService:ShowSaveToRoblox(instances: { Instance }, assetType: any, hasSubsequent: boolean? = false)
```

- Tags: Roblox script security

### UpdatePublishedPackage

```luau
StudioAssetService:UpdatePublishedPackage(assetmetadata: { [string]: any }, rootInstance: Instance, isConvert: boolean? = false, addUndoWaypoint: boolean? = false)
```

- Tags: Roblox script security

### UploadAndInsertAssetForJobAsync

```luau
StudioAssetService:UploadAndInsertAssetForJobAsync(jobId: string): Instance
```

- Tags: Yields, Roblox script security

## Events

### OnConvertToPackageResult

```luau
StudioAssetService.OnConvertToPackageResult: RBXScriptSignal<(isSuccessful: boolean, errorMessage: string)>
```

- Tags: Roblox script security

### OnPromptSaveInstanceToRobloxAsync

```luau
StudioAssetService.OnPromptSaveInstanceToRobloxAsync: RBXScriptSignal<(instance: Instance, assetType: any, requestId: string, groupId: number?)>
```

- Tags: Roblox script security

### OnPublishPackageResult

```luau
StudioAssetService.OnPublishPackageResult: RBXScriptSignal<(result: { [string]: any }, errorMessage: string)>
```

- Tags: Roblox script security

### OnSaveToRoblox

```luau
StudioAssetService.OnSaveToRoblox: RBXScriptSignal<(instances: { Instance }, assetType: any, hasSubsequent: boolean)>
```

- Tags: Roblox script security

### OnUGCSubmitCompleted

```luau
StudioAssetService.OnUGCSubmitCompleted: RBXScriptSignal<(cancelled: boolean)>
```

- Tags: Roblox script security

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
