AssetDefinition
Index
Interfaces
Interfaces
Appearance
An AssetDefinition subtype for assets whose group is of the Appearance
category.
optionalActivity
Applying that asset triggers the following activity
optionalActivityAudio
Array of sound effects for each one of the item's allowed activities
optionalActivityExpression
The expression on the targeted character
optionalAllowActivePose
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.
optionalAllowActivity
Activities that wearing this asset enables.
optionalAllowActivityOn
A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.
optionalAllowBlock
optionalAllowColorize
Whether that layer is colorized
optionalAllowColorizeAll
Whether the color picker shows a "Whole Item" layer. Defaults to true.
optionalAllowEffect
optionalAllowExpression
Which expression the group allows to be set on it
optionalAllowHide
optionalAllowHideItem
optionalAllowLock
optionalAllowLockType
optionalAllowPose
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.
optionalAllowRemoveExclusive
optionalAllowTighten
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)
optionalAllowTypes
optionalAlpha
A list of alpha mask definitions.
optionalAlwaysExtend
optionalAlwaysInteract
optionalArousalZone
optionalArousalZoneID
optionalAttribute
A list of attributes the asset has
optionalAudio
optionalAvailableLocations
A list of online spaces (eg. Asylum) where the asset is automatically available
optionalBlock
A list of group names the asset blocks access to
optionalBodyCosplay
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.
optionalBonus
Whether wearing the asset gives a bonus in the Kidnap minigame.
optionalBuyGroup
Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.
optionalCategory
A list of categories. Used to prevent the asset to be used, per chatroom settings
optionalCharacterRestricted
Whether the asset is restricted to a given character.
When the asset is added to a character, the member number of the character using the asset will be stored along in its properties, and all subsequent modifications will only be possible for that character.
optionalColorSuffix
optionalCopyConfig
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 configsGroupName: AssetGroupName
The name of the group
optionalCraftGroup
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.
optionalCreateLayerTypes
optionalCustomBlindBackground
optionalDefaultColor
optionalDefaultTint
The default tint color (unless overriden by TintDefinition.DefaultColor
optionalDialogSortOverride
optionalDifficulty
A measure of how hard it is to remove the asset. Defaults to 0.
optionalDrawLocks
Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.
Will always be set to false
if AssetDefinition.AllowLock is false
.
optionalDynamicActivity
Type declaration
Parameters
C: Character
Returns ActivityName
optionalDynamicAfterDraw
optionalDynamicAllowInventoryAdd
Type declaration
Parameters
C: Character
Returns boolean
optionalDynamicAudio
Type declaration
Parameters
C: Character
Returns string
optionalDynamicBeforeDraw
optionalDynamicDescription
Type declaration
Parameters
C: Character
Returns string
optionalDynamicGroupName
The real group name used when building the file paths for the asset's layers
optionalDynamicName
Type declaration
Parameters
C: Character
Returns string
optionalDynamicPreviewImage
Type declaration
Parameters
C: Character
Returns string
optionalDynamicScriptDraw
optionalEditOpacity
optionalEffect
A list of effects wearing the asset causes on the character
optionalEnable
Whether the asset is enabled or not.
optionalExclusiveUnlock
optionalExpose
A list of group names the asset restores access to.
Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.
optionalExpressionPrerequisite
A list of prerequisite checks that must pass for the group's expressions to be selectable
optionalExpressionTrigger
A list of facial expression using the asset causes to the character
optionalExtended
optionalFamilyOnly
Whether the asset is only available to the family.
optionalFetish
optionalFixedPosition
Whether the asset is drawn at an absolute position.
optionalFreezeActivePose
A list of pose categories that the character will be prevented to change
optionalFullAlpha
Enable the special color drawing mode used for eyes
optionalGender
optionalHeight
optionalHide
A list of group names that get hidden when the asset is worn
optionalHideForPose
A list of poses that hide the asset when they get set.
Note that this does not prevent usage of the pose (see AssetDefinition.AllowActivePose). Values are automatically added to Asset.AllowPose.
optionalHideItem
A list of asset names that get hidden when the asset is worn.
optionalHideItemAttribute
A list of attributes that causes this one to become hidden.
optionalHideItemExclude
A list of asset names that get shown when the asset is worn. Only useful when combined with Hide
optionalInheritColor
The group the target should inherit its color from.
optionalInventoryID
The asset's InventoryID to be synced with the server and other players
optionalIsLock
optionalIsRestraint
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.
optionalLayer
The list of layers for the asset.
optionalLayerVisibility
Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.
optionalLeft
The left coordinate of the target draw rect or a record with pose-specific left coordinates.
optionalLoverOnly
Whether the asset is only available to lovers.
optionalMaxOpacity
optionalMaxTimer
optionalMinOpacity
optionalMirrorExpression
Name
The asset's internal name.
optionalNeverSell
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.
optionalNotVisibleOnScreen
A list of screens where current asset won't be shown.
optionalOpacity
optionalOverrideBlinking
optionalOverrideHeight
optionalOwnerOnly
Whether the asset is only available to owners.
optionalParentGroup
A group identifier that will be used to inherit the body size
optionalParentItem
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
optionalPoseMapping
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.
optionalPrerequisite
optionalPreviewIcons
A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.
optionalPriority
The drawing priority of the target
optionalRandom
Whether the asset can be selected for a random appearance.
optionalRemoveAtLogin
Whether the asset gets removed automatically when the character log in. Defaults to false.
optionalRemoveItemOnRemove
A list of assets to also remove when the asset is taken off.
optionalRemoveTime
optionalRemoveTimer
optionalRequire
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
optionalSelfUnlock
optionalSetPose
A pose that the character will change to when wearing the asset
optionalTime
optionalTint
Applies screen tints when the asset is worn
optionalTop
The top coordinate of the target draw rect or a record with pose-specific top coordinates.
optionalValue
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.
optionalVisible
Whether the asset appears visually. Defaults to true.
optionalWear
Whether the asset can be worn.
optionalWhitelistActivePose
optionalZoom
Item
An AssetDefinition subtype for assets whose group is of the Item
category.
optionalActivity
Applying that asset triggers the following activity
optionalActivityAudio
Array of sound effects for each one of the item's allowed activities
optionalActivityExpression
The expression on the targeted character
optionalAllowActivePose
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.
optionalAllowActivity
Activities that wearing this asset enables.
optionalAllowActivityOn
A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.
optionalAllowBlock
optionalAllowColorize
Whether that layer is colorized
optionalAllowColorizeAll
Whether the color picker shows a "Whole Item" layer. Defaults to true.
optionalAllowEffect
optionalAllowExpression
Which expression the group allows to be set on it
optionalAllowHide
optionalAllowHideItem
optionalAllowLock
optionalAllowLockType
optionalAllowPose
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.
optionalAllowRemoveExclusive
optionalAllowTighten
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)
optionalAllowTypes
optionalAlpha
A list of alpha mask definitions.
optionalAlwaysExtend
optionalAlwaysInteract
optionalArousalZone
optionalArousalZoneID
optionalAttribute
A list of attributes the asset has
optionalAudio
optionalAvailableLocations
A list of online spaces (eg. Asylum) where the asset is automatically available
optionalBlock
A list of group names the asset blocks access to
optionalBodyCosplay
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.
optionalBonus
Whether wearing the asset gives a bonus in the Kidnap minigame.
optionalBuyGroup
Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.
optionalCategory
A list of categories. Used to prevent the asset to be used, per chatroom settings
optionalCharacterRestricted
Whether the asset is restricted to a given character.
When the asset is added to a character, the member number of the character using the asset will be stored along in its properties, and all subsequent modifications will only be possible for that character.
optionalColorSuffix
optionalCopyConfig
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 configsGroupName: AssetGroupName
The name of the group
optionalCraftGroup
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.
optionalCreateLayerTypes
optionalCustomBlindBackground
optionalDefaultColor
optionalDefaultTint
The default tint color (unless overriden by TintDefinition.DefaultColor
optionalDialogSortOverride
optionalDifficulty
A measure of how hard it is to remove the asset. Defaults to 0.
optionalDrawLocks
Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.
Will always be set to false
if AssetDefinition.AllowLock is false
.
optionalDynamicActivity
Type declaration
Parameters
C: Character
Returns ActivityName
optionalDynamicAfterDraw
optionalDynamicAllowInventoryAdd
Type declaration
Parameters
C: Character
Returns boolean
optionalDynamicAudio
Type declaration
Parameters
C: Character
Returns string
optionalDynamicBeforeDraw
optionalDynamicDescription
Type declaration
Parameters
C: Character
Returns string
optionalDynamicGroupName
The real group name used when building the file paths for the asset's layers
optionalDynamicName
Type declaration
Parameters
C: Character
Returns string
optionalDynamicPreviewImage
Type declaration
Parameters
C: Character
Returns string
optionalDynamicScriptDraw
optionalEditOpacity
optionalEffect
A list of effects wearing the asset causes on the character
optionalEnable
Whether the asset is enabled or not.
optionalExclusiveUnlock
optionalExpose
A list of group names the asset restores access to.
Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.
optionalExpressionPrerequisite
A list of prerequisite checks that must pass for the group's expressions to be selectable
optionalExpressionTrigger
A list of facial expression using the asset causes to the character
optionalExtended
optionalFamilyOnly
Whether the asset is only available to the family.
optionalFetish
optionalFixedPosition
Whether the asset is drawn at an absolute position.
optionalFreezeActivePose
A list of pose categories that the character will be prevented to change
optionalFullAlpha
Enable the special color drawing mode used for eyes
optionalGender
optionalHeight
optionalHide
A list of group names that get hidden when the asset is worn
optionalHideForPose
A list of poses that hide the asset when they get set.
Note that this does not prevent usage of the pose (see AssetDefinition.AllowActivePose). Values are automatically added to Asset.AllowPose.
optionalHideItem
A list of asset names that get hidden when the asset is worn.
optionalHideItemAttribute
A list of attributes that causes this one to become hidden.
optionalHideItemExclude
A list of asset names that get shown when the asset is worn. Only useful when combined with Hide
optionalInheritColor
The group the target should inherit its color from.
optionalInventoryID
The asset's InventoryID to be synced with the server and other players
optionalIsLock
optionalIsRestraint
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.
optionalLayer
The list of layers for the asset.
optionalLayerVisibility
Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.
optionalLeft
The left coordinate of the target draw rect or a record with pose-specific left coordinates.
optionalLoverOnly
Whether the asset is only available to lovers.
optionalMaxOpacity
optionalMaxTimer
optionalMinOpacity
optionalMirrorExpression
Name
The asset's internal name.
optionalNeverSell
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.
optionalNotVisibleOnScreen
A list of screens where current asset won't be shown.
optionalOpacity
optionalOverrideBlinking
optionalOverrideHeight
optionalOwnerOnly
Whether the asset is only available to owners.
optionalParentGroup
A group identifier that will be used to inherit the body size
optionalParentItem
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
optionalPoseMapping
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.
optionalPrerequisite
optionalPreviewIcons
A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.
optionalPriority
The drawing priority of the target
optionalRandom
Whether the asset can be selected for a random appearance.
optionalRemoveAtLogin
Whether the asset gets removed automatically when the character log in. Defaults to false.
optionalRemoveItemOnRemove
A list of assets to also remove when the asset is taken off.
optionalRemoveTime
optionalRemoveTimer
optionalRequire
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
optionalSelfUnlock
optionalSetPose
A pose that the character will change to when wearing the asset
optionalTime
optionalTint
Applies screen tints when the asset is worn
optionalTop
The top coordinate of the target draw rect or a record with pose-specific top coordinates.
optionalValue
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.
optionalVisible
Whether the asset appears visually. Defaults to true.
optionalWear
Whether the asset can be worn.
optionalWhitelistActivePose
optionalZoom
Script
An AssetDefinition subtype for assets whose group is of the Script
category.
optionalActivity
Applying that asset triggers the following activity
optionalActivityAudio
Array of sound effects for each one of the item's allowed activities
optionalActivityExpression
The expression on the targeted character
optionalAllowActivePose
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.
optionalAllowActivity
Activities that wearing this asset enables.
optionalAllowActivityOn
A list of groups that should still be allowed to be acted on even though they should be blocked by the asset.
optionalAllowBlock
optionalAllowColorize
Whether that layer is colorized
optionalAllowColorizeAll
Whether the color picker shows a "Whole Item" layer. Defaults to true.
optionalAllowEffect
optionalAllowExpression
Which expression the group allows to be set on it
optionalAllowHide
optionalAllowHideItem
optionalAllowLock
optionalAllowLockType
optionalAllowPose
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.
optionalAllowRemoveExclusive
optionalAllowTighten
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)
optionalAllowTypes
optionalAlpha
A list of alpha mask definitions.
optionalAlwaysExtend
optionalAlwaysInteract
optionalArousalZone
optionalArousalZoneID
optionalAttribute
A list of attributes the asset has
optionalAudio
optionalAvailableLocations
A list of online spaces (eg. Asylum) where the asset is automatically available
optionalBlock
A list of group names the asset blocks access to
optionalBodyCosplay
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.
optionalBonus
Whether wearing the asset gives a bonus in the Kidnap minigame.
optionalBuyGroup
Identifies a set of assets that's part of the same group for shopping purposes. Buying one will give access to all of them.
optionalCategory
A list of categories. Used to prevent the asset to be used, per chatroom settings
optionalCharacterRestricted
Whether the asset is restricted to a given character.
When the asset is added to a character, the member number of the character using the asset will be stored along in its properties, and all subsequent modifications will only be possible for that character.
optionalColorSuffix
optionalCopyConfig
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 configsGroupName: AssetGroupName
The name of the group
optionalCraftGroup
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.
optionalCreateLayerTypes
optionalCustomBlindBackground
optionalDefaultColor
optionalDefaultTint
The default tint color (unless overriden by TintDefinition.DefaultColor
optionalDialogSortOverride
optionalDifficulty
A measure of how hard it is to remove the asset. Defaults to 0.
optionalDrawLocks
Whether a AssetLayerDefinition.LockLayer-supporting layer should automatically be generated.
Will always be set to false
if AssetDefinition.AllowLock is false
.
optionalDynamicActivity
Type declaration
Parameters
C: Character
Returns ActivityName
optionalDynamicAfterDraw
optionalDynamicAllowInventoryAdd
Type declaration
Parameters
C: Character
Returns boolean
optionalDynamicAudio
Type declaration
Parameters
C: Character
Returns string
optionalDynamicBeforeDraw
optionalDynamicDescription
Type declaration
Parameters
C: Character
Returns string
optionalDynamicGroupName
The real group name used when building the file paths for the asset's layers
optionalDynamicName
Type declaration
Parameters
C: Character
Returns string
optionalDynamicPreviewImage
Type declaration
Parameters
C: Character
Returns string
optionalDynamicScriptDraw
optionalEditOpacity
optionalEffect
A list of effects wearing the asset causes on the character
optionalEnable
Whether the asset is enabled or not.
optionalExclusiveUnlock
optionalExpose
A list of group names the asset restores access to.
Mostly used for clothes, and might be considered a duplicate of AllowActivityOn.
optionalExpressionPrerequisite
A list of prerequisite checks that must pass for the group's expressions to be selectable
optionalExpressionTrigger
A list of facial expression using the asset causes to the character
optionalExtended
optionalFamilyOnly
Whether the asset is only available to the family.
optionalFetish
optionalFixedPosition
Whether the asset is drawn at an absolute position.
optionalFreezeActivePose
A list of pose categories that the character will be prevented to change
optionalFullAlpha
Enable the special color drawing mode used for eyes
optionalGender
optionalHeight
optionalHide
A list of group names that get hidden when the asset is worn
optionalHideForPose
A list of poses that hide the asset when they get set.
Note that this does not prevent usage of the pose (see AssetDefinition.AllowActivePose). Values are automatically added to Asset.AllowPose.
optionalHideItem
A list of asset names that get hidden when the asset is worn.
optionalHideItemAttribute
A list of attributes that causes this one to become hidden.
optionalHideItemExclude
A list of asset names that get shown when the asset is worn. Only useful when combined with Hide
optionalInheritColor
The group the target should inherit its color from.
optionalInventoryID
The asset's InventoryID to be synced with the server and other players
optionalIsLock
optionalIsRestraint
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.
optionalLayer
The list of layers for the asset.
optionalLayerVisibility
Enables advanced layer visibility on the asset. See AssetLayerDefinition.Visibility for more information.
optionalLeft
The left coordinate of the target draw rect or a record with pose-specific left coordinates.
optionalLoverOnly
Whether the asset is only available to lovers.
optionalMaxOpacity
optionalMaxTimer
optionalMinOpacity
optionalMirrorExpression
Name
The asset's internal name.
optionalNeverSell
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.
optionalNotVisibleOnScreen
A list of screens where current asset won't be shown.
optionalOpacity
optionalOverrideBlinking
optionalOverrideHeight
optionalOwnerOnly
Whether the asset is only available to owners.
optionalParentGroup
A group identifier that will be used to inherit the body size
optionalParentItem
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
optionalPoseMapping
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.
optionalPrerequisite
optionalPreviewIcons
A list of icons the asset preview should show. Only used by the handheld items, as the game handles the other icons automatically.
optionalPriority
The drawing priority of the target
optionalRandom
Whether the asset can be selected for a random appearance.
optionalRemoveAtLogin
Whether the asset gets removed automatically when the character log in. Defaults to false.
optionalRemoveItemOnRemove
A list of assets to also remove when the asset is taken off.
optionalRemoveTime
optionalRemoveTimer
optionalRequire
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
optionalSelfUnlock
optionalSetPose
A pose that the character will change to when wearing the asset
optionalTime
optionalTint
Applies screen tints when the asset is worn
optionalTop
The top coordinate of the target draw rect or a record with pose-specific top coordinates.
optionalValue
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.
optionalVisible
Whether the asset appears visually. Defaults to true.
optionalWear
Whether the asset can be worn.
Input interface for constructing Asset objects.