release-1.3
Breaking Changes
- [#7] The Royal preset was removed. A module or application still set to it falls back to the Dark palette.
New Features
- Added a Send to Support button to the troubleshooter footer that posts the current report to the 3 Death Saves Discord support forum.
- After posting, a dialog links the created forum thread, plus the Discord invite when the supplied username is not found on the server.
- Submissions attach the Foundry build, system id and version, module version, and client automatically.
- The submission dialog collects a quick description, a Discord username, and whether the issue reproduced with only the module enabled.
- [#10] Added a Primary GM world setting that names which GM client runs 3DS suite automation, defaulting to Automatic.
- [#10] The chosen GM is used while online and still a GM, otherwise Foundry's active GM takes over.
- [#10]
ATLAS.primaryGMandATLAS.isPrimaryGMexpose the resolved GM to registered modules. - [#3] GM-authoritative events execute on the primary GM first, then rebroadcast to the remaining clients. Relays outside a module's allowlist are rejected and logged.
- [#3] Module registration accepts an
eventsallowlist of hook names, each optionally flaggedgmAuthoritative. - [#3] Relayed hooks fire with a trailing
{remote: true, userId}marker. - [#3] The registration handle gains
broadcast(event, ...args), which re-fires an allowlisted hook on every other connected client. - [#4] Declared detachable labels are localized at registration, falling back to the verbatim string when no translation key matches.
- [#4] Module registration accepts a
detachablearray of{id, label}app declarations, stored on the registry entry. - [#5] Added a 3DS Documentation search application, opened from its own button in the 3DS: ATLAS settings menu and available to all users.
- [#5] Results can be scoped to a single registered module or the whole wiki, and each row shows a module pill.
- [#5] The application fetches the 3 Death Saves wiki index once per open and filters it in memory as you type, opening results in a browser tab.
- [#5] The application shows an unavailable message when the wiki index cannot be reached.
- [#7] ATLAS registers itself as a themeable module, so its own applications (theme config, troubleshooter, documentation search, update notices) follow the selected theme.
- [#9] Themed applications now style their window frame, with the header background and border, window title, window icon and header control buttons following the module theme.
Bug Fixes
- Buttons inside themed applications now follow the picked theme in dark mode, including their hover, focus and active states, since the button color tokens are emitted on the button elements instead of the application container where core's dark-theme rule outranked them.
- Checkbox and radio glyphs inside themed applications now follow the picked theme, with background, border, checked, checkmark and disabled colors bridged to the theme tokens.
- Picking the Default theme option no longer strips a module's styling, since a stored
noneselection now falls through to the module's registered default theme instead of emitting no theme block and leaving every--atlasvariable undefined. - Range slider thumbs inside themed applications now use the theme background and primary instead of core's hardcoded colors.
- Text drawn on colored surfaces now picks black or white by the primary color luminance, fixing white checkmarks and selection text on light-primary presets.
- Window header control buttons no longer get painted with the theme's button fill, since their background and border variables are reset on the header controls.
- [#6] Detaching and reattaching an app repeatedly no longer duplicates theme style elements, since blocks are upserted by id.
- [#6] Opening a detached window syncs every registered module's theme blocks into it immediately.
- [#6] Theme style blocks are now written into every open detached window as well as the main window.
- [#7] ATLAS's own applications remap core's text, form, input, checkbox and button variables, plus headings, links and dividers, so their core widgets no longer render unstyled.
- [#7] Link and hover colors derive away from the background rather than always lightening, keeping light presets readable.
- [#9] Changing a module's theme selection while Force for All Players is on now updates the forced theme too, instead of leaving players on the previously forced one.
- [#9] The theme bridges core's background, text, form, level, button, input, select option and scrollbar variables and sets
color-schemeper scope, so core-styled widgets and native controls inside a themed application follow the picked theme rather than Foundry's. noneis normalized the same way for forced themes, per-application overrides and registered defaults.
Changes
- Core font size tokens are consumed directly without duplicated rem fallbacks, keeping themed text sized by the running Foundry version.
- Hardcoded fallback values were dropped from every
--atlas-*reference in the theme stylesheet, so an element outside a themed scope now inherits Foundry's own styling instead of a baked-in dark palette. - Themed window header icons now use the theme accent color instead of the title text color.
- Update English localization strings across Bondsmith, Calendaria, Don't Forget, Hero Mancer, Macro Keybinds, Mindful Encounters, Peddler, Rollies, SNOOT, Spell Book, Tenacity, Token Light Condition, TravelPace and VGMusic, normalize every key to COLLAPSEDCAPS.PascalCase, and retire unreferenced keys across the translation files
- Verified compatibility raised to Foundry VTT 14.366.
- [#7] Frost, Slate and Verdant take a primary color from their own palette instead of a clashing accent.
- [#7] Presets renamed to Lodestar, Pewter, Amberwood, Beeswax and Newsprint. The stored preset keys are unchanged, so existing selections keep resolving.
Documentation
- [#8] README documents the event relay in the What It Does list.
What's Changed
New Contributors
Full Changelog: release-1.2...release-1.3
Installation: To manually install this release, use the following manifest URL: https://github.com/Sayshal/3DS-ATLAS/releases/download/release-1.3/module.json