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

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

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, [before: Item, after: Item]>>

A map containing appearance item diffs, keyed according to the item group. Used to compare and validate before/after for appearance items.

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 | AnkletLeft | AnkletRight | ArmsLeft | ArmsRight | BodyLower | BodyUpper | BodyMarkings | Bra | Bracelet | Cloth | ClothAccessory | ClothLower | Corset | EyeShadow | FacialHair | Garters | Glasses | Gloves | HairAccessory1 | HairAccessory2 | HairAccessory3 | HairBack | HairFront | HandAccessoryLeft | HandAccessoryRight | FacialHair | Hat | Head | Height | Jewelry | Mask | Necklace | Nipples | Panties | Pronouns | Shoes | Socks | SocksLeft | SocksRight | Suit | SuitLower | TailStraps | Wings | HandsLeft | HandsRight | FaceMarkings

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

AssetGroupMapping

AssetGroupMapping: { [ key in AssetGroupBodyName ]: AssetAppearanceGroup } & { [ key in AssetGroupItemName ]: AssetItemGroup } & { [ key in AssetGroupScriptName ]: AssetScriptGroup }

A type mapping all asset group names to their respective, AssetGroup.Category-specific group type

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

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: player | 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

ChatRoomAccessModeLabel

ChatRoomAccessModeLabel: PUBLIC | ADMIN_WHITELIST | ADMIN

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

ChatRoomMenuButton

ChatRoomMenuButton: Camera | Cancel | CharacterView | Cut | CustomizationOn | CustomizationOff | Dress | Exit | GameOption | Icons | Kneel | MapView | NextCharacters | PreviousCharacters | Profile | RoomAdmin | ClearFocus

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

ChatRoomSearchResult

ChatRoomSearchResult: ServerChatRoomSearchData & { DisplayName: string; Order: number }

ChatRoom results once received by the client

ChatRoomSettings

ChatRoomSettings: ServerChatRoomSettings

ChatRoomSpaceLabel

ChatRoomSpaceLabel: MIXED | FEMALE_ONLY | MALE_ONLY | ASYLUM

ChatRoomVisibilityModeLabel

ChatRoomVisibilityModeLabel: PUBLIC | ADMIN_WHITELIST | ADMIN | UNLISTED

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

ClipboardAppearanceBundle

ClipboardAppearanceBundle: ClipboardItemBundle[]

ColorPickerCallbackType

ColorPickerCallbackType: (Color: string) => void

The color picker callback called when selection completes.


Type declaration

    • (Color: string): void
    • Parameters

      • Color: string

      Returns void

CommonChatTags

CommonChatTags: CharacterReferenceTag | AssetName | Automatic

CommonGenerateGridCallback

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

Type parameters

  • T

Type declaration

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

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

      Returns boolean

CommonSubstituteReplacer

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

Type declaration

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

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

      Returns string

CommonSubtituteSubstitution

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

ControllerAxis

ControllerAxis: typeof ControllerAxis[keyof typeof ControllerAxis]

ControllerButton

ControllerButton: typeof ControllerButton[keyof typeof ControllerButton]

CraftingMode

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

CraftingPropertyType

CraftingPropertyType: Normal | Large | Small | Thick | Thin | Secure | Loose | Decoy | Malleable | Rigid | Simple | Puzzling | Painful | Comfy | Strong | Flexible | Nimble | Arousing | Dull | Edging | 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

DialogSelfMenuName

DialogSelfMenuName: Expression | Pose | SavedExpressions | OwnerRules

DialogSortOrder

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

DialogStruggleActionType

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

DifficultyLevel

DifficultyLevel: 0 | 1 | 2 | 3

DrawCanvasCallback

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

A callback function used to draw a canvas on a canvas


Type declaration

    • (img: HTMLImageElement | HTMLCanvasElement, x: number, y: number, alphaMasks?: RectTuple[], maskLayers?: TextureAlphaMask[]): 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[]
      • optionalmaskLayers: TextureAlphaMask[]

      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; TextureAlphaMask?: readonly TextureAlphaMask[]; 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]

  • optionalreadonlyTextureAlphaMask?: readonly TextureAlphaMask[]

    A list of mask layers to apply to the call

  • 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 | CanEdge

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<T>: { IsInChatRoom?: boolean; Module: T; Screen: ModuleScreens[T]; hasScrolledChat?: boolean }

      Type parameters

      Type declaration

      • optionalIsInChatRoom?: boolean
      • Module: T
      • Screen: ModuleScreens[T]
      • optionalhasScrolledChat?: boolean

      FriendListSortingDirection

      FriendListSortingDirection: Asc | Desc

      FriendListSortingMode

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

      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; types: FriendListIcon[] }

      Type declaration

      • canSearchRoom: boolean
      • caption: string
      • optionalname?: string
      • types: FriendListIcon[]

      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<Record<string, number | boolean | string>>; children?: readonly (null | undefined | string | Node | HTMLOptions<keyof HTMLElementTagNameMap>)[]; classList?: readonly (null | undefined | string)[]; dataAttributes?: Partial<Record<string, number | string | boolean>>; 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<Record<string, number | boolean | string>>

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

        Note that booleans are interpretted as boolean attributes.

      • 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 | string | boolean>>

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

        Note that booleans are interpretted as boolean attributes.

      • 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 | Blocked | 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 | Freeze | Block

      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: (event: KeyboardEvent) => boolean

      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

      Type declaration

        • (event: KeyboardEvent): boolean
        • Parameters

          • event: KeyboardEvent

          Returns boolean

      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

      MaskLayersMap

      MaskLayersMap: Map<AssetGroupName, TextureAlphaMask[]>

      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: keyof ModuleScreens

      MouseEventListener

      MouseEventListener: (event: MouseEvent | TouchEvent) => void

      Type declaration

        • (event: MouseEvent | TouchEvent): void
        • Parameters

          • event: MouseEvent | TouchEvent

          Returns void

      MouseWheelEventListener

      MouseWheelEventListener: (event: WheelEvent) => void

      Type declaration

        • (event: WheelEvent): void
        • Parameters

          • event: WheelEvent

          Returns void

      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

      NPCEventType

      NPCEventType: LastInteraction | Wife | Fiancee | Girlfriend | PrivateRoomEntry | NPCCollaring | PlayerCollaring | NextGift | LastGift | Kidnap | NextKidnap | NPCBrainwashing | EndSubTrial | EndDomTrial | NextBed | NewCloth | RefusedActivity | SlaveMarketRent | AsylumSent | LastDecay

      NPCTraitType

      NPCTraitType: Dominant | Submissive | Violent | Peaceful | Horny | Frigid | Rude | Polite | Wise | Dumb | Serious | Playful

      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

      RelogData

      ReputationType

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

      RoomName

      ScreenDrawHandler

      ScreenDrawHandler: VoidHandler

      ScreenExitHandler

      ScreenExitHandler: VoidHandler

      ScreenLoadHandler

      ScreenLoadHandler: VoidHandler

      ScreenResizeHandler

      ScreenResizeHandler: (load: boolean) => void

      Type declaration

        • (load: boolean): void
        • Parameters

          • load: boolean

          Returns void

      ScreenRunHandler

      ScreenRunHandler: (time: number) => void

      Type declaration

        • (time: number): void
        • Parameters

          • time: number

          Returns void

      ScreenSpecifier

      ScreenSpecifier: _ScreenSpecifier<Character> | _ScreenSpecifier<Cutscene> | _ScreenSpecifier<MiniGame> | _ScreenSpecifier<Online> | _ScreenSpecifier<Room>

      ScreenUnloadHandler

      ScreenUnloadHandler: VoidHandler

      ScriptPermissionLevel

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

      ScriptPermissionProperty

      ScriptPermissionProperty: Hide | Block

      ScriptPermissions

      ScriptPermissions: Record<ScriptPermissionProperty, ScriptPermission>

      SendRateLimitQueueItem

      SendRateLimitQueueItem: _SendRateLimitQueueItem<ClientEvent>

      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 | New accounts per day exceeded

      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: { Access: ServerChatRoomRole[]; 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; Visibility: ServerChatRoomRole[]; Whitelist: number[] }

      The chatroom data received from the server


      Type declaration

      ServerChatRoomGame

      ServerChatRoomGame: | ClubCard | LARP | MagicBattle | GGTS | Prison

      ServerChatRoomGameCardGameActionRequest

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

      ServerChatRoomGameCardGameUpdateRequest

      ServerChatRoomGameUpdateRequest

      ServerChatRoomLanguage

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

      ServerChatRoomMessageContentType

      ServerChatRoomMessageContentType: string

      ServerChatRoomMessageType

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

      ServerChatRoomRole

      ServerChatRoomRole: All | Admin | Whitelist

      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 | 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 extended item data/module names (see ExtendedItemData.Name and ModularItemModule.Key) 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

      VoidHandler

      VoidHandler: () => void

      Type declaration

        • (): void
        • Returns void

      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

      _RelogDataMap

      _RelogDataMap<T>: T extends ModuleType ? RelogDataBase<T> : never

      Type parameters

      • T

      _ScreenSpecifier

      _ScreenSpecifier<T>: [module: T, screen: ModuleScreens[T]]

      Type parameters

      _SendRateLimitQueueItem

      _SendRateLimitQueueItem<T>: T extends ClientEvent ? { Message: T; args: ClientEventParams<T> } : never

      Type parameters

      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}` | `AnkletLeft/${string}` | `AnkletRight/${string}` | `ArmsLeft/${string}` | `ArmsRight/${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}` | `HandAccessoryLeft/${string}` | `HandAccessoryRight/${string}` | `Hat/${string}` | `Head/${string}` | `Height/${string}` | `Jewelry/${string}` | `Mask/${string}` | `Necklace/${string}` | `Nipples/${string}` | `Panties/${string}` | `Pronouns/${string}` | `Shoes/${string}` | `Socks/${string}` | `SocksLeft/${string}` | `SocksRight/${string}` | `Suit/${string}` | `SuitLower/${string}` | `TailStraps/${string}` | `Wings/${string}` | `HandsLeft/${string}` | `HandsRight/${string}` | `FaceMarkings/${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: { AnkletLeft: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }; AnkletRight: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }; 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: ; 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 }; HandAccessoryLeft: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; HandAccessoryRight: { AllFours: AllFours; BackBoxTie: BackBoxTie; BackCuffs: BackCuffs; BackElbowTouch: BackElbowTouch; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; HandsLeft: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; HandsRight: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }; 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 }; Nipples: { AllFours: Hide }; Panties: { AllFours: Hide; Hogtied: Hide }; Pussy: { AllFours: Hide; Hogtied: Hide }; 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

      • readonlyAnkletLeft: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hide
        • readonlyKneel: Hide
        • readonlyKneelingSpread: Hide
        • readonlyLegsClosed: LegsClosed
        • readonlySpread: Spread
      • readonlyAnkletRight: { AllFours: Hide; Hogtied: Hide; Kneel: Hide; KneelingSpread: Hide; LegsClosed: LegsClosed; Spread: Spread }
        • readonlyAllFours: Hide
        • readonlyHogtied: Hide
        • readonlyKneel: Hide
        • readonlyKneelingSpread: Hide
        • readonlyLegsClosed: LegsClosed
        • readonlySpread: Spread
      • 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: ; Yoked: Yoked }
        • readonlyAllFours: AllFours
        • readonlyBackBoxTie: BackBoxTie
        • readonlyBackCuffs: BackCuffs
        • readonlyBackElbowTouch: BackElbowTouch
        • readonlyHogtied: Hogtied
        • readonlyOverTheHead: OverTheHead
        • readonlyTapedHands:
        • 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
        • readonlyHandAccessoryLeft: { 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
        • readonlyHandAccessoryRight: { 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
        • readonlyHandsLeft: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: Hide
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: Hide
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • readonlyHandsRight: { AllFours: AllFours; BackBoxTie: Hide; BackCuffs: BackCuffs; BackElbowTouch: Hide; Hogtied: Hide; OverTheHead: OverTheHead; TapedHands: TapedHands; Yoked: Yoked }
          • readonlyAllFours: AllFours
          • readonlyBackBoxTie: Hide
          • readonlyBackCuffs: BackCuffs
          • readonlyBackElbowTouch: Hide
          • readonlyHogtied: Hide
          • readonlyOverTheHead: OverTheHead
          • readonlyTapedHands: TapedHands
          • readonlyYoked: Yoked
        • 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
        • readonlyNipples: { AllFours: Hide }
          • readonlyAllFours: Hide
        • readonlyPanties: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • readonlyPussy: { AllFours: Hide; Hogtied: Hide }
          • readonlyAllFours: Hide
          • readonlyHogtied: Hide
        • 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

        BackgroundSelectionReturnScreen

        BackgroundSelectionReturnScreen: ScreenSpecifier = null

        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"

        constBackgroundsTagPandora

        BackgroundsTagPandora: Pandora = "Pandora"

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

        CharacterAppearanceMode

        CharacterAppearanceMode: | Cloth | Wardrobe | Color | Permissions = ""

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

        CharacterAppearanceReturnScreen

        CharacterAppearanceReturnScreen: ScreenSpecifier = ...

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

        ChatAdminAccessModeIndex

        ChatAdminAccessModeIndex: number = 0

        ChatAdminAccessModeLabels

        ChatAdminAccessModeLabels: ChatRoomAccessModeLabel[] = ...

        ChatAdminAccessModeValues

        ChatAdminAccessModeValues: ServerChatRoomRole[][] = ...

        ChatAdminBackground

        ChatAdminBackground: string = "Sheet"

        ChatAdminBackgroundIndex

        ChatAdminBackgroundIndex: number = 0

        ChatAdminBackgroundList

        ChatAdminBackgroundList: string[] = null

        ChatAdminData

        ChatAdminData: ServerChatRoomSettings = null

        ChatAdminDefaultLanguage

        ChatAdminDefaultLanguage: ServerChatRoomLanguage = "EN"

        ChatAdminGameList

        ChatAdminGameList: ServerChatRoomGame[] = ...

        ChatAdminLanguageList

        ChatAdminLanguageList: ServerChatRoomLanguage[] = ...

        ChatAdminMessage

        ChatAdminMessage: string = ""

        ChatAdminMode

        ChatAdminMode: create | update = null

        ChatAdminPreviewBackgroundMode

        ChatAdminPreviewBackgroundMode: boolean = false

        ChatAdminRoomCustomizationBackground

        ChatAdminRoomCustomizationBackground: string = "Sheet"

        ChatAdminRoomCustomizationCurrent

        ChatAdminRoomCustomizationCurrent: ServerChatRoomCustomData = null

        ChatAdminRoomCustomizationMode

        ChatAdminRoomCustomizationMode: MusicLibrary = null

        ChatAdminRoomCustomizationMusic

        ChatAdminRoomCustomizationMusic: HTMLAudioElement = null

        ChatAdminRoomCustomizationMusicLibrary

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

        ChatAdminRoomCustomizationSizeMode

        ChatAdminRoomCustomizationSizeMode: number = 0

        ChatAdminVisibilityModeIndex

        ChatAdminVisibilityModeIndex: number = 0

        ChatAdminVisibilityModeLabels

        ChatAdminVisibilityModeLabels: ChatRoomVisibilityModeLabel[] = ...

        ChatAdminVisibilityModeValues

        ChatAdminVisibilityModeValues: ServerChatRoomRole[][] = ...

        ChatBlockItemBackground

        ChatBlockItemBackground: string = "Sheet"

        ChatBlockItemCategory

        ChatBlockItemCategory: ServerChatRoomBlockCategory[] = []

        ChatBlockItemEditable

        ChatBlockItemEditable: boolean = true

        ChatBlockItemList

        ChatBlockItemList: ServerChatRoomBlockCategory[] = ...

        ChatBlockItemReturnScreen

        ChatBlockItemReturnScreen: ScreenSpecifier = null

        constChatRoomAccessMode

        ChatRoomAccessMode: Record<ChatRoomAccessModeLabel, ServerChatRoomRole[]> = ...

        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.

        ChatRoomDivInputPrevHeight

        ChatRoomDivInputPrevHeight: number = NaN

        The last approximate height (i.e. HTMLElement.clientHeight as opposed to DOMRect.height) of the InputChat element.

        ChatRoomDivRect

        ChatRoomDivRect: RectTuple = ...

        Default position of the entire chat panel

        ChatRoomDrawFocusList

        ChatRoomDrawFocusList: Character[] = []

        If non-empty, ChatRoomCharacterDrawlist will be filtered (after immersion removals) to only include the player and these character(s). Used for the /focus command. List will be automatically removed if characters are removed from the room.

        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

        ChatRoomImpactedBySenseDep

        ChatRoomImpactedBySenseDep: Character[] = []

        The list of characters currently impacted (not drawn) by sensory deprivation in the chat room Used as a check for whether to apply further sense dep effects to a given character (i.e. name removal, message, hiding, etc). Characters from ChatRoomCharacter

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

        The list of buttons in the top-right

        ChatRoomMessageExtractors

        ChatRoomMessageExtractors: ChatRoomMessageExtractor[] = ...

        ChatRoomMessageHandlers

        ChatRoomMessageHandlers: ChatRoomMessageHandler[] = ...

        Global list of handlers for incoming messages.

        ChatRoomMoneyForOwner

        ChatRoomMoneyForOwner: number = 0

        ChatRoomNewRoomToUpdate

        ChatRoomNewRoomToUpdate: ServerChatRoomSettings = null

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

        ChatRoomNewRoomToUpdateTimer

        ChatRoomNewRoomToUpdateTimer: number = 0

        ChatRoomOwnershipOption

        ChatRoomOwnershipOption: ChatRoomOwnershipOption = ""

        ChatRoomPlayerCanJoin

        ChatRoomPlayerCanJoin: boolean = false
        @deprecated

        Check whether ChatRoomData is set or not instead

        ChatRoomQuestGiven

        ChatRoomQuestGiven: number[] = []

        ChatRoomResizeManager

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

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

        @constant

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


        Type declaration

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

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

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

        ChatRoomSenseDepBypass

        ChatRoomSenseDepBypass: boolean = false

        constChatRoomSlowLeaveMinTime

        ChatRoomSlowLeaveMinTime: 5000 = 5000

        When slowed, we can't leave quicker than this

        ChatRoomSlowStop

        ChatRoomSlowStop: boolean = false

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

        ChatRoomSlowtimer

        ChatRoomSlowtimer: number = 0

        The timer started when a slowed player attempts to leave

        ChatRoomSpace

        ChatRoomSpace: ServerChatRoomSpace = ChatRoomSpaceType.MIXED

        constChatRoomSpaceType

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

        An enum for the options for chat room spaces


        Type declaration

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

        ChatRoomStatusDeadKeys

        ChatRoomStatusDeadKeys: string[] = ...

        constChatRoomStimulationEvents

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

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

        ChatRoomStruggleAssistBonus

        ChatRoomStruggleAssistBonus: number = 0

        ChatRoomStruggleAssistTimer

        ChatRoomStruggleAssistTimer: number = 0

        ChatRoomStruggleData

        ChatRoomStruggleData: any = null

        ChatRoomTargetMemberNumber

        ChatRoomTargetMemberNumber: number = -1

        ChatRoomViews

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

        The list of chat room views

        constChatRoomVisibilityMode

        ChatRoomVisibilityMode: Record<ChatRoomVisibilityModeLabel, ServerChatRoomRole[]> = ...

        ChatSearchBackground

        ChatSearchBackground: string = "Introduction"

        Background image

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

        ChatSearchLanguage

        ChatSearchLanguage: | ServerChatRoomLanguage = ""

        ChatSearchLanguageTemp

        ChatSearchLanguageTemp: | ServerChatRoomLanguage = ""

        ChatSearchLastQueryJoin

        ChatSearchLastQueryJoin: string = ""

        ChatSearchLastQueryJoinTime

        ChatSearchLastQueryJoinTime: number = 0

        ChatSearchLastQuerySearchTime

        ChatSearchLastQuerySearchTime: number = 0

        ChatSearchLastSearchDataJSON

        ChatSearchLastSearchDataJSON: ServerChatRoomSearchRequest = null

        ChatSearchListParams

        ChatSearchListParams: CommonGenerateGridParameters = ...

        Layout parameters for the room grid

        ChatSearchMessage

        ChatSearchMessage: string = ""

        ChatSearchMode

        ChatSearchMode: | Filter = ""

        ChatSearchPageX

        ChatSearchPageX: number = 25

        The room grid's left offset

        ChatSearchPageY

        ChatSearchPageY: number = 135

        The room grid's top offset

        ChatSearchPreviousActivePose

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

        ChatSearchRejoinIncrement

        ChatSearchRejoinIncrement: number = 1

        ChatSearchResult

        ChatSearchResult: ChatRoomSearchResult[] = []

        ChatSearchResultOffset

        ChatSearchResultOffset: number = 0

        ChatSearchReturnScreen

        ChatSearchReturnScreen: ScreenSpecifier = ...

        ChatSearchReturnToScreen

        ChatSearchReturnToScreen: RoomName = null

        ChatSearchRoomSpaces

        ChatSearchRoomSpaces: ChatRoomSpaceLabel[] = ...

        ChatSearchRoomsPerPage

        ChatSearchRoomsPerPage: number = 21

        Pre-calculated. Must be updated if you change the grid parameters

        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"

        Background image

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

        ClubCardBuilderDeckIndex

        ClubCardBuilderDeckIndex: number = -1

        ClubCardBuilderDefaultDeck

        ClubCardBuilderDefaultDeck: number[] = ...

        ClubCardBuilderDominantDeck

        ClubCardBuilderDominantDeck: number[] = ...

        ClubCardBuilderFilterGroup

        ClubCardBuilderFilterGroup: string[] = ...

        ClubCardBuilderFilterIndex

        ClubCardBuilderFilterIndex: number = 0

        ClubCardBuilderFocus

        ClubCardBuilderFocus: ClubCard = null

        ClubCardBuilderLiabilityDeck

        ClubCardBuilderLiabilityDeck: number[] = ...

        ClubCardBuilderList

        ClubCardBuilderList: ClubCard[] = []

        ClubCardBuilderMaidDeck

        ClubCardBuilderMaidDeck: number[] = ...

        ClubCardBuilderMaxDeckSize

        ClubCardBuilderMaxDeckSize: number = 40

        ClubCardBuilderMinDeckSize

        ClubCardBuilderMinDeckSize: number = 30

        ClubCardBuilderOffset

        ClubCardBuilderOffset: number = 0

        ClubCardBuilderPornDeck

        ClubCardBuilderPornDeck: number[] = ...

        ClubCardBuilderRenameIndex

        ClubCardBuilderRenameIndex: number = -1

        ClubCardColor

        ClubCardColor: string[] = ...

        ClubCardFameGoal

        ClubCardFameGoal: number = 100

        ClubCardFameTextColor

        ClubCardFameTextColor: string = "#5A73FF"

        ClubCardFocus

        ClubCardFocus: ClubCard = null

        ClubCardHover

        ClubCardHover: ClubCard = null

        constClubCardImmediateMessageTypes

        ClubCardImmediateMessageTypes: (Prerequisite | ActionSeparator | Actions | SystemMessage | PlayersMessage | PlayersDisconnected)[] = ...

        ClubCardIsStartTurn

        ClubCardIsStartTurn: boolean = false

        ClubCardLevelCost

        ClubCardLevelCost: number[] = ...

        ClubCardLevelLimit

        ClubCardLevelLimit: number[] = ...

        ClubCardList

        ClubCardList: ClubCard[] = ...

        The card definitions

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

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

        ClubCardLog

        ClubCardLog: ClubCardMessage[] = []

        Storage for all processed and displayed log messages

        ClubCardLogScroll

        ClubCardLogScroll: boolean = false

        ClubCardLoungeBackground

        ClubCardLoungeBackground: string = "ClubCardLounge"

        ClubCardLoungeTutor

        ClubCardLoungeTutor: NPCCharacter = null

        ClubCardMessageStorage

        ClubCardMessageStorage: ClubCardMessage[] = []

        Message storage to accumulate messages before processing and sending

        constClubCardMessageType

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

        ClubCardMoneyTextColor

        ClubCardMoneyTextColor: string = "#228B22"

        ClubCardOnlinePlayerMemberNumber1

        ClubCardOnlinePlayerMemberNumber1: number = -1

        ClubCardOnlinePlayerMemberNumber2

        ClubCardOnlinePlayerMemberNumber2: number = -1

        ClubCardOpponent

        ClubCardOpponent: Character = null

        ClubCardOpponentDeck

        ClubCardOpponentDeck: number[] = []

        ClubCardPending

        ClubCardPending: ClubCard = null

        constClubCardPlaceholderKeys

        ClubCardPlaceholderKeys: Readonly<{ AMOUNT: AMOUNT; CARDNAME: CARDNAME; FAMEAMOUNT: FAMEAMOUNT; FAMEMONEY: FAMEMONEY; MONEYAMOUNT: MONEYAMOUNT }> = ...

        Keys for filling in the function parameters ClubCardMessageAdd

        ClubCardPlayer

        ClubCardPlayer: ClubCardPlayer[] = []

        ClubCardPopup

        ClubCardPopup: { Button1: string; Button2: string; Function1: string; Function2: string; Mode: string; Text: string } = null

        Type declaration

        • Button1: string
        • Button2: string
        • Function1: string
        • Function2: string
        • Mode: string
        • Text: string

        ClubCardRenderLog

        ClubCardRenderLog: ClubCardMessage[] = []

        Temporary buffer used for rendering messages before final log update

        ClubCardReward

        ClubCardReward: ClubCard = null

        ClubCardSelection

        ClubCardSelection: ClubCard = null

        constClubCardStartTurnType

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

        ClubCardTextCache

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

        CommandsChangelog

        CommandsChangelog: { Parse: (innerHTML: string, options?: { href: string; id: string; startID: string; stopID: string }) => HTMLDivElement; _FilterContent: (root: Element, startID: string, stopID?: string) => void; _GetH1Button: (id: string, header: HTMLHeadingElement, level: number) => HTMLButtonElement; _GetHNButton: (id: string, header: HTMLHeadingElement, level: number) => HTMLButtonElement; _ParseA: (root: Element) => void; _ParseHeader: (root: Element, id: string, href: string, headerLevel: number, headerPrefix?: string) => void; _ParseImg: (root: Element) => void; _SetTranslationText: (changelog: Element) => Promise<void>; Publish: any } = ...

        Type declaration

        • Parse: (innerHTML: string, options?: { href: string; id: string; startID: string; stopID: string }) => HTMLDivElement

          Construct a changelog from the passed stringified HTML (constructed via e.g. the marked package).

          The stringified HTML is expected to have the following structure:

          • A single <h1> element may be present in order to represent a general changelog title
          • Version-specific sections of the changelog must be represented by <h2> elements and may contain an arbitrary number of sub-headers
          • Headers and their sections must not be grouped together inside an element; an overal flat structure is expected
          @returns
          • The newly created changelog
            • (innerHTML: string, options?: { href: string; id: string; startID: string; stopID: string }): HTMLDivElement
            • Parameters

              • innerHTML: string

                The inner html representing containing a superset of the changelog's final content

              • optionaloptions: { href: string; id: string; startID: string; stopID: string } = null
                • href: string

                  The URL leading to the (external) changelog; defaults to ./changelog.html

                • id: string

                  The (root) ID of the to-be created changelog; defaults to chat-room-changelog

                • startID: string

                  The header ID of the first to-be included segment within the changelog; defaults to the latest BC version (r[0-9]{3})

                • stopID: string

                  The header ID of the final to-be included segment within the changelog; defaults to options.startID if unspecified

              Returns HTMLDivElement

        • _FilterContent: (root: Element, startID: string, stopID?: string) => void

          Iterate through the passed changelog element and remove all (redundant) elements outside the [startID, stopID) interval.

            • (root: Element, startID: string, stopID?: string): void
            • Parameters

              • root: Element

                The changelog-containing element

              • startID: string

                The ID of the element representing the interval's start

              • stopID: string = null

                The ID of the element representing the interval's end. If not provided, use the first element matching the tag name of the startID element instead.

              Returns void

        • _GetH1Button: (id: string, header: HTMLHeadingElement, level: number) => HTMLButtonElement

          Construct a button for all h1 buttons for deleting the changelog in question.

          @returns
            • (id: string, header: HTMLHeadingElement, level: number): HTMLButtonElement
            • Parameters

              • id: string
              • header: HTMLHeadingElement
              • level: number

              Returns HTMLButtonElement

        • _GetHNButton: (id: string, header: HTMLHeadingElement, level: number) => HTMLButtonElement

          Construct a button for all hn buttons (with n > 1) for collapsing their respective section sibblings.

          @returns
            • (id: string, header: HTMLHeadingElement, level: number): HTMLButtonElement
            • Parameters

              • id: string
              • header: HTMLHeadingElement
              • level: number

              Returns HTMLButtonElement

        • _ParseA: (root: Element) => void

          Ensure that all <a> elements open their links in a new tab.

            • (root: Element): void
            • Parameters

              • root: Element

              Returns void

        • _ParseHeader: (root: Element, id: string, href: string, headerLevel: number, headerPrefix?: string) => void

          Ensure that all elements at the passed header level get a companion button, and ensure they and their respective contents are nested together in a <section>.

            • (root: Element, id: string, href: string, headerLevel: number, headerPrefix?: string): void
            • Parameters

              • root: Element
              • id: string
              • href: string
              • headerLevel: number
              • headerPrefix: string = null

              Returns void

        • _ParseImg: (root: Element) => void

          Ensure that all <img> elements can be clicked, opening their image in a new tab.

            • (root: Element): void
            • Parameters

              • root: Element

              Returns void

        • _SetTranslationText: (changelog: Element) => Promise<void>

          Set all translation-sensitive text in the changelog.

            • (changelog: Element): Promise<void>
            • Parameters

              • changelog: Element

              Returns Promise<void>

        • Publish: function
          • Publish(innerHTML: string, options?: { href: string; id: string; startID: string; stopID: string }): HTMLDivElement

          • Construct a changelog from the passed stringified HTML and publish it to the chat room chatlog.


            Parameters

            • innerHTML: string

              The inner html representing containing a superset of the changelog's final content

            • optionaloptions: { href: string; id: string; startID: string; stopID: string } = null
              • href: string

                The URL leading to the (external) changelog; defaults to ./changelog.html

              • id: string

                The (root) ID of the to-be created changelog; defaults to chat-room-changelog

              • startID: string

                The header ID of the first to-be included segment within the changelog; defaults to the latest BC version (r[0-9]{3})

              • stopID: string

                The header ID of the final to-be included segment within the changelog; defaults to options.startID if unspecified

            Returns HTMLDivElement

            • The newly created changelog

        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: Record<string, [string[], string]> = ...

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

        @constant

        CommonIsMobile

        CommonIsMobile: boolean = false

        CommonPhotoMode

        CommonPhotoMode: boolean = false

        CommonTouchList

        CommonTouchList: TouchList = null

        CommonVersionUpdated

        CommonVersionUpdated: boolean = false

        ControllerActiveAreas

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

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

        ControllerAxesWaitRelease

        ControllerAxesWaitRelease: boolean = false

        Whether we're waiting for gamepad axes to reset

        constControllerAxis

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

        Gamepad-agnostic constants for the axes


        Type declaration

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

        constControllerAxisMapping

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

        Default axis name to gamepad axis index mapping

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


        Type declaration

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

        constControllerButton

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

        Gamepad-agnostic constants for the buttons

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


        Type declaration

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

          Home triggers Chrome's screen sharing feature on macOS

        • readonlySelect: 8

          Select triggers Launchpad on macOS

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

        constControllerButtonMapping

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

        Default button name to gamepad button index mapping

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


        Type declaration

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

        ControllerButtonsWaitRelease

        ControllerButtonsWaitRelease: boolean = false

        Whether we're waiting for gamepad buttons to be released

        constControllerCalibrationAxisOffset

        ControllerCalibrationAxisOffset: 100 = 100

        constControllerCalibrationHighWatermark

        ControllerCalibrationHighWatermark: 0.8 = 0.8

        constControllerCalibrationLowWatermark

        ControllerCalibrationLowWatermark: 0.05 = 0.05

        ControllerCalibrationStage

        ControllerCalibrationStage: number = -1

        At which stage of the calibration we are

        -1 means we're not calibrating

        ControllerDPadAsAxisWorkaround

        ControllerDPadAsAxisWorkaround: boolean = false

        Whether the current gamepad actually has real D-Pad buttons

        ControllerDeadZone

        ControllerDeadZone: number = 0.01

        Minimum range an axis should move before we detect it

        Stored in player's preferences.

        ControllerDetectedCount

        ControllerDetectedCount: number = 0

        Number of detected controllers

        ControllerIgnoredAxes

        ControllerIgnoredAxes: number[] = []

        List of axes we ignore

        ControllerLastButtonState

        ControllerLastButtonState: boolean[][] = []

        The previous state the buttons were in, for each gamepad

        Used to handle repeats

        constControllerMissingAxisWarning

        ControllerMissingAxisWarning: Set<any> = ...

        constControllerMissingButtonWarning

        ControllerMissingButtonWarning: Set<any> = ...

        ControllerSensitivity

        ControllerSensitivity: number = 5

        Multiplier for any axis value we apply

        Stored in player's preferences.

        CraftingAssets

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

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

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

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

        CraftingBackground

        CraftingBackground: string = "CraftingWorkshop"

        The background of the crafting screen.

        CraftingDescription

        CraftingDescription: { Decode: (description: string) => string; DecodeToHTML: (description: string) => (string | HTMLElement)[]; Encode: (description: string) => string; ExtendedDescriptionMarker: ; Pattern: RegExp; PatternASCII: RegExp } = ...

        Type declaration

        • Decode: (description: string) => string

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

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

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

              • description: string

                The to-be decoded string

              Returns string

        • DecodeToHTML: (description: string) => (string | HTMLElement)[]

          Decode the passed string and return it as a list of valid Element.append nodes, converting \n characters into <br> elements.

          @returns
          • The decoded string as a list of nodes
            • (description: string): (string | HTMLElement)[]
            • Parameters

              • description: string

                The to-be decoded string

              Returns (string | HTMLElement)[]

        • Encode: (description: string) => string

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

          The first character is marked with CraftingDescription.ExtendedDescriptionMarker

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

              • description: string

                The initial length <=398 string of UTF8 characters

              Returns string

        • readonlyExtendedDescriptionMarker:

          Leading character for marking encoded extended crafted item descriptions.

        • readonlyPattern: RegExp

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

        • readonlyPatternASCII: RegExp

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

        CraftingDestroy

        CraftingDestroy: boolean = false

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

        CraftingElements

        CraftingElements: { _SearchCache: Map<AssetGroupItemName | ALL, readonly HTMLOptionElement[]> } = ...

        Type declaration

        CraftingEventListeners

        CraftingEventListeners: {} = ...

        Type declaration

          constCraftingID

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

          Type declaration

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

          CraftingItemList

          CraftingItemList: never = ...

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

          @deprecated

          constCraftingLockList

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

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

          CraftingMode

          CraftingMode: CraftingMode = "Slot"

          The active subscreen within the crafting screen:

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

          CraftingNakedPreview

          CraftingNakedPreview: boolean = false

          Whether the crafting character preview should be naked or not.

          CraftingOffset

          CraftingOffset: number = 0

          An offset used for the pagination of Player.Crafting.

          CraftingPreview

          CraftingPreview: Character = null

          The character used for the crafting preview.

          constCraftingPropertyExclude

          CraftingPropertyExclude: Set<keyof ItemProperties> = ...

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

          constCraftingPropertyMap

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

          Map crafting properties to their respective validation function.

          CraftingReorderList

          CraftingReorderList: number[] = []

          List of item indices collected for swapping.

          CraftingReorderMode

          CraftingReorderMode: CraftingReorderType = "None"

          CraftingReturnToChatroom

          CraftingReturnToChatroom: boolean = false

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

          CraftingSelectedItem

          CraftingSelectedItem: CraftingItemSelected = null

          The currently selected crafted item in the crafting screen.

          constCraftingSerializeFieldSep

          CraftingSerializeFieldSep: = "¶"

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

          constCraftingSerializeItemSep

          CraftingSerializeItemSep: § = "§"

          The separator used between different crafted items when serializing them.

          constCraftingSerializeSanitize

          CraftingSerializeSanitize: RegExp = ...

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

          CraftingSlot

          CraftingSlot: number = 0

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

          constCraftingStatusType

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

          An enum with status codes for crafting validation.


          Type declaration

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

          constCraftingValidationRecord

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

          A record with tools for validating CraftingItem properties.

          @see
          @todo

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

          CreationBackground

          CreationBackground: string = "Dressing"

          CreationMessage

          CreationMessage: string = ""

          CurrentCharacter

          CurrentCharacter: Character | NPCCharacter = null

          CurrentDarkFactor

          CurrentDarkFactor: number = 1.0

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

          1 is bright, 0 is pitch black

          CurrentModule

          CurrentModule: keyof ModuleScreens

          CurrentOnlinePlayers

          CurrentOnlinePlayers: number = 0

          CurrentScreen

          CurrentScreen: Wardrobe | Appearance | Player | Pandora | BackgroundSelection | Cheat | Creation | Disclaimer | FriendList | InformationSheet | ItemColor | Login | OnlineProfile | PasswordReset | Preference | Relog | Title | NPCCollaring | NPCSlaveAuction | NPCWedding | PlayerCollaring | PlayerMistress | SarahIntro | Chess | ChestLockpick | ClubCard | ClubCardBuilder | DojoStruggle | GetUp | HorseWalk | Kidnap | KinkyDungeon | Lockpick | MagicBattle | MagicPuzzle | MaidCleaning | MaidDrinks | PlayerAuction | PuppyWalker | RhythmGame | SlaveAuction | Tennis | Therapy | WheelFortune | AdvancedRule | ChatAdmin | ChatAdminRoomCustomization | ChatBlockItem | ChatRoom | ChatSearch | ChatSelect | ForbiddenWords | Game | GameClubCard | GameLARP | GameMagicBattle | NicknameManagement | WheelFortuneCustomize | Arcade | AsylumBedroom | AsylumEntrance | AsylumGGTS | AsylumMeeting | AsylumTherapy | Cafe | Cell | ClubCardLounge | CollegeCafeteria | CollegeChess | CollegeDetention | CollegeEntrance | CollegeTeacher | CollegeTennis | CollegeTheater | Crafting | DailyJob | Empty | Gambling | Infiltration | InfiltrationPerks | Introduction | KidnapLeague | LARP | Magic | MagicSchoolEscape | MagicSchoolLaboratory | MaidQuarters | MainHall | Management | MovieStudio | Nursery | PandoraPrison | Photographic | Platform | PlatformIntro | PlatformDialog | PlatformProfile | Poker | Prison | Private | PrivateBed | PrivateRansom | Sarah | Shibari | Shop | Shop2 | SlaveMarket | Stable

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

          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: never = ...
          @deprecated

          DialogFacialExpressionsSelectedBlindnessLevel

          DialogFacialExpressionsSelectedBlindnessLevel: number = 2

          DialogFavoriteStateDetails

          DialogFavoriteStateDetails: FavoriteState[] = ...

          DialogFocusGroup

          DialogFocusGroup: { Create: any } = ...

          Type declaration

          • Create: function
            • Create(id: string, listener: (this: HTMLButtonElement, ev: MouseEvent) => any, options?: { required?: boolean; useDynamicGroupName?: boolean }): HTMLElement


            • Parameters

              • id: string

                The ID for the to-be created focus group grid

              • listener: (this: HTMLButtonElement, ev: MouseEvent) => any

                The listener to-be executed upon selecting a group; the group name can be retrieved from this.name

                • options: { required?: boolean; useDynamicGroupName?: boolean } = null

                  Further options for the to-be created focus group grid

                  • optionalrequired: boolean
                  • optionaluseDynamicGroupName: boolean

                Returns HTMLElement

                • The created element

            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.

            DialogGamingReturnScreen

            DialogGamingReturnScreen: ScreenSpecifier = null

            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.

            DialogMenuMapping

            DialogMenuMapping: { activities: _DialogActivitiesMenu<activities>; crafted: _DialogCraftedMenu<crafted>; dialog: _DialogDialogMenu<dialog>; items: _DialogItemMenu<items>; locked: _DialogItemMenu<locked>; locking: _DialogLockingMenu<locking>; permissions: _DialogPermissionMenu<permissions> } = ...

            Type declaration

            DialogMenuMode

            DialogMenuMode: DialogMenuMode = null

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

            DialogSelfMenuMapping

            DialogSelfMenuMapping: { Expression: _DialogExpressionMenu<Expression>; OwnerRules: _DialogOwnerRulesMenu<OwnerRules>; Pose: _DialogPoseMenu<Pose>; SavedExpressions: _DialogSavedExpressionsMenu<SavedExpressions> } = ...

            Type declaration

            DialogSelfMenuOptions

            DialogSelfMenuOptions: readonly DialogSelfMenuName[] = ...

            The list of self-menu types available when clicking on yourself.

            The order of items in this list represents the menu iteration order as honored by the "view next page" spin button.

            DialogSelfMenuSelected

            DialogSelfMenuSelected: DialogSelfMenuName = null

            The currently active self-menu.

            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: never = ...
            @deprecated
            • Superseded by span.dialog-status.

            DialogTextDefault

            DialogTextDefault: never = ...
            @deprecated
            • Superseded by span.dialog-status[data-default].

            DialogTextDefaultDuration

            DialogTextDefaultDuration: number = 5000

            The duration temporary status message show up for, in ms

            DialogTextDefaultTimer

            DialogTextDefaultTimer: never = ...
            @deprecated
            • Superseded by span.dialog-status[data-timeout-id].

            DialogTightenLoosenItem

            DialogTightenLoosenItem: Item = null

            constDifficulty

            Difficulty: { EXTREME: number; HARDCORE: number; REGULAR: number; ROLEPLAY: number } = ...

            Type declaration

            • EXTREME: number
            • HARDCORE: number
            • REGULAR: number
            • ROLEPLAY: number

            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

            DrawCacheTextureAlphaMasks

            DrawCacheTextureAlphaMasks: Map<string, HTMLCanvasElement> = ...

            A cache of the texture masks used to draw the character

            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; CanEdge: CanEdge; 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
            • readonlyCanEdge: CanEdge
            • 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.

            ElementCheckbox

            ElementCheckbox: { Create: (id: string, onChange: (this: HTMLInputElement, ev: Event) => any, options?: Options, htmlOptions?: Partial<Record<checkbox, Omit<HTMLOptions<any>, tag>>>) => HTMLElement } = ...

            Namespace for creating DOM checkboxes.


            Type declaration

            • Create: (id: string, onChange: (this: HTMLInputElement, ev: Event) => any, options?: Options, htmlOptions?: Partial<Record<checkbox, Omit<HTMLOptions<any>, tag>>>) => HTMLElement

              Construct an return a DOM checkbox element (<input type="checkbox">)

                • (id: string, onChange: (this: HTMLInputElement, ev: Event) => any, options?: Options, htmlOptions?: Partial<Record<checkbox, Omit<HTMLOptions<any>, tag>>>): HTMLElement
                • Parameters

                  • id: string

                    The ID of the element, or null if one must be assigned automatically

                  • onChange: (this: HTMLInputElement, ev: Event) => any

                    The change event listener to-be fired upon checkbox clicks

                    • options: Options = null

                      High level options for the to-be created checkbox

                    • htmlOptions: Partial<Record<checkbox, Omit<HTMLOptions<any>, tag>>> = null

                      Additional ElementCreate options to-be applied to the respective (child) element

                    Returns HTMLElement

              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 }> = ...

              constFriendListIconMapping

              FriendListIconMapping: { : { sortKey: string; src: string; tooltipKey: string }; Asylum: { sortKey: string; src: string; tooltipKey: string }; M: { sortKey: string; src: string; tooltipKey: string }; Private: { sortKey: string; src: string; tooltipKey: string }; X: { sortKey: string; src: string; tooltipKey: string } } = ...

              Type declaration

              • : { sortKey: string; src: string; tooltipKey: string }
                • sortKey: string
                • src: string
                • tooltipKey: string
              • Asylum: { sortKey: string; src: string; tooltipKey: string }
                • sortKey: string
                • src: string
                • tooltipKey: string
              • M: { sortKey: string; src: string; tooltipKey: string }
                • sortKey: string
                • src: string
                • tooltipKey: string
              • Private: { sortKey: string; src: string; tooltipKey: string }
                • sortKey: string
                • src: string
                • tooltipKey: string
              • X: { sortKey: string; src: string; tooltipKey: string }
                • sortKey: string
                • src: string
                • tooltipKey: string

              FriendListMode

              FriendListMode: FriendListModes

              FriendListModeIndex

              FriendListModeIndex: number = 0

              FriendListReturn

              FriendListReturn: FriendListReturn<any>

              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: never = ...
              @deprecated

              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

              GLDrawFragmentShaderSourcePreMultiplyAlpha

              GLDrawFragmentShaderSourcePreMultiplyAlpha: string = ...

              Source used for the Pre-Multiply 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: ServerChatRoomGameCardGameData[]; CCLog: ClubCardMessage; GameProgress?: Next | Start | Action | 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 = "R115"

              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

              InfiltrationPenitentiaryAmount

              InfiltrationPenitentiaryAmount: number = 0

              InfiltrationPenitentiaryMinutes

              InfiltrationPenitentiaryMinutes: number = 0

              InfiltrationPenitentiaryRole

              InfiltrationPenitentiaryRole: string = "I"

              InfiltrationPerksBackground

              InfiltrationPerksBackground: string = "Sheet"

              InfiltrationPerksList

              InfiltrationPerksList: string[] = ...

              InfiltrationSupervisor

              InfiltrationSupervisor: NPCCharacter = null

              InfiltrationTarget

              InfiltrationTarget: InfiltrationMissionTarget = null

              InformationSheetBackground

              InformationSheetBackground: string = "Sheet"

              InformationSheetReturnScreen

              InformationSheetReturnScreen: ScreenSpecifier = null

              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

              InventoryWearCraft

              InventoryWearCraft: never = ...

              Sets the craft and type on the item, uses the achetype properties if possible. Note that appearance changes are not pushed to the server.

              @deprecated

              Use InventoryCraft instead (or use InventoryWear directly if appropriate)

              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

              The dummy on the login screen.

              Lifetime bound to the screen.

              LoginCredits

              LoginCredits: string[][]

              Contents of the GameCredits.csv file Initialized once on screen load

              LoginCreditsPosition

              LoginCreditsPosition: number = 0

              LoginErrorMessage

              LoginErrorMessage: string = ""

              The server login status

              LoginEventListeners

              LoginEventListeners: {} = ...

              Type declaration

                LoginInventoryFixups

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

                The list of item fixups to apply on login.

                Those are applied by the login code, after the player's item lists are set up but before the inventory and appearance are loaded from the server's data, and applies the specified asset fixups by swapping Old with New in the list of owned items, in the various player item lists, and in the appearance.

                If you're only moving items around, it should work just fine as long as the Old and New asset definitions are compatible. If it's an asset merge (say 3 into one typed asset), it will either set the fixed up item to the specified Option or the first one if unspecified.

                LoginQueuePosition

                LoginQueuePosition: number = -1

                LoginSubmitted

                LoginSubmitted: boolean = false

                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

                constMainHallAllowIDToScreenMap

                MainHallAllowIDToScreenMap: { Arcade: string; Asylum: string; Cafe: string; Cell: string; ClubCard: string; College: string; Crafting: string; Gambling: string; Infiltration: string; Introduction: string; KidnapLeague: string; LARPBattle: string; Magic: string; MagicSchool: string; MaidQuarters: string; MovieStudio: string; Nursery: string; Photographic: string; Platform: string; Poker: string; Prison: string; Private: string; Sarah: string; ShibariDojo: string; Shop: string; SlaveMarket: string; Stable: string; Trouble: string } = ...

                Type declaration

                • Arcade: string
                • Asylum: string
                • Cafe: string
                • Cell: string
                • ClubCard: string
                • College: string
                • Crafting: string
                • Gambling: string
                • Infiltration: string
                • Introduction: string
                • KidnapLeague: string
                • LARPBattle: string
                • Magic: string
                • MagicSchool: string
                • MaidQuarters: string
                • MovieStudio: string
                • Nursery: string
                • Photographic: string
                • Platform: string
                • Poker: string
                • Prison: string
                • Private: string
                • Sarah: string
                • ShibariDojo: string
                • Shop: string
                • SlaveMarket: string
                • Stable: string
                • Trouble: string

                MainHallAsylumOpen

                MainHallAsylumOpen: boolean = true

                MainHallBackground

                MainHallBackground: string = "MainHall"

                MainHallBeingPunished

                MainHallBeingPunished: boolean = false

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

                MainHallFirstFrame

                MainHallFirstFrame: boolean = true

                MainHallHasFamilyLock

                MainHallHasFamilyLock: boolean = false

                MainHallHasLoverLock

                MainHallHasLoverLock: boolean = false

                MainHallHasOwnerLock

                MainHallHasOwnerLock: boolean = false

                MainHallHasSlaveCollar

                MainHallHasSlaveCollar: boolean = false

                MainHallIsHeadMaid

                MainHallIsHeadMaid: boolean = false

                MainHallIsMaid

                MainHallIsMaid: boolean = false

                MainHallMaid

                MainHallMaid: NPCCharacter = null

                MainHallMaidWasCalledManually

                MainHallMaidWasCalledManually: boolean = false

                MainHallMaxTip

                MainHallMaxTip: number = 36

                The max number of known tips

                MainHallNextEventTimer

                MainHallNextEventTimer: number = null

                MainHallPunishmentChoice

                MainHallPunishmentChoice: number = 0

                MainHallPunishmentList

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

                MainHallRandomEventOdds

                MainHallRandomEventOdds: number = 0

                MainHallRopeColor

                MainHallRopeColor: string = "Default"

                MainHallStartEventTimer

                MainHallStartEventTimer: number = null

                MainHallStrongLocks

                MainHallStrongLocks: AssetLockType[] = ...

                MainHallTip

                MainHallTip: number = 0

                The index of the current tip

                MainHallTipCycleDelay

                MainHallTipCycleDelay: number = 10000

                The max delay to wait before changing the current tip

                MainHallTipCycleTimer

                MainHallTipCycleTimer: number = null

                The timer that tracks the last time the tip cycled

                ManagementBackground

                ManagementBackground: string = "Management"

                ManagementCanReleaseChastity

                ManagementCanReleaseChastity: boolean = true

                ManagementEmpty

                ManagementEmpty: boolean = false

                ManagementMistress

                ManagementMistress: NPCCharacter = null

                ManagementMistressAllowPlay

                ManagementMistressAllowPlay: boolean = false

                ManagementMistressAngryCount

                ManagementMistressAngryCount: number = 0

                ManagementMistressReleaseTimer

                ManagementMistressReleaseTimer: number = 0

                ManagementPlayerAppearance

                ManagementPlayerAppearance: Item[] = null

                ManagementRandomActivity

                ManagementRandomActivity: string = ""

                ManagementRandomActivityCategory

                ManagementRandomActivityCategory: string = ""

                ManagementRandomActivityCategoryList

                ManagementRandomActivityCategoryList: string[] = ...

                ManagementRandomActivityCount

                ManagementRandomActivityCount: number = 0

                ManagementRandomActivityList

                ManagementRandomActivityList: string[] = ...

                ManagementRandomGirl

                ManagementRandomGirl: NPCCharacter = null

                ManagementRandomGirlArchetype

                ManagementRandomGirlArchetype: | NPCArchetype = ""

                ManagementRandomTalkCount

                ManagementRandomTalkCount: number = 0

                ManagementSub

                ManagementSub: NPCCharacter = null

                ManagementTimer

                ManagementTimer: number = 0

                ManagementVisitRoom

                ManagementVisitRoom: boolean = false

                MiniGameAdvancedPayment

                MiniGameAdvancedPayment: number = 0

                MiniGameCheatAvailable

                MiniGameCheatAvailable: boolean = false

                MiniGameChessBoard

                MiniGameChessBoard: any = null

                MiniGameChessGame

                MiniGameChessGame: any = null

                MiniGameDifficulty

                MiniGameDifficulty: number = 0

                MiniGameDifficultyMode

                MiniGameDifficultyMode: string = ""

                MiniGameDifficultyRatio

                MiniGameDifficultyRatio: number = 1

                MiniGameEnded

                MiniGameEnded: boolean = false

                MiniGamePerfect

                MiniGamePerfect: boolean = true

                MiniGameProgress

                MiniGameProgress: number = -1

                MiniGameReturnFunction

                MiniGameReturnFunction: string = ""

                MiniGameStarted

                MiniGameStarted: boolean = false

                MiniGameTimer

                MiniGameTimer: number = 0

                MiniGameType

                MiniGameType: string = ""

                MiniGameVictory

                MiniGameVictory: boolean = false

                MistressTimerChooseIndex

                MistressTimerChooseIndex: number = 0

                constMistressTimerChooseList

                MistressTimerChooseList: number[] = ...

                constModularItemBase

                ModularItemBase: Base = "Base"

                The keyword used for the base menu on modular items

                @const

                ModularItemChatSetting

                ModularItemChatSetting: Record<PER_MODULE | PER_OPTION, ModularItemChatSetting>

                An enum encapsulating the possible chatroom message settings for modular items

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

                constModularItemDataLookup

                ModularItemDataLookup: Record<string, ModularItemData> = {}

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

                @const
                @see

                MouseX

                MouseX: number = 0

                MouseY

                MouseY: number = 0

                MovieStudioActivity

                MovieStudioActivity: string[] = []

                MovieStudioActor1

                MovieStudioActor1: NPCCharacter = null

                MovieStudioActor2

                MovieStudioActor2: NPCCharacter = null

                MovieStudioBackground

                MovieStudioBackground: string = "MovieStudio"

                MovieStudioCurrentMovie

                MovieStudioCurrentMovie: string = ""

                MovieStudioCurrentRole

                MovieStudioCurrentRole: string = ""

                MovieStudioCurrentScene

                MovieStudioCurrentScene: string = ""

                MovieStudioDailyMovie

                MovieStudioDailyMovie: string = ""

                MovieStudioDecay

                MovieStudioDecay: number = 0

                MovieStudioDirector

                MovieStudioDirector: NPCCharacter = null

                MovieStudioMeter

                MovieStudioMeter: number = 0

                MovieStudioMoney

                MovieStudioMoney: number = 0

                MovieStudioOriginalClothes

                MovieStudioOriginalClothes: Item[] = null

                MovieStudioTimer

                MovieStudioTimer: number = null

                NPCCollaringBackground

                NPCCollaringBackground: string = "Management"

                NPCCollaringGirlLeft

                NPCCollaringGirlLeft: NPCCharacter = null

                NPCCollaringGirlRight

                NPCCollaringGirlRight: NPCCharacter = null

                NPCCollaringMistressLeft

                NPCCollaringMistressLeft: NPCCharacter = null

                NPCCollaringMistressRight

                NPCCollaringMistressRight: NPCCharacter = null

                NPCCollaringSub

                NPCCollaringSub: NPCCharacter = null

                NPCSlaveAuctionAmount

                NPCSlaveAuctionAmount: number = 0

                NPCSlaveAuctionBackground

                NPCSlaveAuctionBackground: string = "SlaveMarket"

                NPCSlaveAuctionGirlLeft

                NPCSlaveAuctionGirlLeft: NPCCharacter = null

                NPCSlaveAuctionGirlRight

                NPCSlaveAuctionGirlRight: NPCCharacter = null

                NPCSlaveAuctionMistress

                NPCSlaveAuctionMistress: NPCCharacter = null

                NPCSlaveAuctionSlave

                NPCSlaveAuctionSlave: NPCCharacter = null

                NPCSlaveAuctionVendor

                NPCSlaveAuctionVendor: NPCCharacter = null

                NPCTrait

                NPCTrait: [NPCTraitType, NPCTraitType][] = ...

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

                PandoraPenitentiaryActivityList

                PandoraPenitentiaryActivityList: string[] = ...

                PandoraPenitentiaryActivityTimer

                PandoraPenitentiaryActivityTimer: number = 0

                PandoraPenitentiaryCageList

                PandoraPenitentiaryCageList: string[] = ...

                PandoraPenitentiaryCreateTimer

                PandoraPenitentiaryCreateTimer: number = 0

                PandoraPenitentiarySafewordRooms

                PandoraPenitentiarySafewordRooms: any[] = []

                PandoraPenitentiaryStartNewRoom

                PandoraPenitentiaryStartNewRoom: boolean = false

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

                PlatformCooldown

                PlatformCooldown: Cooldown[] = []

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

                PlatformDialogCharacterDisplay

                PlatformDialogCharacterDisplay: any = null

                PlatformDialogCharacterTemplate

                PlatformDialogCharacterTemplate: DialogCharacter[] = ...

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

                PlatformExperienceForLevel

                PlatformExperienceForLevel: number[] = ...

                PlatformFloor

                PlatformFloor: number = 1180

                PlatformFocusCharacter

                PlatformFocusCharacter: DialogCharacter = 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: Item[] = ...

                PlatformJumpPhase

                PlatformJumpPhase: string = ""

                PlatformKeys

                PlatformKeys: string[] = []

                PlatformLastKeyCode

                PlatformLastKeyCode: string = ""

                PlatformLastKeyTime

                PlatformLastKeyTime: number = 0

                PlatformLastTime

                PlatformLastTime: number = null

                PlatformLastTouch

                PlatformLastTouch: TouchList = null

                PlatformMessage

                PlatformMessage: any = null

                PlatformMusic

                PlatformMusic: any = null

                PlatformParty

                PlatformParty: PartyMember[] = []

                PlatformPlayer

                PlatformPlayer: any = null

                PlatformPlayerIdleLast

                PlatformPlayerIdleLast: string = ""

                PlatformPlayerIdleTimer

                PlatformPlayerIdleTimer: any = null

                PlatformRegen

                PlatformRegen: number = 0

                PlatformRightButtons

                PlatformRightButtons: any[] = []

                PlatformRoom

                PlatformRoom: Room = null

                PlatformRoomList

                PlatformRoomList: Room[] = ...

                All available rooms

                PlatformRunDirection

                PlatformRunDirection: string = ""

                PlatformRunStandaloneMode

                PlatformRunStandaloneMode: boolean = false

                PlatformRunTime

                PlatformRunTime: number = 0

                PlatformSaveMode

                PlatformSaveMode: boolean = false

                PlatformShowHitBox

                PlatformShowHitBox: boolean = false

                PlatformTempEvent

                PlatformTempEvent: any[] = []

                PlatformTemplate

                PlatformTemplate: (CharacterTemplate | DummyTemplate)[] = ...

                PlatformTimedScreenFilter

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

                Type declaration

                • End: number
                • Filter: string

                PlatformViewX

                PlatformViewX: number = 0

                PlatformViewY

                PlatformViewY: number = 200

                Player

                PlayerAuctionBackground

                PlayerAuctionBackground: string = "SlaveMarket"

                PlayerAuctionBidAmount

                PlayerAuctionBidAmount: number = 0

                PlayerAuctionBidCurrent

                PlayerAuctionBidCurrent: number = -1

                PlayerAuctionBidNextTime

                PlayerAuctionBidNextTime: number = 0

                PlayerAuctionBidTime

                PlayerAuctionBidTime: number = 0

                PlayerAuctionCustomer

                PlayerAuctionCustomer: NPCCharacter[] = null

                PlayerAuctionEnd

                PlayerAuctionEnd: boolean = false

                PlayerAuctionPlead

                PlayerAuctionPlead: number = 0

                PlayerAuctionSilenceMode

                PlayerAuctionSilenceMode: boolean = false

                PlayerCollaringBackground

                PlayerCollaringBackground: string = "Management"

                PlayerCollaringGirlLeft

                PlayerCollaringGirlLeft: NPCCharacter = null

                PlayerCollaringGirlRight

                PlayerCollaringGirlRight: NPCCharacter = null

                PlayerCollaringMistress

                PlayerCollaringMistress: NPCCharacter = null

                PlayerCollaringMistressLeft

                PlayerCollaringMistressLeft: NPCCharacter = null

                PlayerCollaringMistressRight

                PlayerCollaringMistressRight: NPCCharacter = null

                PlayerDialog

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

                PlayerMistressBackground

                PlayerMistressBackground: string = "Management"

                PlayerMistressMaidLeft

                PlayerMistressMaidLeft: NPCCharacter = null

                PlayerMistressMaidRight

                PlayerMistressMaidRight: NPCCharacter = null

                PlayerMistressMistressLeft

                PlayerMistressMistressLeft: NPCCharacter = null

                PlayerMistressMistressRight

                PlayerMistressMistressRight: NPCCharacter = null

                PokerAnte

                PokerAnte: number = 2

                PokerAnteCount

                PokerAnteCount: number = 0

                PokerAsset

                PokerAsset: PokerAsset[] = ...

                PokerBackground

                PokerBackground: string = "White"

                PokerChallenge

                PokerChallenge: string[] = ...

                PokerGame

                PokerGame: PokerGameType = "TexasHoldem"

                PokerMessage

                PokerMessage: string = ""

                PokerMode

                PokerMode: PokerMode = ""

                PokerOpponentList

                PokerOpponentList: string[] = ...

                PokerPlayer

                PokerPlayer: PokerPlayer[] = ...

                PokerPlayerCount

                PokerPlayerCount: number = 4

                PokerPot

                PokerPot: number = 0

                PokerResultMessage

                PokerResultMessage: string = ""

                PokerShowPlayer

                PokerShowPlayer: boolean = true

                PokerTableCards

                PokerTableCards: number[] = []

                constPortalLinkCodeInputID

                PortalLinkCodeInputID: PortalLinkCode = "PortalLinkCode"

                The DOM ID for the sync code field

                constPortalLinkCodeLength

                PortalLinkCodeLength: 8 = 8

                Max length of sync codes

                constPortalLinkCodeRegex

                PortalLinkCodeRegex: RegExp = ...

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

                constPortalLinkCodeText

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

                Regex string for what consitutes a valid sync code

                constPortalLinkCopyCodeButton

                PortalLinkCopyCodeButton: RectTuple = ...

                constPortalLinkFunctionGrid

                PortalLinkFunctionGrid: CommonGenerateGridParameters = ...

                Parameters for the button grid

                constPortalLinkPasteCodeButton

                PortalLinkPasteCodeButton: RectTuple = ...

                constPortalLinkRandomCodeButton

                PortalLinkRandomCodeButton: RectTuple = ...

                constPortalLinkStatusColors

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

                PortalLinkTransmitterLastLinkCheck

                PortalLinkTransmitterLastLinkCheck: number = null

                PortalLinkTransmitterStatus

                PortalLinkTransmitterStatus: PortalLinkStatus = "PortalLinkInvalidCode"

                Pose

                Pose: Pose[] = []

                constPoseAllKneeling

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

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

                constPoseAllStanding

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

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

                constPoseCategoryPriority

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

                A record mapping pose categories to sorting priorities.

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


                Type declaration

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

                constPoseChangeStatus

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

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

                @see

                Type declaration

                • readonlyALWAYS: 3

                  Always allow a particular change in pose

                • readonlyALWAYS_WITH_STRUGGLE: 2

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

                • readonlyNEVER: 0

                  Never allow a particular change in pose

                • readonlyNEVER_WITHOUT_AID: 1

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

                PoseFemale3DCG

                PoseFemale3DCG: Pose[] = ...

                3D Custom Girl based pose

                PoseFemale3DCGNames

                PoseFemale3DCGNames: AssetPoseName[] = ...

                List of all available pose names in the game

                @constant

                constPoseRecord

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

                A record mapping pose names to their respective Pose.

                constPoseType

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

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


                Type declaration

                • readonlyDEFAULT:

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

                • readonlyHIDE: Hide

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

                PreferenceArousalActiveIndex

                PreferenceArousalActiveIndex: number = 0

                PreferenceArousalActiveList

                PreferenceArousalActiveList: ArousalActiveName[] = ...

                PreferenceArousalActivityDefaultCompressedString

                PreferenceArousalActivityDefaultCompressedString: string = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

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

                PreferenceArousalActivityFactorOther

                PreferenceArousalActivityFactorOther: ArousalFactor = 0

                PreferenceArousalActivityFactorSelf

                PreferenceArousalActivityFactorSelf: ArousalFactor = 0

                PreferenceArousalActivityIndex

                PreferenceArousalActivityIndex: number = 0

                PreferenceArousalActivityList

                PreferenceArousalActivityList: ActivityName[] = null

                PreferenceArousalAffectStutterIndex

                PreferenceArousalAffectStutterIndex: number = 0

                PreferenceArousalAffectStutterList

                PreferenceArousalAffectStutterList: ArousalAffectStutterName[] = ...

                PreferenceArousalFetishDefaultCompressedString

                PreferenceArousalFetishDefaultCompressedString: string = "fffffffffffffffffff"

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

                PreferenceArousalFetishFactor

                PreferenceArousalFetishFactor: ArousalFactor = 0

                PreferenceArousalFetishIndex

                PreferenceArousalFetishIndex: number = 0

                PreferenceArousalFetishList

                PreferenceArousalFetishList: FetishName[] = null

                PreferenceArousalVisibleIndex

                PreferenceArousalVisibleIndex: number = 0

                PreferenceArousalVisibleList

                PreferenceArousalVisibleList: ArousalVisibleName[] = ...

                PreferenceArousalZoneDefaultCompressedString

                PreferenceArousalZoneDefaultCompressedString: string = "ffpppfffffffffffff"

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

                PreferenceArousalZoneFactor

                PreferenceArousalZoneFactor: ArousalFactor = 0

                PreferenceBackground

                PreferenceBackground: string = "Sheet"

                The background to use for the settings screen

                PreferenceCalibrationStage

                PreferenceCalibrationStage: number = 0

                PreferenceCensoredWordsList

                PreferenceCensoredWordsList: string[] = []

                PreferenceCensoredWordsOffset

                PreferenceCensoredWordsOffset: number = 0

                PreferenceChatColorThemeIndex

                PreferenceChatColorThemeIndex: number = 0

                PreferenceChatColorThemeList

                PreferenceChatColorThemeList: ChatColorThemeType[] = ...

                PreferenceChatEnterLeaveIndex

                PreferenceChatEnterLeaveIndex: number = 0

                PreferenceChatEnterLeaveList

                PreferenceChatEnterLeaveList: ChatEnterLeaveType[] = ...

                PreferenceChatFontSizeIndex

                PreferenceChatFontSizeIndex: number = 1

                PreferenceChatFontSizeList

                PreferenceChatFontSizeList: ChatFontSizeType[] = ...

                PreferenceChatMemberNumbersIndex

                PreferenceChatMemberNumbersIndex: number = 0

                PreferenceChatMemberNumbersList

                PreferenceChatMemberNumbersList: ChatMemberNumbersType[] = ...

                PreferenceChatPageIndex

                PreferenceChatPageIndex: number = 0

                PreferenceChatPageList

                PreferenceChatPageList: number[] = ...

                PreferenceDidAddOldStyleScreens

                PreferenceDidAddOldStyleScreens: boolean = false

                PreferenceDifficultyAccept

                PreferenceDifficultyAccept: boolean = false

                PreferenceDifficultyLevel

                PreferenceDifficultyLevel: DifficultyLevel = 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: { Assets: { Asset: Asset; Blocked: boolean; Hidden: boolean; Limited: boolean }[]; Group: AssetGroup }[] = []

                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}` | `AnkletLeft/${string}` | `AnkletRight/${string}` | `ArmsLeft/${string}` | `ArmsRight/${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}` | `HandAccessoryLeft/${string}` | `HandAccessoryRight/${string}` | `Hat/${string}` | `Head/${string}` | `Height/${string}` | `Jewelry/${string}` | `Mask/${string}` | `Necklace/${string}` | `Nipples/${string}` | `Panties/${string}` | `Pronouns/${string}` | `Shoes/${string}` | `Socks/${string}` | `SocksLeft/${string}` | `SocksRight/${string}` | `Suit/${string}` | `SuitLower/${string}` | `TailStraps/${string}` | `Wings/${string}` | `HandsLeft/${string}` | `HandsRight/${string}` | `FaceMarkings/${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: NPCTraitType = null

                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 | Require | Alpha | ExpressionTrigger | AllowEffect | AllowBlock | AllowHide | AllowHideItem | Category | AvailableLocations | AllowExpression | 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: RelogData = null

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

                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: readonly [{ EnglishName: English; Files: readonly []; Icon: 🇬🇧; LanguageCode: EN; LanguageName: English }, { EnglishName: German; Files: readonly [Assets/Female3DCG/Female3DCG_DE.txt, Backgrounds/Backgrounds_DE.txt, Screens/Character/Appearance/Text_Appearance_DE.txt, Screens/Character/Cheat/Text_Cheat_DE.txt, Screens/Character/Creation/Text_Creation_DE.txt, Screens/Character/FriendList/Text_FriendList_DE.txt, Screens/Character/InformationSheet/Text_InformationSheet_DE.txt, Screens/Character/Login/Text_Login_DE.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_DE.txt, Screens/Character/PasswordReset/Text_PasswordReset_DE.txt, Screens/Character/Player/Dialog_Player_DE.txt, Screens/Character/Preference/Text_Preference_DE.txt, Screens/Character/Preference/ActivityDictionary_DE.txt, Screens/Character/Title/Text_Title_DE.txt, Screens/Character/Wardrobe/Text_Wardrobe_DE.txt, Screens/Cutscene/NPCCollaring/Text_NPCCollaring_DE.txt, Screens/Cutscene/NPCSlaveAuction/Text_NPCSlaveAuction_DE.txt, Screens/Cutscene/PlayerCollaring/Text_PlayerCollaring_DE.txt, Screens/Cutscene/PlayerMistress/Text_PlayerMistress_DE.txt, Screens/Cutscene/SarahIntro/Text_SarahIntro_DE.txt, Screens/Interface_DE.txt, Screens/MiniGame/HorseWalk/Text_HorseWalk_DE.txt, Screens/MiniGame/Kidnap/Text_Kidnap_DE.txt, Screens/MiniGame/MaidCleaning/Text_MaidCleaning_DE.txt, Screens/MiniGame/MaidDrinks/Text_MaidDrinks_DE.txt, Screens/MiniGame/RhythmGame/Text_RhythmGame_DE.txt, Screens/MiniGame/SlaveAuction/Text_SlaveAuction_DE.txt, Screens/MiniGame/Tennis/Text_Tennis_DE.txt, Screens/MiniGame/Therapy/Text_Therapy_DE.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_DE.txt, Screens/Online/ChatCreate/Text_ChatCreate_DE.txt, Screens/Online/ChatRoom/Dialog_Online_DE.txt, Screens/Online/ChatRoom/Text_ChatRoom_DE.txt, Screens/Online/ChatSearch/Text_ChatSearch_DE.txt, Screens/Room/AsylumBedroom/Text_AsylumBedroom_DE.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_EscapedPatient_DE.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_KidnapNurse_DE.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_Nurse_DE.txt, Screens/Room/AsylumEntrance/Text_AsylumEntrance_DE.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientLeft_DE.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientRight_DE.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Nurse_DE.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Patient_DE.txt, Screens/Room/Cafe/Dialog_NPC_Cafe_Maid_DE.txt, Screens/Room/Cafe/Text_Cafe_DE.txt, Screens/Room/Cell/Text_Cell_DE.txt, Screens/Room/CollegeEntrance/Dialog_NPC_CollegeEntrance_Student_DE.txt, Screens/Room/CollegeEntrance/Text_CollegeEntrance_DE.txt, Screens/Room/CollegeTennis/Dialog_NPC_CollegeTennis_Jennifer_DE.txt, Screens/Room/CollegeTennis/Text_CollegeTennis_DE.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_FirstSub_DE.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_SecondSub_DE.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Maid_DE.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Sub_DE.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_RandomKidnapper_DE.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_Trainer_DE.txt, Screens/Room/Magic/Dialog_NPC_Magic_Assistant_DE.txt, Screens/Room/Magic/Dialog_NPC_Magic_Performer_DE.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_InitiationMaids_DE.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_Maid_DE.txt, Screens/Room/MainHall/Dialog_NPC_MainHall_Maid_DE.txt, Screens/Room/MainHall/Text_MainHall_DE.txt, Screens/Room/Management/Dialog_NPC_Management_Mistress_DE.txt, Screens/Room/Management/Dialog_NPC_Management_RandomGirl_DE.txt, Screens/Room/Management/Dialog_NPC_Management_Sub_DE.txt, Screens/Room/Management/Text_Management_DE.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL1_DE.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL2_DE.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_Nurse_DE.txt, Screens/Room/Nursery/Text_Nursery_DE.txt, Screens/Room/Photographic/Dialog_NPC_Photographic_Sub_DE.txt, Screens/Room/Photographic/Text_Photographic_DE.txt, Screens/Room/Prison/Dialog_NPC_Prison_Maid_DE.txt, Screens/Room/Prison/Dialog_NPC_Prison_Sub_DE.txt, Screens/Room/Prison/Text_Prison_DE.txt, Screens/Room/Private/Dialog_NPC_Private_Custom_DE.txt, Screens/Room/Private/Dialog_NPC_Private_Vendor_DE.txt, Screens/Room/Private/Text_Private_DE.txt, Screens/Room/Sarah/Dialog_NPC_Amanda_DE.txt, Screens/Room/Sarah/Dialog_NPC_Sarah_DE.txt, Screens/Room/Sarah/Dialog_NPC_Sophie_DE.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Student_DE.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Teacher_DE.txt, Screens/Room/Shop/Dialog_NPC_Shop_Customer_DE.txt, Screens/Room/Shop/Dialog_NPC_Shop_Vendor_DE.txt, Screens/Room/Shop/Text_Shop_DE.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Mistress_DE.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Slave_DE.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_SlaveToTrain_DE.txt, Screens/Room/Stable/Dialog_NPC_Stable_Pony_DE.txt, Screens/Room/Stable/Dialog_NPC_Stable_Trainer_DE.txt, Screens/Room/Stable/Text_Stable_DE.txt]; Icon: 🇩🇪; LanguageCode: DE; LanguageName: Deutsch }, { EnglishName: French; Files: readonly [Assets/Female3DCG/ColorGroups_FR.txt, Assets/Female3DCG/Female3DCG_FR.txt, Assets/Female3DCG/LayerNames_FR.txt, Backgrounds/Backgrounds_FR.txt, Screens/Character/Appearance/Text_Appearance_FR.txt, Screens/Character/BackgroundSelection/Text_BackgroundSelection_FR.txt, Screens/Character/Cheat/Text_Cheat_FR.txt, Screens/Character/Creation/Text_Creation_FR.txt, Screens/Character/Disclaimer/Text_Disclaimer_FR.txt, Screens/Character/FriendList/Text_FriendList_FR.txt, Screens/Character/InformationSheet/Text_InformationSheet_FR.txt, Screens/Character/ItemColor/ItemColor_FR.txt, Screens/Character/Login/Text_Login_FR.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_FR.txt, Screens/Character/PasswordReset/Text_PasswordReset_FR.txt, Screens/Character/Player/Dialog_Player_FR.txt, Screens/Character/Preference/ActivityDictionary_FR.txt, Screens/Character/Preference/Text_Preference_FR.txt, Screens/Character/Relog/Text_Relog_FR.txt, Screens/Character/Title/Text_Title_FR.txt, Screens/Character/Wardrobe/Text_Wardrobe_FR.txt, Screens/Cutscene/NPCCollaring/Text_NPCCollaring_FR.txt, Screens/Cutscene/NPCSlaveAuction/Text_NPCSlaveAuction_FR.txt, Screens/Cutscene/PlayerCollaring/Text_PlayerCollaring_FR.txt, Screens/Cutscene/PlayerMistress/Text_PlayerMistress_FR.txt, Screens/Cutscene/SarahIntro/Text_SarahIntro_FR.txt, Screens/MiniGame/DojoStruggle/Text_DojoStruggle_FR.txt, Screens/MiniGame/HorseWalk/Text_HorseWalk_FR.txt, Screens/MiniGame/Kidnap/Text_Kidnap_FR.txt, Screens/MiniGame/MaidCleaning/Text_MaidCleaning_FR.txt, Screens/MiniGame/MaidDrinks/Text_MaidDrinks_FR.txt, Screens/MiniGame/PuppyWalker/Text_PuppyWalker_FR.txt, Screens/MiniGame/RhythmGame/Text_RhythmGame_FR.txt, Screens/MiniGame/SlaveAuction/Text_SlaveAuction_FR.txt, Screens/MiniGame/Tennis/Text_Tennis_FR.txt, Screens/MiniGame/Therapy/Text_Therapy_FR.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_FR.txt, Screens/Online/ChatCreate/Text_ChatCreate_FR.txt, Screens/Online/ChatRoom/Dialog_Online_FR.txt, Screens/Online/ChatRoom/Text_ChatRoom_FR.txt, Screens/Online/ChatSearch/Text_ChatSearch_FR.txt, Screens/Room/AsylumBedroom/Text_AsylumBedroom_FR.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_EscapedPatient_FR.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_KidnapNurse_FR.txt, Screens/Room/AsylumEntrance/Text_AsylumEntrance_FR.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientLeft_FR.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientRight_FR.txt, Screens/Room/Cafe/Text_Cafe_FR.txt, Screens/Room/Cell/Text_Cell_FR.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_FarRight_FR.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_Right_FR.txt, Screens/Room/CollegeCafeteria/Text_CollegeCafeteria_FR.txt, Screens/Room/CollegeDetention/Text_CollegeDetention_FR.txt, Screens/Room/CollegeEntrance/Dialog_NPC_CollegeEntrance_Student_FR.txt, Screens/Room/CollegeEntrance/Text_CollegeEntrance_FR.txt, Screens/Room/CollegeTeacher/Text_CollegeTeacher_FR.txt, Screens/Room/CollegeTennis/Text_CollegeTennis_FR.txt, Screens/Room/CollegeTheater/Text_CollegeTheater_FR.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_DojoTeacher_FR.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_PuppyMistress_FR.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Sub_FR.txt, Screens/Room/LARP/Text_LARP_FR.txt, Screens/Room/Magic/Dialog_NPC_Magic_Assistant_FR.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_InitiationMaids_FR.txt, Screens/Room/MainHall/Dialog_NPC_MainHall_Maid_FR.txt, Screens/Room/MainHall/Text_MainHall_FR.txt, Screens/Room/Management/Dialog_NPC_Management_Sub_FR.txt, Screens/Room/Management/Text_Management_FR.txt, Screens/Room/Nursery/Text_Nursery_FR.txt, Screens/Room/Photographic/Text_Photographic_FR.txt, Screens/Room/Prison/Text_Prison_FR.txt, Screens/Room/Private/Text_Private_FR.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Student_FR.txt, Screens/Room/Shop/Text_Shop_FR.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_SlaveToTrain_FR.txt, Screens/Room/Stable/Text_Stable_FR.txt]; Icon: 🇫🇷; LanguageCode: FR; LanguageName: Français }, { EnglishName: Russian; Files: readonly [Assets/Female3DCG/Female3DCG_RU.txt, Assets/Female3DCG/ColorGroups_RU.txt, Assets/Female3DCG/LayerNames_RU.txt, Assets/Female3DCG/AssetStrings_RU.txt, Backgrounds/Backgrounds_RU.txt, Screens/Interface_RU.txt, Screens/Character/Appearance/Text_Appearance_RU.txt, Screens/Character/BackgroundSelection/Text_BackgroundSelection_RU.txt, Screens/Character/Cheat/Text_Cheat_RU.txt, Screens/Character/Creation/Text_Creation_RU.txt, Screens/Character/Disclaimer/Text_Disclaimer_RU.txt, Screens/Character/FriendList/Text_FriendList_RU.txt, Screens/Character/InformationSheet/Text_InformationSheet_RU.txt, Screens/Character/ItemColor/ItemColor_RU.txt, Screens/Character/Login/Text_Login_RU.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_RU.txt, Screens/Character/PasswordReset/Text_PasswordReset_RU.txt, Screens/Character/Player/Dialog_Player_RU.txt, Screens/Character/Preference/Text_Preference_RU.txt, Screens/Character/Preference/ActivityDictionary_RU.txt, Screens/Character/Relog/Text_Relog_RU.txt, Screens/Character/Title/Text_Title_RU.txt, Screens/Character/Wardrobe/Text_Wardrobe_RU.txt, Screens/Cutscene/NPCCollaring/Text_NPCCollaring_RU.txt, Screens/Cutscene/NPCSlaveAuction/Text_NPCSlaveAuction_RU.txt, Screens/Cutscene/PlayerCollaring/Text_PlayerCollaring_RU.txt, Screens/Cutscene/PlayerMistress/Text_PlayerMistress_RU.txt, Screens/Cutscene/SarahIntro/Text_SarahIntro_RU.txt, Screens/MiniGame/Chess/Text_Chess_RU.txt, Screens/MiniGame/ChestLockpick/Text_ChestLockpick_RU.txt, Screens/MiniGame/ClubCard/Text_ClubCard_RU.txt, Screens/MiniGame/ClubCardBuilder/Text_ClubCardBuilder_RU.txt, Screens/MiniGame/DojoStruggle/Text_DojoStruggle_RU.txt, Screens/MiniGame/GetUp/Text_GetUp_RU.txt, Screens/MiniGame/HorseWalk/Text_HorseWalk_RU.txt, Screens/MiniGame/Kidnap/Text_Kidnap_RU.txt, Screens/MiniGame/MagicBattle/Text_MagicBattle_RU.txt, Screens/MiniGame/MagicPuzzle/Text_MagicPuzzle_RU.txt, Screens/MiniGame/MaidCleaning/Text_MaidCleaning_RU.txt, Screens/MiniGame/MaidDrinks/Text_MaidDrinks_RU.txt, Screens/MiniGame/RhythmGame/Text_RhythmGame_RU.txt, Screens/MiniGame/SlaveAuction/Text_SlaveAuction_RU.txt, Screens/MiniGame/PlayerAuction/Text_PlayerAuction_RU.txt, Screens/MiniGame/PuppyWalker/Text_PuppyWalker_RU.txt, Screens/MiniGame/Tennis/Text_Tennis_RU.txt, Screens/MiniGame/Therapy/Text_Therapy_RU.txt, Screens/MiniGame/WheelFortune/Text_WheelFortune_RU.txt, Screens/Online/AdvancedRule/Text_AdvancedRule_RU.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_RU.txt, Screens/Online/ChatCreate/Text_ChatCreate_RU.txt, Screens/Online/ChatBlockItem/Text_ChatBlockItem_RU.txt, Screens/Online/ChatRoom/Dialog_Online_RU.txt, Screens/Online/ChatRoom/Text_ChatRoom_RU.txt, Screens/Online/ChatRoom/Text_Commands_RU.txt, Screens/Online/ChatSearch/Text_ChatSearch_RU.txt, Screens/Online/ChatSelect/Text_ChatSelect_RU.txt, Screens/Online/ForbiddenWords/Text_ForbiddenWords_RU.txt, Screens/Online/Game/OnlineGameDictionary_RU.txt, Screens/Online/GameLARP/Text_GameLARP_RU.txt, Screens/Online/GameMagicBattle/Text_GameMagicBattle_RU.txt, Screens/Online/WheelFortuneCustomize/Text_WheelFortuneCustomize_RU.txt, Screens/Room/Arcade/Dialog_NPC_Arcade_Employee_RU.txt, Screens/Room/Arcade/Dialog_NPC_Arcade_Player_RU.txt, Screens/Room/AsylumBedroom/Text_AsylumBedroom_RU.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_EscapedPatient_RU.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_KidnapNurse_RU.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_Nurse_RU.txt, Screens/Room/AsylumEntrance/Text_AsylumEntrance_RU.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientLeft_RU.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientRight_RU.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Nurse_RU.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Patient_RU.txt, Screens/Room/AsylumGGTS/Dialog_NPC_AsylumGGTS_Computer_RU.txt, Screens/Room/AsylumGGTS/Text_AsylumGGTS_RU.txt, Screens/Room/Cafe/Dialog_NPC_Cafe_Maid_RU.txt, Screens/Room/Cafe/Text_Cafe_RU.txt, Screens/Room/Cell/Text_Cell_RU.txt, Screens/Room/Cell/Dialog_NPC_Cell_KeyDepositStaff_RU.txt, Screens/Room/ClubCardLounge/Dialog_NPC_ClubCardLounge_Tutor_RU.txt, Screens/Room/ClubCardLounge/Text_ClubCardLounge_RU.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_FarRight_RU.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_Right_RU.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_Sidney_RU.txt, Screens/Room/CollegeCafeteria/Text_CollegeCafeteria_RU.txt, Screens/Room/CollegeChess/Dialog_NPC_CollegeChess_Opponent_RU.txt, Screens/Room/CollegeChess/Text_CollegeChess_RU.txt, Screens/Room/CollegeDetention/Dialog_NPC_CollegeDetention_Yuki_RU.txt, Screens/Room/CollegeDetention/Text_CollegeDetention_RU.txt, Screens/Room/CollegeEntrance/Dialog_NPC_CollegeEntrance_Student_RU.txt, Screens/Room/CollegeEntrance/Text_CollegeEntrance_RU.txt, Screens/Room/CollegeTeacher/Dialog_NPC_CollegeTeacher_Mildred_RU.txt, Screens/Room/CollegeTeacher/Text_CollegeTeacher_RU.txt, Screens/Room/CollegeTheater/Text_CollegeTheater_RU.txt, Screens/Room/CollegeTheater/Dialog_NPC_CollegeTheater_Julia_RU.txt, Screens/Room/CollegeTennis/Dialog_NPC_CollegeTennis_Jennifer_RU.txt, Screens/Room/CollegeTennis/Text_CollegeTennis_RU.txt, Screens/Room/Crafting/Text_Crafting_RU.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_DojoTeacher_RU.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_Opponent_RU.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_PuppyMistress_RU.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_FirstSub_RU.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_SecondSub_RU.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Dominatrix_RU.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Kidnapper_RU.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Supervisor_RU.txt, Screens/Room/InfiltrationPerks/Text_InfiltrationPerks_RU.txt, Screens/Room/Infiltration/Text_Infiltration_RU.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Maid_RU.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Sub_RU.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_RandomKidnapper_RU.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_Trainer_RU.txt, Screens/Room/LARP/Dialog_NPC_LARP_Organiser_RU.txt, Screens/Room/LARP/Text_LARP_RU.txt, Screens/Room/Magic/Dialog_NPC_Magic_Assistant_RU.txt, Screens/Room/Magic/Dialog_NPC_Magic_Performer_RU.txt, Screens/Room/MagicSchoolEscape/Dialog_NPC_MagicSchoolEscape_Instructor_RU.txt, Screens/Room/MagicSchoolEscape/Text_MagicSchoolEscape_RU.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Master_RU.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Sister_RU.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Student_RU.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Teacher_RU.txt, Screens/Room/MagicSchoolLaboratory/Text_MagicSchoolLaboratory_RU.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_InitiationMaids_RU.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_Maid_RU.txt, Screens/Room/MaidQuarters/Text_MaidQuarters_RU.txt, Screens/Room/MainHall/Dialog_NPC_MainHall_Maid_RU.txt, Screens/Room/MainHall/Text_MainHall_RU.txt, Screens/Room/Management/Dialog_NPC_Management_Mistress_RU.txt, Screens/Room/Management/Dialog_NPC_Management_RandomGirl_RU.txt, Screens/Room/Management/Dialog_NPC_Management_Sub_RU.txt, Screens/Room/Management/Text_Management_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Director_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Drawer_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Journalist_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Maid_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Mistress_RU.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_XCross_RU.txt, Screens/Room/MovieStudio/Text_MovieStudio_RU.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL1_RU.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL2_RU.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_Nurse_RU.txt, Screens/Room/Nursery/Text_Nursery_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_EntranceMaid_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_KidnapTarget_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_NightGuard_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_PunishmentMistress_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomCosplay_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomGuard_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMaid_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMemberNew_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMemberOld_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMistress_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomSlave_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RescueGuard_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RescueVictim_RU.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_TreasureChest_RU.txt, Screens/Room/Pandora/Text_Pandora_RU.txt, Screens/Room/PandoraPrison/Dialog_NPC_PandoraPrison_Guard_RU.txt, Screens/Room/PandoraPrison/Dialog_NPC_PandoraPrison_Maid_RU.txt, Screens/Room/PandoraPrison/Text_PandoraPrison_RU.txt, Screens/Room/Photographic/Dialog_NPC_Photographic_Sub_RU.txt, Screens/Room/Photographic/Text_Photographic_RU.txt, Screens/Room/Platform/Text_Platform_RU.txt, Screens/Room/PlatformDialog/Text_PlatformDialog_RU.txt, Screens/Room/PlatformIntro/Text_PlatformIntro_RU.txt, Screens/Room/Prison/Dialog_NPC_Prison_Maid_RU.txt, Screens/Room/Prison/Dialog_NPC_Prison_Sub_RU.txt, Screens/Room/Prison/Dialog_NPC_Prison_Police_RU.txt, Screens/Room/Prison/Text_Prison_RU.txt, Screens/Room/Private/Dialog_NPC_Private_Custom_RU.txt, Screens/Room/Private/Dialog_NPC_Private_Vendor_RU.txt, Screens/Room/Private/Text_Private_RU.txt, Screens/Room/PrivateRansom/Text_PrivateRansom_RU.txt, Screens/Room/Sarah/Dialog_NPC_Amanda_RU.txt, Screens/Room/Sarah/Dialog_NPC_Sarah_RU.txt, Screens/Room/Sarah/Dialog_NPC_Sophie_RU.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Student_RU.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Teacher_RU.txt, Screens/Room/Shop/Dialog_NPC_Shop_Customer_RU.txt, Screens/Room/Shop/Dialog_NPC_Shop_Vendor_RU.txt, Screens/Room/Shop/Text_Shop_RU.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Mistress_RU.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Slave_RU.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_SlaveToTrain_RU.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Buyer_RU.txt, Screens/Room/Stable/Dialog_NPC_Stable_Pony_RU.txt, Screens/Room/Stable/Dialog_NPC_Stable_Trainer_RU.txt, Screens/Room/Poker/Text_Poker_RU.txt, Screens/MiniGame/KinkyDungeon/Text_KinkyDungeon_RU.txt, Screens/Room/Stable/Text_Stable_RU.txt]; Icon: 🇷🇺; LanguageCode: RU; LanguageName: Русский }, { EnglishName: Chinese; Files: readonly [Assets/Female3DCG/AssetStrings_CN.txt, Assets/Female3DCG/ColorGroups_CN.txt, Assets/Female3DCG/Female3DCG_CN.txt, Assets/Female3DCG/LayerNames_CN.txt, Backgrounds/Backgrounds_CN.txt, Screens/Interface_CN.txt, Screens/Character/Appearance/Text_Appearance_CN.txt, Screens/Character/BackgroundSelection/Text_BackgroundSelection_CN.txt, Screens/Character/Cheat/Text_Cheat_CN.txt, Screens/Character/Creation/Text_Creation_CN.txt, Screens/Character/Disclaimer/Text_Disclaimer_CN.txt, Screens/Character/FriendList/Text_FriendList_CN.txt, Screens/Character/InformationSheet/Text_InformationSheet_CN.txt, Screens/Character/ItemColor/ItemColor_CN.txt, Screens/Character/Login/Text_Login_CN.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_CN.txt, Screens/Character/PasswordReset/Text_PasswordReset_CN.txt, Screens/Character/Player/Dialog_Player_CN.txt, Screens/Character/Preference/ActivityDictionary_CN.txt, Screens/Character/Preference/Text_Preference_CN.txt, Screens/Character/Relog/Text_Relog_CN.txt, Screens/Character/Title/Text_Title_CN.txt, Screens/Character/Wardrobe/Text_Wardrobe_CN.txt, Screens/Cutscene/NPCCollaring/Text_NPCCollaring_CN.txt, Screens/Cutscene/NPCSlaveAuction/Text_NPCSlaveAuction_CN.txt, Screens/Cutscene/NPCWedding/Text_NPCWedding_CN.txt, Screens/Cutscene/PlayerCollaring/Text_PlayerCollaring_CN.txt, Screens/Cutscene/PlayerMistress/Text_PlayerMistress_CN.txt, Screens/Cutscene/SarahIntro/Text_SarahIntro_CN.txt, Screens/MiniGame/Chess/Text_Chess_CN.txt, Screens/MiniGame/ChestLockpick/Text_ChestLockpick_CN.txt, Screens/MiniGame/ClubCard/Text_ClubCard_CN.txt, Screens/MiniGame/ClubCardBuilder/Text_ClubCardBuilder_CN.txt, Screens/MiniGame/DojoStruggle/Text_DojoStruggle_CN.txt, Screens/MiniGame/GetUp/Text_GetUp_CN.txt, Screens/MiniGame/HorseWalk/Text_HorseWalk_CN.txt, Screens/MiniGame/Kidnap/Text_Kidnap_CN.txt, Screens/MiniGame/KinkyDungeon/Text_KinkyDungeon_CN.txt, Screens/MiniGame/MagicBattle/Text_MagicBattle_CN.txt, Screens/MiniGame/MagicPuzzle/Text_MagicPuzzle_CN.txt, Screens/MiniGame/MaidCleaning/Text_MaidCleaning_CN.txt, Screens/MiniGame/MaidDrinks/Text_MaidDrinks_CN.txt, Screens/MiniGame/PlayerAuction/Text_PlayerAuction_CN.txt, Screens/MiniGame/PuppyWalker/Text_PuppyWalker_CN.txt, Screens/MiniGame/RhythmGame/Text_RhythmGame_CN.txt, Screens/MiniGame/SlaveAuction/Text_SlaveAuction_CN.txt, Screens/MiniGame/Tennis/Text_Tennis_CN.txt, Screens/MiniGame/Therapy/Text_Therapy_CN.txt, Screens/MiniGame/WheelFortune/Text_WheelFortune_CN.txt, Screens/Online/AdvancedRule/Text_AdvancedRule_CN.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_CN.txt, Screens/Online/ChatAdminRoomCustomization/Text_ChatAdminRoomCustomization_CN.txt, Screens/Online/ChatBlockItem/Text_ChatBlockItem_CN.txt, Screens/Online/ChatCreate/Text_ChatCreate_CN.txt, Screens/Online/ChatRoom/Dialog_Online_CN.txt, Screens/Online/ChatRoom/Text_ChatRoom_CN.txt, Screens/Online/ChatRoom/Text_Commands_CN.txt, Screens/Online/ChatSearch/Text_ChatSearch_CN.txt, Screens/Online/ChatSelect/Text_ChatSelect_CN.txt, Screens/Online/ForbiddenWords/Text_ForbiddenWords_CN.txt, Screens/Online/Game/OnlineGameDictionary_CN.txt, Screens/Online/GameClubCard/Text_GameClubCard_CN.txt, Screens/Online/GameLARP/Text_GameLARP_CN.txt, Screens/Online/GameMagicBattle/Text_GameMagicBattle_CN.txt, Screens/Online/NicknameManagement/Text_NicknameManagement_CN.txt, Screens/Online/WheelFortuneCustomize/Text_WheelFortuneCustomize_CN.txt, Screens/Room/Arcade/Dialog_NPC_Arcade_Employee_CN.txt, Screens/Room/Arcade/Dialog_NPC_Arcade_Player_CN.txt, Screens/Room/AsylumBedroom/Text_AsylumBedroom_CN.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_EscapedPatient_CN.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_KidnapNurse_CN.txt, Screens/Room/AsylumEntrance/Dialog_NPC_AsylumEntrance_Nurse_CN.txt, Screens/Room/AsylumEntrance/Text_AsylumEntrance_CN.txt, Screens/Room/AsylumGGTS/Dialog_NPC_AsylumGGTS_Computer_CN.txt, Screens/Room/AsylumGGTS/Text_AsylumGGTS_CN.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientLeft_CN.txt, Screens/Room/AsylumMeeting/Dialog_NPC_AsylumMeeting_PatientRight_CN.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Nurse_CN.txt, Screens/Room/AsylumTherapy/Dialog_NPC_AsylumTherapy_Patient_CN.txt, Screens/Room/Cafe/Dialog_NPC_Cafe_Maid_CN.txt, Screens/Room/Cafe/Text_Cafe_CN.txt, Screens/Room/Cell/Dialog_NPC_Cell_KeyDepositStaff_CN.txt, Screens/Room/Cell/Text_Cell_CN.txt, Screens/Room/ClubCardLounge/Dialog_NPC_ClubCardLounge_Tutor_CN.txt, Screens/Room/ClubCardLounge/Text_ClubCardLounge_CN.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_FarRight_CN.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_Right_CN.txt, Screens/Room/CollegeCafeteria/Dialog_NPC_CollegeCafeteria_Sidney_CN.txt, Screens/Room/CollegeCafeteria/Text_CollegeCafeteria_CN.txt, Screens/Room/CollegeChess/Dialog_NPC_CollegeChess_Opponent_CN.txt, Screens/Room/CollegeChess/Text_CollegeChess_CN.txt, Screens/Room/CollegeDetention/Dialog_NPC_CollegeDetention_Yuki_CN.txt, Screens/Room/CollegeDetention/Text_CollegeDetention_CN.txt, Screens/Room/CollegeEntrance/Dialog_NPC_CollegeEntrance_Student_CN.txt, Screens/Room/CollegeEntrance/Text_CollegeEntrance_CN.txt, Screens/Room/CollegeTeacher/Dialog_NPC_CollegeTeacher_Mildred_CN.txt, Screens/Room/CollegeTeacher/Text_CollegeTeacher_CN.txt, Screens/Room/CollegeTennis/Dialog_NPC_CollegeTennis_Jennifer_CN.txt, Screens/Room/CollegeTennis/Text_CollegeTennis_CN.txt, Screens/Room/CollegeTheater/Dialog_NPC_CollegeTheater_Julia_CN.txt, Screens/Room/CollegeTheater/Text_CollegeTheater_CN.txt, Screens/Room/Crafting/Text_Crafting_CN.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_DojoTeacher_CN.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_Opponent_CN.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_PuppyMistress_CN.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_FirstSub_CN.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_SecondSub_CN.txt, Screens/Room/Gambling/Text_Gambling_CN.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Dominatrix_CN.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Kidnapper_CN.txt, Screens/Room/Infiltration/Dialog_NPC_Infiltration_Supervisor_CN.txt, Screens/Room/Infiltration/Text_Infiltration_CN.txt, Screens/Room/InfiltrationPerks/Text_InfiltrationPerks_CN.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Maid_CN.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Sub_CN.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_RandomKidnapper_CN.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_Trainer_CN.txt, Screens/Room/LARP/Dialog_NPC_LARP_Organiser_CN.txt, Screens/Room/LARP/Text_LARP_CN.txt, Screens/Room/Magic/Dialog_NPC_Magic_Assistant_CN.txt, Screens/Room/Magic/Dialog_NPC_Magic_Performer_CN.txt, Screens/Room/MagicSchoolEscape/Dialog_NPC_MagicSchoolEscape_Instructor_CN.txt, Screens/Room/MagicSchoolEscape/Text_MagicSchoolEscape_CN.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Master_CN.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Sister_CN.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Student_CN.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Teacher_CN.txt, Screens/Room/MagicSchoolLaboratory/Text_MagicSchoolLaboratory_CN.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_InitiationMaids_CN.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_Maid_CN.txt, Screens/Room/MaidQuarters/Text_MaidQuarters_CN.txt, Screens/Room/MainHall/Dialog_NPC_MainHall_Maid_CN.txt, Screens/Room/MainHall/Text_MainHall_CN.txt, Screens/Room/Management/Dialog_NPC_Management_Mistress_CN.txt, Screens/Room/Management/Dialog_NPC_Management_RandomGirl_CN.txt, Screens/Room/Management/Dialog_NPC_Management_Sub_CN.txt, Screens/Room/Management/Text_Management_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Director_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Drawer_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Journalist_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Maid_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Mistress_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_XCross_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_OpenHouse_Client_CN.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_OpenHouse_Girlfriend_CN.txt, Screens/Room/MovieStudio/Text_MovieStudio_CN.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL1_CN.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_ABDL2_CN.txt, Screens/Room/Nursery/Dialog_NPC_Nursery_Nurse_CN.txt, Screens/Room/Nursery/Text_Nursery_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_EntranceMaid_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_KidnapTarget_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_NightGuard_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_PunishmentMistress_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomCosplay_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomGuard_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMaid_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMemberNew_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMemberOld_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomMistress_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RandomSlave_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RescueGuard_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_RescueVictim_CN.txt, Screens/Room/Pandora/Dialog_NPC_Pandora_TreasureChest_CN.txt, Screens/Room/Pandora/Text_Pandora_CN.txt, Screens/Room/PandoraPrison/Dialog_NPC_PandoraPrison_Guard_CN.txt, Screens/Room/PandoraPrison/Dialog_NPC_PandoraPrison_Maid_CN.txt, Screens/Room/PandoraPrison/Text_PandoraPrison_CN.txt, Screens/Room/Photographic/Dialog_NPC_Photographic_Sub_CN.txt, Screens/Room/Photographic/Text_Photographic_CN.txt, Screens/Room/Platform/Text_Platform_CN.txt, Screens/Room/PlatformDialog/Text_PlatformDialog_CN.txt, Screens/Room/PlatformIntro/Text_PlatformIntro_CN.txt, Screens/Room/PlatformProfile/Text_PlatformProfile_CN.txt, Screens/Room/Poker/Text_Poker_CN.txt, Screens/Room/Poker/Akira/Text_Multiple_CN.txt, Screens/Room/Poker/Akira/Text_Single_CN.txt, Screens/Room/Poker/Amanda/Text_Multiple_CN.txt, Screens/Room/Poker/Amanda/Text_Single_CN.txt, Screens/Room/Poker/Andrea/Text_Multiple_CN.txt, Screens/Room/Poker/Andrea/Text_Single_CN.txt, Screens/Room/Poker/Ann/Text_Multiple_CN.txt, Screens/Room/Poker/Ann/Text_Single_CN.txt, Screens/Room/Poker/Aoi/Text_Multiple_CN.txt, Screens/Room/Poker/Aoi/Text_Single_CN.txt, Screens/Room/Poker/Becky/Text_Multiple_CN.txt, Screens/Room/Poker/Becky/Text_Single_CN.txt, Screens/Room/Poker/Dita/Text_Multiple_CN.txt, Screens/Room/Poker/Dita/Text_Single_CN.txt, Screens/Room/Poker/Emily/Text_Multiple_CN.txt, Screens/Room/Poker/Emily/Text_Single_CN.txt, Screens/Room/Poker/Hannah/Text_Multiple_CN.txt, Screens/Room/Poker/Hannah/Text_Single_CN.txt, Screens/Room/Poker/Isanne/Text_Multiple_CN.txt, Screens/Room/Poker/Isanne/Text_Single_CN.txt, Screens/Room/Poker/Jasmine/Text_Multiple_CN.txt, Screens/Room/Poker/Jasmine/Text_Single_CN.txt, Screens/Room/Poker/Jelena/Text_Multiple_CN.txt, Screens/Room/Poker/Jelena/Text_Single_CN.txt, Screens/Room/Poker/Lia/Text_Multiple_CN.txt, Screens/Room/Poker/Lia/Text_Single_CN.txt, Screens/Room/Poker/Lua/Text_Multiple_CN.txt, Screens/Room/Poker/Lua/Text_Single_CN.txt, Screens/Room/Poker/Masuimi/Text_Multiple_CN.txt, Screens/Room/Poker/Masuimi/Text_Single_CN.txt, Screens/Room/Poker/Missey/Text_Multiple_CN.txt, Screens/Room/Poker/Missey/Text_Single_CN.txt, Screens/Room/Poker/Nadia/Text_Multiple_CN.txt, Screens/Room/Poker/Nadia/Text_Single_CN.txt, Screens/Room/Poker/Natalia/Text_Multiple_CN.txt, Screens/Room/Poker/Natalia/Text_Single_CN.txt, Screens/Room/Poker/Ornella/Text_Multiple_CN.txt, Screens/Room/Poker/Ornella/Text_Single_CN.txt, Screens/Room/Poker/Petra/Text_Multiple_CN.txt, Screens/Room/Poker/Petra/Text_Single_CN.txt, Screens/Room/Poker/Sally/Text_Multiple_CN.txt, Screens/Room/Poker/Sally/Text_Single_CN.txt, Screens/Room/Poker/Sarah/Text_Multiple_CN.txt, Screens/Room/Poker/Sarah/Text_Single_CN.txt, Screens/Room/Poker/Sasha/Text_Multiple_CN.txt, Screens/Room/Poker/Sasha/Text_Single_CN.txt, Screens/Room/Poker/Sophie/Text_Multiple_CN.txt, Screens/Room/Poker/Sophie/Text_Single_CN.txt, Screens/Room/Poker/Supergirl/Text_Multiple_CN.txt, Screens/Room/Poker/Supergirl/Text_Single_CN.txt, Screens/Room/Poker/Tasha/Text_Multiple_CN.txt, Screens/Room/Poker/Tasha/Text_Single_CN.txt, Screens/Room/Poker/Tigerr/Text_Multiple_CN.txt, Screens/Room/Poker/Tigerr/Text_Single_CN.txt, Screens/Room/Prison/Dialog_NPC_Prison_Maid_CN.txt, Screens/Room/Prison/Dialog_NPC_Prison_Police_CN.txt, Screens/Room/Prison/Dialog_NPC_Prison_Sub_CN.txt, Screens/Room/Prison/Text_Prison_CN.txt, Screens/Room/Private/Dialog_NPC_Private_Custom_CN.txt, Screens/Room/Private/Dialog_NPC_Private_Vendor_CN.txt, Screens/Room/Private/Text_Private_CN.txt, Screens/Room/PrivateBed/Text_PrivateBed_CN.txt, Screens/Room/PrivateRansom/Text_PrivateRansom_CN.txt, Screens/Room/Sarah/Dialog_NPC_Amanda_CN.txt, Screens/Room/Sarah/Dialog_NPC_Sarah_CN.txt, Screens/Room/Sarah/Dialog_NPC_Sophie_CN.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Student_CN.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Teacher_CN.txt, Screens/Room/Shop/Dialog_NPC_Shop_Customer_CN.txt, Screens/Room/Shop/Dialog_NPC_Shop_Vendor_CN.txt, Screens/Room/Shop/Text_Shop_CN.txt, Screens/Room/Shop2/Text_Shop2_CN.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Buyer_CN.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Mistress_CN.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Slave_CN.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_SlaveToTrain_CN.txt, Screens/Room/Stable/Dialog_NPC_Stable_Pony_CN.txt, Screens/Room/Stable/Dialog_NPC_Stable_Trainer_CN.txt, Screens/Room/Stable/Text_Stable_CN.txt]; Icon: 🇨🇳; LanguageCode: CN; LanguageName: 中文 }, { EnglishName: TraditionalChinese; Files: readonly [Assets/Female3DCG/ColorGroups_TW.txt, Assets/Female3DCG/Female3DCG_TW.txt, Assets/Female3DCG/LayerNames_TW.txt, Backgrounds/Backgrounds_TW.txt, Screens/Character/Appearance/Text_Appearance_TW.txt, Screens/Character/BackgroundSelection/Text_BackgroundSelection_TW.txt, Screens/Character/Cheat/Text_Cheat_TW.txt, Screens/Character/Creation/Text_Creation_TW.txt, Screens/Character/Disclaimer/Text_Disclaimer_TW.txt, Screens/Character/FriendList/Text_FriendList_TW.txt, Screens/Character/InformationSheet/Text_InformationSheet_TW.txt, Screens/Character/ItemColor/ItemColor_TW.txt, Screens/Character/Login/Text_Login_TW.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_TW.txt, Screens/Character/PasswordReset/Text_PasswordReset_TW.txt, Screens/Character/Player/Dialog_Player_TW.txt, Screens/Character/Preference/ActivityDictionary_TW.txt, Screens/Character/Preference/Text_Preference_TW.txt, Screens/Character/Relog/Text_Relog_TW.txt, Screens/Character/Title/Text_Title_TW.txt, Screens/Character/Wardrobe/Text_Wardrobe_TW.txt, Screens/Cutscene/NPCCollaring/Text_NPCCollaring_TW.txt, Screens/Cutscene/NPCSlaveAuction/Text_NPCSlaveAuction_TW.txt, Screens/Cutscene/PlayerCollaring/Text_PlayerCollaring_TW.txt, Screens/Cutscene/PlayerMistress/Text_PlayerMistress_TW.txt, Screens/Cutscene/SarahIntro/Text_SarahIntro_TW.txt, Screens/MiniGame/SlaveAuction/Text_SlaveAuction_TW.txt, Screens/Online/AdvancedRule/Text_AdvancedRule_TW.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_TW.txt, Screens/Online/ChatBlockItem/Text_ChatBlockItem_TW.txt, Screens/Online/ChatCreate/Text_ChatCreate_TW.txt, Screens/Online/ChatRoom/Dialog_Online_TW.txt, Screens/Online/ChatRoom/Text_ChatRoom_TW.txt, Screens/Online/ChatRoom/Text_Commands_TW.txt, Screens/Online/ChatSearch/Text_ChatSearch_TW.txt, Screens/Online/ChatSelect/Text_ChatSelect_TW.txt, Screens/Online/ForbiddenWords/Text_ForbiddenWords_TW.txt, Screens/Online/Game/OnlineGameDictionary_TW.txt, Screens/Online/GameLARP/Text_GameLARP_TW.txt, Screens/Online/GameMagicBattle/Text_GameMagicBattle_TW.txt, Screens/Online/WheelFortuneCustomize/Text_WheelFortuneCustomize_TW.txt, Screens/Room/AsylumGGTS/Dialog_NPC_AsylumGGTS_Computer_TW.txt, Screens/Room/AsylumGGTS/Text_AsylumGGTS_TW.txt, Screens/Room/Cell/Dialog_NPC_Cell_KeyDepositStaff_TW.txt, Screens/Room/Cell/Text_Cell_TW.txt, Screens/Room/Crafting/Text_Crafting_TW.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_FirstSub_TW.txt, Screens/Room/Gambling/Dialog_NPC_Gambling_SecondSub_TW.txt, Screens/Room/Gambling/Text_Gambling_TW.txt, Screens/Room/Magic/Dialog_NPC_Magic_Assistant_TW.txt, Screens/Room/Magic/Dialog_NPC_Magic_Performer_TW.txt, Screens/Room/MagicSchoolEscape/Dialog_NPC_MagicSchoolEscape_Instructor_TW.txt, Screens/Room/MagicSchoolEscape/Text_MagicSchoolEscape_TW.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Master_TW.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Sister_TW.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Student_TW.txt, Screens/Room/MagicSchoolLaboratory/Dialog_NPC_MagicSchoolLaboratory_Teacher_TW.txt, Screens/Room/MagicSchoolLaboratory/Text_MagicSchoolLaboratory_TW.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_RandomKidnapper_TW.txt, Screens/Room/KidnapLeague/Dialog_NPC_KidnapLeague_Trainer_TW.txt, Screens/Room/Private/Text_Private_TW.txt, Screens/Room/Private/Dialog_NPC_Private_Vendor_TW.txt, Screens/Room/Sarah/Dialog_NPC_Amanda_TW.txt, Screens/Room/Sarah/Dialog_NPC_Sarah_TW.txt, Screens/Room/Sarah/Dialog_NPC_Sophie_TW.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Student_TW.txt, Screens/Room/Shibari/Dialog_NPC_Shibari_Teacher_TW.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Buyer_TW.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Mistress_TW.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_Slave_TW.txt, Screens/Room/SlaveMarket/Dialog_NPC_SlaveMarket_SlaveToTrain_TW.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Sub_TW.txt, Screens/Room/Introduction/Dialog_NPC_Introduction_Maid_TW.txt, Screens/Room/LARP/Dialog_NPC_LARP_Organiser_TW.txt, Screens/Room/LARP/Text_LARP_TW.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_DojoTeacher_TW.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_Opponent_TW.txt, Screens/Room/DailyJob/Dialog_NPC_DailyJob_PuppyMistress_TW.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_InitiationMaids_TW.txt, Screens/Room/MaidQuarters/Dialog_NPC_MaidQuarters_Maid_TW.txt, Screens/Room/MainHall/Dialog_NPC_MainHall_Maid_TW.txt, Screens/Room/MainHall/Text_MainHall_TW.txt, Screens/Room/Management/Dialog_NPC_Management_Mistress_TW.txt, Screens/Room/Management/Dialog_NPC_Management_RandomGirl_TW.txt, Screens/Room/Management/Dialog_NPC_Management_Sub_TW.txt, Screens/Room/Management/Text_Management_TW.txt, Screens/Room/Photographic/Text_Photographic_TW.txt, Screens/Room/Photographic/Dialog_NPC_Photographic_Sub_TW.txt, Screens/Room/Shop/Dialog_NPC_Shop_Customer_TW.txt, Screens/Room/Shop/Dialog_NPC_Shop_Vendor_TW.txt, Screens/Room/Shop/Text_Shop_TW.txt, Screens/Room/Stable/Dialog_NPC_Stable_Pony_TW.txt, Screens/Room/Stable/Dialog_NPC_Stable_Trainer_TW.txt, Screens/Room/Stable/Text_Stable_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Director_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Drawer_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Journalist_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Maid_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_Mistress_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_Interview_XCross_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_OpenHouse_Client_TW.txt, Screens/Room/MovieStudio/Dialog_NPC_MovieStudio_OpenHouse_Girlfriend_TW.txt, Screens/Room/MovieStudio/Text_MovieStudio_TW.txt]; Icon: 🇹🇼; LanguageCode: TW; LanguageName: 繁體中文 }, { EnglishName: Ukrainian; Files: readonly [Assets/Female3DCG/Female3DCG_UA.txt, Assets/Female3DCG/ColorGroups_UA.txt, Screens/Interface_UA.txt, Screens/Character/Appearance/Text_Appearance_UA.txt, Screens/Character/BackgroundSelection/Text_BackgroundSelection_UA.txt, Screens/Character/Cheat/Text_Cheat_UA.txt, Screens/Character/Creation/Text_Creation_UA.txt, Screens/Character/Disclaimer/Text_Disclaimer_UA.txt, Screens/Character/FriendList/Text_FriendList_UA.txt, Screens/Character/InformationSheet/Text_InformationSheet_UA.txt, Screens/Character/ItemColor/ItemColor_UA.txt, Screens/Character/Login/Text_Login_UA.txt, Screens/Character/OnlineProfile/Text_OnlineProfile_UA.txt, Screens/Character/PasswordReset/Text_PasswordReset_UA.txt, Screens/Character/Player/Dialog_Player_UA.txt, Screens/Character/Preference/Text_Preference_UA.txt, Screens/Character/Title/Text_Title_UA.txt, Screens/Online/ChatAdmin/Text_ChatAdmin_UA.txt, Screens/Online/ChatCreate/Text_ChatCreate_UA.txt, Screens/Online/ChatRoom/Dialog_Online_UA.txt]; Icon: 🇺🇦; LanguageCode: UA; LanguageName: Українська }] = ...

                Dictionary for all supported languages and their files

                @constant

                TranslationLanguage

                TranslationLanguage: ServerChatRoomLanguage | TW = "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[] = ...

                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

                WheelFortuneReturnScreen

                WheelFortuneReturnScreen: ScreenSpecifier = 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