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 | BodyStyle | BodyLower | BodyUpper | BodyMarkings | Bra | Bracelet | Cloth | ClothAccessory | ClothLower | ClothOuter | 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 | Club Cards

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: (null | FriendListIcon)[] }

      Type declaration

      • canSearchRoom: boolean
      • caption: string
      • optionalname?: string
      • types: (null | 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 | Shopping | Brb | Work | SOS = 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}` | `BodyStyle/${string}` | `BodyMarkings/${string}` | `Bra/${string}` | `Bracelet/${string}` | `Cloth/${string}` | `ClothAccessory/${string}` | `ClothLower/${string}` | `ClothOuter/${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 }; ItemHead: {}; 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
        • readonlyItemHead: {}
          • 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

          constBackground

          Background: { elementID: { btnAccept: string; btnCancel: string; btnNext: string; btnPrev: string; root: string; searchFilter: string; tagFilter: string } } = ...

          Type declaration

          • elementID: { btnAccept: string; btnCancel: string; btnNext: string; btnPrev: string; root: string; searchFilter: string; tagFilter: string }
            • btnAccept: string
            • btnCancel: string
            • btnNext: string
            • btnPrev: string
            • root: string
            • searchFilter: string
            • tagFilter: string

          BackgroundSelectionAll

          BackgroundSelectionAll: never

          BackgroundSelectionBackground

          BackgroundSelectionBackground: string = "Introduction"

          BackgroundSelectionIndex

          BackgroundSelectionIndex: number = 0

          BackgroundSelectionList

          BackgroundSelectionList: string[] = []

          BackgroundSelectionOffset

          BackgroundSelectionOffset: number = 0

          BackgroundSelectionReturnScreen

          BackgroundSelectionReturnScreen: never

          BackgroundSelectionSelect

          BackgroundSelectionSelect: string = null

          BackgroundSelectionSize

          BackgroundSelectionSize: number = 12

          BackgroundSelectionTagList

          BackgroundSelectionTagList: BackgroundTag[] = []

          BackgroundSelectionView

          BackgroundSelectionView: string[] = []

          constBackgroundsClubCardsTagList

          BackgroundsClubCardsTagList: BackgroundTag[] = ...

          List of all tags for the club cards board

          @constant

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

          constBackgroundsTagClubCards

          BackgroundsTagClubCards: Club Cards = "Club Cards"

          constBackgroundsTagCollege

          BackgroundsTagCollege: College = "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 | Shopping | Brb | Work | SOS = ""

          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

          ChatSearchBackgroundTagList

          ChatSearchBackgroundTagList: BackgroundTag[] = []

          The list of tags allowed as backgrounds for the room edit screens

          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

          ClubCardActiveAnimations

          ClubCardActiveAnimations: ClubCardActiveAnimation[] = []

          Stores active card animations, updated each frame in ClubCardUpdateCardAnimations().

          ClubCardBackground

          ClubCardBackground: string = "ClubCardPlayBoard1"

          ClubCardBuilderABDLDeck

          ClubCardBuilderABDLDeck: number[] = ...

          ClubCardBuilderAsylumDeck

          ClubCardBuilderAsylumDeck: number[] = ...

          ClubCardBuilderBackground

          ClubCardBuilderBackground: string = "ClubCardPlayBoard1"

          ClubCardBuilderCardBackCount

          ClubCardBuilderCardBackCount: number = 9

          ClubCardBuilderCardBackFocus

          ClubCardBuilderCardBackFocus: any = null

          ClubCardBuilderCollegeDeck

          ClubCardBuilderCollegeDeck: number[] = ...

          ClubCardBuilderCustomizationIndex

          ClubCardBuilderCustomizationIndex: string = ""

          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

          ClubCardBuilderSelectedCardBack

          ClubCardBuilderSelectedCardBack: number = 0

          ClubCardColor

          ClubCardColor: string[] = ...

          constClubCardDiscardPosition

          ClubCardDiscardPosition: { w: number; x: number; y: number } = ...

          Type declaration

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

          ClubCardFameGoal

          ClubCardFameGoal: number = 100

          ClubCardFameTextColor

          ClubCardFameTextColor: string = "#5A73FF"

          ClubCardFocus

          ClubCardFocus: ClubCard = null

          Variable through which the current card selected by the player is rendered as a large card.

          ClubCardFocusAI

          ClubCardFocusAI: any = null

          constClubCardFocusPosition

          ClubCardFocusPosition: { w: number; x: number; y: number } = ...

          Type declaration

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

          ClubCardGameEnded

          ClubCardGameEnded: boolean = false

          ClubCardHover

          ClubCardHover: ClubCard = null

          The variable allows to capture the mouse hovering over the card from the handler inside the ClubCardRenderCard function.

          constClubCardImmediateMessageTypes

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

          ClubCardInspection

          ClubCardInspection: boolean = false

          ClubCardIsAnimationOn

          ClubCardIsAnimationOn: boolean = true

          Variable to check if the code associated with animations will work or if it will be disabled.

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

          ClubCardOptionSelection

          ClubCardOptionSelection: boolean = false

          ClubCardPending

          ClubCardPending: ClubCard = null

          constClubCardPendingPosition

          ClubCardPendingPosition: { w: number; x: number; y: number } = ...

          Type declaration

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

          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; CardsPool: ClubCard[]; Function1: string; Function2: string; Mode: string; Text: string } = null

          Type declaration

          • Button1: string
          • Button2: string
          • CardsPool: ClubCard[]
          • Function1: string
          • Function2: string
          • Mode: string
          • Text: string

          ClubCardRandomCardName

          ClubCardRandomCardName: string = ""

          String for a random tier 1 card name. Tier 1 cards have no RequiredLevel or RequiredLevel <= 1

          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

          ClubCardTierSelection

          ClubCardTierSelection: number = null

          ClubCardTurnCardPlayed

          ClubCardTurnCardPlayed: number = 0

          ClubCardTurnEndDraw

          ClubCardTurnEndDraw: boolean = false

          ClubCardTurnIndex

          ClubCardTurnIndex: number = 0

          ClubCardUniqueIDCounter

          ClubCardUniqueIDCounter: number = 0

          Counter to ensure unique ID incrementation. It is used globally to prevent ID duplication.

          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

          CommonRegEscape

          CommonRegEscape: Function = ...

          Escapes any potential regex syntax characters in a string, and returns a new string that can be safely used as a literal pattern for the RegExp constructor.

          @license

          MIT - Copyright (c) 2014-2025 Denis Pushkarev, core-js 3.40.0 - 2025.01.08

          @see
          @param

          The string to escape.

          @returns

          A new string that can be safely used as a literal pattern for the RegExp constructor.

          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

            CraftingJSON

            CraftingJSON: { createDialog: (parent?: Node) => { dialog: HTMLDialogElement; root: HTMLDivElement }; createRadio: (craft: CraftingItem, tooltipID: string, options: { checked: boolean; disabled: boolean; name: string; value: string }) => HTMLElement; createRadioGroups: (items: readonly { craft: CraftingItem; name: string; status: CraftingStatusType }[], tooltipContainer: Node) => HTMLFieldSetElement[]; decode: (craftsJSON: string) => ParsingOutput; encode: (crafts: readonly CraftingItem[]) => DataEncoded; eventListeners: { blurTooltip: (this: HTMLElement) => void; changeFile: (this: HTMLInputElement) => Promise<void>; clickAccept: (this: HTMLElement, ev: Event) => void; clickCancel: (this: HTMLElement) => void; clickError: (this: HTMLElement) => void; clickSelectNew: (this: HTMLElement) => void; clickSelectOld: (this: HTMLElement) => void; dragend: (this: HTMLElement, ev: DragEvent) => void; dragover: (this: HTMLElement, ev: DragEvent) => void; drop: (this: HTMLElement, ev: DragEvent) => void; focusSearch: (this: HTMLInputElement) => void; focusTooltip: (this: HTMLElement) => void; hoverinTooltip: (this: HTMLElement) => void; hoveroutTooltip: (this: HTMLElement) => void; inputFile: (this: HTMLInputElement) => void; inputSearch: (this: HTMLInputElement) => void; keydownDocument: (this: Document, ev: KeyboardEvent) => void; pasteDocument: (this: Document, ev: ClipboardEvent) => void }; getDragListeners: () => { dragenter: (this: HTMLElement, ev: DragEvent) => void; dragleave: (this: HTMLElement, ev: DragEvent) => void; dragstart: (this: HTMLElement, ev: DragEvent) => void } } = ...

            Namespace for encoding & decoding crafting inventories to and from JSON


            Type declaration

            • createDialog: (parent?: Node) => { dialog: HTMLDialogElement; root: HTMLDivElement }

              Create and return the <dialog> and its shadowroot-containing <div> parent

                • (parent?: Node): { dialog: HTMLDialogElement; root: HTMLDivElement }
                • Parameters

                  • parent: Node = null

                    The parent node, if any

                  Returns { dialog: HTMLDialogElement; root: HTMLDivElement }

                  • dialog: HTMLDialogElement
                  • root: HTMLDivElement
            • createRadio: (craft: CraftingItem, tooltipID: string, options: { checked: boolean; disabled: boolean; name: string; value: string }) => HTMLElement

              Return a single <label>-embedded <input type="radio"> element

              @returns
                • (craft: CraftingItem, tooltipID: string, options: { checked: boolean; disabled: boolean; name: string; value: string }): HTMLElement
                • Parameters

                  • craft: CraftingItem
                  • tooltipID: string
                  • options: { checked: boolean; disabled: boolean; name: string; value: string }
                    • checked: boolean
                    • disabled: boolean
                    • name: string
                    • value: string

                  Returns HTMLElement

            • createRadioGroups: (items: readonly { craft: CraftingItem; name: string; status: CraftingStatusType }[], tooltipContainer: Node) => HTMLFieldSetElement[]

              Return a list of <input type="radio">-containing <fieldset> elements

            • decode: (craftsJSON: string) => ParsingOutput

              Decode the passed stringified object of crafting JSON data

              @returns
              • The decoded crafted JSON data
                • Parameters

                  • craftsJSON: string

                    The stringified and to-be decoded crafted JSON data

                  Returns ParsingOutput

            • encode: (crafts: readonly CraftingItem[]) => DataEncoded

              Encode the passed list of crafting items into a JSON-valid object

              @returns

              The encoded object of JSON-valid crafts

            • eventListeners: { blurTooltip: (this: HTMLElement) => void; changeFile: (this: HTMLInputElement) => Promise<void>; clickAccept: (this: HTMLElement, ev: Event) => void; clickCancel: (this: HTMLElement) => void; clickError: (this: HTMLElement) => void; clickSelectNew: (this: HTMLElement) => void; clickSelectOld: (this: HTMLElement) => void; dragend: (this: HTMLElement, ev: DragEvent) => void; dragover: (this: HTMLElement, ev: DragEvent) => void; drop: (this: HTMLElement, ev: DragEvent) => void; focusSearch: (this: HTMLInputElement) => void; focusTooltip: (this: HTMLElement) => void; hoverinTooltip: (this: HTMLElement) => void; hoveroutTooltip: (this: HTMLElement) => void; inputFile: (this: HTMLInputElement) => void; inputSearch: (this: HTMLInputElement) => void; keydownDocument: (this: Document, ev: KeyboardEvent) => void; pasteDocument: (this: Document, ev: ClipboardEvent) => void }
              • blurTooltip: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • changeFile: (this: HTMLInputElement) => Promise<void>
                  • (this: HTMLInputElement): Promise<void>
                  • Parameters

                    • this: HTMLInputElement

                    Returns Promise<void>

              • clickAccept: (this: HTMLElement, ev: Event) => void
                  • (this: HTMLElement, ev: Event): void
                  • Parameters

                    • this: HTMLElement
                    • ev: Event

                    Returns void

              • clickCancel: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • clickError: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • clickSelectNew: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • clickSelectOld: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • dragend: (this: HTMLElement, ev: DragEvent) => void
                  • (this: HTMLElement, ev: DragEvent): void
                  • Parameters

                    • this: HTMLElement
                    • ev: DragEvent

                    Returns void

              • dragover: (this: HTMLElement, ev: DragEvent) => void
                  • (this: HTMLElement, ev: DragEvent): void
                  • Parameters

                    • this: HTMLElement
                    • ev: DragEvent

                    Returns void

              • drop: (this: HTMLElement, ev: DragEvent) => void
                  • (this: HTMLElement, ev: DragEvent): void
                  • Parameters

                    • this: HTMLElement
                    • ev: DragEvent

                    Returns void

              • focusSearch: (this: HTMLInputElement) => void
                  • (this: HTMLInputElement): void
                  • Parameters

                    • this: HTMLInputElement

                    Returns void

              • focusTooltip: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • hoverinTooltip: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • hoveroutTooltip: (this: HTMLElement) => void
                  • (this: HTMLElement): void
                  • Parameters

                    • this: HTMLElement

                    Returns void

              • inputFile: (this: HTMLInputElement) => void
                  • (this: HTMLInputElement): void
                  • Parameters

                    • this: HTMLInputElement

                    Returns void

              • inputSearch: (this: HTMLInputElement) => void
                  • (this: HTMLInputElement): void
                  • Parameters

                    • this: HTMLInputElement

                    Returns void

              • keydownDocument: (this: Document, ev: KeyboardEvent) => void
                  • (this: Document, ev: KeyboardEvent): void
                  • Parameters

                    • this: Document
                    • ev: KeyboardEvent

                    Returns void

              • pasteDocument: (this: Document, ev: ClipboardEvent) => void
                  • (this: Document, ev: ClipboardEvent): void
                  • Parameters

                    • this: Document
                    • ev: ClipboardEvent

                    Returns void

            • getDragListeners: () => { dragenter: (this: HTMLElement, ev: DragEvent) => void; dragleave: (this: HTMLElement, ev: DragEvent) => void; dragstart: (this: HTMLElement, ev: DragEvent) => void }

              Get the event listeners for drag and dropping

                • (): { dragenter: (this: HTMLElement, ev: DragEvent) => void; dragleave: (this: HTMLElement, ev: DragEvent) => void; dragstart: (this: HTMLElement, ev: DragEvent) => void }
                • Returns { dragenter: (this: HTMLElement, ev: DragEvent) => void; dragleave: (this: HTMLElement, ev: DragEvent) => void; dragstart: (this: HTMLElement, ev: DragEvent) => void }

                  • dragenter: (this: HTMLElement, ev: DragEvent) => void
                      • (this: HTMLElement, ev: DragEvent): void
                      • Parameters

                        • this: HTMLElement
                        • ev: DragEvent

                        Returns void

                  • dragleave: (this: HTMLElement, ev: DragEvent) => void
                      • (this: HTMLElement, ev: DragEvent): void
                      • Parameters

                        • this: HTMLElement
                        • ev: DragEvent

                        Returns void

                  • dragstart: (this: HTMLElement, ev: DragEvent) => void
                      • (this: HTMLElement, ev: DragEvent): void
                      • Parameters

                        • this: HTMLElement
                        • ev: DragEvent

                        Returns void

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

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

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

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

                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

                  PreferenceOnlineDefaultBackground

                  PreferenceOnlineDefaultBackground: string = ""

                  PreferenceOnlineDefaultBackgroundIndex

                  PreferenceOnlineDefaultBackgroundIndex: number = 0

                  PreferenceOnlineDefaultBackgroundList

                  PreferenceOnlineDefaultBackgroundList: string[] = null

                  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}` | `BodyStyle/${string}` | `BodyMarkings/${string}` | `Bra/${string}` | `Bracelet/${string}` | `Cloth/${string}` | `ClothAccessory/${string}` | `ClothLower/${string}` | `ClothOuter/${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 } = ...
                  @deprecated

                  Use ServerShowBeep instead.


                  Type declaration

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

                  ServerBeepQueue

                  ServerBeepQueue: NotificationBeep[] = []

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

                  StableActivityList

                  StableActivityList: string[] = ...

                  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; GenericTextDrawHook: any } = ...

                  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

                  Timers

                  Timers: CustomTimer[] = []

                  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

                  ToastManager

                  ToastManager: ToastManager = ...

                  Manages the display and lifecycle of toast notifications. Maintains a queue of toasts to display and limits the number of concurrently visible toasts.

                  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

                  constbob

                  bob: _DialogExpressionMenu<Expression> = ...

                  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