Reference API Roblox

Engine API

Website

Related

Reference API Roblox

AvatarCreationService

A service to support developer avatar creators.

This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service]

Member index 26

HistoryMember
648DeserializeAvatarModel(serializedModel: string): Instance
641GenerateAvatarAsync(sessionId: string, previewId: string): string
638GenerateAvatarModelAsync(player: Player, previewJobId: string, options: Dictionary, progressCallback: Function): string
638GenerateAvatarPreviewAsync(player: Player, textPrompt: string, options: Dictionary, progressCallback: Function): string
646GenerateAvatarPreviewAsync2(sessionId: string, fileId: string, textPrompt: string, options: Dictionary): string
624GetAvatarGenerationConfig(): Dictionary
646GetBatchTokenDetailsAsync(tokenIds: Array): Array
640GetValidationRules(): Dictionary
641LoadAvatarHumanoidDescriptionAsync(id: string): HumanoidDescription
620LoadAvatarModelAsync(id: string): Instance
648LoadAvatarPreviewImageAsync(avatarPreview: string): Object
647PromptCreateAvatarAsync(tokenId: string, player: Player, humanoidDescription: HumanoidDescription): Tuple
645PromptSelectAvatarGenerationImageAsync(player: Player): string
641RequestAvatarGenerationSessionAsync(player: Player, callback: Function): Tuple
626SendAnalyticsEvent(eventName: string, params: Dictionary): null
627ValidateUGCAccessoryAsync(player: Player, accessory: Instance, accessoryType: AccessoryType): Tuple
627ValidateUGCBodyPartAsync(player: Player, instance: Instance, bodyPart: BodyPart): Tuple
627ValidateUGCFullBodyAsync(player: Player, humanoidDescription: HumanoidDescription): Tuple
607UgcValidationFailure(guid: string, errorMessage: string)
647UgcValidationSuccess(guid: string, serializedModel: string, price: int64)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Removed member index 2

HistoryMember
641CreateAvatarGenerationSessionAsync(player: Player): AvatarGenerationSession

Description

AvatarCreationService is a service that supports developer avatar creators, providing methods that support the prompting of avatar creation from within experiences.

History 37

Members 26

DeserializeAvatarModel

Parameters (1)
serializedModelstring
Returns (1)
Instance

History 1

GenerateAvatarAsync

Parameters (2)
sessionIdstring
previewIdstring
Returns (1)
string
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GenerateAvatarModelAsync

Parameters (4)
playerPlayer
previewJobIdstring
optionsDictionary
progressCallbackFunction
Returns (1)
string
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GenerateAvatarPreviewAsync

Parameters (4)
playerPlayer
textPromptstring
optionsDictionary
progressCallbackFunction
Returns (1)
string
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GenerateAvatarPreviewAsync2

Parameters (4)
sessionIdstring
fileIdstring
textPromptstring
optionsDictionary
Returns (1)
string
This function yields. It will block the calling thread until completion.

History 2

Tags: [Yields]

GetAvatarGenerationConfig

Parameters (0)
No parameters.
Returns (1)
Dictionary
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GetBatchTokenDetailsAsync

Parameters (1)
tokenIdsArray
Returns (1)
Array

Gets the avatar creation token details for a list of avatar creation tokens at once. Returns an array of avatar creation token details; each token detail is a dictionary with the fields indicated in the example result below:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
	["Name"] = "string",
	["Description"] = "string",
	["UniverseId"] = 0,
	["CreatorId"] = 0,
	["CreatorType"] = Enum.CreatorType.User,
	["OnSale"] = true,
	["Price"] = 0,
	["OffSaleReasons"] = {
		"string",
	}
}
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

GetValidationRules

Parameters (0)
No parameters.
Returns (1)
Dictionary

Gets data regarding rules that assets must abide by to pass UGC validation. Validation is an essential step before creating avatars and there are various checks that occur, including mesh triangle limits, texture sizes, body part size limits, attachment positions, and more.

The returned dictionary of validation rules takes the following form:

{
	["MeshRules"] = {
		["BodyPartMaxTriangles"] = {
			Enum.AssetType.DynamicHead: number,
			Enum.AssetType.LeftArm: number,
			Enum.AssetType.RightArm: number,
			Enum.AssetType.Torso: number,
			Enum.AssetType.LeftLeg: number,
			Enum.AssetType.RightLeg: number,
		},
			["AccessoryMaxTriangles"]: number,
			["MeshVertColor"]: Color3,
			["CageMeshMaxDistanceFromRenderMesh"]: number,
	},
	["TextureRules"] = {
		["MaxTextureSize"]: number,
	},
	["BodyPartRules"] = {
		[Enum.AssetType.DynamicHead] = {
			["Bounds"] = {
				["Classic"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
			},
				["ProportionsSlender"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
				},
				["ProportionsNormal"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
				},
			},
			["SubParts"] = {
				["Head"] = {
					["NeckRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["FaceFrontAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["HatAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["HairAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["FaceCenterAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
				},
			},
		},
		[Enum.AssetType.LeftArm] = {
			["Bounds"] = {
				["Classic"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
				},
				["ProportionsSlender"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
				},
				["ProportionsNormal"] = {
					["MinSize"]: Vector3,
					["MaxSize"]: Vector3,
				},
			},
			["SubParts"] = {
				["LeftHand"] = {
					["LeftWristRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["LeftGripAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
				},
				["LeftUpperArm"] = {
					["LeftShoulderRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["LeftShoulderAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
						["LeftElbowRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
				},
				["LeftLowerArm"] = {
					["LeftElbowRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
					["LeftWristRigAttachment"] = {
						["LowerBound"]: Vector3,
						["UpperBound"]: Vector3,
					},
				},
			},
		},
		...
	},
	["AccessoryRules"] = {
		[Enum.AssetType.HairAccessory] = {
			["Attachments"] = {
				{
					["Size"]: Vector3,
					["Offset"]: Vector3,
					["Name"]: string,
				},
			},
			["RigidAllowed"]: boolean,
		},
		...
	}
}
This function has a custom internal state. It may behave in a non-standard way.

History 1

Tags: [CustomLuaState]

LoadAvatarHumanoidDescriptionAsync

Parameters (1)
idstring
Returns (1)
HumanoidDescription
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

LoadAvatarModelAsync

Parameters (1)
idstring
Returns (1)
Instance
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

LoadAvatarPreviewImageAsync

Parameters (1)
avatarPreviewstring
Returns (1)
Object
This function yields. It will block the calling thread until completion.

History 2

Tags: [Yields]

PromptCreateAvatarAsync

Parameters (3)
tokenIdstring
playerPlayer
humanoidDescriptionHumanoidDescription
Returns (1)
Tuple

Prompts a Player to purchase and create an avatar from a HumanoidDescription. The price of the creation is dictated by the price attributed to the avatar creation token.

For avatar creation, the HumanoidDescription is expected to include new assets to be created for each of the 6 body parts (Head, Torso, RightLeg, LeftLeg, RightArm, LeftArm). Optionally, it can also include a new Hair accessory.

To support this, the HumanoidDescription should include 6 BodyPartDescription children (one for each body part). For each, the BodyPartDescription.Instance property references a Folder which includes all of the MeshPart instances which make up the body part, for example a LeftArm folder which has LeftHand, LeftUpperArm, and LeftLowerArm MeshParts. The BodyPartDescription.BodyPart property should also be set to the relevant BodyPart.

Each body part MeshPart will also need to include:

If including an accessory such as hair, the HumanoidDescription should include a child AccessoryDescription where:

Finally, the HumanoidDescription should include the humanoid scales of BodyTypeScale, HeadScale, HeightScale, WidthScale, and ProportionScale. Be mindful of the scales that a base body is imported with so that they match the scales provided to the HumanoidDescription.

This function yields. It will block the calling thread until completion.

History 2

Tags: [Yields]

PromptSelectAvatarGenerationImageAsync

Parameters (1)
playerPlayer
Returns (1)
string
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

RequestAvatarGenerationSessionAsync

Parameters (2)
playerPlayer
callbackFunction
Returns (1)
Tuple
This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

SendAnalyticsEvent

Parameters (2)
eventNamestring
paramsDictionary
Returns (1)
null

History 1

UgcValidationFailure

Parameters (2)
guidstring
errorMessagestring

History 1

UgcValidationSuccess

Parameters (3)
guidstring
serializedModelstring
priceint64

History 2

ValidateUGCAccessoryAsync

Parameters (3)
playerPlayer
accessoryInstance
accessoryTypeAccessoryType
Returns (1)
Tuple

Studio only. Given a Player and Instance for an AccessoryType, determines if UGC validation passes.

This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

ValidateUGCBodyPartAsync

Parameters (3)
playerPlayer
instanceInstance
bodyPartBodyPart
Returns (1)
Tuple

Studio only. Given a Player and Instance for an BodyPart, determines if UGC validation passes. The instance parameter is expected as a Folder in the following example format with relevant MeshParts:

However, if the expected bodyPart is BodyPart.Head, the function takes a singular Head MeshPart directly.

This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

ValidateUGCFullBodyAsync

Parameters (2)
playerPlayer
humanoidDescriptionHumanoidDescription
Returns (1)
Tuple

Studio only. Given a Player and HumanoidDescription, all instances in the HumanoidDescription will be validated.

The HumanoidDescription is expected to include instances set on BodyPartDescription children for each of the 6 required BodyPart values. Optionally, it can include instances set on AccessoryDescription children for Eyebrow, Eyelash, and Hair AccessoryTypes.

This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

Removed members 2

CreateAvatarGenerationSessionAsync

Parameters (1)
playerPlayer
Returns (1)
AvatarGenerationSession
This function yields. It will block the calling thread until completion.

History 2

Tags: [Yields]

Settings