Choose an operation below. Its required payload and a complete call stay together—there is no second table to cross-reference.
place
Canonical action: paint.sticker_place
Create a sticker at an exact anchor. A vessel anchor is stored in the part's local frame and follows the part; a body anchor is stored geodetically and rides the planet's rotation. The new sticker takes the lowest free id.
Arguments for this operation
{ operation: "place", image, anchor: "vessel", vessel_id, part_iid, position, normal, roll?, width?, height?, depth?, alpha?, brightness? } | { operation: "place", image, anchor: "body", body, lat, lon, heading?, width?, height?, depth?, alpha?, brightness? }
Example
gatos.paint_sticker({"operation":"place","image":"meow.png","anchor":"vessel","vessel_id":"Kitten-1","part_iid":7,"position":[0,0.5,-1.4],"normal":[0,1,0],"roll":15,"width":0.6,"height":0.3})
spray
Canonical action: paint.sticker_spray
Create a sticker on whatever the camera or cursor is pointing at. The ray hits a vehicle part first and the terrain behind it; nothing hit is ENOENT. Ground clutter cannot be aimed at, but the projection box still paints it.
Arguments for this operation
{ operation: "spray", image, aim?: "camera"|"cursor", range?, roll?, width?, height?, depth?, alpha?, brightness? }
Example
gatos.paint_sticker({"operation":"spray","image":"meow.png","width":2,"height":2})
set
Canonical action: paint.sticker_size | paint.sticker_depth | paint.sticker_rotation | paint.sticker_alpha | paint.sticker_brightness | paint.sticker_image | paint.sticker_visible
Change one knob on one sticker. Exactly one knob per call, which is what selects the canonical action; width and height must be given together. value carries visibility as 0|1 and keeps the entry when hiding it.
Arguments for this operation
{ operation: "set", id, and exactly one of (width + height) | depth | roll|heading | alpha | brightness | image | value }
Example
gatos.paint_sticker({"operation":"set","id":0,"alpha":0.4})
remove
Canonical action: paint.sticker_remove
Delete one sticker and free its id for reuse.
Arguments for this operation
{ operation: "remove", id }
Example
gatos.paint_sticker({"operation":"remove","id":0})
clear
Canonical action: paint.sticker_clear
Global teardown: every sticker removed, uploaded images kept. The render hook and GPU pipeline go away with the last live sticker.
Arguments for this operation
{ operation: "clear" }
Example
gatos.paint_sticker({"operation":"clear"})
list
Read the published sticker array, the subsystem runtime line, and the last place/spray result. Submits no command.
Arguments for this operation
{ operation: "list" }
Example
gatos.paint_sticker({"operation":"list"})
debug
Canonical action: paint.sticker_debug
Global development aid: draw every sticker as a magenta checker of its projection box instead of its image, which shows where the box actually is.
Arguments for this operation
{ operation: "debug", value: 0|1 }
Example
gatos.paint_sticker({"operation":"debug","value":1})