Keeping parity with the Roll20 Tabletop, we've rolled out a few minor feature updates, see below for more details! [Jumpgate] Page Object: darknessEffect The new Darkness Effect is now available on Page objects using the darknessEffect property. There are 3 values you can set: Value Result "none" This is the Overlay effect, just pure darkness. "lightfog" This is the Pale Mist effect, light colored mists slowly swirling about. "darkfog" This is the Dark Fog effect, dark colored fog slowly swirling about. Set these values on a page object: page.set('darknessEffect', 'darkfog'); Text Object: stroke Text objects now have access to the stroke property. You can use the same rules for setting the stroke color as you do the color property. The stroke property defaults to "transparent" . createObj('text',{ top: 70, left: 280, font_size: 26, font_family: "Goblin One", text: "Time for your Doom!, color: "#ff0000", stroke: "#000000" layer: "map", pageid: pageid }); Image URLs Image URLs will now use the correct version of the image ( thumb , max , etc) based on the property they are being set into. Card Object: card_back Card objects now have the card_back property exposed. The value will be "" (empty string) if the card uses the deck's back, or will contain a URL if the card has its own back. sendChat("Card List", `<div>This card: <img src="${card.get('card_back')||deck.get('avatar')}" /></div>`); You can set card_back following the same rules as for the card's avatar setting: createObj('card',{ name: "Attack +2", avatar: AttackP2URL, card_back: AttackCardBack, deckid: MoveDeckId }); findObjs() Additions There is a new option for findObjs() , startsWith . If you set startsWith to true , any string comparisons check if a string begins with a given value. For example, if you wanted to find all the graphics with a name that started with "NPC" , you could use: let NPCTokens = findObjs({type:'graphic', name: 'NPC'},{startsWith: true}); You can of course combine this with caseInsensitive : let NPCTokens = findObjs({type:'graphic', name: 'npc'},{startsWith: true, caseInsensitive: true}); In addition, there are some behind the scenes changes to the way that filtering works which will speed up some cases (specifically, simpler comparisons are used to eliminate objects before more complicated ones). Furthermore, image URLs will now match exclusive of unimportant details (cache buster differences, format differences, etc.).