Skip to main content

bondage-college

Index

Classes

Enumerations

Functions

Interfaces

Namespaces

Type Aliases

Variables

Type Aliases

ActivityName

ActivityNameBasic

ActivityNameBasic: Bite | Brush | Caress | Choke | Clean | 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 | BrushItem | ShockItem | SipItem | SpankItem | SqueezeItem | 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

AllowedInteractions

AllowedInteractions: 0 | 1 | 2 | 3 | 4 | 5

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.

ArgumentDef

ArgumentDef: { description: string; name: string; suggestions?: string[] | () => string[] }

Type declaration

  • description: string
  • name: string
  • optionalsuggestions?: string[] | () => string[]

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

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

AssetOverride

AssetOverride: ASSET_OVERRIDE

A special key for ["DrawingTop"]/["DrawingLeft"] that overrides the relative position of each and every layer individually

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

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 | FloorNumber | FloorLetter | FloorIcon | 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

ChatRoomSearchSettings

ChatRoomSearchSettings: { FullRooms: boolean; Game: ServerChatRoomGame; Language: | ServerChatRoomLanguage; MapTypes: string; RoomMaxSize: number; RoomMinSize: number; SearchDescriptions: boolean; ShowLocked: boolean; Space: ServerChatRoomSpace }

Type declaration

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

ClubCardTag

ClubCardTag: All | Selected Cards | Event | NoGroup | Liability | Staff | Police | Criminal | Fetishist | Porn | Maid | Asylum | Dominant / Mistress | ABDL | College | Shibari | Pet / Owner | Kemonomimi | Submissive / Slave | Reward

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

      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

      LayerName

      LayerName: string

      A type representing layer names (yes this is just a string alias).

      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 | () => Promise<void>

      ScreenLoadHandler

      ScreenLoadHandler: () => Promise<void>

      Type declaration

        • (): Promise<void>
        • Returns Promise<void>

      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 | Smoking | 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 | VFXFilterNone

      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

      Subcommand

      Subcommand: Omit<ICommand, Subcommands | AutoComplete>

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

      constAllowedInteractions

      AllowedInteractions: { Everyone: 0; EveryoneExceptBlacklist: 1; OwnerLoversOnly: 4; OwnerLoversWhitelistAndDomsOnly: 2; OwnerLoversWhitelistOnly: 3; OwnerOnly: 5 } = ...

      Type declaration

      • readonlyEveryone: 0
      • readonlyEveryoneExceptBlacklist: 1
      • readonlyOwnerLoversOnly: 4
      • readonlyOwnerLoversWhitelistAndDomsOnly: 2
      • readonlyOwnerLoversWhitelistOnly: 3
      • readonlyOwnerOnly: 5

      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}` | `Decals/${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> = ...

      AssetOverride

      AssetOverride: ASSET_OVERRIDE

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

          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: update | create = 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

          ChatBlockListGridParams

          ChatBlockListGridParams: CommonGenerateGridParameters = ...

          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: Character = "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
          @deprecated

          Use ()

          @todo

          Remove after R121

          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

          ChatRoomJustEntered

          ChatRoomJustEntered: boolean = false

          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

          ChatRoomMapViewKeysPressed

          ChatRoomMapViewKeysPressed: { d: boolean; l: boolean; r: boolean; u: boolean } = ...

          Type declaration

          • d: boolean
          • l: boolean
          • r: boolean
          • u: boolean

          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

          ChatRoomMapViewStartOfKeyPress

          ChatRoomMapViewStartOfKeyPress: number = 0

          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
          @deprecated

          Use ()

          @todo

          Remove after R121

          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<Character | Map, 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

          ChatSearchDialogElement

          ChatSearchDialogElement: HTMLDialogElement

          ChatSearchFilterHelpActive

          ChatSearchFilterHelpActive: any
          @deprecated

          ChatSearchFilterHelpScreenElement

          ChatSearchFilterHelpScreenElement: HTMLDialogElement

          ChatSearchFilterTermsTemp

          ChatSearchFilterTermsTemp: string = ""

          ChatSearchFilterUnhideConfirm

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

          Type declaration

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

          ChatSearchFilterUnhideConfirmElement

          ChatSearchFilterUnhideConfirmElement: HTMLDialogElement

          ChatSearchGame

          ChatSearchGame: ServerChatRoomGame = ""

          ChatSearchGhostPlayerOnClickActive

          ChatSearchGhostPlayerOnClickActive: boolean = false

          ChatSearchHiddenResult

          ChatSearchHiddenResult: ChatRoomSearchResult[] = []

          ChatSearchLanguage

          ChatSearchLanguage: | ServerChatRoomLanguage = ""

          ChatSearchLanguageTemp

          ChatSearchLanguageTemp: never

          ChatSearchLastQueryJoin

          ChatSearchLastQueryJoin: string = ""

          ChatSearchLastQueryJoinTime

          ChatSearchLastQueryJoinTime: number = 0

          ChatSearchLastQuerySearchTime

          ChatSearchLastQuerySearchTime: number = 0

          ChatSearchLastSearchDataJSON

          ChatSearchLastSearchDataJSON: ServerChatRoomSearchRequest = null

          ChatSearchListParams

          ChatSearchListParams: CommonGenerateGridParameters = ...

          Layout parameters for the room grid

          ChatSearchMode

          ChatSearchMode: | Filter = ""

          ChatSearchPageCountElement

          ChatSearchPageCountElement: HTMLDivElement

          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

          ChatSearchQueryString

          ChatSearchQueryString: string = ""

          ChatSearchRejoinIncrement

          ChatSearchRejoinIncrement: number = 1

          ChatSearchResult

          ChatSearchResult: ChatRoomSearchResult[] = []

          ChatSearchResultOffset

          ChatSearchResultOffset: number = 0

          ChatSearchReturnScreen

          ChatSearchReturnScreen: ScreenSpecifier = ...

          ChatSearchReturnToScreen

          ChatSearchReturnToScreen: never
          @deprecated

          ChatSearchRoomGrid

          ChatSearchRoomGrid: HTMLDivElement

          ChatSearchRoomHeader

          ChatSearchRoomHeader: HTMLDivElement

          ChatSearchRoomSpaces

          ChatSearchRoomSpaces: ChatRoomSpaceLabel[] = ...

          ChatSearchRoomsPerPage

          ChatSearchRoomsPerPage: number = ...

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

          ChatSearchSafewordAppearance

          ChatSearchSafewordAppearance: Item[] = null

          ChatSearchSafewordPose

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

          ChatSearchSearchBodyElement

          ChatSearchSearchBodyElement: HTMLDivElement

          ChatSearchSearchMenu

          ChatSearchSearchMenu: HTMLFieldSetElement

          ChatSearchSearchMenuButton

          ChatSearchSearchMenuButton: HTMLButtonElement

          ChatSearchShowHiddenRoomsActive

          ChatSearchShowHiddenRoomsActive: boolean = false

          ChatSearchSpace

          ChatSearchSpace: ServerChatRoomSpace = null

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

          ClubCardBuilderCardBackFocus

          ClubCardBuilderCardBackFocus: any = null

          ClubCardBuilderCollegeDeck

          ClubCardBuilderCollegeDeck: number[] = ...

          ClubCardBuilderCustomizationIndex

          ClubCardBuilderCustomizationIndex: string = ""

          ClubCardBuilderDeckCurrent

          ClubCardBuilderDeckCurrent: number[] = []

          ClubCardBuilderDeckIndex

          ClubCardBuilderDeckIndex: number = -1

          ClubCardBuilderDefaultDeck

          ClubCardBuilderDefaultDeck: number[] = ...

          ClubCardBuilderDominantDeck

          ClubCardBuilderDominantDeck: number[] = ...

          constClubCardBuilderFilterGroupFilters

          ClubCardBuilderFilterGroupFilters: Record<ClubCardTag, (card: ClubCard) => boolean> = ...

          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

          ClubCardBuilderReturnToChatroom

          ClubCardBuilderReturnToChatroom: boolean = false

          Whether exiting the builder should return you to the chatroom or, otherwise, the club card lounge.

          ClubCardBuilderSelectedCardBack

          ClubCardBuilderSelectedCardBack: number = 0

          ClubCardBuilderSelectedTag

          ClubCardBuilderSelectedTag: ClubCardTag = "All"

          ClubCardBuilderView

          ClubCardBuilderView: ClubCard[] = ClubCardList

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

          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

          CommandsHelp

          CommandsHelp: { Complete: () => void; ShowFor: (commands: Optional<ICommand, Action>[], options?: { doShowEscapeHint?: boolean; publish?: boolean; setCommand?: string }) => HTMLDivElement; ShowForPartial: (low: string) => void; _BuildDelete: (id: any) => HTMLButtonElement; _BuildToggle: (id: string, expanded: boolean) => HTMLButtonElement; _BuildCommand: any; _BuildHelp: any; _GetDescription: any } = ...

          Type declaration

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

          • ShowFor: (commands: Optional<ICommand, Action>[], options?: { doShowEscapeHint?: boolean; publish?: boolean; setCommand?: string }) => HTMLDivElement

            Prints out the help for commands

              • (commands: Optional<ICommand, Action>[], options?: { doShowEscapeHint?: boolean; publish?: boolean; setCommand?: string }): HTMLDivElement
              • Parameters

                • commands: Optional<ICommand, Action>[]

                  list of commands

                • optionaloptions: { doShowEscapeHint?: boolean; publish?: boolean; setCommand?: string } = {}

                  if message about message escaping should be shown

                  • optionaldoShowEscapeHint: boolean
                  • optionalpublish: boolean
                  • optionalsetCommand: string

                Returns HTMLDivElement

          • ShowForPartial: (low: string) => void

            Prints out the help for commands with tags that include low

            @returns
            • Nothing
              • (low: string): void
              • Parameters

                • low: string

                  lower case search keyword for tags

                Returns void

          • _BuildDelete: (id: any) => HTMLButtonElement
              • (id: any): HTMLButtonElement
              • Parameters

                • id: any

                Returns HTMLButtonElement

          • _BuildToggle: (id: string, expanded: boolean) => HTMLButtonElement
            @returns
              • (id: string, expanded: boolean): HTMLButtonElement
              • Parameters

                • id: string
                • expanded: boolean

                Returns HTMLButtonElement

          • _BuildCommand: function
            • _BuildCommand(command: ICommand, setCommand: string, singleCommand: boolean): HTMLOptions<keyof HTMLElementTagNameMap>


            • Parameters

              • command: ICommand
              • setCommand: string
              • singleCommand: boolean

              Returns HTMLOptions<keyof HTMLElementTagNameMap>

          • _BuildHelp: function
            • _BuildHelp(commands: ICommand[], options?: { setCommand?: string }): HTMLDivElement


            • Parameters

              • commands: ICommand[]
              • optionaloptions: { setCommand?: string } = {}
                • optionalsetCommand: string

              Returns HTMLDivElement

          • _GetDescription: function
            • _GetDescription(command: ICommand): string


            • Parameters

              Returns string

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

              DrawCacheTextureAlphaMasks

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

              A cache of the texture masks used to draw the character

              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; CreateLabelled: (id?: string, label: string | Node | HTMLOptions<keyof HTMLElementTagNameMap>, onChange?: (this: HTMLInputElement, ev: Event) => any, options?: LabelOptions, htmlOptions?: Partial<Record<label | 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 and 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

                • CreateLabelled: (id?: string, label: string | Node | HTMLOptions<keyof HTMLElementTagNameMap>, onChange?: (this: HTMLInputElement, ev: Event) => any, options?: LabelOptions, htmlOptions?: Partial<Record<label | checkbox, Omit<HTMLOptions<any>, tag>>>) => HTMLElement

                  Construct and return a DOM pair of checkbox and label elements

                  @example
                  <label class="checkbox-pair">
                  <input type="checkbox" id="checkbox" class="checkbox">
                  <span id="checkbox-label" for="checkbox">Label</label>
                  </div>
                    • (id?: string, label: string | Node | HTMLOptions<keyof HTMLElementTagNameMap>, onChange?: (this: HTMLInputElement, ev: Event) => any, options?: LabelOptions, htmlOptions?: Partial<Record<label | checkbox, Omit<HTMLOptions<any>, tag>>>): HTMLElement
                    • Parameters

                      • id: string = null

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

                      • label: string | Node | HTMLOptions<keyof HTMLElementTagNameMap>

                        The label of the checkbox

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

                        The change event listener to-be fired upon checkbox clicks

                        • options: LabelOptions = null

                          High level options for the to-be created checkbox

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

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

                        Returns HTMLElement

                  constElementNoParent

                  ElementNoParent: 0 = 0

                  ElementSwipe

                  ElementSwipe: { setListeners: any }

                  A namespace for adding touch-based swiping behavior to elements


                  Type declaration

                  • setListeners: function
                    • setListeners(elem: HTMLElement, options?: Options): void

                    • Parameters

                      • elem: HTMLElement
                      • options: Options = null

                      Returns void

                  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.

                  constFETCH_MAX_RETRIES

                  FETCH_MAX_RETRIES: 10 = 10

                  How many times do we retry a resource fetch.

                  constFETCH_MAX_RETRY_BACKOFF_TIME

                  FETCH_MAX_RETRY_BACKOFF_TIME: 16 = 16

                  How much to wait max between each attempt.

                  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

                  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

                  constGameReadyState

                  GameReadyState: { load: Promise<void> } = ...

                  Promises that resolve upon reaching specific stages of the BC loading and login process.


                  Type declaration

                  • readonlyload: Promise<void>

                    Promise that resolves upon fully loading BC (but before logging in). This promise can safely be accessed starting from the interactive document ready state.

                  GameVersion

                  GameVersion: string = "R121"

                  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

                    constLoginIDs

                    LoginIDs: Readonly<{ cheats: login-cheats-button; footer: login-footer; forgotPassword: login-password-reset-hint; language: LanguageDropdown; login: login-login-button; name: InputName; nameLabel: login-name-label; newCharacter: login-new-character-label; password: InputPassword; passwordLabel: login-password-label; passwordReset: login-password-reset-button; register: login-register-button; status: login-status; welcome: login-welcome-message }> = ...

                    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

                    constMainSubscreenIDs

                    MainSubscreenIDs: Readonly<{ grid: preference-main-grid }> = ...

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

                    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

                    constPreferenceCensoredWordsIDs

                    PreferenceCensoredWordsIDs: Readonly<{ add: preference-censored-words-add-button; censorshipOption: preference-censored-words-censorship-group; grid: preference-censored-words-grid; subtitle: preference-censored-words-subtitle; wordInput: InputWord; wordInputGroup: preference-censored-words-word-input-group }> = ...

                    PreferenceCensoredWordsList

                    PreferenceCensoredWordsList: string[] = []

                    PreferenceChatColorThemeList

                    PreferenceChatColorThemeList: ChatColorThemeType[] = ...

                    PreferenceChatEnterLeaveList

                    PreferenceChatEnterLeaveList: ChatEnterLeaveType[] = ...

                    PreferenceChatFontSizeList

                    PreferenceChatFontSizeList: ChatFontSizeType[] = ...

                    PreferenceChatMemberNumbersList

                    PreferenceChatMemberNumbersList: ChatMemberNumbersType[] = ...

                    PreferenceDifficultyAccept

                    PreferenceDifficultyAccept: boolean = false

                    PreferenceDifficultyLevel

                    PreferenceDifficultyLevel: DifficultyLevel = null

                    PreferenceExtensionsCurrent

                    PreferenceExtensionsCurrent: PreferenceExtensionsSettingItem = null

                    PreferenceExtensionsDisplay

                    PreferenceExtensionsDisplay: PreferenceExtensionsMenuButtonInfo[] = []

                    constPreferenceExtensionsIDs

                    PreferenceExtensionsIDs: Readonly<{ grid: preference-extensions-grid; noExtensionLabel: preference-no-extensions-label }> = ...

                    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

                    constPreferenceIDs

                    PreferenceIDs: Readonly<{ exit: preference-exit; subscreen: preference-subscreen; title: preference-subscreen-hgroup }> = ...

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

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

                    PreferenceSubscreen

                    PreferenceSubscreen: PreferenceSubscreen = null

                    The currently active subscreen

                    constPreferenceSubscreenAudioIDs

                    PreferenceSubscreenAudioIDs: { grid: string } = ...

                    Type declaration

                    • grid: string

                    constPreferenceSubscreenChatCheckboxes

                    PreferenceSubscreenChatCheckboxes: PreferenceChatCheckboxOption[] = ...

                    constPreferenceSubscreenChatDropdowns

                    PreferenceSubscreenChatDropdowns: Record<string, PreferenceChatDropdownOption> = ...

                    constPreferenceSubscreenChatIDs

                    PreferenceSubscreenChatIDs: Readonly<{ grid: preference-chat-grid }> = ...

                    PreferenceSubscreenGeneralColorPicker

                    PreferenceSubscreenGeneralColorPicker: boolean = false

                    constPreferenceSubscreenImmersionCheckboxes

                    PreferenceSubscreenImmersionCheckboxes: { check: () => boolean; click: (value: boolean) => void; disabled?: (disableButtons: boolean) => boolean; label: string }[] = ...

                    constPreferenceSubscreenImmersionIDs

                    PreferenceSubscreenImmersionIDs: Readonly<{ grid: preference-immersion-grid; header: preference-immersion-header; lockCheckbox: preference-ImmersionLockSetting; wrapper: preference-immersion-wrapper }> = ...

                    constPreferenceSubscreenMainGrid

                    PreferenceSubscreenMainGrid: CommonGenerateGridParameters = ...

                    constPreferenceSubscreenOnlineCheckboxes

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

                    constPreferenceSubscreenOnlineIDs

                    PreferenceSubscreenOnlineIDs: Readonly<{ grid: preference-online-grid; grid2: preference-online-grid2; selection: preference-online-selection-button; subtitle: preference-online-subtitle }> = ...

                    constPreferenceSubscreenRestrictionIDs

                    PreferenceSubscreenRestrictionIDs: Readonly<{ grid: restriction-checkbox-grid; hint: restriction-label-hint }> = ...

                    constPreferenceSubscreenSecurityIDs

                    PreferenceSubscreenSecurityIDs: Readonly<{ emailNew: InputEmailNew; emailOld: InputEmailOld; grid: preference-security-grid; hint: preference-security-hint; update: preference-security-update-button }> = ...

                    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}` | `Decals/${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

                    constRelogChatLog

                    RelogChatLog: never
                    @deprecated

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

                    RelogData

                    RelogData: RelogData = null

                    constRelogIDs

                    RelogIDs: Readonly<{ accountName: relog-account-name; buttons: relog-buttons; enterPasswordHint: relog-enter-password-hint; leave: relog-leave; login: relog-login; password: InputPassword; passwordAndButtons: relog-password-and-buttons; passwordLabel: relog-password-label; passwordPair: relog-password-pair; status: relog-status; subscreen: relog-subscreen }> = ...

                    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

                    ScreenIsLoading

                    ScreenIsLoading: 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 = 2000

                    ServerChatRoomDescriptionMaxLength

                    ServerChatRoomDescriptionMaxLength: number = 300

                    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: Map<string, CustomTimer> = ...

                    TitleBackground

                    TitleBackground: string = "Sheet"

                    TitleList

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

                    TitleListFiltered

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

                    TitleNicknameStatus

                    TitleNicknameStatus: NicknameTooLong | NicknameInvalidChars | NicknameLocked = 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

                    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