Skip to content

Release v1.1.1 — Game Master Screen

Latest

Choose a tag to compare

@esterlinej esterlinej released this 28 Jul 15:16

Game Master Screen v1.1.1

Fixed

  • scripts/api.js was missing from the published release — the macro/scripting API added in v1.1.0 (trigger(), triggerPreset(), close(), isActive()) never actually made it into the v1.1.0 release on GitHub, despite being documented and tested. If you installed v1.1.0 fresh from GitHub or the Foundry package listing, the module would have failed to load entirely — main.js imports from ./api.js, so a missing file there breaks the whole module, not just the API. This release includes the file. If you were already running a locally-patched copy of v1.1.0, nothing changes for you functionally — just update normally.

Under the hood

  • Release packaging is now automated: publishing a GitHub Release automatically builds and attaches module.zip and module.json as release assets, rather than relying on a manual upload step. This is what caught the missing-file issue above in the first place, and should prevent this exact category of bug going forward.

New: Macro/Scripting API

GMS can now be triggered from outside its own toolbar — perfect for Monk's Active Tile Triggers, macros, or other modules. Available at game.modules.get("game-master-screen").api:

const api = game.modules.get("game-master-screen").api;

await api.trigger();                 // fire with the current global default
await api.triggerPreset("Ambush!");  // fire a saved preset, by name or id
await api.close();                   // close it early
api.isActive();                      // true/false — is GMS showing right now?

This is what makes things like a door tile automatically triggering a GMS reveal the moment it swings open possible — no more relying on a manual toolbar click for environmental triggers. trigger(), triggerPreset(), and close() require a GM account; if called by a non-GM client (which can happen with some MATT trigger configurations) they log a console warning and return false rather than failing silently or throwing a confusing permissions error. isActive() has no such restriction, so it's safe to use as a condition check from anywhere.

New: Active preset/scene name in the GM header

The GM's popout window now shows what's playing, not just that something is:

Game Master Screen — Video — active

This picks up the preset's name (or the scene's name, for a per-scene override) automatically — nothing to configure. Firing via the plain global-default trigger keeps the original unlabeled header, since there's no name to show there.

Under the hood

  • No new settings, no migration needed — this is a drop-in update.
  • Full technical writeup in CHANGELOG.md.

What's Changed

  • Add public macro/scripting API and preset name in GM header by @esterlinej in #2
  • Add GitHub actions & missing api.js by @esterlinej in #3

Full Changelog: v1.0.0...v1.1.1