When playing a card from a deck to the table the api is firing events for both adding a graphic as well as adding a card. Both use the same id and the object with that id has a type of "graphic". Below is the code used. It is the only API script on the campaign. "use strict" ; on ( "ready" , function main () { function eventHandler ( eventName ) { on ( eventName , function ( object ) { log ( ` $ { eventName } : $ { object . get ( "type" )} $ { object . id } .` ); }); } eventHandler ( "add:graphic" ); eventHandler ( "add:card" ); eventHandler ( "destroy:graphic" ); eventHandler ( "destroy:card" ); }); Below is the console output that playing a card from the Playing Cards deck and deleting it from the tabletop produces. "add:graphic: graphic-ME211zEu6v90jewkMQW." "add:card: graphic-ME211zEu6v90jewkMQW." "destroy:graphic: graphic-ME211zEu6v90jewkMQW." "destroy:card: graphic-ME211zEu6v90jewkMQW."