Skip to main content

AssetGroupDefinitionBase

Input interface for constructing AssetGroup objects.

Hierarchy

Index

Properties

optionalAllowColorize

AllowColorize?: boolean = true Set to `true`, the target will be colorized when drawing. Set to `false`, the color will be used as part of the image file name. Mainly useful for inheriting the body color around.

Whether that layer is colorized

optionalAllowCustomize

AllowCustomize?: boolean = ```ts true ```

Whether the group can be customized

Only applicable to Appearance groups.

This is how groups like the expression groups are hidden from it.

optionalAllowExpression

AllowExpression?: ExpressionName[]

Which expression the group allows to be set on it

optionalAllowNone

AllowNone?: boolean = ```ts true ```

Whether the group is allowed to have no asset

Used for body-related characteristics

optionalAllowPose

AllowPose?: never

The poses that have pose-specific assets.

Used when building the file paths for the asset's layers.

If a pose is absent then the asset corresponding to the default pose will be used in its place. Note that a pose's absence from this list does not prevent its usage.

@deprecated
  • Superceded by PoseMapping

optionalArousalZone

ArousalZone?: AssetGroupItemName

The group actually recieving arousal events

Used to proxy around a group that does not have activities enabled (and thus arousal settings.

optionalArousalZoneID

ArousalZoneID?: number

Asset

Asset: (string | AssetDefinition)[]

The list of assets defined by the group

optionalBlink

Blink?: boolean

Whether the group has a blinking variant

Only used by eyes

optionalBlock

A list of group names the asset blocks access to

optionalBodyCosplay

BodyCosplay?: boolean = ```ts false ```

Is the asset considered body cosplay?

Any asset with that property set will be blocked from being removed if the character has Character.OnlineSharedSettings.BlockBodyCosplay set to true.

They will also be considered their own strip layer when making a character naked in the wardrobe.

optionalCategory

Category?: Appearance | Item | Script = Appearance | Item | Script

The type of the group

Item groups are the normal groups, and Appearance groups are only accessible in the wardrobe.

optionalClothing

Clothing?: boolean = ```ts false ```

Whether the group is considered clothing

This is used when stripping a character, as well as automatically blocking some groups if an asset is worn in those (like wearing a bra blocking nipples).

optionalColor

Color?: string[]

A list of color codes

Those are used when generating random appearances or cycling colors in the wardrobe

optionalColorSuffix

ColorSuffix?: Record<string, string>

optionalDefault

Default?: boolean = ```ts true ```

Whether the group should have an asset selected at random at character creation

optionalDynamicGroupName

DynamicGroupName?: AssetGroupName

An alternate name for the group

If this is set, this will be used as the base group when generating layer file URLs. Useful if you have a case like ItemTorso/ItemTorso2 which shares all their layers.

optionalEditOpacity

EditOpacity?: boolean

optionalEffect

Effect?: EffectName[]

A list of effects wearing the asset causes on the character

optionalExpressionPrerequisite

ExpressionPrerequisite?: AssetPrerequisite[]

optionalFreezeActivePose

FreezeActivePose?: never

A list of pose categories that the character will be prevented to change

@deprecated

Use AssetDefinition.AllowActivePose instead

Group

The internal identifier for the group

optionalHasPreviewImages

HasPreviewImages?: boolean

optionalHide

A list of group names that get hidden when the asset is worn

optionalInheritColor

InheritColor?: AssetGroupName

The group the target should inherit its color from.

optionalIsRestraint

IsRestraint?: boolean = ```ts false ```

Is the asset considered a restraint?

Any asset with that property set will be removed when the character is released, and the safeword system will consider them as freeable.

optionalLeft

Left?: Definition

The left coordinate of the target draw rect or a record with pose-specific left coordinates.

@example
Left: {
[PoseType.Default]: 100,
Kneeling: 150,
},

optionalMaxOpacity

MaxOpacity?: number

optionalMinOpacity

MinOpacity?: number

optionalMirrorActivitiesFrom

MirrorActivitiesFrom?: AssetGroupItemName

A group activities will be mirrored from

If set, activities from the given group will be shown as if they applied to the selected group.

optionalMirrorGroup

MirrorGroup?: AssetGroupName

If the group is empty, it'll automatically mirror an asset from the group specified

optionalParentColor

ParentColor?: AssetGroupName

A group that will be used to copy the color data from

optionalParentGroup

ParentGroup?: AssetGroupName

A group identifier that will be used to inherit the body size

optionalParentSize

ParentSize?: AssetGroupName

A group that will be used to copy the size info from

optionalPoseMapping

PoseMapping?: Partial<Record<AssetPoseName, AssetPoseName | PoseType>>

A record mapping pose names to the actually to-be drawn poses. Special values can be specified, via use of PoseType, for either hiding the asset or using pose-agnostic assets.

Poses that are absent from the mapping (or whose value is set to PoseType.DEFAULT) will use the default pose-agnostic path.

optionalPreviewZone

PreviewZone?: RectTuple

A rect used when generating dynamic previews of the group

optionalPriority

Priority?: number

The drawing priority of the target

optionalRandom

Random?: boolean = ```ts true ```

Whether the asset can be selected for a random appearance.

optionalRemoveItemOnRemove

RemoveItemOnRemove?: { Group: AssetGroupItemName; Name: string; TypeRecord?: TypeRecord }[]

A list of assets that should also be removed if an asset in this group is removed

Used for things like auto-removing collar accessories if the collar is removed.

optionalSetPose

SetPose?: AssetPoseName[]

A pose that the character will change to when wearing the asset

optionalTop

The top coordinate of the target draw rect or a record with pose-specific top coordinates.

@example
Top: {
[PoseType.Default]: 100,
Kneeling: 150,
},

optionalUnderwear

Underwear?: boolean = ```ts false ```

Whether the group is considered underwear

This is used when stripping a character.

optionalZone

Zone?: RectTuple[]

The clickable area(s) of the group

Only applicable for "Item" groups