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 | 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: string } | { 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

        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

        ClubCardFocus

        ClubCardFocus: any = null

        ClubCardHover

        ClubCardHover: any = null

        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: any[] = []

        ClubCardLogScroll

        ClubCardLogScroll: boolean = false

        ClubCardLogText

        ClubCardLogText: string = ""

        ClubCardLoungeBackground

        ClubCardLoungeBackground: string = "ClubCardLounge"

        ClubCardLoungeTutor

        ClubCardLoungeTutor: NPCCharacter = null

        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

        ClubCardReward

        ClubCardReward: any = null

        ClubCardSelection

        ClubCardSelection: ClubCard = null

        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.

        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; 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; topBar: crafting-top-bar; undressButton: crafting-undress-button; uploadButton: crafting-upload-button } = ...

            Type declaration

            • readonlyacceptButton: crafting-accept-button
            • 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
            • 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: string; 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 = "R108"

            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 = ""

            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 = 30

            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[] = ...

            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; 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