Skip to main content

bondage-college

Index

Classes

Enumerations

Functions

Interfaces

Namespaces

Type Aliases

Variables

Type Aliases

ActivityName

ActivityNameBasic

ActivityNameBasic: Bite | Caress | Choke | Cuddle | FrenchKiss | GagKiss | GaggedKiss | Grope | HandGag | Kick | Kiss | Lick | MassageFeet | MassageHands | MasturbateFist | MasturbateFoot | MasturbateHand | MasturbateTongue | MoanGag | MoanGagAngry | MoanGagGiggle | MoanGagGroan | MoanGagTalk | MoanGagWhimper | Nibble | Nod | PenetrateFast | PenetrateSlow | Pet | Pinch | PoliteKiss | Pull | RestHead | Rub | Scratch | Sit | Slap | Spank | Step | StruggleArms | StruggleLegs | Suck | TakeCare | Tickle | Whisper | Wiggle | SistersHug | BrothersHandshake | SiblingsCheekKiss

ActivityNameItem

ActivityNameItem: Inject | MasturbateItem | PenetrateItem | PourItem | RollItem | RubItem | ShockItem | SipItem | SpankItem | TickleItem | EatItem | Scratch | ThrowItem

ActivityPrerequisite

ActivityPrerequisite: AssEmpty | CantUseArms | CantUseFeet | CanUsePenis | CanUseTongue | HasVagina | IsGagged | MoveHead | `Needs-${ActivityNameItem}` | TargetCanUseTongue | TargetKneeling | TargetMouthBlocked | TargetMouthOpen | TargetZoneAccessible | TargetZoneNaked | UseArms | UseFeet | UseHands | UseMouth | UseTongue | VulvaEmpty | ZoneAccessible | ZoneNaked | Sisters | Brothers | SiblingsWithDifferentGender

AnimationDataTypes

AnimationDataTypes: AssetGroup | | DynamicPlayerCanvas | PersistentData | Rebuild | RefreshTime | RefreshRate

AppearanceBundle

AppearanceBundle: ItemBundle[]

An AppearanceBundle is whole minified appearance of a character

AppearanceDiffMap

AppearanceDiffMap: Partial<Record<AssetGroupName, Item[]>>

ArousalActiveName

ArousalActiveName: Inactive | NoMeter | Manual | Hybrid | Automatic

ArousalAffectStutterName

ArousalAffectStutterName: None | Arousal | Vibration | All

ArousalFactor

ArousalFactor: 0 | 1 | 2 | 3 | 4

The factor of the sexual activity (0 is horrible, 2 is normal, 4 is great)

ArousalVisibleName

ArousalVisibleName: All | Access | Self

AssetArchetypeConfig

A union of all (non-abstract) extended item configs

AssetArchetypeData

A union of all (non-abstract) extended item datas

AssetAttribute

AssetAttribute: Skirt | SuitLower | UpperLarge | ShortHair | SmallEars | NoEars | NoseRing | HoodieFix | CanAttachMittens | IsChestHarness | IsHipHarness | PenisLayer | PussyLayer | GenitaliaCover | Pussy1 | Pussy2 | Pussy3 | CagePlastic2 | CageTechno | CageFlat | FuturisticRecolor | FuturisticRecolorDisplay | PortalLinkLockable | `PortalLinkChastity${string}` | `PortalLinkActivity${ActivityName}` | `PortalLinkTarget${AssetGroupItemName}`

AssetBonusName

AssetBonusName: KidnapDomination | KidnapSneakiness | KidnapBruteForce

AssetCategory

AssetCategory: Medical | Extreme | Pony | SciFi | ABDL | Fantasy

AssetCopyConfigValidator

AssetCopyConfigValidator<T>: (config: T, superConfig: T, key: string, superKey: string) => boolean

Type parameters

  • T

Type declaration

    • (config: T, superConfig: T, key: string, superKey: string): boolean
    • Parameters

      • config: T
      • superConfig: T
      • key: string
      • superKey: string

      Returns boolean

AssetDefinition

AssetGender

AssetGender: F | M

AssetGroupBodyName

AssetGroupBodyName: ExpressionGroupName | BodyLower | BodyUpper | BodyMarkings | Bra | Bracelet | Cloth | ClothAccessory | ClothLower | Corset | EyeShadow | FacialHair | Garters | Glasses | Gloves | HairAccessory1 | HairAccessory2 | HairAccessory3 | HairBack | HairFront | FacialHair | Hands | Hat | Head | Height | Jewelry | LeftAnklet | LeftHand | Mask | Necklace | Nipples | Panties | Pronouns | RightAnklet | RightHand | Shoes | Socks | SocksLeft | SocksRight | Suit | SuitLower | TailStraps | Wings

AssetGroupDefinition

AssetGroupItemName

AssetGroupItemName: ItemAddon | ItemArms | ItemBoots | ItemBreast | ItemButt | ItemDevices | ItemEars | ItemFeet | ItemHands | ItemHead | ItemHood | ItemLegs | ItemMisc | ItemMouth | ItemMouth2 | ItemMouth3 | ItemNeck | ItemNeckAccessories | ItemNeckRestraints | ItemNipples | ItemNipplesPiercings | ItemNose | ItemPelvis | ItemTorso | ItemTorso2 | ItemVulva | ItemVulvaPiercings | ItemHandheld

AssetGroupMap

Mapped type for mapping group names to their respective AssetGroup subtype

AssetGroupName

AssetGroupScriptName

AssetGroupScriptName: ItemScript

AssetLayerOverridePriority

AssetLayerOverridePriority: Record<string, number> | number

The type for OverridePriority in extended items.

Either a single number that will cause all of the asset's layer to inherit that priority, or a more precise specifier keyed by layer name.

AssetLockType

AssetLockType: CombinationPadlock | ExclusivePadlock | HighSecurityPadlock | IntricatePadlock | LoversPadlock | LoversTimerPadlock | FamilyPadlock | MetalPadlock | MistressPadlock | MistressTimerPadlock | OwnerPadlock | OwnerTimerPadlock | PandoraPadlock | PasswordPadlock | PortalLinkPadlock | SafewordPadlock | TimerPadlock | TimerPasswordPadlock

AssetPoseCategory

AssetPoseCategory: keyof AssetPoseMap

AssetPoseMapping

AssetPoseMapping: 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.

AssetPoseName

AssetPoseName: AssetPoseMap[keyof AssetPoseMap]

AssetPrerequisite

AssetPrerequisite: PosePrerequisite | AccessBreast | AccessBreastSuitZip | AccessButt | AccessFullPenis | AccessMouth | AccessTorso | AccessVulva | AccessCrotch | BlockedMouth | ButtEmpty | CanBeCeilingTethered | CanCoverVulva | CanHaveErection | CanBeLimp | CanKneel | CannotBeSuited | CannotHaveWand | CanAttachMittens | ClitEmpty | Collared | CuffedArms | CuffedArmsOrEmpty | CuffedFeet | CuffedFeetOrEmpty | CuffedLegs | CuffedLegsOrEmpty | DisplayFrame | EyesEmpty | GagCorset | GagFlat | GagUnique | GasMask | HasBreasts | HasFlatChest | HasPenis | HasVagina | HoodEmpty | NakedFeet | NakedHands | NeedsChestHarness | NeedsHipHarness | NeedsNippleRings | NoChastityCage | NoErection | NoClothLower | NoItemArms | NoItemFeet | NoItemHands | NoItemLegs | NoMaidTray | NoOuterClothes | NotChained | NotChaste | NotKneeling | NotLifted | NotMasked | NotMounted | NotProtrudingFromMouth | NotSuspended | OnBed | RemotesAllowed | VulvaEmpty

AudioSoundEffect

AudioSoundEffect: [string, number]

AutoShockUnitPersistentData

AutoShockUnitPersistentData: { ChangeTime?: number; LastMessageLen?: number }

Type declaration

  • optionalChangeTime?: number
  • optionalLastMessageLen?: number

BackgroundTag

BackgroundTag: Filter by tag | Indoor | Outdoor | Aquatic | Special Events | SciFi & Fantasy | Club & College | Regular house | Dungeon | Asylum

BlindEffectName

BlindEffectName: BlindLight | BlindNormal | BlindHeavy | BlindTotal

The EffectName values for all blindness-related effects.

BlurEffectName

BlurEffectName: BlurLight | BlurNormal | BlurHeavy | BlurTotal

The EffectName values for all blurring-related effects.

CharacterHook

CharacterHook: BeforeSortLayers | AfterLoadCanvas

CharacterPronouns

CharacterPronouns: SheHer | HeHim

CharacterReferenceTag

CharacterReferenceTag: SourceCharacter | DestinationCharacter | DestinationCharacterName | TargetCharacter | TargetCharacterName

CharacterType

CharacterType: online | npc | simple

ChatColorThemeType

ChatColorThemeType: Light | Dark | Light2 | Dark2

ChatEnterLeaveType

ChatEnterLeaveType: Normal | Smaller | Hidden

ChatFontSizeType

ChatFontSizeType: Small | Medium | Large

ChatMemberNumbersType

ChatMemberNumbersType: Always | Never | OnMouseover

ChatMessageDictionary

ChatMessageDictionary: ChatMessageDictionaryEntry[]

ChatMessageDictionaryEntry

ChatRoom

ChatRoomLovershipOption

ChatRoomLovershipOption: | CanOfferBeginWedding | CanBeginWedding

ChatRoomMapData

ChatRoomMapData: { Pos: ChatRoomMapPos; PrivateState: Record<string, Object> }

Type declaration

ChatRoomMapDirection

ChatRoomMapDirection: | R | L | D | U

ChatRoomMapObjectType

ChatRoomMapObjectType: FloorDecoration | FloorDecorationThemed | FloorDecorationParty | FloorDecorationCamping | FloorDecorationExpanding | FloorItem | FloorObstacle | WallDecoration | WallPath

ChatRoomMapPos

ChatRoomMapPos: { X: number; Y: number }

Type declaration

  • X: number
  • Y: number

ChatRoomMapTileType

ChatRoomMapTileType: Floor | FloorExterior | Wall | Water

ChatRoomMapType

ChatRoomMapType: Always | Hybrid | Never

ChatRoomMessageExtractor

ChatRoomMessageExtractor: (data: ServerChatRoomMessage, sender: Character) => { metadata: IChatRoomMessageMetadata; substitutions: CommonSubtituteSubstitution[] } | null

A metadata extractor for a given message.

@returns

An object with the following keys:

  • metadata: an object for the extracted metadata (key/value)
  • substitutions: an array of [tag, substitutions] to perform on the message.
@returns

null if the extraction has nothing to report.


Type declaration

ChatRoomOwnershipOption

ChatRoomOwnershipOption: | CanOfferEndTrial | CanOfferTrial | CanEndTrial

ChatRoomSettings

ChatRoomSettings: ServerChatRoomSettings

ChatRoomSpaceLabel

ChatRoomSpaceLabel: MIXED | FEMALE_ONLY | MALE_ONLY | ASYLUM

ClearRectCallback

ClearRectCallback: (x: number, y: number, w: number, h: number) => void

A callback function used for clearing a rectangular area of a canvas


Type declaration

    • (x: number, y: number, w: number, h: number): void
    • Parameters

      • x: number

        The x coordinate of the left of the rectangle to clear

      • y: number

        The y coordinate of the top of the rectangle to clear

      • w: number

        The width of the rectangle to clear

      • h: number

        The height of the rectangle to clear

      Returns void

ClientEvent

ClientEvent: EventNames

ClientEventParams

ClientEventParams<Ev>: EventParams

Type parameters

ColorPickerCallbackType

ColorPickerCallbackType: (Color: string) => void

The color picker callback called when selection completes.


Type declaration

    • (Color: string): void
    • Parameters

      • Color: string

      Returns void

CommonChatTags

CommonChatTags: CharacterReferenceTag | AssetName | Automatic

CommonGenerateGridCallback

CommonGenerateGridCallback<T>: (item: T, x: number, y: number, width: number, height: number) => boolean

Type parameters

  • T

Type declaration

    • (item: T, x: number, y: number, width: number, height: number): boolean
    • Parameters

      • item: T
      • x: number
      • y: number
      • width: number
      • height: number

      Returns boolean

CommonSubstituteReplacer

CommonSubstituteReplacer: (match: string, offset: number, replacement: string, string: string) => string

Type declaration

    • (match: string, offset: number, replacement: string, string: string): string
    • Parameters

      • match: string
      • offset: number
      • replacement: string
      • string: string

      Returns string

CommonSubtituteSubstitution

CommonSubtituteSubstitution: [tag: string, substitution: string, replacer?: CommonSubstituteReplacer]

ControllerAxis

ControllerAxis: typeof ControllerAxis[keyof typeof ControllerAxis]

ControllerButton

ControllerButton: typeof ControllerButton[keyof typeof ControllerButton]

CraftingMode

CraftingMode: Slot | Name | Color | Extended | Tighten | OverridePriority

CraftingPropertyType

CraftingPropertyType: Normal | Large | Small | Thick | Thin | Secure | Loose | Decoy | Malleable | Rigid | Simple | Puzzling | Painful | Comfy | Strong | Flexible | Nimble | Arousing | Dull | Heavy | Light

CraftingReorderType

CraftingReorderType: None | Select | Place

CraftingStatusType

CraftingStatusType: 0 | 1 | 2

DeafEffectName

DeafEffectName: DeafLight | DeafNormal | DeafHeavy | DeafTotal

The EffectName values for all deafness-related effects.

DialogMenuButton

DialogMenuButton: Activity | ColorCancel | ColorChange | ColorChangeMulti | ColorDefault | ColorPickDisabled | ColorSelect | Crafting | NormalMode | PermissionMode | Dismount | Escape | Remove | Exit | GGTSControl | InspectLock | InspectLockDisabled | Layering | Lock | LockDisabled | LockMenu | Swap | Next | Prev | `PickLock${PickLockAvailability}` | Remote | RemoteDisabled | `RemoteDisabledFor${VibratorRemoteAvailability}` | Unlock | Use | UseDisabled | Struggle | TightenLoosen | Wardrobe | WardrobeDisabled | Reset | WearRandom | Random | Copy | Paste | Naked | Accept | Cancel | Character

DialogMenuMode

DialogMenuMode: activities | colorDefault | colorExpression | colorItem | crafted | dialog | extended | items | layering | locking | locked | permissions | struggle | tighten

DialogSortOrder

DialogSortOrder: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

DialogStruggleActionType

DialogStruggleActionType: ActionUse | ActionSwap | ActionRemove | ActionUnlock | ActionUnlockAndRemove | ActionStruggle | ActionEscape | ActionDismount

DrawCanvasCallback

DrawCanvasCallback: (img: HTMLImageElement | HTMLCanvasElement, x: number, y: number, alphaMasks?: RectTuple[]) => void

A callback function used to draw a canvas on a canvas


Type declaration

    • (img: HTMLImageElement | HTMLCanvasElement, x: number, y: number, alphaMasks?: RectTuple[]): void
    • Parameters

      • img: HTMLImageElement | HTMLCanvasElement
      • x: number

        The x coordinate to draw the canvas at

      • y: number

        The y coordinate to draw the canvas at

      • optionalalphaMasks: RectTuple[]

      Returns void

DrawImageCallback

DrawImageCallback: (src: string, x: number, y: number, options?: DrawOptions) => void

A callback function used to draw an image to a canvas


Type declaration

    • (src: string, x: number, y: number, options?: DrawOptions): void
    • Parameters

      • src: string

        The URL of the image to draw

      • x: number

        The x coordinate to draw the image at

      • y: number

        The y coordinate to draw the image at

      • optionaloptions: DrawOptions

      Returns void

DrawImageColorizeCallback

DrawImageColorizeCallback: (src: string, x: number, y: number, options?: DrawOptions) => void

A callback function used to draw a colorized image to a canvas


Type declaration

    • (src: string, x: number, y: number, options?: DrawOptions): void
    • Parameters

      • src: string

        The URL of the image to draw

      • x: number

        The x coordinate to draw the image at

      • y: number

        The y coordinate to draw the image at

      • optionaloptions: DrawOptions

      Returns void

DrawOptions

DrawOptions: { Alpha?: number; AlphaMasks?: readonly RectTuple[]; BlendingMode?: GlobalCompositeOperation; FullAlpha?: boolean; Height?: number; HexColor?: string; Invert?: boolean; Mirror?: boolean; SourcePos?: RectTuple; Width?: number; Zoom?: number }

Options available to most draw calls


Type declaration

  • optionalAlpha?: number

    Transparency between 0-1

  • optionalreadonlyAlphaMasks?: readonly RectTuple[]

    A list of alpha masks to apply to the call

  • optionalBlendingMode?: GlobalCompositeOperation

    Blending mode for drawing the image

  • optionalFullAlpha?: boolean
  • optionalHeight?: number

    Height of the drawn image, defaults to height of original image

  • optionalHexColor?: string
  • optionalInvert?: boolean

    If image should be flipped vertically

  • optionalMirror?: boolean

    If image should be flipped horizontally

  • optionalSourcePos?: RectTuple

    Area in original image to draw in format [left, top, width, height]

  • optionalWidth?: number

    Width of the drawn image, defaults to width of original image

  • optionalZoom?: number

    Zoom factor

DynamicDrawTextEffect

DynamicDrawTextEffect: burn

DynamicDrawTextEffectFunction

DynamicDrawTextEffectFunction: (text: string, ctx: CanvasRenderingContext2D, x: number, y: number, options?: DynamicDrawOptions) => any

Type declaration

    • (text: string, ctx: CanvasRenderingContext2D, x: number, y: number, options?: DynamicDrawOptions): any
    • Parameters

      • text: string

        The text to draw

      • ctx: CanvasRenderingContext2D

        The canvas rendering context

      • x: number

        The x coordinate at which the text should be drawn

      • y: number

        The y coordinate at which the text should be drawn

      • optionaloptions: DynamicDrawOptions

        Additional drawing options

        A definition object that wraps the drawing functions that define a dynamic text effect

      Returns any

EffectName

EffectName: GagEffectName | BlindEffectName | BlurEffectName | DeafEffectName | Freeze | BlockWardrobe | Block | Mounted | CuffedFeet | CuffedLegs | CuffedArms | IsChained | FixedHead | MergedFingers | Shackled | Tethered | MapImmobile | Enclose | OneWayEnclose | OnBed | Lifted | Suspended | Slow | FillVulva | VulvaShaft | IsPlugged | Egged | Vibrating | ForcedErection | Edged | DenialMode | RuinOrgasms | Remote | UseRemote | BlockRemotes | Lock | NotSelfPickable | Chaste | BreastChaste | ButtChaste | Leash | IsLeashed | CrotchRope | ReceiveShock | TriggerShock | OpenPermission | OpenPermissionArm | OpenPermissionLeg | OpenPermissionChastity | BlockMouth | OpenMouth | VR | VRAvatars | KinkyDungeonParty | RegressedTalk | HideRestraints | UnlockMetalPadlock | UnlockOwnerPadlock | UnlockOwnerTimerPadlock | UnlockLoversPadlock | UnlockLoversTimerPadlock | UnlockFamilyPadlock | UnlockMistressPadlock | UnlockMistressTimerPadlock | UnlockPandoraPadlock | UnlockMetalCuffs | UnlockEscortAnkleCuffs | UnlockPortalPanties | ProtrudingMouth | Wiggling

All known effects

ElementConfigData

ElementConfigData<MetaData>: { position?: PartialRectTuple } & MetaData

Type parameters

ElementData

ElementData<MetaData>: { position: RectTuple } & MetaData

An interface with element coordinates and additional (archetype-specific metadata).

@see

Type parameters

  • MetaData: ElementMetaData

    A record with (archetype-specific) additional element metadata

ElementNoParent

ElementNoParent: 0

A singleton for explicitly signifying to ElementCreate that it should have no parent element.

Can be used for overriding any function that would otherwise default to document.body when a nullish value is provided as parent.

ExpressionGroupName

ExpressionGroupName: keyof ExpressionNameMap

ExpressionName

ExpressionTrigger

ExpressionTriggerMap

ExpressionTriggerMap<T>: T extends ExpressionGroupName ? ExpressionTriggerBase<T> : never

Type parameters

  • T

ExtendedArchetype

ExtendedArchetype: modular | typed | vibrating | variableheight | text | noarch

ExtendedItemCallback

ExtendedItemCallback<T, RT>: (...args: T) => RT

Basic callback for extended item functions


Type parameters

  • T: any[]
  • RT = void

Type declaration

    • (...args: T): RT
    • Parameters

      • rest...args: T

      Returns RT

ExtendedItemChatCallback

ExtendedItemChatCallback<OptionType>: (chatData: ExtendedItemChatData<OptionType>) => string
@returns
  • The chat prefix that should be used for this type change

Type parameters

Type declaration

ExtendedItemChatSetting

ExtendedItemChatSetting: default | TypedItemChatSetting | ModularItemChatSetting

Union of all (archetype-specific) ExtendedItemData.chatSetting allowed values.

ExtendedItemDictionaryCallback

ExtendedItemDictionaryCallback<OptionType>: (dictionary: DictionaryBuilder, chatData: ExtendedItemChatData<OptionType>) => void
@returns
  • The dictionary entry to append to the dictionary.

Type parameters

Type declaration

ExtendedItemGroupConfig

ExtendedItemGroupConfig: Record<string, AssetArchetypeConfig>

An object containing extended item definitions for a group. Maps asset names within the group to their extended item configuration

ExtendedItemHeaderCallback

ExtendedItemHeaderCallback<DataType>: (data: DataType, C: Character, item: Item) => string

Type parameters

Type declaration

ExtendedItemMainConfig

ExtendedItemMainConfig: Partial<Record<AssetGroupName, ExtendedItemGroupConfig>>

An object containing extended item configurations keyed by group name.

ExtendedItemNPCCallback

ExtendedItemNPCCallback<OptionType>: (C: Character, Option: OptionType, PreviousOption: OptionType) => string
@returns
  • The chat prefix that should be used for this type change

Type parameters

Type declaration

    • (C: Character, Option: OptionType, PreviousOption: OptionType): string
    • Parameters

      • C: Character

        The selected NPC

      • Option: OptionType

        The currently selected extended item option

      • PreviousOption: OptionType

        The previously selected extended item option

      Returns string

ExtendedItemOptionUnion

ExtendedItemScriptHookCallback

ExtendedItemScriptHookCallback<DataType, T, RT>: (data: DataType, originalFunction: null | (...args: T) => RT, ...args: T) => RT

Basic callback for extended item script hooks


Type parameters

Type declaration

    • (data: DataType, originalFunction: null | (...args: T) => RT, ...args: T): RT
    • Parameters

      • data: DataType
      • originalFunction: null | (...args: T) => RT
        • rest...args: T

        Returns RT

    ExtendedItemScriptHookCallbackNoNull

    ExtendedItemScriptHookCallbackNoNull<DataType, T, RT>: (data: DataType, originalFunction: (...args: T) => RT, ...args: T) => RT

    Type parameters

    Type declaration

      • (data: DataType, originalFunction: (...args: T) => RT, ...args: T): RT
      • Parameters

        • data: DataType
        • originalFunction: (...args: T) => RT
          • rest...args: T

          Returns RT

      FavoriteIcon

      FavoriteIcon: Favorite | FavoriteBoth | FavoritePlayer

      FetishName

      FetishName: Bondage | Gagged | Blindness | Deafness | Chastity | Exhibitionist | Masochism | Sadism | Rope | Latex | Leather | Metal | Tape | Nylon | Lingerie | Pet | Pony | ABDL | Forniphilia

      ForbiddenChastityBraPersistentData

      ForbiddenChastityBraPersistentData: { CheckTime?: number; DisplayCount?: number; LastMessageLen?: number; LastTriggerCount?: number; UpdateTime?: number }

      Type declaration

      • optionalCheckTime?: number
      • optionalDisplayCount?: number
      • optionalLastMessageLen?: number
      • optionalLastTriggerCount?: number
      • optionalUpdateTime?: number

      FriendListMode

      FriendListMode: OnlineFriends | Beeps | AllFriends

      FriendListModes

      FriendListModes: FriendListMode[]

      FriendListReturn

      FriendListReturn: { IsInChatRoom?: boolean; Module: ModuleType; Screen: string; hasScrolledChat?: boolean }

      Type declaration

      • optionalIsInChatRoom?: boolean
      • Module: ModuleType
      • Screen: string
      • optionalhasScrolledChat?: boolean

      FriendListSortingDirection

      FriendListSortingDirection: Asc | Desc

      FriendListSortingMode

      FriendListSortingMode: None | MemberName | MemberNickname | MemberNumber | ChatRoomName | RelationType

      FriendRawBeep

      FriendRawBeep: { beepIndex?: number; canBeep?: boolean; caption: string; hasMessage?: boolean }

      Type declaration

      • optionalbeepIndex?: number
      • optionalcanBeep?: boolean
      • caption: string
      • optionalhasMessage?: boolean

      FriendRawData

      FriendRawData: { beep?: FriendRawBeep; canDelete?: boolean; chatRoom?: FriendRawRoom; memberName: string; memberNickname?: string; memberNumber?: number; relationType?: string }

      Type declaration

      • optionalbeep?: FriendRawBeep
      • optionalcanDelete?: boolean
      • optionalchatRoom?: FriendRawRoom
      • memberName: string
      • optionalmemberNickname?: string
      • optionalmemberNumber?: number
      • optionalrelationType?: string

      FriendRawRoom

      FriendRawRoom: { canSearchRoom: boolean; caption: string; name?: string }

      Type declaration

      • canSearchRoom: boolean
      • caption: string
      • optionalname?: string

      FuckMachinePersistentData

      FuckMachinePersistentData: { ChangeTime?: number; DildoState?: number; FuckChangeTime?: number; LastChange?: number; Mode?: VibratorMode; Modifier?: number; Speed?: number }

      Type declaration

      • optionalChangeTime?: number
      • optionalDildoState?: number
      • optionalFuckChangeTime?: number
      • optionalLastChange?: number
      • optionalMode?: VibratorMode
      • optionalModifier?: number
      • optionalSpeed?: number

      FuturisticBraPersistentData

      FuturisticBraPersistentData: { ShowHeart?: boolean; UpdateTime?: number }

      Type declaration

      • optionalShowHeart?: boolean
      • optionalUpdateTime?: number

      FuturisticChastityBeltPersistentData

      FuturisticChastityBeltPersistentData: { LastMessageLen?: number; UpdateTime?: number }

      Type declaration

      • optionalLastMessageLen?: number
      • optionalUpdateTime?: number

      FuturisticCratePersistentData

      FuturisticCratePersistentData: FuckMachinePersistentData

      FuturisticPanelGagPersistentData

      FuturisticPanelGagPersistentData: { ChangeTime?: number; LastMessageLen?: number; UpdateTime?: number }

      Type declaration

      • optionalChangeTime?: number
      • optionalLastMessageLen?: number
      • optionalUpdateTime?: number

      FuturisticTrainingBeltPersistentData

      FuturisticTrainingBeltPersistentData: { CheckTime?: number; DeviceState?: number; DeviceStateTimer?: number; DeviceVibeMode?: VibratorMode; LastMessageLen?: number; UpdateTime?: number }

      Type declaration

      • optionalCheckTime?: number
      • optionalDeviceState?: number
      • optionalDeviceStateTimer?: number
      • optionalDeviceVibeMode?: VibratorMode
      • optionalLastMessageLen?: number
      • optionalUpdateTime?: number

      FuturisticVibratorPersistentData

      FuturisticVibratorPersistentData: { ChangeTime?: number; CheckTime?: number; LastChange?: number; Mode?: VibratorMode }

      Type declaration

      • optionalChangeTime?: number
      • optionalCheckTime?: number
      • optionalLastChange?: number
      • optionalMode?: VibratorMode

      GagEffectName

      GagEffectName: GagVeryLight | GagEasy | GagLight | GagNormal | GagMedium | GagHeavy | GagVeryHeavy | GagTotal | GagTotal2 | GagTotal3 | GagTotal4

      The EffectName values for all gag-related effects.

      GameLARPOptionName

      GameLARPOptionName: Pass | Seduce | Struggle | Hide | Cover | Strip | Tighten | RestrainArms | RestrainLegs | RestrainMouth | Silence | Immobilize | Detain | Dress | Costume |

      GraphicsFontName

      GraphicsFontName: Arial | TimesNewRoman | Papyrus | ComicSans | Impact | HelveticaNeue | Verdana | CenturyGothic | Georgia | CourierNew | Copperplate

      HTMLElementScalarTagNameMap

      HTMLElementScalarTagNameMap: { [ k1 in keyof HTMLElementTagNameMap ]: { [ k2 in keyof HTMLElementTagNameMap[k1] as Required<HTMLElementTagNameMap[k1][k2]> extends boolean | number | string | null ? k2 : never ]: HTMLElementTagNameMap[k1][k2] } }

      A HTMLElementTagNameMap subtype with all non-scalar properties removed from the HTML elements

      Serves as an approximation (and superset) of all element-specific attributes

      HTMLOptions

      HTMLOptions<T>: { attributes?: Partial<HTMLElementScalarTagNameMap[T]> & Partial<Record<string, number | boolean | string>>; children?: readonly (null | undefined | string | Node | HTMLOptions<keyof HTMLElementTagNameMap>)[]; classList?: readonly (null | undefined | string)[]; dataAttributes?: Partial<Record<string, number | boolean | string>>; eventListeners?: { [ k in keyof HTMLElementEventMap ]?: (this: HTMLElementTagNameMap[T], event: HTMLElementEventMap[k]) => any }; innerHTML?: string; parent?: ElementNoParent | Node; style?: Record<string, string>; tag: T }

      Type parameters

      • T: keyof HTMLElementTagNameMap

      Type declaration

      • optionalattributes?: Partial<HTMLElementScalarTagNameMap[T]> & Partial<Record<string, number | boolean | string>>

        Scalar-valued attributes that will be set on the HTML element.

      • optionalchildren?: readonly (null | undefined | string | Node | HTMLOptions<keyof HTMLElementTagNameMap>)[]

        Any to-be added child elements.

      • optionalclassList?: readonly (null | undefined | string)[]

        A list of CSS classes to-be assigned to the element (see HTMLElement.classList).

      • optionaldataAttributes?: Partial<Record<string, number | boolean | string>>

        Data attributes that will be set on the HTML element (see HTMLElement.dataset).

      • optionaleventListeners?: { [ k in keyof HTMLElementEventMap ]?: (this: HTMLElementTagNameMap[T], event: HTMLElementEventMap[k]) => any }

        Event listeners that will be attached to the HTML element (see HTMLElement.addEventListener).

      • optionalinnerHTML?: string

        The HTMLElement.innerHTML of the element; will be assigned before appending children

      • optionalparent?: ElementNoParent | Node

        The elements parent (if any) to which it will be attached (see HTMLElement.parentElement).

      • optionalstyle?: Record<string, string>

        CSS style declarations that will be set on the HTML element (see HTMLElement.style).

      • tag: T

        The elements HTML tag

      HexColor

      HexColor: string

      A hexadecimal color code

      IAssetFamily

      IAssetFamily: Female3DCG

      InfiltrationMissionType

      InfiltrationMissionType: Rescue | Kidnap | Retrieve | CatBurglar | ReverseMaid | Steal

      InfiltrationTargetType

      InfiltrationTargetType: NPC | USBKey | BDSMPainting | GoldCollar | GeneralLedger | SilverVibrator | DiamondRing | SignedPhoto | PandoraPadlockKeys

      InventoryIcon

      InventoryIcon: FavoriteIcon | ItemEffectIcon | AllowedLimited | Handheld | Locked | LoverOnly | FamilyOnly | OwnerOnly | Unlocked | AssetLockType | ShopIcon

      ItemActivityRestriction

      ItemActivityRestriction: blocked | limited | unavail

      ItemBundle

      ItemBundle: ServerItemBundle

      ItemColor

      ItemColor: string | string[]

      ItemColorMode

      ItemColorMode: Default | ColorPicker

      ItemEffectIcon

      ItemEffectIcon: BlindLight | BlindNormal | BlindHeavy | DeafLight | DeafNormal | DeafHeavy | GagLight | GagNormal | GagHeavy | GagTotal

      ItemPermissionMode

      ItemPermissionMode: Default | Block | Limited | Favorite

      The different types of (mutually exclusive) permissions an item or item option can have

      ItemVulvaFuturisticVibratorAccessMode

      ItemVulvaFuturisticVibratorAccessMode: | ProhibitSelf | LockMember

      KennelPersistentData

      KennelPersistentData: { ChangeTime?: number; DoorState?: number; DrawRequested?: boolean; MustChange?: boolean }

      Type declaration

      • optionalChangeTime?: number
      • optionalDoorState?: number
      • optionalDrawRequested?: boolean
      • optionalMustChange?: boolean

      KeyboardEventListener

      KeyboardEventListener: ScreenFunctions[KeyDown]

      A listener for KeyboardEvents

      Cheat-sheet about how to do key checks with it:

      • KeyboardEvent.code is the layout-insensitive code for the key (so KeyA, Space, etc.) Use this if you want to keep the QWERTY location, like movement keys.

      KeyboardEvent.key is the layout-dependent string for the key (so "a" (or "q" on AZERTY), "A" (or "Q"), " ", etc.) Use this if you want the key to correspond to what's actually on the user's keyboard.

      @see

      LogGroupType

      LogGroupType: keyof LogNameType

      The logging groups as supported by the LogRecord.Group

      LogNameAdvanced

      LogNameAdvanced: `BlockScreen${string}` | `BlockAppearance${string}` | `BlockItemGroup${string}` | `ForbiddenWords${string}`

      LuckyWheelPersistentData

      LuckyWheelPersistentData: { AnimationAngleState?: number; AnimationSpeed?: number; ChangeTime?: number; LightStep?: number; Spinning: boolean }

      Type declaration

      • optionalAnimationAngleState?: number
      • optionalAnimationSpeed?: number
      • optionalChangeTime?: number
      • optionalLightStep?: number
      • Spinning: boolean

      MagicSchoolHouse

      MagicSchoolHouse: Maiestas | Vincula | Amplector | Corporis

      MemberNumber

      MemberNumber: number

      MemoizedFunction

      MemoizedFunction<T>: T & { clearCache: any }

      Type parameters

      • T: Function

      ModularChastityBeltPersistentData

      ModularChastityBeltPersistentData: { ChatroomCheck?: boolean; Cooldown?: number; DenyDetected?: boolean; LastMessage?: number; OrgasmDetected?: boolean; ShockCooldown?: number; SyncCooldown?: number; SyncNeeded?: boolean }

      Type declaration

      • optionalChatroomCheck?: boolean
      • optionalCooldown?: number
      • optionalDenyDetected?: boolean
      • optionalLastMessage?: number
      • optionalOrgasmDetected?: boolean
      • optionalShockCooldown?: number
      • optionalSyncCooldown?: number
      • optionalSyncNeeded?: boolean

      ModularItemButtonDefinition

      ModularItemButtonDefinition: [moduleOrOption: ModularItemOption | ModularItemModule, currentOption: ModularItemOption, prefix: string]

      A 3-tuple containing data for drawing a button in a modular item screen. A button definition takes the format:

      [moduleOrOption, currentOption, prefix]

      The moduleOrOption is the to be drawn item module or option. The currentOption is currently active option within the relevant module. The prefix is the dialog prefix for the buttons text.

      ModularItemChatSetting

      ModularItemChatSetting: default | perModule

      ModuleType

      ModuleType: Character | Cutscene | MiniGame | Online | Room

      MouseEventListener

      MouseEventListener: ScreenFunctions[MouseDown]

      Mutable

      Mutable<T>: { -readonly [ P in keyof T ]: T[P] }

      Make all properties in T mutable. Opposite of Readonly


      Type parameters

      • T

      NPCArchetype

      NPCArchetype: MemberNew | MemberOld | Cosplay | Mistress | Slave | Maid | Guard | Victim | Target | Chest | Dominatrix | Nurse | Submissive | Mistress | Patient | Maid | Mistress | Maiestas | Vincula | Amplector | Corporis | AnimeGirl | Bunny | Succubus

      NotificationAlertType

      NotificationAlertType: 0 | 1 | 3 | 2

      NotificationAudioType

      NotificationAudioType: 0 | 1 | 2

      NotificationEventType

      NotificationEventType: ChatMessage | ChatJoin | Beep | Disconnect | Test | Larp

      ObedienceBeltPersistentData

      ObedienceBeltPersistentData: { CheckTime?: number; LastMessageLen?: number; UpdateTime?: number }

      Type declaration

      • optionalCheckTime?: number
      • optionalLastMessageLen?: number
      • optionalUpdateTime?: number

      OnlineGameStatus

      OnlineGameStatus: | Running

      Online game status values.

      @fix

      FIXME: "" should really be renamed Setup

      Optional

      Optional<T, K>: Omit<T, K> & Partial<Pick<T, K>>

      Type parameters

      • T
      • K: keyof T

      PandoraDirection

      PandoraDirection: North | South | East | West

      PandoraFloorDirection

      PandoraFloorDirection: StairsUp | StairsDown | PandoraDirection

      PandoraFloors

      PandoraFloors: Ground | Second | Underground

      PandoraPrisonActivity

      PandoraPrisonActivity: Beat | Water | Transfer | Quickie | Strip | Chastity | Tickle | ChangeBondage

      PartialRectTuple

      PartialRectTuple: [X: number, Y: number, W?: number, H?: number]

      A 4-tuple with X & Y coordinates and, optionally, width and height

      PartialType

      PartialType: `${string}${number}`

      A concatenation of a single TypeRecord key/value pair.

      PetSuitShockCollarPersistentData

      PetSuitShockCollarPersistentData: { CheckTime?: number; DisplayCount?: number; LastMessageLen?: number; LastTriggerCount?: number; UpdateTime?: number }

      Type declaration

      • optionalCheckTime?: number
      • optionalDisplayCount?: number
      • optionalLastMessageLen?: number
      • optionalLastTriggerCount?: number
      • optionalUpdateTime?: number

      PickLockAvailability

      PickLockAvailability: | Disabled | PermissionsDisabled | InaccessibleDisabled | NoPicksDisabled

      PokerGameType

      PokerGameType: TwoCards | TexasHoldem

      PokerHand

      PokerHand: number[]

      PokerMode

      PokerMode: | DEAL | FLOP | TURN | RIVER | RESULT | END

      PokerPlayerFamily

      PokerPlayerFamily: None | Player | Illustration | Model

      PokerPlayerType

      PokerPlayerType: None | Set | Character

      PortalLinkFunction

      PortalLinkFunction: PortalLinkFunctionLock | PortalLinkFunctionUnlock | PortalLinkFunctionCycleChastity | `PortalLinkFunctionActivity${ActivityName}`

      PortalLinkStatus

      PortalLinkStatus: PortalLinkInvalidCode | PortalLinkClipboardError | PortalLinkValidCode | `PortalLinkSearching${number}` | PortalLinkDuplicateCode | PortalLinkTargetNotFound | PortalLinkEstablished

      PoseChangeStatus

      PoseChangeStatus: 0 | 1 | 2 | 3

      PosePrerequisite

      PosePrerequisite: `Can${AssetPoseName}`

      PoseType

      PoseType: Hide | PoseTypeDefault

      PoseTypeDefault

      PoseTypeDefault:

      PreferenceExtensionsMenuButtonInfo

      PreferenceExtensionsMenuButtonInfo: { Button: string; Image?: string; click: () => void }

      Preference Menu info for extensions settings


      Type declaration

      • Button: string
      • optionalImage?: string
      • click: () => void
          • (): void
          • Returns void

      PreferenceSubscreenName

      PreferenceSubscreenName: General | Difficulty | Restriction | Chat | CensoredWords | Audio | Arousal | Security | Online | Visibility | Immersion | Graphics | Controller | Notifications | Gender | Scripts | Extensions | Main

      PropertiesArray

      PropertiesNoArray

      PropertiesRecord

      Rect

      Rect: { h: number; w: number; x: number; y: number }

      Type declaration

      • h: number
      • w: number
      • x: number
      • y: number

      RectTuple

      RectTuple: [X: number, Y: number, W: number, H: number]

      A 4-tuple with X & Y coordinates, width and height

      ReputationType

      ReputationType: Dominant | Kidnap | ABDL | Gaming | Maid | LARP | Asylum | Gambling | HouseMaiestas | HouseVincula | HouseAmplector | HouseCorporis

      ScriptPermissionLevel

      ScriptPermissionLevel: Self | Owner | Lovers | Friends | Whitelist | Public

      ScriptPermissionProperty

      ScriptPermissionProperty: Hide | Block

      ScriptPermissions

      ScriptPermissions: Record<ScriptPermissionProperty, ScriptPermission>

      SendRateLimitQueueItem

      SendRateLimitQueueItem: { Message: ClientEvent; args: ClientEventParams<ClientEvent> }

      Type declaration

      ServerAccountBeepRequest

      ServerAccountBeepRequest: { BeepType: ServerBeepType; IsSecret?: boolean; MemberNumber: number; Message?: string }

      Type declaration

      • BeepType: ServerBeepType
      • optionalIsSecret?: boolean
      • MemberNumber: number
      • optionalMessage?: string

      ServerAccountBeepResponse

      ServerAccountBeepResponse: { BeepType: ServerBeepType; ChatRoomName: string; ChatRoomSpace: ServerChatRoomSpace; MemberName: string; MemberNumber: number; Message: string; Private: boolean }

      Type declaration

      ServerAccountCreateResponse

      ServerAccountCreateResponse: ServerAccountCreateResponseSuccess | Account already exists | Invalid account information

      ServerAccountDataDeprecations

      ServerAccountDataDeprecations: LastChatRoomDesc | LastChatRoomAdmin | LastChatRoomBan | LastChatRoomBG | LastChatRoomSize | LastChatRoomPrivate | LastChatRoomBlockCategory | LastChatRoomSpace | LastChatRoomLanguage | LastChatRoomCustom | LastChatRoomMapData

      A union of all deprecated ServerAccountData fields

      ServerAccountDataNoDeprecated

      ServerAccountDataNoDeprecated: ServerAccountData & { [ k in ServerAccountDataDeprecations ]?: never } & { Inventory?: Partial<Record<AssetGroupName, string[]>>; LastChatRoom?: null | ServerChatRoomSettings }

      A ServerAccountData variant with all deprecated members set to never.

      Use of this type over ServerAccountData is recommended when sending data to the server.

      ServerAccountDataSynced

      ServerAccountDataSynced: Omit<ServerAccountData, Money | FriendList | AccountName>

      ServerAccountLovershipRequest

      ServerAccountLovershipResponse

      ServerAccountOwnershipResponse

      ServerAccountQueryResponse

      ServerAppearanceBundle

      ServerAppearanceBundle: ServerItemBundle[]

      An AppearanceBundle is whole minified appearance of a character

      ServerBeepType

      ServerBeepType: string

      ServerChatRoomAdminRequest

      ServerChatRoomBlockCategory

      ServerChatRoomBlockCategory: Medical | Extreme | Pony | SciFi | ABDL | Fantasy | Leashing | Photos | Arousal

      ServerChatRoomChecksOptions

      ServerChatRoomChecksOptions: { callback?: () => boolean; screen?: string }

      Type declaration

      • optionalcallback?: () => boolean
          • (): boolean
          • Returns boolean

      • optionalscreen?: string

      ServerChatRoomCreateResponse

      ServerChatRoomCreateResponse: AccountError | RoomAlreadyExist | InvalidRoomData | ChatRoomCreated

      ServerChatRoomData

      ServerChatRoomData: { Admin: number[]; Background: string; Ban: number[]; BlockCategory: ServerChatRoomBlockCategory[]; Character: ServerAccountDataSynced[]; Custom: ServerChatRoomCustomData; Description: string; Game: ServerChatRoomGame; Language: ServerChatRoomLanguage; Limit: number; Locked: boolean; MapData?: ServerChatRoomMapData; Name: string; Private: boolean; Space: ServerChatRoomSpace }

      The chatroom data received from the server


      Type declaration

      ServerChatRoomGame

      ServerChatRoomGame: | ClubCard | LARP | MagicBattle | GGTS

      ServerChatRoomGameCardGameActionRequest

      ServerChatRoomGameCardGameActionRequest: { GameProgress: Action } & ({ CCLog: any } | { CCData: any })

      ServerChatRoomGameCardGameUpdateRequest

      ServerChatRoomGameUpdateRequest

      ServerChatRoomLanguage

      ServerChatRoomLanguage: EN | DE | FR | ES | CN | RU | UA

      ServerChatRoomMessageContentType

      ServerChatRoomMessageContentType: string

      ServerChatRoomMessageType

      ServerChatRoomMessageType: Action | Chat | Whisper | Emote | Activity | Hidden | LocalMessage | ServerMessage | Status

      ServerChatRoomSearchResponse

      ServerChatRoomSearchResponse: JoinedRoom | AlreadyInRoom | RoomLocked | RoomBanned | RoomKicked | RoomFull | CannotFindRoom | AccountError | InvalidRoomData

      ServerChatRoomSearchResultResponse

      ServerChatRoomSearchResultResponse: ServerChatRoomSearchData[]

      ServerChatRoomSettings

      ServerChatRoomSettings: Partial<ServerChatRoomData> & { Character?: never }

      A chatroom's settings

      Define to never any property of ServerChatRoomData that shouldn't be sent back to the server.

      ServerChatRoomSpace

      ServerChatRoomSpace: X | | M | Asylum

      ServerChatRoomUpdateResponse

      ServerChatRoomUpdateResponse: RoomAlreadyExist | Updated | InvalidRoomData

      ServerForceDisconnectMessage

      ServerForceDisconnectMessage: ErrorRateLimited | ErrorDuplicatedLogin

      ServerItemPermissionsPacked

      ServerItemPermissionsPacked: Partial<Record<AssetGroupName, Record<string, (undefined | null | string)[]>>>

      A packed record-based version of ServerItemPermissions.

      ServerLoginQueueResponse

      ServerLoginQueueResponse: number

      ServerLoginResponse

      ServerLoginResponse: InvalidNamePassword | Partial<ServerAccountData>

      ServerPasswordResetRequest

      ServerPasswordResetRequest: string

      ServerPasswordResetResponse

      ServerPasswordResetResponse: RetryLater | EmailSentError | EmailSent | NoAccountOnEmail | PasswordResetSuccessful | InvalidPasswordResetInfo

      SettingsSensDepName

      SettingsSensDepName: SensDepLight | Normal | SensDepNames | SensDepTotal | SensDepExtreme

      SettingsVFXFilterName

      SettingsVFXFilterName: VFXFilterLight | VFXFilterMedium | VFXFilterHeavy

      SettingsVFXName

      SettingsVFXName: VFXInactive | VFXSolid | VFXAnimatedTemp | VFXAnimated

      SettingsVFXVibratorName

      SettingsVFXVibratorName: VFXVibratorInactive | VFXVibratorSolid | VFXVibratorAnimated

      ShockUnitPersistentData

      ShockUnitPersistentData: { ChangeTime?: number; DisplayCount?: number; LastTriggerCount?: number }

      Type declaration

      • optionalChangeTime?: number
      • optionalDisplayCount?: number
      • optionalLastTriggerCount?: number

      ShopClothesMode

      ShopClothesMode: Clothes | Underwear | Cosplay | Nude

      The current dressing state of the preview character

      ShopDropdownState

      ShopDropdownState: None | Group | Pose

      The currently active dropdown menu

      ShopIcon

      ShopIcon: Extended | BuyGroup

      ShopMode

      ShopMode: Buy | Sell | Preview | Color | Extended | Layering

      The current shop mode

      SkillType

      SkillType: Bondage | SelfBondage | LockPicking | Evasion | Willpower | Infiltration | Dressage

      SpeechTransformName

      SpeechTransformName: gagGarble | stutter | babyTalk | deafen

      SteampunkWingsPersistentData

      SteampunkWingsPersistentData: { ChangeTime?: number; DrawRequested?: boolean; FrameTime?: number; Modifier?: number; ModifierGears?: number; State?: number; StateGears?: number }

      Type declaration

      • optionalChangeTime?: number
      • optionalDrawRequested?: boolean
      • optionalFrameTime?: number
      • optionalModifier?: number
      • optionalModifierGears?: number
      • optionalState?: number
      • optionalStateGears?: number

      StimulationAction

      StimulationAction: Kneel | Walk | Struggle | StruggleFail | Talk

      StimulationEventType

      StimulationEventType: CrotchRope | Talk | Vibe | Inflated | Wiggling | PlugFront | PlugBack | PlugBoth

      StruggleCompletionCallback

      StruggleCompletionCallback: (character: Character, game: StruggleKnownMinigames, data: StruggleCompletionData) => void

      Type declaration

      StruggleKnownMinigames

      StruggleKnownMinigames: Strength | Flexibility | Dexterity | Loosen | LockPick

      TextItemEventListener

      TextItemEventListener: (C: Character, item: Item, name: TextItemNames, text: string) => void

      A callback signature for handling (throttled) text changes.


      Type declaration

        • Parameters

          • C: Character

            The character being modified

          • item: Item

            The item being modified

          • name: TextItemNames

            The property wherein the updated text should be stored

          • text: string

            The new text to be assigned to the item

          Returns void

      TextItemNames

      TextItemNames: keyof ItemProperties & (Text | Text2 | Text3)

      Property keys of ItemProperties with text input fields

      TextItemRecord

      TextItemRecord<T>: Partial<Record<TextItemNames, T>>

      Type parameters

      • T

      ThumbIcon

      ThumbIcon: lock | blindfold | lightbulb | player | rope

      Valid thumb icons for range slider elements

      TitleName

      TitleName: NPCArchetype | None | Mistress | Master | Mistree | ClubSlave | Maid | HeadMaid | BondageMaid | Kidnapper | MasterKidnapper | Patient | PermanentPatient | EscapedPatient | Nurse | Doctor | AnimeBoy | LadyLuck | LordFortune | Patron | CollegeStudent | Nawashi | Houdini | PonyAlicorn | PonyPegasus | PonyUnicorn | PonyWild | PonyHot | PonyWarm | PonyCold | PonyFarm | PonyFoal | InfilrationMole | InfilrationInfiltrator | InfilrationAgent | InfilrationOperative | InfilrationSuperspy | MagicSchoolWizard | MagicSchoolMagus | MagicSchoolMagician | MagicSchoolSorcerer | MagicSchoolSage | MagicSchoolOracle | MagicSchoolWitch | MagicSchoolWarlock | Duchess | Duke | LittleOne | Baby | DL | BondageBaby | Switch | Princess | Prince | Liege | Majesty | Missy | Sissy | Tomboy | Femboy | GoodOne | Pet | Brat | Kitten | Puppy | Foxy | Bunny | Doll | Demon | Angel | Alien | Captain | Admiral | Succubus | Incubus | Concubus | GoodGirl | GoodBoy | GoodSlaveGirl | GoodSlaveBoy | GoodSlave | Drone

      TypeRecord

      TypeRecord: Record<string, number>

      A record mapping screen names to option indices.

      @see

      PartialType A concatenation of a single TypeRecord key/value pair.

      TypedItemChatSetting

      TypedItemChatSetting: default | fromTo | silent

      VariableContainer

      VariableContainer<T1, T2>: T1 & T2 & { Defaults: Readonly<T1>; Reset: () => void }

      An object for holding arbitrary values with a mechanism to reset them to a default


      Type parameters

      • T1
      • T2

      VariableHeightGetHeightCallback

      VariableHeightGetHeightCallback: (property: ItemProperties) => number | null

      The function that handles applying the height setting to the character


      Type declaration

      VariableHeightSetHeightCallback

      VariableHeightSetHeightCallback: (property: ItemProperties, height: number, maxHeight: number, minHeight: number) => void

      The function that handles finding the current variable height setting


      Type declaration

        • (property: ItemProperties, height: number, maxHeight: number, minHeight: number): void
        • Parameters

          • property: ItemProperties
          • height: number
          • maxHeight: number
          • minHeight: number

          Returns void

      VibratorIntensity

      VibratorIntensity: -1 | 0 | 1 | 2 | 3

      VibratorMode

      VibratorMode: Off | Low | Medium | High | Maximum | Random | Escalate | Tease | Deny | Edge

      VibratorModePersistentData

      VibratorModePersistentData: { ChangeTime?: number; LastChange?: number; Mode?: VibratorMode }

      Type declaration

      • optionalChangeTime?: number
      • optionalLastChange?: number
      • optionalMode?: VibratorMode

      VibratorModeSet

      VibratorModeSet: Standard | Advanced

      VibratorModeState

      VibratorModeState: Default | Deny | Orgasm | Rest

      VibratorRemoteAvailability

      VibratorRemoteAvailability: Available | NoRemote | NoRemoteOwnerRuleActive | NoLoversRemote | RemotesBlocked | CannotInteract | NoAccess | InvalidItem

      WardrobeItemBundle

      WardrobeItemBundle: [Name: string, Group: AssetGroupName, Color?: ItemColor, Property?: ItemProperties]

      A tuple-based version of ItemBundle

      WardrobeReorderType

      WardrobeReorderType: None | Select | Place

      WheelFortuneColor

      WheelFortuneColor: Blue | Gold | Gray | Green | Orange | Purple | Red | Yellow

      A union of valid wheel of fortune button colors

      itemColorExitListener

      itemColorExitListener: (c: Character, item: Item, save: boolean) => void

      A callback function that is called when the item color UI exits


      Type declaration

        • Parameters

          • c: Character

            The character being colored

          • item: Item

            The item being colored

          • save: boolean

            Whether the item's appearance changes should be saved

          Returns void

      Variables

      ActivityDictionary

      ActivityDictionary: string[][] = null

      ActivityFemale3DCG

      ActivityFemale3DCG: Activity[] = ...

      3D Custom Girl based activities

      The ordering is supposed to match what body part they use, in order: mouth, hand, feet, whole-body, head, then the item-related ones. Inside that, they get sorted by softest to harshest, when that makes sense.

      ActivityFemale3DCGOrdering

      ActivityFemale3DCGOrdering: ActivityName[] = ...

      Display order for activities.

      ActivityOrgasmGameButtonX

      ActivityOrgasmGameButtonX: number = 0

      ActivityOrgasmGameButtonY

      ActivityOrgasmGameButtonY: number = 0

      ActivityOrgasmGameDifficulty

      ActivityOrgasmGameDifficulty: number = 0

      ActivityOrgasmGameProgress

      ActivityOrgasmGameProgress: number = 0

      ActivityOrgasmGameResistCount

      ActivityOrgasmGameResistCount: number = 0

      ActivityOrgasmGameTimer

      ActivityOrgasmGameTimer: number = 0

      ActivityOrgasmResistLabel

      ActivityOrgasmResistLabel: string = ""

      ActivityOrgasmRuined

      ActivityOrgasmRuined: boolean = false

      AdvancedRuleBackground

      AdvancedRuleBackground: string = "Sheet"

      AdvancedRuleOption

      AdvancedRuleOption: string[] = []

      AdvancedRuleSelection

      AdvancedRuleSelection: string = ""

      AdvancedRuleTarget

      AdvancedRuleTarget: Character | NPCCharacter = null

      AdvancedRuleType

      AdvancedRuleType: | LogNameAdvanced = ""

      AfkTimerEventsList

      AfkTimerEventsList: string[] = ...

      AfkTimerIsEnabled

      AfkTimerIsEnabled: boolean = null

      AfkTimerIsSet

      AfkTimerIsSet: boolean = false

      AfkTimerLastEvent

      AfkTimerLastEvent: number = 0

      AfkTimerOldEmoticon

      AfkTimerOldEmoticon: Whisper | Afk | Sleep | Hearts | Tear | Hearing | Confusion | Exclamation | Annoyed | Read | RaisedHand | Spectator | ThumbsDown | ThumbsUp | LoveRope | LoveGag | LoveLock | Wardrobe | Gaming | Coffee | Fork | Music | Car | Hanger | Call | Lightbulb | Warning | BrokenHeart | Drawing | Coding | TV | Bathing = null

      AfkTimerTimout

      AfkTimerTimout: number = ...

      Amanda

      Amanda: NPCCharacter = null

      AmandaInside

      AmandaInside: boolean = false

      AmandaIntroDone

      AmandaIntroDone: boolean = false

      AmandaIntroTime

      AmandaIntroTime: number = 0

      AmandaStatus

      AmandaStatus: string = ""

      AnimationDataTypes

      AnimationDataTypes: { AssetGroup: AssetGroup; Base: ; Canvas: DynamicPlayerCanvas; PersistentData: PersistentData; Rebuild: Rebuild; RefreshRate: RefreshRate; RefreshTime: RefreshTime } = ...

      Types of dynamic data that can be stored.


      Type declaration

      • AssetGroup: AssetGroup
      • Base:
      • Canvas: DynamicPlayerCanvas
      • PersistentData: PersistentData
      • Rebuild: Rebuild
      • RefreshRate: RefreshRate
      • RefreshTime: RefreshTime

      AnimationPersistentStorage

      AnimationPersistentStorage: Record<string, any> = {}

      Where animation data is stored. Animation data is only managed client side, nothing should be synced.

      @constant

      AppearanceBackground

      AppearanceBackground: string = "Dressing"

      AppearanceMenu

      AppearanceMenu: DialogMenuButton[] = []

      constAppearancePermissionColors

      AppearancePermissionColors: { amber: string[]; green: string[]; red: string[] } = ...

      Type declaration

      • amber: string[]
      • green: string[]
      • red: string[]

      AppearancePreviews

      AppearancePreviews: Character[] = []

      AppearanceUseCharacterInPreviewsSetting

      AppearanceUseCharacterInPreviewsSetting: boolean = false

      AppearanceWardrobeReorderList

      AppearanceWardrobeReorderList: any[] = []

      List of item indices collected for swapping. #type {number[]}

      AppearanceWardrobeReorderMode

      AppearanceWardrobeReorderMode: WardrobeReorderType = "None"

      ArcadeAskedFor

      ArcadeAskedFor: any = null

      ArcadeBackground

      ArcadeBackground: string = "PartyBasement"

      ArcadeCannotDoDeviousChallenge

      ArcadeCannotDoDeviousChallenge: boolean = false

      ArcadeDeviousChallenge

      ArcadeDeviousChallenge: boolean = false

      ArcadeEmployee

      ArcadeEmployee: NPCCharacter = null

      ArcadePlayer

      ArcadePlayer: NPCCharacter = null

      ArcadePrice

      ArcadePrice: number = 0

      Asset

      Asset: Asset[] = []

      AssetActivityMirrorGroups

      AssetActivityMirrorGroups: Map<AssetGroupName, AssetGroup[]> = ...

      AssetFemale3DCG

      AssetFemale3DCG: AssetGroupDefinition[] = ...

      3D Custom Girl based assets

      AssetFemale3DCGExtended

      AssetFemale3DCGExtended: Partial<Record<AssetGroupName, ExtendedItemGroupConfig>> = ...

      An object containing all extended item configurations.

      @const

      AssetGroup

      AssetGroup: AssetGroup[] = []

      AssetGroupMap

      AssetGroupMap: Map<AssetGroupName, AssetGroup> = ...

      constAssetLocks

      AssetLocks: Record<AssetLockType, Asset> = ...

      A record mapping all Asset.IsLock asset names to their respective assets.

      constAssetLowerOverflowAlpha

      AssetLowerOverflowAlpha: [number, number, number, number] = ...

      AssetMap

      AssetMap: Map<`BodyUpper/${string}` | `BodyLower/${string}` | `Eyebrows/${string}` | `Eyes/${string}` | `Eyes2/${string}` | `Mouth/${string}` | `Pussy/${string}` | `Blush/${string}` | `Fluids/${string}` | `Emoticon/${string}` | `BodyMarkings/${string}` | `Bra/${string}` | `Bracelet/${string}` | `Cloth/${string}` | `ClothAccessory/${string}` | `ClothLower/${string}` | `Corset/${string}` | `EyeShadow/${string}` | `FacialHair/${string}` | `Garters/${string}` | `Glasses/${string}` | `Gloves/${string}` | `HairAccessory1/${string}` | `HairAccessory2/${string}` | `HairAccessory3/${string}` | `HairBack/${string}` | `HairFront/${string}` | `Hands/${string}` | `Hat/${string}` | `Head/${string}` | `Height/${string}` | `Jewelry/${string}` | `LeftAnklet/${string}` | `LeftHand/${string}` | `Mask/${string}` | `Necklace/${string}` | `Nipples/${string}` | `Panties/${string}` | `Pronouns/${string}` | `RightAnklet/${string}` | `RightHand/${string}` | `Shoes/${string}` | `Socks/${string}` | `SocksLeft/${string}` | `SocksRight/${string}` | `Suit/${string}` | `SuitLower/${string}` | `TailStraps/${string}` | `Wings/${string}` | `ItemAddon/${string}` | `ItemArms/${string}` | `ItemBoots/${string}` | `ItemBreast/${string}` | `ItemButt/${string}` | `ItemDevices/${string}` | `ItemEars/${string}` | `ItemFeet/${string}` | `ItemHands/${string}` | `ItemHead/${string}` | `ItemHood/${string}` | `ItemLegs/${string}` | `ItemMisc/${string}` | `ItemMouth/${string}` | `ItemMouth2/${string}` | `ItemMouth3/${string}` | `ItemNeck/${string}` | `ItemNeckAccessories/${string}` | `ItemNeckRestraints/${string}` | `ItemNipples/${string}` | `ItemNipplesPiercings/${string}` | `ItemNose/${string}` | `ItemPelvis/${string}` | `ItemTorso/${string}` | `ItemTorso2/${string}` | `ItemVulva/${string}` | `ItemVulvaPiercings/${string}` | `ItemHandheld/${string}` | `ItemScript/${string}`, Asset> = ...

      constAssetPoseMapping

      AssetPoseMapping: { BodyLower: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; BodyUpper: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; Bra: { AllFours: Hide; Hogtied: Hogtied; Yoked: Yoked }; Bracelet: { AllFours: Hide; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; Yoked: Yoked }; Cloth: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; ClothLower: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; Corset: { Hogtied: Hogtied }; Garters: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; Glasses: {}; Gloves: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; Hands: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: Hide; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: Hide; TapedHands: TapedHands; Yoked: Hide }; ItemBoots: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed }; ItemBreast: { AllFours: AllFours }; ItemFeet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide }; ItemHandheld: { AllFours: Hide; BackBoxTie: Hide; BackCuffs: Hide; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: Hide; Yoked: Hide }; ItemHands: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; Yoked: Yoked }; ItemLegs: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel }; ItemNipples: { AllFours: AllFours }; ItemNipplesPiercings: { AllFours: AllFours }; ItemPelvis: { AllFours: Hide; Hogtied: Hide }; ItemTorso: { AllFours: AllFours; Hogtied: Hogtied }; ItemTorso2: { AllFours: AllFours; Hogtied: Hogtied }; ItemVulva: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel }; ItemVulvaPiercings: { AllFours: Hide; Hogtied: Hide }; LeftAnklet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }; LeftHand: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; Nipples: { AllFours: Hide }; Panties: { AllFours: Hide; Hogtied: Hide }; Pussy: { AllFours: Hide; Hogtied: Hide }; RightAnklet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }; RightHand: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; Shoes: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; Socks: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; SocksLeft: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; SocksRight: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; Suit: { AllFours: Hide; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; SuitLower: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }; Wings: { AllFours: Hide; Hogtied: Hide } } = ...

      All the default AssetGroupDefinition.PoseMapping values for the various groups.


      Type declaration

      • readonlyBodyLower: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hide
        • readonlyKneel: Kneel
        • readonlyKneelingSpread: KneelingSpread
        • readonlyLegsClosed: LegsClosed
        • readonlySpread: Spread
      • readonlyBodyUpper: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
        • readonlyAllFours: AllFours
        • readonlyBackBoxTie: BackBoxTie
        • readonlyBackCuffs: BackCuffs
        • readonlyBackElbowTouch: BackElbowTouch
        • readonlyHogtied: Hogtied
        • readonlyOverTheHead: OverTheHead
        • readonlyTapedHands: TapedHands
        • readonlyYoked: Yoked
      • readonlyBra: { AllFours: Hide; Hogtied: Hogtied; Yoked: Yoked }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hogtied
        • readonlyYoked: Yoked
      • readonlyBracelet: { AllFours: Hide; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; Yoked: Yoked }
        • readonlyAllFours: Hide
        • readonlyBackBoxTie: BackBoxTie
        • readonlyBackCuffs: BackCuffs
        • readonlyBackElbowTouch: Hide
        • readonlyHogtied: Hide
        • readonlyOverTheHead: OverTheHead
        • readonlyYoked: Yoked
      • readonlyCloth: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
        • readonlyAllFours: AllFours
        • readonlyBackBoxTie: BackBoxTie
        • readonlyBackCuffs: BackCuffs
        • readonlyBackElbowTouch: BackElbowTouch
        • readonlyHogtied: Hogtied
        • readonlyOverTheHead: OverTheHead
        • readonlyTapedHands: TapedHands
        • readonlyYoked: Yoked
      • readonlyClothLower: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hide
        • readonlyKneel: Kneel
        • readonlyKneelingSpread: KneelingSpread
        • readonlyLegsClosed: LegsClosed
        • readonlySpread: Spread
      • readonlyCorset: { Hogtied: Hogtied }
        • readonlyHogtied: Hogtied
      • readonlyGarters: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hide
        • readonlyKneel: Kneel
        • readonlyKneelingSpread: KneelingSpread
        • readonlyLegsClosed: LegsClosed
        • readonlySpread: Spread
      • readonlyGlasses: {}
        • readonlyGloves: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: BackBoxTie
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: BackElbowTouch
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • readonlyHands: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: Hide; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: Hide; TapedHands: TapedHands; Yoked: Hide }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: Hide
          • readonlyBackCuffs: Hide
          • readonlyBackElbowTouch: Hide
          • readonlyHogtied: Hide
          • readonlyOverTheHead: Hide
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Hide
        • readonlyItemBoots: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
        • readonlyItemBreast: { AllFours: AllFours }
          • readonlyAllFours: AllFours
        • readonlyItemFeet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
          • readonlyKneel: Hide
          • readonlyKneelingSpread: Hide
        • readonlyItemHandheld: { AllFours: Hide; BackBoxTie: Hide; BackCuffs: Hide; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: Hide; Yoked: Hide }
          • readonlyAllFours: Hide
          • readonlyBackBoxTie: Hide
          • readonlyBackCuffs: Hide
          • readonlyBackElbowTouch: Hide
          • readonlyHogtied: Hide
          • readonlyOverTheHead: Hide
          • readonlyYoked: Hide
        • readonlyItemHands: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: Hide
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: Hide
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyYoked: Yoked
        • readonlyItemLegs: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
          • readonlyKneel: Kneel
        • readonlyItemNipples: { AllFours: AllFours }
          • readonlyAllFours: AllFours
        • readonlyItemNipplesPiercings: { AllFours: AllFours }
          • readonlyAllFours: AllFours
        • readonlyItemPelvis: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • readonlyItemTorso: { AllFours: AllFours; Hogtied: Hogtied }
          • readonlyAllFours: AllFours
          • readonlyHogtied: Hogtied
        • readonlyItemTorso2: { AllFours: AllFours; Hogtied: Hogtied }
          • readonlyAllFours: AllFours
          • readonlyHogtied: Hogtied
        • readonlyItemVulva: { AllFours: Hide; Hogtied: Hide; Kneel: Kneel }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
          • readonlyKneel: Kneel
        • readonlyItemVulvaPiercings: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • readonlyLeftAnklet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
          • readonlyKneel: Hide
          • readonlyKneelingSpread: Hide
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlyLeftHand: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: BackBoxTie
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: BackElbowTouch
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • readonlyNipples: { AllFours: Hide }
          • readonlyAllFours: Hide
        • readonlyPanties: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • readonlyPussy: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • readonlyRightAnklet: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
          • readonlyKneel: Hide
          • readonlyKneelingSpread: Hide
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlyRightHand: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: BackBoxTie
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: BackElbowTouch
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • readonlyShoes: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlySocks: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlySocksLeft: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlySocksRight: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlySuit: { AllFours: Hide; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hogtied; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: Hide
          • readonlyBackBoxTie: BackBoxTie
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: BackElbowTouch
          • readonlyHogtied: Hogtied
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • readonlySuitLower: { AllFours: Hide; Hogtied: Hogtied; Kneel: Kneel; KneelingSpread: KneelingSpread; LegsClosed: LegsClosed; Spread: Spread }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hogtied
          • readonlyKneel: Kneel
          • readonlyKneelingSpread: KneelingSpread
          • readonlyLegsClosed: LegsClosed
          • readonlySpread: Spread
        • readonlyWings: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide

        constAssetPoseToMapping

        AssetPoseToMapping: never
        @deprecated

        superseded by PoseToMapping

        constAssetStringsPath

        AssetStringsPath: Assets/Female3DCG/AssetStrings.csv = "Assets/Female3DCG/AssetStrings.csv"

        constAssetUpperOverflowAlpha

        AssetUpperOverflowAlpha: [number, number, number, number] = ...

        constAssetsClothCheerleaderTopData

        AssetsClothCheerleaderTopData: { _Large: { shearFactor: number; width: number; yOffset: number }; _Normal: { shearFactor: number; width: number; yOffset: number }; _Small: { shearFactor: number; width: number; yOffset: number }; _XLarge: { shearFactor: number; width: number; yOffset: number } } = ...

        Type declaration

        • _Large: { shearFactor: number; width: number; yOffset: number }
          • shearFactor: number
          • width: number
          • yOffset: number
        • _Normal: { shearFactor: number; width: number; yOffset: number }
          • shearFactor: number
          • width: number
          • yOffset: number
        • _Small: { shearFactor: number; width: number; yOffset: number }
          • shearFactor: number
          • width: number
          • yOffset: number
        • _XLarge: { shearFactor: number; width: number; yOffset: number }
          • shearFactor: number
          • width: number
          • yOffset: number

        AsylumBedroomBackground

        AsylumBedroomBackground: string = "AsylumBedroom"

        AsylumEntranceBackground

        AsylumEntranceBackground: string = "AsylumEntrance"

        AsylumEntranceEscapedPatient

        AsylumEntranceEscapedPatient: NPCCharacter = null

        AsylumEntranceEscapedPatientWillBribe

        AsylumEntranceEscapedPatientWillBribe: boolean = false

        AsylumEntranceEscapedPatientWillJoin

        AsylumEntranceEscapedPatientWillJoin: boolean = false

        AsylumEntranceKidnapNurse

        AsylumEntranceKidnapNurse: NPCCharacter = null

        AsylumEntranceNurse

        AsylumEntranceNurse: NPCCharacter = null

        AsylumGGTSBackground

        AsylumGGTSBackground: string = "AsylumGGTSRoom"

        AsylumGGTSChatToParse

        AsylumGGTSChatToParse: string = ""

        AsylumGGTSComputer

        AsylumGGTSComputer: NPCCharacter = null

        AsylumGGTSIntroDone

        AsylumGGTSIntroDone: boolean = false

        AsylumGGTSLastTask

        AsylumGGTSLastTask: string = ""

        AsylumGGTSLevelTime

        AsylumGGTSLevelTime: number[] = ...

        AsylumGGTSPreviousPose

        AsylumGGTSPreviousPose: Partial<Record<keyof AssetPoseMap, AssetPoseName>> = null

        The last pose the character had. Used to enforce KeepPose rules.

        AsylumGGTSSpeed

        AsylumGGTSSpeed: number = 1

        AsylumGGTSTask

        AsylumGGTSTask: string = null

        AsylumGGTSTaskEnd

        AsylumGGTSTaskEnd: number = 0

        AsylumGGTSTaskList

        AsylumGGTSTaskList: string[][] = ...

        The list of available tasks, partitioned by level.

        AsylumGGTSTaskStart

        AsylumGGTSTaskStart: number = 0

        AsylumGGTSTaskTarget

        AsylumGGTSTaskTarget: Character = null

        AsylumGGTSTimer

        AsylumGGTSTimer: number = 0

        AsylumGGTSWordCheck

        AsylumGGTSWordCheck: number = 0

        AsylumMeetingBackground

        AsylumMeetingBackground: string = "AsylumMeeting"

        AsylumMeetingPatientLeft

        AsylumMeetingPatientLeft: NPCCharacter = null

        AsylumMeetingPatientRight

        AsylumMeetingPatientRight: NPCCharacter = null

        AsylumTherapyBackground

        AsylumTherapyBackground: string = "AsylumTherapy"

        AsylumTherapyNurse

        AsylumTherapyNurse: NPCCharacter = null

        AsylumTherapyPatient

        AsylumTherapyPatient: NPCCharacter = null

        AudioActions

        AudioActions: AudioChatAction[] = ...

        A list of chat message audio effect "detectors".

        They get checked in the order they're defined, so be careful where you insert new entries.

        AudioDialog

        AudioDialog: HTMLAudioElement = ...

        AudioList

        AudioList: AudioEffect[] = ...

        AudioVolumeModifierSteps

        AudioVolumeModifierSteps: number = 4

        Number of available modifier steps

        AudioVolumeNormalLevel

        AudioVolumeNormalLevel: number = 0.5

        The "normal" volume for a game sound, a.k.a a sound with modifier 0

        BackgroundSelectionAll

        BackgroundSelectionAll: { Description: string; Low: string; Name: string }[] = []

        BackgroundSelectionBackground

        BackgroundSelectionBackground: string = "Introduction"

        BackgroundSelectionIndex

        BackgroundSelectionIndex: number = 0

        BackgroundSelectionList

        BackgroundSelectionList: string[] = []

        BackgroundSelectionOffset

        BackgroundSelectionOffset: number = 0

        BackgroundSelectionPreviousModule

        BackgroundSelectionPreviousModule: | ModuleType = ""

        BackgroundSelectionPreviousScreen

        BackgroundSelectionPreviousScreen: string = ""

        BackgroundSelectionSelect

        BackgroundSelectionSelect: string = ""

        BackgroundSelectionSize

        BackgroundSelectionSize: number = 12

        BackgroundSelectionTagList

        BackgroundSelectionTagList: BackgroundTag[] = []

        BackgroundSelectionView

        BackgroundSelectionView: { Description: string; Low: string; Name: string }[] = []

        constBackgroundsList

        BackgroundsList: { Name: string; Tag: BackgroundTag[] }[] = ...

        List of all the common backgrounds.

        @constant

        constBackgroundsPrivateRoomTagList

        BackgroundsPrivateRoomTagList: BackgroundTag[] = ...

        List of all tags to setup your main hall or private room

        @constant

        constBackgroundsStringsPath

        BackgroundsStringsPath: Backgrounds/Backgrounds.csv = "Backgrounds/Backgrounds.csv"

        constBackgroundsTagAquatic

        BackgroundsTagAquatic: Aquatic = "Aquatic"

        constBackgroundsTagAsylum

        BackgroundsTagAsylum: Asylum = "Asylum"

        constBackgroundsTagClub

        BackgroundsTagClub: Club & College = "Club & College"

        constBackgroundsTagDungeon

        BackgroundsTagDungeon: Dungeon = "Dungeon"

        constBackgroundsTagHouse

        BackgroundsTagHouse: Regular house = "Regular house"

        constBackgroundsTagIndoor

        BackgroundsTagIndoor: Indoor = "Indoor"

        constBackgroundsTagList

        BackgroundsTagList: BackgroundTag[] = ...

        List of all tags to create online chat rooms

        @constant

        constBackgroundsTagNone

        BackgroundsTagNone: Filter by tag = "Filter by tag"

        constBackgroundsTagOutdoor

        BackgroundsTagOutdoor: Outdoor = "Outdoor"

        constBackgroundsTagSciFiFantasy

        BackgroundsTagSciFiFantasy: SciFi & Fantasy = "SciFi & Fantasy"

        constBackgroundsTagSpecial

        BackgroundsTagSpecial: Special Events = "Special Events"

        BlindFlash

        BlindFlash: boolean = false

        CafeAskedFor

        CafeAskedFor: string = null

        CafeBackground

        CafeBackground: string = "MaidCafe"

        CafeCupcakePrice

        CafeCupcakePrice: number = 5

        CafeEnergyDrinkPrice

        CafeEnergyDrinkPrice: number = 5

        CafeGlassMilkPrice

        CafeGlassMilkPrice: number = 5

        CafeIsHeadMaid

        CafeIsHeadMaid: boolean = false

        CafeIsMaid

        CafeIsMaid: boolean = false

        CafeMaid

        CafeMaid: NPCCharacter = null

        CafePrice

        CafePrice: number = 0

        CafeVibeIncreased

        CafeVibeIncreased: boolean = false

        constCanvasDrawHeight

        CanvasDrawHeight: number = ...

        The draw height of the character canvas

        constCanvasDrawWidth

        CanvasDrawWidth: 500 = 500

        The draw width of the character canvas

        constCanvasLowerOverflow

        CanvasLowerOverflow: 150 = 150

        constCanvasUpperOverflow

        CanvasUpperOverflow: 700 = 700

        CellBackground

        CellBackground: string = "Cell"

        CellKeyDepositStaff

        CellKeyDepositStaff: NPCCharacter = null

        CellMinutes

        CellMinutes: number = 5

        CellOpenTimer

        CellOpenTimer: number = 0

        Character

        Character: Character[] = []

        CharacterAppearanceAssets

        CharacterAppearanceAssets: Asset[] = []

        The list of all assets (owned or available)

        CharacterAppearanceBackup

        CharacterAppearanceBackup: string = null

        CharacterAppearanceCloth

        CharacterAppearanceCloth: Item = null

        CharacterAppearanceColorPickerBackup

        CharacterAppearanceColorPickerBackup: string = ""

        CharacterAppearanceColorPickerGroupName

        CharacterAppearanceColorPickerGroupName: AssetGroupName = null

        CharacterAppearanceColorPickerRefreshTimer

        CharacterAppearanceColorPickerRefreshTimer: any = null

        CharacterAppearanceForceUpCharacter

        CharacterAppearanceForceUpCharacter: number = -1

        CharacterAppearanceGroups

        CharacterAppearanceGroups: AssetGroup[] = []

        The list of all customizable groups

        CharacterAppearanceHeaderText

        CharacterAppearanceHeaderText: string = ""

        CharacterAppearanceHeaderTextTime

        CharacterAppearanceHeaderTextTime: number = 0

        CharacterAppearanceInProgressBackup

        CharacterAppearanceInProgressBackup: string = null

        CharacterAppearanceMenuMode

        CharacterAppearanceMenuMode: | Cloth | Wardrobe | Color = ""

        CharacterAppearanceMode

        CharacterAppearanceMode: | Cloth | Wardrobe | Color = ""

        CharacterAppearanceNumClothPerPage

        CharacterAppearanceNumClothPerPage: number = 9

        Number of entries per cloth page

        CharacterAppearanceNumGroupPerPage

        CharacterAppearanceNumGroupPerPage: number = 9

        Number of entries per group page

        CharacterAppearanceOffset

        CharacterAppearanceOffset: number = 0

        Offset for the group view

        CharacterAppearancePreviousEmoticon

        CharacterAppearancePreviousEmoticon: | Whisper | Afk | Sleep | Hearts | Tear | Hearing | Confusion | Exclamation | Annoyed | Read | RaisedHand | Spectator | ThumbsDown | ThumbsUp | LoveRope | LoveGag | LoveLock | Wardrobe | Gaming | Coffee | Fork | Music | Car | Hanger | Call | Lightbulb | Warning | BrokenHeart | Drawing | Coding | TV | Bathing = ""

        CharacterAppearanceReturnModule

        CharacterAppearanceReturnModule: ModuleType = "Room"

        CharacterAppearanceReturnRoom

        CharacterAppearanceReturnRoom: string = "MainHall"

        CharacterAppearanceSelection

        CharacterAppearanceSelection: Character = null

        CharacterAppearanceWardrobeName

        CharacterAppearanceWardrobeName: string = ""

        CharacterAppearanceWardrobeNumPerPage

        CharacterAppearanceWardrobeNumPerPage: number = 6

        Number of entries per wardrobe page

        CharacterAppearanceWardrobeOffset

        CharacterAppearanceWardrobeOffset: number = 0

        CharacterAppearanceWardrobeText

        CharacterAppearanceWardrobeText: string = ""

        constCharacterBlindLevels

        CharacterBlindLevels: Map<BlindEffectName, number> = ...

        constCharacterBlurLevels

        CharacterBlurLevels: Map<BlurEffectName, number> = ...

        constCharacterDeafLevels

        CharacterDeafLevels: Map<DeafEffectName, number> = ...

        constCharacterDoItemsSetPose

        CharacterDoItemsSetPose: never
        @deprecated

        superseded by PoseSetByItems

        CharacterGetCurrentHandlers

        CharacterGetCurrentHandlers: Record<string, () => Character> = ...

        A record mapping screen names to functions for returning CharacterGetCurrent characters.

        constCharacterItemsHavePose

        CharacterItemsHavePose: never
        @deprecated

        superseded by PoseSetByItems

        constCharacterItemsHavePoseAvailable

        CharacterItemsHavePoseAvailable: never
        @deprecated

        superseded by PoseAvailable

        constCharacterItemsHavePoseType

        CharacterItemsHavePoseType: never
        @deprecated

        superseded by PoseCategoryAvailable

        constCharacterLoadPose

        CharacterLoadPose: never
        @deprecated

        superseded by PoseRefresh

        CharacterName

        CharacterName: string[] = ...

        CharacterNextId

        CharacterNextId: number = 1

        CharacterType

        CharacterType: Record<NPC | ONLINE | SIMPLE, CharacterType> = ...

        An enum representing the various character archetypes ONLINE: The player, or a character representing another online player NPC: Any NPC SIMPLE: Any simple character, generally used internally and not to represent an actual in-game character

        ChatAdminBackground

        ChatAdminBackground: string = "Sheet"

        ChatAdminBackgroundIndex

        ChatAdminBackgroundIndex: number = 0

        ChatAdminBackgroundSelect

        ChatAdminBackgroundSelect: string = ""

        ChatAdminBackgroundSelected

        ChatAdminBackgroundSelected: string = null

        ChatAdminBlockCategory

        ChatAdminBlockCategory: ServerChatRoomBlockCategory[] = []

        ChatAdminCustom

        ChatAdminCustom: any = null

        ChatAdminGame

        ChatAdminGame: ServerChatRoomGame = ""

        ChatAdminGameList

        ChatAdminGameList: ServerChatRoomGame[] = ...

        ChatAdminInitialLoad

        ChatAdminInitialLoad: boolean = false

        ChatAdminLanguage

        ChatAdminLanguage: ServerChatRoomLanguage = "EN"

        ChatAdminLocked

        ChatAdminLocked: boolean = false

        ChatAdminMapData

        ChatAdminMapData: any = ...

        ChatAdminMessage

        ChatAdminMessage: string = ""

        ChatAdminPrivate

        ChatAdminPrivate: boolean = false

        ChatAdminRoomCustomizationBackground

        ChatAdminRoomCustomizationBackground: string = "Sheet"

        ChatAdminRoomCustomizationCurrent

        ChatAdminRoomCustomizationCurrent: ServerChatRoomCustomData = null

        ChatAdminRoomCustomizationMode

        ChatAdminRoomCustomizationMode: any = null

        ChatAdminRoomCustomizationMusic

        ChatAdminRoomCustomizationMusic: any = null

        ChatAdminRoomCustomizationMusicLibrary

        ChatAdminRoomCustomizationMusicLibrary: { Name: string; Source: string; URL: string }[] = ...

        ChatAdminRoomCustomizationSizeMode

        ChatAdminRoomCustomizationSizeMode: any = null

        ChatAdminTemporaryData

        ChatAdminTemporaryData: Partial<ServerChatRoomData> = null

        ChatBlockItemBackground

        ChatBlockItemBackground: string = "Sheet"

        ChatBlockItemCategory

        ChatBlockItemCategory: ServerChatRoomBlockCategory[] = []

        ChatBlockItemEditable

        ChatBlockItemEditable: boolean = true

        ChatBlockItemList

        ChatBlockItemList: ServerChatRoomBlockCategory[] = ...

        ChatBlockItemReturnData

        ChatBlockItemReturnData: { Screen?: string } = {}

        Type declaration

        • optionalScreen?: string

        ChatCreateBackground

        ChatCreateBackground: string = "Sheet"

        ChatCreateBackgroundIndex

        ChatCreateBackgroundIndex: number = 0

        ChatCreateBackgroundList

        ChatCreateBackgroundList: string[] = null

        ChatCreateBackgroundSelect

        ChatCreateBackgroundSelect: string = ""

        ChatCreateGame

        ChatCreateGame: ServerChatRoomGame = ""

        ChatCreateGameList

        ChatCreateGameList: ServerChatRoomGame[] = ...

        ChatCreateIsHidden

        ChatCreateIsHidden: boolean = false

        ChatCreateLanguage

        ChatCreateLanguage: ServerChatRoomLanguage = "EN"

        ChatCreateLanguageList

        ChatCreateLanguageList: ServerChatRoomLanguage[] = ...

        ChatCreateLocked

        ChatCreateLocked: boolean = null

        ChatCreateMap

        ChatCreateMap: ChatRoomMapType = "Never"

        ChatCreateMessage

        ChatCreateMessage: string = ""

        ChatCreatePrivate

        ChatCreatePrivate: boolean = null

        ChatCreateResult

        ChatCreateResult: any[] = []

        ChatCreateShowBackgroundMode

        ChatCreateShowBackgroundMode: boolean = false

        ChatRoomActiveView

        ChatRoomActiveView: ChatRoomView = ...

        The active chat room view

        ChatRoomAllowCharacterUpdate

        ChatRoomAllowCharacterUpdate: boolean = true

        constChatRoomArousalMsg_Chance

        ChatRoomArousalMsg_Chance: { Gag: number; Kneel: number; StruggleAction: number; StruggleFail: number; Walk: number } = ...

        Type declaration

        • Gag: number
        • Kneel: number
        • StruggleAction: number
        • StruggleFail: number
        • Walk: number

        constChatRoomArousalMsg_ChanceGagMod

        ChatRoomArousalMsg_ChanceGagMod: { Gag: number; Kneel: number; StruggleAction: number; StruggleFail: number; Walk: number } = ...

        Type declaration

        • Gag: number
        • Kneel: number
        • StruggleAction: number
        • StruggleFail: number
        • Walk: number

        constChatRoomArousalMsg_ChanceInflationMod

        ChatRoomArousalMsg_ChanceInflationMod: { Gag: number; Kneel: number; StruggleAction: number; StruggleFail: number; Walk: number } = ...

        Type declaration

        • Gag: number
        • Kneel: number
        • StruggleAction: number
        • StruggleFail: number
        • Walk: number

        constChatRoomArousalMsg_ChanceScaling

        ChatRoomArousalMsg_ChanceScaling: { Gag: number; Kneel: number; StruggleAction: number; StruggleFail: number; Walk: number } = ...

        Type declaration

        • Gag: number
        • Kneel: number
        • StruggleAction: number
        • StruggleFail: number
        • Walk: number

        constChatRoomArousalMsg_ChanceVibeMod

        ChatRoomArousalMsg_ChanceVibeMod: { Gag: number; Kneel: number; StruggleAction: number; StruggleFail: number; Walk: number } = ...

        Type declaration

        • Gag: number
        • Kneel: number
        • StruggleAction: number
        • StruggleFail: number
        • Walk: number

        ChatRoomBackground

        ChatRoomBackground: string = ""

        ChatRoomCharacter

        ChatRoomCharacter: Character[] = []

        The list of chatroom characters. This is unpacked characters from the data recieved from the server in ChatRoomData.Character.

        ChatRoomCharacterDrawlist

        ChatRoomCharacterDrawlist: Character[] = []

        The chatroom characters that were drawn in the last frame. Used for limiting the "fov". Characters come from ChatRoomCharacter

        ChatRoomCharacterViewCharacterCount

        ChatRoomCharacterViewCharacterCount: number = 0

        ChatRoomCharacterViewCharacterCountTotal

        ChatRoomCharacterViewCharacterCountTotal: number = 0

        constChatRoomCharacterViewCharactersPerRow

        ChatRoomCharacterViewCharactersPerRow: 5 = 5

        constChatRoomCharacterViewHeight

        ChatRoomCharacterViewHeight: 1000 = MainCanvasHeight

        ChatRoomCharacterViewInitialize

        ChatRoomCharacterViewInitialize: boolean = true

        ChatRoomCharacterViewMoveTarget

        ChatRoomCharacterViewMoveTarget: number = null

        constChatRoomCharacterViewName

        ChatRoomCharacterViewName: string = "Character"

        The name of the chat room character view.

        ChatRoomCharacterViewOffset

        ChatRoomCharacterViewOffset: number = 0

        ChatRoomCharacterViewSlideWeight

        ChatRoomCharacterViewSlideWeight: number = 9

        constChatRoomCharacterViewWidth

        ChatRoomCharacterViewWidth: number = ...

        ChatRoomCharacterViewX_Lower

        ChatRoomCharacterViewX_Lower: number = 0

        ChatRoomCharacterViewX_Upper

        ChatRoomCharacterViewX_Upper: number = 0

        ChatRoomCharacterViewZoom

        ChatRoomCharacterViewZoom: number = 1

        ChatRoomChatHidden

        ChatRoomChatHidden: boolean = false

        ChatRoomChatInputRect

        ChatRoomChatInputRect: never = ...

        Default position of the chat input field

        @deprecated

        ChatRoomChatLengthLabelRect

        ChatRoomChatLengthLabelRect: never = ...

        Default position of the chat input length label

        @deprecated

        ChatRoomChatLog

        ChatRoomChatLog: ChatRoomChatLogEntry[] = []

        ChatRoomChatLogRect

        ChatRoomChatLogRect: never = ...

        Default position of the chat log field

        @deprecated

        ChatRoomCustomBackground

        ChatRoomCustomBackground: string = ""

        ChatRoomCustomFilter

        ChatRoomCustomFilter: string = ""

        ChatRoomCustomSizeMode

        ChatRoomCustomSizeMode: any = null

        ChatRoomCustomized

        ChatRoomCustomized: boolean = false

        ChatRoomData

        ChatRoomData: ServerChatRoomData = null

        The data for the current chatroom, as recieved from the server.

        ChatRoomDivRect

        ChatRoomDivRect: RectTuple = ...

        Default position of the entire chat panel

        ChatRoomFontSize

        ChatRoomFontSize: number = 30

        constChatRoomFontSizes

        ChatRoomFontSizes: { Large: number; Medium: number; Small: number } = ...

        Type declaration

        • Large: number
        • Medium: number
        • Small: number

        ChatRoomGame

        ChatRoomGame: ServerChatRoomGame = ""

        ChatRoomGetUpTimer

        ChatRoomGetUpTimer: number = 0

        ChatRoomHelpSeen

        ChatRoomHelpSeen: boolean = false

        ChatRoomHideIconState

        ChatRoomHideIconState: number = 0

        ChatRoomJoinLeash

        ChatRoomJoinLeash: string = ""

        The room name to join when being leashed

        ChatRoomLastMessage

        ChatRoomLastMessage: string[] = ...

        ChatRoomLastMessageIndex

        ChatRoomLastMessageIndex: number = 0

        ChatRoomLeashList

        ChatRoomLeashList: number[] = []

        The list of MemberNumbers whose characters we're holding the leash of

        ChatRoomLeashPlayer

        ChatRoomLeashPlayer: number = null

        The MemberNumber of the character holding our leash

        ChatRoomLovershipOption

        ChatRoomLovershipOption: ChatRoomLovershipOption = ""

        ChatRoomMapViewAudibilityMask

        ChatRoomMapViewAudibilityMask: boolean[] = []

        ChatRoomMapViewBaseMovementSpeed

        ChatRoomMapViewBaseMovementSpeed: number = 200

        ChatRoomMapViewEditBackup

        ChatRoomMapViewEditBackup: ServerChatRoomMapData[] = []

        ChatRoomMapViewEditMode

        ChatRoomMapViewEditMode: | Tile | Object | TileType | ObjectType = ""

        ChatRoomMapViewEditObject

        ChatRoomMapViewEditObject: ChatRoomMapDoodad = null

        ChatRoomMapViewEditRange

        ChatRoomMapViewEditRange: number = 1

        ChatRoomMapViewEditSelection

        ChatRoomMapViewEditSelection: number[] = []

        ChatRoomMapViewEditStarted

        ChatRoomMapViewEditStarted: boolean = false

        ChatRoomMapViewEditSubMode

        ChatRoomMapViewEditSubMode: | ChatRoomMapTileType | ChatRoomMapObjectType = ""

        ChatRoomMapViewFocusedCharacter

        ChatRoomMapViewFocusedCharacter: Character = null

        ChatRoomMapViewFocusedCharacterX

        ChatRoomMapViewFocusedCharacterX: number = 0

        ChatRoomMapViewFocusedCharacterY

        ChatRoomMapViewFocusedCharacterY: number = 0

        ChatRoomMapViewHeight

        ChatRoomMapViewHeight: number = 40

        constChatRoomMapViewInteractionRange

        ChatRoomMapViewInteractionRange: 1 = 1

        ChatRoomMapViewMovement

        ChatRoomMapViewMovement: ChatRoomMapMovement = null

        constChatRoomMapViewName

        ChatRoomMapViewName: Map = "Map"

        ChatRoomMapViewObjectEntryID

        ChatRoomMapViewObjectEntryID: number = 110

        ChatRoomMapViewObjectFog

        ChatRoomMapViewObjectFog: string = ""

        constChatRoomMapViewObjectList

        ChatRoomMapViewObjectList: ChatRoomMapObject[] = ...

        ChatRoomMapViewObjectStartID

        ChatRoomMapViewObjectStartID: number = 100

        ChatRoomMapViewPerceptionRange

        ChatRoomMapViewPerceptionRange: number = 4

        ChatRoomMapViewPerceptionRangeMax

        ChatRoomMapViewPerceptionRangeMax: number = 7

        ChatRoomMapViewPerceptionRangeMin

        ChatRoomMapViewPerceptionRangeMin: number = 1

        constChatRoomMapViewPerceptionRaycastOffset

        ChatRoomMapViewPerceptionRaycastOffset: 0.4999 = 0.4999

        constChatRoomMapViewRemoteRange

        ChatRoomMapViewRemoteRange: number = ChatRoomMapViewPerceptionRangeMax

        ChatRoomMapViewSuperPowersActive

        ChatRoomMapViewSuperPowersActive: boolean = false

        ChatRoomMapViewTileFog

        ChatRoomMapViewTileFog: string = ""

        constChatRoomMapViewTileList

        ChatRoomMapViewTileList: ChatRoomMapTile[] = ...

        ChatRoomMapViewTypeList

        ChatRoomMapViewTypeList: ChatRoomMapType[] = ...

        ChatRoomMapViewUpdateLastMapDataNext

        ChatRoomMapViewUpdateLastMapDataNext: number = null

        ChatRoomMapViewUpdatePlayerNext

        ChatRoomMapViewUpdatePlayerNext: number = null

        ChatRoomMapViewUpdatePlayerTime

        ChatRoomMapViewUpdatePlayerTime: number = 500

        ChatRoomMapViewUpdateRoomNext

        ChatRoomMapViewUpdateRoomNext: number = null

        ChatRoomMapViewVisibilityMask

        ChatRoomMapViewVisibilityMask: boolean[] = []

        constChatRoomMapViewWhisperRange

        ChatRoomMapViewWhisperRange: 1 = 1

        ChatRoomMapViewWidth

        ChatRoomMapViewWidth: number = 40

        ChatRoomMenuButtons

        ChatRoomMenuButtons: string[] = []

        The list of buttons in the top-right

        ChatRoomMessageExtractors

        ChatRoomMessageExtractors: ChatRoomMessageExtractor[] = ...

        ChatRoomMessageHandlers

        ChatRoomMessageHandlers: ChatRoomMessageHandler[] = ...

        Global list of handlers for incoming messages.

        ChatRoomMoneyForOwner

        ChatRoomMoneyForOwner: number = 0

        ChatRoomNewRoomToUpdate

        ChatRoomNewRoomToUpdate: ServerChatRoomSettings = null

        The complete data to update a recreated room with once the creation is successful

        ChatRoomNewRoomToUpdateTimer

        ChatRoomNewRoomToUpdateTimer: number = 0

        ChatRoomOwnershipOption

        ChatRoomOwnershipOption: ChatRoomOwnershipOption = ""

        ChatRoomPlayerCanJoin

        ChatRoomPlayerCanJoin: boolean = false
        @deprecated

        Check whether ChatRoomData is set or not instead

        ChatRoomQuestGiven

        ChatRoomQuestGiven: number[] = []

        ChatRoomResizeManager

        ChatRoomResizeManager: { ChatLogScrolledToEnd: boolean; ChatRoomResizeEvent: () => void; ChatRoomResizeEventsEnd: () => void; ChatRoomScrollPercentage: number; atStart: boolean; timeOut: number; timer: number } = ...

        Chat room resize manager object: Handles resize events for the chat log.

        @constant

        The chat room resize manager object. Contains the functions and properties required to handle resize events.


        Type declaration

        • ChatLogScrolledToEnd: boolean
        • ChatRoomResizeEvent: () => void
            • (): void
            • Returns void

        • ChatRoomResizeEventsEnd: () => void
            • (): void
            • Returns void

        • ChatRoomScrollPercentage: number
        • atStart: boolean
        • timeOut: number
        • timer: number

        ChatRoomSenseDepBypass

        ChatRoomSenseDepBypass: boolean = false

        constChatRoomSlowLeaveMinTime

        ChatRoomSlowLeaveMinTime: 5000 = 5000

        When slowed, we can't leave quicker than this

        ChatRoomSlowStop

        ChatRoomSlowStop: boolean = false

        Whether someone attempted to stop the player in the middle of a slow-leave

        ChatRoomSlowtimer

        ChatRoomSlowtimer: number = 0

        The timer started when a slowed player attempts to leave

        ChatRoomSpace

        ChatRoomSpace: ServerChatRoomSpace = ChatRoomSpaceType.MIXED

        constChatRoomSpaceType

        ChatRoomSpaceType: { ASYLUM: Asylum; FEMALE_ONLY: ; MALE_ONLY: M; MIXED: X } = ...

        An enum for the options for chat room spaces


        Type declaration

        • readonlyASYLUM: Asylum
        • readonlyFEMALE_ONLY:
        • readonlyMALE_ONLY: M
        • readonlyMIXED: X

        ChatRoomStatusDeadKeys

        ChatRoomStatusDeadKeys: string[] = ...

        constChatRoomStimulationEvents

        ChatRoomStimulationEvents: Record<StimulationAction, StimulationEvent> = ...

        Chances of a chat message popping up reminding you of some stimulation.

        ChatRoomStruggleAssistBonus

        ChatRoomStruggleAssistBonus: number = 0

        ChatRoomStruggleAssistTimer

        ChatRoomStruggleAssistTimer: number = 0

        ChatRoomStruggleData

        ChatRoomStruggleData: any = null

        ChatRoomTargetMemberNumber

        ChatRoomTargetMemberNumber: number = -1

        ChatRoomViews

        ChatRoomViews: Record<string, ChatRoomView> = ...

        The list of chat room views

        ChatSearchBackground

        ChatSearchBackground: string = "Introduction"

        ChatSearchCurrentRoomSpaceIndex

        ChatSearchCurrentRoomSpaceIndex: number = 0

        ChatSearchFilterHelpActive

        ChatSearchFilterHelpActive: boolean = false

        ChatSearchFilterTermsTemp

        ChatSearchFilterTermsTemp: string = ""

        ChatSearchFilterUnhideConfirm

        ChatSearchFilterUnhideConfirm: { Index: number; MemberLabel: string; RoomLabel: string; WordsLabel: string } = null

        Type declaration

        • Index: number
        • MemberLabel: string
        • RoomLabel: string
        • WordsLabel: string

        ChatSearchGhostPlayerOnClickActive

        ChatSearchGhostPlayerOnClickActive: boolean = false

        ChatSearchHiddenResult

        ChatSearchHiddenResult: (ServerChatRoomSearchData & { DisplayName: string; Order: number })[] = []

        ChatSearchLanguage

        ChatSearchLanguage: | ServerChatRoomLanguage = ""

        ChatSearchLanguageTemp

        ChatSearchLanguageTemp: | ServerChatRoomLanguage = ""

        ChatSearchLastQueryJoin

        ChatSearchLastQueryJoin: string = ""

        ChatSearchLastQueryJoinTime

        ChatSearchLastQueryJoinTime: number = 0

        ChatSearchLastQuerySearchTime

        ChatSearchLastQuerySearchTime: number = 0

        ChatSearchLastSearchDataJSON

        ChatSearchLastSearchDataJSON: { FullRooms: boolean; Game: ServerChatRoomGame; Language: | ServerChatRoomLanguage; Query: string; Space: ServerChatRoomSpace } = null

        Type declaration

        ChatSearchLeaveRoom

        ChatSearchLeaveRoom: string = "MainHall"

        ChatSearchLeaveSpace

        ChatSearchLeaveSpace: ModuleType = "Room"

        ChatSearchMessage

        ChatSearchMessage: string = ""

        ChatSearchMode

        ChatSearchMode: | Filter = ""

        ChatSearchPageX

        ChatSearchPageX: number = 25

        ChatSearchPageY

        ChatSearchPageY: number = 135

        ChatSearchPreviousActivePose

        ChatSearchPreviousActivePose: Partial<Record<keyof AssetPoseMap, AssetPoseName>> = null

        ChatSearchRejoinIncrement

        ChatSearchRejoinIncrement: number = 1

        ChatSearchResult

        ChatSearchResult: (ServerChatRoomSearchData & { DisplayName: string; Order: number })[] = []

        ChatSearchResultOffset

        ChatSearchResultOffset: number = 0

        ChatSearchReturnToScreen

        ChatSearchReturnToScreen: string = null

        ChatSearchRoomSpaces

        ChatSearchRoomSpaces: string[] = ...

        ChatSearchRoomsPerPage

        ChatSearchRoomsPerPage: number = 21

        ChatSearchSafewordAppearance

        ChatSearchSafewordAppearance: Item[] = null

        ChatSearchSafewordPose

        ChatSearchSafewordPose: Partial<Record<keyof AssetPoseMap, AssetPoseName>> = null

        ChatSearchShowHiddenRoomsActive

        ChatSearchShowHiddenRoomsActive: boolean = false

        ChatSearchTempHiddenRooms

        ChatSearchTempHiddenRooms: number[] = []

        ChatSelectAllowedInFemaleOnly

        ChatSelectAllowedInFemaleOnly: boolean

        ChatSelectAllowedInMaleOnly

        ChatSelectAllowedInMaleOnly: boolean

        ChatSelectBackground

        ChatSelectBackground: string = "BrickWall"

        CheatActivated

        CheatActivated: string[] = []

        CheatAllow

        CheatAllow: boolean = false

        CheatBackground

        CheatBackground: string = "Sheet"

        CheatBonusFactor

        CheatBonusFactor: number = 2

        CheatBonusList

        CheatBonusList: string[] = ...

        CheatBonusTime

        CheatBonusTime: number = 1552967946711

        CheatBrowserName

        CheatBrowserName: string = ""

        CheatBrowserTime

        CheatBrowserTime: number = 0

        CheatBrowserVersion

        CheatBrowserVersion: string = ""

        CheatList

        CheatList: string[] = ...

        ChessBackground

        ChessBackground: string = "CollegeClass"

        ChessCharacterBlack

        ChessCharacterBlack: Character = null

        ChessCharacterWhite

        ChessCharacterWhite: Character = null

        ChessEndStatus

        ChessEndStatus: string = ""

        ChessMajorPieceBlack

        ChessMajorPieceBlack: number = 8

        ChessMajorPieceWhite

        ChessMajorPieceWhite: number = 8

        ChessMinorPieceBlack

        ChessMinorPieceBlack: number = 8

        ChessMinorPieceWhite

        ChessMinorPieceWhite: number = 8

        ChestLockpickAngle

        ChestLockpickAngle: number = 0

        ChestLockpickBackground

        ChestLockpickBackground: string = null

        ChestLockpickChestImage

        ChestLockpickChestImage: string = ""

        ChestLockpickCount

        ChestLockpickCount: number = 8

        ChestLockpickHoleAngle

        ChestLockpickHoleAngle: number = Math.PI

        ChestLockpickSpeed

        ChestLockpickSpeed: number = 500

        ClubCardBackground

        ClubCardBackground: string = "ClubCardPlayBoard1"

        ClubCardBuilderABDLDeck

        ClubCardBuilderABDLDeck: number[] = ...

        ClubCardBuilderAsylumDeck

        ClubCardBuilderAsylumDeck: number[] = ...

        ClubCardBuilderBackground

        ClubCardBuilderBackground: string = "ClubCardPlayBoard1"

        ClubCardBuilderCollegeDeck

        ClubCardBuilderCollegeDeck: number[] = ...

        ClubCardBuilderDeckCurrent

        ClubCardBuilderDeckCurrent: any[] = []

        ClubCardBuilderDeckIndex

        ClubCardBuilderDeckIndex: number = -1

        ClubCardBuilderDeckSize

        ClubCardBuilderDeckSize: number = 30

        ClubCardBuilderDefaultDeck

        ClubCardBuilderDefaultDeck: number[] = ...

        ClubCardBuilderDominantDeck

        ClubCardBuilderDominantDeck: number[] = ...

        ClubCardBuilderFilterGroup

        ClubCardBuilderFilterGroup: string[] = ...

        ClubCardBuilderFilterIndex

        ClubCardBuilderFilterIndex: number = 0

        ClubCardBuilderFocus

        ClubCardBuilderFocus: any = null

        ClubCardBuilderLiabilityDeck

        ClubCardBuilderLiabilityDeck: number[] = ...

        ClubCardBuilderList

        ClubCardBuilderList: any[] = []

        ClubCardBuilderMaidDeck

        ClubCardBuilderMaidDeck: number[] = ...

        ClubCardBuilderOffset

        ClubCardBuilderOffset: number = 0

        ClubCardBuilderPornDeck

        ClubCardBuilderPornDeck: number[] = ...

        ClubCardBuilderRenameIndex

        ClubCardBuilderRenameIndex: number = -1

        ClubCardColor

        ClubCardColor: string[] = ...

        ClubCardFameGoal

        ClubCardFameGoal: number = 100

        ClubCardFameTextColor

        ClubCardFameTextColor: string = "#5A73FF"

        ClubCardFocus

        ClubCardFocus: any = null

        ClubCardHover

        ClubCardHover: any = null

        ClubCardIsStartTurn

        ClubCardIsStartTurn: boolean = false

        ClubCardLevelCost

        ClubCardLevelCost: number[] = ...

        ClubCardLevelLimit

        ClubCardLevelLimit: number[] = ...

        ClubCardList

        ClubCardList: ClubCard[] = ...

        The card definitions

        The BeforeTurnEnd hooks are run before regular fame and money are calculated and are a good place to remove cards so they don't add fame/money that turn. Most cards should prefer this hook instead of AfterTurnEnd (including ones that just add extra money / fame).

        The AfterTurnEnd hooks run after this, and can be used to adjust the total amount of money / fame gained that turn.

        ClubCardLog

        ClubCardLog: ClubCardMessage[] = []

        ClubCardLogScroll

        ClubCardLogScroll: boolean = false

        ClubCardLoungeBackground

        ClubCardLoungeBackground: string = "ClubCardLounge"

        ClubCardLoungeTutor

        ClubCardLoungeTutor: NPCCharacter = null

        ClubCardMessageStorage

        ClubCardMessageStorage: ClubCardMessage[] = []

        constClubCardMessageType

        ClubCardMessageType: Readonly<{ ACTION: Actions; ACTIONSEPARATOR: ActionSeparator; CARDEFFECT: CardsEffect; FAMEMONEYINFO: FameMoneyInfo; KNOTEVENT: KnotEvent; PLAYERSMESSAGE: PlayersMessage; PREREQUISTITE: Prerequisite; STARTTURNEVENT: StartTurnEvent; STARTTURNINFO: StartTurnInfo; SYSTEM: SystemMessage; TURNENDEFFECT: TurnEndEffect; VICTORYINFO: VictoryInfo }> = ...

        ClubCardMoneyTextColor

        ClubCardMoneyTextColor: string = "#228B22"

        ClubCardOnlinePlayerMemberNumber1

        ClubCardOnlinePlayerMemberNumber1: number = -1

        ClubCardOnlinePlayerMemberNumber2

        ClubCardOnlinePlayerMemberNumber2: number = -1

        ClubCardOpponent

        ClubCardOpponent: any = null

        ClubCardOpponentDeck

        ClubCardOpponentDeck: any[] = []

        ClubCardPending

        ClubCardPending: any = null

        ClubCardPlayer

        ClubCardPlayer: ClubCardPlayer[] = []

        ClubCardPopup

        ClubCardPopup: any = null

        ClubCardRenderLog

        ClubCardRenderLog: ClubCardMessage[] = []

        ClubCardReward

        ClubCardReward: any = null

        ClubCardSelection

        ClubCardSelection: ClubCard = null

        constClubCardStartTurnType

        ClubCardStartTurnType: Readonly<{ BANKRUPT: Bankrupt; DRAWENDTURN: DrawAndEndTurn; ENDTURN: EndTurn; PLAYCARD: PlayCard; UPGRADELEVEL: UpgradeLevel }> = ...

        ClubCardTextCache

        ClubCardTextCache: any = null

        ClubCardTurnCardPlayed

        ClubCardTurnCardPlayed: number = 0

        ClubCardTurnEndDraw

        ClubCardTurnEndDraw: boolean = false

        ClubCardTurnIndex

        ClubCardTurnIndex: number = 0

        CollegeCafeteriaBackground

        CollegeCafeteriaBackground: string = "CollegeCafeteria"

        CollegeCafeteriaSidney

        CollegeCafeteriaSidney: NPCCharacter = null

        CollegeCafeteriaSidneyLove

        CollegeCafeteriaSidneyLove: number = 0

        CollegeCafeteriaSidneyStatus

        CollegeCafeteriaSidneyStatus: string = ""

        CollegeCafeteriaStudentFarRight

        CollegeCafeteriaStudentFarRight: NPCCharacter = null

        CollegeCafeteriaStudentRight

        CollegeCafeteriaStudentRight: NPCCharacter = null

        CollegeChessBackground

        CollegeChessBackground: string = "CollegeClass"

        CollegeChessBet

        CollegeChessBet: string = ""

        CollegeChessDifficulty

        CollegeChessDifficulty: number = 0

        CollegeChessOpponent

        CollegeChessOpponent: NPCCharacter = null

        CollegeChessOpponentAppearance

        CollegeChessOpponentAppearance: Item[] = null

        CollegeChessPlayerAppearance

        CollegeChessPlayerAppearance: Item[] = null

        CollegeDetentionBackground

        CollegeDetentionBackground: string = "CollegeDetention"

        CollegeDetentionYuki

        CollegeDetentionYuki: NPCCharacter = null

        CollegeDetentionYukiLove

        CollegeDetentionYukiLove: number = 0

        CollegeDetentionYukiWillReleaseAt

        CollegeDetentionYukiWillReleaseAt: number = 0

        CollegeEntranceBackground

        CollegeEntranceBackground: string = "CollegeEntrance"

        CollegeEntranceStudent

        CollegeEntranceStudent: NPCCharacter = null

        CollegeTeacherBackground

        CollegeTeacherBackground: string = "CollegeTeacherLounge"

        CollegeTeacherMildred

        CollegeTeacherMildred: NPCCharacter = null

        CollegeTeacherMildredLove

        CollegeTeacherMildredLove: number = 0

        CollegeTennisBackground

        CollegeTennisBackground: string = "CollegeTennis"

        CollegeTennisJennifer

        CollegeTennisJennifer: NPCCharacter = null

        CollegeTennisJenniferStatus

        CollegeTennisJenniferStatus: string = ""

        CollegeTennisJenniferWillJoinRoom

        CollegeTennisJenniferWillJoinRoom: boolean = false

        CollegeTheaterBackground

        CollegeTheaterBackground: string = "CollegeTheater"

        CollegeTheaterJulia

        CollegeTheaterJulia: NPCCharacter = null

        CollegeTheaterJuliaLove

        CollegeTheaterJuliaLove: number = 0

        CollegeTheaterRandomColors

        CollegeTheaterRandomColors: string[] = ...

        ColorCanvas

        ColorCanvas: CanvasRenderingContext2D

        Temporary CPU-based canvas (for colorization)

        ColorPickerCSS

        ColorPickerCSS: string

        ColorPickerFavoritesPage

        ColorPickerFavoritesPage: number = 0

        ColorPickerFavoritesPaletteGap

        ColorPickerFavoritesPaletteGap: number = 20

        ColorPickerFavoritesPaletteHeight

        ColorPickerFavoritesPaletteHeight: number = 100

        ColorPickerHSV

        ColorPickerHSV: HSVColor

        ColorPickerHeight

        ColorPickerHeight: number

        ColorPickerHueBarHeight

        ColorPickerHueBarHeight: number = 40

        ColorPickerInitialHSV

        ColorPickerInitialHSV: HSVColor

        ColorPickerIsDefault

        ColorPickerIsDefault: boolean

        ColorPickerLastHSV

        ColorPickerLastHSV: HSVColor

        ColorPickerLayout

        ColorPickerLayout: { ButtonOffset: number; FavoritesPaletteHeight: number; FavoritesPaletteOffset: number; HueBarHeight: number; HueBarOffset: number; NextButtonX: number; PaletteHeight: number; PaletteOffset: number; PrevButtonX: number; SVPanelHeight: number; SVPanelOffset: number; SaveButtonX: number } = ...

        Type declaration

        • ButtonOffset: number
        • FavoritesPaletteHeight: number
        • FavoritesPaletteOffset: number
        • HueBarHeight: number
        • HueBarOffset: number
        • NextButtonX: number
        • PaletteHeight: number
        • PaletteOffset: number
        • PrevButtonX: number
        • SVPanelHeight: number
        • SVPanelOffset: number
        • SaveButtonX: number

        constColorPickerNumSaved

        ColorPickerNumSaved: 18 = 18

        ColorPickerPaletteGap

        ColorPickerPaletteGap: number = 20

        ColorPickerPaletteHeight

        ColorPickerPaletteHeight: number = 100

        ColorPickerSVPanelGap

        ColorPickerSVPanelGap: number = 20

        ColorPickerSelectedFavoriteIndex

        ColorPickerSelectedFavoriteIndex: number = null

        ColorPickerSourceElement

        ColorPickerSourceElement: HTMLInputElement

        ColorPickerWidth

        ColorPickerWidth: number

        ColorPickerX

        ColorPickerX: number

        ColorPickerY

        ColorPickerY: number

        CombinationPadlockBlindCombinationOffset

        CombinationPadlockBlindCombinationOffset: any = null

        CombinationPadlockCombinationLastValue

        CombinationPadlockCombinationLastValue: string = ""

        CombinationPadlockLoaded

        CombinationPadlockLoaded: boolean = false

        CombinationPadlockNewCombinationLastValue

        CombinationPadlockNewCombinationLastValue: string = ""

        CombinationPadlockPlayerIsBlind

        CombinationPadlockPlayerIsBlind: boolean = false

        CommandText

        CommandText: TextCache = null

        Commands

        Commands: ICommand[] = []

        readonlyCommandsKey

        CommandsKey: / = "/"

        CommonCSVCache

        CommonCSVCache: Record<string, string[][]> = {}

        constCommonChatTags

        CommonChatTags: Record<SOURCE_CHAR | DEST_CHAR | DEST_CHAR_NAME | TARGET_CHAR | TARGET_CHAR_NAME | ASSET_NAME | AUTOMATIC, CommonChatTags> = ...

        An enum encapsulating possible chatroom message substitution tags. Character name substitution tags are interpreted in chatrooms as follows (assuming the character name is Ben987): SOURCE_CHAR: "Ben987" DEST_CHAR: "Ben987's" (if character is not self), "her" (if character is self) DEST_CHAR_NAME: "Ben987's" TARGET_CHAR: "Ben987" (if character is not self), "herself" (if character is self) TARGET_CHAR_NAME: "Ben987" Additionally, sending the following tags will ensure that asset names in messages are correctly translated by recipients: ASSET_NAME: (substituted with the localized name of the asset, if available)

        constCommonCommands

        CommonCommands: ICommand[] = ...

        constCommonFontStacks

        CommonFontStacks: any = ...

        A map of keys to common font stack definitions. Each stack definition is a two-item array whose first item is an ordered list of fonts, and whose second item is the generic fallback font family (e.g. sans-serif, serif, etc.)

        @constant

        CommonIsMobile

        CommonIsMobile: boolean = false

        CommonPhotoMode

        CommonPhotoMode: boolean = false

        CommonTouchList

        CommonTouchList: TouchList = null

        CommonVersionUpdated

        CommonVersionUpdated: boolean = false

        ControllerActiveAreas

        ControllerActiveAreas: [X: number, Y: number][] = []

        A list of points that can be interacted in the UI.

        ControllerAxesWaitRelease

        ControllerAxesWaitRelease: boolean = false

        Whether we're waiting for gamepad axes to reset

        constControllerAxis

        ControllerAxis: { StickLH: 1; StickLV: 0; StickRH: 3; StickRV: 2 } = ...

        Gamepad-agnostic constants for the axes


        Type declaration

        • readonlyStickLH: 1
        • readonlyStickLV: 0
        • readonlyStickRH: 3
        • readonlyStickRV: 2

        constControllerAxisMapping

        ControllerAxisMapping: { 0: number; 1: number; 2: number; 3: number } = ...

        Default axis name to gamepad axis index mapping

        The player's calibrated config will be read from their preferences.


        Type declaration

        • 0: number
        • 1: number
        • 2: number
        • 3: number

        constControllerButton

        ControllerButton: { A: 0; B: 1; BumperL: 4; BumperR: 5; DPadD: 13; DPadL: 14; DPadR: 15; DPadU: 12; Home: 16; Select: 8; Start: 9; StickL: 10; StickR: 11; TriggerL: 6; TriggerR: 7; X: 2; Y: 3 } = ...

        Gamepad-agnostic constants for the buttons

        Those values come from the order https://hardwaretester.com/gamepad shows them in


        Type declaration

        • readonlyA: 0
        • readonlyB: 1
        • readonlyBumperL: 4
        • readonlyBumperR: 5
        • readonlyDPadD: 13
        • readonlyDPadL: 14
        • readonlyDPadR: 15
        • readonlyDPadU: 12
        • readonlyHome: 16

          Home triggers Chrome's screen sharing feature on macOS

        • readonlySelect: 8

          Select triggers Launchpad on macOS

        • readonlyStart: 9
        • readonlyStickL: 10
        • readonlyStickR: 11
        • readonlyTriggerL: 6
        • readonlyTriggerR: 7
        • readonlyX: 2
        • readonlyY: 3

        constControllerButtonMapping

        ControllerButtonMapping: { 0: number; 1: number; 10: number; 11: number; 12: number; 13: number; 14: number; 15: number; 16: number; 2: number; 3: number; 4: number; 5: number; 6: number; 7: number; 8: number; 9: number } = ...

        Default button name to gamepad button index mapping

        The player's calibrated config will be read from their preferences.


        Type declaration

        • 0: number
        • 1: number
        • 10: number
        • 11: number
        • 12: number
        • 13: number
        • 14: number
        • 15: number
        • 16: number
        • 2: number
        • 3: number
        • 4: number
        • 5: number
        • 6: number
        • 7: number
        • 8: number
        • 9: number

        ControllerButtonsWaitRelease

        ControllerButtonsWaitRelease: boolean = false

        Whether we're waiting for gamepad buttons to be released

        constControllerCalibrationAxisOffset

        ControllerCalibrationAxisOffset: 100 = 100

        constControllerCalibrationHighWatermark

        ControllerCalibrationHighWatermark: 0.8 = 0.8

        constControllerCalibrationLowWatermark

        ControllerCalibrationLowWatermark: 0.05 = 0.05

        ControllerCalibrationStage

        ControllerCalibrationStage: number = -1

        At which stage of the calibration we are

        -1 means we're not calibrating

        ControllerDPadAsAxisWorkaround

        ControllerDPadAsAxisWorkaround: boolean = false

        Whether the current gamepad actually has real D-Pad buttons

        ControllerDeadZone

        ControllerDeadZone: number = 0.01

        Minimum range an axis should move before we detect it

        Stored in player's preferences.

        ControllerDetectedCount

        ControllerDetectedCount: number = 0

        Number of detected controllers

        ControllerIgnoredAxes

        ControllerIgnoredAxes: number[] = []

        List of axes we ignore

        ControllerLastButtonState

        ControllerLastButtonState: boolean[][] = []

        The previous state the buttons were in, for each gamepad

        Used to handle repeats

        constControllerMissingAxisWarning

        ControllerMissingAxisWarning: Set<any> = ...

        constControllerMissingButtonWarning

        ControllerMissingButtonWarning: Set<any> = ...

        ControllerSensitivity

        ControllerSensitivity: number = 5

        Multiplier for any axis value we apply

        Stored in player's preferences.

        CraftingAssets

        CraftingAssets: Record<string, Asset[]> = {}

        A record mapping all crafting-valid asset names to a list of matching elligble assets.

        Elligble assets are defined as crafting-valid assets with either a matching Asset.Name or Asset.CraftGroup.

        The first asset in each list is guaranteed to satisfy Asset.Group.Name === Asset.DynamicGroupName if any of the list members satisfy this condition.

        CraftingBackground

        CraftingBackground: string = "CraftingWorkshop"

        The background of the crafting screen.

        CraftingDescription

        CraftingDescription: { Decode: (description: string) => string; Encode: (description: string) => string; ExtendedDescriptionMarker: ; Pattern: RegExp; PatternASCII: RegExp } = ...

        Type declaration

        • Decode: (description: string) => string

          Decode and return the passed string if it consists of UTF16-encoded UTF8 characters.

          Encoded strings must be marked with a leading CraftingDescription.ExtendedDescriptionMarker; unencoded strings are returned unmodified.

          @returns
          • The decoded string
            • (description: string): string
            • Parameters

              • description: string

                The to-be decoded string

              Returns string

        • Encode: (description: string) => string

          Encode the passed crafted item description, extracting all UTF8 characters and encoding up to two of them into a single UTF16 character.

          The first character is marked with CraftingDescription.ExtendedDescriptionMarker

          @returns
          • The length <=200 string of UTF16-encoded UTF8 characters
            • (description: string): string
            • Parameters

              • description: string

                The initial length <=398 string of UTF8 characters

              Returns string

        • readonlyExtendedDescriptionMarker:

          Leading character for marking encoded extended crafted item descriptions.

        • readonlyPattern: RegExp

          Regex for representing legal UTF16 characters. Note the exclusion of control characters, § (\xA7) and ¶ (\xB6).

        • readonlyPatternASCII: RegExp

          Regex for representing legal extended ASCII characters. Note the exclusion of control characters, § (\xA7) and ¶ (\xB6).

        CraftingDestroy

        CraftingDestroy: boolean = false

        Whether selecting a crafted item in the crafting screen should destroy it.

        CraftingElements

        CraftingElements: {} = ...

        Type declaration

          CraftingEventListeners

          CraftingEventListeners: {} = ...

          Type declaration

            constCraftingID

            CraftingID: { acceptButton: crafting-accept-button; asciiDescriptionCheckbox: crafting-ascii-description-checkbox; asciidescriptionLabel: crafting-ascii-description-label; assetButton: crafting-asset-button; assetGrid: crafting-asset-grid; assetHeader: crafting-asset-header; assetPanel: crafting-asset-panel; assetSearch: crafting-asset-search; cancelButton: crafting-cancel-button; centerPanel: crafting-center-panel; colorsButton: crafting-colors-button; colorsInput: crafting-colors-input; colorsLabel: crafting-colors-label; descriptionInput: crafting-description-input; descriptionLabel: crafting-description-label; downloadButton: crafting-download-button; exitButton: crafting-exit-button; extendedButton: crafting-extended-button; extendedLabel: crafting-extended-label; header: crafting-header; layeringButton: crafting-layering-button; layeringInput: crafting-layering-input; layeringLabel: crafting-layering-label; leftPanel: crafting-left-panel; menuBar: crafting-menu-bar; nameInput: crafting-name-input; nameLabel: crafting-name-label; padlockButton: crafting-padlock-button; padlockGrid: crafting-padlock-grid; padlockHeader: crafting-padlock-header; padlockPanel: crafting-padlock-panel; padlockSearch: crafting-padlock-search; privateCheckbox: crafting-private-checkbox; privateLabel: crafting-private-label; propertyButton: crafting-property-button; propertyGrid: crafting-property-grid; propertyHeader: crafting-property-header; propertyPanel: crafting-property-panel; propertySearch: crafting-property-search; rightPanel: crafting-right-panel; root: crafting-screen; tightenButton: crafting-tighten-button; tightenLabel: crafting-tighten-label; topBar: crafting-top-bar; undressButton: crafting-undress-button; uploadButton: crafting-upload-button } = ...

            Type declaration

            • readonlyacceptButton: crafting-accept-button
            • readonlyasciiDescriptionCheckbox: crafting-ascii-description-checkbox
            • readonlyasciidescriptionLabel: crafting-ascii-description-label
            • readonlyassetButton: crafting-asset-button
            • readonlyassetGrid: crafting-asset-grid
            • readonlyassetHeader: crafting-asset-header
            • readonlyassetPanel: crafting-asset-panel
            • readonlyassetSearch: crafting-asset-search
            • readonlycancelButton: crafting-cancel-button
            • readonlycenterPanel: crafting-center-panel
            • readonlycolorsButton: crafting-colors-button
            • readonlycolorsInput: crafting-colors-input
            • readonlycolorsLabel: crafting-colors-label
            • readonlydescriptionInput: crafting-description-input
            • readonlydescriptionLabel: crafting-description-label
            • readonlydownloadButton: crafting-download-button
            • readonlyexitButton: crafting-exit-button
            • readonlyextendedButton: crafting-extended-button
            • readonlyextendedLabel: crafting-extended-label
            • readonlyheader: crafting-header
            • readonlylayeringButton: crafting-layering-button
            • readonlylayeringInput: crafting-layering-input
            • readonlylayeringLabel: crafting-layering-label
            • readonlyleftPanel: crafting-left-panel
            • readonlymenuBar: crafting-menu-bar
            • readonlynameInput: crafting-name-input
            • readonlynameLabel: crafting-name-label
            • readonlypadlockButton: crafting-padlock-button
            • readonlypadlockGrid: crafting-padlock-grid
            • readonlypadlockHeader: crafting-padlock-header
            • readonlypadlockPanel: crafting-padlock-panel
            • readonlypadlockSearch: crafting-padlock-search
            • readonlyprivateCheckbox: crafting-private-checkbox
            • readonlyprivateLabel: crafting-private-label
            • readonlypropertyButton: crafting-property-button
            • readonlypropertyGrid: crafting-property-grid
            • readonlypropertyHeader: crafting-property-header
            • readonlypropertyPanel: crafting-property-panel
            • readonlypropertySearch: crafting-property-search
            • readonlyrightPanel: crafting-right-panel
            • readonlyroot: crafting-screen
            • readonlytightenButton: crafting-tighten-button
            • readonlytightenLabel: crafting-tighten-label
            • readonlytopBar: crafting-top-bar
            • readonlyundressButton: crafting-undress-button
            • readonlyuploadButton: crafting-upload-button

            CraftingItemList

            CraftingItemList: never = ...

            A list of all assets valid for crafting, potentially filtered by a user-provided keyword.

            @deprecated

            constCraftingLockList

            CraftingLockList: readonly ( | AssetLockType)[] = ...

            The Names of all locks that can be automatically applied to crafted items. An empty string implies the absence of a lock.

            CraftingMode

            CraftingMode: CraftingMode = "Slot"

            The active subscreen within the crafting screen:

            • "Slot": The main crafting screens wherein the CraftingItem is selected, created or destroyed.
            • "Name": The main menu wherein the crafted item is customized, allowing for the specification of names, descriptions, colors, extended item types, etc.
            • "Color": A dedicated coloring screen for the crafted item.
            • "Extended": The extended item menu.

            CraftingNakedPreview

            CraftingNakedPreview: boolean = false

            Whether the crafting character preview should be naked or not.

            CraftingOffset

            CraftingOffset: number = 0

            An offset used for the pagination of Player.Crafting.

            CraftingPreview

            CraftingPreview: Character = null

            The character used for the crafting preview.

            constCraftingPropertyExclude

            CraftingPropertyExclude: Set<keyof ItemProperties> = ...

            A set of item property names that should never be stored in CraftingItem.ItemProperty.

            constCraftingPropertyMap

            CraftingPropertyMap: Map<CraftingPropertyType, (asset: Asset) => boolean> = ...

            Map crafting properties to their respective validation function.

            CraftingReorderList

            CraftingReorderList: number[] = []

            List of item indices collected for swapping.

            CraftingReorderMode

            CraftingReorderMode: CraftingReorderType = "None"

            CraftingReturnToChatroom

            CraftingReturnToChatroom: boolean = false

            Whether exiting the crafting menu should return you to the chatroom or, otherwise, the main hall.

            CraftingSelectedItem

            CraftingSelectedItem: CraftingItemSelected = null

            The currently selected crafted item in the crafting screen.

            constCraftingSerializeFieldSep

            CraftingSerializeFieldSep: ¶ = "¶"

            The separator used between fields within a single crafted item when serializing them.

            constCraftingSerializeItemSep

            CraftingSerializeItemSep: § = "§"

            The separator used between different crafted items when serializing them.

            constCraftingSerializeSanitize

            CraftingSerializeSanitize: RegExp = ...

            Regexp pattern for sanitizing to-be serialized crafted item string data by finding all special separator characters (see CraftingSerializeItemSep and CraftingSerializeFieldSep).

            CraftingSlot

            CraftingSlot: number = 0

            The index of the selected crafted item within the crafting screen.

            constCraftingStatusType

            CraftingStatusType: { CRITICAL_ERROR: 0; ERROR: 1; OK: 2 } = ...

            An enum with status codes for crafting validation.


            Type declaration

            • CRITICAL_ERROR: 0
            • ERROR: 1
            • OK: 2

            constCraftingValidationRecord

            CraftingValidationRecord: Record<keyof CraftingItem, CratingValidationStruct> = ...

            A record with tools for validating CraftingItem properties.

            @see
            @todo

            Let the Validate/GetDefault functions take the respective attribute rather than the entire CraftingItem

            CreationBackground

            CreationBackground: string = "Dressing"

            CreationMessage

            CreationMessage: string = ""

            CurrentCharacter

            CurrentCharacter: Character | NPCCharacter = null

            CurrentDarkFactor

            CurrentDarkFactor: number = 1.0

            A per-screen ratio of how darkened the background must be

            1 is bright, 0 is pitch black

            CurrentModule

            CurrentModule: ModuleType

            CurrentOnlinePlayers

            CurrentOnlinePlayers: number = 0

            CurrentScreen

            CurrentScreen: string

            CurrentScreenFunctions

            CurrentScreenFunctions: ScreenFunctions

            CurrentTime

            CurrentTime: number = 0

            CutsceneStage

            CutsceneStage: number = 0

            constDEFAULT_FRAMERATE

            DEFAULT_FRAMERATE: 60 = 60

            DailyJobBackground

            DailyJobBackground: string = "MainHall"

            DailyJobDojoTeacher

            DailyJobDojoTeacher: NPCCharacter = null

            DailyJobOpponent

            DailyJobOpponent: NPCCharacter = null

            DailyJobPuppy1

            DailyJobPuppy1: NPCCharacter = null

            DailyJobPuppy2

            DailyJobPuppy2: NPCCharacter = null

            DailyJobPuppy3

            DailyJobPuppy3: NPCCharacter = null

            DailyJobPuppy4

            DailyJobPuppy4: NPCCharacter = null

            DailyJobPuppyMistress

            DailyJobPuppyMistress: NPCCharacter = null

            DefaultSavedColors

            DefaultSavedColors: HSVColor[] = []

            DialogActivePoses

            DialogActivePoses: Pose[][] = []

            DialogActivity

            DialogActivity: ItemActivity[] = []

            The list of available activities for the selected group.

            DialogActivityMode

            DialogActivityMode: never = ...
            @deprecated

            DialogButtonDisabledTester

            DialogButtonDisabledTester: RegExp = ...

            DialogColor

            DialogColor: never = ...
            @deprecated

            DialogColorSelect

            DialogColorSelect: string = null

            The default color to use when applying items.

            DialogCraftingMenu

            DialogCraftingMenu: never = ...
            @deprecated

            DialogExpressionPreviousMode

            DialogExpressionPreviousMode: { group: AssetItemGroup; mode: DialogMenuMode } = null

            The group that was selected before we entered the expression coloring screen


            Type declaration

            DialogExtendedMessage

            DialogExtendedMessage: string = ""

            DialogFacialExpressions

            DialogFacialExpressions: ExpressionItem[] = []

            constDialogFacialExpressionsPerPage

            DialogFacialExpressionsPerPage: 18 = 18

            The maximum number of expressions per page for a given asset group.

            DialogFacialExpressionsSelected

            DialogFacialExpressionsSelected: number = -1

            DialogFacialExpressionsSelectedBlindnessLevel

            DialogFacialExpressionsSelectedBlindnessLevel: number = 2

            DialogFacialExpressionsSelectedPage

            DialogFacialExpressionsSelectedPage: number = 0

            The currently selected expression page number for a given asset group. Contains up to DialogFacialExpressionsPerPage expressions.

            DialogFavoriteStateDetails

            DialogFavoriteStateDetails: FavoriteState[] = ...

            DialogFocusItem

            DialogFocusItem: Item = null

            The item currently selected in the Dialog and showing its extended screen.

            Note that in case this is a lock, the item being locked is available in DialogFocusSourceItem.

            DialogFocusItemColorizationRedrawTimer

            DialogFocusItemColorizationRedrawTimer: Timeout = null

            DialogFocusSourceItem

            DialogFocusSourceItem: Item = null

            The actual item being locked while the lock asset has its extended screen drawn.

            DialogGamingPreviousModule

            DialogGamingPreviousModule: | ModuleType = ""

            DialogGamingPreviousRoom

            DialogGamingPreviousRoom: string = ""

            DialogInventory

            DialogInventory: DialogInventoryItem[] = []

            The list of available items for the selected group.

            constDialogInventoryGrid

            DialogInventoryGrid: CommonGenerateGridParameters = ...

            The grid configuration for most item views (items, permissions, activities)

            DialogInventoryOffset

            DialogInventoryOffset: number = 0

            The current page offset of the item list. Also used for activities.

            DialogItemPermissionMode

            DialogItemPermissionMode: never = ...
            @deprecated

            DialogItemToLock

            DialogItemToLock: never = ...
            @deprecated

            DialogLeaveDueToItem

            DialogLeaveDueToItem: boolean = false

            DialogLentLockpicks

            DialogLentLockpicks: boolean = false

            DialogLockMenu

            DialogLockMenu: never = ...
            @deprecated

            DialogMenuButton

            DialogMenuButton: DialogMenuButton[] = []

            The list of currently visible menu item buttons.

            DialogMenuMode

            DialogMenuMode: DialogMenuMode = "dialog"

            The dialog's current mode, what is currently shown.

            DialogSavedExpressionPreviews

            DialogSavedExpressionPreviews: Character[] = []

            DialogSelfMenuOptions

            DialogSelfMenuOptions: readonly DialogSelfMenuOptionType[] = ...

            The list of menu types available when clicking on yourself

            DialogSelfMenuSelected

            DialogSelfMenuSelected: DialogSelfMenuOptionType = null

            DialogSortOrder

            DialogSortOrder: { Blocked: 10; BothFavoriteUsable: 3; Enabled: 1; Equipped: 2; PlayerFavoriteUnusable: 8; PlayerFavoriteUsable: 5; TargetFavoriteUnusable: 7; TargetFavoriteUsable: 4; Unusable: 9; Usable: 6 } = ...

            Type declaration

            • readonlyBlocked: 10
            • readonlyBothFavoriteUsable: 3
            • readonlyEnabled: 1
            • readonlyEquipped: 2
            • readonlyPlayerFavoriteUnusable: 8
            • readonlyPlayerFavoriteUsable: 5
            • readonlyTargetFavoriteUnusable: 7
            • readonlyTargetFavoriteUsable: 4
            • readonlyUnusable: 9
            • readonlyUsable: 6

            DialogStruggleAction

            DialogStruggleAction: DialogStruggleActionType = null

            The attempted action that's leading the player to struggle.

            DialogStruggleNextItem

            DialogStruggleNextItem: Item = null

            The item we're swapping to.

            DialogStrugglePrevItem

            DialogStrugglePrevItem: Item = null

            The item we're struggling out of, or swapping from.

            DialogStruggleSelectMinigame

            DialogStruggleSelectMinigame: boolean = false

            Whether we went through the struggle selection screen or went straight through.

            DialogText

            DialogText: string = ""

            DialogTextDefault

            DialogTextDefault: string = ""

            DialogTextDefaultDuration

            DialogTextDefaultDuration: number = 5000

            The duration temporary status message show up for, in ms

            DialogTextDefaultTimer

            DialogTextDefaultTimer: number = -1

            DialogTightenLoosenItem

            DialogTightenLoosenItem: Item = null

            DisclaimerBackground

            DisclaimerBackground: string = "Sheet"

            DojoStruggleBackground

            DojoStruggleBackground: string = "Shibari"

            DojoStruggleImpulse

            DojoStruggleImpulse: number = 0

            DojoStrugglePosition

            DojoStrugglePosition: number = 450

            DojoStruggleRope

            DojoStruggleRope: number[] = []

            Draw3DEnabled

            Draw3DEnabled: boolean = false

            constDrawAssetPreviewDefaultHeight

            DrawAssetPreviewDefaultHeight: 275 = 275

            The default height of item previews

            constDrawAssetPreviewDefaultWidth

            DrawAssetPreviewDefaultWidth: 225 = 225

            The default width of item previews

            constDrawCacheImage

            DrawCacheImage: Map<string, HTMLImageElement> = ...

            DrawCacheLoadedImages

            DrawCacheLoadedImages: number = 0

            DrawCacheTotalImages

            DrawCacheTotalImages: number = 0

            DrawCanvasPosition

            DrawCanvasPosition: RectTuple = ...

            The last canvas position in format [left, top, width, height]

            DrawHoverElements

            DrawHoverElements: Function[] = []

            A list of elements to draw at the end of the drawing process. Mostly used for hovering button labels.

            DrawLastCharacters

            DrawLastCharacters: Character[] = []

            A list of the characters that are drawn every frame

            DrawLastDarkFactor

            DrawLastDarkFactor: number = 0

            DrawScreenFlashColor

            DrawScreenFlashColor: any = null

            DrawScreenFlashStrength

            DrawScreenFlashStrength: number = 140

            DrawScreenFlashTime

            DrawScreenFlashTime: number = 0

            DrawingBlindFlashTimer

            DrawingBlindFlashTimer: number = 0

            constDynamicDrawFontMeasurements

            DynamicDrawFontMeasurements: Record<string, { weights: Record<string, number>; width: number }> = {}

            Cache for font measurements. These are used to make text which is drawn in an arc look more natural by respecting the widths of characters in various fonts.

            constDynamicDrawTextArcPaddingRatio

            DynamicDrawTextArcPaddingRatio: number = 1.15

            A padding multiplier for text when drawn in an arc. The extra padding helps ensure that the bottoms of characters don't collide

            constDynamicDrawTextDefaultOptions

            DynamicDrawTextDefaultOptions: DynamicDrawOptions = ...

            The default options that are used for dynamic text drawing.

            constDynamicDrawTextEffect

            DynamicDrawTextEffect: { BURN: burn } = ...

            An enum encapsulating the available drawing effects that can be applied to dynamic text.


            Type declaration

            • BURN: burn

            constDynamicDrawTextEffects

            DynamicDrawTextEffects: Record<burn, DynamicDrawTextEffectDefinition> = ...

            Dynamic text effect definitions. The definitions define the drawing effects that can be applied to dynamically drawn text.

            constDynamicDrawTextInputPattern

            DynamicDrawTextInputPattern: string = "(?:\\w|[ ~!$#%*+])*"

            A regex pattern that can be attached to HTML input elements to check for validity - matches the DynamicDrawTextRegex

            constDynamicDrawTextRegex

            DynamicDrawTextRegex: RegExp = ...

            A common regex that can be used to check whether a given string is permitted for dynamic drawing (the character limitations are primarily to restrict the use of control characters and unicode characters that would cause odd behavior).

            constDynamicDrawValidTextCharacters

            DynamicDrawValidTextCharacters: string[] = ...

            An array of valid printable characters that are permitted for dynamic drawing (used internally for text measurement purposes)

            constE

            E: { BlindHeavy: BlindHeavy; BlindLight: BlindLight; BlindNormal: BlindNormal; BlindTotal: BlindTotal; Block: Block; BlockMouth: BlockMouth; BlockRemotes: BlockRemotes; BlockWardrobe: BlockWardrobe; BlurHeavy: BlurHeavy; BlurLight: BlurLight; BlurNormal: BlurNormal; BlurTotal: BlurTotal; BreastChaste: BreastChaste; ButtChaste: ButtChaste; Chaste: Chaste; CrotchRope: CrotchRope; CuffedArms: CuffedArms; CuffedFeet: CuffedFeet; CuffedLegs: CuffedLegs; DeafHeavy: DeafHeavy; DeafLight: DeafLight; DeafNormal: DeafNormal; DeafTotal: DeafTotal; DenialMode: DenialMode; Edged: Edged; Egged: Egged; Enclose: Enclose; FillVulva: FillVulva; FixedHead: FixedHead; ForcedErection: ForcedErection; Freeze: Freeze; GagEasy: GagEasy; GagHeavy: GagHeavy; GagLight: GagLight; GagMedium: GagMedium; GagNormal: GagNormal; GagTotal: GagTotal; GagTotal2: GagTotal2; GagTotal3: GagTotal3; GagTotal4: GagTotal4; GagVeryHeavy: GagVeryHeavy; GagVeryLight: GagVeryLight; HideRestraints: HideRestraints; IsChained: IsChained; IsLeashed: IsLeashed; IsPlugged: IsPlugged; KinkyDungeonParty: KinkyDungeonParty; Leash: Leash; Lifted: Lifted; Lock: Lock; MapImmobile: MapImmobile; MergedFingers: MergedFingers; Mounted: Mounted; NotSelfPickable: NotSelfPickable; OnBed: OnBed; OneWayEnclose: OneWayEnclose; OpenMouth: OpenMouth; OpenPermission: OpenPermission; OpenPermissionArm: OpenPermissionArm; OpenPermissionChastity: OpenPermissionChastity; OpenPermissionLeg: OpenPermissionLeg; ProtrudingMouth: ProtrudingMouth; ReceiveShock: ReceiveShock; RegressedTalk: RegressedTalk; Remote: Remote; RuinOrgasms: RuinOrgasms; Shackled: Shackled; Slow: Slow; Suspended: Suspended; Tethered: Tethered; TriggerShock: TriggerShock; UnlockEscortAnkleCuffs: UnlockEscortAnkleCuffs; UnlockFamilyPadlock: UnlockFamilyPadlock; UnlockLoversPadlock: UnlockLoversPadlock; UnlockLoversTimerPadlock: UnlockLoversTimerPadlock; UnlockMetalCuffs: UnlockMetalCuffs; UnlockMetalPadlock: UnlockMetalPadlock; UnlockMistressPadlock: UnlockMistressPadlock; UnlockMistressTimerPadlock: UnlockMistressTimerPadlock; UnlockOwnerPadlock: UnlockOwnerPadlock; UnlockOwnerTimerPadlock: UnlockOwnerTimerPadlock; UnlockPandoraPadlock: UnlockPandoraPadlock; UnlockPortalPanties: UnlockPortalPanties; UseRemote: UseRemote; VR: VR; VRAvatars: VRAvatars; Vibrating: Vibrating; VulvaShaft: VulvaShaft; Wiggling: Wiggling } = ...

            The list of available effects.


            Type declaration

            • readonlyBlindHeavy: BlindHeavy
            • readonlyBlindLight: BlindLight
            • readonlyBlindNormal: BlindNormal
            • readonlyBlindTotal: BlindTotal
            • readonlyBlock: Block

              Indicates that the character is "blocked". Acts as a restraint.

            • readonlyBlockMouth: BlockMouth

              Marks the item as blocking the character's mouth.

              Prevents items that have the NotLifted prerequisite to be applied. Also used when checking activities' prerequisites.

            • readonlyBlockRemotes: BlockRemotes

              Marks the item as preventing remotes from being used on the character.

            • readonlyBlockWardrobe: BlockWardrobe

              Prevents accessing the wardrobe.

            • readonlyBlurHeavy: BlurHeavy
            • readonlyBlurLight: BlurLight
            • readonlyBlurNormal: BlurNormal
            • readonlyBlurTotal: BlurTotal
            • readonlyBreastChaste: BreastChaste

              Marks the item as applying breast chastity.

              Allows the item to be taken off at the club management.

            • readonlyButtChaste: ButtChaste
            • readonlyChaste: Chaste

              Marks the item as applying chastity.

              Prevents items that have the NotChaste prerequisite from being applied. Allows the item to be taken off at the club management.

            • readonlyCrotchRope: CrotchRope

              Marks the item as being a crotchrope-style item.

              Used for the auto-stimulation events.

            • readonlyCuffedArms: CuffedArms

              Enable items that have the CuffedArms prerequisite to be applied.

            • readonlyCuffedFeet: CuffedFeet

              Enable items that have the CuffedFeet prerequisite to be applied.

            • readonlyCuffedLegs: CuffedLegs

              Enable items that have the CuffedLegs prerequisite to be applied.

            • readonlyDeafHeavy: DeafHeavy
            • readonlyDeafLight: DeafLight
            • readonlyDeafNormal: DeafNormal
            • readonlyDeafTotal: DeafTotal
            • readonlyDenialMode: DenialMode

              Marks the item as causing the character to be denied.

              Causes the character's arousal to be capped (higher that Edged).

            • readonlyEdged: Edged

              Marks the item as causing the character to be edged.

              Normally handled automatically by VibrationMode. Causes the character's arousal to be capped, and ruins its orgasms.

            • readonlyEgged: Egged

              Marks the item as being a "vibrator" kind-of item.

              Make the item's Vibrator-related properties be taken into account for arousal, as well as the stuttering effect.

            • readonlyEnclose: Enclose

              Indicates the character cannot be interacted with and can't interact back.

            • readonlyFillVulva: FillVulva

              Marks the item as filling the character's vulva.

              Used when checking activities' prerequisites and the stimulation events

            • readonlyFixedHead: FixedHead

              Locks the character's head in-place. Prevents nodding and shaking activities on it.

            • readonlyForcedErection: ForcedErection

              Marks the item as a urethral insert.

              Used when checking if the item should allow the penis to be limp.

            • readonlyFreeze: Freeze

              Prevents walking and kneeling without the kneel/stand minigame.

            • readonlyGagEasy: GagEasy
            • readonlyGagHeavy: GagHeavy
            • readonlyGagLight: GagLight
            • readonlyGagMedium: GagMedium
            • readonlyGagNormal: GagNormal
            • readonlyGagTotal: GagTotal
            • readonlyGagTotal2: GagTotal2
            • readonlyGagTotal3: GagTotal3
            • readonlyGagTotal4: GagTotal4
            • readonlyGagVeryHeavy: GagVeryHeavy
            • readonlyGagVeryLight: GagVeryLight
            • readonlyHideRestraints: HideRestraints
            • readonlyIsChained: IsChained

              Prevents items that have the NotChained prerequisite from being applied.

            • readonlyIsLeashed: IsLeashed

              Marks a leash item as being held.

            • readonlyIsPlugged: IsPlugged

              Marks the item as filling the character's butt.

              Used when checking activities' prerequisites and the auto-stimulation events.

            • readonlyKinkyDungeonParty: KinkyDungeonParty
            • readonlyLeash: Leash

              Marks the item as being usable as a leash.

            • readonlyLifted: Lifted

              Prevents items that have the NotLifted prerequisite to be applied.

            • readonlyLock: Lock

              Marks the item as being some kind of lock.

              @todo

              not renamed because layers usually have that name

            • readonlyMapImmobile: MapImmobile

              If set, this effect will make a player immobile on the map.

            • readonlyMergedFingers: MergedFingers

              Indicates the character can't use their fingers normally. Limits activities.

            • readonlyMounted: Mounted

              Indicates that the character is mounted onto something. Acts as a restraint and blocks moving around.

            • readonlyNotSelfPickable: NotSelfPickable

              Disables the item from being lock-picked by its wearer.

            • readonlyOnBed: OnBed

              Enable items that have the OnBed prerequisite to be applied.

            • readonlyOneWayEnclose: OneWayEnclose

              Indicates the character can be interacted with but can't interact back.

            • readonlyOpenMouth: OpenMouth

              Marks the item as opening the character's mouth.

              Used when checking activities' prerequisites.

            • readonlyOpenPermission: OpenPermission

              Marks the item as requiring collar-permissions (Futuristic).

            • readonlyOpenPermissionArm: OpenPermissionArm

              Marks the item as requiring arm-permissions (Futuristic).

            • readonlyOpenPermissionChastity: OpenPermissionChastity

              Marks the item as requiring chastity-permissions (Futuristic).

            • readonlyOpenPermissionLeg: OpenPermissionLeg

              Marks the item as requiring arm-permissions (Futuristic).

            • readonlyProtrudingMouth: ProtrudingMouth

              Indicates that the item bulges out from the character's mouth.

              Prevents items that wrap the head to be applied.

            • readonlyReceiveShock: ReceiveShock

              Marks the item as being a shock-dispensing item.

            • readonlyRegressedTalk: RegressedTalk
            • readonlyRemote: Remote

              Marks the item as a remote. Looks non-functional.

            • readonlyRuinOrgasms: RuinOrgasms

              Marks the item as ruining orgasms.

              Requires DenialMode. Makes the character unable to fully orgasm.

            • readonlyShackled: Shackled

              Prevents items that have the NotShackled prerequisite from being applied.

            • readonlySlow: Slow

              Indicates the character is slowed. Used when exiting chatrooms.

            • readonlySuspended: Suspended
            • readonlyTethered: Tethered

              Prevents leashing items from working.

            • readonlyTriggerShock: TriggerShock

              Marks the item as being a trigger for shock-dispensing items.

            • readonlyUnlockEscortAnkleCuffs: UnlockEscortAnkleCuffs
            • readonlyUnlockFamilyPadlock: UnlockFamilyPadlock
            • readonlyUnlockLoversPadlock: UnlockLoversPadlock
            • readonlyUnlockLoversTimerPadlock: UnlockLoversTimerPadlock
            • readonlyUnlockMetalCuffs: UnlockMetalCuffs
            • readonlyUnlockMetalPadlock: UnlockMetalPadlock
            • readonlyUnlockMistressPadlock: UnlockMistressPadlock
            • readonlyUnlockMistressTimerPadlock: UnlockMistressTimerPadlock
            • readonlyUnlockOwnerPadlock: UnlockOwnerPadlock
            • readonlyUnlockOwnerTimerPadlock: UnlockOwnerTimerPadlock
            • readonlyUnlockPandoraPadlock: UnlockPandoraPadlock
            • readonlyUnlockPortalPanties: UnlockPortalPanties
            • readonlyUseRemote: UseRemote

              Marks the item as needing a remote to be changed.

            • readonlyVR: VR
            • readonlyVRAvatars: VRAvatars
            • readonlyVibrating: Vibrating

              Indicates an Effect.Egged item as being vibrating.

              Normally handled automatically by VibrationMode. Makes the item preview wobble in the inventory, as well as cause auto-stimulation events.

            • readonlyVulvaShaft: VulvaShaft

              Marks the item as being some sort of shaft extending out of the vulva.

              Used to block things like chastity from closing.

            • readonlyWiggling: Wiggling

              Indicates that the item hangs from the character and can wiggle from it.

              Used as part of the stimulation event system.

            constElementNoParent

            ElementNoParent: 0 = 0

            EmptyBackground

            EmptyBackground: string = "MainHall"

            EmptyCharacter

            EmptyCharacter: Character[] = []

            EmptyCharacterOffset

            EmptyCharacterOffset: number = 0

            constExtendedArchetype

            ExtendedArchetype: { MODULAR: modular; NOARCH: noarch; TEXT: text; TYPED: typed; VARIABLEHEIGHT: variableheight; VIBRATING: vibrating } = ...

            An enum encapsulating the available extended item archetypes


            Type declaration

            • readonlyMODULAR: modular
            • readonlyNOARCH: noarch
            • readonlyTEXT: text
            • readonlyTYPED: typed
            • readonlyVARIABLEHEIGHT: variableheight
            • readonlyVIBRATING: vibrating

            ExtendedItemOffsets

            ExtendedItemOffsets: Record<string, number> = {}

            A lookup for the current pagination offset for all extended item options. Offsets are only recorded if the extended item requires pagination. Example format:

            {
            "ItemArms/HempRope": 4,
            "ItemArms/Web": 0
            }
            @constant

            ExtendedItemPermissionMode

            ExtendedItemPermissionMode: boolean = false

            The current display mode

            ExtendedItemSubscreen

            ExtendedItemSubscreen: string = null

            Tracks whether a selected option's subscreen is active - if active, the value is the name of the current subscreen's corresponding option

            constExtendedXY

            ExtendedXY: [number, number][][] = ...

            The X & Y co-ordinates of each option's button, based on the number to be displayed per page.

            constExtendedXYClothes

            ExtendedXYClothes: [number, number][][] = ...

            The X & Y co-ordinates of each option's button, based on the number to be displayed per page.

            constExtendedXYClothesWithoutImages

            ExtendedXYClothesWithoutImages: [number, number][][] = ...

            The X & Y co-ordinates of each option's button, based on the number to be displayed per page.

            constExtendedXYWithoutImages

            ExtendedXYWithoutImages: [number, number][][] = ...

            The X & Y co-ordinates of each option's button, based on the number to be displayed per page.

            FetishFemale3DCG

            FetishFemale3DCG: Fetish[] = ...

            3D Custom Girl based fetishes Modify PreferenceArousalFetishDefaultCompressedString if you add a new fetish

            constFetishFemale3DCGNames

            FetishFemale3DCGNames: Set<FetishName> = ...

            A set with all available fetish names.

            ForbiddenWordsBackground

            ForbiddenWordsBackground: string = "Sheet"

            ForbiddenWordsConsequence

            ForbiddenWordsConsequence: string = "Block"

            ForbiddenWordsConsequenceList

            ForbiddenWordsConsequenceList: string[] = ...

            ForbiddenWordsList

            ForbiddenWordsList: string[] = []

            ForbiddenWordsOffset

            ForbiddenWordsOffset: number = 0

            ForbiddenWordsTarget

            ForbiddenWordsTarget: Character = null

            constFriendListAutoRefresh

            FriendListAutoRefresh: { interval: number; nextRefresh: number } = ...

            Type declaration

            • interval: number
            • nextRefresh: number

            FriendListBackground

            FriendListBackground: string = "BrickWall"

            FriendListBeepLog

            FriendListBeepLog: IFriendListBeepLogMessage[] = []

            FriendListBeepShowRoom

            FriendListBeepShowRoom: boolean = true

            FriendListBeepTarget

            FriendListBeepTarget: number = -1

            FriendListConfirmDelete

            FriendListConfirmDelete: number[] = []

            constFriendListIDs

            FriendListIDs: Readonly<{ beepFooter: friend-list-beep-footer; beepList: friend-list-beep-dialog; beepTextArea: friend-list-beep-textarea; btnAutoRefresh: friend-list-button-auto-refresh; btnExit: friend-list-button-exit; btnNext: friend-list-button-next; btnPrev: friend-list-button-prev; btnRefresh: friend-list-button-refresh; btnResetSorting: friend-list-reset-sorting; friendList: friend-list; friendListTable: friend-list-table; header: friend-list-header; modeTitle: friend-list-mode-title; navBar: friend-list-nav-bar; navButtons: friend-list-buttons; root: friend-list-subscreen; searchInput: friend-list-search-input }> = ...

            FriendListMode

            FriendListMode: FriendListModes

            FriendListModeIndex

            FriendListModeIndex: number = 0

            FriendListReturn

            FriendListReturn: FriendListReturn

            FriendListSortingDirection

            FriendListSortingDirection: FriendListSortingDirection

            FriendListSortingMode

            FriendListSortingMode: FriendListSortingMode

            FuturisticAccessArmGroups

            FuturisticAccessArmGroups: string[] = ...

            FuturisticAccessChastityGroups

            FuturisticAccessChastityGroups: string[] = ...

            FuturisticAccessCollarGroups

            FuturisticAccessCollarGroups: string[] = ...

            FuturisticAccessDeniedMessage

            FuturisticAccessDeniedMessage: string = ""

            FuturisticAccessLegGroups

            FuturisticAccessLegGroups: string[] = ...

            FuturisticChastityBeltShockCooldownOrgasm

            FuturisticChastityBeltShockCooldownOrgasm: number = 15000

            FuturisticCollarMaxPage

            FuturisticCollarMaxPage: number = 2

            FuturisticCollarPage

            FuturisticCollarPage: number = 0

            FuturisticTrainingBeltConfigure

            FuturisticTrainingBeltConfigure: boolean = false

            FuturisticTrainingBeltMaxPage

            FuturisticTrainingBeltMaxPage: number = 1

            FuturisticTrainingBeltModes

            FuturisticTrainingBeltModes: string[] = ...

            FuturisticTrainingBeltPage

            FuturisticTrainingBeltPage: number = 0

            FuturisticTrainingBeltPermissions

            FuturisticTrainingBeltPermissions: string[] = ...

            FuturisticTrainingBeltPunishmentEdgeDuration

            FuturisticTrainingBeltPunishmentEdgeDuration: number = ...

            FuturisticTrainingBeltPunishmentVibeDuration

            FuturisticTrainingBeltPunishmentVibeDuration: number = ...

            FuturisticTrainingBeltRandomDenyChance

            FuturisticTrainingBeltRandomDenyChance: number = 0.01

            FuturisticTrainingBeltRandomDenyDuration

            FuturisticTrainingBeltRandomDenyDuration: number = 30000

            FuturisticTrainingBeltRandomEdgeCycle

            FuturisticTrainingBeltRandomEdgeCycle: number = 150000

            FuturisticTrainingBeltRandomOrgasmChance

            FuturisticTrainingBeltRandomOrgasmChance: number = 0.015

            FuturisticTrainingBeltRandomOrgasmDurationCooldown

            FuturisticTrainingBeltRandomOrgasmDurationCooldown: number = 60000

            FuturisticTrainingBeltRandomOrgasmDurationMax

            FuturisticTrainingBeltRandomOrgasmDurationMax: number = ...

            FuturisticTrainingBeltRandomOrgasmDurationMin

            FuturisticTrainingBeltRandomOrgasmDurationMin: number = 60000

            FuturisticTrainingBeltRandomTeaseChance

            FuturisticTrainingBeltRandomTeaseChance: number = 0.015

            FuturisticTrainingBeltRandomTeaseDurationCooldown

            FuturisticTrainingBeltRandomTeaseDurationCooldown: number = 60000

            FuturisticTrainingBeltRandomTeaseDurationMax

            FuturisticTrainingBeltRandomTeaseDurationMax: number = 300000

            FuturisticTrainingBeltRandomTeaseDurationMin

            FuturisticTrainingBeltRandomTeaseDurationMin: number = 30000

            FuturisticTrainingBeltRandomTeaseMaxChance

            FuturisticTrainingBeltRandomTeaseMaxChance: number = 0.1

            FuturisticTrainingBeltSetMode

            FuturisticTrainingBeltSetMode: 0 | 1 | 2 | 3 | 4 | 5 | 6 = 0

            FuturisticTrainingBeltSpeechCharacterLimit

            FuturisticTrainingBeltSpeechCharacterLimit: number = 25

            FuturisticTrainingBeltSpeechPunishments

            FuturisticTrainingBeltSpeechPunishments: string[] = ...

            FuturisticTrainingBeltStandUpFlag

            FuturisticTrainingBeltStandUpFlag: boolean = false

            FuturisticTrainingBeltStates

            FuturisticTrainingBeltStates: string[] = ...

            GLDrawAlphaThreshold

            GLDrawAlphaThreshold: number = 0.01

            GLDrawCacheLoadedImages

            GLDrawCacheLoadedImages: number = 0

            GLDrawCacheTotalImages

            GLDrawCacheTotalImages: number = 0

            GLDrawCanvas

            GLDrawCanvas: HTMLCanvasElement

            GLDrawContextLostTimeout

            GLDrawContextLostTimeout: Timeout

            constGLDrawContextResetSeconds

            GLDrawContextResetSeconds: 10 = 10

            How many seconds to wait before forcefully resetting the canvas after a context loss

            GLDrawCrashTimeout

            GLDrawCrashTimeout: Timeout

            GLDrawFragmentShaderSource

            GLDrawFragmentShaderSource: string = ...

            Source used for the Fragment Shader

            @constant

            GLDrawFragmentShaderSourceFullAlpha

            GLDrawFragmentShaderSourceFullAlpha: string = ...

            Source used for the Full Alpha Shader

            @constant

            GLDrawFragmentShaderSourceHalfAlpha

            GLDrawFragmentShaderSourceHalfAlpha: string = ...

            Source used for the Half Alpha Shader

            @constant

            GLDrawFragmentShaderSourceTexMask

            GLDrawFragmentShaderSourceTexMask: string = ...

            Source used for the Texture Mask Fragment Shader

            @constant

            GLDrawHalfAlphaHigh

            GLDrawHalfAlphaHigh: number = ...

            GLDrawHalfAlphaLow

            GLDrawHalfAlphaLow: number = ...

            GLDrawImageCache

            GLDrawImageCache: Map<string, HTMLImageElement> = ...

            GLDrawRecoveryMode

            GLDrawRecoveryMode: boolean = false

            constGLDrawRevertToDraw2DSeconds

            GLDrawRevertToDraw2DSeconds: 50 = 50

            The cooldown in seconds after resetting the canvas. If another context loss happens in this cooldown, we'll revert to canvas2d rendering

            GLDrawVertexShaderSource

            GLDrawVertexShaderSource: string = ...

            Source used for the Vertex Shader

            @constant

            GLVersion

            GLVersion: webgl2 | webgl | No WebGL

            GamblingAppearanceFirst

            GamblingAppearanceFirst: Item[] = null

            GamblingAppearancePlayer

            GamblingAppearancePlayer: Item[] = null

            GamblingAppearanceSecond

            GamblingAppearanceSecond: Item[] = null

            GamblingBackground

            GamblingBackground: string = "Gambling"

            GamblingFirstSub

            GamblingFirstSub: NPCCharacter = null

            GamblingIllegalChange

            GamblingIllegalChange: boolean = false

            Sub Player lost Cloth although forbidden by Mistress

            GamblingMoneyBet

            GamblingMoneyBet: number = 0

            Money Bet in Current Game

            GamblingNpcDice

            GamblingNpcDice: number = null

            GamblingNpcDiceStack

            GamblingNpcDiceStack: number[] = []

            GamblingNpcSubState

            GamblingNpcSubState: number = 0

            Game-State of NPC

            GamblingPlayerDice

            GamblingPlayerDice: number = null

            GamblingPlayerDiceStack

            GamblingPlayerDiceStack: number[] = []

            GamblingPlayerIsFox

            GamblingPlayerIsFox: boolean = true

            Player is Fox by Fox and Hunter

            GamblingPlayerSubState

            GamblingPlayerSubState: number = 0

            GamblingPolice

            GamblingPolice: any = null

            GamblingSecondSub

            GamblingSecondSub: NPCCharacter = null

            GamblingShowDiceSum

            GamblingShowDiceSum: boolean = true

            Show Summ of Dice Dots in DiceStack

            GamblingShowMoney

            GamblingShowMoney: boolean = false

            Show Money in DiceStack

            GamblingToothpickCount

            GamblingToothpickCount: number = 0

            available Toothpicks

            GameAnimationFrameId

            GameAnimationFrameId: number = null

            GameClubCardBackground

            GameClubCardBackground: string = "Sheet"

            GameClubCardEntryPlayerSlot

            GameClubCardEntryPlayerSlot: number = 0

            GameClubCardExpectQuery

            GameClubCardExpectQuery: boolean = false

            GameClubCardQueryAdmin

            GameClubCardQueryAdmin: boolean = false

            GameLARPAction

            GameLARPAction: GameLARPOptionName = ""

            GameLARPBackground

            GameLARPBackground: string = "Sheet"

            GameLARPClass

            GameLARPClass: { Ability: string[]; Bonus: number[]; Name: string }[] = ...

            GameLARPEntryClass

            GameLARPEntryClass: string = ""

            GameLARPEntryTeam

            GameLARPEntryTeam: string = ""

            GameLARPInventory

            GameLARPInventory: Asset[] = []

            GameLARPInventoryOffset

            GameLARPInventoryOffset: number = 0

            GameLARPOption

            GameLARPOption: GameLARPOption[] = []

            GameLARPPlayer

            GameLARPPlayer: Character[] = []

            GameLARPProgress

            GameLARPProgress: { Data: { Action?: undefined; CCData: [any]; CCLog: [any]; GameProgress?: Next | Action | Start | Stop | Skip | Query; Item?: string; KinkyDungeon?: any; OnlineBounty?: any; Player1?: number; Player2?: number; Spell?: string; Target?: number; Time?: number }; RNG: number; Sender: number; Success?: boolean; Time: number }[] = []

            GameLARPTeamList

            GameLARPTeamList: string[] = ...

            GameLARPTimerDelay

            GameLARPTimerDelay: number[] = ...

            GameLARPTurnAdmin

            GameLARPTurnAdmin: number = 0

            GameLARPTurnAscending

            GameLARPTurnAscending: boolean = true

            GameLARPTurnFocusCharacter

            GameLARPTurnFocusCharacter: Character = null

            GameLARPTurnFocusGroup

            GameLARPTurnFocusGroup: AssetGroupName = null

            GameLARPTurnPosition

            GameLARPTurnPosition: number = 0

            GameLARPTurnTimer

            GameLARPTurnTimer: number = null

            GameLARPTurnTimerDelay

            GameLARPTurnTimerDelay: number = ...

            GameMagicBattleAction

            GameMagicBattleAction: string = ""

            GameMagicBattleBackground

            GameMagicBattleBackground: string = "Sheet"

            GameMagicBattleButton

            GameMagicBattleButton: { H: number; W: number; X: number; Y: number }[] = []

            GameMagicBattleFocusCharacter

            GameMagicBattleFocusCharacter: Character = null

            GameMagicBattleLog

            GameMagicBattleLog: Pick<ServerChatRoomGameResponse, Data | Sender>[] = []

            GameMagicBattlePlayer

            GameMagicBattlePlayer: Character[] = []

            GameMagicBattleTimerDelay

            GameMagicBattleTimerDelay: number = 30

            GameMagicBattleTurnAdmin

            GameMagicBattleTurnAdmin: number = null

            GameMagicBattleTurnDone

            GameMagicBattleTurnDone: boolean = false

            GameMagicBattleTurnTimer

            GameMagicBattleTurnTimer: number = null

            GameMouseIsDown

            GameMouseIsDown: boolean = false

            GameVersion

            GameVersion: string = "R110"

            BC's version

            constGameVersionFormat

            GameVersionFormat: RegExp = ...

            GameWorker

            GameWorker: Worker = null

            GetUpAcceleration

            GetUpAcceleration: number = 0

            GetUpBackground

            GetUpBackground: string = "Introduction"

            GetUpChallenge

            GetUpChallenge: number = 0

            GetUpGameDuration

            GetUpGameDuration: number = 5000

            GetUpMaxPosition

            GetUpMaxPosition: number = 100

            GetUpNextTick

            GetUpNextTick: number = 0

            GetUpPosition

            GetUpPosition: number = 0

            GetUpText

            GetUpText: string = ""

            GetUpVelocity

            GetUpVelocity: number = 0

            HighSecurityPadlockConfigLover

            HighSecurityPadlockConfigLover: boolean = true

            HighSecurityPadlockConfigOwner

            HighSecurityPadlockConfigOwner: boolean = true

            HighSecurityPadlockConfigWhitelist

            HighSecurityPadlockConfigWhitelist: boolean = false

            HorseWalkBackground

            HorseWalkBackground: string = "HorseStableLight"

            HorseWalkCarrots

            HorseWalkCarrots: { X: number; Y: number }[] = null

            HorseWalkCollectedCarrots

            HorseWalkCollectedCarrots: number = 0

            HorseWalkCollectedCrops

            HorseWalkCollectedCrops: number = 0

            HorseWalkCrops

            HorseWalkCrops: { X: number; Y: number }[] = null

            HorseWalkDrawCaracter

            HorseWalkDrawCaracter: number = 0

            HorseWalkDrawPony

            HorseWalkDrawPony: boolean = false

            HorseWalkDrawTrainer

            HorseWalkDrawTrainer: boolean = false

            HorseWalkDrawXPosition

            HorseWalkDrawXPosition: number = 0

            HorseWalkDrawYHeigh

            HorseWalkDrawYHeigh: number = 0

            HorseWalkDrawYPosition

            HorseWalkDrawYPosition: number = 0

            HorseWalkEventTimer

            HorseWalkEventTimer: number = 0

            HorseWalkHitPony

            HorseWalkHitPony: number = 0

            HorseWalkHitTrainer

            HorseWalkHitTrainer: number = 0

            HorseWalkHurdle

            HorseWalkHurdle: { Stat: number; X: number; Y: number }[] = null

            HorseWalkHurdleFail

            HorseWalkHurdleFail: number = 0

            HorseWalkHurdleWin

            HorseWalkHurdleWin: number = 0

            HorseWalkItemSize

            HorseWalkItemSize: number = 100

            HorseWalkPlayerX

            HorseWalkPlayerX: number = 0

            HorseWalkPlayerY

            HorseWalkPlayerY: number = 0

            HorseWalkSpeed

            HorseWalkSpeed: number = 1

            HorseWalkText

            HorseWalkText: string = ""

            ImportBondageCollegeData

            ImportBondageCollegeData: boolean = false

            InfiltrationBackground

            InfiltrationBackground: string = "Infiltration"

            InfiltrationCollectRansom

            InfiltrationCollectRansom: boolean = false

            InfiltrationDifficulty

            InfiltrationDifficulty: number = 0

            InfiltrationKidnapper

            InfiltrationKidnapper: NPCCharacter = null

            InfiltrationMission

            InfiltrationMission: | InfiltrationMissionType = ""

            InfiltrationMissionType

            InfiltrationMissionType: InfiltrationMissionType[] = ...

            InfiltrationObjectType

            InfiltrationObjectType: InfiltrationTargetType[] = ...

            InfiltrationPandoraPrisoner

            InfiltrationPandoraPrisoner: NPCCharacter = null

            InfiltrationPartyPrisoner

            InfiltrationPartyPrisoner: NPCCharacter = null

            InfiltrationPerksBackground

            InfiltrationPerksBackground: string = "Sheet"

            InfiltrationPerksList

            InfiltrationPerksList: string[] = ...

            InfiltrationSupervisor

            InfiltrationSupervisor: NPCCharacter = null

            InfiltrationTarget

            InfiltrationTarget: InfiltrationMissionTarget = null

            InformationSheetBackground

            InformationSheetBackground: string = "Sheet"

            InformationSheetPreviousModule

            InformationSheetPreviousModule: | ModuleType = ""

            InformationSheetPreviousScreen

            InformationSheetPreviousScreen: string = ""

            InformationSheetSecondScreen

            InformationSheetSecondScreen: boolean = false

            InformationSheetSelection

            InformationSheetSelection: Character | NPCCharacter = null

            constInterfaceStringsPath

            InterfaceStringsPath: Screens/Interface.csv = "Screens/Interface.csv"

            IntroductionBackground

            IntroductionBackground: string = "Introduction"

            IntroductionHasBasicItems

            IntroductionHasBasicItems: boolean = false

            IntroductionIsHeadMaid

            IntroductionIsHeadMaid: boolean = false

            IntroductionIsMaid

            IntroductionIsMaid: boolean = false

            IntroductionJobCount

            IntroductionJobCount: number = 1

            IntroductionJobCurrent

            IntroductionJobCurrent: string = ""

            IntroductionJobList

            IntroductionJobList: string[] = ...

            IntroductionJobLockList

            IntroductionJobLockList: string[] = ...

            IntroductionJobMember

            IntroductionJobMember: number[] = []

            IntroductionJobParam

            IntroductionJobParam: string = null

            IntroductionJobPosition

            IntroductionJobPosition: { Active: boolean; X: number; Y: number } = ...

            Type declaration

            • Active: boolean
            • X: number
            • Y: number

            IntroductionJobSearchList

            IntroductionJobSearchList: string[] = ...

            IntroductionMaid

            IntroductionMaid: NPCCharacter = null

            IntroductionMaidOpinion

            IntroductionMaidOpinion: number = 0

            IntroductionRescueScenario

            IntroductionRescueScenario: string = ""

            IntroductionRescueScenarioList

            IntroductionRescueScenarioList: string[] = ...

            IntroductionSub

            IntroductionSub: NPCCharacter = null

            IntroductionSubRestrained

            IntroductionSubRestrained: boolean = false

            InventoryItemMiscHighSecurityPadlockPlayerCanUnlock

            InventoryItemMiscHighSecurityPadlockPlayerCanUnlock: boolean = true

            constInventoryItemMiscPasswordPadlockPasswordRegex

            InventoryItemMiscPasswordPadlockPasswordRegex: RegExp = ...

            InventoryItemNeckSlaveCollarColor

            InventoryItemNeckSlaveCollarColor: ItemColor = "Default"

            InventoryItemNeckSlaveCollarColorMode

            InventoryItemNeckSlaveCollarColorMode: boolean = false

            InventoryItemNeckSlaveCollarOffset

            InventoryItemNeckSlaveCollarOffset: number = 0

            InventoryItemNeckSlaveCollarTypes

            InventoryItemNeckSlaveCollarTypes: { Image: string; Name: string; Property: ItemProperties & { TypeRecord: TypeRecord } }[] = ...

            InventoryItemPelvisFuturisticChastityBeltTamperZones

            InventoryItemPelvisFuturisticChastityBeltTamperZones: string[] = ...

            constInventoryItemPelvisLoveChastityBeltCrotchShield

            InventoryItemPelvisLoveChastityBeltCrotchShield: Map<string, string> = ...

            Map the names of the love chastity belt front + black shield options to its scifi pleasure panties equivalent.

            InventoryItemPelvisModularChastityBeltVoiceTriggerValues

            InventoryItemPelvisModularChastityBeltVoiceTriggerValues: string[] = []

            InventoryItemPelvisModularChastityBeltVoiceTriggers

            InventoryItemPelvisModularChastityBeltVoiceTriggers: string[] = ...

            constInventoryPrerequisiteCanChangeToPose

            InventoryPrerequisiteCanChangeToPose: never
            @deprecated

            superseded by PoseAvailable

            constInventoryPrerequisiteConflictingGags

            InventoryPrerequisiteConflictingGags: never

            ItemColorBackup

            ItemColorBackup: string

            ItemColorCharacter

            ItemColorCharacter: Character

            constItemColorConfig

            ItemColorConfig: { buttonSize: 65; buttonSpacing: 20; colorDisplayWidth: 160; colorInputHeight: 45; colorPickerButtonWidth: 65; headerButtonSize: 90 } = ...

            A configuration object containing constants used by the ItemColor UI scripts


            Type declaration

            • readonlybuttonSize: 65
            • readonlybuttonSpacing: 20
            • readonlycolorDisplayWidth: 160
            • readonlycolorInputHeight: 45
            • readonlycolorPickerButtonWidth: 65
            • readonlyheaderButtonSize: 90

            ItemColorCurrentMode

            ItemColorCurrentMode: ItemColorMode = ItemColorMode.DEFAULT

            ItemColorExitListeners

            ItemColorExitListeners: itemColorExitListener[] = []

            ItemColorGroupNames

            ItemColorGroupNames: TextCache

            ItemColorItem

            ItemColorItem: Item

            ItemColorLayerNames

            ItemColorLayerNames: TextCache

            ItemColorLayerPages

            ItemColorLayerPages: Record<string, number> = {}

            constItemColorMode

            ItemColorMode: { COLOR_PICKER: ColorPicker; DEFAULT: Default } = ...

            An enum for the possible item color UI modes


            Type declaration

            • readonlyCOLOR_PICKER: ColorPicker
            • readonlyDEFAULT: Default

            ItemColorPage

            ItemColorPage: number

            ItemColorPickerBackup

            ItemColorPickerBackup: string

            ItemColorPickerIndices

            ItemColorPickerIndices: number[] = []

            ItemColorState

            ItemColorState: ItemColorStateType

            ItemColorStateKey

            ItemColorStateKey: string

            ItemColorText

            ItemColorText: TextCache = ...

            ItemDevicesLuckyWheelAnimationFrameTime

            ItemDevicesLuckyWheelAnimationFrameTime: number = 80

            ItemDevicesLuckyWheelAnimationMaxSpeed

            ItemDevicesLuckyWheelAnimationMaxSpeed: number = 80

            ItemDevicesLuckyWheelAnimationMinSpeed

            ItemDevicesLuckyWheelAnimationMinSpeed: number = 4

            ItemDevicesLuckyWheelAnimationSpeedStep

            ItemDevicesLuckyWheelAnimationSpeedStep: number = 1

            ItemDevicesLuckyWheelFont

            ItemDevicesLuckyWheelFont: string = "'Nanum Pen Script', 'Arial', sans-serif"

            ItemDevicesLuckyWheelMaxTextLength

            ItemDevicesLuckyWheelMaxTextLength: number = 12

            ItemDevicesLuckyWheelMaxTexts

            ItemDevicesLuckyWheelMaxTexts: number = 8

            ItemDevicesLuckyWheelMinTexts

            ItemDevicesLuckyWheelMinTexts: number = 2

            ItemDevicesLuckyWheelRowHeight

            ItemDevicesLuckyWheelRowHeight: number = 60

            ItemDevicesLuckyWheelRowLeft

            ItemDevicesLuckyWheelRowLeft: number = 1380

            ItemDevicesLuckyWheelRowLength

            ItemDevicesLuckyWheelRowLength: number = 350

            ItemDevicesLuckyWheelRowTop

            ItemDevicesLuckyWheelRowTop: number = 500

            constItemVulvaFuturisticVibratorAccessMode

            ItemVulvaFuturisticVibratorAccessMode: { EVERYONE: ; LOCK_MEMBER_ONLY: LockMember; PROHIBIT_SELF: ProhibitSelf } = ...

            Type declaration

            • EVERYONE:
            • LOCK_MEMBER_ONLY: LockMember
            • PROHIBIT_SELF: ProhibitSelf

            constItemVulvaFuturisticVibratorAccessModes

            ItemVulvaFuturisticVibratorAccessModes: ( | ProhibitSelf | LockMember)[] = ...

            ItemVulvaFuturisticVibratorTriggerValues

            ItemVulvaFuturisticVibratorTriggerValues: string[] = []

            ItemVulvaFuturisticVibratorTriggers

            ItemVulvaFuturisticVibratorTriggers: string[] = ...

            KDPatched

            KDPatched: boolean = false

            KeyPress

            KeyPress: string | number = ""
            @deprecated

            Use the keyboard handler's event parameter instead

            KidnapBackground

            KidnapBackground: string = "KidnapLeague"

            KidnapDialog

            KidnapDialog: string = ""

            KidnapDifficulty

            KidnapDifficulty: number = 0

            KidnapLeagueArchetype

            KidnapLeagueArchetype: | Mistress | Maid | AnimeGirl = null

            KidnapLeagueBackground

            KidnapLeagueBackground: string = "KidnapLeague"

            KidnapLeagueBounty

            KidnapLeagueBounty: NPCCharacter = null

            KidnapLeagueBountyDifficulty

            KidnapLeagueBountyDifficulty: number = null

            KidnapLeagueBountyLocation

            KidnapLeagueBountyLocation: string = ""

            KidnapLeagueBountyLocationList

            KidnapLeagueBountyLocationList: string[] = ...

            KidnapLeagueBountyVictory

            KidnapLeagueBountyVictory: boolean = null

            KidnapLeagueOnlineBountyTarget

            KidnapLeagueOnlineBountyTarget: number = 0

            KidnapLeagueOnlineBountyTargetStartedTime

            KidnapLeagueOnlineBountyTargetStartedTime: number = 0

            KidnapLeagueRandomActivity

            KidnapLeagueRandomActivity: string = ""

            KidnapLeagueRandomActivityCount

            KidnapLeagueRandomActivityCount: number = 0

            KidnapLeagueRandomActivityList

            KidnapLeagueRandomActivityList: string[] = ...

            KidnapLeagueRandomKidnapper

            KidnapLeagueRandomKidnapper: NPCCharacter = null

            KidnapLeagueRandomKidnapperDifficulty

            KidnapLeagueRandomKidnapperDifficulty: number = 0

            KidnapLeagueRandomKidnapperScenario

            KidnapLeagueRandomKidnapperScenario: string = "0"

            KidnapLeagueSearchFinishDuration

            KidnapLeagueSearchFinishDuration: number = ...

            KidnapLeagueSearchFinishTime

            KidnapLeagueSearchFinishTime: number = 0

            KidnapLeagueSearchingPlayers

            KidnapLeagueSearchingPlayers: number[] = []

            KidnapLeagueTrainer

            KidnapLeagueTrainer: NPCCharacter = null

            KidnapLeagueVisitRoom

            KidnapLeagueVisitRoom: boolean = false

            KidnapLeagueWillPayForFreedom

            KidnapLeagueWillPayForFreedom: boolean = false

            KidnapMode

            KidnapMode: string = ""

            KidnapMoveMap

            KidnapMoveMap: [number, number, number, number][] = ...

            KidnapMoveType

            KidnapMoveType: string[] = ...

            KidnapOpponent

            KidnapOpponent: Character = null

            KidnapOpponentCloth

            KidnapOpponentCloth: Item = null

            KidnapOpponentClothAccessory

            KidnapOpponentClothAccessory: Item = null

            KidnapOpponentClothLower

            KidnapOpponentClothLower: Item = null

            KidnapOpponentDamage

            KidnapOpponentDamage: number = 0

            KidnapOpponentMove

            KidnapOpponentMove: number = 0

            KidnapPlayerCloth

            KidnapPlayerCloth: Item = null

            KidnapPlayerClothAccessory

            KidnapPlayerClothAccessory: Item = null

            KidnapPlayerClothLower

            KidnapPlayerClothLower: Item = null

            KidnapPlayerDamage

            KidnapPlayerDamage: number = 0

            KidnapPlayerMove

            KidnapPlayerMove: number = 0

            KidnapRPS

            KidnapRPS: string[] = ...

            KidnapResultOpponent

            KidnapResultOpponent: string = "test"

            KidnapResultPlayer

            KidnapResultPlayer: string = "test"

            KidnapResultUpperHand

            KidnapResultUpperHand: string = ""

            KidnapReturnFunction

            KidnapReturnFunction: string = ""

            KidnapTimer

            KidnapTimer: number = 0

            KidnapUpperHandMoveType

            KidnapUpperHandMoveType: string[] = ...

            KidnapUpperHandSelection

            KidnapUpperHandSelection: number = 0

            KidnapUpperHandVictim

            KidnapUpperHandVictim: Character = null

            KidnapVictory

            KidnapVictory: boolean = false

            KinkyDungeonFiles

            KinkyDungeonFiles: string[] = ...

            KinkyDungeonIsLoading

            KinkyDungeonIsLoading: boolean = false

            KinkyDungeonReady

            KinkyDungeonReady: boolean = false

            LARPBackground

            LARPBackground: string = "WrestlingRing"

            LARPOrganiser

            LARPOrganiser: NPCCharacter = null

            constLactationPumpDuration

            LactationPumpDuration: number = ...

            Minimum time (in ms) the pump waits between its messages. Max is two times that.

            Log

            Log: LogRecord[] = []

            LoginBackground

            LoginBackground: string = "Dressing"

            LoginCharacter

            LoginCharacter: NPCCharacter = null

            LoginCredits

            LoginCredits: string[][] = null

            LoginCreditsPosition

            LoginCreditsPosition: number = 0

            LoginErrorMessage

            LoginErrorMessage: string = ""

            LoginEventListeners

            LoginEventListeners: {} = ...

            Type declaration

              LoginInventoryFixups

              LoginInventoryFixups: { New: { Group: AssetGroupName; Name: string; Option?: string }; Old: { Group: AssetGroupName; Name: string } }[] = ...

              The list of item fixups to apply on login.

              LoginIsRelog

              LoginIsRelog: boolean = false

              LoginMessage

              LoginMessage: string = ""

              LoginSubmitted

              LoginSubmitted: boolean = false

              LoginTextCacheUnsubscribeCallback

              LoginTextCacheUnsubscribeCallback: any

              LoginThankYou

              LoginThankYou: string = ""

              LoginThankYouList

              LoginThankYouList: string[] = ...

              LoginThankYouNext

              LoginThankYouNext: number = 0

              constMAX_KNOWN_AXIS

              MAX_KNOWN_AXIS: 4 = 4

              constMAX_KNOWN_BUTTONS

              MAX_KNOWN_BUTTONS: 17 = 17

              MagicAssistant

              MagicAssistant: NPCCharacter = null

              MagicAssistantAppearance

              MagicAssistantAppearance: Item[] = null

              MagicBackground

              MagicBackground: string = "Magic"

              MagicBattleAvailSpell

              MagicBattleAvailSpell: number[] = []

              MagicBattleBackground

              MagicBattleBackground: string = ""

              MagicBattleDifficulty

              MagicBattleDifficulty: number = 0

              MagicBattleOpponent

              MagicBattleOpponent: Character = null

              MagicBattleOpponentAppearance

              MagicBattleOpponentAppearance: string = null

              MagicBattleOpponentSpell

              MagicBattleOpponentSpell: number = 0

              MagicBattlePlayerAppearance

              MagicBattlePlayerAppearance: string = null

              MagicBattleReturnFunction

              MagicBattleReturnFunction: string = ""

              MagicBattleSpellDifficulty

              MagicBattleSpellDifficulty: number[] = ...

              MagicBattleVictory

              MagicBattleVictory: boolean = false

              MagicPerformer

              MagicPerformer: NPCCharacter = null

              MagicPerformerAppearance

              MagicPerformerAppearance: Item[] = null

              MagicPlayerAppearance

              MagicPlayerAppearance: Item[] = null

              MagicPuzzleAutoExit

              MagicPuzzleAutoExit: boolean = false

              MagicPuzzleBackground

              MagicPuzzleBackground: string = "MagicSchoolLaboratory"

              MagicPuzzleCanStart

              MagicPuzzleCanStart: boolean = false

              MagicPuzzleFinish

              MagicPuzzleFinish: number = 0

              MagicPuzzleLastMouseX

              MagicPuzzleLastMouseX: number = 0

              MagicPuzzleLastMouseY

              MagicPuzzleLastMouseY: number = 0

              MagicPuzzleSize

              MagicPuzzleSize: number = 0

              MagicPuzzleSpell

              MagicPuzzleSpell: number = 0

              MagicPuzzleStart

              MagicPuzzleStart: number = 0

              MagicPuzzleTimer

              MagicPuzzleTimer: number = 0

              MagicPuzzleTrail

              MagicPuzzleTrail: { X: number; Y: number }[] = []

              MagicPuzzleTrailLimit

              MagicPuzzleTrailLimit: number = 20

              MagicPuzzleTrailRainbow

              MagicPuzzleTrailRainbow: boolean = false

              MagicRestraintList

              MagicRestraintList: AssetGroupName[] = ...

              MagicSchoolEscapeBackground

              MagicSchoolEscapeBackground: string = "MagicSchoolEscape"

              MagicSchoolEscapeInstructor

              MagicSchoolEscapeInstructor: NPCCharacter = null

              MagicSchoolEscapeSeconds

              MagicSchoolEscapeSeconds: number = 120

              MagicSchoolEscapeTimer

              MagicSchoolEscapeTimer: number = 0

              MagicSchoolLaboratoryBackground

              MagicSchoolLaboratoryBackground: string = "MagicSchoolLaboratory"

              MagicSchoolLaboratoryBattleWage

              MagicSchoolLaboratoryBattleWage: string = ""

              MagicSchoolLaboratoryLastSpell

              MagicSchoolLaboratoryLastSpell: string = ""

              MagicSchoolLaboratorySpellCount

              MagicSchoolLaboratorySpellCount: number = 0

              MagicSchoolLaboratoryStudent

              MagicSchoolLaboratoryStudent: NPCCharacter = null

              MagicSchoolLaboratoryTeacher

              MagicSchoolLaboratoryTeacher: NPCCharacter = null

              MagicShowIncome

              MagicShowIncome: number = 0

              MagicShowState

              MagicShowState: number = 1

              MagicTrick

              MagicTrick: string = null

              MagicTrickCounter

              MagicTrickCounter: number = 0

              MagicTrickList

              MagicTrickList: string[] = ...

              MaidCleaningBackground

              MaidCleaningBackground: string = ""

              MaidCleaningPlayerX

              MaidCleaningPlayerX: number = 0

              MaidCleaningPlayerY

              MaidCleaningPlayerY: number = 0

              MaidCleaningSpotSize

              MaidCleaningSpotSize: number = 100

              MaidCleaningSpots

              MaidCleaningSpots: { T: number; X: number; Y: number }[] = null

              MaidDrinksBackground

              MaidDrinksBackground: string = "Bar"

              MaidDrinksCustomerLeft

              MaidDrinksCustomerLeft: NPCCharacter = null

              MaidDrinksCustomerLeftTimer

              MaidDrinksCustomerLeftTimer: number = -1

              MaidDrinksCustomerLeftVisible

              MaidDrinksCustomerLeftVisible: boolean = false

              MaidDrinksCustomerRight

              MaidDrinksCustomerRight: NPCCharacter = null

              MaidDrinksCustomerRightTimer

              MaidDrinksCustomerRightTimer: number = -1

              MaidDrinksCustomerRightVisible

              MaidDrinksCustomerRightVisible: boolean = false

              MaidDrinksKeys

              MaidDrinksKeys: string[] = ...

              MaidDrinksLastMoveType

              MaidDrinksLastMoveType: number = -1

              MaidDrinksLastMoveTypeTimer

              MaidDrinksLastMoveTypeTimer: number = -1

              MaidDrinksMaxSequence

              MaidDrinksMaxSequence: number = 1000

              MaidDrinksMove

              MaidDrinksMove: { FadeAt: number; Time: number; Type: number }[] = []

              MaidQuartersBackground

              MaidQuartersBackground: string = "MaidQuarters"

              MaidQuartersCanBecomeHeadMaid

              MaidQuartersCanBecomeHeadMaid: boolean = false

              MaidQuartersCanBecomeMaid

              MaidQuartersCanBecomeMaid: boolean = false

              MaidQuartersCannotBecomeHeadMaidYet

              MaidQuartersCannotBecomeHeadMaidYet: boolean = false

              MaidQuartersCannotBecomeMaidYet

              MaidQuartersCannotBecomeMaidYet: boolean = false

              MaidQuartersCurrentRescue

              MaidQuartersCurrentRescue: string = ""

              MaidQuartersCurrentRescueCompleted

              MaidQuartersCurrentRescueCompleted: boolean = false

              MaidQuartersCurrentRescueStarted

              MaidQuartersCurrentRescueStarted: boolean = false

              MaidQuartersDominantRep

              MaidQuartersDominantRep: number = 0

              MaidQuartersIsHeadMaid

              MaidQuartersIsHeadMaid: boolean = false

              MaidQuartersIsMaid

              MaidQuartersIsMaid: boolean = false

              MaidQuartersItemClothPrev

              MaidQuartersItemClothPrev: { Cloth?: Item; Hat?: Item; ItemArms?: Item; ItemFeet?: Item; ItemLegs?: Item } = ...

              Type declaration

              • optionalCloth?: Item
              • optionalHat?: Item
              • optionalItemArms?: Item
              • optionalItemFeet?: Item
              • optionalItemLegs?: Item

              MaidQuartersMaid

              MaidQuartersMaid: NPCCharacter = null

              MaidQuartersMaidInitiation

              MaidQuartersMaidInitiation: NPCCharacter = null

              MaidQuartersMaidReleasedPlayer

              MaidQuartersMaidReleasedPlayer: boolean = false

              MaidQuartersOnlineDrinkCount

              MaidQuartersOnlineDrinkCount: number = 0

              MaidQuartersOnlineDrinkCustomer

              MaidQuartersOnlineDrinkCustomer: number[] = []

              MaidQuartersOnlineDrinkFromOwner

              MaidQuartersOnlineDrinkFromOwner: boolean = false

              MaidQuartersOnlineDrinkStarted

              MaidQuartersOnlineDrinkStarted: boolean = false

              MaidQuartersOnlineDrinkValue

              MaidQuartersOnlineDrinkValue: number = 0

              MaidQuartersRescueList

              MaidQuartersRescueList: string[] = ...

              MaidQuartersRescueStage

              MaidQuartersRescueStage: string[] = ...

              MaidQuartersSelfBondageMaidCleaningAccepted

              MaidQuartersSelfBondageMaidCleaningAccepted: boolean = false

              MaidQuartersSelfBondageMaidDrinksAccepted

              MaidQuartersSelfBondageMaidDrinksAccepted: boolean = false

              MainCanvas

              MainCanvas: CanvasRenderingContext2D

              The main game canvas where everything will be drawn

              constMainCanvasHeight

              MainCanvasHeight: 1000 = 1000

              constMainCanvasWidth

              MainCanvasWidth: 2000 = 2000

              MainHallAsylumOpen

              MainHallAsylumOpen: boolean = true

              MainHallBackground

              MainHallBackground: string = "MainHall"

              MainHallBeingPunished

              MainHallBeingPunished: boolean = false

              Whether the player just got safeworded out of a chatroom and needs punishment

              MainHallFirstFrame

              MainHallFirstFrame: boolean = true

              MainHallHasFamilyLock

              MainHallHasFamilyLock: boolean = false

              MainHallHasLoverLock

              MainHallHasLoverLock: boolean = false

              MainHallHasOwnerLock

              MainHallHasOwnerLock: boolean = false

              MainHallHasSlaveCollar

              MainHallHasSlaveCollar: boolean = false

              MainHallIsHeadMaid

              MainHallIsHeadMaid: boolean = false

              MainHallIsMaid

              MainHallIsMaid: boolean = false

              MainHallMaid

              MainHallMaid: NPCCharacter = null

              MainHallMaidWasCalledManually

              MainHallMaidWasCalledManually: boolean = false

              MainHallMaxTip

              MainHallMaxTip: number = 36

              The max number of known tips

              MainHallNextEventTimer

              MainHallNextEventTimer: number = null

              MainHallPunishmentChoice

              MainHallPunishmentChoice: number = 0

              MainHallPunishmentList

              MainHallPunishmentList: ({ ItemArms?: undefined; ItemBoots?: undefined; ItemBreast?: undefined; ItemFeet?: undefined; ItemHands: string; ItemHead: string; ItemLegs?: undefined; ItemMouth: string; ItemPelvis?: undefined; ItemVulva?: undefined } | { ItemArms: string; ItemBoots: string; ItemBreast: string; ItemFeet?: undefined; ItemHands: string; ItemHead: string; ItemLegs: string; ItemMouth: string; ItemPelvis: string; ItemVulva: string } | { ItemArms: string; ItemBoots: string; ItemBreast: string; ItemFeet: string; ItemHands: string; ItemHead: string; ItemLegs: string; ItemMouth: string; ItemPelvis: string; ItemVulva: string })[] = ...

              MainHallRandomEventOdds

              MainHallRandomEventOdds: number = 0

              MainHallRopeColor

              MainHallRopeColor: string = "Default"

              MainHallStartEventTimer

              MainHallStartEventTimer: number = null

              MainHallStrongLocks

              MainHallStrongLocks: AssetLockType[] = ...

              MainHallTip

              MainHallTip: number = 0

              The index of the current tip

              MainHallTipCycleDelay

              MainHallTipCycleDelay: number = 10000

              The max delay to wait before changing the current tip

              MainHallTipCycleTimer

              MainHallTipCycleTimer: number = null

              The timer that tracks the last time the tip cycled

              ManagementBackground

              ManagementBackground: string = "Management"

              ManagementCanReleaseChastity

              ManagementCanReleaseChastity: boolean = true

              ManagementEmpty

              ManagementEmpty: boolean = false

              ManagementMistress

              ManagementMistress: NPCCharacter = null

              ManagementMistressAllowPlay

              ManagementMistressAllowPlay: boolean = false

              ManagementMistressAngryCount

              ManagementMistressAngryCount: number = 0

              ManagementMistressReleaseTimer

              ManagementMistressReleaseTimer: number = 0

              ManagementPlayerAppearance

              ManagementPlayerAppearance: Item[] = null

              ManagementRandomActivity

              ManagementRandomActivity: string = ""

              ManagementRandomActivityCategory

              ManagementRandomActivityCategory: string = ""

              ManagementRandomActivityCategoryList

              ManagementRandomActivityCategoryList: string[] = ...

              ManagementRandomActivityCount

              ManagementRandomActivityCount: number = 0

              ManagementRandomActivityList

              ManagementRandomActivityList: string[] = ...

              ManagementRandomGirl

              ManagementRandomGirl: NPCCharacter = null

              ManagementRandomGirlArchetype

              ManagementRandomGirlArchetype: | NPCArchetype = ""

              ManagementRandomTalkCount

              ManagementRandomTalkCount: number = 0

              ManagementSub

              ManagementSub: NPCCharacter = null

              ManagementTimer

              ManagementTimer: number = 0

              ManagementVisitRoom

              ManagementVisitRoom: boolean = false

              MiniGameAdvancedPayment

              MiniGameAdvancedPayment: number = 0

              MiniGameCheatAvailable

              MiniGameCheatAvailable: boolean = false

              MiniGameChessBoard

              MiniGameChessBoard: any = null

              MiniGameChessGame

              MiniGameChessGame: any = null

              MiniGameDifficulty

              MiniGameDifficulty: number = 0

              MiniGameDifficultyMode

              MiniGameDifficultyMode: string = ""

              MiniGameDifficultyRatio

              MiniGameDifficultyRatio: number = 1

              MiniGameEnded

              MiniGameEnded: boolean = false

              MiniGamePerfect

              MiniGamePerfect: boolean = true

              MiniGameProgress

              MiniGameProgress: number = -1

              MiniGameReturnFunction

              MiniGameReturnFunction: string = ""

              MiniGameStarted

              MiniGameStarted: boolean = false

              MiniGameTimer

              MiniGameTimer: number = 0

              MiniGameType

              MiniGameType: string = ""

              MiniGameVictory

              MiniGameVictory: boolean = false

              MistressTimerChooseIndex

              MistressTimerChooseIndex: number = 0

              constMistressTimerChooseList

              MistressTimerChooseList: number[] = ...

              constModularItemBase

              ModularItemBase: Base = "Base"

              The keyword used for the base menu on modular items

              @const

              ModularItemChatSetting

              ModularItemChatSetting: Record<PER_MODULE | PER_OPTION, ModularItemChatSetting>

              An enum encapsulating the possible chatroom message settings for modular items

              • PER_MODULE - The item has one chatroom message per module (messages for individual options within a module are all the same)
              • PER_OPTION - The item has one chatroom message per option (for finer granularity - each individual option within a module can have its own chatroom message)

              constModularItemDataLookup

              ModularItemDataLookup: Record<string, ModularItemData> = {}

              A lookup for the modular item configurations for each registered modular item

              @const
              @see

              MouseX

              MouseX: number = 0

              MouseY

              MouseY: number = 0

              MovieStudioActivity

              MovieStudioActivity: string[] = []

              MovieStudioActor1

              MovieStudioActor1: NPCCharacter = null

              MovieStudioActor2

              MovieStudioActor2: NPCCharacter = null

              MovieStudioBackground

              MovieStudioBackground: string = "MovieStudio"

              MovieStudioCurrentMovie

              MovieStudioCurrentMovie: string = ""

              MovieStudioCurrentRole

              MovieStudioCurrentRole: string = ""

              MovieStudioCurrentScene

              MovieStudioCurrentScene: string = ""

              MovieStudioDailyMovie

              MovieStudioDailyMovie: string = ""

              MovieStudioDecay

              MovieStudioDecay: number = 0

              MovieStudioDirector

              MovieStudioDirector: NPCCharacter = null

              MovieStudioMeter

              MovieStudioMeter: number = 0

              MovieStudioMoney

              MovieStudioMoney: number = 0

              MovieStudioOriginalClothes

              MovieStudioOriginalClothes: Item[] = null

              MovieStudioTimer

              MovieStudioTimer: number = null

              NPCCollaringBackground

              NPCCollaringBackground: string = "Management"

              NPCCollaringGirlLeft

              NPCCollaringGirlLeft: NPCCharacter = null

              NPCCollaringGirlRight

              NPCCollaringGirlRight: NPCCharacter = null

              NPCCollaringMistressLeft

              NPCCollaringMistressLeft: NPCCharacter = null

              NPCCollaringMistressRight

              NPCCollaringMistressRight: NPCCharacter = null

              NPCCollaringSub

              NPCCollaringSub: NPCCharacter = null

              NPCSlaveAuctionAmount

              NPCSlaveAuctionAmount: number = 0

              NPCSlaveAuctionBackground

              NPCSlaveAuctionBackground: string = "SlaveMarket"

              NPCSlaveAuctionGirlLeft

              NPCSlaveAuctionGirlLeft: NPCCharacter = null

              NPCSlaveAuctionGirlRight

              NPCSlaveAuctionGirlRight: NPCCharacter = null

              NPCSlaveAuctionMistress

              NPCSlaveAuctionMistress: NPCCharacter = null

              NPCSlaveAuctionSlave

              NPCSlaveAuctionSlave: NPCCharacter = null

              NPCSlaveAuctionVendor

              NPCSlaveAuctionVendor: NPCCharacter = null

              NPCTrait

              NPCTrait: [string, string][] = ...

              List for all possible pairs of NPC traits. A pair defines opposites.

              @constant

              NPCWeddingBackground

              NPCWeddingBackground: string = "Management"

              NPCWeddingGirlLeft

              NPCWeddingGirlLeft: NPCCharacter = null

              NPCWeddingGirlRight

              NPCWeddingGirlRight: NPCCharacter = null

              NPCWeddingWife

              NPCWeddingWife: NPCCharacter = null

              NicknameManagementBackground

              NicknameManagementBackground: string = "Sheet"

              NicknameManagementLock

              NicknameManagementLock: boolean = false

              NicknameManagementTarget

              NicknameManagementTarget: Character | NPCCharacter = null

              constNoArch

              NoArch: { Click: (data: ExtendedItemData<any>) => boolean; Draw: (data: ExtendedItemData<any>) => void; Init: (data: ExtendedItemData<any>, C: Character, item: Item, push?: boolean, refresh?: boolean) => boolean } = ...

              Type declaration

              constNoArchItemDataLookup

              NoArchItemDataLookup: Record<string, NoArchItemData> = {}

              A lookup for the text item configurations for each registered text item

              @const
              @see

              constNotificationAlertType

              NotificationAlertType: Record<NONE | TITLEPREFIX | FAVICON | POPUP, NotificationAlertType> = ...

              An enum for the types of notifications that can be raised

              NotificationAlertTypeList

              NotificationAlertTypeList: NotificationAlertType[] = []

              constNotificationAudioType

              NotificationAudioType: Record<NONE | FIRST | REPEAT, NotificationAudioType> = ...

              An enum for the audio settings for notifications

              NotificationAudioTypeList

              NotificationAudioTypeList: NotificationAudioType[] = []

              NotificationEventHandlers

              NotificationEventHandlers: Record<NotificationEventType, NotificationEventHandler>

              constNotificationEventType

              NotificationEventType: { BEEP: Beep; CHATJOIN: ChatJoin; CHATMESSAGE: ChatMessage; DISCONNECT: Disconnect; LARP: Larp; TEST: Test } = ...

              An enum for the events in the game that notifications can be raised for


              Type declaration

              • BEEP: Beep
              • CHATJOIN: ChatJoin
              • CHATMESSAGE: ChatMessage
              • DISCONNECT: Disconnect
              • LARP: Larp
              • TEST: Test

              NurseryABDL1

              NurseryABDL1: NPCCharacter = null

              NurseryABDL2

              NurseryABDL2: NPCCharacter = null

              NurseryBackground

              NurseryBackground: string = "Nursery"

              NurseryCoolDownTime

              NurseryCoolDownTime: number = 0

              NurseryEscapeAttempts

              NurseryEscapeAttempts: number = null

              NurseryGateMsg

              NurseryGateMsg: boolean = null

              message about nursery gate

              NurseryJustClicked

              NurseryJustClicked: any = null

              NurseryLeaveMsg

              NurseryLeaveMsg: number = null

              message about ease of opening nursery gate

              NurseryNurse

              NurseryNurse: NPCCharacter = null

              NurseryPlayerAppearance

              NurseryPlayerAppearance: Item[] = null

              NurseryPlayerBadBabyStatus

              NurseryPlayerBadBabyStatus: number = 0

              0 = Good girl; 1 = ready to be forgiven; >= 2 = severity of naughtiness.

              NurseryPlayerInappropriateCloth

              NurseryPlayerInappropriateCloth: boolean = null

              NurseryPlayerKeepsLoosingBinky

              NurseryPlayerKeepsLoosingBinky: boolean = null

              NurseryRepeatOffender

              NurseryRepeatOffender: number = null

              NurserySituation

              NurserySituation: string = null

              NursuryEscapeFailMsg

              NursuryEscapeFailMsg: number = null

              readonlyONLINE_PROFILE_DESCRIPTION_COMPRESSION_MAGIC

              ONLINE_PROFILE_DESCRIPTION_COMPRESSION_MAGIC: string = ...

              Character used to signal, that description is compressed

              OnlineGameDictionary

              OnlineGameDictionary: string[][] = null

              OnlineProfileBackground

              OnlineProfileBackground: string = "Sheet"

              OwnerTimerChooseIndex

              OwnerTimerChooseIndex: number = 0

              constOwnerTimerChooseList

              OwnerTimerChooseList: number[] = ...

              PandoraBackground

              PandoraBackground: string = "Pandora/Ground/Entrance"

              PandoraChestCount

              PandoraChestCount: number = 0

              PandoraClothes

              PandoraClothes: string = "Random"

              PandoraCurrentRoom

              PandoraCurrentRoom: PandoraBaseRoom = null

              PandoraDirectionList

              PandoraDirectionList: PandoraFloorDirection[] = ...

              PandoraDirectionListFrom

              PandoraDirectionListFrom: PandoraFloorDirection[] = ...

              PandoraFightCharacter

              PandoraFightCharacter: NPCCharacter = null

              PandoraMaxWillpower

              PandoraMaxWillpower: number = 20

              PandoraMessage

              PandoraMessage: any = null

              PandoraMode

              PandoraMode: | Rest | Search | Paint = ""

              PandoraModeAppearance

              PandoraModeAppearance: any = null

              PandoraModeTimer

              PandoraModeTimer: number = 0

              PandoraMoney

              PandoraMoney: number = 0

              PandoraMoveDirectionTimer

              PandoraMoveDirectionTimer: { Direction: string; Timer: number } = ...

              Type declaration

              • Direction: string
              • Timer: number

              PandoraPaint

              PandoraPaint: boolean = false

              PandoraParty

              PandoraParty: NPCCharacter[] = []

              PandoraPreviousRoom

              PandoraPreviousRoom: PandoraBaseRoom = null

              PandoraPrisonBackground

              PandoraPrisonBackground: string = "Cell"

              PandoraPrisonBribeEnabled

              PandoraPrisonBribeEnabled: boolean = true

              PandoraPrisonCharacter

              PandoraPrisonCharacter: NPCCharacter = null

              PandoraPrisonCharacterTimer

              PandoraPrisonCharacterTimer: number = 0

              PandoraPrisonEscaped

              PandoraPrisonEscaped: boolean = false

              PandoraPrisonGuard

              PandoraPrisonGuard: NPCCharacter = null

              PandoraPrisonMaid

              PandoraPrisonMaid: NPCCharacter = null

              PandoraQuickieCount

              PandoraQuickieCount: number = 0

              PandoraQuickiePleasure

              PandoraQuickiePleasure: number = 0

              PandoraRandomNPCList

              PandoraRandomNPCList: string[] = ...

              PandoraReverseMaidDone

              PandoraReverseMaidDone: number = 0

              PandoraReverseMaidTotal

              PandoraReverseMaidTotal: number = 0

              PandoraRoom

              PandoraRoom: PandoraBaseRoom[] = []

              PandoraTargetRoom

              PandoraTargetRoom: PandoraBaseRoom = null

              PandoraTimer

              PandoraTimer: number = 0

              PandoraWillpower

              PandoraWillpower: number = 20

              PandoraWillpowerTimer

              PandoraWillpowerTimer: number = 0

              PasswordResetBackground

              PasswordResetBackground: string = "Dressing"

              PasswordResetMessage

              PasswordResetMessage: string = ""

              PasswordTimerChooseIndex

              PasswordTimerChooseIndex: number = 0

              constPasswordTimerChooseList

              PasswordTimerChooseList: number[] = ...

              PhotographicBackground

              PhotographicBackground: string = "grey"

              PhotographicCurrendGroup

              PhotographicCurrendGroup: any = null

              PhotographicGroupStarted

              PhotographicGroupStarted: boolean = false

              PhotographicSelectText

              PhotographicSelectText: string = ""

              PhotographicSub

              PhotographicSub: NPCCharacter = null

              PhotographicSubAppearance

              PhotographicSubAppearance: Item[] = null

              PlatformAllowAudio

              PlatformAllowAudio: boolean = true

              PlatformButtons

              PlatformButtons: readonly GamepadButton[] = null

              PlatformChar

              PlatformChar: any[] = []

              PlatformCooldown

              PlatformCooldown: any[] = []

              PlatformDialog

              PlatformDialog: any = null

              PlatformDialogAnswer

              PlatformDialogAnswer: any = null

              PlatformDialogAnswerLength

              PlatformDialogAnswerLength: number = 0

              PlatformDialogAnswerPosition

              PlatformDialogAnswerPosition: number = 0

              PlatformDialogAudio

              PlatformDialogAudio: any = null

              PlatformDialogAudioStyle

              PlatformDialogAudioStyle: string[] = ...

              PlatformDialogBackground

              PlatformDialogBackground: any = null

              PlatformDialogCharacter

              PlatformDialogCharacter: any = null

              PlatformDialogCharacterDisplay

              PlatformDialogCharacterDisplay: any = null

              PlatformDialogCharacterTemplate

              PlatformDialogCharacterTemplate: ({ Color: string; Domination?: undefined; IdlePose?: undefined; Love?: undefined; Name: string; NickName?: undefined } | { Color: string; Domination: number; IdlePose: string[]; Love: number; Name: string; NickName?: undefined } | { Color: string; Domination: number; IdlePose?: undefined; Love: number; Name: string; NickName?: undefined } | { Color: string; Domination?: undefined; IdlePose?: undefined; Love?: undefined; Name: string; NickName: string })[] = ...

              PlatformDialogControllerHandle

              PlatformDialogControllerHandle: boolean = false

              PlatformDialogData

              PlatformDialogData: ({ Dialog: ({ Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number; Y: number }[]; Text: string } | { Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number; Y: number }[]; Text?: undefined } | { Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Audio: string; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; Goto?: undefined; Reply: string; Text: string } | { Audio: string; Goto: string; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; ID?: undefined; Text: string } | { Answer: { Audio: string; Reply: string; Text: string }[]; Audio: string; Background?: undefined; Character?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; ID: string; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: { Audio: string; Reply: string; Text: string }[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Animation: string; Name: string; Status: string }[]; Text: string } | { Answer: ({ Audio: string; Domination?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Reply: string; Text: string })[]; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Love?: undefined; Reply: string; Text: string } | { Audio: string; Love: number; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer: ({ Audio: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer: ({ Audio: string; Goto?: undefined; Reply: string; Text: string } | { Audio: string; Goto: string; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; Love: number; Reply: string; Text: string } | { Audio?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio?: undefined; Domination: number; Goto?: undefined; Reply: string; Text: string } | { Audio?: undefined; Domination?: undefined; Goto?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Goto: string; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Goto: string; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript: () => O221 | O222; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript: () => Can I have my orgasm Lady Olivia? | It's time for the climax. } | { Answer?: undefined; Audio?: undefined; AudioScript: () => string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript: () => Yes, you can have your orgasm my maid. | (She smiles and watches you carefully.) } | { Answer?: undefined; Audio: string; AudioScript?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; Goto?: undefined; Reply: string; Text: string } | { Audio: string; Goto: string; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; ID: string; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: { Reply: string; Text: string }[]; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Love: number; Reply: string; Text: string } | { Audio: string; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioScript?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript: () => 11 | 12; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text?: undefined; TextScript: () => Is it you Melody? Are you a zombie? | Hey! I'm Edlaran, a wood elf, are you a zombie? } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string; TextScript?: undefined })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Reply: string; Script?: undefined; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Script?: undefined; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Reply?: undefined; Script: () => void; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Goto?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Goto: string; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer: ({ Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Domination: number; Goto?: undefined; Love?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination: number; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Goto: string; Love: number; Reply: string; Text: string })[]; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Goto?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto: string; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto: string; Love: number; Reply: string; Text: string })[]; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto: string; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: ({ Name: string; Pose: string; Status: string; X: number } | { Name: string; Pose: string; Status: string; X?: undefined })[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto: string; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Goto?: undefined; Reply: string; Text: string })[]; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; ID: string; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Goto: string; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: ({ Name: string; Pose: string; Status: string; X: number } | { Name: string; Pose: string; Status: string; X?: undefined })[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID: string; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; ID: string; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer: ({ Reply: string; Script?: undefined; Text: string } | { Reply?: undefined; Script: () => void; Text: string })[]; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio: string; AudioStyle: string; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Audio: string; AudioStyle: string; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text: string } | { Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio: string; AudioStyle: string; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; Y: number }[]; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio: string; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text: string } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk: boolean; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioScript?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript: () => 81 | 82 | 83 | 84 | 85 | 86; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined; TextScript: () => My dear Olivia, together we are unstoppable. | Olivia, I'm glad we are in this mess together. | Little lady, I'll be there to lock you up every night. | Olivia, I'll be there to protect you. | Lady Olivia, your maid will be there to serve and obey you. (You do a maid curtsy.) | Lady Olivia, I'll be there to help you. } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; ID?: undefined; Text?: undefined; TextScript?: undefined } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Goto?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Goto: string; Love: number; Reply: string; Text: string })[]; Audio: string; AudioScript?: undefined; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio?: undefined; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string; TextScript?: undefined } | { Answer?: undefined; Audio: string; AudioScript?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string; TextScript?: undefined })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Script?: undefined; Text: string } | { Audio: string; AudioStyle: string; Love: number; Perk?: undefined; Reply: string; Script: () => void; Text: string } | { Audio: string; AudioStyle?: undefined; Love: number; Perk: boolean; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Reply: string; Script: () => void; Text: string } | { Audio: string; Domination?: undefined; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: ({ Animation?: undefined; Name: string; Pose: string; Status: string; X: number } | { Animation: string; Name: string; Pose?: undefined; Status: string; X: number })[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Domination: number; Reply: string; Text: string } | { Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character: ({ Animation: string; Name: string; Pose?: undefined; Status: string; X: number } | { Animation?: undefined; Name: string; Pose: string; Status: string; X: number })[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string }[]; Entry?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; Text?: undefined } | { Answer: ({ Domination?: undefined; Love?: undefined; Reply: string; Script: () => void; Text: string } | { Domination: number; Love: number; Reply: string; Script?: undefined; Text: string } | { Domination?: undefined; Love: number; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry: () => void; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Love?: undefined; Reply?: undefined; Script: () => void; Text: string } | { Domination: number; Love: number; Reply?: undefined; Script: () => void; Text: string } | { Domination?: undefined; Love?: undefined; Reply: string; Script: () => void; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Domination: number; Love: number; Reply: string; Text: string } | { Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; TextScript?: undefined } | { Background?: undefined; Character?: undefined; Entry?: undefined; TextScript: () => (The crate is open and empty.) | (It's too dangerous to inspect the crate while it's guarded.) })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Reply: string; Script: () => void; Text: string } | { Reply?: undefined; Script: () => void; Text: string })[]; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: ({ Animation?: undefined; Name: string; Pose: string; Status: string } | { Animation: string; Name: string; Pose?: undefined; Status: string })[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Text?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination?: undefined; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto: string; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number; Y: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: ({ Name: string; Pose: string; Status: string; X: number; Y: number } | { Name: string; Pose: string; Status: string; X?: undefined; Y?: undefined })[]; Entry?: undefined; ID?: undefined; Text?: undefined } | { Answer: ({ Domination?: undefined; Love: number; Reply: string; Text: string } | { Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio?: undefined; AudioStyle?: undefined; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination: number; Goto: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Goto: string; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Goto?: undefined; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer: ({ Reply?: undefined; Script: () => void; Text: string } | { Reply: string; Script?: undefined; Text: string })[]; Audio?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Audio?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string; X: number; Y: number }[]; Text?: undefined } | { Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Audio: string; Background: string; Character: { Animation: string; Name: string; Status: string; X: number; Y: number }[]; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer: ({ Domination?: undefined; Love: number; Reply: string; Text: string } | { Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Text: string })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer: ({ Love: number; Reply: string; Script?: undefined; Text: string } | { Love?: undefined; Reply?: undefined; Script: () => void; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Animation: string; Name: string; Status: string; Y: number }[]; Entry?: undefined; Text?: undefined } | { Answer: ({ Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio?: undefined; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Audio: string; Domination: number; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Love: number; Reply: string; Script: () => void; Text: string } | { Audio: string; Domination: number; Love?: undefined; Reply: string; Script?: undefined; Text: string } | { Audio?: undefined; Domination: number; Love?: undefined; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID: string; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Love: number; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Love?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Love: number; Reply: string; Text: string })[]; Audio: string; Background?: undefined; Character?: undefined; Text: string } | { Answer: { Audio: string; Domination: number; Reply: string; Text: string }[]; Audio: string; Background?: undefined; Character?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; Prerequisite: () => boolean; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; Background?: undefined; Character?: undefined; Entry?: undefined; Prerequisite?: undefined; Text: string } | { Answer: { Audio: string; Reply: string; Text: string }[]; Audio: string; Background?: undefined; Character?: undefined; Entry?: undefined; Prerequisite?: undefined; Text: string })[]; Exit: () => void; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Goto?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Script: () => void; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Goto: string; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; Domination: number; Reply: string; Text: string } | { Audio?: undefined; Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Script: () => void; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Goto: string; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Goto?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Goto?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Goto: string; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID: string; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Script: () => void; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Goto: string; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle?: undefined; Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Goto?: undefined; Reply: string; Script: () => void; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Goto: string; Reply: string; Script?: undefined; Text: string })[]; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Goto?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love: number; Perk?: undefined; Reply: string; Text: string } | { Goto: string; Love?: undefined; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Background?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Background?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle?: undefined; Domination: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Reply: string; Text: string } | { Audio?: undefined; AudioStyle?: undefined; Domination: number; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Audio: string; AudioStyle: string; Domination: number; Love: number; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string } | { Dialog: ({ Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer: ({ Domination?: undefined; Goto?: undefined; Perk?: undefined; Reply: string; Text: string } | { Domination: number; Goto: string; Perk?: undefined; Reply: string; Text: string } | { Domination?: undefined; Goto: string; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer: ({ Domination: number; Reply: string; Text: string } | { Domination?: undefined; Reply: string; Text: string })[]; Audio: string; AudioStyle: string; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle: string; Character?: undefined; Entry: () => void; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character: { Name: string; Pose: string; Status: string; X: number }[]; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text?: undefined } | { Answer: ({ Audio: string; AudioStyle: string; Domination?: undefined; Love: number; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination?: undefined; Love?: undefined; Perk?: undefined; Reply: string; Text: string } | { Audio: string; AudioStyle: string; Domination: number; Love: number; Perk: boolean; Reply: string; Text: string })[]; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite?: undefined; Text: string } | { Answer?: undefined; Audio: string; AudioStyle?: undefined; Character?: undefined; Entry?: undefined; ID?: undefined; Prerequisite: () => boolean; Text: string } | { Answer?: undefined; Audio?: undefined; AudioStyle?: undefined; Character?: undefined; Entry: () => void; ID: string; Prerequisite?: undefined; Text?: undefined })[]; Exit?: undefined; Music: string; Name: string })[] = ...

              PlatformDialogGoto

              PlatformDialogGoto: any = null

              PlatformDialogPosition

              PlatformDialogPosition: number = 0

              PlatformDialogReply

              PlatformDialogReply: any = null

              PlatformDialogText

              PlatformDialogText: any = null

              PlatformDrawUpArrow

              PlatformDrawUpArrow: any[] = ...

              PlatformEvent

              PlatformEvent: any[] = []

              PlatformExperienceForLevel

              PlatformExperienceForLevel: number[] = ...

              PlatformFloor

              PlatformFloor: number = 1180

              PlatformFocusCharacter

              PlatformFocusCharacter: any = null

              PlatformGiftMode

              PlatformGiftMode: boolean = false

              PlatformGravitySpeed

              PlatformGravitySpeed: number = 6

              PlatformHeal

              PlatformHeal: any = null

              PlatformHeartEffect

              PlatformHeartEffect: boolean = false

              PlatformImmunityTime

              PlatformImmunityTime: number = 500

              PlatformIntroDrawAsset

              PlatformIntroDrawAsset: number = -1

              PlatformInventory

              PlatformInventory: any[] = []

              PlatformInventoryList

              PlatformInventoryList: { Description: string; DisplayName: string; Name: string; OnGive: (Char: any) => void }[] = ...

              PlatformJumpPhase

              PlatformJumpPhase: string = ""

              PlatformKeys

              PlatformKeys: any[] = []

              PlatformLastKeyCode

              PlatformLastKeyCode: string = ""

              PlatformLastKeyTime

              PlatformLastKeyTime: number = 0

              PlatformLastTime

              PlatformLastTime: any = null

              PlatformLastTouch

              PlatformLastTouch: TouchList = null

              PlatformMessage

              PlatformMessage: any = null

              PlatformMusic

              PlatformMusic: any = null

              PlatformParty

              PlatformParty: any[] = []

              PlatformPlayer

              PlatformPlayer: any = null

              PlatformPlayerIdleLast

              PlatformPlayerIdleLast: string = ""

              PlatformPlayerIdleTimer

              PlatformPlayerIdleTimer: any = null

              PlatformRegen

              PlatformRegen: number = 0

              PlatformRightButtons

              PlatformRightButtons: any[] = []

              PlatformRoom

              PlatformRoom: any = null

              PlatformRoomList

              PlatformRoomList: ({ AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal: number; Height: number; LimitLeft: number; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground: string; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal: number; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground: string; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal: number; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character: { Combat: boolean; Dialog: string; Fix: boolean; Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter: string; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry?: undefined; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door?: undefined; Entry: () => void; Heal?: undefined; Height?: undefined; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text?: undefined; Width?: undefined } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: any[]; Entry?: undefined; Heal: number; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground: string; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal: number; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: ({ Combat: boolean; Dialog: string; Fix: boolean; Name: string; Status: string; X: number } | { Combat?: undefined; Dialog?: undefined; Fix?: undefined; Name: string; Status: string; X: number })[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground: string; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground: string; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft: number; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number }[]; Entry: () => void; Heal: number; Height: number; LimitLeft?: undefined; LimitRight: number; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: ({ FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number } | { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft?: undefined; ToX: number })[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character: { Name: string; Status: string; X: number }[]; Door: ({ FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number } | { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft?: undefined; ToX: number })[]; Entry?: undefined; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number } | { AlternateBackground?: undefined; Background: string; BackgroundFilter?: undefined; Character?: undefined; Door: ({ FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft: boolean; ToX: number } | { FromH: number; FromType: string; FromW: number; FromX: number; FromY: number; Name: string; ToFaceLeft?: undefined; ToX: number })[]; Entry: () => void; Heal?: undefined; Height: number; LimitLeft?: undefined; LimitRight?: undefined; Music: string; Name: string; Text: string; Width: number })[] = ...

              PlatformRunDirection

              PlatformRunDirection: string = ""

              PlatformRunStandaloneMode

              PlatformRunStandaloneMode: boolean = false

              PlatformRunTime

              PlatformRunTime: number = 0

              PlatformSaveMode

              PlatformSaveMode: boolean = false

              PlatformShowHitBox

              PlatformShowHitBox: boolean = false

              PlatformTempEvent

              PlatformTempEvent: any[] = []

              PlatformTemplate

              PlatformTemplate: ({ Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack: { Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; Name: string; Speed: number; StartAudio: string[] }[]; BindAudio: string[]; CollisionDamage: number; CrawlSpeed: number; DamageAudio: string[]; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio: string[]; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel: number; Height: number; HitBox: number[]; IdleAudio: string[]; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk: string; PerkName: string[]; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: ({ Audio?: undefined; Cycle: number[]; Name: string; Speed: number } | { Audio: string[]; Cycle: number[]; Name: string; Speed: number })[]; Attack: ({ Cooldown?: undefined; Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; Magic?: undefined; Name: string; Speed: number; StartAudio: string[] } | { Cooldown?: undefined; Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; Magic?: undefined; Name: string; Speed: number; StartAudio?: undefined } | { Cooldown: number; Damage: number[]; HitAnimation: number[]; HitAudio?: undefined; HitBox: number[]; Magic: number; Name: string; Speed: number; StartAudio?: undefined })[]; BindAudio: string[]; CollisionDamage: number; CrawlSpeed: number; DamageAudio: string[]; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio: string[]; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel: number; Height: number; HitBox: number[]; IdleAudio: string[]; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds?: undefined; LootOdds?: undefined; Magic: number; MagicPerLevel: number; Name: string; OnBind?: undefined; Perk: string; PerkName: string[]; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: ({ Audio?: undefined; Cycle: number[]; Name: string; Speed: number } | { Audio: string[]; Cycle: number[]; Name: string; Speed: number })[]; Attack: ({ Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; Name: string; Speed: number; StartAudio: string[] } | { Damage?: undefined; HitAnimation?: undefined; HitAudio?: undefined; HitBox?: undefined; Name: string; Speed: number; StartAudio?: undefined })[]; BindAudio: string[]; CollisionDamage: number; CrawlSpeed: number; DamageAudio: string[]; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio: string[]; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel: number; Height: number; HitBox: number[]; IdleAudio: string[]; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk: string; PerkName: string[]; PetrifyOnWound?: undefined; Projectile: number; ProjectileDamage: number[]; ProjectileHitAudio: string[]; ProjectileName: string; ProjectileOdds?: undefined; ProjectileTime: number; ProjectileType: string; RunHeight?: undefined; RunOdds?: undefined; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack: ({ Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; JumpForce?: undefined; Name: string; Speed: number; StartAudio: string[] } | { Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; JumpForce?: undefined; Name: string; Speed: number; StartAudio?: undefined } | { Damage: number[]; HitAnimation: number[]; HitAudio: string[]; HitBox: number[]; JumpForce: number; Name: string; Speed: number; StartAudio: string[] } | { Damage?: undefined; HitAnimation?: undefined; HitAudio?: undefined; HitBox?: undefined; JumpForce?: undefined; Name: string; Speed: number; StartAudio?: undefined })[]; BindAudio: string[]; CollisionDamage: number; CrawlSpeed: number; DamageAudio: string[]; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio: string[]; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel: number; Height: number; HitBox: number[]; IdleAudio: string[]; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds: number; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk: string; PerkName: string[]; PetrifyOnWound?: undefined; Projectile: number; ProjectileDamage: number[]; ProjectileHitAudio?: undefined; ProjectileName: string; ProjectileOdds: number; ProjectileTime: number; ProjectileType: string; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio: string[]; CollisionDamage?: undefined; CrawlSpeed: number; DamageAudio: string[]; DamageBackOdds?: undefined; DamageFaceOdds?: undefined; DamageKnockForce?: undefined; DownAudio: string[]; ExperienceValue?: undefined; FlyingHeight?: undefined; Health: number; HealthPerLevel: number; Height: number; HitBox: number[]; IdleAudio: string[]; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk: string; PerkName: string[]; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage?: undefined; CrawlSpeed?: undefined; DamageAudio?: undefined; DamageBackOdds?: undefined; DamageFaceOdds?: undefined; DamageKnockForce?: undefined; DownAudio?: undefined; ExperienceValue?: undefined; FlyingHeight?: undefined; Health?: undefined; HealthPerLevel?: undefined; Height: number; HitBox?: undefined; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed?: undefined; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed?: undefined; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage?: undefined; CrawlSpeed?: undefined; DamageAudio?: undefined; DamageBackOdds?: undefined; DamageFaceOdds?: undefined; DamageKnockForce?: undefined; DownAudio?: undefined; ExperienceValue?: undefined; FlyingHeight?: undefined; Health?: undefined; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed?: undefined; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed?: undefined; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage?: undefined; CrawlSpeed?: undefined; DamageAudio?: undefined; DamageBackOdds?: undefined; DamageFaceOdds?: undefined; DamageKnockForce?: undefined; DownAudio?: undefined; ExperienceValue?: undefined; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox?: undefined; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds?: undefined; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed?: undefined; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed?: undefined; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed: number; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds: number; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds?: undefined; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed: number; DamageAudio?: undefined; DamageBackOdds?: undefined; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds: number; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed: number; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds: number; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: ({ Cycle: number[]; CycleLeft?: undefined; Height?: undefined; Name: string; OffsetY?: undefined; Speed: number; Width?: undefined } | { Cycle: number[]; CycleLeft: number[]; Height?: undefined; Name: string; OffsetY?: undefined; Speed: number; Width?: undefined } | { Cycle: number[]; CycleLeft?: undefined; Height: number; Name: string; OffsetY: number; Speed: number; Width: number })[]; Attack: { Damage: number[]; HitAnimation: number[]; HitBox: number[]; Name: string; Speed: number }[]; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed: number; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds: number; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce: number; JumpHitBox: number[]; JumpOdds: number; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds: number; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack: { Name: string; Speed: number }[]; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed: number; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind: () => void; Perk?: undefined; PerkName?: undefined; PetrifyOnWound?: undefined; Projectile: number; ProjectileDamage: number[]; ProjectileHitAudio?: undefined; ProjectileName: string; ProjectileOdds: number; ProjectileTime: number; ProjectileType: string; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed?: undefined; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight: number; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace: boolean; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk?: undefined; PerkName?: undefined; PetrifyOnWound: boolean; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight: number; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number } | { Animation: { Cycle: number[]; Name: string; Speed: number }[]; Attack?: undefined; BindAudio?: undefined; CollisionDamage: number; CrawlSpeed?: undefined; DamageAudio?: undefined; DamageBackOdds: number; DamageFaceOdds?: undefined; DamageKnockForce: number; DownAudio?: undefined; ExperienceValue: number; FlyingHeight?: undefined; Health: number; HealthPerLevel?: undefined; Height: number; HitBox: number[]; IdleAudio?: undefined; IdleTurnToFace?: undefined; JumpForce?: undefined; JumpHitBox?: undefined; JumpOdds?: undefined; LootOdds: number; Magic?: undefined; MagicPerLevel?: undefined; Name: string; OnBind?: undefined; Perk?: undefined; PerkName?: undefined; PetrifyOnWound: boolean; Projectile?: undefined; ProjectileDamage?: undefined; ProjectileHitAudio?: undefined; ProjectileName?: undefined; ProjectileOdds?: undefined; ProjectileTime?: undefined; ProjectileType?: undefined; RunHeight?: undefined; RunOdds: number; RunSpeed: number; StandAttackSlowOdds?: undefined; Status: string; WalkSpeed: number; Width: number })[] = ...

              PlatformTimedScreenFilter

              PlatformTimedScreenFilter: { End: number; Filter: string } = ...

              Type declaration

              • End: number
              • Filter: string

              PlatformViewX

              PlatformViewX: number = 0

              PlatformViewY

              PlatformViewY: number = 200

              Player

              PlayerAuctionBackground

              PlayerAuctionBackground: string = "SlaveMarket"

              PlayerAuctionBidAmount

              PlayerAuctionBidAmount: number = 0

              PlayerAuctionBidCurrent

              PlayerAuctionBidCurrent: number = -1

              PlayerAuctionBidNextTime

              PlayerAuctionBidNextTime: number = 0

              PlayerAuctionBidTime

              PlayerAuctionBidTime: number = 0

              PlayerAuctionCustomer

              PlayerAuctionCustomer: NPCCharacter[] = null

              PlayerAuctionEnd

              PlayerAuctionEnd: boolean = false

              PlayerAuctionPlead

              PlayerAuctionPlead: number = 0

              PlayerAuctionSilenceMode

              PlayerAuctionSilenceMode: boolean = false

              PlayerCollaringBackground

              PlayerCollaringBackground: string = "Management"

              PlayerCollaringGirlLeft

              PlayerCollaringGirlLeft: NPCCharacter = null

              PlayerCollaringGirlRight

              PlayerCollaringGirlRight: NPCCharacter = null

              PlayerCollaringMistress

              PlayerCollaringMistress: NPCCharacter = null

              PlayerCollaringMistressLeft

              PlayerCollaringMistressLeft: NPCCharacter = null

              PlayerCollaringMistressRight

              PlayerCollaringMistressRight: NPCCharacter = null

              PlayerDialog

              PlayerDialog: Map<string, string> = ...

              PlayerMistressBackground

              PlayerMistressBackground: string = "Management"

              PlayerMistressMaidLeft

              PlayerMistressMaidLeft: NPCCharacter = null

              PlayerMistressMaidRight

              PlayerMistressMaidRight: NPCCharacter = null

              PlayerMistressMistressLeft

              PlayerMistressMistressLeft: NPCCharacter = null

              PlayerMistressMistressRight

              PlayerMistressMistressRight: NPCCharacter = null

              PokerAnte

              PokerAnte: number = 2

              PokerAnteCount

              PokerAnteCount: number = 0

              PokerAsset

              PokerAsset: PokerAsset[] = ...

              PokerBackground

              PokerBackground: string = "White"

              PokerChallenge

              PokerChallenge: string[] = ...

              PokerGame

              PokerGame: PokerGameType = "TexasHoldem"

              PokerMessage

              PokerMessage: string = ""

              PokerMode

              PokerMode: PokerMode = ""

              PokerOpponentList

              PokerOpponentList: string[] = ...

              PokerPlayer

              PokerPlayer: PokerPlayer[] = ...

              PokerPlayerCount

              PokerPlayerCount: number = 4

              PokerPot

              PokerPot: number = 0

              PokerResultMessage

              PokerResultMessage: string = ""

              PokerShowPlayer

              PokerShowPlayer: boolean = true

              PokerTableCards

              PokerTableCards: number[] = []

              constPortalLinkCodeInputID

              PortalLinkCodeInputID: PortalLinkCode = "PortalLinkCode"

              The DOM ID for the sync code field

              constPortalLinkCodeLength

              PortalLinkCodeLength: 8 = 8

              Max length of sync codes

              constPortalLinkCodeRegex

              PortalLinkCodeRegex: RegExp = ...

              Same thing but in regex form for quick .test and .match

              constPortalLinkCodeText

              PortalLinkCodeText: [0-9a-f]{8} = ...

              Regex string for what consitutes a valid sync code

              constPortalLinkCopyCodeButton

              PortalLinkCopyCodeButton: RectTuple = ...

              constPortalLinkFunctionGrid

              PortalLinkFunctionGrid: CommonGenerateGridParameters = ...

              Parameters for the button grid

              constPortalLinkPasteCodeButton

              PortalLinkPasteCodeButton: RectTuple = ...

              constPortalLinkRandomCodeButton

              PortalLinkRandomCodeButton: RectTuple = ...

              constPortalLinkStatusColors

              PortalLinkStatusColors: Record<PortalLinkStatus, string> = ...

              PortalLinkTransmitterLastLinkCheck

              PortalLinkTransmitterLastLinkCheck: number = null

              PortalLinkTransmitterStatus

              PortalLinkTransmitterStatus: PortalLinkStatus = "PortalLinkInvalidCode"

              Pose

              Pose: Pose[] = []

              constPoseAllKneeling

              PoseAllKneeling: readonly (Kneel | KneelingSpread)[] = ...

              A list with all kneeling ["BodyLower"] pose names.

              constPoseAllStanding

              PoseAllStanding: readonly (BaseLower | LegsClosed | LegsOpen | Spread)[] = ...

              A list with all standing ["BodyLower"] pose names.

              constPoseCategoryPriority

              PoseCategoryPriority: { BodyAddon: number; BodyFull: number; BodyHands: number; BodyLower: number; BodyUpper: number } = ...

              A record mapping pose categories to sorting priorities.

              Used for prioritising certain poses over others in CommonDrawResolveAssetPose, a process required due to BC's lack of pose combinatorics support.


              Type declaration

              • BodyAddon: number
              • BodyFull: number
              • BodyHands: number
              • BodyLower: number
              • BodyUpper: number

              constPoseChangeStatus

              PoseChangeStatus: { ALWAYS: 3; ALWAYS_WITH_STRUGGLE: 2; NEVER: 0; NEVER_WITHOUT_AID: 1 } = ...

              Status codes for representing whether a character can or cannot change to a pose unaided.

              @see

              Type declaration

              • readonlyALWAYS: 3

                Always allow a particular change in pose

              • readonlyALWAYS_WITH_STRUGGLE: 2

                Allow a particular change in pose only via some sort of struggle (i.e. the kneeling/standing minigame)

              • readonlyNEVER: 0

                Never allow a particular change in pose

              • readonlyNEVER_WITHOUT_AID: 1

                Allow a particular change in pose only with someone else's assistance

              PoseFemale3DCG

              PoseFemale3DCG: Pose[] = ...

              3D Custom Girl based pose

              PoseFemale3DCGNames

              PoseFemale3DCGNames: AssetPoseName[] = ...

              List of all available pose names in the game

              @constant

              constPoseRecord

              PoseRecord: Record<AssetPoseName, Pose> = ...

              A record mapping pose names to their respective Pose.

              constPoseType

              PoseType: { DEFAULT: ; HIDE: Hide } = ...

              Special values for AssetDefinition.PoseMapping for hiding or using pose-agnostic assets.


              Type declaration

              • readonlyDEFAULT:

                Ensures that the default (pose-agnostic) asset used for a particular pose. Supercedes the old AllowPose property.

              • readonlyHIDE: Hide

                Ensures that the asset is hidden for a specific pose. Supercedes the old HideForPose property.

              PreferenceArousalActiveIndex

              PreferenceArousalActiveIndex: number = 0

              PreferenceArousalActiveList

              PreferenceArousalActiveList: ArousalActiveName[] = ...

              PreferenceArousalActivityDefaultCompressedString

              PreferenceArousalActivityDefaultCompressedString: string = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

              By default on new characters, all activities are neutral on self and others

              PreferenceArousalActivityFactorOther

              PreferenceArousalActivityFactorOther: ArousalFactor = 0

              PreferenceArousalActivityFactorSelf

              PreferenceArousalActivityFactorSelf: ArousalFactor = 0

              PreferenceArousalActivityIndex

              PreferenceArousalActivityIndex: number = 0

              PreferenceArousalActivityList

              PreferenceArousalActivityList: ActivityName[] = null

              PreferenceArousalAffectStutterIndex

              PreferenceArousalAffectStutterIndex: number = 0

              PreferenceArousalAffectStutterList

              PreferenceArousalAffectStutterList: ArousalAffectStutterName[] = ...

              PreferenceArousalFetishDefaultCompressedString

              PreferenceArousalFetishDefaultCompressedString: string = "fffffffffffffffffff"

              By default on new characters, all festishes are of neutral preference

              PreferenceArousalFetishFactor

              PreferenceArousalFetishFactor: ArousalFactor = 0

              PreferenceArousalFetishIndex

              PreferenceArousalFetishIndex: number = 0

              PreferenceArousalFetishList

              PreferenceArousalFetishList: FetishName[] = null

              PreferenceArousalVisibleIndex

              PreferenceArousalVisibleIndex: number = 0

              PreferenceArousalVisibleList

              PreferenceArousalVisibleList: ArousalVisibleName[] = ...

              PreferenceArousalZoneDefaultCompressedString

              PreferenceArousalZoneDefaultCompressedString: string = "ffpppfffffffffffff"

              By default on new characters, all zones are of neutral preference and vulva/clit/butt can trigger an orgasm

              PreferenceArousalZoneFactor

              PreferenceArousalZoneFactor: ArousalFactor = 0

              PreferenceBackground

              PreferenceBackground: string = "Sheet"

              The background to use for the settings screen

              PreferenceCalibrationStage

              PreferenceCalibrationStage: number = 0

              PreferenceCensoredWordsList

              PreferenceCensoredWordsList: string[] = []

              PreferenceCensoredWordsOffset

              PreferenceCensoredWordsOffset: number = 0

              PreferenceChatColorThemeIndex

              PreferenceChatColorThemeIndex: number = 0

              PreferenceChatColorThemeList

              PreferenceChatColorThemeList: ChatColorThemeType[] = ...

              PreferenceChatEnterLeaveIndex

              PreferenceChatEnterLeaveIndex: number = 0

              PreferenceChatEnterLeaveList

              PreferenceChatEnterLeaveList: ChatEnterLeaveType[] = ...

              PreferenceChatFontSizeIndex

              PreferenceChatFontSizeIndex: number = 1

              PreferenceChatFontSizeList

              PreferenceChatFontSizeList: ChatFontSizeType[] = ...

              PreferenceChatMemberNumbersIndex

              PreferenceChatMemberNumbersIndex: number = 0

              PreferenceChatMemberNumbersList

              PreferenceChatMemberNumbersList: ChatMemberNumbersType[] = ...

              PreferenceChatPageIndex

              PreferenceChatPageIndex: number = 0

              PreferenceChatPageList

              PreferenceChatPageList: number[] = ...

              PreferenceDidAddOldStyleScreens

              PreferenceDidAddOldStyleScreens: boolean = false

              PreferenceDifficultyAccept

              PreferenceDifficultyAccept: boolean = false

              PreferenceDifficultyLevel

              PreferenceDifficultyLevel: number = null

              PreferenceExtensionsCurrent

              PreferenceExtensionsCurrent: PreferenceExtensionsSettingItem = null

              PreferenceExtensionsDisplay

              PreferenceExtensionsDisplay: PreferenceExtensionsMenuButtonInfo[] = []

              PreferenceExtensionsSettings

              PreferenceExtensionsSettings: Record<string, PreferenceExtensionsSettingItem> = {}

              PreferenceGraphicsAnimationQualityIndex

              PreferenceGraphicsAnimationQualityIndex: number = null

              PreferenceGraphicsAnimationQualityList

              PreferenceGraphicsAnimationQualityList: number[] = ...

              PreferenceGraphicsFontIndex

              PreferenceGraphicsFontIndex: number = 0

              PreferenceGraphicsFontList

              PreferenceGraphicsFontList: GraphicsFontName[] = ...

              PreferenceGraphicsFrameLimit

              PreferenceGraphicsFrameLimit: number[] = ...

              PreferenceGraphicsPowerModeIndex

              PreferenceGraphicsPowerModeIndex: number = null

              PreferenceGraphicsPowerModes

              PreferenceGraphicsPowerModes: WebGLPowerPreference[] = ...

              PreferenceGraphicsWebGLOptions

              PreferenceGraphicsWebGLOptions: WebGLContextAttributes = null

              PreferenceMessage

              PreferenceMessage: string = ""

              A message shown by some subscreen

              PreferencePageCurrent

              PreferencePageCurrent: number = 1

              The current page ID for multi-page screens.

              This is automatically reset to 1 when a screen loads

              PreferenceSafewordConfirm

              PreferenceSafewordConfirm: boolean = false

              PreferenceScriptHelp

              PreferenceScriptHelp: Block | Hide | global = null

              constPreferenceScriptPermissionProperties

              PreferenceScriptPermissionProperties: ScriptPermissionProperty[] = ...

              PreferenceScriptTimeoutHandle

              PreferenceScriptTimeoutHandle: Timeout = null

              PreferenceScriptTimer

              PreferenceScriptTimer: number = null

              PreferenceScriptWarningAccepted

              PreferenceScriptWarningAccepted: boolean = false

              PreferenceSettingsDeadZoneIndex

              PreferenceSettingsDeadZoneIndex: number = 1

              PreferenceSettingsDeadZoneList

              PreferenceSettingsDeadZoneList: number[] = ...

              PreferenceSettingsMusicVolumeIndex

              PreferenceSettingsMusicVolumeIndex: number = 0

              PreferenceSettingsSensDepIndex

              PreferenceSettingsSensDepIndex: number = 0

              PreferenceSettingsSensDepList

              PreferenceSettingsSensDepList: SettingsSensDepName[] = ...

              PreferenceSettingsSensitivityIndex

              PreferenceSettingsSensitivityIndex: number = 13

              PreferenceSettingsSensitivityList

              PreferenceSettingsSensitivityList: number[] = ...

              PreferenceSettingsVFXFilterIndex

              PreferenceSettingsVFXFilterIndex: number = 0

              PreferenceSettingsVFXFilterList

              PreferenceSettingsVFXFilterList: SettingsVFXFilterName[] = ...

              PreferenceSettingsVFXIndex

              PreferenceSettingsVFXIndex: number = 0

              PreferenceSettingsVFXList

              PreferenceSettingsVFXList: SettingsVFXName[] = ...

              PreferenceSettingsVFXVibratorIndex

              PreferenceSettingsVFXVibratorIndex: number = 0

              PreferenceSettingsVFXVibratorList

              PreferenceSettingsVFXVibratorList: SettingsVFXVibratorName[] = ...

              PreferenceSettingsVolumeIndex

              PreferenceSettingsVolumeIndex: number = 0

              PreferenceSettingsVolumeList

              PreferenceSettingsVolumeList: number[] = ...

              PreferenceSubscreen

              PreferenceSubscreen: PreferenceSubscreen = null

              The currently active subscreen

              constPreferenceSubscreenChatCheckboxGrid

              PreferenceSubscreenChatCheckboxGrid: CommonGenerateGridParameters = ...

              constPreferenceSubscreenChatCheckboxes

              PreferenceSubscreenChatCheckboxes: { check: () => boolean; click: () => void; label: string }[] = ...

              PreferenceSubscreenGeneralColorPicker

              PreferenceSubscreenGeneralColorPicker: boolean = false

              PreferenceSubscreenList

              PreferenceSubscreenList: PreferenceSubscreenName[] = []
              @deprecated

              the old name. Remove after the extensions have caught up

              constPreferenceSubscreenMainGrid

              PreferenceSubscreenMainGrid: CommonGenerateGridParameters = ...

              constPreferenceSubscreens

              PreferenceSubscreens: PreferenceSubscreen[] = ...

              All the base settings screens

              PreferenceVisibilityAssetIndex

              PreferenceVisibilityAssetIndex: number = 0

              PreferenceVisibilityBlockChecked

              PreferenceVisibilityBlockChecked: boolean = false

              PreferenceVisibilityCanBlock

              PreferenceVisibilityCanBlock: boolean = true

              PreferenceVisibilityGroupIndex

              PreferenceVisibilityGroupIndex: number = 0

              PreferenceVisibilityGroupList

              PreferenceVisibilityGroupList: any[] = []

              PreferenceVisibilityHideChecked

              PreferenceVisibilityHideChecked: boolean = false

              PreferenceVisibilityPreviewAsset

              PreferenceVisibilityPreviewAsset: Asset = null

              PreferenceVisibilityRecord

              PreferenceVisibilityRecord: Partial<Record<`BodyUpper/${string}` | `BodyLower/${string}` | `Eyebrows/${string}` | `Eyes/${string}` | `Eyes2/${string}` | `Mouth/${string}` | `Pussy/${string}` | `Blush/${string}` | `Fluids/${string}` | `Emoticon/${string}` | `BodyMarkings/${string}` | `Bra/${string}` | `Bracelet/${string}` | `Cloth/${string}` | `ClothAccessory/${string}` | `ClothLower/${string}` | `Corset/${string}` | `EyeShadow/${string}` | `FacialHair/${string}` | `Garters/${string}` | `Glasses/${string}` | `Gloves/${string}` | `HairAccessory1/${string}` | `HairAccessory2/${string}` | `HairAccessory3/${string}` | `HairBack/${string}` | `HairFront/${string}` | `Hands/${string}` | `Hat/${string}` | `Head/${string}` | `Height/${string}` | `Jewelry/${string}` | `LeftAnklet/${string}` | `LeftHand/${string}` | `Mask/${string}` | `Necklace/${string}` | `Nipples/${string}` | `Panties/${string}` | `Pronouns/${string}` | `RightAnklet/${string}` | `RightHand/${string}` | `Shoes/${string}` | `Socks/${string}` | `SocksLeft/${string}` | `SocksRight/${string}` | `Suit/${string}` | `SuitLower/${string}` | `TailStraps/${string}` | `Wings/${string}` | `ItemAddon/${string}` | `ItemArms/${string}` | `ItemBoots/${string}` | `ItemBreast/${string}` | `ItemButt/${string}` | `ItemDevices/${string}` | `ItemEars/${string}` | `ItemFeet/${string}` | `ItemHands/${string}` | `ItemHead/${string}` | `ItemHood/${string}` | `ItemLegs/${string}` | `ItemMisc/${string}` | `ItemMouth/${string}` | `ItemMouth2/${string}` | `ItemMouth3/${string}` | `ItemNeck/${string}` | `ItemNeckAccessories/${string}` | `ItemNeckRestraints/${string}` | `ItemNipples/${string}` | `ItemNipplesPiercings/${string}` | `ItemNose/${string}` | `ItemPelvis/${string}` | `ItemTorso/${string}` | `ItemTorso2/${string}` | `ItemVulva/${string}` | `ItemVulvaPiercings/${string}` | `ItemHandheld/${string}` | `ItemScript/${string}`, ItemPermissions>> = {}

              PreferenceVisibilityResetClicked

              PreferenceVisibilityResetClicked: boolean = false

              PreviousDress

              PreviousDress: string = ""

              PreviousDressColor

              PreviousDressColor: string = ""

              PrisonBackground

              PrisonBackground: string = "Prison"

              PrisonBehavior

              PrisonBehavior: number = 0

              PrisonMaid

              PrisonMaid: NPCCharacter = null

              PrisonMaidAppearance

              PrisonMaidAppearance: Item[] = null

              PrisonMaidChaotic

              PrisonMaidChaotic: number = null

              PrisonMaidCharacter

              PrisonMaidCharacter: string = null

              PrisonMaidCharacterList

              PrisonMaidCharacterList: string[] = ...

              PrisonMaidIsAngry

              PrisonMaidIsAngry: boolean = false

              PrisonMaidIsPresent

              PrisonMaidIsPresent: boolean = true

              PrisonNextEvent

              PrisonNextEvent: boolean = false

              PrisonNextEventTimer

              PrisonNextEventTimer: number = null

              PrisonPlayerAppearance

              PrisonPlayerAppearance: Item[] = null

              PrisonPlayerBehindBars

              PrisonPlayerBehindBars: boolean = false

              PrisonPlayerCatchedBadGirl

              PrisonPlayerCatchedBadGirl: boolean = false

              PrisonPlayerForIllegalChange

              PrisonPlayerForIllegalChange: boolean = false

              PrisonPolice

              PrisonPolice: NPCCharacter = null

              PrisonPoliceIsPresent

              PrisonPoliceIsPresent: boolean = false

              PrisonSub

              PrisonSub: NPCCharacter = null

              PrisonSubAppearance

              PrisonSubAppearance: Item[] = null

              PrisonSubAskedCuff

              PrisonSubAskedCuff: boolean = false

              PrisonSubBehindBars

              PrisonSubBehindBars: boolean = false

              PrisonSubIsLeaveOut

              PrisonSubIsLeaveOut: boolean = true

              PrisonSubIsPresent

              PrisonSubIsPresent: boolean = false

              PrisonSubIsStripSearch

              PrisonSubIsStripSearch: boolean = false

              PrisonSubSelfCuffed

              PrisonSubSelfCuffed: boolean = false

              PrivateActivity

              PrivateActivity: string = ""

              PrivateActivityAffectLove

              PrivateActivityAffectLove: boolean = true

              PrivateActivityCount

              PrivateActivityCount: number = 0

              PrivateActivityList

              PrivateActivityList: string[] = ...

              PrivateActivityTarget

              PrivateActivityTarget: NPCCharacter = null

              PrivateBackground

              PrivateBackground: string = "Private"

              PrivateBaseDecay

              PrivateBaseDecay: number = 7200000

              PrivateBedActivity

              PrivateBedActivity: ActivityName = "Caress"

              PrivateBedActivityDelay

              PrivateBedActivityDelay: number = 4000

              PrivateBedActivityList

              PrivateBedActivityList: ActivityName[] = []

              PrivateBedActivityMustRefresh

              PrivateBedActivityMustRefresh: boolean = true

              PrivateBedBackground

              PrivateBedBackground: string = "Private"

              PrivateBedCharacter

              PrivateBedCharacter: Character[] = []

              PrivateBedLeaveTime

              PrivateBedLeaveTime: number = 0

              PrivateBedLog

              PrivateBedLog: string[] = []

              PrivateBeltList

              PrivateBeltList: string[] = ...

              PrivateCharacter

              PrivateCharacter: NPCCharacter[] = []

              PrivateCharacterMax

              PrivateCharacterMax: number = 4

              PrivateCharacterNewClothes

              PrivateCharacterNewClothes: NPCCharacter = null

              PrivateCharacterOffset

              PrivateCharacterOffset: number = 0

              PrivateCharacterShouldSync

              PrivateCharacterShouldSync: boolean = false

              PrivateClubCardDefeatConsequence

              PrivateClubCardDefeatConsequence: string[] = ...

              PrivateClubCardVictoryMode

              PrivateClubCardVictoryMode: boolean = false

              PrivateEntryEvent

              PrivateEntryEvent: boolean = true

              PrivateGiftRegular

              PrivateGiftRegular: any = null

              PrivateGiftRestraint

              PrivateGiftRestraint: any = null

              PrivateLoverActivity

              PrivateLoverActivity: string = ""

              PrivateLoverActivityList

              PrivateLoverActivityList: string[] = ...

              PrivateNextLoveYou

              PrivateNextLoveYou: number = 0

              PrivatePunishment

              PrivatePunishment: string = ""

              PrivatePunishmentList

              PrivatePunishmentList: string[] = ...

              PrivateRansomBackground

              PrivateRansomBackground: string = "Sheet"

              PrivateRansomCharacter

              PrivateRansomCharacter: NPCCharacter = null

              PrivateReleaseTimer

              PrivateReleaseTimer: number = 0

              PrivateSlaveImproveType

              PrivateSlaveImproveType: string = ""

              PrivateVendor

              PrivateVendor: NPCCharacter = null

              constPropertiesArrayLike

              PropertiesArrayLike: Set<Block | Hide | Attribute | DefaultColor | AllowActivity | AllowActivityOn | HideItem | HideItemExclude | Effect | Tint | SetPose | AllowActivePose | Fetish | MemberNumberList | UnHide | Texts | Prerequisite | Expose | AllowExpression | Require | Alpha | ExpressionTrigger | AllowEffect | AllowBlock | AllowHide | AllowHideItem | Category | AvailableLocations | ExpressionPrerequisite> = ...

              constPropertiesObjectLike

              PropertiesObjectLike: Set<TypeRecord | ActivityExpression | PoseMapping | RemoveItemOnRemove | AllowLockType> = ...

              PropertyAutoPunishHandled

              PropertyAutoPunishHandled: Set<AssetGroupName> = ...

              A set of group names whose auto-punishment has successfully been handled by PropertyAutoPunishDetectSpeech. If a group name is absent from the set then it's eligible for action-based punishment triggers. The initial set is populated by AssetLoadAll after all asset groups are defined.

              constPropertyAutoPunishKeywords

              PropertyAutoPunishKeywords: readonly string[] = ...

              A list of keywords that can trigger automatic punishment when included in /me- or *-based messages

              constPropertyOriginalValue

              PropertyOriginalValue: Map<string, any> = ...

              A Map that maps input element IDs to their original value is defined in, .e.g, PropertyOpacityLoad. Used as fallback in case an invalid opacity value is encountered when exiting.

              PropertyPunishActivityCache

              PropertyPunishActivityCache: Set<ActivityName> = ...

              A set with the names of all activities as performed by the player. Functions as a cache for PropertyPunishActivityCheck and can be automatically emptied out by the latter.

              PuppyWalkerBackground

              PuppyWalkerBackground: string = "Gardens"

              PuppyWalkerEscape

              PuppyWalkerEscape: number[] = ...

              PuppyWalkerGenerateMoveTimer

              PuppyWalkerGenerateMoveTimer: number = 0

              PuppyWalkerMoves

              PuppyWalkerMoves: number[] = ...

              PuppyWalkerMovesTimer

              PuppyWalkerMovesTimer: number[] = ...

              RandomNumber

              RandomNumber: number = 0

              RandomResult

              RandomResult: string = null

              RandomResultB

              RandomResultB: string = null

              RelogBackground

              RelogBackground: string = ""

              RelogCanvas

              RelogCanvas: HTMLCanvasElement = ...

              constRelogChatLog

              RelogChatLog: never
              @deprecated

              the chat log is now hidden via ChatRoomHideElements; use ChatRoomShowElements to unhide it

              RelogData

              RelogData: { Character: Character; ChatRoomName: string; Module: ModuleType; Screen: string } = null

              Type declaration

              constRelogInputText

              RelogInputText: never
              @deprecated

              the chat log is now hidden via ChatRoomHideElements; use ChatRoomShowElements to unhide it

              ReputationValidReputations

              ReputationValidReputations: ReputationType[] = ...

              RhythmGameAudio

              RhythmGameAudio: any = ...

              Rhythm game audio object: Handles loading audio and starting the music

              @constant

              RhythmGameBackground

              RhythmGameBackground: string = 'RhythmGameLoading'

              RhythmGameBeatmap

              RhythmGameBeatmap: string = ''

              RhythmGameChart

              RhythmGameChart: any = ...

              Rhythm game chart object: Handles loading chart, parsing xml, caching chart for rendering and judging.

              @constant

              RhythmGameDifficulty

              RhythmGameDifficulty: string = ''

              RhythmGameEnded

              RhythmGameEnded: boolean = false

              RhythmGameImage

              RhythmGameImage: any = ...

              Rhythm game image object: Loads and caches the image resources.

              @constant

              RhythmGameInit

              RhythmGameInit: any = ...

              Rhythm game initialization object: Handles pre and post loading, invokes initialization of other objects.

              @constant

              RhythmGameIntegration

              RhythmGameIntegration: any = ...

              Rhythm game integration object: Handles bondage club specific functions.

              @constant

              RhythmGameKernel

              RhythmGameKernel: any = ...

              Rhythm game kernel object: Handles game timing.

              @constant

              RhythmGameKey

              RhythmGameKey: any = ...

              Rhythm game keyboard input handler object: Handles keyboard inputs.

              @constant

              RhythmGamePassed

              RhythmGamePassed: boolean = true

              RhythmGamePreloadCompleted

              RhythmGamePreloadCompleted: boolean = false

              RhythmGameRender

              RhythmGameRender: any = ...

              Rhythm game render object: Handles game rendering.

              @constant

              RhythmGameScript

              RhythmGameScript: any = ...

              Rhythm game script object: Handles game mechanics.

              @constant

              RhythmGameStarted

              RhythmGameStarted: boolean = false

              Sarah

              Sarah: NPCCharacter = null

              SarahBackground

              SarahBackground: string = ""

              SarahCharacter

              SarahCharacter: Character[] = []

              SarahInside

              SarahInside: boolean = true

              SarahIntroBackground

              SarahIntroBackground: string = "SarahIntro"

              SarahIntroDone

              SarahIntroDone: boolean = false

              SarahIntroType

              SarahIntroType: string = "SarahExplore"

              SarahRoomAvailable

              SarahRoomAvailable: boolean = true

              SarahStatus

              SarahStatus: string = ""

              SarahUnlockQuest

              SarahUnlockQuest: boolean = false

              constScriptPermissionBits

              ScriptPermissionBits: Readonly<{ Friends: 8; Lovers: 4; Owner: 2; Public: 32; Self: 1; Whitelist: 16 }> = ...

              constScriptPermissionLevel

              ScriptPermissionLevel: Readonly<{ FRIENDS: Friends; LOVERS: Lovers; OWNER: Owner; PUBLIC: Public; SELF: Self; WHITELIST: Whitelist }> = ...

              ServerAccountEmailRegex

              ServerAccountEmailRegex: RegExp = ...

              ServerAccountNameRegex

              ServerAccountNameRegex: RegExp = ...

              ServerAccountPasswordRegex

              ServerAccountPasswordRegex: RegExp = ...

              ServerAccountResetNumberRegex

              ServerAccountResetNumberRegex: RegExp = ...

              readonlyServerAccountUpdate

              ServerAccountUpdate: AccountUpdater = ...

              ServerBeep

              ServerBeep: { ChatRoomName?: string; IsMail?: boolean; Message: string; Timer: number } = ...

              Type declaration

              • optionalChatRoomName?: string
              • optionalIsMail?: boolean
              • Message: string
              • Timer: number

              ServerCharacterNameRegex

              ServerCharacterNameRegex: RegExp = ...

              ServerCharacterNicknameRegex

              ServerCharacterNicknameRegex: RegExp = ...

              ServerChatMessageMaxLength

              ServerChatMessageMaxLength: number = 1000

              ServerIsConnected

              ServerIsConnected: boolean = false

              ServerReconnectCount

              ServerReconnectCount: number = 0

              constServerScriptMessage

              ServerScriptMessage: string = ...

              constServerScriptWarningStyle

              ServerScriptWarningStyle: string = ...

              ServerSendRateLimit

              ServerSendRateLimit: number = 18

              Ratelimit: Max number of messages per interval

              ServerSendRateLimitInterval

              ServerSendRateLimitInterval: number = 1200

              Ratelimit: Length of the rate-limit window, in msec

              constServerSendRateLimitQueue

              ServerSendRateLimitQueue: SendRateLimitQueueItem[] = []

              Queued messages waiting to be sent

              ServerSendRateLimitTimes

              ServerSendRateLimitTimes: number[] = []

              ServerSocket

              ServerSocket: Socket<ServerToClientEvents, ClientToServerEvents> = null

              ServerURL

              ServerURL: string = "http://localhost:4288"

              ShibariAllowTeacherItem

              ShibariAllowTeacherItem: boolean = false

              ShibariBackground

              ShibariBackground: string = "Shibari"

              ShibariDomCommentDone

              ShibariDomCommentDone: boolean = false

              ShibariPlayerAppearance

              ShibariPlayerAppearance: Item[] = null

              ShibariRescueScenario

              ShibariRescueScenario: string = ""

              ShibariRescueScenarioList

              ShibariRescueScenarioList: string[] = ...

              ShibariSpankDone

              ShibariSpankDone: boolean = false

              ShibariStudent

              ShibariStudent: NPCCharacter = null

              ShibariSubCommentDone

              ShibariSubCommentDone: boolean = false

              ShibariSurrenderDone

              ShibariSurrenderDone: boolean = false

              ShibariTeacher

              ShibariTeacher: NPCCharacter = null

              ShibariTeacherAppearance

              ShibariTeacherAppearance: Item[] = null

              ShibariTeacherReleaseTimer

              ShibariTeacherReleaseTimer: number = null

              ShibariTrainingPrice

              ShibariTrainingPrice: number = 20

              ShibariTrainingPriceList

              ShibariTrainingPriceList: number[] = ...

              Shop2Background

              Shop2Background: string = "Shop"

              ShopBackground

              ShopBackground: string = "Shop"

              ShopBoughtEverything

              ShopBoughtEverything: boolean = false

              ShopCustomer

              ShopCustomer: NPCCharacter = null

              ShopDemoItemGroup

              ShopDemoItemGroup: | AssetGroupItemName = ""

              ShopDemoItemGroupList

              ShopDemoItemGroupList: AssetGroupItemName[] = ...

              ShopDemoItemPayment

              ShopDemoItemPayment: number = 0

              constShopDropdownState

              ShopDropdownState: { GROUP: Group; NONE: None; POSE: Pose } = ...

              Type declaration

              • readonlyGROUP: Group
              • readonlyNONE: None
              • readonlyPOSE: Pose

              ShopRescueScenario

              ShopRescueScenario: string = ""

              ShopRescueScenarioList

              ShopRescueScenarioList: string[] = ...

              ShopVendor

              ShopVendor: NPCCharacter = null

              ShopVendorAllowItem

              ShopVendorAllowItem: boolean = false

              SkillLevelMaximum

              SkillLevelMaximum: number = 10

              SkillLevelMinimum

              SkillLevelMinimum: number = 0

              SkillModifier

              SkillModifier: number = 0

              SkillModifierMax

              SkillModifierMax: number = 5

              SkillModifierMin

              SkillModifierMin: number = -10

              SkillProgressMax

              SkillProgressMax: number = 1000

              SkillValidSkills

              SkillValidSkills: SkillType[] = ...

              SlaveAuctionBackground

              SlaveAuctionBackground: string = "SlaveMarket"

              SlaveAuctionBidAmount

              SlaveAuctionBidAmount: number = 0

              SlaveAuctionBidCurrent

              SlaveAuctionBidCurrent: string = ""

              SlaveAuctionBidNextTime

              SlaveAuctionBidNextTime: number = 0

              SlaveAuctionBidTime

              SlaveAuctionBidTime: number = 0

              SlaveAuctionCustomerLeft

              SlaveAuctionCustomerLeft: NPCCharacter = null

              SlaveAuctionCustomerRight

              SlaveAuctionCustomerRight: NPCCharacter = null

              SlaveAuctionEnd

              SlaveAuctionEnd: boolean = false

              SlaveAuctionSlave

              SlaveAuctionSlave: NPCCharacter = null

              SlaveAuctionVendor

              SlaveAuctionVendor: NPCCharacter = null

              SlaveMarketBackground

              SlaveMarketBackground: string = "SlaveMarket"

              SlaveMarketBuyer

              SlaveMarketBuyer: NPCCharacter = null

              SlaveMarketMistress

              SlaveMarketMistress: NPCCharacter = null

              SlaveMarketSlave

              SlaveMarketSlave: NPCCharacter = null

              SlaveMarketSlaveToTrain

              SlaveMarketSlaveToTrain: NPCCharacter = null

              SlaveMarketTrainingBackgroundList

              SlaveMarketTrainingBackgroundList: string[] = ...

              Sophie

              Sophie: NPCCharacter = null

              SophieFightDone

              SophieFightDone: boolean = false

              SophieInside

              SophieInside: boolean = false

              SophieIntroDone

              SophieIntroDone: boolean = false

              SophieIntroTime

              SophieIntroTime: number = 0

              SophieOrgasmGameCount

              SophieOrgasmGameCount: number = 0

              SophieOrgasmGamePleasure

              SophieOrgasmGamePleasure: number = 0

              SophiePunishmentStage

              SophiePunishmentStage: number = 0

              SophieStatus

              SophieStatus: string = ""

              SophieUpsetCount

              SophieUpsetCount: number = 0

              SpeechGagLevelLookup

              SpeechGagLevelLookup: { GagEasy: 3; GagHeavy: 6; GagLight: 2; GagMedium: 5; GagNormal: 4; GagTotal: 8; GagTotal2: 12; GagTotal3: 16; GagTotal4: 20; GagVeryHeavy: 7; GagVeryLight: 1 } = ...

              A lookup mapping the gag effect names to their corresponding gag level numbers.

              @constant

              Type declaration

              • readonlyGagEasy: 3
              • readonlyGagHeavy: 6
              • readonlyGagLight: 2
              • readonlyGagMedium: 5
              • readonlyGagNormal: 4
              • readonlyGagTotal: 8
              • readonlyGagTotal2: 12
              • readonlyGagTotal3: 16
              • readonlyGagTotal4: 20
              • readonlyGagVeryHeavy: 7
              • readonlyGagVeryLight: 1

              SpeechTransformAllEffects

              SpeechTransformAllEffects: SpeechTransformName[] = ...

              SpeechTransformReceiverEffects

              SpeechTransformReceiverEffects: SpeechTransformName[] = ...

              SpeechTransformSenderEffects

              SpeechTransformSenderEffects: SpeechTransformName[] = ...

              StableBackground

              StableBackground: string = "HorseStable"

              StableExamPoint

              StableExamPoint: number = 0

              StablePlayerAppearance

              StablePlayerAppearance: Item[] = null

              StablePlayerInIsolation

              StablePlayerInIsolation: boolean = false

              StablePlayerInIsolationEnd

              StablePlayerInIsolationEnd: number = null

              StablePlayerInIsolationStart

              StablePlayerInIsolationStart: number = null

              StablePlayerOutfitWorn

              StablePlayerOutfitWorn: Pony | Trainer = null

              StablePlayerTrainingActiv

              StablePlayerTrainingActiv: boolean = false

              StablePlayerTrainingBehavior

              StablePlayerTrainingBehavior: number = 0

              StablePlayerTrainingLessons

              StablePlayerTrainingLessons: number = 0

              StablePony

              StablePony: NPCCharacter = null

              StablePonyFail

              StablePonyFail: boolean = false

              StablePonyPass

              StablePonyPass: boolean = false

              StableProgress

              StableProgress: number = -1

              StableProgressAuto

              StableProgressAuto: number = 0

              StableProgressBehavior

              StableProgressBehavior: number = 0

              StableProgressCancelDialog

              StableProgressCancelDialog: any = null

              StableProgressCancelStage

              StableProgressCancelStage: any = null

              StableProgressCharacter

              StableProgressCharacter: any = null

              StableProgressClick

              StableProgressClick: number = 0

              StableProgressEndDialog

              StableProgressEndDialog: any = null

              StableProgressEndStage

              StableProgressEndStage: number = 0

              StableProgressFinished

              StableProgressFinished: boolean = false

              StableProgressItem

              StableProgressItem: string = ''

              StableProgressLastKeyPress

              StableProgressLastKeyPress: any = null

              StableProgressOperation

              StableProgressOperation: any = null

              StableProgressSecondCharacter

              StableProgressSecondCharacter: any = null

              StableProgressStruggleCount

              StableProgressStruggleCount: any = null

              StableSecondProgress

              StableSecondProgress: number = -1

              StableSecondProgressAuto

              StableSecondProgressAuto: number = 0

              StableTrainer

              StableTrainer: NPCCharacter = null

              StableTrainerTrainingExercises

              StableTrainerTrainingExercises: number = 0

              StruggleExpressionStore

              StruggleExpressionStore: Partial<Record<keyof ExpressionNameMap, ExpressionName>> = undefined

              Character expression at the beginning of the minigame; player-only

              constStruggleFacesList

              StruggleFacesList: Record<number, Partial<Record<keyof ExpressionNameMap, ExpressionName>>> = ...

              List of expressions to go through while struggling, keyed by duration

              StruggleLockPickArousalText

              StruggleLockPickArousalText: string = ""

              StruggleLockPickArousalTick

              StruggleLockPickArousalTick: number = 0

              StruggleLockPickArousalTickTime

              StruggleLockPickArousalTickTime: number = 12000

              StruggleLockPickFailTime

              StruggleLockPickFailTime: number = 0

              StruggleLockPickFailTimeout

              StruggleLockPickFailTimeout: number = 30000

              StruggleLockPickImpossiblePins

              StruggleLockPickImpossiblePins: number[] = null

              StruggleLockPickOffset

              StruggleLockPickOffset: number[] = null

              StruggleLockPickOffsetTarget

              StruggleLockPickOffsetTarget: number[] = null

              StruggleLockPickOrder

              StruggleLockPickOrder: number[] = null

              StruggleLockPickProgressChallenge

              StruggleLockPickProgressChallenge: number = 0

              StruggleLockPickProgressCurrentTries

              StruggleLockPickProgressCurrentTries: number = 0

              StruggleLockPickProgressMaxTries

              StruggleLockPickProgressMaxTries: number = 0

              StruggleLockPickProgressSkill

              StruggleLockPickProgressSkill: number = 0

              StruggleLockPickProgressSkillLose

              StruggleLockPickProgressSkillLose: number = 0

              StruggleLockPickSet

              StruggleLockPickSet: boolean[] = null

              StruggleLockPickSetFalse

              StruggleLockPickSetFalse: boolean[] = null

              StruggleLockPickSuccessTime

              StruggleLockPickSuccessTime: number = 0

              StruggleLockPickTotalTries

              StruggleLockPickTotalTries: number = 0

              StruggleLoosenAngle

              StruggleLoosenAngle: number = 0

              StruggleLoosenHoleAngle

              StruggleLoosenHoleAngle: number = Math.PI

              StruggleLoosenSpeed

              StruggleLoosenSpeed: number = 400

              constStruggleMinigames

              StruggleMinigames: Record<StruggleKnownMinigames, StruggleMinigame> = ...

              StruggleProgress

              StruggleProgress: number = -1

              The struggle minigame progress

              -1 means there's no game running. 0 and StruggleProgressCurrentMinigame indicates the player hasn't selected a game yet.

              StruggleProgressAuto

              StruggleProgressAuto: number = 0

              StruggleProgressChallenge

              StruggleProgressChallenge: number = 0

              StruggleProgressCurrentMinigame

              StruggleProgressCurrentMinigame: | StruggleKnownMinigames = ""

              The minigame currently running

              StruggleProgressDexCurrent

              StruggleProgressDexCurrent: number = 0

              StruggleProgressDexDirectionRight

              StruggleProgressDexDirectionRight: boolean = false

              StruggleProgressDexMax

              StruggleProgressDexMax: number = 300

              StruggleProgressDexTarget

              StruggleProgressDexTarget: number = 0

              StruggleProgressFlexCircles

              StruggleProgressFlexCircles: { Size: number; Velocity: number; X: number; Y: number }[] = []

              StruggleProgressFlexCirclesRate

              StruggleProgressFlexCirclesRate: number = 200

              StruggleProgressFlexMaxX

              StruggleProgressFlexMaxX: number = 300

              StruggleProgressFlexMaxY

              StruggleProgressFlexMaxY: number = 150

              StruggleProgressFlexTimer

              StruggleProgressFlexTimer: number = 0

              StruggleProgressLastKeyPress

              StruggleProgressLastKeyPress: any = null

              StruggleProgressNextItem

              StruggleProgressNextItem: Item = null

              The item that should be worn at the end of the minigame

              This is a (shallow) copy so that changes made outside of the minigame don't cause crashes if the data gets changed externally — which can happen if someone else removes the item we're currently struggling with. Changes made to it might be ignored!

              StruggleProgressOperation

              StruggleProgressOperation: string = "..."

              StruggleProgressPrevItem

              StruggleProgressPrevItem: Item = null

              The item worn at the beginning of the minigame.

              This is a (shallow) copy so that changes made outside of the minigame don't cause crashes if the data gets changed externally — which can happen if someone else removes the item we're currently struggling with. Changes made to it might be ignored!

              StruggleProgressSkill

              StruggleProgressSkill: number = 0

              StruggleProgressStruggleCount

              StruggleProgressStruggleCount: number = 0

              constTEXT_NOT_FOUND_PREFIX

              TEXT_NOT_FOUND_PREFIX: MISSING TEXT IN = "MISSING TEXT IN"

              Prefix for the Text-generated warning message on a missing key

              TempCanvas

              TempCanvas: CanvasRenderingContext2D

              Temporary GPU-based canvas

              TennisBackground

              TennisBackground: string = "CollegeTennisPlay"

              TennisBallAngle

              TennisBallAngle: number = 0

              Angle of the ball. Angle is in radians (0 is right, PI / 2 is up, PI is left, 3 PI / 2 is down)

              TennisBallSpeed

              TennisBallSpeed: number = 100

              TennisBallX

              TennisBallX: number = 1000

              TennisBallY

              TennisBallY: number = 500

              TennisCharacterLeft

              TennisCharacterLeft: NPCCharacter = null

              TennisCharacterLeftPoint

              TennisCharacterLeftPoint: number = 0

              TennisCharacterLeftRacket

              TennisCharacterLeftRacket: number = 500

              TennisCharacterRight

              TennisCharacterRight: NPCCharacter = null

              TennisCharacterRightPoint

              TennisCharacterRightPoint: number = 0

              TennisCharacterRightRacket

              TennisCharacterRightRacket: number = 500

              TestingColorGroups

              TestingColorGroups: Set<string>

              TestingColorLayers

              TestingColorLayers: Set<string>

              TestingInvalidDefaultColor

              TestingInvalidDefaultColor: TestingStruct<string[]>[] = ...

              TestingMisingColorGroups

              TestingMisingColorGroups: TestingStruct<string>[]

              TestingMisingColorLayers

              TestingMisingColorLayers: TestingStruct<string>[]

              TestingModularItemDataLookup

              TestingModularItemDataLookup: Record<string, ModularItemData> = ModularItemDataLookup

              TestingNoArchItemDataLookup

              TestingNoArchItemDataLookup: Record<string, NoArchItemData> = NoArchItemDataLookup

              TestingPoseMap

              TestingPoseMap: Record<keyof AssetPoseMap, Set<AssetPoseName>> = ...

              A record mapping pose categories to pose names

              TestingTextItemDataLookup

              TestingTextItemDataLookup: Record<string, TextItemData> = TextItemDataLookup

              TestingTypedItemDataLookup

              TestingTypedItemDataLookup: Record<string, TypedItemData> = TypedItemDataLookup

              TestingVariableHeightItemDataLookup

              TestingVariableHeightItemDataLookup: Record<string, VariableHeightData> = VariableHeightDataLookup

              TestingVibratingItemDataLookup

              TestingVibratingItemDataLookup: Record<string, VibratingItemData> = VibratorModeDataLookup

              constTextAllScreenCache

              TextAllScreenCache: Map<string, TextCache> = ...

              constTextItem

              TextItem: { Draw: (data: TextItemData) => void; Exit: (data: TextItemData, publishAction?: boolean) => void; Init: (data: TextItemData, C: Character, item: Item, push?: boolean, refresh?: boolean) => boolean; Load: (data: TextItemData) => void; PublishAction: (data: TextItemData, C: Character, item: Item, newOption: TextItemOption, previousOption: TextItemOption) => void } = ...

              Type declaration

              constTextItemDataLookup

              TextItemDataLookup: Record<string, TextItemData> = {}

              A lookup for the text item configurations for each registered text item

              @const
              @see

              TextScreenCache

              TextScreenCache: TextCache = null

              TherapyBackground

              TherapyBackground: string = "AsylumTherapy"

              TherapyCharacterLeft

              TherapyCharacterLeft: NPCCharacter = null

              TherapyCharacterRight

              TherapyCharacterRight: NPCCharacter = null

              TherapyGenerateMoveTimer

              TherapyGenerateMoveTimer: number = 0

              TherapyMoves

              TherapyMoves: number[] = ...

              TherapyStress

              TherapyStress: number = 0

              TightenLoosenItemMaximumDifficulty

              TightenLoosenItemMaximumDifficulty: number = 0

              TightenLoosenItemMinimumDifficulty

              TightenLoosenItemMinimumDifficulty: number = -10

              constTightenLoosenScreenBlacklist

              TightenLoosenScreenBlacklist: Set<string> = ...

              A set of screen names for which one should not be able to access the tighten/loosen interface via the extended item menu

              TimerLastArousalDecay

              TimerLastArousalDecay: number = 0

              TimerLastArousalProgress

              TimerLastArousalProgress: number = 0

              TimerLastArousalProgressCount

              TimerLastArousalProgressCount: number = 0

              TimerLastCycleCall

              TimerLastCycleCall: number = 0

              TimerLastTime

              TimerLastTime: number = 0

              TimerRunInterval

              TimerRunInterval: number = 20

              TitleBackground

              TitleBackground: string = "Sheet"

              TitleCanEditNickname

              TitleCanEditNickname: boolean = true

              TitleList

              TitleList: { Earned?: boolean; Force?: boolean; Name: TitleName; Requirement: () => boolean }[] = ...

              TitleListFiltered

              TitleListFiltered: { Earned?: boolean; Force?: boolean; Name: TitleName; Requirement: () => boolean }[] = []

              TitleNicknameStatus

              TitleNicknameStatus: NicknameTooLong | NicknameInvalidChars = null

              TitleOffset

              TitleOffset: number = 0

              constTitlePerPage

              TitlePerPage: 28 = 28

              TitleSelectedTitle

              TitleSelectedTitle: TitleName = null

              TranslationCache

              TranslationCache: Record<string, string[]> = {}

              TranslationDictionary

              TranslationDictionary: { EnglishName: string; Files: string[]; LanguageCode: string; LanguageName: string }[] = ...

              Dictionary for all supported languages and their files

              @constant

              TranslationLanguage

              TranslationLanguage: string = "EN"

              TypedItemChatSetting

              TypedItemChatSetting: Record<TO_ONLY | FROM_TO | SILENT, TypedItemChatSetting>

              An enum encapsulating the possible chatroom message settings for typed items

              • TO_ONLY - The item has one chatroom message per type (indicating that the type has been selected)
              • FROM_TO - The item has a chatroom message for from/to type pairing
              • SILENT - The item doesn't publish an action when a type is selected.

              constTypedItemDataLookup

              TypedItemDataLookup: Record<string, TypedItemData> = {}

              A lookup for the typed item configurations for each registered typed item

              @const
              @see

              constValidationAllLockProperties

              ValidationAllLockProperties: string[] = ...

              constValidationCombinationNumberRegex

              ValidationCombinationNumberRegex: RegExp = ...

              constValidationDefaultCombinationNumber

              ValidationDefaultCombinationNumber: 0000 = "0000"

              constValidationDefaultPassword

              ValidationDefaultPassword: UNLOCK = "UNLOCK"

              constValidationModifiableProperties

              ValidationModifiableProperties: string[] = ...

              constValidationNonModifiableLockProperties

              ValidationNonModifiableLockProperties: string[] = ...

              constValidationPasswordRegex

              ValidationPasswordRegex: RegExp = ...

              constValidationPropertyPermissions

              ValidationPropertyPermissions: Partial<Record<keyof ItemProperties, ScriptPermissionProperty>> = ...

              constValidationRemoveTimerToleranceMs

              ValidationRemoveTimerToleranceMs: 5000 = 5000

              constValidationRestrictedLockProperties

              ValidationRestrictedLockProperties: string[] = ...

              constValidationScriptableProperties

              ValidationScriptableProperties: string[] = ...

              constValidationTimerLockProperties

              ValidationTimerLockProperties: string[] = ...

              constVariableHeightDataLookup

              VariableHeightDataLookup: Record<string, VariableHeightData> = {}

              A lookup for the variable height configurations for each registered variable height item

              @const

              constVariableHeightNumerId

              VariableHeightNumerId: VariableHeightNumber = "VariableHeightNumber"

              The name of the numerical percentage input element

              @const

              constVariableHeightSliderId

              VariableHeightSliderId: VariableHeightSlider = "VariableHeightSlider"

              The name of vertical slider element

              @const

              readonlyVibratorMode

              VibratorMode: { DENY: Deny; EDGE: Edge; ESCALATE: Escalate; HIGH: High; LOW: Low; MAXIMUM: Maximum; MEDIUM: Medium; OFF: Off; RANDOM: Random; TEASE: Tease }

              An enum for the possible vibrator modes


              Type declaration

              • DENY: Deny
              • EDGE: Edge
              • ESCALATE: Escalate
              • HIGH: High
              • LOW: Low
              • MAXIMUM: Maximum
              • MEDIUM: Medium
              • OFF: Off
              • RANDOM: Random
              • TEASE: Tease

              constVibratorModeDataLookup

              VibratorModeDataLookup: Record<string, VibratingItemData> = {}

              A lookup for the vibrator configurations for each registered vibrator item

              @const

              constVibratorModeOff

              VibratorModeOff: VibratingItemOptionConfig = ...

              An alias for the vibrators OFF mode. See VibratorModeOptions.

              VibratorModeOptions

              VibratorModeOptions: { Advanced: VibratingItemOptionConfig[]; Standard: VibratingItemOptionConfig[] } = ...

              A record of the various available vibrator sets of vibrator modes

              @constant

              Type declaration

              VibratorModeSet

              VibratorModeSet: { ADVANCED: Advanced; STANDARD: Standard }

              An enum for the vibrator configuration sets that a vibrator can have


              Type declaration

              • ADVANCED: Advanced
              • STANDARD: Standard

              VibratorModeState

              VibratorModeState: { DEFAULT: Default; DENY: Deny; ORGASM: Orgasm; REST: Rest }

              An enum for the possible vibrator states when a vibrator is in a state machine mode


              Type declaration

              • DEFAULT: Default
              • DENY: Deny
              • ORGASM: Orgasm
              • REST: Rest

              constVibratorModesAdvanced

              VibratorModesAdvanced: VibratorMode[] = ...

              A list with all advanced vibrator mode-names.

              WardrobeBackground

              WardrobeBackground: string = "Private"

              WardrobeCharacter

              WardrobeCharacter: Character[] = []

              WardrobeOffset

              WardrobeOffset: number = 0

              WardrobeReorderList

              WardrobeReorderList: number[] = []

              WardrobeReorderMode

              WardrobeReorderMode: WardrobeReorderType = "None"

              WardrobeSelection

              WardrobeSelection: number = -1

              WardrobeSize

              WardrobeSize: number = 24

              WheelFortuneBackground

              WheelFortuneBackground: string = "Black"

              WheelFortuneCharacter

              WheelFortuneCharacter: Character = null

              WheelFortuneCustomizeBackground

              WheelFortuneCustomizeBackground: string = "Sheet"

              WheelFortuneCustomizeList

              WheelFortuneCustomizeList: string = ""

              WheelFortuneCustomizeOffset

              WheelFortuneCustomizeOffset: number = 0

              WheelFortuneDefault

              WheelFortuneDefault: string = "ABCFGHKLMNPQRSUVWabcfgj$!-()0123456"

              WheelFortuneEncaseClosedList

              WheelFortuneEncaseClosedList: string[] = ...

              WheelFortuneEncaseList

              WheelFortuneEncaseList: string[] = ...

              WheelFortuneEntryModule

              WheelFortuneEntryModule: | ModuleType = ""

              WheelFortuneEntryScreen

              WheelFortuneEntryScreen: string = ""

              WheelFortuneForced

              WheelFortuneForced: boolean = false

              WheelFortuneInitTime

              WheelFortuneInitTime: number = 0

              WheelFortuneInitY

              WheelFortuneInitY: number = 0

              WheelFortuneList

              WheelFortuneList: string = ""

              WheelFortuneOption

              WheelFortuneOption: WheelFortuneOptionType[] = ...

              WheelFortunePasswordChar

              WheelFortunePasswordChar: string[] = ...

              WheelFortunePos

              WheelFortunePos: number = 0

              WheelFortunePosMax

              WheelFortunePosMax: number = 0

              WheelFortunePosY

              WheelFortunePosY: number = null

              WheelFortuneRoleplay

              WheelFortuneRoleplay: boolean = false

              WheelFortuneValue

              WheelFortuneValue: string = ""

              WheelFortuneVelocity

              WheelFortuneVelocity: number = 0

              WheelFortuneVelocityTime

              WheelFortuneVelocityTime: number = 0

              camera

              camera: any

              chess

              chess: any

              Dummy name for the module in Scripts/lib/chessboard

              constchineseRandomGarbledSound

              chineseRandomGarbledSound: string[] = ...

              constchineseRegex

              chineseRegex: RegExp = ...

              count

              count: number = 0

              export=

              export=

              export=: { _compress: (uncompressed: any, bitsPerChar: any, getCharFromInt: any) => string; _decompress: (length: any, resetValue: any, getNextValue: any) => string; compress: (uncompressed: any) => string; compressToBase64: (input: any) => string; compressToEncodedURIComponent: (input: any) => string; compressToUTF16: (input: any) => string; compressToUint8Array: (uncompressed: any) => Uint8Array; decompress: (compressed: any) => string; decompressFromBase64: (input: any) => string; decompressFromEncodedURIComponent: (input: any) => string; decompressFromUTF16: (compressed: any) => string; decompressFromUint8Array: (compressed: any) => string } = ...

              Type declaration

              • _compress: (uncompressed: any, bitsPerChar: any, getCharFromInt: any) => string
                  • (uncompressed: any, bitsPerChar: any, getCharFromInt: any): string
                  • Parameters

                    • uncompressed: any
                    • bitsPerChar: any
                    • getCharFromInt: any

                    Returns string

              • _decompress: (length: any, resetValue: any, getNextValue: any) => string
                  • (length: any, resetValue: any, getNextValue: any): string
                  • Parameters

                    • length: any
                    • resetValue: any
                    • getNextValue: any

                    Returns string

              • compress: (uncompressed: any) => string
                  • (uncompressed: any): string
                  • Parameters

                    • uncompressed: any

                    Returns string

              • compressToBase64: (input: any) => string
                  • (input: any): string
                  • Parameters

                    • input: any

                    Returns string

              • compressToEncodedURIComponent: (input: any) => string
                  • (input: any): string
                  • Parameters

                    • input: any

                    Returns string

              • compressToUTF16: (input: any) => string
                  • (input: any): string
                  • Parameters

                    • input: any

                    Returns string

              • compressToUint8Array: (uncompressed: any) => Uint8Array
                  • (uncompressed: any): Uint8Array
                  • Parameters

                    • uncompressed: any

                    Returns Uint8Array

              • decompress: (compressed: any) => string
                  • (compressed: any): string
                  • Parameters

                    • compressed: any

                    Returns string

              • decompressFromBase64: (input: any) => string
                  • (input: any): string
                  • Parameters

                    • input: any

                    Returns string

              • decompressFromEncodedURIComponent: (input: any) => string
                  • (input: any): string
                  • Parameters

                    • input: any

                    Returns string

              • decompressFromUTF16: (compressed: any) => string
                  • (compressed: any): string
                  • Parameters

                    • compressed: any

                    Returns string

              • decompressFromUint8Array: (compressed: any) => string
                  • (compressed: any): string
                  • Parameters

                    • compressed: any

                    Returns string

              group1

              group1: any

              constm4

              m4: any

              maid

              maid: any

              material

              material: any

              constmaxScriptPermission

              maxScriptPermission: number = ...

              constmentionNameSplitter

              mentionNameSplitter: RegExp = ...

              Regex used to split out a string at word boundaries

              Note that due to a bug in Safari, we can't use the one that handles chinese characters properly.

              model

              model: any

              path3d

              path3d: string = "Assets/3D/"

              renderer

              renderer: any

              scene

              scene: any
              Page Options