Skip to main content

bondage-college

Index

Type Aliases

Variables

Namespaces

Interfaces

Functions

Classes

Enumerations

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 | SuckPenetrateItem | DeepThroat | 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}` | `TargetNeeds-${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

AnimationDataKey

AnimationDataKey: string

AnimationDataTypes

AnimationDataTypes: keyof AnimationPersistentStorage

AnimationPersistentData

AnimationPersistentData: { [ key in `GroupData${string}` | Group ]?: { Subscriptions: AnimationDataKey[] } }

publicAnyFunction

AnyFunction: (...args) => any

A type signifying any unknown function.


Type declaration

    • (...args): any
    • Parameters

      • rest...args: any

      Returns any

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 | Partial<Record<ServerChatRoomLanguage | TW, string>>; name: string | Partial<Record<ServerChatRoomLanguage | TW, string>>; suggestions?: Thunk<string[]> }

Type declaration

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

AssetArchetypeConfig: AssetArchetypeGetConfig<keyof ExtendedArchetypes>

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

AssetArchetypeData

AssetArchetypeData: AssetArchetypeGetData<keyof ExtendedArchetypes>

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

AssetArchetypeGetConfig

AssetArchetypeGetConfig<T>: ExtendedArchetypes[T][0]

Get the archetype config type


Type parameters

AssetArchetypeGetData

AssetArchetypeGetData<T>: ExtendedArchetypes[T][1]

Get the archetype data type


Type parameters

AssetAttribute

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

AssetBonusName

AssetBonusName: KidnapDomination | KidnapSneakiness | KidnapBruteForce

AssetCategory

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

AssetCopyConfigValidator

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

Type parameters

  • T

Type declaration

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

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

      Returns boolean

AssetDefinition

AssetGender

AssetGender: F | M

AssetGenericSize

AssetGenericSize: Small | Medium | Large

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 } & AnimationPersistentData

BCColor

BCColor: Default | Black | White | Asian | HexColor

A hexadecimal color code or one of BC's more specialized color literals (which an item may or may not support).

  • Default: Use the default color of the .png without modification
  • White/Black/Asian: Use skin color specific .png files (used by the body)

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.

BodyStyle

BodyStyle: EchoV1 | EchoV2 | AssetGroupName

CharacterHook

CharacterHook: BeforeSortLayers | AfterLoadCanvas

CharacterPronouns

CharacterPronouns: SheHer | HeHim | TheyThem | ItIt

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

ChatRoomAccessModeLabel

ChatRoomAccessModeLabel: PUBLIC | ADMIN_WHITELIST | ADMIN

ChatRoomAdminSettings

ChatRoomAdminSettings: Prettify<ChatRoomSettings & Required<Pick<ChatRoomSettings, MapData>>>

Parsed chat room settings as used by the ChatAdmin screen

ChatRoomCustomizationType

ChatRoomCustomizationType: 0 | 1 | 2 | 3

ChatRoomData

ChatRoomData: ServerChatRoomData

ChatRoomLovershipEvent

ChatRoomLovershipEvent: CanOfferBeginDating | CanBeginDating | CanOfferBeginEngagement | CanBeginEngagement | CanOfferBeginWedding | CanBeginWedding

ChatRoomMapData

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

Type declaration

ChatRoomMapDirection

ChatRoomMapDirection: | R | L | D | U

ChatRoomMapEffect

A union of all effect types.

ChatRoomMapObjectType

ChatRoomMapObjectType: FloorDecoration | FloorDecorationThemed | FloorDecorationParty | FloorDecorationCamping | FloorDecorationExpanding | FloorDecorationAnimal | FloorItem | FloorObstacle | FloorNumber | FloorLetter | FloorIcon | WallDecoration | WallPath | Banners

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, sender) => { metadata: IChatRoomMessageMetadata; substitutions: CommonSubtituteSubstitution[] } | null

A metadata extractor for a given message.


Type declaration

ChatRoomOwnershipEvent

ChatRoomOwnershipEvent: CanOfferStartTrial | CanStartTrial | CanOfferEndTrial | CanEndTrial

ChatRoomSearchResult

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

ChatRoom results once received by the client

ChatRoomSearchSettings

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

Type declaration

ChatRoomSettings

ChatRoomSettings: Prettify<Omit<ServerChatRoomData, Character | Custom | Space> & Partial<Pick<ServerChatRoomData, Custom | Space>>>

ChatRoomSpaceLabel

ChatRoomSpaceLabel: MIXED | FEMALE_ONLY | MALE_ONLY | ASYLUM

ChatRoomVisibilityModeLabel

ChatRoomVisibilityModeLabel: PUBLIC | ADMIN_WHITELIST | ADMIN | UNLISTED

ClearRectCallback

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

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


Type declaration

    • (x, y, w, h): 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[]

ClipboardEventListener

ClipboardEventListener: (event) => void

Type declaration

    • (event): void
    • Parameters

      • event: ClipboardEvent

      Returns void

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 | Exhibitionist | Reward

CommandsModListRequest

CommandsModListRequest: { finalized: boolean; pending: Set<number>; requestId: string; results: Map<number, CommandsModListResult>; rootEl: HTMLDivElement; timeoutId: number; total: number }

Type declaration

  • finalized: boolean
  • pending: Set<number>
  • requestId: string
  • results: Map<number, CommandsModListResult>
  • rootEl: HTMLDivElement
  • timeoutId: number
  • total: number

CommandsModListResult

CommandsModListResult: { mods?: ModSDKModInfo[]; status: CommandsModListStatus }

Type declaration

CommandsModListStatus

CommandsModListStatus: ok | declined | error | timeout

CommonChatTags

CommonChatTags: CharacterReferenceTag | AssetName | Automatic

CommonGenerateGridCallback

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

Type parameters

  • T

Type declaration

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

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

      Returns boolean

CommonSubstituteReplacer

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

Type declaration

    • (match, offset, replacement, 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 | Reorder | Delete | Name | Color | Extended | Tighten | OverridePriority

The available crafting subscreens.

Note that this list may be incomplete, as additional entries can be added be added by third parties via CraftingSlotModes

CraftingPropertyType

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

CraftingSlotModes

CraftingSlotModes: keyof CraftingSlotModeData

All Slot-adjecant crafting modes

CraftingStatusType

CraftingStatusType: 0 | 1 | 2

DailyJobPuppyNums

DailyJobPuppyNums: { 0: PlayerCharacter; 1: NPCCharacter; 2: NPCCharacter; 3: NPCCharacter; 4: NPCCharacter }

DeafEffectName

DeafEffectName: DeafLight | DeafNormal | DeafHeavy | DeafTotal

The EffectName values for all deafness-related effects.

DialogMenuButtonType

DialogMenuButtonType: Activity | ColorCancel | ColorChange | ColorChangeDisabled | ColorChangeMulti | ColorChangeMultiDisabled | 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, x, y, alphaMasks, maskLayers) => void

A callback function used to draw a canvas on a canvas


Type declaration

    • (img, x, y, alphaMasks, maskLayers): 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, x, y, options) => void

A callback function used to draw an image to a canvas


Type declaration

    • (src, x, y, options): 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, x, y, options) => void

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


Type declaration

    • (src, x, y, options): 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?: HexColor; 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?: HexColor
  • 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, ctx, x, y, options) => any

Type declaration

    • (text, ctx, x, y, options): 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 | MapSwim | 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: Prettify<keyof ExtendedArchetypes>

All known archetypes' names

ExtendedItemCallback

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

Basic callback for extended item functions


Type parameters

  • T: any[]
  • RT = void

Type declaration

    • (...args): RT
    • Parameters

      • rest...args: T

      Returns RT

ExtendedItemChatCallback

ExtendedItemChatCallback<OptionType>: (chatData) => string

Type parameters

Type declaration

    • (chatData): string

    • Parameters

      • chatData: ExtendedItemChatData<OptionType>

        An object containing data about the type change that triggered the chat message

      Returns string

      • The chat prefix that should be used for this type change

ExtendedItemChatSetting

ExtendedItemChatSetting: default | TypedItemChatSetting | ModularItemChatSetting

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

ExtendedItemDictionaryCallback

ExtendedItemDictionaryCallback<OptionType>: (dictionary, chatData) => void

Type parameters

Type declaration

    • (dictionary, chatData): void

    • Parameters

      Returns void

      • The dictionary entry to append to the dictionary.

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, C, item) => string

Type parameters

Type declaration

    • (data, C, item): string

ExtendedItemMainConfig

ExtendedItemMainConfig: Partial<Record<AssetGroupName, ExtendedItemGroupConfig>>

An object containing extended item configurations keyed by group name.

ExtendedItemNPCCallback

ExtendedItemNPCCallback<OptionType>: (C, Option, PreviousOption) => string

Type parameters

Type declaration

    • (C, Option, PreviousOption): 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

      • The chat prefix that should be used for this type change

ExtendedItemOptionUnion

ExtendedItemScriptHookCallback

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

Basic callback for extended item script hooks


Type parameters

Type declaration

    • (data, originalFunction, ...args): RT
    • Parameters

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

        Returns RT

    ExtendedItemScriptHookCallbackNoNull

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

    Type parameters

    Type declaration

      • (data, originalFunction, ...args): RT
      • Parameters

        • data: DataType
        • originalFunction: (...args) => 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 } & AnimationPersistentData

      FriendListMode

      FriendListMode: OnlineFriends | Beeps | AllFriends

      FriendListModes

      FriendListModes: FriendListMode[]

      FriendListRelationType

      FriendListRelationType: Friend | Pending | Owner | Lover | Submissive

      FriendListReturn

      FriendListReturn<T>: { hasScrolledChat?: boolean; IsInChatRoom?: boolean; Module: T; Screen: ModuleScreens[T] }

      Type parameters

      Type declaration

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

      FriendListSortingDirection

      FriendListSortingDirection: Asc | Desc

      FriendListSortingMode

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

      FriendRawBeep

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

      Type declaration

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

      FriendRawData

      FriendRawData: { beep?: FriendRawBeep; canAdd: boolean; canBeep: boolean; canDelete: boolean; chatRoom?: FriendRawRoom; isOnline: boolean; memberName: string; memberNickname?: string; memberNumber?: number; pending: boolean; relationType: FriendListRelationType }

      Type declaration

      • optionalbeep?: FriendRawBeep
      • canAdd: boolean
      • canBeep: boolean
      • canDelete: boolean
      • optionalchatRoom?: FriendRawRoom
      • isOnline: boolean
      • memberName: string
      • optionalmemberNickname?: string
      • optionalmemberNumber?: number
      • pending: boolean
      • relationType: FriendListRelationType

      FriendRawRoom

      FriendRawRoom: { canSearchRoom: boolean; caption: string; ChatRoomLimit?: number; ChatRoomMemberCount?: number; name?: string; types: (null | FriendListIcon)[] }

      Type declaration

      • canSearchRoom: boolean
      • caption: string
      • optionalChatRoomLimit?: number
      • optionalChatRoomMemberCount?: number
      • optionalname?: string
      • types: (null | FriendListIcon)[]

      FuckMachinePersistentData

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

      FuturisticBraPersistentData

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

      FuturisticChastityBeltPersistentData

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

      FuturisticCratePersistentData

      FuturisticCratePersistentData: FuckMachinePersistentData

      FuturisticPanelGagPersistentData

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

      FuturisticTrainingBeltPersistentData

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

      FuturisticVibratorPersistentData

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

      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 |

      publicGetDotedPathType

      GetDotedPathType<Base, DotedKey>: DotedKey extends `${infer Key1}.${infer Key2}` ? GetDotedPathType<GetDotedPathType<Base, Key1>, Key2> : DotedKey extends keyof Base ? Base[DotedKey] : never

      A helper to resolve dotted property path to the target type

      @example
      typeof window["a"]["b"]["c"] === GetDotedPathType\<typeof window, "a.b.c"\>

      Type parameters

      • Base
      • DotedKey: string

      GraphicsFontName

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

      GraphicsVFXFilterName

      GraphicsVFXFilterName: VFXFilterLight | VFXFilterMedium | VFXFilterHeavy | VFXFilterNone

      GraphicsVFXName

      GraphicsVFXName: VFXInactive | VFXSolid | VFXAnimatedTemp | VFXAnimated

      GraphicsVFXVibratorName

      GraphicsVFXVibratorName: VFXVibratorInactive | VFXVibratorSolid | VFXVibratorAnimated

      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, null | number | boolean | string>>; children?: readonly (null | undefined | string | Node | HTMLOptionsUnion)[]; classList?: readonly (null | undefined | string)[]; dataAttributes?: Partial<Record<string, number | string | boolean>>; eventListeners?: { [ k in keyof HTMLElementEventMap ]?: (this, event) => any }; innerHTML?: string; parent?: null | ElementNoParent | Node; style?: Record<string, string | undefined>; tag: T }

      Type parameters

      • T: keyof HTMLElementTagNameMap

      Type declaration

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

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

        Note that booleans are interpreted as boolean attributes.

      • optionalchildren?: readonly (null | undefined | string | Node | HTMLOptionsUnion)[]

        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 interpreted as boolean attributes.

      • optionaleventListeners?: { [ k in keyof HTMLElementEventMap ]?: (this, event) => 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?: null | ElementNoParent | Node

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

      • optionalstyle?: Record<string, string | undefined>

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

      • tag: T

        The elements HTML tag

      HTMLOptionsUnion

      HTMLOptionsUnion: { [ k in keyof HTMLElementTagNameMap ]: HTMLOptions<k> }[keyof HTMLElementTagNameMap]

      A union of HTMLOptions types for all valid HTML element tags

      HexColor

      HexColor: `#${string}`

      A hexadecimal color code

      IAssetFamily

      IAssetFamily: Female3DCG

      ImmersionSensDepName

      ImmersionSensDepName: SensDepLight | Normal | SensDepNames | SensDepTotal | SensDepExtreme

      InfiltrationMissionType

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

      InfiltrationPerks

      InfiltrationPerks: Strength | Charisma | Agility | Resilience | Endurance | Investigation | Bribery | Negotiation | Recruiter | Forgery | Recovery | Cartographer | Lockpicker | Detector

      Pandora Player extension

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

      ItemColorExitListener

      ItemColorExitListener: (colorState, save, root) => void

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


      Type declaration

        • (colorState, save, root): void
        • Parameters

          • colorState: ItemColorExitState

            The new colors and opacities

          • save: boolean

            Whether the item's appearance changes should be saved

          • root: null | HTMLElement

            The root DOM element of the subscreen (if any)

          Returns void

      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 } & AnimationPersistentData

      KeyboardEventListener

      KeyboardEventListener: (event) => 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): boolean
        • Parameters

          • event: KeyboardEvent

          Returns boolean

      KidnapModeType

      KidnapModeType: Intro | SelectItem | SelectMove | ShowMove | UpperHand | SuddenDeath | End

      LactationPumpPersistentData

      LactationPumpPersistentData: { LastSuction?: number; SuctionDuration?: number } & AnimationPersistentData

      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 } & AnimationPersistentData

      MagicSchoolHouse

      MagicSchoolHouse: Maiestas | Vincula | Amplector | Corporis

      MagicSchoolSpell

      MagicSchoolSpell: Hogtie | ReleaseHogtie | FlyingHogtie | Arousal | Tickle | Pain | SwitchRope | SwitchChain | Fail | Tight

      MaidQuartersMissionType

      MaidQuartersMissionType: ShibariDojo | IntroductionClass | Shop | Gambling | Prison

      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 } & AnimationPersistentData

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

      Type declaration

        • (event): void
        • Parameters

          • event: PointerEvent

          Returns void

      MouseWheelEventListener

      MouseWheelEventListener: (event) => void

      Type declaration

        • (event): 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

      NicknameStatus

      NicknameStatus: NicknameTooLong | NicknameTooShort | NicknameInvalidChars | NicknameLocked

      NotificationAlertType

      NotificationAlertType: 0 | 1 | 3 | 2

      NotificationAudioType

      NotificationAudioType: 0 | 1 | 2

      NotificationEventType

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

      NullPoseType

      NullPoseType: null |

      ObedienceBeltPersistentData

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

      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

      PartialScreenSpecifier

      PartialScreenSpecifier: _PartialScreenSpecifier<Character> | _PartialScreenSpecifier<Cutscene> | _PartialScreenSpecifier<MiniGame> | _PartialScreenSpecifier<Online> | _PartialScreenSpecifier<Room>

      PartialType

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

      A concatenation of a single TypeRecord key/value pair.

      publicPatchHook

      PatchHook<TFunction>: (args, next) => ReturnType<TFunction>

      This is how hook from mod looks like.

      As first argument it receives all arguments the original function received.

      As second argument special next function that should be used to call original function (or next function in the hook chain).

      The return value is then used as return value instead of original one.


      Type parameters

      Type declaration

        • (args, next): ReturnType<TFunction>
        • Parameters

          • args: [...Parameters<TFunction>]
          • next: (args) => ReturnType<TFunction>

            Returns ReturnType<TFunction>

        PetSuitShockCollarPersistentData

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

        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; click: () => void; Image?: string }

        Extra button on the Extensions row in Preferences


        Type declaration

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

        • optionalImage?: string

        PreferenceSubscreenName

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

        Prettify

        Prettify<T>: { [ K in keyof T ]: T[K] } & unknown

        Normalizes a type for cleaner IntelliSense.

        Forces TypeScript to resolve intersections and mapped types into a readable object shape without changing the original type behavior.


        Type parameters

        • T

        PrivateActivityType

        PrivateActivityType: Kiss | FrenchKiss | Caress | Rub | `Masturbate${Hand | Tongue | Player | Self}` | Underwear | Naked | Bed | `Egg${Insert | SpeedUp | SpeedDown}` | `Lover${Lock | Unlock}` | `${Lock | Unlock}Belt` | Skip1 | Skip2

        PrivatePunishment

        PrivatePunishment: Cage | Bound | BoundPet | ChastityBra | ForceNaked | ConfiscateKey | ConfiscateCrop | ConfiscateWhip | SleepCage | LockOut | Cell | OwnerLocks | Asylum | ChastityBelt

        PrivatePunishmentType

        PrivatePunishmentType: Cage | Bound | BoundPet | ChastityBra | ChastityBelt | ForceNaked | `Confiscate${Key | Crop | Whip}` | SleepCage | LockOut | Cell | OwnerLocks | Asylum |

        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

        ScreenFunctionsSymbols

        ScreenFunctionsSymbols: Prettify<{ [ key in `${RoomName}Background` ]?: string } & { [ key in `${RoomName}Run` ]: ScreenRunHandler } & { [ key in `${RoomName}MouseDown` ]?: MouseEventListener } & { [ key in `${RoomName}MouseUp` ]?: MouseEventListener } & { [ key in `${RoomName}MouseMove` ]?: MouseEventListener } & { [ key in `${RoomName}MouseWheel` ]?: MouseWheelEventListener } & { [ key in `${RoomName}Click` ]: MouseEventListener } & { [ key in `${RoomName}Load` ]?: ScreenLoadHandler } & { [ key in `${RoomName}Unload` ]?: ScreenUnloadHandler } & { [ key in `${RoomName}Draw` ]?: ScreenDrawHandler } & { [ key in `${RoomName}Resize` ]?: ScreenResizeHandler } & { [ key in `${RoomName}KeyDown` ]?: KeyboardEventListener } & { [ key in `${RoomName}KeyUp` ]?: KeyboardEventListener } & { [ key in `${RoomName}Paste` ]?: ClipboardEventListener } & { [ key in `${RoomName}Exit` ]?: ScreenExitHandler } & { [ key in `Inventory${string}Init` ]?: ExtendedItemCallbacks.Init } & { [ key in `Inventory${string}Load` ]?: ExtendedItemCallbacks.Load } & { [ key in `Inventory${string}Draw` ]?: ExtendedItemCallbacks.Draw } & { [ key in `Inventory${string}Click` ]?: ExtendedItemCallbacks.Click } & { [ key in `Inventory${string}Exit` ]?: ExtendedItemCallbacks.Exit } & { [ key in `Inventory${string}Validate` ]?: ExtendedItemCallbacks.Validate } & { [ key in `Inventory${string}PublishAction` ]?: ExtendedItemCallbacks.PublishAction } & { [ key in `Inventory${string}SetOption` ]?: ExtendedItemCallbacks.SetOption } & { [ key in `Assets${string}BeforeDraw` ]?: ExtendedItemCallbacks.BeforeDraw } & { [ key in `Assets${string}AfterDraw` ]?: ExtendedItemCallbacks.AfterDraw } & { [ key in `Assets${string}ScriptDraw` ]?: ExtendedItemCallbacks.ScriptDraw } & { [ key in `Inventory${string}NpcDialog` ]?: (C, Option, PreviousOption) => void }>

        BC global object types.

        Computationally cheap variants for everyday use.

        ScreenLoadHandler

        ScreenLoadHandler: () => Promise<void>

        Type declaration

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

        ScreenName

        ScreenName: ModuleScreens[Character] | ModuleScreens[Cutscene] | ModuleScreens[MiniGame] | ModuleScreens[Online] | ModuleScreens[Room]

        ScreenResizeHandler

        ScreenResizeHandler: (load) => void

        Type declaration

          • (load): void
          • Parameters

            • load: boolean

            Returns void

        ScreenRunHandler

        ScreenRunHandler: (time) => void

        Type declaration

          • (time): 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

        ServerAccountOwnershipRequest

        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; module?: ModuleType; screen?: ScreenName }

        Type declaration

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

        • optionalmodule?: ModuleType
        • optionalscreen?: ScreenName

        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; MapData?: ServerChatRoomMapData; Name: string; 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

        ServerChatRoomJoinFailedResponse

        ServerChatRoomJoinFailedResponse: AlreadyInRoom | RoomLocked | RoomBanned | RoomFull | CannotFindRoom | AccountError | InvalidRoomData

        ServerChatRoomJoinResponse

        ServerChatRoomJoinResponse: JoinedRoom | RoomKicked | ServerChatRoomJoinFailedResponse

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

        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

        ShockUnitPersistentData

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

        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 } & AnimationPersistentData

        StimulationAction

        StimulationAction: Kneel | Walk | Struggle | StruggleFail | Talk

        StimulationEventType

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

        StruggleCompletionCallback

        StruggleCompletionCallback: (character, game, data) => void

        Type declaration

        StruggleKnownMinigames

        StruggleKnownMinigames: Strength | Flexibility | Dexterity | Loosen | LockPick

        Subcommand

        Subcommand: Omit<ICommand, Subcommands | AutoComplete>

        TextItemEventListener

        TextItemEventListener: (C, item, name, text) => void

        A callback signature for handling (throttled) text changes.


        Type declaration

          • (C, item, name, text): void
          • 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

        Thunk

        Thunk<T>: T | () => T

        A type that can be a value or a function returning that value.


        Type parameters

        • T

        TitleName

        TitleName: NPCArchetype | None | Mistress | Master | Queen | King | Goddess | God | 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 | Dragon | Vampire | Turtle | Thing | Elf | Drow | Pixie | Brat | Kitten | Puppy | Foxy | Wolf | Monster | Shapeshifter | Bunny | Doll | Demon | Angel | Alien | Captain | Admiral | Succubus | Incubus | Concubus | GoodGirl | GoodBoy | GoodSlaveGirl | GoodSlaveBoy | GoodSlave | Drone | FreeUse | Archbishop | Bishop | Archjudge | Judge | Champion | Matron | Patriarch | Primaris

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

        The function that handles applying the height setting to the character


        Type declaration

          • (property): number | null

        VariableHeightSetHeightCallback

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

        The function that handles finding the current variable height setting


        Type declaration

          • (property, height, maxHeight, minHeight): 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 } & AnimationPersistentData

        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

        WindowFunctions

        WindowFunctions: { [ k in keyof Window as NonNullable<Window[k]> extends Function ? k : never ]: Window[k] }

        The Window type with all non-function values removed (though they may still be optional)

        _PartialScreenSpecifier

        _PartialScreenSpecifier<T>: { module?: T; screen?: ModuleScreens[T] }

        Type parameters

        Type declaration

        _RelogDataMap

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

        Type parameters

        • T

        _ScreenSpecifier

        _ScreenSpecifier<T>: [module: T, screen: ModuleScreens[T], options?: null | ScreenSpecifierOptions]

        Type parameters

        _SendRateLimitQueueItem

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

        Type parameters

        Variables

        ActivityDebug

        ActivityDebug: boolean = false

        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.

        @constant

        Type declaration

        • readonlyAssetGroup: AssetGroup
        • readonlyBase:
        • readonlyCanvas: DynamicPlayerCanvas
        • readonlyPersistentData: PersistentData
        • readonlyRebuild: Rebuild
        • readonlyRefreshRate: RefreshRate
        • readonlyRefreshTime: RefreshTime

        AnimationPersistentStorage

        AnimationPersistentStorage: AnimationPersistentStorage = ...

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

        @constant

        AppearanceBackground

        AppearanceBackground: string = "Dressing"

        AppearanceMenu

        AppearanceMenu: DialogMenuButtonType[] = []

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

        List of item indices collected for swapping.

        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

            constAssetStringsPath

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

            constAssetUpperOverflowAlpha

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

            constAssetsClothCheerleaderTopData

            AssetsClothCheerleaderTopData: { _Large: { shearFactor: 0.74; width: 120; yOffset: 84 }; _Normal: { shearFactor: 0.76; width: 110; yOffset: 78 }; _Small: { shearFactor: 0.78; width: 100; yOffset: 70 }; _XLarge: { shearFactor: 0.72; width: 130; yOffset: 84 } } = ...

            Type declaration

            • readonly_Large: { shearFactor: 0.74; width: 120; yOffset: 84 }
              • readonlyshearFactor: 0.74
              • readonlywidth: 120
              • readonlyyOffset: 84
            • readonly_Normal: { shearFactor: 0.76; width: 110; yOffset: 78 }
              • readonlyshearFactor: 0.76
              • readonlywidth: 110
              • readonlyyOffset: 78
            • readonly_Small: { shearFactor: 0.78; width: 100; yOffset: 70 }
              • readonlyshearFactor: 0.78
              • readonlywidth: 100
              • readonlyyOffset: 70
            • readonly_XLarge: { shearFactor: 0.72; width: 130; yOffset: 84 }
              • readonlyshearFactor: 0.72
              • readonlywidth: 130
              • readonlyyOffset: 84

            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"

            AsylumMeetingPatientFled

            AsylumMeetingPatientFled: boolean = false

            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.

            AudioBackgroundMusic

            AudioBackgroundMusic: HTMLAudioElement & { _playState?: { location?: number } } = ...

            AudioDialog

            AudioDialog: HTMLAudioElement = ...
            @deprecated

            AudioList

            AudioList: AudioEffect[] = ...

            constAudioSupportedMusicFormats

            AudioSupportedMusicFormats: string[] = ...

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

            BackgroundSelectionBackground

            BackgroundSelectionBackground: string = "Introduction"

            BackgroundSelectionIndex

            BackgroundSelectionIndex: number = 0

            BackgroundSelectionList

            BackgroundSelectionList: string[] = []

            BackgroundSelectionOffset

            BackgroundSelectionOffset: number = 0

            BackgroundSelectionReturnScreen

            BackgroundSelectionReturnScreen: never
            @deprecated

            BackgroundSelectionSelect

            BackgroundSelectionSelect: string = ...

            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

            BlindFlashQueue

            BlindFlashQueue: boolean = false

            Whether a blindfold removal screen flash should potentially be performed the next time the player character is refreshed. Generally assigned by InventoryRemove.

            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

            The appearance the character we're editing had when entering the screen.

            Must stay valid for as long as the screen is up.

            CharacterAppearanceCloth

            CharacterAppearanceCloth: Item = null

            CharacterAppearanceColorPickerGroupName

            CharacterAppearanceColorPickerGroupName: AssetGroupName

            CharacterAppearanceColorPickerRefreshTimer

            CharacterAppearanceColorPickerRefreshTimer: any = undefined

            CharacterAppearanceForceUpCharacter

            CharacterAppearanceForceUpCharacter: number = -1

            CharacterAppearanceGroups

            CharacterAppearanceGroups: AssetGroup[] = []

            The list of all customizable groups

            CharacterAppearanceHeaderText

            CharacterAppearanceHeaderText: string = ""

            CharacterAppearanceHeaderTextTime

            CharacterAppearanceHeaderTextTime: number = 0

            CharacterAppearanceInProgressBackup

            CharacterAppearanceInProgressBackup: string = undefined

            Backup of the current appearance; used when canceling out of loading a wardrobe outfit.

            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

            The character we're editing the appearance of.

            Must stay valid for as long as the screen is up.

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

            CharacterGetCurrentHandlers

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

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

            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: { Access: ServerChatRoomRole[]; Admin: number[]; Background: string; Ban: number[]; BlockCategory: ServerChatRoomBlockCategory[]; Custom?: ServerChatRoomCustomData; Description: string; Game: ServerChatRoomGame; Language: ServerChatRoomLanguage; Limit: number; MapData: ServerChatRoomMapData; Name: string; Space?: ServerChatRoomSpace; Visibility: ServerChatRoomRole[]; Whitelist: number[] } = null

            Type declaration

            ChatAdminDefaultLanguage

            ChatAdminDefaultLanguage: ServerChatRoomLanguage = "EN"

            ChatAdminGameList

            ChatAdminGameList: ServerChatRoomGame[] = ...

            ChatAdminLanguageList

            ChatAdminLanguageList: ServerChatRoomLanguage[] = ServerChatRoomSupportedLanguages
            @deprecated

            ChatAdminMessage

            ChatAdminMessage: string = ""

            ChatAdminMode

            ChatAdminMode: update | create = null

            ChatAdminPreviewBackgroundMode

            ChatAdminPreviewBackgroundMode: boolean = false

            ChatAdminRoomCustomizationAudio

            ChatAdminRoomCustomizationAudio: HTMLAudioElement = null

            ChatAdminRoomCustomizationBackground

            ChatAdminRoomCustomizationBackground: string = "Sheet"

            ChatAdminRoomCustomizationCurrent

            ChatAdminRoomCustomizationCurrent: ServerChatRoomCustomData = null

            constChatAdminRoomCustomizationIDs

            ChatAdminRoomCustomizationIDs: { cancelButton: string; clearButton: string; grid: string; imageFillModeSelect: string; imageFilterInput: string; imageURLInput: string; main: string; musicSyncCheckbox: string; musicURLInput: string; openLibraryButton: string; previewButton: string; saveButton: string; subscreen: string; title: string } = ...

            Type declaration

            • cancelButton: string
            • clearButton: string
            • grid: string
            • imageFillModeSelect: string
            • imageFilterInput: string
            • imageURLInput: string
            • main: string
            • musicSyncCheckbox: string
            • musicURLInput: string
            • openLibraryButton: string
            • previewButton: string
            • saveButton: string
            • subscreen: string
            • title: string

            constChatAdminRoomCustomizationImageFormats

            ChatAdminRoomCustomizationImageFormats: string[] = ...

            ChatAdminRoomCustomizationIsPreviewing

            ChatAdminRoomCustomizationIsPreviewing: boolean = false

            ChatAdminRoomCustomizationMode

            ChatAdminRoomCustomizationMode: MusicLibrary = null

            ChatAdminRoomCustomizationMusicLibrary

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

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

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

            The chat room screen background

            It shall never be set, as doing so will break the code actually checking for the room data's background.

            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

            ChatRoomChatLog

            ChatRoomChatLog: ChatRoomChatLogEntry[] = []

            constChatRoomCustomization

            ChatRoomCustomization: Readonly<{ Always: 3; DisabledByDefault: 1; EnabledByDefault: 2; Never: 0 }> = ...

            ChatRoomCustomized

            ChatRoomCustomized: boolean = false

            Whether the chat room customization settings are user-enabled or not

            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

            constChatRoomLastFriendRequest

            ChatRoomLastFriendRequest: Map<string, number> = ...

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

            ChatRoomMapViewAudibilityMask

            ChatRoomMapViewAudibilityMask: boolean[] = []

            ChatRoomMapViewBaseMovementSpeed

            ChatRoomMapViewBaseMovementSpeed: number = 200

            ChatRoomMapViewCharacterMap

            ChatRoomMapViewCharacterMap: Map<number, Character> = ...

            ChatRoomMapViewEditBackup

            ChatRoomMapViewEditBackup: ServerChatRoomMapData[] = []

            ChatRoomMapViewEditMode

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

            ChatRoomMapViewEditObject

            ChatRoomMapViewEditObject: ChatRoomMapDoodad | ChatRoomMapEffectStaticLighting = null

            ChatRoomMapViewEditRange

            ChatRoomMapViewEditRange: number = 1

            ChatRoomMapViewEditSelection

            ChatRoomMapViewEditSelection: number[] = []

            ChatRoomMapViewEditStarted

            ChatRoomMapViewEditStarted: boolean = false

            ChatRoomMapViewEditSubMode

            ChatRoomMapViewEditSubMode: | ChatRoomMapTileType | ChatRoomMapObjectType = ""

            constChatRoomMapViewEffectList

            ChatRoomMapViewEffectList: ChatRoomMapEffectStaticLighting[] = ...

            A list of predefined lighting effects. May be replaced with a color picker in the future.

            constChatRoomMapViewEffectStartID

            ChatRoomMapViewEffectStartID: 10 = 10

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

            constChatRoomMapViewObjectList

            ChatRoomMapViewObjectList: ChatRoomMapObject[] = ...

            ChatRoomMapViewObjectLookup

            ChatRoomMapViewObjectLookup: Record<number, 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: Uint16Array = null

            constChatRoomMapViewTileList

            ChatRoomMapViewTileList: ChatRoomMapTile[] = ...

            ChatRoomMapViewTileLookup

            ChatRoomMapViewTileLookup: Record<number, 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: { Access: ServerChatRoomRole[]; Admin: number[]; Background: string; Ban: number[]; BlockCategory: ServerChatRoomBlockCategory[]; Custom?: ServerChatRoomCustomData; Description: string; Game: ServerChatRoomGame; Language: ServerChatRoomLanguage; Limit: number; MapData?: ServerChatRoomMapData; Name: string; Space?: ServerChatRoomSpace; Visibility: ServerChatRoomRole[]; Whitelist: number[] } = null

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


            Type declaration

            ChatRoomNewRoomToUpdateTimer

            ChatRoomNewRoomToUpdateTimer: number = 0

            ChatRoomOwnershipOption

            ChatRoomOwnershipOption: ChatRoomOwnershipEvent = null

            ChatRoomQuestGiven

            ChatRoomQuestGiven: number[] = []

            ChatRoomResizeManager

            ChatRoomResizeManager: { atStart: boolean; ChatLogScrolledToEnd: boolean; ChatRoomResizeEvent: () => void; ChatRoomResizeEventsEnd: () => void; ChatRoomScrollPercentage: number; 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

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

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

            • ChatRoomScrollPercentage: number
            • 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: StruggleOnlineData = null

            ChatRoomTargetMemberNumber

            ChatRoomTargetMemberNumber: number = -1

            ChatRoomTopMenuBuiltSig

            ChatRoomTopMenuBuiltSig: string = ""

            A stringified, \0-joined list of menu button names. Used for determining whether the top menubar needs to be refreshed.

            ChatRoomViews

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

            The list of chat room views

            constChatRoomVisibilityMode

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

            ChatSearchBackground

            ChatSearchBackground: string = "Introduction"

            Background image

            ChatSearchBackgroundTagList

            ChatSearchBackgroundTagList: BackgroundTag[] = []

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

            ChatSearchCurrentRoomSpaceIndex

            ChatSearchCurrentRoomSpaceIndex: number = 0

            ChatSearchDialogElement

            ChatSearchDialogElement: HTMLDialogElement

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

            Use ()

            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

            ChatSearchRoomsPerColumn

            ChatSearchRoomsPerColumn: number = 8

            ChatSearchRoomsPerPage

            ChatSearchRoomsPerPage: number = ...

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

            ChatSearchRoomsPerRow

            ChatSearchRoomsPerRow: number = 3

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

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

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

            ClubCardLiabilityLimit

            ClubCardLiabilityLimit: 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 = "CollegeClass1"

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

            ColorCanvas

            ColorCanvas: CanvasRenderingContext2D

            Temporary CPU-based canvas (for colorization)

            ColorPicker

            ColorPicker: { defaultShape: readonly [number, number, number, number]; eventListeners: { blurColor: (this, ev) => void; changeRadio: (this, ev) => void; clickComboBox: (this, ev) => void; clickCopy: (this, ev) => void; clickExit: (this, ev) => void; clickPaste: (this, ev) => void; clickReset: (this, ev) => void; clickSaveColor: (this, ev) => void; focusColor: (this, ev) => void; focusComboLabel: (this, ev) => void; focusoutFieldset: (this, ev) => void; inputColor: (this, ev) => void; inputFieldset: (this, ev) => void; inputItemColor: (elem, ev) => any; keydownRadio: (this, ev) => void; pointerupRadio: (this, ev) => void }; ids: Readonly<{ root: color-picker }>; _getDropdownWidget: any; create: any; getColor: any; setColor: any; toggleDisabled: any } = ...

            Namespace for constructing and managing color pickers


            Type declaration

            • readonlydefaultShape: readonly [number, number, number, number]

              The default shape of the color picker screen

            • readonlyeventListeners: { blurColor: (this, ev) => void; changeRadio: (this, ev) => void; clickComboBox: (this, ev) => void; clickCopy: (this, ev) => void; clickExit: (this, ev) => void; clickPaste: (this, ev) => void; clickReset: (this, ev) => void; clickSaveColor: (this, ev) => void; focusColor: (this, ev) => void; focusComboLabel: (this, ev) => void; focusoutFieldset: (this, ev) => void; inputColor: (this, ev) => void; inputFieldset: (this, ev) => void; inputItemColor: (elem, ev) => any; keydownRadio: (this, ev) => void; pointerupRadio: (this, ev) => void }
              • blurColor: (this, ev) => void
              • changeRadio: (this, ev) => void

                Load a saved color or revert back to the item's initial color

                  • (this, ev): void
                  • Parameters

                    • this: HTMLInputElement
                    • ev: Event

                    Returns void

              • clickComboBox: (this, ev) => void

                Click listener for opening the saved color menu.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • clickCopy: (this, ev) => void

                Copy the current color.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • clickExit: (this, ev) => void

                Exit the screen while triggering a save.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • clickPaste: (this, ev) => void

                Paste the current color.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • clickReset: (this, ev) => void

                Revert to the item's default color and opacity.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • clickSaveColor: (this, ev) => void

                Save the current RGB color to the player's saved color list

                  • (this, ev): void
                  • Parameters

                    • this: HTMLButtonElement
                    • ev: PointerEvent

                    Returns void

              • focusColor: (this, ev) => void
                  • (this, ev): void
                  • Parameters

                    • this: HTMLInputElement
                    • ev: FocusEvent

                    Returns void

              • focusComboLabel: (this, ev) => void

                Blur the label children upon receiving focus

                  • (this, ev): void
                  • Parameters

                    • this: HTMLElement
                    • ev: FocusEvent

                    Returns void

              • focusoutFieldset: (this, ev) => void

                Focusout listener for the saved color menu. Automatically closes the menu upon losing focus.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLFieldSetElement
                    • ev: FocusEvent

                    Returns void

              • inputColor: (this, ev) => void
              • inputFieldset: (this, ev) => void

                Perform a color or opacity change originating from manually dispatched events by the underlying inputs. Execute the logic on the fieldset because the states of the underlying inputs are very strongly intertwined.

                See ColorPicker.blurColor.inputItemColor for the (default) callback responsible for coupling the input changes to ItemColor... variable states.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLFieldSetElement
                    • ev: Event

                    Returns void

              • inputItemColor: (elem, ev) => any

                The default input listener responsible for coupling any slider input changes to the states of ColorPicker... variables.

                  • (elem, ev): any
                  • Parameters

                    • elem: HTMLFieldSetElement
                    • ev: CustomEvent<{ source: hue | opacity | output | tint }>

                    Returns any

              • keydownRadio: (this, ev) => void

                Ensure that Enter and Space key presses close the saved color menu while focused.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLInputElement
                    • ev: KeyboardEvent

                    Returns void

              • pointerupRadio: (this, ev) => void

                Ensure that mouse clicks close the saved color menu. Put this here rather than in change in order to prevent keyboard navigation from auto-closing the menu upon triggering a change.

                  • (this, ev): void
                  • Parameters

                    • this: HTMLInputElement
                    • ev: PointerEvent

                    Returns void

            • readonlyids: Readonly<{ root: color-picker }>

              Element IDs for the ColorPicker namespace.

            • _getDropdownWidget: function
              • _getDropdownWidget(id, optionList): HTMLElement


              • Parameters

                • id: string
                • optionList: readonly { label: string; value: string }[]

                Returns HTMLElement

            • create: function
              • create(id, options): HTMLFieldSetElement

              • Construct a new fieldset with the main color input elements


                Parameters

                Returns HTMLFieldSetElement

                • The newly created color picker fieldset containing all interactive sliders and such
            • getColor: function

              • Get the color and opacity of the passed color picker screen


                Parameters

                Returns ItemColorExitState

            • setColor: function
              • setColor(root, value, options): void

              • Set the color and/or opacity of the passed color picker screen


                Parameters

                • root: ElementOrId

                  The color picker screen or its ID

                • value: ColorPickerColorInput

                  The passed color (be it as string or HSV object) and opacity

                • options: { dispatch?: boolean; overrideEditOpacity?: boolean } = null
                  • optionaldispatch: boolean
                  • optionaloverrideEditOpacity: boolean

                Returns void

            • toggleDisabled: function
              • toggleDisabled(root, force): boolean

              • Toggle the disabled state of the passed color picker using Element.toggleAttribute-like semantics.


                Parameters

                • root: ElementOrId

                  The color picker screen or its ID

                • force: boolean = null

                  Toggle the disabled attributes if unspecified or, if a boolean is passed, force the provided value

                Returns boolean

                • The new disabled state

            ColorPickerInitOptions

            ColorPickerInitOptions: Readonly<ColorPickerInitOptions> = null

            Parameters to be passed to ColorPickerLoad. Do not modify directly; use ColorPickerInit instead.

            constColorPickerNumSaved

            ColorPickerNumSaved: 18 = 18

            The number of colors a player is allowed to save (see DefaultSavedColors and PlayerCharacter.SavedColors)

            CombinationPadlockBlindCombinationOffset

            CombinationPadlockBlindCombinationOffset: number = null

            CombinationPadlockCombinationLastValue

            CombinationPadlockCombinationLastValue: string = ""

            CombinationPadlockLoaded

            CombinationPadlockLoaded: boolean = false

            CombinationPadlockNewCombinationLastValue

            CombinationPadlockNewCombinationLastValue: string = ""

            CombinationPadlockPlayerIsBlind

            CombinationPadlockPlayerIsBlind: boolean = false

            CommandText

            CommandText: TextCache = null

            Commands

            Commands: ICommand[] = []

            CommandsChangelog

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

            Type declaration

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

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

                • (root, startID, stopID): 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, header, level) => HTMLButtonElement

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

                • (id, header, level): HTMLButtonElement

                • Parameters

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

                  Returns HTMLButtonElement

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

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

                • (id, header, level): HTMLButtonElement

                • Parameters

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

                  Returns HTMLButtonElement

            • _ParseA: (root) => void

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

                • (root): void
                • Parameters

                  • root: Element

                  Returns void

            • _ParseHeader: (root, id, href, headerLevel, headerPrefix) => 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, id, href, headerLevel, headerPrefix): void
                • Parameters

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

                  Returns void

            • _ParseImg: (root) => void

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

                • (root): void
                • Parameters

                  • root: Element

                  Returns void

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

              Set all translation-sensitive text in the changelog.

                • (changelog): Promise<void>
                • Parameters

                  • changelog: Element

                  Returns Promise<void>

            • Parse: (innerHTML, options) => 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
                • (innerHTML, options): 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

                  • The newly created changelog
            • Publish: function
              • Publish(innerHTML, options): 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: { _BuildDelete: (id) => HTMLButtonElement; _BuildToggle: (id, expanded) => HTMLButtonElement; Complete: () => void; ShowFor: (commands, options) => HTMLDivElement; ShowForPartial: (low) => void; _BuildCommand: any; _BuildHelp: any; _GetArgumentTranslated: any; _GetDescription: any } = ...

            Type declaration

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

                  • id: any

                  Returns HTMLButtonElement

            • _BuildToggle: (id, expanded) => HTMLButtonElement
                • (id, expanded): HTMLButtonElement

                • Parameters

                  • id: string
                  • expanded: boolean

                  Returns HTMLButtonElement

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

            • ShowFor: (commands, options) => HTMLDivElement

              Prints out the help for commands

                • (commands, options): 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) => void

              Prints out the help for commands with tags that include low

                • (low): void

                • Parameters

                  • low: string

                    lower case search keyword for tags

                  Returns void

                  • Nothing
            • _BuildCommand: function

            • _BuildHelp: function
              • _BuildHelp(commands, options): HTMLDivElement


              • Parameters

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

                Returns HTMLDivElement

            • _GetArgumentTranslated: function
              • _GetArgumentTranslated(arg): string

            • _GetDescription: function
              • _GetDescription(command, translationTag): string


              • Parameters

                • command: ICommand
                • optionaltranslationTag: string = command.Tag

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

            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 eligible assets.

            Eligible 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; DecodeToHTML: (description) => (string | HTMLElement)[]; Encode: (description) => string; ExtendedDescriptionMarker: ; Pattern: RegExp; PatternASCII: RegExp } = ...

            Type declaration

            • Decode: (description) => 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.

                • (description): string

                • Parameters

                  • description: string

                    The to-be decoded string

                  Returns string

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

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

                • (description): (string | HTMLElement)[]

                • Parameters

                  • description: string

                    The to-be decoded string

                  Returns (string | HTMLElement)[]

                  • The decoded string as a list of nodes
            • Encode: (description) => 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

                • (description): string

                • Parameters

                  • description: string

                    The initial length <=398 string of UTF8 characters

                  Returns string

                  • The length <=200 string of UTF16-encoded UTF8 characters
            • 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).

            constCraftingEffectsDefaultMaximumEffects

            CraftingEffectsDefaultMaximumEffects: 2 = 2

            constCraftingEffectsDefaultMaximumStack

            CraftingEffectsDefaultMaximumStack: 2 = 2

            constCraftingEffectsPrerequisite

            CraftingEffectsPrerequisite: Record<CraftingPropertyType, { isDisabled?: (craft) => boolean; max?: number }> = ...

            A record mapping crafting property names to functions that return a boolean indicating whether the property can increase

            CraftingElements

            CraftingElements: { _PropertyListItem: (id, property) => HTMLLIElement; _SearchCache: Map<AssetGroupItemName | ALL, readonly HTMLOptionElement[]> } = ...

            Type declaration

            • _PropertyListItem: (id, property) => HTMLLIElement
                • (id, property): HTMLLIElement
            • _SearchCache: Map<AssetGroupItemName | ALL, readonly HTMLOptionElement[]>

            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; layeringButton: crafting-layering-button; layeringInput: crafting-layering-input; layeringLabel: crafting-layering-label; leftPanel: crafting-left-panel; 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; 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
              • readonlylayeringButton: crafting-layering-button
              • readonlylayeringInput: crafting-layering-input
              • readonlylayeringLabel: crafting-layering-label
              • readonlyleftPanel: crafting-left-panel
              • 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
              • readonlyundressButton: crafting-undress-button
              • readonlyuploadButton: crafting-upload-button

              CraftingJSON

              CraftingJSON: { createDialog: (parent) => { dialog: HTMLDialogElement; root: HTMLDivElement }; createRadio: (craft, tooltipID, options) => HTMLElement; createRadioGroups: (items, tooltipContainer) => HTMLFieldSetElement[]; decode: (craftsJSON) => ParsingOutput; encode: (crafts) => DataEncoded; eventListeners: { blurTooltip: (this) => void; changeFile: (this) => Promise<void>; clickAccept: (this, ev) => void; clickCancel: (this) => void; clickError: (this) => void; clickSelectNew: (this) => void; clickSelectOld: (this) => void; dragend: (this, ev) => void; dragover: (this, ev) => void; drop: (this, ev) => void; focusSearch: (this) => void; focusTooltip: (this) => void; hoverinTooltip: (this) => void; hoveroutTooltip: (this) => void; inputFile: (this) => void; inputSearch: (this) => void }; getDragListeners: () => { dragenter: (this, ev) => void; dragleave: (this, ev) => void; dragstart: (this, ev) => void } } = ...

              Namespace for encoding & decoding crafting inventories to and from JSON


              Type declaration

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

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

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

                    • parent: Node = null

                      The parent node, if any

                    Returns { dialog: HTMLDialogElement; root: HTMLDivElement }

                    • dialog: HTMLDialogElement
                    • root: HTMLDivElement
              • createRadio: (craft, tooltipID, options) => HTMLElement

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

                  • (craft, tooltipID, options): 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, tooltipContainer) => HTMLFieldSetElement[]

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

                  • (items, tooltipContainer): HTMLFieldSetElement[]
              • decode: (craftsJSON) => ParsingOutput

                Decode the passed stringified object of crafting JSON data


                  • Parameters

                    • craftsJSON: string

                      The stringified and to-be decoded crafted JSON data

                    Returns ParsingOutput

                    • The decoded crafted JSON data
              • encode: (crafts) => DataEncoded

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

              • eventListeners: { blurTooltip: (this) => void; changeFile: (this) => Promise<void>; clickAccept: (this, ev) => void; clickCancel: (this) => void; clickError: (this) => void; clickSelectNew: (this) => void; clickSelectOld: (this) => void; dragend: (this, ev) => void; dragover: (this, ev) => void; drop: (this, ev) => void; focusSearch: (this) => void; focusTooltip: (this) => void; hoverinTooltip: (this) => void; hoveroutTooltip: (this) => void; inputFile: (this) => void; inputSearch: (this) => void }
                • blurTooltip: (this) => void
                    • (this): void
                    • Parameters

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLInputElement

                      Returns Promise<void>

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

                      • this: HTMLElement
                      • ev: Event

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement
                      • ev: DragEvent

                      Returns void

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

                      • this: HTMLElement
                      • ev: DragEvent

                      Returns void

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

                      • this: HTMLElement
                      • ev: DragEvent

                      Returns void

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

                      • this: HTMLInputElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLElement

                      Returns void

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

                      • this: HTMLInputElement

                      Returns void

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

                      • this: HTMLInputElement

                      Returns void

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

                Get the event listeners for drag and dropping

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

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

                          • this: HTMLElement
                          • ev: DragEvent

                          Returns void

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

                          • this: HTMLElement
                          • ev: DragEvent

                          Returns void

                    • dragstart: (this, ev) => void
                        • (this, ev): 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.

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

              Map crafting properties to their respective validation function.

              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.

              CraftingSlots

              CraftingSlots: { createScreen: (options) => { observer: IntersectionObserver; screen: HTMLElement }; eventListeners: { changeModeSelect: (this, ev) => void; clickDownload: (this, ev) => void; clickExit: (this, ev) => void; clickModeAcceptSlotDelete: (this, ev) => void; clickModeAcceptSlotReorder: (this, ev) => void; clickSectionCollapse: (this, ev) => void; clickSlot: (this, ev) => void; clickUpload: (this, ev) => void; dragend: (this, ev) => void; dragenter: (this, ev) => void; dragleave: (this, ev) => void; dragover: (this, ev) => void; dragstart: (this, ev) => void; drop: (this, ev) => void; inputSearch: (this, ev) => void; keydownSearch: (this, ev) => void }; Exit: (allowDeselect) => boolean; ids: { dragImage: crafting-slot-drag-image; root: crafting-slot-screen }; KeyDown: KeyboardEventListener; Load: ScreenLoadHandler; modeData: CraftingSlotModeData; Paste: ClipboardEventListener; Resize: ScreenResizeHandler; Unload: VoidHandler; modeKeys: any } = ...

              Namespace for managing the various crafting Slots-related modes


              Type declaration

              • createScreen: (options) => { observer: IntersectionObserver; screen: HTMLElement }

                Construct a crafting Slots-esque screen

                  • (options): { observer: IntersectionObserver; screen: HTMLElement }

                  • Parameters

                    Returns { observer: IntersectionObserver; screen: HTMLElement }

                    The screen and its intersection observer as used for the nav bar

                    • observer: IntersectionObserver
                    • screen: HTMLElement
              • readonlyeventListeners: { changeModeSelect: (this, ev) => void; clickDownload: (this, ev) => void; clickExit: (this, ev) => void; clickModeAcceptSlotDelete: (this, ev) => void; clickModeAcceptSlotReorder: (this, ev) => void; clickSectionCollapse: (this, ev) => void; clickSlot: (this, ev) => void; clickUpload: (this, ev) => void; dragend: (this, ev) => void; dragenter: (this, ev) => void; dragleave: (this, ev) => void; dragover: (this, ev) => void; dragstart: (this, ev) => void; drop: (this, ev) => void; inputSearch: (this, ev) => void; keydownSearch: (this, ev) => void }
                • changeModeSelect: (this, ev) => void

                  Switch mooooode

                    • (this, ev): void
                    • Parameters

                      • this: HTMLSelectElement
                      • ev: Event

                      Returns void

                • clickDownload: (this, ev) => void

                  Download/export all crafts to JSON

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickExit: (this, ev) => void

                  Exit. Just exit.

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickModeAcceptSlotDelete: (this, ev) => void

                  Accept a mode specific change for the Delete mode

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickModeAcceptSlotReorder: (this, ev) => void

                  Accept a mode specific change for the Reorder mode

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickSectionCollapse: (this, ev) => void

                  Collapse a section/page

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickSlot: (this, ev) => void

                  Listener for the Slot crafting mode; opens the Name mode for item creation/modification.

                  See CraftingSlots._getMultiSelectListeners for the Delete & Reorder analog.

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • clickUpload: (this, ev) => void

                  Open the crafting JSON import modal

                    • (this, ev): void
                    • Parameters

                      • this: HTMLButtonElement
                      • ev: PointerEvent

                      Returns void

                • dragend: (this, ev) => void

                  Clear any remaining drop target markers

                    • (this, ev): void
                    • Parameters

                      • this: HTMLElement
                      • ev: DragEvent

                      Returns void

                • dragenter: (this, ev) => void

                  Set the drop target marker

                    • (this, ev): void
                    • Parameters

                      • this: HTMLLIElement
                      • ev: DragEvent

                      Returns void

                • dragleave: (this, ev) => void

                  Clear the drop target marker

                    • (this, ev): void
                    • Parameters

                      • this: HTMLLIElement
                      • ev: DragEvent

                      Returns void

                • dragover: (this, ev) => void

                  Add the move dropeffect whole drag-and-dropping

                    • (this, ev): void
                    • Parameters

                      • this: HTMLFieldSetElement
                      • ev: DragEvent

                      Returns void

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

                      • this: HTMLDivElement
                      • ev: DragEvent

                      Returns void

                • drop: (this, ev) => void

                  Drop the dragged content, reordering the crafted item list

                    • (this, ev): void
                    • Parameters

                      • this: HTMLFieldSetElement
                      • ev: DragEvent

                      Returns void

                • inputSearch: (this, ev) => void

                  Hide/show crafts based on whether their text content matches the search value

                    • (this, ev): void
                    • Parameters

                      • this: HTMLInputElement
                      • ev: Event

                      Returns void

                • keydownSearch: (this, ev) => void

                  Blur the input search and uncollapse + scroll to any matched craft

                    • (this, ev): void
                    • Parameters

                      • this: HTMLInputElement
                      • ev: KeyboardEvent

                      Returns void

              • Exit: (allowDeselect) => boolean
                  • (allowDeselect): boolean

                  • Parameters

                    • optionalallowDeselect: boolean = true

                      Whether exit calls are allowed to clear the current selection in Delete and Reorder, rather than always exiting the screen

                    Returns boolean

                    Whether a deselect-esque action was actually performed

              • readonlyids: { dragImage: crafting-slot-drag-image; root: crafting-slot-screen }
                • readonlydragImage: crafting-slot-drag-image
                • readonlyroot: crafting-slot-screen
              • KeyDown: KeyboardEventListener
              • Load: ScreenLoadHandler
              • readonlymodeData: CraftingSlotModeData

                An object for registering all crafting slot modes

              • Paste: ClipboardEventListener
              • Resize: ScreenResizeHandler
              • Unload: VoidHandler
              • get modeKeys(): ReadonlySet<keyof CraftingSlotModeData>

                Get a set of all registered crafting slot modes.

              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

              CraftingValidationRecord

              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"

              constCreationIDs

              CreationIDs: Readonly<{ actions: creation-actions; createButton: creation-create-button; fields: creation-fields; form: creation-form; importCheckbox: creation-import-checkbox; importRow: creation-import-row; inputCharacter: InputCharacter; inputEmail: InputEmail; inputName: InputName; inputPassword1: InputPassword1; inputPassword2: InputPassword2; loginButton: creation-login-button; loginRow: creation-login-row; screen: creation-screen }> = ...

              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 | Pandora | BackgroundSelection | Cheat | Creation | Disclaimer | FriendList | InformationSheet | Login | OnlineProfile | PasswordReset | Preference | Relog | Title | NPCCollaring | NPCSlaveAuction | NPCWedding | PlayerCollaring | PlayerMistress | SarahIntro | Chess | ChestLockpick | ClubCard | ClubCardBuilder | DojoStruggle | GetUp | HorseWalk | Kidnap | KinkyDungeon | MagicBattle | MagicPuzzle | MaidCleaning | MaidDrinks | PlayerAuction | PuppyWalker | RhythmGame | SlaveAuction | Tennis | Therapy | WheelFortune | AdvancedRule | ChatAdmin | ChatAdminRoomCustomization | ChatBlockItem | ChatRoom | ChatSearch | ChatSelect | ForbiddenWords | 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 | MagicSchoolFindsAround | MaidQuarters | MainHall | Management | MovieStudio | Nursery | PandoraPrison | Photographic | Platform | PlatformIntro | PlatformDialog | PlatformProfile | Poker | Prison | Private | PrivateBed | PrivateRansom | Sarah | Shibari | Shop | Shop2 | SlaveMarket | Stable

              CurrentScreenFunctions

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

              The default saved custom colors (see GetDefaultSavedColors)

              DialogActivity

              DialogActivity: ItemActivity[] = []

              The list of available activities for the selected group.

              DialogButtonDisabledTester

              DialogButtonDisabledTester: RegExp = ...

              DialogColorSelect

              DialogColorSelect: `#${string}` = null

              The default color to use when applying items.

              DialogExpressionPreviousMode

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

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


              Type declaration

              DialogExtendedMessage

              DialogExtendedMessage: string = ""

              DialogFacialExpressionsSelectedBlindnessLevel

              DialogFacialExpressionsSelectedBlindnessLevel: number = 2

              DialogFavoriteStateDetails

              DialogFavoriteStateDetails: FavoriteState[] = ...

              DialogFocusGroup

              DialogFocusGroup: { Create: any } = ...

              Type declaration

              • Create: function
                • Create(id, listener, options): HTMLElement


                • Parameters

                  • id: string

                    The ID for the to-be created focus group grid

                  • listener: (this, ev) => 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 = ...

                DialogFocusItemName

                DialogFocusItemName: string = null

                The group + name of the selected item. Only here so in case of emergency we can still unload the extended screen properly

                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.

                DialogLeaveDueToItem

                DialogLeaveDueToItem: boolean = false

                DialogLentLockpicks

                DialogLentLockpicks: boolean = false

                DialogMenuButton

                DialogMenuButton: DialogMenuButtonType[] = []

                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.

                DialogTextDefaultDuration

                DialogTextDefaultDuration: number = 5000

                The duration temporary status message show up for, in ms

                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"

                constDisclaimerIDs

                DisclaimerIDs: Readonly<{ accept: disclaimer-accept; buttons: disclaimer-buttons; return: disclaimer-return; screen: disclaimer-screen; text: disclaimer-text }> = ...

                constDisclaimerVersion

                DisclaimerVersion: 1 = 1

                DojoStruggleBackground

                DojoStruggleBackground: string = "Shibari"

                DojoStruggleImpulse

                DojoStruggleImpulse: number = 0

                DojoStrugglePosition

                DojoStrugglePosition: number = 450

                DojoStruggleRope

                DojoStruggleRope: number[] = []

                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: () => void[] = []

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

                DrawScreenFlashStrength

                DrawScreenFlashStrength: number = 140

                DrawScreenFlashTime

                DrawScreenFlashTime: number = 0

                DrawSkipVFX

                DrawSkipVFX: { evaluate: (module, screen) => boolean; register: (...args) => void } = ...

                Namespace for managing the skipping of VFX drawing


                Type declaration

                • evaluate: (module, screen) => boolean

                  Evaluate whether VFX drawing must be skipped for the passed module and screen

                    • (module, screen): boolean

                    • Parameters

                      Returns boolean

                      Whether VFX drawing must be skipped

                • register: (...args) => void

                  Register either a function or a module and/or screen name for which VFX drawing must be skipped

                    • (...args): void
                    • Parameters

                      • rest...args: (PartialScreenSpecifier | (module, screen) => boolean)[]

                        The to-be registered functions/screen-/module names

                      Returns void

                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; MapSwim: MapSwim; 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; Vibrating: Vibrating; VR: VR; VRAvatars: VRAvatars; 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.

                • readonlyMapSwim: MapSwim

                  If set, this effect will make a player move at full speed through water tiles.

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

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

                • readonlyVR: VR
                • readonlyVRAvatars: VRAvatars
                • 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, onChange, options, htmlOptions) => HTMLInputElement; CreateLabelled: (id, label, onChange, options, htmlOptions) => HTMLLabelElement } = ...

                Namespace for creating DOM checkboxes.


                Type declaration

                • Create: (id, onChange, options, htmlOptions) => HTMLInputElement

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

                    • (id, onChange, options, htmlOptions): HTMLInputElement

                    • Parameters

                      • optionalid: string = undefined

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

                      • optionalonChange: (this, ev) => any = undefined

                        The change event listener to-be fired upon checkbox clicks

                        • optionaloptions: Options = undefined

                          High level options for the to-be created checkbox

                        • optionalhtmlOptions: Partial<Record<checkbox, Omit<HTMLOptions<any>, tag>>> = undefined

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

                        Returns HTMLInputElement

                  • CreateLabelled: (id, label, onChange, options, htmlOptions) => HTMLLabelElement

                    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, label, onChange, options, htmlOptions): HTMLLabelElement

                      • Parameters

                        • id: string = null

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

                        • label: string | Node | HTMLOptionsUnion

                          The label of the checkbox

                        • onChange: (this, ev) => 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<checkbox | label | container, Omit<HTMLOptions<any>, tag>>> = null

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

                          Returns HTMLLabelElement

                    constElementNoParent

                    ElementNoParent: 0 = 0

                    ElementSwipe

                    ElementSwipe: { setListeners: any }

                    A namespace for adding touch-based swiping behavior to elements


                    Type declaration

                    • setListeners: function
                      • setListeners(elem, options): void

                      • Parameters

                        • elem: HTMLElement
                        • options: Options = null

                        Returns void

                    ElementText

                    ElementText: { CreateNote: (contents, opts) => HTMLParagraphElement } = ...

                    Namespace for creating text-based elements


                    Type declaration

                    • CreateNote: (contents, opts) => HTMLParagraphElement

                      Creates a paragraph node, optionally describing another element

                        • (contents, opts): HTMLParagraphElement

                        • Parameters

                          • contents: string
                          • opts: { describes?: string | HTMLElement } = undefined
                            • optionaldescribes: string | HTMLElement

                          Returns HTMLParagraphElement

                    ElementUnpackIDs

                    ElementUnpackIDs: { fromAttribute: <T>(element, attrName, options) => T[]; fromList: <T>(list, options) => T[]; fromString: <T>(string, options) => T[] }

                    Namespace for unpacking ID lists into their corresponding elements.

                    Used retrieving elements referenced in attributes such as aria-controls and aria-owns, which consist of space-separated element IDs.


                    Type declaration

                    • fromAttribute: <T>(element, attrName, options) => T[]

                      Grab an attribute containing a space-separated stringified ID list and convert them into their corresponding elements.

                        • <T>(element, attrName, options): T[]

                        • Parameters

                          • element: Element

                            The element

                          • attrName: string

                            The name of the attribute with the element IDs

                          • optionaloptions: Options<T> = null

                            Further options

                          Returns T[]

                          The list of elements (may or may not be shorter than the ID list)

                    • fromList: <T>(list, options) => T[]

                      Convert a list of IDs into their corresponding elements.

                        • <T>(list, options): T[]

                        • Parameters

                          • list: readonly string[]

                            The list of element IDs

                          • optionaloptions: Options<T> = null

                            Further options

                          Returns T[]

                          The list of elements (may or may not be shorter than the ID list)

                    • fromString: <T>(string, options) => T[]

                      Convert a space-separated stringified ID list into their corresponding elements.

                        • <T>(string, options): T[]

                        • Parameters

                          • string: string

                            The stringified list of comma-separated element IDs

                          • optionaloptions: Options<T> = null

                            Further options

                          Returns T[]

                          The list of elements (may or may not be shorter than the ID list)

                    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

                    FriendListActionDefinitions

                    FriendListActionDefinitions: Record<string, FriendListActionDefinition> = ...

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

                    constFriendListIDs

                    FriendListIDs: Readonly<{ beepFooter: friend-list-beep-footer; beepList: friend-list-beep-dialog; beepTextArea: friend-list-beep-textarea; btnAddFriend: friend-list-button-add-friend; 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

                    constFriendListTypeData

                    FriendListTypeData: Record<FriendListRelationType, { Caption?: string; Icon: string; SortingPriority: number }> = ...

                    Note that the Caption field is only initialized in FriendListLoad..

                    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: NonNullable<0 | 1 | 2 | 3 | 4 | 5 | 6> = 0

                    FuturisticTrainingBeltSpeechCharacterLimit

                    FuturisticTrainingBeltSpeechCharacterLimit: number = 25

                    FuturisticTrainingBeltSpeechPunishments

                    FuturisticTrainingBeltSpeechPunishments: string[] = ...

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

                    GamblingAppearancePlayer

                    GamblingAppearancePlayer: Item[] = ...

                    GamblingAppearanceSecond

                    GamblingAppearanceSecond: Item[] = ...

                    GamblingBackground

                    GamblingBackground: string = "Gambling"

                    GamblingFirstSub

                    GamblingFirstSub: NPCCharacter = ...

                    GamblingIllegalChange

                    GamblingIllegalChange: boolean = false

                    Sub Player lost Cloth although forbidden by Mistress

                    GamblingMoneyBet

                    GamblingMoneyBet: number = 0

                    Money Bet in Current Game

                    GamblingNpcDiceShown

                    GamblingNpcDiceShown: boolean = false

                    GamblingNpcDiceStack

                    GamblingNpcDiceStack: number[] = []

                    GamblingNpcSubState

                    GamblingNpcSubState: number = 0

                    Game-State of NPC

                    GamblingPlayerDiceShown

                    GamblingPlayerDiceShown: boolean = false

                    GamblingPlayerDiceStack

                    GamblingPlayerDiceStack: number[] = []

                    GamblingPlayerIsFox

                    GamblingPlayerIsFox: boolean = true

                    Player is Fox by Fox and Hunter

                    GamblingPlayerSubState

                    GamblingPlayerSubState: number = 0

                    GamblingSecondSub

                    GamblingSecondSub: NPCCharacter = ...

                    GamblingShowDiceSum

                    GamblingShowDiceSum: boolean = true

                    Show Sum of Dice Dots in DiceStack

                    GamblingShowMoney

                    GamblingShowMoney: boolean = false

                    Show Money in DiceStack

                    GamblingToothpickCount

                    GamblingToothpickCount: number = 0

                    available Toothpicks

                    GamblingToothpickStackShown

                    GamblingToothpickStackShown: boolean = false

                    GameAnimationFrameId

                    GameAnimationFrameId: number = null

                    GameClubCardBackground

                    GameClubCardBackground: string = "Sheet"

                    GameClubCardChangedRunningSettings

                    GameClubCardChangedRunningSettings: boolean = false

                    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

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

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

                    HorseWalkCollectedCarrots

                    HorseWalkCollectedCarrots: number = 0

                    HorseWalkCollectedCrops

                    HorseWalkCollectedCrops: number = 0

                    HorseWalkCrops

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

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

                    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: G | I = "I"

                    InfiltrationPerksBackground

                    InfiltrationPerksBackground: string = "Sheet"

                    InfiltrationPerksList

                    InfiltrationPerksList: InfiltrationPerks[] = ...

                    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

                    The character we're showing the information of.

                    Also used by OnlineProfile.js

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

                    InventoryItemNeckSlaveCollarColorMode

                    InventoryItemNeckSlaveCollarColorMode: boolean = false

                    InventoryItemNeckSlaveCollarOffset

                    InventoryItemNeckSlaveCollarOffset: number = 0

                    InventoryItemNeckSlaveCollarTypes

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

                    InventoryItemPelvisFuturisticChastityBeltTamperZones

                    InventoryItemPelvisFuturisticChastityBeltTamperZones: AssetGroupItemName[] = ...

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

                    ItemColorBackup

                    ItemColorBackup: string

                    ItemColorCharacter

                    ItemColorCharacter: Character = ...

                    Initialized in ItemColorLoad and valid until ItemColorReset is called

                    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

                    Initialized in ItemColorLoad and valid until ItemColorReset is called

                    constItemColorHistory

                    ItemColorHistory: Set<BCColor> = ...

                    All (hex code) colors used within the current lifetime of the ItemColor subscreen.

                    ItemColorItem

                    ItemColorItem: Item = ...

                    Initialized in ItemColorLoad and valid until ItemColorReset is called

                    ItemColorLayerNames

                    ItemColorLayerNames: TextCache

                    Initialized in ItemColorLoad and valid until ItemColorReset is called

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

                    ItemColorPickerBackup

                    ItemColorPickerBackup: string = null

                    ItemColorPickerIndices

                    ItemColorPickerIndices: number[] = []

                    The indices of to-be colored layers within a Item.Color/ItemColorGetColorableLayers-returned array.

                    Note that these layers (and their indices) belong to a colorable subset of Asset.Layer.

                    constItemColorPickerLayers

                    ItemColorPickerLayers: Map<number, AssetLayer> = ...

                    The Asset.Layer indices of to-be colored layers mapped to their respective layer.

                    ItemColorState

                    ItemColorState: ItemColorStateType = ...

                    Initialized in ItemColorStateBuild and valid until ItemColorReset is called

                    ItemColorStateKey

                    ItemColorStateKey: string = ...

                    Initialized in ItemColorStateBuild and valid until ItemColorReset is called

                    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

                    KeyGUI

                    KeyGUI: { buildKeybinding: (keybinding) => HTMLDivElement; currentSearchingMode: FilteringMode; searchingModes: ReadonlySet<FilteringMode>; selec: Readonly<{ categoryClass: category; categoryContentClass: category-content; categoryContentId: (id) => string; categoryId: (id) => string; categoryNameClass: category-name; comboResetButtonId: (id) => string; comboUnbindButtonId: (id) => string; filtering: keybind-filter; helpHr: keybind-help-hr; helpSheet: keybind-help-sheet; keybindClass: keybinding; keybindComboClass: keybind-combo; keybindConflictIndicatorClass: keybind-conflict-indicator; keybindContextsClass: keybind-contexts; keybindManager: keybind-manager; keybindModal: keybind-modal; keybindModalCancel: keybind-modal-cancel; keybindNameClass: keybind-name; keybindNavClass: keybind-nav; keybindResetClass: keybind-combo-reset; keybindUnbindClass: keybind-combo-unbind; keybuttonId: (id) => string; keyConflictIndicatorId: (id) => string; keyContextsId: (id) => string; keyId: (id) => string; keyNameId: (id) => string; mainContent: keybind-main-content; navSquareButtonClass: keybind-nav-button; searchInput: keybind-search-input; searchInputContainer: keybind-search-input-container; searchModeDropdown: keybind-search-mode-dropdown; searchModePair: keybind-search-mode-pair; sidebar: keybind-sidebar }>; selectedAction: string; showConflictsOnly: boolean; buildCategory: any; buildFilteringMenu: any; buildHelpSheet: any; buildSearchInput: any; buildSearchModeDropdown: any; buildSubscreen: any; changeHelpSheet: any; searchFilteredAll: any; showModal: any; updateKeybinding: any } = ...

                    Type declaration

                    • buildKeybinding: (keybinding) => HTMLDivElement
                        • (keybinding): HTMLDivElement
                        • Parameters

                          Returns HTMLDivElement

                    • currentSearchingMode: FilteringMode
                    • searchingModes: ReadonlySet<FilteringMode>
                    • selec: Readonly<{ categoryClass: category; categoryContentClass: category-content; categoryContentId: (id) => string; categoryId: (id) => string; categoryNameClass: category-name; comboResetButtonId: (id) => string; comboUnbindButtonId: (id) => string; filtering: keybind-filter; helpHr: keybind-help-hr; helpSheet: keybind-help-sheet; keybindClass: keybinding; keybindComboClass: keybind-combo; keybindConflictIndicatorClass: keybind-conflict-indicator; keybindContextsClass: keybind-contexts; keybindManager: keybind-manager; keybindModal: keybind-modal; keybindModalCancel: keybind-modal-cancel; keybindNameClass: keybind-name; keybindNavClass: keybind-nav; keybindResetClass: keybind-combo-reset; keybindUnbindClass: keybind-combo-unbind; keybuttonId: (id) => string; keyConflictIndicatorId: (id) => string; keyContextsId: (id) => string; keyId: (id) => string; keyNameId: (id) => string; mainContent: keybind-main-content; navSquareButtonClass: keybind-nav-button; searchInput: keybind-search-input; searchInputContainer: keybind-search-input-container; searchModeDropdown: keybind-search-mode-dropdown; searchModePair: keybind-search-mode-pair; sidebar: keybind-sidebar }>
                    • selectedAction: string
                    • showConflictsOnly: boolean
                    • buildCategory: function
                      • buildCategory(categoryObject): HTMLFieldSetElement

                      • Parameters

                        Returns HTMLFieldSetElement

                    • buildFilteringMenu: function
                      • buildFilteringMenu(): HTMLElement

                      • Returns HTMLElement

                    • buildHelpSheet: function
                      • buildHelpSheet(): HTMLElement

                      • Returns HTMLElement

                    • buildSearchInput: function
                      • buildSearchInput(): HTMLLabelElement

                      • Returns HTMLLabelElement

                    • buildSearchModeDropdown: function
                      • buildSearchModeDropdown(): HTMLLabelElement

                      • Returns HTMLLabelElement

                    • buildSubscreen: function
                      • buildSubscreen(): void

                      • Returns void

                    • changeHelpSheet: function
                      • changeHelpSheet(content): void

                      • Parameters

                        • content: string

                        Returns void

                    • searchFilteredAll: function
                      • searchFilteredAll(): void

                      • Returns void

                    • showModal: function
                      • showModal(): void

                      • Returns void

                    • updateKeybinding: function
                      • updateKeybinding(targetActionId, keyCombo): void

                      • Updates a keybinding's combination and updates all conflicting keybindings if any


                        Parameters

                        • targetActionId: string
                        • keyCombo: KeyCombo

                        Returns void

                    KeyManager

                    KeyManager: KeybindManager = ...

                    KeybindingDefaults

                    KeybindingDefaults: { DefaultCategories: readonly Category[]; DefaultContexts: readonly Context[]; DefaultKeybindings: readonly Keybinding[] } = ...

                    Type declaration

                    • DefaultCategories: readonly Category[]

                      Default keybinding categories for organizing commands.

                    • DefaultContexts: readonly Context[]

                      Default contexts where keybindings may be active. Each context has a prerequisite function to check if it should apply.

                    • DefaultKeybindings: readonly Keybinding[]

                      Built-in default keybindings initialized at startup. Each binding specifies an action, its assigned keys, category, and contexts.

                    KeybindingManager

                    KeybindingManager: { ASCIIKeyboardMap: Readonly<{ Alt: Alt; ArrowDown: Down; ArrowLeft: Left; ArrowRight: Right; ArrowUp: Up; Backquote: `; Backslash: \; Backspace: Backspace; BracketLeft: [; BracketRight: ]; Comma: ,; Control: Ctrl; Delete: Delete; Digit0: 0; Digit1: 1; Digit2: 2; Digit3: 3; Digit4: 4; Digit5: 5; Digit6: 6; Digit7: 7; Digit8: 8; Digit9: 9; End: End; Enter: Enter; Equal: =; Escape: Esc; Home: Home; KeyA: A; KeyB: B; KeyC: C; KeyD: D; KeyE: E; KeyF: F; KeyG: G; KeyH: H; KeyI: I; KeyJ: J; KeyK: K; KeyL: L; KeyM: M; KeyN: N; KeyO: O; KeyP: P; KeyQ: Q; KeyR: R; KeyS: S; KeyT: T; KeyU: U; KeyV: V; KeyW: W; KeyX: X; KeyY: Y; KeyZ: Z; Minus: -; Numpad0: Num0; Numpad1: Num1; Numpad2: Num2; Numpad3: Num3; Numpad4: Num4; Numpad5: Num5; Numpad6: Num6; Numpad7: Num7; Numpad8: Num8; Numpad9: Num9; NumpadAdd: Num +; NumpadDecimal: Num .; NumpadDivide: Num /; NumpadEnter: Enter; NumpadMultiply: Num *; NumpadSubtract: Num -; PageDown: Page Down; PageUp: Page Up; Period: .; Quote: '; Semicolon: ;; Shift: Shift; Slash: /; Space: Space; Tab: Tab }>; ModifierSymbols: Readonly<{ Alt: ; Ctrl: ; Shift: }>; ReverseModifierSymbols: Readonly<{ : Shift; : Ctrl; : Alt }> } = ...

                    Type declaration

                    • ASCIIKeyboardMap: Readonly<{ Alt: Alt; ArrowDown: Down; ArrowLeft: Left; ArrowRight: Right; ArrowUp: Up; Backquote: `; Backslash: \; Backspace: Backspace; BracketLeft: [; BracketRight: ]; Comma: ,; Control: Ctrl; Delete: Delete; Digit0: 0; Digit1: 1; Digit2: 2; Digit3: 3; Digit4: 4; Digit5: 5; Digit6: 6; Digit7: 7; Digit8: 8; Digit9: 9; End: End; Enter: Enter; Equal: =; Escape: Esc; Home: Home; KeyA: A; KeyB: B; KeyC: C; KeyD: D; KeyE: E; KeyF: F; KeyG: G; KeyH: H; KeyI: I; KeyJ: J; KeyK: K; KeyL: L; KeyM: M; KeyN: N; KeyO: O; KeyP: P; KeyQ: Q; KeyR: R; KeyS: S; KeyT: T; KeyU: U; KeyV: V; KeyW: W; KeyX: X; KeyY: Y; KeyZ: Z; Minus: -; Numpad0: Num0; Numpad1: Num1; Numpad2: Num2; Numpad3: Num3; Numpad4: Num4; Numpad5: Num5; Numpad6: Num6; Numpad7: Num7; Numpad8: Num8; Numpad9: Num9; NumpadAdd: Num +; NumpadDecimal: Num .; NumpadDivide: Num /; NumpadEnter: Enter; NumpadMultiply: Num *; NumpadSubtract: Num -; PageDown: Page Down; PageUp: Page Up; Period: .; Quote: '; Semicolon: ;; Shift: Shift; Slash: /; Space: Space; Tab: Tab }>

                      A map from KeyboardEvent.code values to their ASCII key label.

                      Used to convert browser key codes into human-readable names.

                    • ModifierSymbols: Readonly<{ Alt: ; Ctrl: ; Shift: }>

                      Maps logical modifier keys to their symbol representation.

                    • ReverseModifierSymbols: Readonly<{ : Shift; : Ctrl; : Alt }>

                      Reverse map of modifier symbols to their logical modifier keys.

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

                    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: readonly [Cloth, ItemMouth, ItemFeet, UndoCloth, UndoItemMouth, UndoItemFeet, Mercy] = ...

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

                      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

                      MagicSchoolFindsAroundArea

                      MagicSchoolFindsAroundArea: | Forest | Garden = ""

                      MagicSchoolFindsAroundBackground

                      MagicSchoolFindsAroundBackground: string = "Castle"

                      MagicSchoolFindsAroundButtons

                      MagicSchoolFindsAroundButtons: { dualCharacterFirst: [number, number, number, number]; dualCharacterSecond: [number, number, number, number]; exit: [number, number, number, number]; goToForest: [number, number, number, number]; goToGarden: [number, number, number, number]; profile: [number, number, number, number]; soloCharacter: [number, number, number, number] } = ...

                      Type declaration

                      • dualCharacterFirst: [number, number, number, number]
                      • dualCharacterSecond: [number, number, number, number]
                      • exit: [number, number, number, number]
                      • goToForest: [number, number, number, number]
                      • goToGarden: [number, number, number, number]
                      • profile: [number, number, number, number]
                      • soloCharacter: [number, number, number, number]

                      MagicSchoolFindsAroundKitsune

                      MagicSchoolFindsAroundKitsune: NPCCharacter = ...

                      MagicSchoolFindsAroundLastSpell

                      MagicSchoolFindsAroundLastSpell: MagicSchoolSpell

                      MagicSchoolFindsAroundSpellCount

                      MagicSchoolFindsAroundSpellCount: number = 0

                      MagicSchoolFindsAroundTheresa

                      MagicSchoolFindsAroundTheresa: NPCCharacter = ...

                      MagicSchoolLaboratoryBackground

                      MagicSchoolLaboratoryBackground: string = "MagicSchoolLaboratory"

                      MagicSchoolLaboratoryBattleWage

                      MagicSchoolLaboratoryBattleWage: string = ""

                      MagicSchoolLaboratoryLastSpell

                      MagicSchoolLaboratoryLastSpell: MagicSchoolSpell

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

                      MaidDrinksBackground

                      MaidDrinksBackground: string = "Bar"

                      MaidDrinksCustomerLeft

                      MaidDrinksCustomerLeft: NPCCharacter = ...

                      MaidDrinksCustomerLeftTimer

                      MaidDrinksCustomerLeftTimer: number = -1

                      MaidDrinksCustomerLeftVisible

                      MaidDrinksCustomerLeftVisible: boolean = false

                      MaidDrinksCustomerRight

                      MaidDrinksCustomerRight: NPCCharacter = ...

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

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

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

                      MistressTimerChooseIndexes

                      MistressTimerChooseIndexes: number[] = ...

                      constMistressTimerChooseOptions

                      MistressTimerChooseOptions: { unit: { label: string; seconds: number }; values: number[] }[] = ...

                      MistressTimerChooseOptionsIndex

                      MistressTimerChooseOptionsIndex: number = 0

                      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: | Interview | OpenHouse = ""

                      MovieStudioCurrentRole

                      MovieStudioCurrentRole: | Mistress | Maid | Journalist | Wife = ""

                      MovieStudioCurrentScene

                      MovieStudioCurrentScene: number = 0

                      MovieStudioDailyMovie

                      MovieStudioDailyMovie: | Interview | OpenHouse = ""

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

                      NPCCollaringGirlRight

                      NPCCollaringGirlRight: NPCCharacter = ...

                      NPCCollaringMistressLeft

                      NPCCollaringMistressLeft: NPCCharacter = ...

                      NPCCollaringMistressRight

                      NPCCollaringMistressRight: NPCCharacter = ...

                      NPCCollaringSub

                      NPCCollaringSub: NPCCharacter = ...

                      NPCSlaveAuctionAmount

                      NPCSlaveAuctionAmount: number = 0

                      NPCSlaveAuctionBackground

                      NPCSlaveAuctionBackground: string = "SlaveMarket"

                      NPCSlaveAuctionGirlLeft

                      NPCSlaveAuctionGirlLeft: NPCCharacter = ...

                      NPCSlaveAuctionGirlRight

                      NPCSlaveAuctionGirlRight: NPCCharacter = ...

                      NPCSlaveAuctionMistress

                      NPCSlaveAuctionMistress: NPCCharacter = ...

                      NPCSlaveAuctionSlave

                      NPCSlaveAuctionSlave: NPCCharacter = ...

                      NPCSlaveAuctionVendor

                      NPCSlaveAuctionVendor: PlayerCharacter | NPCCharacter = ...

                      NPCTrait

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

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

                      @constant

                      NPCWeddingBackground

                      NPCWeddingBackground: string = "Management"

                      NPCWeddingGirlLeft

                      NPCWeddingGirlLeft: NPCCharacter = ...

                      NPCWeddingGirlRight

                      NPCWeddingGirlRight: NPCCharacter = ...

                      NPCWeddingWife

                      NPCWeddingWife: NPCCharacter = ...

                      NicknameManagementBackground

                      NicknameManagementBackground: string = "Sheet"

                      NicknameManagementLock

                      NicknameManagementLock: boolean = false

                      NicknameManagementTarget

                      NicknameManagementTarget: Character = ...

                      constNoArch

                      NoArch: { Click: (data) => boolean; Draw: (data) => void; Init: (data, C, item, push, refresh) => boolean } = ...

                      Type declaration

                      • Click: (data) => boolean
                          • (data): boolean

                          • Parameters

                            Returns boolean

                            Whether a button was clicked or not

                      • Draw: (data) => void
                      • Init: (data, C, item, push, refresh) => boolean
                          • (data, C, item, push, refresh): boolean

                          • Parameters

                            • data: ExtendedItemData<any>
                            • C: Character

                              — The character that has the item equiped

                            • item: Item

                              — The item in question

                            • push: boolean = true

                              Whether to push to changes to the server

                            • refresh: boolean = true

                              Whether to refresh the character. This should generally be true, with custom script hooks being a potential exception.

                            Returns boolean

                            Whether properties were updated or not

                      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

                      constNurseryDiaperColors

                      NurseryDiaperColors: BCColor[] = ...

                      NurseryDiapers

                      NurseryDiapers: { Large: string[]; Medium: string[]; Small: string[] }

                      Type declaration

                      • Large: string[]
                      • Medium: string[]
                      • Small: string[]

                      constNurseryDressColors

                      NurseryDressColors: BCColor[] = ...

                      NurseryDresses

                      NurseryDresses: string[]

                      NurseryEscapeAttempts

                      NurseryEscapeAttempts: number = null

                      NurseryGateMsg

                      NurseryGateMsg: boolean = null

                      message about nursery gate

                      NurseryJustClicked

                      NurseryJustClicked: any = null

                      NurseryLeaveMessage

                      NurseryLeaveMessage: EasyEscape | NoEasyEscape | EscapeSuccess | EscapeFailQuietly | EscapeFailQuietlyAndVibrator | EscapeFailNoisy | EscapeFailNoisyAndVibrator = null

                      message about ease of opening nursery gate

                      constNurseryLeaveMessages

                      NurseryLeaveMessages: Readonly<{ EasyEscape: EasyEscape; EscapeFailNoisy: EscapeFailNoisy; EscapeFailNoisyAndVibrator: EscapeFailNoisyAndVibrator; EscapeFailQuietly: EscapeFailQuietly; EscapeFailQuietlyAndVibrator: EscapeFailQuietlyAndVibrator; EscapeSuccess: EscapeSuccess; NoEasyEscape: NoEasyEscape }> = ...

                      NurseryNurse

                      NurseryNurse: NPCCharacter = null

                      NurseryPacifiers

                      NurseryPacifiers: { Normal: string[]; Restrained: string[] }

                      Type declaration

                      • Normal: string[]
                      • Restrained: string[]

                      NurseryPlayerAppearance

                      NurseryPlayerAppearance: Item[] = null

                      NurseryPlayerBadBabyStatus

                      NurseryPlayerBadBabyStatus: number = 0

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

                      NurseryPlayerKeepsLoosingBinky

                      NurseryPlayerKeepsLoosingBinky: boolean = null

                      NurseryRepeatOffender

                      NurseryRepeatOffender: number = null

                      NurserySituation

                      NurserySituation: string = null

                      constreadonlyONLINE_PROFILE_DESCRIPTION_COMPRESSION_MAGIC

                      ONLINE_PROFILE_DESCRIPTION_COMPRESSION_MAGIC: string = ...

                      Leading character used to signal that description is compressed

                      OnlineGameDictionary

                      OnlineGameDictionary: string[][] = null

                      OnlineProfileBackground

                      OnlineProfileBackground: string = "Sheet"

                      OnlineProfileMode

                      OnlineProfileMode: Description | OwnersNotes = "Description"

                      OnlineProfileNotesAvailable

                      OnlineProfileNotesAvailable: boolean = false

                      OnlineProfileTextDesc

                      OnlineProfileTextDesc: string = ""

                      constOnlineProfileTextDescMaxLen

                      OnlineProfileTextDescMaxLen: 10000 = 10000

                      OnlineProfileTextOwnersNotes

                      OnlineProfileTextOwnersNotes: string = ""

                      constOnlineProfileTextOwnersNotesMaxLen

                      OnlineProfileTextOwnersNotesMaxLen: 4000 = 4000

                      OwnerTimerChooseIndexes

                      OwnerTimerChooseIndexes: number[] = ...

                      constOwnerTimerChooseOptions

                      OwnerTimerChooseOptions: { unit: { label: string; seconds: number }; values: number[] }[] = ...

                      OwnerTimerChooseOptionsIndex

                      OwnerTimerChooseOptionsIndex: number = 1

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

                      PasswordTimerChooseIndexes

                      PasswordTimerChooseIndexes: number[] = ...

                      constPasswordTimerChooseOptions

                      PasswordTimerChooseOptions: { unit: { label: string; seconds: number }; values: number[] }[] = ...

                      PasswordTimerChooseOptionsIndex

                      PasswordTimerChooseOptionsIndex: number = 0

                      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: string = undefined

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

                      PlayerAuctionEnd

                      PlayerAuctionEnd: boolean = false

                      PlayerAuctionPlead

                      PlayerAuctionPlead: number = 0

                      PlayerAuctionSilenceMode

                      PlayerAuctionSilenceMode: boolean = false

                      PlayerCollaringBackground

                      PlayerCollaringBackground: string = "Management"

                      PlayerCollaringGirlLeft

                      PlayerCollaringGirlLeft: NPCCharacter = ...

                      PlayerCollaringGirlRight

                      PlayerCollaringGirlRight: NPCCharacter = ...

                      PlayerCollaringMistress

                      PlayerCollaringMistress: NPCCharacter = ...

                      PlayerCollaringMistressLeft

                      PlayerCollaringMistressLeft: NPCCharacter = ...

                      PlayerCollaringMistressRight

                      PlayerCollaringMistressRight: NPCCharacter = ...

                      PlayerDialog

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

                      PlayerMistressBackground

                      PlayerMistressBackground: string = "Management"

                      PlayerMistressMaidLeft

                      PlayerMistressMaidLeft: NPCCharacter = ...

                      PlayerMistressMaidRight

                      PlayerMistressMaidRight: NPCCharacter = ...

                      PlayerMistressMistressLeft

                      PlayerMistressMistressLeft: NPCCharacter = ...

                      PlayerMistressMistressRight

                      PlayerMistressMistressRight: NPCCharacter = ...

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

                      PreferenceArousalActivityFactorOther

                      PreferenceArousalActivityFactorOther: never

                      PreferenceArousalActivityFactorSelf

                      PreferenceArousalActivityFactorSelf: never

                      PreferenceArousalActivityIndex

                      PreferenceArousalActivityIndex: number = 0

                      PreferenceArousalActivityList

                      PreferenceArousalActivityList: ActivityName[]

                      PreferenceArousalAffectStutterIndex

                      PreferenceArousalAffectStutterIndex: number = 0

                      PreferenceArousalAffectStutterList

                      PreferenceArousalAffectStutterList: ArousalAffectStutterName[] = ...

                      PreferenceArousalFetishFactor

                      PreferenceArousalFetishFactor: never

                      PreferenceArousalFetishIndex

                      PreferenceArousalFetishIndex: number = 0

                      PreferenceArousalFetishList

                      PreferenceArousalFetishList: FetishName[]

                      PreferenceArousalVisibleIndex

                      PreferenceArousalVisibleIndex: number = 0

                      PreferenceArousalVisibleList

                      PreferenceArousalVisibleList: ArousalVisibleName[] = ...

                      PreferenceArousalZoneFactor

                      PreferenceArousalZoneFactor: never

                      PreferenceArousalZoneOrgasmDefault

                      PreferenceArousalZoneOrgasmDefault: AssetGroupName[] = ...

                      Which zones are considered erogenous by default

                      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: dropdown-pair-CensoredWordsLevel; 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

                      PreferenceDifficultyStatusTimerActive

                      PreferenceDifficultyStatusTimerActive: boolean = false

                      PreferenceDifficultyStatusTimerLastChange

                      PreferenceDifficultyStatusTimerLastChange: number = 0

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

                      PreferenceGraphicsAnimationQualityList

                      PreferenceGraphicsAnimationQualityList: number[] = ...

                      PreferenceGraphicsFontIndex

                      PreferenceGraphicsFontIndex: number = 0
                      @deprecated

                      PreferenceGraphicsFontList

                      PreferenceGraphicsFontList: GraphicsFontName[] = ...

                      PreferenceGraphicsFrameLimit

                      PreferenceGraphicsFrameLimit: number[] = ...

                      PreferenceGraphicsPowerModeIndex

                      PreferenceGraphicsPowerModeIndex: number = -1
                      @deprecated

                      PreferenceGraphicsPowerModes

                      PreferenceGraphicsPowerModes: WebGLPowerPreference[] = ...

                      PreferenceGraphicsWebGLOptions

                      PreferenceGraphicsWebGLOptions: WebGLContextAttributes

                      Tied to the screen's lifetime

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

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

                      PreferenceSettingsSensitivityIndex

                      PreferenceSettingsSensitivityIndex: number = 13

                      PreferenceSettingsSensitivityList

                      PreferenceSettingsSensitivityList: number[] = ...

                      PreferenceSettingsVFXFilterIndex

                      PreferenceSettingsVFXFilterIndex: number = 0
                      @deprecated

                      PreferenceSettingsVFXFilterList

                      PreferenceSettingsVFXFilterList: GraphicsVFXFilterName[] = ...

                      PreferenceSettingsVFXIndex

                      PreferenceSettingsVFXIndex: number = 0
                      @deprecated

                      PreferenceSettingsVFXList

                      PreferenceSettingsVFXList: GraphicsVFXName[] = ...

                      PreferenceSettingsVFXVibratorIndex

                      PreferenceSettingsVFXVibratorIndex: number = 0
                      @deprecated

                      PreferenceSettingsVFXVibratorList

                      PreferenceSettingsVFXVibratorList: GraphicsVFXVibratorName[] = ...

                      PreferenceSubscreen

                      PreferenceSubscreen: PreferenceSubscreen

                      The currently active subscreen

                      constPreferenceSubscreenAudioIDs

                      PreferenceSubscreenAudioIDs: { grid: string } = ...

                      Type declaration

                      • grid: string

                      constPreferenceSubscreenChatCheckboxes

                      PreferenceSubscreenChatCheckboxes: PreferenceCheckboxOption[] = ...

                      constPreferenceSubscreenChatDropdowns

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

                      constPreferenceSubscreenChatIDs

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

                      constPreferenceSubscreenDifficultyIDs

                      PreferenceSubscreenDifficultyIDs: Readonly<{ accept: preference-difficulty-accept; changeButton: preference-difficulty-change; detail: preference-difficulty-detail; detailText: preference-difficulty-detail-text; detailTitle: preference-difficulty-detail-title; list: preference-difficulty-list; listButton: (id) => string; listLabel: (id) => string; listTitle: preference-difficulty-list-title; status: preference-difficulty-status }> = ...

                      constPreferenceSubscreenGenderIDs

                      PreferenceSubscreenGenderIDs: Readonly<{ grid: preference-gender-grid }> = ...

                      constPreferenceSubscreenGenderSettings

                      PreferenceSubscreenGenderSettings: { id: string; label: string; setting: () => GenderSetting }[] = ...

                      constPreferenceSubscreenGeneralCheckboxes

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

                      PreferenceSubscreenGeneralColorPicker

                      PreferenceSubscreenGeneralColorPicker: boolean = false

                      constPreferenceSubscreenGeneralIDs

                      PreferenceSubscreenGeneralIDs: Readonly<{ colorInput: InputCharacterLabelColor; colorPickerToggle: preference-general-color-picker-toggle; generalHardcoreWarning: preference-general-hardcore-warning; grid: preference-general-grid }> = ...

                      constPreferenceSubscreenGraphicsIDs

                      PreferenceSubscreenGraphicsIDs: Readonly<{ grid: preference-graphics-grid; noWebGL: preference-graphics-no-webgl }> = ...

                      constPreferenceSubscreenImmersionCheckboxes

                      PreferenceSubscreenImmersionCheckboxes: { check: () => boolean; click: (value) => void; disabled?: (disableButtons) => 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 }> = ...

                      constPreferenceSubscreenScriptsIDs

                      PreferenceSubscreenScriptsIDs: Readonly<{ content: preference-scripts-content; explanation: preference-scripts-explanation; grid: preference-scripts-grid; helpGlobal: preference-scripts-help-global; helpOverlay: preference-scripts-help-overlay; scriptsCheckboxId: (property, permissionLevel) => string; scriptsHelpButtonId: (property) => string; table: preference-scripts-table; warning: preference-scripts-warning; warningAccept: preference-scripts-warning-accept; warningText: preference-scripts-warning-text; warningTitle: preference-scripts-warning-title }> = ...

                      constPreferenceSubscreenSecurityIDs

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

                      constPreferenceSubscreenVisibilityIDs

                      PreferenceSubscreenVisibilityIDs: Readonly<{ assetRow: preference-visibility-asset-row; assetSelect: preference-visibility-asset; blockCheckbox: preference-visibility-block; cancelButton: preference-visibility-cancel; controls: preference-visibility-controls; grid: preference-visibility-grid; groupRow: preference-visibility-group-row; groupSelect: preference-visibility-group; hideCheckbox: preference-visibility-hide; hideWarning: preference-visibility-hide-warning; locked: preference-visibility-locked; preview: preference-visibility-preview; resetButton: preference-visibility-reset; saveButton: preference-visibility-save }> = ...

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

                      constPreferenceVisibilityHiddenWarningIcon

                      PreferenceVisibilityHiddenWarningIcon: ./Screens/Character/Player/HiddenItem.png = "./Screens/Character/Player/HiddenItem.png"

                      PreferenceVisibilityHideChecked

                      PreferenceVisibilityHideChecked: boolean = false

                      PreferenceVisibilityPreviewAsset

                      PreferenceVisibilityPreviewAsset: Asset

                      Bound to screen lifetime

                      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

                      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

                      PrivateCharacterOffset

                      PrivateCharacterOffset: number = 0

                      PrivateCharacterShouldSync

                      PrivateCharacterShouldSync: boolean = false

                      PrivateClubCardDefeatConsequence

                      PrivateClubCardDefeatConsequence: string[] = ...

                      PrivateClubCardVictoryMode

                      PrivateClubCardVictoryMode: boolean = false

                      constPrivateCollegeNPCNames

                      PrivateCollegeNPCNames: readonly [Amanda, Sarah, Jennifer, Sidney] = ...

                      PrivateEntryEvent

                      PrivateEntryEvent: boolean = true

                      PrivateGiftRegular

                      PrivateGiftRegular: Asset = null

                      PrivateGiftRestraint

                      PrivateGiftRestraint: Asset = null

                      PrivateLoverActivity

                      PrivateLoverActivity: PrivateActivityType = null

                      PrivateLoverActivityList

                      PrivateLoverActivityList: PrivateActivityType[] = ...

                      PrivateNextLoveYou

                      PrivateNextLoveYou: number = 0

                      PrivatePunishment

                      PrivatePunishment: PrivatePunishmentType = null

                      PrivatePunishmentList

                      PrivatePunishmentList: PrivatePunishmentType[] = ...

                      PrivateRansomBackground

                      PrivateRansomBackground: string = "Sheet"

                      PrivateRansomCharacter

                      PrivateRansomCharacter: NPCCharacter = null

                      PrivateReleaseTimer

                      PrivateReleaseTimer: number = 0

                      PrivateSlaveImproveType

                      PrivateSlaveImproveType: NPCTraitType = null

                      PrivateVendor

                      PrivateVendor: NPCCharacter = ...

                      constPropertiesArrayLike

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

                      constPropertiesObjectLike

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

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

                      PuppyWalkerEscape

                      PuppyWalkerEscape: number[] = ...

                      PuppyWalkerGenerateMoveTimer

                      PuppyWalkerGenerateMoveTimer: number = 0

                      PuppyWalkerMoves

                      PuppyWalkerMoves: number[] = ...

                      PuppyWalkerMovesTimer

                      PuppyWalkerMovesTimer: number[] = ...

                      RandomNumber

                      RandomNumber: number = 0

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

                      ReputationValidReputations

                      ReputationValidReputations: ReputationType[] = ...

                      RhythmGameAudio

                      RhythmGameAudio: { audioCtx: AudioContext; bufferSource: AudioBufferSourceNode; play: (offset) => void; preload: () => void; preloadComplted: boolean; stop: () => void } = ...

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

                      @constant

                      The game audio object. Contains the functions required to load, start and stop the audio files.


                      Type declaration

                      • audioCtx: AudioContext
                      • bufferSource: AudioBufferSourceNode
                      • play: (offset) => void
                          • (offset): void
                          • Parameters

                            • offset: number

                            Returns void

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

                      • preloadComplted: boolean
                      • stop: () => void
                          • (): void
                          • Returns void

                      RhythmGameBackground

                      RhythmGameBackground: string = 'RhythmGameLoading'

                      RhythmGameBeatmap

                      RhythmGameBeatmap: string = ''

                      RhythmGameChart

                      RhythmGameChart: { artist: string; bpm: number; chartFile: Document; creator: string; length: number; load: () => void; notes: { id: number; key: number; para: number; time: number }[]; notes_judge: { id: number; para: number; time: number }[][]; notes_render: { id: number; para: number; time: number }[][]; notes_state: { id: number; judge: string }[]; preload: () => void; preloadCompleted: boolean; timestamps: { data: number; id: number; time: number }[]; timestamps_render: { data: number; id: number; time: number }[]; title: string } = ...

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

                      @constant

                      The game chart object. Contains the functions required to load the charts.


                      Type declaration

                      • artist: string
                      • bpm: number
                      • chartFile: Document
                      • creator: string
                      • length: number
                      • load: () => void
                          • (): void
                          • Returns void

                      • notes: { id: number; key: number; para: number; time: number }[]
                      • notes_judge: { id: number; para: number; time: number }[][]
                      • notes_render: { id: number; para: number; time: number }[][]
                      • notes_state: { id: number; judge: string }[]
                      • preload: () => void
                          • (): void
                          • Returns void

                      • preloadCompleted: boolean
                      • timestamps: { data: number; id: number; time: number }[]
                      • timestamps_render: { data: number; id: number; time: number }[]
                      • title: string

                      RhythmGameDifficulty

                      RhythmGameDifficulty: string = ''

                      RhythmGameEnded

                      RhythmGameEnded: boolean = false

                      RhythmGameImage

                      RhythmGameImage: { key_black_down: HTMLImageElement; key_black_up: HTMLImageElement; key_white_down: HTMLImageElement; key_white_up: HTMLImageElement; preload: () => void; preloadComplted: boolean; preloadLoaded: number; preloadTotal: number; stage_light: HTMLImageElement } = ...

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

                      @constant

                      The game image object. Contains the functions required to load the images.


                      Type declaration

                      • key_black_down: HTMLImageElement
                      • key_black_up: HTMLImageElement
                      • key_white_down: HTMLImageElement
                      • key_white_up: HTMLImageElement
                      • preload: () => void
                          • (): void
                          • Returns void

                      • preloadComplted: boolean
                      • preloadLoaded: number
                      • preloadTotal: number
                      • stage_light: HTMLImageElement

                      RhythmGameInit

                      RhythmGameInit: { RhythmGameLoadingPage: () => void; RhythmGamePostLoad: () => void; RhythmGamePreload: () => void; RhythmGamePreloadCheck: () => void } = ...

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

                      @constant

                      The game initialization object. Contains the functions required to load the game.


                      Type declaration

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

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

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

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

                      RhythmGameIntegration

                      RhythmGameIntegration: { load: () => void; punishment_level: number; setPunishment: () => void; update: () => void } = ...

                      Rhythm game integration object: Handles bondage club specific functions.

                      @constant

                      The game integration object. Contains the functions related to handling functions from the club such as punishing the player for being inaccurate.


                      Type declaration

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

                      • punishment_level: number
                      • setPunishment: () => void
                          • (): void
                          • Returns void

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

                      RhythmGameKernel

                      RhythmGameKernel: { currentTime: number; deltaTime: number; elapsedTime: number; frame: number; initTime: number; load: () => void; offsetTime: number; onFirstInvoke: boolean; pastTime: number; update: () => void } = ...

                      Rhythm game kernel object: Handles game timing.

                      @constant

                      The game kernel object. Contains the functions required to handle the game's timing.


                      Type declaration

                      • currentTime: number
                      • deltaTime: number
                      • elapsedTime: number
                      • frame: number
                      • initTime: number
                      • load: () => void
                          • (): void
                          • Returns void

                      • offsetTime: number
                      • onFirstInvoke: boolean
                      • pastTime: number
                      • update: () => void
                          • (): void
                          • Returns void

                      RhythmGameKey

                      RhythmGameKey: { addKeyListener: () => void; KEY_0: string; KEY_1: string; KEY_2: string; KEY_3: string; key_log: { key: 0 | 1 | 2 | 3; time: number; type: up | down }[]; key_log_ref: any[]; keyDownEvent: { handleEvent: (event) => void }; keyPressed: boolean[]; keyUpEvent: { handleEvent: (event) => void }; load: () => void; removeKeyListener: () => void } = ...

                      Rhythm game keyboard input handler object: Handles keyboard inputs.

                      @constant

                      The game keyboard input handler object. Contains the functions and properties required to handle key press events.


                      Type declaration

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

                      • KEY_0: string
                      • KEY_1: string
                      • KEY_2: string
                      • KEY_3: string
                      • key_log: { key: 0 | 1 | 2 | 3; time: number; type: up | down }[]
                      • key_log_ref: any[]
                      • keyDownEvent: { handleEvent: (event) => void }
                        • handleEvent: (event) => void
                            • (event): void
                            • Parameters

                              • event: KeyboardEvent

                              Returns void

                      • keyPressed: boolean[]
                      • keyUpEvent: { handleEvent: (event) => void }
                        • handleEvent: (event) => void
                            • (event): void
                            • Parameters

                              • event: KeyboardEvent

                              Returns void

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

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

                      RhythmGamePassed

                      RhythmGamePassed: boolean = true

                      RhythmGamePreloadCompleted

                      RhythmGamePreloadCompleted: boolean = false

                      RhythmGameRender

                      RhythmGameRender: { cache_hitEffect: { frame?: number; judge: number; para?: number; startFrame?: number }[]; cache_judge: { startFrame?: number; val: number }; cache_sv: { endFrame: number; endSpeed: number; startFrame: number; startSpeed: number }; drawLongNote: (key, y, h, judge) => void; drawSingleNote: (key, y, judge) => void; hitEffect: () => void; judgeRender: (obj) => void; keyPressEffectKeyLight: () => void; keyPressEffectStageLight: () => void; load: () => void; noteDrop: () => void; scrollSpeed: number; showAcc: () => void; showCombo: () => void; showHealth: () => void; showJudge: () => void; showJudgeCount: () => void; showResult: () => void; showScore: () => void; update: () => void } = ...

                      Rhythm game render object: Handles game rendering.

                      @constant

                      The game render object. Contains the functions related to game rendering such as the visual effects and notes.


                      Type declaration

                      • cache_hitEffect: { frame?: number; judge: number; para?: number; startFrame?: number }[]
                      • cache_judge: { startFrame?: number; val: number }
                        • optionalstartFrame?: number
                        • val: number
                      • cache_sv: { endFrame: number; endSpeed: number; startFrame: number; startSpeed: number }
                        • endFrame: number
                        • endSpeed: number
                        • startFrame: number
                        • startSpeed: number
                      • drawLongNote: (key, y, h, judge) => void
                          • (key, y, h, judge): void
                          • Parameters

                            • key: 0 | 1 | 2 | 3
                            • y: number
                            • h: number
                            • judge: string

                            Returns void

                      • drawSingleNote: (key, y, judge) => void
                          • (key, y, judge): void
                          • Parameters

                            • key: 0 | 1 | 2 | 3
                            • y: number
                            • judge: string

                            Returns void

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

                      • judgeRender: (obj) => void
                          • (obj): void
                          • Parameters

                            • obj: { frame?: number; startFrame?: number; val: number }
                              • optionalframe: number
                              • optionalstartFrame: number
                              • val: number

                            Returns void

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

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

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

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

                      • scrollSpeed: number
                      • showAcc: () => void
                          • (): void
                          • Returns void

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

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

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

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

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

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

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

                      RhythmGameScript

                      RhythmGameScript: { acc: { endMiss: number; great: number; miss: number; perfect: number; value: number }; combo: { frame?: number; max: number; rendered: boolean; startFrame?: number; value: number }; health: number; judge: { judge: string; key: number; para: number }[]; judge_end: number; judge_great: number; judge_miss: number; judge_perfect: number; judgeToVal: (judge) => -1 | 0 | 1 | 2 | 3; judgeType: (timeDiff) => early miss | early great | early perfect | late perfect | late great | late miss; load: () => void; map_judge: () => void; score: number; setJudge: (noteID, judge) => void; update: () => void; update_accuracy: () => void; update_combo: () => void; update_health: () => void; update_score: () => void } = ...

                      Rhythm game script object: Handles game mechanics.

                      @constant

                      The game kernel object. Contains the functions related to game mechanics such as health, score and accuracy.


                      Type declaration

                      • acc: { endMiss: number; great: number; miss: number; perfect: number; value: number }
                        • endMiss: number
                        • great: number
                        • miss: number
                        • perfect: number
                        • value: number
                      • combo: { frame?: number; max: number; rendered: boolean; startFrame?: number; value: number }
                        • optionalframe?: number
                        • max: number
                        • rendered: boolean
                        • optionalstartFrame?: number
                        • value: number
                      • health: number
                      • judge: { judge: string; key: number; para: number }[]
                      • judge_end: number
                      • judge_great: number
                      • judge_miss: number
                      • judge_perfect: number
                      • judgeToVal: (judge) => -1 | 0 | 1 | 2 | 3
                          • (judge): -1 | 0 | 1 | 2 | 3
                          • Parameters

                            • judge: string

                            Returns -1 | 0 | 1 | 2 | 3

                      • judgeType: (timeDiff) => early miss | early great | early perfect | late perfect | late great | late miss
                          • (timeDiff): early miss | early great | early perfect | late perfect | late great | late miss

                          • Parameters

                            • timeDiff: number

                            Returns early miss | early great | early perfect | late perfect | late great | late miss

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

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

                      • score: number
                      • setJudge: (noteID, judge) => void
                          • (noteID, judge): void
                          • Parameters

                            • noteID: number
                            • judge: string

                            Returns void

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

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

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

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

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

                      RhythmGameStarted

                      RhythmGameStarted: boolean = false

                      constSTRUGGLE_THRESHOLD_CAN_LOOSEN

                      STRUGGLE_THRESHOLD_CAN_LOOSEN: 9 = 9

                      Threshold at which the loosen option appears.

                      constSTRUGGLE_THRESHOLD_IMPOSSIBLE

                      STRUGGLE_THRESHOLD_IMPOSSIBLE: 6 = 6

                      Threshold at which actually succeeding the minigame becomes impossible.

                      constSTRUGGLE_THRESHOLD_REVEAL

                      STRUGGLE_THRESHOLD_REVEAL: 50 = 50

                      Number of struggle attempts to do before the challenge value is revealed

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

                      ServerBeepQueue

                      ServerBeepQueue: NotificationBeep[] = []

                      ServerCharacterNameRegex

                      ServerCharacterNameRegex: RegExp = ...

                      ServerCharacterNicknameRegex

                      ServerCharacterNicknameRegex: RegExp = ...

                      ServerChatMessageMaxLength

                      ServerChatMessageMaxLength: number = 2000

                      ServerChatRoomDescriptionMaxLength

                      ServerChatRoomDescriptionMaxLength: number = 300

                      constServerChatRoomSupportedLanguages

                      ServerChatRoomSupportedLanguages: ServerChatRoomLanguage[] = ...

                      constServerDefaultTimeout

                      ServerDefaultTimeout: 3000 = 3000

                      ServerIsConnected

                      ServerIsConnected: boolean = false

                      ServerReconnectCount

                      ServerReconnectCount: number = 0

                      ServerRoomJoinLastQuery

                      ServerRoomJoinLastQuery: string = ""

                      ServerRoomJoinLastQueryTime

                      ServerRoomJoinLastQueryTime: number = 0

                      ServerRoomSearchLastQuery

                      ServerRoomSearchLastQuery: ServerChatRoomSearchRequest = null

                      ServerRoomSearchLastQueryTime

                      ServerRoomSearchLastQueryTime: 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"

                      ServerValidation

                      ServerValidation: { isBool: any; isColorCode: any; isInt: any; isItem: any; isNumber: any; isString: any; isStringOrUndefined: any; isValidNotification: any } = ...

                      Type declaration

                      • isBool: function
                        • isBool(defaultValue): (arg) => boolean

                        • Private helper to quickly check boolean settings


                          Parameters

                          • defaultValue: boolean

                          Returns (arg) => boolean

                            • (arg): boolean
                            • Parameters

                              • arg: boolean

                              Returns boolean

                      • isColorCode: function
                        • isColorCode(allowAlpha, defaultValue): (arg) => `#${string}`

                        • Private helper to quickly check color codes


                          Parameters

                          • allowAlpha: boolean = false
                          • defaultValue: `#${string}`

                          Returns (arg) => `#${string}`

                            • (arg): `#${string}`
                            • Parameters

                              • arg: any

                              Returns `#${string}`

                      • isInt: function
                        • isInt<T>(min, max, defaultValue): (arg) => T

                        • Private helper to quickly check integers


                          Parameters

                          • min: number
                          • max: number
                          • defaultValue: T

                          Returns (arg) => T

                            • (arg): T
                            • Parameters

                              • arg: T

                              Returns T

                      • isItem: function
                        • isItem<T>(list, defaultValue): (arg) => T

                        • Private helper to quickly check items in lists


                          Parameters

                          • list: T[]
                          • defaultValue: T

                          Returns (arg) => T

                            • (arg): T
                            • Parameters

                              • arg: unknown

                              Returns T

                      • isNumber: function
                        • isNumber<T>(defaultValue): (arg) => T

                        • Private helper to quickly check numbers


                          Parameters

                          • defaultValue: T

                          Returns (arg) => T

                            • (arg): T
                            • Parameters

                              • arg: T

                              Returns T

                      • isString: function
                        • isString(maxLength, defaultValue): (arg) => string

                        • Private helper to quickly check strings


                          Parameters

                          • maxLength: number
                          • defaultValue: string

                          Returns (arg) => string

                            • (arg): string
                            • Parameters

                              • arg: any

                              Returns string

                      • isStringOrUndefined: function
                        • isStringOrUndefined(maxLength, defaultValue): (arg) => string

                        • Private helper to quickly check strings


                          Parameters

                          • maxLength: number
                          • defaultValue: string

                          Returns (arg) => string

                            • (arg): string
                            • Parameters

                              • arg: any

                              Returns string

                      • isValidNotification: function

                      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

                      The difficulty of the struggle minigame.

                      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

                      How much experience should be gained on success.

                      FIXME: the value is calculated by the minigame, but the skill is selected by Dialog when the minigame stops.

                      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: PlayerCharacter | 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) => void; Exit: (data, publishAction) => void; Init: (data, C, item, push, refresh) => boolean; Load: (data) => void; PublishAction: (data, C, item, newOption, previousOption) => void; GenericTextArcDrawHook: any; GenericTextDrawHook: any } = ...

                      Type declaration

                      • Draw: (data) => void

                        Draw handler for extended item screens with text input fields.

                          • (data): void
                          • Parameters

                            Returns void

                      • Exit: (data, publishAction) => void

                        Exit function for items with text input fields.

                          • (data, publishAction): void
                          • Parameters

                            • data: TextItemData

                              The items extended item data

                            • publishAction: boolean = true

                              Whether

                            Returns void

                      • Init: (data, C, item, push, refresh) => boolean

                        Init function for items with text input fields.

                          • (data, C, item, push, refresh): boolean

                          • Parameters

                            • data: TextItemData
                            • C: Character

                              — The character that has the item equiped

                            • item: Item

                              — The item in question

                            • push: boolean = true

                              Whether to push to changes to the server

                            • refresh: boolean = true

                              Whether to refresh the character. This should generally be true, with custom script hooks being a potential exception.

                            Returns boolean

                            Whether properties were updated or not

                      • Load: (data) => void

                        Load function for items with text input fields.

                      • PublishAction: (data, C, item, newOption, previousOption) => void

                        PublishAction function for items with text input fields.

                      • GenericTextArcDrawHook: function
                        • GenericTextArcDrawHook(data, originalFunction, drawArgs, options): void

                      • GenericTextDrawHook: function
                        • GenericTextDrawHook(data, originalFunction, drawArgs, options): void

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

                      constTimeUnits

                      TimeUnits: { DAYS: { label: string; seconds: number }; HOURS: { label: string; seconds: number }; MINUTES: { label: string; seconds: number } } = ...

                      An enum holding values of time units that might be used with their respective label of Interface.csv and seconds contained in said time unit.


                      Type declaration

                      • DAYS: { label: string; seconds: number }
                        • label: string
                        • seconds: number
                      • HOURS: { label: string; seconds: number }
                        • label: string
                        • seconds: number
                      • MINUTES: { label: string; seconds: number }
                        • label: string
                        • seconds: number

                      TimerLastArousalDecay

                      TimerLastArousalDecay: number = 0

                      TimerLastArousalProgress

                      TimerLastArousalProgress: number = 0

                      TimerLastArousalProgressCount

                      TimerLastArousalProgressCount: number = 0

                      TimerLastCycleCall

                      TimerLastCycleCall: number = 0

                      TimerLastTime

                      TimerLastTime: number = 0

                      TimerPadlockAccumulatedSeconds

                      TimerPadlockAccumulatedSeconds: 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: NicknameStatus = null

                      TitleOffset

                      TitleOffset: number = 0
                      @deprecated

                      constTitlePerPage

                      TitlePerPage: 28 = 28
                      @deprecated

                      constTitleSelec

                      TitleSelec: Readonly<{ exit: title-exit; nicknameInput: InputNickname; nicknameInputGroup: input-nickname-group; searchInput: input-search; subscreen: title-subscreen; titleButtonClass: title-button; titleButtonContainer: title-subscreen-titlebuttons; titleGroup: title-subscreen-hgroup; titleMain: title-subscreen-main; titleStatus: title-subscreen-status; titleButtonId: any }> = ...

                      TitleSelectedTitle

                      TitleSelectedTitle: TitleName

                      Bound to screen lifetime

                      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

                      publicconstbcModSdk

                      bcModSdk: ModSDKGlobalAPI

                      chess

                      chess: any

                      Dummy name for the module in Scripts/lib/chessboard

                      constchineseRandomGarbledSound

                      chineseRandomGarbledSound: string[] = ...

                      constchineseRegex

                      chineseRegex: RegExp = ...

                      export=

                      export=

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

                      Type declaration

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

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

                            Returns string

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

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

                            Returns string

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

                            • uncompressed: any

                            Returns string

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

                            • input: any

                            Returns string

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

                            • input: any

                            Returns string

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

                            • uncompressed: any

                            Returns Uint8Array

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

                            • input: any

                            Returns string

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

                            • compressed: any

                            Returns string

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

                            • input: any

                            Returns string

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

                            • input: any

                            Returns string

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

                            • compressed: any

                            Returns string

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

                            • compressed: any

                            Returns string

                      constm4

                      m4: any

                      constmaxScriptPermission

                      maxScriptPermission: number = ...
                      Page Options