Hello, When creating path objects in the API it looks like a change event is being fired. Specifically it's firing the "change:path:_path" and "change:path" events. Path objects created in game with any of the rectangle, polygon, or freehand tools do not cause the change events to be fired and instead only fire "add:path" as expected. Edit: Is this behavior a bug? As far as I know nothing else does this. It looks like path objects are created blank and then updated with the correct geometry which kind of feels like we should be able to change the geometry after creation ourselves? Test Code: "use strict" ; function displayEvents ( eventNames ) { for ( const eventName of eventNames ) { on ( eventName , function ( object , previous ) { const info = [ [ "Event Name" , eventName ], [ "Object Type" , object . get ( "_type" )], [ "Object Id" , object . id ] ]; if ( previous ) { for ( const key in previous ) { const oldValue = previous [ key ]; const newValue = object . get ( key ); if ( newValue != oldValue ) { info . push ([ `Old $ { key } ` , oldValue ], [ `New $ { key } ` , newValue ]); } } } info . forEach ( row => log ( row . join ( ": " ))); }); } } on ( "ready" , function main () { displayEvents ([ "add:path" , "change:path" , "change:path:_path" , "change:path:path" ]); createObj ( "path" , { _pageid : findObjs ({ _type : "page" })[ 0 ]. id , _path : `"[["M",0,0],["L",700,700]]"` , layer : "objects" , stroke : " #000000 " , top : 350 , left : 350 , width : 700 , height : 700 }); }); Console Output: Spinning up new sandbox... "Starting webworker script..." "Loading 710 translation strings to worker..." "Event Name: change:path:_path" "Object Type: path" "Object Id: -MEOLHicoaU09bHA-Vq5" "Old _path: " "New _path: \"[[\"M\",0,0],[\"L\",700,700]]\"" "Event Name: change:path" "Object Type: path" "Object Id: -MEOLHicoaU09bHA-Vq5" "Old _path: " "New _path: \"[[\"M\",0,0],[\"L\",700,700]]\""