Skip to main content

AssetDefinition

Input interface for constructing Asset objects.

Index

Interfaces

Appearance

Appearance:

An AssetDefinition subtype for assets whose group is of the Appearance category.

optionalinheritedActivity

Activity?: ActivityName

Applying that asset triggers the following activity

optionalinheritedActivityAudio

ActivityAudio?: string[]

Array of sound effects for each one of the item's allowed activities

optionalinheritedActivityExpression

ActivityExpression?: Partial<Record<ActivityName, ExpressionTrigger[]>>

The expression on the targeted character

optionalinheritedAllowActivePose

AllowActivePose?: AssetPoseName[]

A list of poses that represents all poses that wearing the asset enables.

Automatically concatenated with AssetDefinition.SetPose members.

Contrary to AssetDefinition.AllowPose poses that are absent from this list can not be used.

optionalinheritedAllowActivity

AllowActivity?: ActivityName[]

Activities that wearing this asset enables.

optionalinheritedAllowActivityOn

AllowActivityOn?: AssetGroupItemName[]

A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.

optionalinheritedAllowBlock

AllowBlock?: AssetGroupItemName[]

optionalinheritedAllowColorize

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

Whether that layer is colorized

optionalinheritedAllowColorizeAll

AllowColorizeAll?: never
@deprecated

Removed without replacement: items must support a "color all layers" button (to the extent that the item is colorable in the first place)

optionalinheritedAllowEffect

AllowEffect?: EffectName[]

optionalinheritedAllowExpression

AllowExpression?: ExpressionName[]

Which expression the group allows to be set on it

optionalinheritedAllowHide

AllowHide?: AssetGroupItemName[]

optionalinheritedAllowHideItem

AllowHideItem?: string[]

optionalAllowLock

AllowLock?: false

Whether the restraint can be locked

optionalAllowLockType

AllowLockType?: never

optionalAllowRemoveExclusive

AllowRemoveExclusive?: false

optionalAllowTighten

AllowTighten?: false

Whether an item can be tightened or not.

Defaults to false unless one of the following two conditions are met:

  • The item is considered a restraint (see AssetDefinition.IsRestraint)
  • The items difficulty is larger than zero (see AssetDefinition.Difficulty)

optionalinheritedAlpha

Alpha?: Definition[]

A list of alpha mask definitions.

optionalAlwaysExtend

AlwaysExtend?: false

Whether the restraint's extended item menu can always be accessed, even if it would be otherwise blocked

optionalAlwaysInteract

AlwaysInteract?: false

Whether the restraint's extended item menu can always be accessed, even if the player's hands are otherwise restrained

optionalArousalZone

ArousalZone?: never

optionalinheritedArousalZoneID

ArousalZoneID?: number

optionalinheritedAttribute

Attribute?: AssetAttribute[]

A list of attributes the asset has

optionalinheritedAttribution

Attribution?: AttributionDefinition

optionalinheritedAudio

Audio?: string

optionalinheritedAvailableLocations

AvailableLocations?: string[]

A list of online spaces (eg. Asylum) where the asset is automatically available

optionalinheritedBlock

A list of group names the asset blocks access to

optionalinheritedBodyCosplay

BodyCosplay?: boolean = 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.

optionalinheritedBonus

Whether wearing the asset gives a bonus in the Kidnap minigame.

optionalinheritedBuyGroup

BuyGroup?: string

Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.

optionalinheritedCategory

Category?: AssetCategory[]

A list of categories. Used to prevent the asset to be used, per chatroom settings

optionalinheritedColorSuffix

ColorSuffix?: Partial<Record<BCColor | HEX_COLOR, BCColor>>

optionalinheritedCopyConfig

CopyConfig?: { AssetName: string; BuyGroup?: boolean; GroupName: AssetGroupName }

The group name and asset name of a configuration to copy. Useful if multiple items share the same config.


Type declaration

  • AssetName: string

    The name of the asset

  • optionalBuyGroup?: boolean

    Whether to automatically assign a AssetDefinition.BuyGroup to the config and, if required, to set it for all CopyConfig-referenced super configs

  • GroupName: AssetGroupName

    The name of the group

optionalCraftGroup

CraftGroup?: never

An identifier that marks the asset as being the same for the purpose of crafting.

Do note that this expects all the assets in the craft group to have compatible layers, color-wise and type-wise.

optionalinheritedCreateLayerTypes

CreateLayerTypes?: string[]

A list of TypeRecord keys for which a single layer expects multiple type-specific .png files.

optionalinheritedCreateLayerTypesOverride

CreateLayerTypesOverride?: number[]

optionalCustomBlindBackground

CustomBlindBackground?: never

optionalinheritedDefaultColor

DefaultColor?: ItemColor

optionalinheritedDefaultTint

DefaultTint?: BCColor

The default tint color (unless overriden by TintDefinition.DefaultColor

optionalinheritedDialogSortOverride

DialogSortOverride?: DialogSortOrder

optionalDifficulty

Difficulty?: never

A measure of how hard it is to remove the restraint. Defaults to 0.

optionalDrawLocks

DrawLocks?: false = true

Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.

Will always be set to false if AssetDefinition.AllowLock is false.

optionalinheritedDrawOffset

DrawOffset?: { Asset?: string; Group?: AssetGroupName; Layer?: string[]; X?: number; Y?: number }[]

optionalinheritedDynamicActivity

DynamicActivity?: (C) => ActivityName

Type declaration

optionalinheritedDynamicAfterDraw

DynamicAfterDraw?: boolean

optionalinheritedDynamicAllowInventoryAdd

DynamicAllowInventoryAdd?: (C) => boolean

Type declaration

    • (C): boolean

optionalinheritedDynamicAudio

DynamicAudio?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicBeforeDraw

DynamicBeforeDraw?: boolean

optionalinheritedDynamicDescription

DynamicDescription?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicGroupName

DynamicGroupName?: AssetGroupName

The real group name used when building the file paths for the asset's layers

optionalinheritedDynamicName

DynamicName?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicPreviewImage

DynamicPreviewImage?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicScriptDraw

DynamicScriptDraw?: boolean

optionalinheritedEditOpacity

EditOpacity?: boolean

optionalinheritedEffect

Effect?: EffectName[]

A list of effects wearing the asset causes on the character

optionalinheritedEnable

Enable?: boolean = true A disabled asset cannot be used on a character. They will also never be used as part of a random appearance.

Whether the asset is enabled or not.

optionalExclusiveUnlock

ExclusiveUnlock?: false

Whether only a specific set of characters can unlock the applied lock

optionalinheritedExpose

A list of group names the asset restores access to.

Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.

optionalinheritedExpressionPrerequisite

ExpressionPrerequisite?: AssetPrerequisite[]

A list of prerequisite checks that must pass for the group's expressions to be selectable

optionalinheritedExpressionTrigger

ExpressionTrigger?: ExpressionTrigger[]

A list of facial expression using the asset causes to the character

optionalinheritedExtended

Extended?: boolean

optionalFamilyOnly

FamilyOnly?: false

Whether the restraint is only available to the family.

optionalinheritedFetish

Fetish?: FetishName[]

optionalinheritedFixedPosition

FixedPosition?: boolean

Whether the asset is drawn at an absolute position.

optionalinheritedFullAlpha

FullAlpha?: boolean

Enable the special color drawing mode used for eyes

optionalinheritedGender

Gender?: AssetGender

optionalinheritedHeight

Height?: number

optionalinheritedHide

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

optionalinheritedHideItem

HideItem?: string[]

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

optionalinheritedHideItemAttribute

HideItemAttribute?: AssetAttribute[]

A list of attributes that causes this one to become hidden.

optionalinheritedHideItemExclude

HideItemExclude?: string[]

A list of asset names that get shown when the asset is worn. Only useful when combined with Hide

optionalinheritedInheritColor

InheritColor?: AssetGroupName

The group the target should inherit its color from.

optionalinheritedInheritPoseMappingFields

InheritPoseMappingFields?: boolean = false

Let assets inherit the group's pose mapping on an individual pose by pose basis, rather than inheriting the pose mapping as a whole (i.e. all or nothing).

optionalinheritedInventoryID

InventoryID?: number

The asset's InventoryID to be synced with the server and other players

optionalIsLock

IsLock?: false

Whether the restraint is a lock (see AssetLockType)

optionalIsRestraint

IsRestraint?: false = 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.

optionalinheritedLayer

The list of layers for the asset.

optionalinheritedLayerVisibility

LayerVisibility?: boolean

Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.

optionalinheritedLeft

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,
},

optionalLoverOnly

LoverOnly?: false

Whether the restraint is only available to lovers.

optionalinheritedMaxOpacity

MaxOpacity?: number

optionalMaxTimer

MaxTimer?: never

The maximum allowed time for a timer lock

optionalinheritedMinOpacity

MinOpacity?: number

optionalinheritedMirrorExpression

MirrorExpression?: AssetGroupBodyName

inheritedName

Name: string

The asset's internal name.

optionalinheritedNeverSell

NeverSell?: boolean

Whether an item should never be able to be sold.

Should be used for items that can be bought and can be earned for free.

optionalinheritedNotVisibleOnScreen

NotVisibleOnScreen?: string[]

A list of screens where current asset won't be shown.

optionalinheritedOpacity

Opacity?: number

optionalinheritedOverrideBlinking

OverrideBlinking?: boolean

optionalinheritedOverrideHeight

OverrideHeight?: AssetOverrideHeight

optionalOwnerOnly

OwnerOnly?: false

Whether the restraint is only available to owners.

optionalinheritedParentGroup

ParentGroup?: | Definition

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

Body sizes can be either be used for all poses (by passing a singular group) or on a pose-by-pose basis (via passing an object). In the latter case PoseType.DEFAULT can be used to override the default for all groups when used as key, or to disable inheritance when used as value.

A value of undefined means the parent group will be inherited. A value of "" will make it size-independent.

@example
// Inherit from the body sizes `BodyLower` by default, but do not inherit for the `AllFours` pose
ParentGroup: {
[PoseType.DEFAULT]: "BodyLower",
AllFours: PoseType.DEFAULT,
},

optionalinheritedParentItem

ParentItem?: string

Link an asset to another.

Used for the random appearance generator, to ensure combined assets match. Eyes, as well as the student tops and bottoms make use of it.

optionalPickDifficulty

PickDifficulty?: never

The lock picking difficulty for those locks that can be picked

optionalinheritedPoseMapping

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.

optionalinheritedPrerequisite

optionalinheritedPreviewIcons

PreviewIcons?: InventoryIcon[]

A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.

optionalinheritedPriority

Priority?: number

The drawing priority of the target

optionalinheritedRandom

Random?: boolean = true

Whether the asset can be selected for a random appearance.

optionalinheritedRemoveAtLogin

RemoveAtLogin?: boolean

Whether the asset gets removed automatically when the character log in. Defaults to false.

optionalinheritedRemoveItemOnRemove

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

A list of assets to also remove when the asset is taken off.

optionalRemoveTime

RemoveTime?: never

The base time required for removing a restraint.

optionalRemoveTimer

RemoveTimer?: never

The default time for a timer lock

optionalinheritedRequire

Require?: AssetGroupBodyName[]

A list of body group that becomes required when this asset is worn.

Used by the random appearance generator to know that it should also pick a random asset from the required group when that asset is used.

optionalSelfBondage

SelfBondage?: never

The required self bondage skill level for equipping a restraint on oneself.

optionalSelfUnlock

SelfUnlock?: false

Whether the player can remove any applied locks to the item

optionalinheritedSetPose

SetPose?: AssetPoseName[]

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

optionalinheritedStyleOverride

StyleOverride?: BodyStyle[]

Specify body type overrides that live in the asset override folder

optionalTime

Time?: never

The base time required for equipping an item.

optionalinheritedTint

Applies screen tints when the asset is worn

optionalinheritedTop

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

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

optionalinheritedValue

Value?: number

The cost of the asset in the shop. Defaults to 0.

A value of -1 makes the asset unavailable, a value of 0 makes it always available.

optionalinheritedVisible

Visible?: boolean

Whether the asset appears visually. Defaults to true.

optionalinheritedWear

Wear?: boolean = true An unwearable asset will not actually end up in the group it’s used on.

Whether the asset can be worn.

optionalinheritedZoom

Zoom?: number = 1.0

The height of the character as set in the special Height appearance group.

Is represented by a number in the [0.9, 1.0] interval.

Item

Item:

An AssetDefinition subtype for assets whose group is of the Item category.

optionalinheritedActivity

Activity?: ActivityName

Applying that asset triggers the following activity

optionalinheritedActivityAudio

ActivityAudio?: string[]

Array of sound effects for each one of the item's allowed activities

optionalinheritedActivityExpression

ActivityExpression?: Partial<Record<ActivityName, ExpressionTrigger[]>>

The expression on the targeted character

optionalinheritedAllowActivePose

AllowActivePose?: AssetPoseName[]

A list of poses that represents all poses that wearing the asset enables.

Automatically concatenated with AssetDefinition.SetPose members.

Contrary to AssetDefinition.AllowPose poses that are absent from this list can not be used.

optionalinheritedAllowActivity

AllowActivity?: ActivityName[]

Activities that wearing this asset enables.

optionalinheritedAllowActivityOn

AllowActivityOn?: AssetGroupItemName[]

A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.

optionalinheritedAllowBlock

AllowBlock?: AssetGroupItemName[]

optionalinheritedAllowColorize

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

Whether that layer is colorized

optionalinheritedAllowColorizeAll

AllowColorizeAll?: never
@deprecated

Removed without replacement: items must support a "color all layers" button (to the extent that the item is colorable in the first place)

optionalinheritedAllowEffect

AllowEffect?: EffectName[]

optionalinheritedAllowExpression

AllowExpression?: ExpressionName[]

Which expression the group allows to be set on it

optionalinheritedAllowHide

AllowHide?: AssetGroupItemName[]

optionalinheritedAllowHideItem

AllowHideItem?: string[]

optionalinheritedAllowLock

AllowLock?: boolean

Whether the restraint can be locked

optionalinheritedAllowLockType

AllowLockType?: AssetLockType[]

optionalinheritedAllowRemoveExclusive

AllowRemoveExclusive?: boolean

optionalinheritedAllowTighten

AllowTighten?: boolean

Whether an item can be tightened or not.

Defaults to false unless one of the following two conditions are met:

  • The item is considered a restraint (see AssetDefinition.IsRestraint)
  • The items difficulty is larger than zero (see AssetDefinition.Difficulty)

optionalinheritedAlpha

Alpha?: Definition[]

A list of alpha mask definitions.

optionalinheritedAlwaysExtend

AlwaysExtend?: boolean

Whether the restraint's extended item menu can always be accessed, even if it would be otherwise blocked

optionalinheritedAlwaysInteract

AlwaysInteract?: boolean

Whether the restraint's extended item menu can always be accessed, even if the player's hands are otherwise restrained

optionalinheritedArousalZone

ArousalZone?: AssetGroupItemName

optionalinheritedArousalZoneID

ArousalZoneID?: number

optionalinheritedAttribute

Attribute?: AssetAttribute[]

A list of attributes the asset has

optionalinheritedAttribution

Attribution?: AttributionDefinition

optionalinheritedAudio

Audio?: string

optionalinheritedAvailableLocations

AvailableLocations?: string[]

A list of online spaces (eg. Asylum) where the asset is automatically available

optionalinheritedBlock

A list of group names the asset blocks access to

optionalBodyCosplay

BodyCosplay?: false = 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.

optionalinheritedBonus

Whether wearing the asset gives a bonus in the Kidnap minigame.

optionalinheritedBuyGroup

BuyGroup?: string

Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.

optionalinheritedCategory

Category?: AssetCategory[]

A list of categories. Used to prevent the asset to be used, per chatroom settings

optionalinheritedColorSuffix

ColorSuffix?: Partial<Record<BCColor | HEX_COLOR, BCColor>>

optionalinheritedCopyConfig

CopyConfig?: { AssetName: string; BuyGroup?: boolean; GroupName: AssetGroupName }

The group name and asset name of a configuration to copy. Useful if multiple items share the same config.


Type declaration

  • AssetName: string

    The name of the asset

  • optionalBuyGroup?: boolean

    Whether to automatically assign a AssetDefinition.BuyGroup to the config and, if required, to set it for all CopyConfig-referenced super configs

  • GroupName: AssetGroupName

    The name of the group

optionalinheritedCraftGroup

CraftGroup?: string

An identifier that marks the asset as being the same for the purpose of crafting.

Do note that this expects all the assets in the craft group to have compatible layers, color-wise and type-wise.

optionalinheritedCreateLayerTypes

CreateLayerTypes?: string[]

A list of TypeRecord keys for which a single layer expects multiple type-specific .png files.

optionalinheritedCreateLayerTypesOverride

CreateLayerTypesOverride?: number[]

optionalinheritedCustomBlindBackground

CustomBlindBackground?: string

optionalinheritedDefaultColor

DefaultColor?: ItemColor

optionalinheritedDefaultTint

DefaultTint?: BCColor

The default tint color (unless overriden by TintDefinition.DefaultColor

optionalinheritedDialogSortOverride

DialogSortOverride?: DialogSortOrder

optionalinheritedDifficulty

Difficulty?: number

A measure of how hard it is to remove the restraint. Defaults to 0.

optionalinheritedDrawLocks

DrawLocks?: boolean = true

Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.

Will always be set to false if AssetDefinition.AllowLock is false.

optionalinheritedDrawOffset

DrawOffset?: { Asset?: string; Group?: AssetGroupName; Layer?: string[]; X?: number; Y?: number }[]

optionalinheritedDynamicActivity

DynamicActivity?: (C) => ActivityName

Type declaration

optionalinheritedDynamicAfterDraw

DynamicAfterDraw?: boolean

optionalinheritedDynamicAllowInventoryAdd

DynamicAllowInventoryAdd?: (C) => boolean

Type declaration

    • (C): boolean

optionalinheritedDynamicAudio

DynamicAudio?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicBeforeDraw

DynamicBeforeDraw?: boolean

optionalinheritedDynamicDescription

DynamicDescription?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicGroupName

DynamicGroupName?: AssetGroupName

The real group name used when building the file paths for the asset's layers

optionalinheritedDynamicName

DynamicName?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicPreviewImage

DynamicPreviewImage?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicScriptDraw

DynamicScriptDraw?: boolean

optionalinheritedEditOpacity

EditOpacity?: boolean

optionalinheritedEffect

Effect?: EffectName[]

A list of effects wearing the asset causes on the character

optionalinheritedEnable

Enable?: boolean = true A disabled asset cannot be used on a character. They will also never be used as part of a random appearance.

Whether the asset is enabled or not.

optionalinheritedExclusiveUnlock

ExclusiveUnlock?: boolean

Whether only a specific set of characters can unlock the applied lock

optionalinheritedExpose

A list of group names the asset restores access to.

Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.

optionalinheritedExpressionPrerequisite

ExpressionPrerequisite?: AssetPrerequisite[]

A list of prerequisite checks that must pass for the group's expressions to be selectable

optionalinheritedExpressionTrigger

ExpressionTrigger?: ExpressionTrigger[]

A list of facial expression using the asset causes to the character

optionalinheritedExtended

Extended?: boolean

optionalinheritedFamilyOnly

FamilyOnly?: boolean

Whether the restraint is only available to the family.

optionalinheritedFetish

Fetish?: FetishName[]

optionalinheritedFixedPosition

FixedPosition?: boolean

Whether the asset is drawn at an absolute position.

optionalinheritedFullAlpha

FullAlpha?: boolean

Enable the special color drawing mode used for eyes

optionalinheritedGender

Gender?: AssetGender

optionalinheritedHeight

Height?: number

optionalinheritedHide

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

optionalinheritedHideItem

HideItem?: string[]

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

optionalinheritedHideItemAttribute

HideItemAttribute?: AssetAttribute[]

A list of attributes that causes this one to become hidden.

optionalinheritedHideItemExclude

HideItemExclude?: string[]

A list of asset names that get shown when the asset is worn. Only useful when combined with Hide

optionalinheritedInheritColor

InheritColor?: AssetGroupName

The group the target should inherit its color from.

optionalinheritedInheritPoseMappingFields

InheritPoseMappingFields?: boolean = false

Let assets inherit the group's pose mapping on an individual pose by pose basis, rather than inheriting the pose mapping as a whole (i.e. all or nothing).

optionalinheritedInventoryID

InventoryID?: number

The asset's InventoryID to be synced with the server and other players

optionalinheritedIsLock

IsLock?: boolean

Whether the restraint is a lock (see AssetLockType)

optionalinheritedIsRestraint

IsRestraint?: boolean = 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.

optionalinheritedLayer

The list of layers for the asset.

optionalinheritedLayerVisibility

LayerVisibility?: boolean

Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.

optionalinheritedLeft

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,
},

optionalinheritedLoverOnly

LoverOnly?: boolean

Whether the restraint is only available to lovers.

optionalinheritedMaxOpacity

MaxOpacity?: number

optionalinheritedMaxTimer

MaxTimer?: number

The maximum allowed time for a timer lock

optionalinheritedMinOpacity

MinOpacity?: number

optionalinheritedMirrorExpression

MirrorExpression?: AssetGroupBodyName

inheritedName

Name: string

The asset's internal name.

optionalinheritedNeverSell

NeverSell?: boolean

Whether an item should never be able to be sold.

Should be used for items that can be bought and can be earned for free.

optionalinheritedNotVisibleOnScreen

NotVisibleOnScreen?: string[]

A list of screens where current asset won't be shown.

optionalinheritedOpacity

Opacity?: number

optionalinheritedOverrideBlinking

OverrideBlinking?: boolean

optionalinheritedOverrideHeight

OverrideHeight?: AssetOverrideHeight

optionalinheritedOwnerOnly

OwnerOnly?: boolean

Whether the restraint is only available to owners.

optionalinheritedParentGroup

ParentGroup?: | Definition

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

Body sizes can be either be used for all poses (by passing a singular group) or on a pose-by-pose basis (via passing an object). In the latter case PoseType.DEFAULT can be used to override the default for all groups when used as key, or to disable inheritance when used as value.

A value of undefined means the parent group will be inherited. A value of "" will make it size-independent.

@example
// Inherit from the body sizes `BodyLower` by default, but do not inherit for the `AllFours` pose
ParentGroup: {
[PoseType.DEFAULT]: "BodyLower",
AllFours: PoseType.DEFAULT,
},

optionalinheritedParentItem

ParentItem?: string

Link an asset to another.

Used for the random appearance generator, to ensure combined assets match. Eyes, as well as the student tops and bottoms make use of it.

optionalinheritedPickDifficulty

PickDifficulty?: number

The lock picking difficulty for those locks that can be picked

optionalinheritedPoseMapping

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.

optionalinheritedPrerequisite

optionalinheritedPreviewIcons

PreviewIcons?: InventoryIcon[]

A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.

optionalinheritedPriority

Priority?: number

The drawing priority of the target

optionalinheritedRandom

Random?: boolean = true

Whether the asset can be selected for a random appearance.

optionalinheritedRemoveAtLogin

RemoveAtLogin?: boolean

Whether the asset gets removed automatically when the character log in. Defaults to false.

optionalinheritedRemoveItemOnRemove

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

A list of assets to also remove when the asset is taken off.

optionalinheritedRemoveTime

RemoveTime?: number

The base time required for removing a restraint.

optionalinheritedRemoveTimer

RemoveTimer?: number

The default time for a timer lock

optionalinheritedRequire

Require?: AssetGroupBodyName[]

A list of body group that becomes required when this asset is worn.

Used by the random appearance generator to know that it should also pick a random asset from the required group when that asset is used.

optionalinheritedSelfBondage

SelfBondage?: number

The required self bondage skill level for equipping a restraint on oneself.

optionalinheritedSelfUnlock

SelfUnlock?: boolean

Whether the player can remove any applied locks to the item

optionalinheritedSetPose

SetPose?: AssetPoseName[]

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

optionalinheritedStyleOverride

StyleOverride?: BodyStyle[]

Specify body type overrides that live in the asset override folder

optionalinheritedTime

Time?: number

The base time required for equipping an item.

optionalinheritedTint

Applies screen tints when the asset is worn

optionalinheritedTop

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

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

optionalinheritedValue

Value?: number

The cost of the asset in the shop. Defaults to 0.

A value of -1 makes the asset unavailable, a value of 0 makes it always available.

optionalinheritedVisible

Visible?: boolean

Whether the asset appears visually. Defaults to true.

optionalinheritedWear

Wear?: boolean = true An unwearable asset will not actually end up in the group it’s used on.

Whether the asset can be worn.

optionalZoom

Zoom?: never = 1.0

The height of the character as set in the special Height appearance group.

Is represented by a number in the [0.9, 1.0] interval.

Script

Script:

An AssetDefinition subtype for assets whose group is of the Script category.

optionalinheritedActivity

Activity?: ActivityName

Applying that asset triggers the following activity

optionalinheritedActivityAudio

ActivityAudio?: string[]

Array of sound effects for each one of the item's allowed activities

optionalinheritedActivityExpression

ActivityExpression?: Partial<Record<ActivityName, ExpressionTrigger[]>>

The expression on the targeted character

optionalinheritedAllowActivePose

AllowActivePose?: AssetPoseName[]

A list of poses that represents all poses that wearing the asset enables.

Automatically concatenated with AssetDefinition.SetPose members.

Contrary to AssetDefinition.AllowPose poses that are absent from this list can not be used.

optionalinheritedAllowActivity

AllowActivity?: ActivityName[]

Activities that wearing this asset enables.

optionalinheritedAllowActivityOn

AllowActivityOn?: AssetGroupItemName[]

A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.

optionalinheritedAllowBlock

AllowBlock?: AssetGroupItemName[]

optionalinheritedAllowColorize

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

Whether that layer is colorized

optionalinheritedAllowColorizeAll

AllowColorizeAll?: never
@deprecated

Removed without replacement: items must support a "color all layers" button (to the extent that the item is colorable in the first place)

optionalinheritedAllowEffect

AllowEffect?: EffectName[]

optionalinheritedAllowExpression

AllowExpression?: ExpressionName[]

Which expression the group allows to be set on it

optionalinheritedAllowHide

AllowHide?: AssetGroupItemName[]

optionalinheritedAllowHideItem

AllowHideItem?: string[]

optionalinheritedAllowLock

AllowLock?: boolean

Whether the restraint can be locked

optionalinheritedAllowLockType

AllowLockType?: AssetLockType[]

optionalinheritedAllowRemoveExclusive

AllowRemoveExclusive?: boolean

optionalinheritedAllowTighten

AllowTighten?: boolean

Whether an item can be tightened or not.

Defaults to false unless one of the following two conditions are met:

  • The item is considered a restraint (see AssetDefinition.IsRestraint)
  • The items difficulty is larger than zero (see AssetDefinition.Difficulty)

optionalinheritedAlpha

Alpha?: Definition[]

A list of alpha mask definitions.

optionalinheritedAlwaysExtend

AlwaysExtend?: boolean

Whether the restraint's extended item menu can always be accessed, even if it would be otherwise blocked

optionalinheritedAlwaysInteract

AlwaysInteract?: boolean

Whether the restraint's extended item menu can always be accessed, even if the player's hands are otherwise restrained

optionalinheritedArousalZone

ArousalZone?: AssetGroupItemName

optionalinheritedArousalZoneID

ArousalZoneID?: number

optionalinheritedAttribute

Attribute?: AssetAttribute[]

A list of attributes the asset has

optionalinheritedAttribution

Attribution?: AttributionDefinition

optionalinheritedAudio

Audio?: string

optionalinheritedAvailableLocations

AvailableLocations?: string[]

A list of online spaces (eg. Asylum) where the asset is automatically available

optionalinheritedBlock

A list of group names the asset blocks access to

optionalinheritedBodyCosplay

BodyCosplay?: boolean = 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.

optionalinheritedBonus

Whether wearing the asset gives a bonus in the Kidnap minigame.

optionalinheritedBuyGroup

BuyGroup?: string

Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.

optionalinheritedCategory

Category?: AssetCategory[]

A list of categories. Used to prevent the asset to be used, per chatroom settings

optionalinheritedColorSuffix

ColorSuffix?: Partial<Record<BCColor | HEX_COLOR, BCColor>>

optionalinheritedCopyConfig

CopyConfig?: { AssetName: string; BuyGroup?: boolean; GroupName: AssetGroupName }

The group name and asset name of a configuration to copy. Useful if multiple items share the same config.


Type declaration

  • AssetName: string

    The name of the asset

  • optionalBuyGroup?: boolean

    Whether to automatically assign a AssetDefinition.BuyGroup to the config and, if required, to set it for all CopyConfig-referenced super configs

  • GroupName: AssetGroupName

    The name of the group

optionalinheritedCraftGroup

CraftGroup?: string

An identifier that marks the asset as being the same for the purpose of crafting.

Do note that this expects all the assets in the craft group to have compatible layers, color-wise and type-wise.

optionalinheritedCreateLayerTypes

CreateLayerTypes?: string[]

A list of TypeRecord keys for which a single layer expects multiple type-specific .png files.

optionalinheritedCreateLayerTypesOverride

CreateLayerTypesOverride?: number[]

optionalinheritedCustomBlindBackground

CustomBlindBackground?: string

optionalinheritedDefaultColor

DefaultColor?: ItemColor

optionalinheritedDefaultTint

DefaultTint?: BCColor

The default tint color (unless overriden by TintDefinition.DefaultColor

optionalinheritedDialogSortOverride

DialogSortOverride?: DialogSortOrder

optionalinheritedDifficulty

Difficulty?: number

A measure of how hard it is to remove the restraint. Defaults to 0.

optionalinheritedDrawLocks

DrawLocks?: boolean = true

Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.

Will always be set to false if AssetDefinition.AllowLock is false.

optionalinheritedDrawOffset

DrawOffset?: { Asset?: string; Group?: AssetGroupName; Layer?: string[]; X?: number; Y?: number }[]

optionalinheritedDynamicActivity

DynamicActivity?: (C) => ActivityName

Type declaration

optionalinheritedDynamicAfterDraw

DynamicAfterDraw?: boolean

optionalinheritedDynamicAllowInventoryAdd

DynamicAllowInventoryAdd?: (C) => boolean

Type declaration

    • (C): boolean

optionalinheritedDynamicAudio

DynamicAudio?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicBeforeDraw

DynamicBeforeDraw?: boolean

optionalinheritedDynamicDescription

DynamicDescription?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicGroupName

DynamicGroupName?: AssetGroupName

The real group name used when building the file paths for the asset's layers

optionalinheritedDynamicName

DynamicName?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicPreviewImage

DynamicPreviewImage?: (C) => string

Type declaration

    • (C): string

optionalinheritedDynamicScriptDraw

DynamicScriptDraw?: boolean

optionalinheritedEditOpacity

EditOpacity?: boolean

optionalinheritedEffect

Effect?: EffectName[]

A list of effects wearing the asset causes on the character

optionalinheritedEnable

Enable?: boolean = true A disabled asset cannot be used on a character. They will also never be used as part of a random appearance.

Whether the asset is enabled or not.

optionalinheritedExclusiveUnlock

ExclusiveUnlock?: boolean

Whether only a specific set of characters can unlock the applied lock

optionalinheritedExpose

A list of group names the asset restores access to.

Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.

optionalinheritedExpressionPrerequisite

ExpressionPrerequisite?: AssetPrerequisite[]

A list of prerequisite checks that must pass for the group's expressions to be selectable

optionalinheritedExpressionTrigger

ExpressionTrigger?: ExpressionTrigger[]

A list of facial expression using the asset causes to the character

optionalinheritedExtended

Extended?: boolean

optionalinheritedFamilyOnly

FamilyOnly?: boolean

Whether the restraint is only available to the family.

optionalinheritedFetish

Fetish?: FetishName[]

optionalinheritedFixedPosition

FixedPosition?: boolean

Whether the asset is drawn at an absolute position.

optionalinheritedFullAlpha

FullAlpha?: boolean

Enable the special color drawing mode used for eyes

optionalinheritedGender

Gender?: AssetGender

optionalinheritedHeight

Height?: number

optionalinheritedHide

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

optionalinheritedHideItem

HideItem?: string[]

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

optionalinheritedHideItemAttribute

HideItemAttribute?: AssetAttribute[]

A list of attributes that causes this one to become hidden.

optionalinheritedHideItemExclude

HideItemExclude?: string[]

A list of asset names that get shown when the asset is worn. Only useful when combined with Hide

optionalinheritedInheritColor

InheritColor?: AssetGroupName

The group the target should inherit its color from.

optionalinheritedInheritPoseMappingFields

InheritPoseMappingFields?: boolean = false

Let assets inherit the group's pose mapping on an individual pose by pose basis, rather than inheriting the pose mapping as a whole (i.e. all or nothing).

optionalinheritedInventoryID

InventoryID?: number

The asset's InventoryID to be synced with the server and other players

optionalinheritedIsLock

IsLock?: boolean

Whether the restraint is a lock (see AssetLockType)

optionalinheritedIsRestraint

IsRestraint?: boolean = 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.

optionalinheritedLayer

The list of layers for the asset.

optionalinheritedLayerVisibility

LayerVisibility?: boolean

Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.

optionalinheritedLeft

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,
},

optionalinheritedLoverOnly

LoverOnly?: boolean

Whether the restraint is only available to lovers.

optionalinheritedMaxOpacity

MaxOpacity?: number

optionalinheritedMaxTimer

MaxTimer?: number

The maximum allowed time for a timer lock

optionalinheritedMinOpacity

MinOpacity?: number

optionalinheritedMirrorExpression

MirrorExpression?: AssetGroupBodyName

inheritedName

Name: string

The asset's internal name.

optionalinheritedNeverSell

NeverSell?: boolean

Whether an item should never be able to be sold.

Should be used for items that can be bought and can be earned for free.

optionalinheritedNotVisibleOnScreen

NotVisibleOnScreen?: string[]

A list of screens where current asset won't be shown.

optionalinheritedOpacity

Opacity?: number

optionalinheritedOverrideBlinking

OverrideBlinking?: boolean

optionalinheritedOverrideHeight

OverrideHeight?: AssetOverrideHeight

optionalinheritedOwnerOnly

OwnerOnly?: boolean

Whether the restraint is only available to owners.

optionalinheritedParentGroup

ParentGroup?: | Definition

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

Body sizes can be either be used for all poses (by passing a singular group) or on a pose-by-pose basis (via passing an object). In the latter case PoseType.DEFAULT can be used to override the default for all groups when used as key, or to disable inheritance when used as value.

A value of undefined means the parent group will be inherited. A value of "" will make it size-independent.

@example
// Inherit from the body sizes `BodyLower` by default, but do not inherit for the `AllFours` pose
ParentGroup: {
[PoseType.DEFAULT]: "BodyLower",
AllFours: PoseType.DEFAULT,
},

optionalinheritedParentItem

ParentItem?: string

Link an asset to another.

Used for the random appearance generator, to ensure combined assets match. Eyes, as well as the student tops and bottoms make use of it.

optionalinheritedPickDifficulty

PickDifficulty?: number

The lock picking difficulty for those locks that can be picked

optionalinheritedPoseMapping

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.

optionalinheritedPrerequisite

optionalinheritedPreviewIcons

PreviewIcons?: InventoryIcon[]

A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.

optionalinheritedPriority

Priority?: number

The drawing priority of the target

optionalinheritedRandom

Random?: boolean = true

Whether the asset can be selected for a random appearance.

optionalinheritedRemoveAtLogin

RemoveAtLogin?: boolean

Whether the asset gets removed automatically when the character log in. Defaults to false.

optionalinheritedRemoveItemOnRemove

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

A list of assets to also remove when the asset is taken off.

optionalinheritedRemoveTime

RemoveTime?: number

The base time required for removing a restraint.

optionalinheritedRemoveTimer

RemoveTimer?: number

The default time for a timer lock

optionalinheritedRequire

Require?: AssetGroupBodyName[]

A list of body group that becomes required when this asset is worn.

Used by the random appearance generator to know that it should also pick a random asset from the required group when that asset is used.

optionalinheritedSelfBondage

SelfBondage?: number

The required self bondage skill level for equipping a restraint on oneself.

optionalinheritedSelfUnlock

SelfUnlock?: boolean

Whether the player can remove any applied locks to the item

optionalinheritedSetPose

SetPose?: AssetPoseName[]

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

optionalinheritedStyleOverride

StyleOverride?: BodyStyle[]

Specify body type overrides that live in the asset override folder

optionalinheritedTime

Time?: number

The base time required for equipping an item.

optionalinheritedTint

Applies screen tints when the asset is worn

optionalinheritedTop

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

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

optionalinheritedValue

Value?: number

The cost of the asset in the shop. Defaults to 0.

A value of -1 makes the asset unavailable, a value of 0 makes it always available.

optionalinheritedVisible

Visible?: boolean

Whether the asset appears visually. Defaults to true.

optionalinheritedWear

Wear?: boolean = true An unwearable asset will not actually end up in the group it’s used on.

Whether the asset can be worn.

optionalinheritedZoom

Zoom?: number = 1.0

The height of the character as set in the special Height appearance group.

Is represented by a number in the [0.9, 1.0] interval.

Page Options