Skip to main content

ItemProperty

Index

Interfaces

Entry

Entry<T>:

An interface representing constructor input for the PropertyDataEntry class.


Type parameters

optionalreadonlycompare

compare?: (this, prop1, prop2, itemData) => boolean

Property comparison function


Type declaration

    • (this, prop1, prop2, itemData): boolean

optionalreadonlycompress

compress?: (this, property, itemData, defaults) => ItemPropertiesMinimized

Property compression function


Type declaration

optionalreadonlydecompress

decompress?: (this, property, itemData) => ItemProperties

Property decompression function


Type declaration

optionalreadonlydifference

difference?: (this, properties, itemData) => ItemProperties[T]

Property difference function


Type declaration

optionalreadonlyisSubset

isSubset?: (this, subProp, superProp, itemData) => boolean

Check whether an object is a (deep) subset of, or equivalent to, another (i.e. a non-proper subset)


Type declaration

    • (this, subProp, superProp, itemData): boolean

    • Parameters

      Returns boolean

      whether both properties are equivalent or form a subset

readonlymetaData

metaData: Readonly<PropertyMetaData[T]>

Property-specific meta data (e.g. minimum and maximum values)

optionalreadonlyunion

union?: (this, properties, itemData) => ItemProperties[T]

Property merging function


Type declaration

optionalreadonlyvalidate

validate?: (this, prop, itemData, defaults) => ValidationOutput<ItemProperties[T]>

Property validation function


Type declaration

EntryNullable

EntryNullable<T>:

An interface representing the PropertyDataEntry class.

Compared to Entry function parameter types are generally a bit broader, being able to handle a wider range of nullish values


Type parameters

readonlycompare

compare: (this, prop1, prop2, itemData) => boolean

Property comparison function


Type declaration

readonlycompress

compress: (this, property, itemData, defaults) => ItemPropertiesMinimized

Property compression function


Type declaration

readonlydecompress

decompress: (this, property, itemData) => ItemProperties

Property decompression function


Type declaration

readonlydifference

difference: (this, properties, itemData) => ItemProperties[T]

Property difference function


Type declaration

readonlyisSubset

isSubset: (this, subProp, superProp, itemData) => boolean

Check whether an object is a (deep) subset of, or equivalent to, another (i.e. a non-proper subset)


Type declaration

    • (this, subProp, superProp, itemData): boolean

readonlymetaData

metaData: Readonly<NonNullable<PropertyMetaData[T]>>

Property-specific meta data (e.g. minimum and maximum values)

readonlyunion

union: (this, properties, itemData) => ItemProperties[T]

Property merging function


Type declaration

readonlyvalidate

validate: (this, prop, itemData, defaults) => ValidationOutput<ItemProperties[T]>

Property validation function


Type declaration

MetaData

MetaData:

All allowed property-specific metadata keys

optionaldefaultNumber

defaultNumber?: number

Default value of numeric properties

optionalisInteger

isInteger?: boolean = true

Whether the numeric value represents an integer

optionalmax

max?: number

Maximum value of numeric properties. Must be smaller than or equal to 2**15 - 1.

optionalmin

min?: number

Minimum value of numeric properties. Must be larger than or equal to -2**15.

PropertyMetaData

PropertyMetaData:

Item property specific metadata keys

optionalinheritedAccessMode

AccessMode?: MetaData

A string denoting who has permission to use the vibrator's trigger words

optionalinheritedAllowActivePose

AllowActivePose?: MetaData

A list of poses

optionalinheritedAllowActivity

AllowActivity?: MetaData

A list of allowed activities

optionalinheritedAllowActivityOn

AllowActivityOn?: MetaData

A list of groups allowed activities

optionalinheritedArousalLvl

ArousalLvl?: MetaData

A threshold passing which going to trigger auto shrink/warning

optionalinheritedAttribute

Attribute?: MetaData

???

See more at Asset.Attribute

optionalinheritedAutoPunish

AutoPunish?: MetaData

The item's auto-punishment sensitivity

optionalinheritedAutoPunishUndoTime

AutoPunishUndoTime?: MetaData

The remaining time for the gag's auto-inflation

optionalinheritedAutoPunishUndoTimeSetting

AutoPunishUndoTimeSetting?: MetaData

The default time for the gag's auto-inflation

optionalinheritedBlinkState

BlinkState?: MetaData

Whether gag's blinking light is on or off

optionalinheritedBlock

Block?: MetaData

The groups that this item blocks

See more at Asset.Block

optionalinheritedBlockRemotes

BlockRemotes?: MetaData

Whether the usage of remotes is blocked

optionalinheritedCombinationNumber

CombinationNumber?: MetaData

/^[0-9]{4}$/, Used by CombinationPadlock lock

optionalinheritedCustomBlindBackground

CustomBlindBackground?: MetaData

A custom background for this option that overrides the default

undefined means allow any other value. null means disable (swallowing any other value), '' means solid black, and a string is any background from Backgrounds/.

optionalinheritedDefaultColor

DefaultColor?: MetaData

The default color of the item. Used by extended items that need one of their layers to have a different per-type default color FIXME: That should be hoisted in the extended config, since it's set by the definition and Item.Color should be the actual colors used

See more at Asset.DefaultColor

optionalinheritedDifficulty

Difficulty?: MetaData

The difficulty of the item

See more at Asset.Difficulty

optionalinheritedDoor

Door?: MetaData

Whether the kennel door is open

optionalinheritedDrawingLeft

DrawingLeft?: MetaData

Override the left-position of a layer. A value of AssetOverride will be override the relative position of each and every layer individually.

optionalinheritedDrawingTop

DrawingTop?: MetaData

Override the top-position of a layer. A value of AssetOverride will be override the relative position of each and every layer individually.

optionalinheritedEffect

Effect?: MetaData

Effects that are applied by this item

See more at Asset.Effect

optionalinheritedEnableRandomInput

EnableRandomInput?: MetaData

Enable input; used by LoversTimerPadlock, MistressTimerPadlock, OwnerTimerPadlock, TimerPasswordPadlock

optionalinheritedExpression

Expression?: MetaData

A facial expression

optionalinheritedFetish

Fetish?: MetaData

A list of fetishes affected by the item

See more at Asset.Fetish

optionalinheritedHeartRate

HeartRate?: MetaData

The futuristic bra's heart rate value

optionalinheritedHeightModifier

HeightModifier?: MetaData

How much the character should be moved up

optionalinheritedHide

Hide?: MetaData

Items groups that should be hidden by this item

See more at Asset.Hide

optionalinheritedHideItem

HideItem?: MetaData

Items that should be hidden by this item

See more at Asset.HideItem

optionalinheritedHideItemExclude

HideItemExclude?: MetaData

Items that should not be hidden by this item

optionalinheritedHint

Hint?: MetaData

Used by PasswordPadlock, SafewordPadlock and TimerPasswordPadlock locks

optionalinheritedInflateLevel

InflateLevel?: MetaData

The inflation level of inflatable items

optionalinheritedInsertedBeads

InsertedBeads?: MetaData

The number of inserted beads

optionalinheritedIntensity

Intensity?: MetaData

The vibrator intensity

optionalinheritedIsLeashed

IsLeashed?: MetaData

optionalinheritedIterations

Iterations?: MetaData

Number of times the suitcase got cracked

optionalinheritedLastShrinkWarningTime

LastShrinkWarningTime?: MetaData

Time when last shrink warning happened

LayerRotation

LayerRotation: Mandatory<MetaData, max | min | defaultNumber>

Rotation

LayerScaleX

LayerScaleX: Mandatory<MetaData, max | min | defaultNumber | isInteger>

Scale X

LayerScaleY

LayerScaleY: Mandatory<MetaData, max | min | defaultNumber | isInteger>

Scale Y

LayerTranslationX

LayerTranslationX: Mandatory<MetaData, max | min | defaultNumber>

LayerTranslationY

LayerTranslationY: Mandatory<MetaData, max | min | defaultNumber>

Translation Y

optionalinheritedLockButt

LockButt?: MetaData

Whether the item blocks access to the butt

optionalinheritedLockedBy

LockedBy?: MetaData

Asset name of the lock

optionalinheritedLockMemberName

LockMemberName?: MetaData

The member name of the person that applied the lock

optionalinheritedLockMemberNumber

LockMemberNumber?: MetaData

The member number of the person that applied the lock. If set to a positive number, LockMemberName is the name of the character that added the lock. Otherwise it's either -1 and the name of an NPC, or null and a message.

optionalinheritedLockMessage

LockMessage?: MetaData

A short message describing where the lock comes from. Only used by the Nursery and KD

optionalinheritedLockPickSeed

LockPickSeed?: MetaData

Comma separated numbers

optionalinheritedLockSet

LockSet?: MetaData

Used by PasswordPadlock, SafewordPadlock and TimerPasswordPadlock locks; if the lock has been set with password

optionalinheritedMemberNumberList

MemberNumberList?: MetaData

List of people who publicly modified time on lock; used by LoversTimerPadlock, MistressTimerPadlock, OwnerTimerPadlock, TimerPasswordPadlock

optionalinheritedMemberNumberListKeys

MemberNumberListKeys?: MetaData

Comma separated numbers; used by HighSecurityPadlock

optionalinheritedMode

Mode?: MetaData

The vibrator mode

optionalinheritedNextShockTime

NextShockTime?: MetaData

Internal cooldown timer for automatic shocks

optionalinheritedNextShrinkTime

NextShrinkTime?: MetaData

Time when autoshrink will happen

optionalinheritedOpacity

Opacity?: MetaData

The asset's draw opacity

See more at Asset.Opacity

optionalinheritedOpenPermission

OpenPermission?: MetaData

Whether all players can use futuristic head devices

optionalinheritedOpenPermissionArm

OpenPermissionArm?: MetaData

Whether all players can use futuristic arm devices

optionalinheritedOpenPermissionChastity

OpenPermissionChastity?: MetaData

Whether all players can use futuristic chastity devices

optionalinheritedOpenPermissionLeg

OpenPermissionLeg?: MetaData

Whether all players can use futuristic leg devices

optionalinheritedOrgasmCount

OrgasmCount?: MetaData

Modular Belt: Number of times the wearer had orgasm;

optionalinheritedOriginalSetting

OriginalSetting?: MetaData

The gag module-index prior to triggering auto-inflation

optionalinheritedOverrideHeight

OverrideHeight?: MetaData

Override the height of the item

optionalinheritedOverridePriority

OverridePriority?: MetaData

The drawing priority of the item

See more at Asset.OverridePriority

optionalinheritedPadding

Padding?: MetaData

Whether the kennel has padding

optionalinheritedPassword

Password?: MetaData

/^[A-Z]{1,8}$/, Used by PasswordPadlock, SafewordPadlock and TimerPasswordPadlock lock

optionalinheritedPortalLinkCode

PortalLinkCode?: MetaData

PortalLink: Used to link a remote to its target asset.

optionalinheritedPublicModeCurrent

PublicModeCurrent?: MetaData

The mode of the belts vibrator; represents an index of FuturisticTrainingBeltModes

optionalinheritedPublicModePermission

PublicModePermission?: MetaData

An integer denoting who can access the belt; represents an index of FuturisticTrainingBeltPermissions

optionalinheritedPunishActivity

PunishActivity?: MetaData

Whether performing activities should result in punishment

optionalinheritedPunishOrgasm

PunishOrgasm?: MetaData

Whether orgasms should result in punishment

optionalinheritedPunishProhibitedSpeech

PunishProhibitedSpeech?: MetaData

The punishment for speaking a prohibited word; represents an index of FuturisticTrainingBeltSpeechPunishments

optionalinheritedPunishProhibitedSpeechWords

PunishProhibitedSpeechWords?: MetaData

A string with comma-separated prohibited words

optionalinheritedPunishRequiredSpeech

PunishRequiredSpeech?: MetaData

The punishment for not speaking a required word; represents an index of FuturisticTrainingBeltSpeechPunishments

optionalinheritedPunishRequiredSpeechWord

PunishRequiredSpeechWord?: MetaData

A string with comma-separated required words

optionalinheritedPunishSpeech

PunishSpeech?: MetaData

The punishment for talking; represents an index of FuturisticTrainingBeltSpeechPunishments

optionalinheritedPunishStandup

PunishStandup?: MetaData

Whether standing up should result in punishment

optionalinheritedPunishStruggle

PunishStruggle?: MetaData

Whether attempting to remove the belt should result in punishment

optionalinheritedPunishStruggleOther

PunishStruggleOther?: MetaData

Whether attempting to remove an item in general should result in punishment

optionalinheritedRemoveItem

RemoveItem?: MetaData

Whether to remove item on timer lock unlock; used by LoversTimerPadlock, MistressTimerPadlock, OwnerTimerPadlock, TimerPadlock, TimerPasswordPadlock

optionalinheritedRemoveOnUnlock

RemoveOnUnlock?: MetaData

Only for PasswordPadlock

optionalinheritedRemoveTimer

RemoveTimer?: MetaData

The timer for after how long until a lock should be removed.

See more at Asset.RemoveTimer

optionalinheritedRevert

Revert?: MetaData

Allows reverting back to these properties on exiting an extended menu

optionalinheritedRotation

Rotation?: MetaData

Rotation is in degrees from -180 to 180

optionalinheritedRuinedOrgasmCount

RuinedOrgasmCount?: MetaData

Modular Belt: Number of times the wearer had ruined orgasm;

optionalinheritedScaleX

ScaleX?: MetaData

Scale is currently limited from 0.01 to 3.00 (3 times the size)

optionalinheritedScaleY

ScaleY?: MetaData

optionalinheritedSelfUnlock

SelfUnlock?: MetaData

Whether an item can be unlocked by the player even if they're restrained

See more at Asset.SelfUnlock

optionalinheritedSetPose

SetPose?: MetaData

A list of poses that should forcefully be set

See more at Asset.SetPose

optionalinheritedShockLevel

ShockLevel?: MetaData

How intense the shock should be

optionalinheritedShowShrinkText

ShowShrinkText?: MetaData

A boolean to whether show messages related to shrink or warning

optionalinheritedShowText

ShowText?: MetaData

Whether the item displays a chat message to all other people in the room

optionalinheritedShowTimer

ShowTimer?: MetaData

Whether time is shown or "Unknown time left"; used by LoversTimerPadlock, MistressTimerPadlock, OwnerTimerPadlock, TimerPasswordPadlock

optionalinheritedShrinkCooldown

ShrinkCooldown?: MetaData

Time before next warning or shrinkage will happen again

optionalinheritedState

State?: MetaData

The vibrator's state; only relevant for advanced vibrator modes

optionalinheritedSuctionLevel

SuctionLevel?: MetaData

The suction level of items with a suction effect

optionalinheritedTargetAngle

TargetAngle?: MetaData

Lucky Wheel: the angle the wheel should spin to

optionalinheritedText

Text?: MetaData

1st line of text for user-entered text data

optionalinheritedText2

Text2?: MetaData

2nd line of text for user-entered text data

optionalinheritedText3

Text3?: MetaData

3rd line of text for user-entered text data

optionalinheritedTexts

Texts?: MetaData

Lucky Wheel: the section labels

optionalinheritedTimeSinceLastOrgasm

TimeSinceLastOrgasm?: MetaData

Modular Belt: Amount of time since last detected orgasm;

optionalinheritedTimeWorn

TimeWorn?: MetaData

Modular Belt: Amount of time since the item is being worn;

optionalinheritedTint

Tint?: MetaData

A list of custom tints

See more at Asset.Tint

optionalinheritedTranslationX

TranslationX?: MetaData

Transformation properties

optionalinheritedTranslationY

TranslationY?: MetaData

optionalinheritedTriggerCount

TriggerCount?: MetaData

Number of times the item was triggered; often used by shock collars

optionalinheritedTriggerValues

TriggerValues?: MetaData

A comma-separated string with the futuristic vibrator's trigger words

optionalinheritedType

Type?: MetaData

A string (or null) denoting the state of an extended item. How the type-string translate to concrete properties depends on the Archetype in question.

Deprecated - Superseded by ItemPropertiesBase.TypeRecord. Old type strings can be convert to records via ExtendedItemTypeToRecord.

optionalinheritedTypeRecord

TypeRecord?: MetaData

A record mapping screen names to option indices.

optionalinheritedUnHide

UnHide?: MetaData

Only available as overrides on the script item

ValidationMultiOutput

ValidationMultiOutput:

Validation output for multi-property validation

errorDescriptions

errorDescriptions: Partial<Record<keyof ItemProperties, string>>

Custom, human-readable description for error statuses

status

The validation status

value

The validated property values

Type Aliases

Compare

Compare<T>: NonNullable<Entry<T>[compare]>

Type parameters

Compress

Compress<T>: NonNullable<Entry<T>[compress]>

Type parameters

DataBundle

DataBundle: { asset: Asset; C?: Character }

Type declaration

Decompress

Decompress<T>: NonNullable<Entry<T>[decompress]>

Type parameters

Difference

Difference<T>: NonNullable<Entry<T>[difference]>

Type parameters

IsSubset

IsSubset<T>: NonNullable<Entry<T>[isSubset]>

Type parameters

MetaDataTemplate

MetaDataTemplate<T>: { [ k in keyof T ]: MetaData }

Type parameters

  • T

Union

Union<T>: NonNullable<Entry<T>[union]>

Type parameters

Validate

Validate<T>: NonNullable<Entry<T>[validate]>

Type parameters

ValidationOutput

ValidationOutput<T>: { errorDescription: string; status: Extract<ValidationStatus, criticalError>; value?: undefined } | { errorDescription: string; status: Extract<ValidationStatus, error>; value: T } | { errorDescription?: undefined; status: Extract<ValidationStatus, ok>; value: T }

Validation output for single-property validation


Type parameters

  • T

ValidationStatus

ValidationStatus: criticalError | error | ok

Validation output status