interface MouseAPI {
    GetPos(): MousePosition;
    Move(x: number, y: number, smooth?: boolean): void;
    Click(button?: MouseClickButton, clicks?: number): void;
    Down(button?: MouseClickButton): void;
    Up(button?: MouseClickButton): void;
    Drag(startX: number, startY: number, endX: number, endY: number): void;
    Scroll(lines: number): void;
    OnRawEvent(callback: (event: RawMouseEvent) => void): void;
    OnButton(
        combo: string,
        callback: () => void,
        options?: MouseButtonOptions,
    ): void;
    OnDown(
        combo: string,
        callback: () => void,
        options?: MouseButtonOptions,
    ): void;
    OnUp(combo: string, callback: () => void, options?: MouseUpOptions): void;
}

Methods

  • Moves the cursor to the specified screen coordinates.

    Parameters

    • x: number

      Target X position in pixels.

    • y: number

      Target Y position in pixels.

    • Optionalsmooth: boolean

      When true, the cursor glides to the target over ~100 ms.

    Returns void

  • Injects a complete button press-and-release (DOWN + UP pair). Use Mouse.Down / Mouse.Up to inject only one phase.

    Parameters

    • Optionalbutton: MouseClickButton

      "left" (default), "right", "middle", "x1", "x2".

    • Optionalclicks: number

      Number of clicks (default 1; use 2 for double-click).

    Returns void

  • Injects a button-down (press) event without a release. Pair with Mouse.Up(button) to release.

    Parameters

    • Optionalbutton: MouseClickButton

      "left" (default), "right", "middle", "x1", "x2".

    Returns void

  • Injects a button-up (release) event without a press. Intended to pair with a prior Mouse.Down call.

    Parameters

    • Optionalbutton: MouseClickButton

      "left" (default), "right", "middle", "x1", "x2".

    Returns void

  • Drags with the left button from (startX, startY) to (endX, endY).

    Parameters

    • startX: number
    • startY: number
    • endX: number
    • endY: number

    Returns void

  • Scrolls the mouse wheel. Positive = up, negative = down.

    Parameters

    • lines: number

    Returns void

  • Registers a callback for every raw mouse event.

    Parameters

    • callback: (event: RawMouseEvent) => void

      Receives a RawMouseEvent on each event.

    Returns void

  • Fires when a mouse button is pressed down, with optional modifier requirement. With default block: true, both the button-down and its paired button-up are suppressed from reaching other applications.

    Parameters

    • combo: string

      MouseButtonCombo string, e.g. "LButton", "Shift+LButton".

    • callback: () => void

      Invoked on button-down.

    • Optionaloptions: MouseButtonOptions

      See MouseButtonOptions.

    Returns void

    Mouse.OnButton("Shift+LButton", () => { Console.Log("shift-click"); });
    Mouse.OnButton("Ctrl+RButton", handler, { block: false }); // observe only
  • Fires when a mouse button is pressed down (identical to OnButton). Prefer this name when you also register an OnUp handler for the same button to make the press/release pairing explicit.

    Parameters

    • combo: string

      MouseButtonCombo string.

    • callback: () => void

      Invoked on button-down.

    • Optionaloptions: MouseButtonOptions

      See MouseButtonOptions.

    Returns void

    let t = 0;
    Mouse.OnDown("XButton1", () => { t = Date.now(); });
    Mouse.OnUp("XButton1", () => { Console.Log(Date.now() - t + "ms"); });
  • Fires when a mouse button is released. Defaults to non-blocking (pass-through). When a paired OnButton/OnDown already blocks this button, the up is suppressed automatically — no need to set block: true here unless you want to block the up independently.

    Parameters

    • combo: string

      MouseButtonCombo string.

    • callback: () => void

      Invoked on button-up.

    • Optionaloptions: MouseUpOptions

      See MouseUpOptions.

    Returns void

    Mouse.OnUp("LButton", () => { Console.Log("released"); });