If you're writing the API script, you'll need to get the deck object somehow, then call .set() on it. deck.set('shown',true); If you're not writing the API script... Here's one: !toggle-deck Some Deck Name or Fragment code: on('ready',()=>{
const keyFormat = (s)=>s.toLowerCase().replace(/[^a-z0-9]/g,'');
const getDecks = (name) => {
let deckKey=keyFormat(name||'');
return deckKey ?
_.filter(findObjs({ type: 'deck' }), (d)=> -1 !== keyFormat(d.get('name')).indexOf(deckKey)) :
[];
};
on('chat:message',msg=>{
if('api'===msg.type && /^!toggle-deck(\b\s|$)/i.test(msg.content) && playerIsGM(msg.playerid)){
let who = (getObj('player',msg.playerid)||{get:()=>'API'}).get('_displayname');
let tokens = (msg.selected || [])
.map(o=>getObj('graphic',o._id))
.filter(g=>undefined !== g)
;
let deckname = msg.content.replace(/^!toggle-deck\s*/,'');
let decks = getDecks(deckname);
if(!deckname.length){
sendChat('',`/w "${who}" <div>Usage: <code>!toggle-deck NAME</code></div>`);
return;
}
_.each(decks, (d)=>{
d.set('shown',!d.get('shown'));
});
}
});
});