interface RenderedTarget {
    _customState: Partial<CustomState>;
    blocks: Blocks;
    comments: Record<string, Comment>;
    currentCostume: number;
    direction: number;
    draggable: boolean;
    drawableID: number;
    effects: Record<VM.Effect, number>;
    extensionStorage: ExtensionStorage;
    id: string;
    isOriginal: boolean;
    isStage: boolean;
    renderer: RenderWebGL;
    rotationStyle: RotationStyle;
    runtime: Runtime;
    size: number;
    soundEffects?: { pan: number; pitch: number };
    sprite: VM.Sprite;
    tempo: number;
    variables: Record<string, Variable>;
    videoTransparency: number;
    visible: boolean;
    volume: number;
    x: number;
    y: number;
    _getRenderedDirectionAndScale(): {
        direction: number;
        scale: [number, number];
    };
    addCostume(costume: Costume, index: number): void;
    addSound(sound: VM.Sound, index: number): void;
    clearEffects(): void;
    colorIsTouchingColor(
        rgb: [number, number, number],
        mask: [number, number, number],
    ): boolean;
    createComment(
        id: string,
        blockId: string,
        text: string,
        x: number,
        y: number,
        width: number,
        height: number,
        minimized?: boolean,
    ): void;
    createVariable(
        id: string,
        name: string,
        type: VM.VariableType,
        isCloud?: boolean,
    ): void;
    deleteCostume(costumeIndex: number): null | Costume;
    deleteSound(soundIndex: number): null | VM.Sound;
    dispose(): void;
    duplicate(): Promise<RenderedTarget>;
    emit<K extends keyof RenderedTargetEventMap>(
        event: K,
        ...args: EventEmitterArgs<RenderedTargetEventMap, K>,
    ): void;
    getBounds(): Rectangle;
    getBoundsForBubble(): Rectangle;
    getCostumeIndexByName(name: string): number;
    getCostumes(): Costume[];
    getCurrentCostume(): Costume;
    getCustomState<T extends keyof CustomState>(
        name: T,
    ): undefined | CustomState[T];
    getLayerOrder(): number;
    getName(): string;
    getSounds(): VM.Sound[];
    goBackwardLayers(layers: number): void;
    goBehindOther(other: RenderedTarget): void;
    goForwardLayers(layers: number): void;
    goToBack(): void;
    goToFront(): void;
    isSprite(): boolean;
    isTouchingColor(rgb: [number, number, number]): boolean;
    isTouchingEdge(): boolean;
    isTouchingObject(object: string): boolean;
    isTouchingPoint(x: number, y: number): boolean;
    isTouchingSprite(spriteName: string): boolean;
    keepInFence(
        newX: number,
        newY: number,
        fence?: SimpleRectangle,
    ): [number, number];
    listeners<K extends keyof RenderedTargetEventMap>(
        event: K,
    ): EventEmitterCallback<RenderedTargetEventMap, K>[];
    lookupBroadcastByInputValue(name: string): undefined | BroadcastVariable;
    lookupBroadcastMsg(id: string, name: string): undefined | BroadcastVariable;
    lookupOrCreateList(id: string, name: string): ListVariable;
    lookupOrCreateVariable(id: string, name: string): ScalarVariable;
    lookupVariableById(id: string): undefined | Variable;
    lookupVariableByNameAndType(name: string): undefined | ScalarVariable;
    lookupVariableByNameAndType(
        name: string,
        type: "",
        skipStage?: boolean,
    ): undefined | ScalarVariable;
    lookupVariableByNameAndType(
        name: string,
        type: "list",
        skipStage?: boolean,
    ): undefined | ListVariable;
    lookupVariableByNameAndType(
        name: string,
        type: "broadcast_msg",
        skipStage?: boolean,
    ): undefined | BroadcastVariable;
    makeClone(): null | RenderedTarget;
    off<K extends keyof RenderedTargetEventMap>(
        event: K,
        callback: EventEmitterCallback<RenderedTargetEventMap, K>,
    ): void;
    on<K extends keyof RenderedTargetEventMap>(
        event: K,
        callback: EventEmitterCallback<RenderedTargetEventMap, K>,
    ): void;
    once<K extends keyof RenderedTargetEventMap>(
        event: K,
        callback: EventEmitterCallback<RenderedTargetEventMap, K>,
    ): void;
    onGreenFlag(): void;
    onStopAll(): void;
    postSpriteInfo(spriteInfo: PostedSpriteInfo): void;
    removeListener<K extends keyof RenderedTargetEventMap>(
        event: K,
        callback: EventEmitterCallback<RenderedTargetEventMap, K>,
    ): void;
    renameCostume(costumeIndex: number, newName: string): void;
    renameSound(soundIndex: number, name: string): void;
    reorderCostume(costumeIndex: number, newIndex: number): boolean;
    reorderSound(soundIndex: number, newIndex: number): boolean;
    setCostume(costumeIndex: number): void;
    setCustomState<T extends keyof CustomState>(
        name: T,
        value: CustomState[T],
    ): void;
    setDirection(direction: number): void;
    setDraggable(draggable: boolean): void;
    setEffect(effectName: VM.Effect, value: number): void;
    setRotationStyle(rotationStyle: RotationStyle): void;
    setSize(size: number): void;
    setVisible(visible: boolean): void;
    setXY(x: number, y: number, force?: boolean): void;
    startDrag(): void;
    stopDrag(): void;
    toJSON(): SerializedTarget;
    updateAllDrawableProperties(): void;
}

Hierarchy (View Summary)

Properties

_customState: Partial<CustomState>
blocks: Blocks
comments: Record<string, Comment>
currentCostume: number

The index of the current costume.

direction: number

Direction in degrees. Defaults to 90 (right). Can be from -179 to 180.

draggable: boolean
drawableID: number
effects: Record<VM.Effect, number>

Visual effects on the target. All default to 0.

extensionStorage: ExtensionStorage
id: string
isOriginal: boolean
isStage: boolean
renderer: RenderWebGL
rotationStyle: RotationStyle
runtime: Runtime
size: number

The sprite's size. Default is 100.

soundEffects?: { pan: number; pitch: number }

Mirrors custom state.

sprite: VM.Sprite
tempo: number
variables: Record<string, Variable>
videoTransparency: number
visible: boolean
volume: number

Defaults to 100.

x: number
y: number

Methods

  • Returns { direction: number; scale: [number, number] }

    • direction: number
    • scale: [number, number]

      X scale then Y scale, both from 100. A negative scale means that the target should be flipped on that axis.

  • Parameters

    • rgb: [number, number, number]

      RGB channels from [0-255]

    • mask: [number, number, number]

      RGB channels from [0-255]

    Returns boolean

  • Parameters

    • id: string
    • blockId: string
    • text: string
    • x: number
    • y: number
    • width: number
    • height: number
    • Optionalminimized: boolean

    Returns void

  • Create a new variable. If the ID is already used, silently does nothing. isCloud is ignored if the sprite is not the stage or if the cloud variable limit has been reached.

    Parameters

    Returns void

  • Delete the costume at a given index. Returns the deleted costume if one exists at that index, otherwise null.

    Parameters

    • costumeIndex: number

    Returns null | Costume

  • Get the index of a costume with a given name. If the costume doesn't exist, returns -1.

    Parameters

    • name: string

    Returns number

  • Make sure this target is not the stage before calling this method.

    Parameters

    • layers: number

    Returns void

  • Make sure this target is not the stage before calling this method.

    Parameters

    • layers: number

    Returns void

  • Make sure this target is not the stage before calling this method.

    Returns void

  • Make sure this target is not the stage before calling this method.

    Returns void

  • Returns true if the target is not the stage and is not a clone.

    Returns boolean

  • Parameters

    • rgb: [number, number, number]

      RGB channels from [0-255]

    Returns boolean

  • Parameters

    • x: number
    • y: number

    Returns boolean

  • Look for a variable by its ID in this target. If it doesn't exist in this target, will check if it exists in the stage target. If it still doesn't exist, returns undefined.

    Parameters

    • id: string

    Returns undefined | Variable

  • Rename the costume at a given index. Will throw an error if the index is out of bounds. If the new name is already used, it may be modified.

    Parameters

    • costumeIndex: number
    • newName: string

    Returns void

  • Parameters

    • soundIndex: number
    • name: string

    Returns void

  • Move the costume from one index to another. Returns true if any change was made.

    Parameters

    • costumeIndex: number
    • newIndex: number

    Returns boolean

  • Parameters

    • soundIndex: number
    • newIndex: number

    Returns boolean

  • Update the current costume index. If index is not finite, it will be converted to 0. If index is not in the list, it will wrap around.

    Parameters

    • costumeIndex: number

    Returns void

  • Change the sprite's direction. The direction will be wrapped as needed to fit in the expected range.

    Parameters

    • direction: number

    Returns void

  • Change the sprite's size. The given size may be fenced to make the target fit on screen and isn't negative.

    Parameters

    • size: number

    Returns void

  • Update the sprite's position. The given coordinates may be fenced to make the target fit on screen. Set force to true to force the sprite to move even if it's being dragged.

    Parameters

    • x: number
    • y: number
    • Optionalforce: boolean

    Returns void