Skip to content

v5.12.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:06
06647d7

Release v5.12.0

Build Details:


FEATURES

  • Redesigned Visage Editor: The editor is now built around a Layers list. On the left, the list shows everything the Visage contains in the order it is drawn: effects above the token, the token itself with its Dynamic Ring and Light Source, effects below the token, audio, and the layers that cannot be previewed (TokenMagic filters and macros). Select a layer to see its settings on the right, with the preview stage between them.
  • Applied Values on the Stage: The values that cannot be seen in the preview (scale, dimensions, rotation lock, wildcard, disposition and mirroring) are now shown in a small panel over the corner of the stage. Values the Visage does not change are faded.
  • Collapsible Settings: Settings are grouped into sections you can collapse. A collapsed Token Appearance section lists what it changes, so collapsing them all gives a quick overview of the Visage.
  • Design and Automation Views: A switch in the header moves between designing the Visage and setting up its automation. Category and tags have moved to the footer.
  • Automation as Sentences: Automation conditions are now edited in place, each one written as a short sentence (for example "Scene Darkness is above 0.6"), instead of in a separate panel. The rule starts with "Apply this Visage while all (or any) of these are true", and an "In words" summary underneath describes the whole rule in plain language.
  • Automation Tooltips: Hovering over the automation button on a Gallery card or a Selector HUD tile shows the same plain-language description of the rule.
  • Copy from Token: Token Appearance, the Dynamic Ring and the Light Source each have a copy button that fills that layer from a token. Token Appearance also has one per section (Identity, Size and Presentation). In a local Visage the button copies from the Visage's own token; in a global Visage it copies from the token selected on the canvas and is only available while exactly one token is selected. The token is copied as it looks now, including any Visages applied to it, so you can take each section from a different token by changing your selection between copies. Copying the light also copies its Lighting and Vision for RMU settings (base illumination and the magical, utter and constant modifiers) when that module is active. Copying the ring or light does not switch it on.
  • Clear Buttons: Next to each copy button is a clear button that empties just that section or layer. Clearing a Token Appearance section unticks its settings; clearing the Dynamic Ring or Light Source resets its settings and switches it off.

IMPROVEMENTS

  • Effects that are switched off are now saved with the Visage instead of being dropped when you save. They keep their settings and can be switched on again later.
  • New visual and audio effects now loop by default, because Visages are meant for lasting changes. Switch off Loop Effect in an effect's settings to play it once when the Visage is applied.
  • New Visages, local and global, now start with nothing ticked. Before a new local Visage copied every property from the token, so it kept forcing those values (such as the token's image or size at the time) even after the token itself changed. A new Visage now only changes what you choose, and "Copy from Token" fills in the token's current values where you want them.
  • The footer's reset button is now called "Reset All Settings", is available for global Visages as well as local ones, and asks for confirmation first. It keeps the label, category, tags, sharing, mode and automation.
  • Effects are added from a single "+" menu at the top of the Layers list. Loop and delete are in the effect's settings in the right panel. The visibility eye stays on each row so you can quickly switch an effect on or off.
  • Whether a visual effect is drawn above or below the token is now set with its Layer setting in the right panel. Dragging a row only changes its order within its group.
  • The applied values on the stage show mirroring as two rows, one per axis, each saying whether that axis is Standard or Flipped.
  • Automation is switched on or off in the editor with the same green power button used on Gallery cards and Selector HUD tiles, and the rule can now be edited while automation is switched off.
  • The automation panel explains that a Visage has one set of conditions, which describe a state rather than a moment, and suggests duplicating the Visage to react to a different situation. This is how you create Visages that toggle between two states (e.g., in or out of combat).
  • Redesigned Sliders: Sliders in the Visage Editor have a new look. The name and value sit on one line with the slider at full width beneath them, and the filled part of the slider follows the colour of the editor (gold for local Visages, blue for global ones).
  • More Sliders: Opacity and Scale in Token Appearance, and the value of a Darkness trigger, are now sliders. Scale, Ring Subject Scale and the effect offsets still accept any number typed into their value box, including values beyond the slider's range.
  • When the checkbox for Opacity or Scale is cleared, its value shows a dash, because that setting is left to the token and any other Visages applied to it.
  • Double-clicking any slider resets it to its default value.
  • Rotation Lock and Mirroring: These now work like every other property in Token Appearance. Tick the checkbox to set the value (On or Off, Standard or Flipped), or leave it clear to keep whatever the token already has. The old "No Change" and "Unset" options are gone, because a cleared checkbox does the same job.

BUG FIXES

  • Removed the duplicated "Add Audio" button in the Editor's Effects tab if the Sequencer module was active.
  • Fixed dropping a macro onto the Visage Editor adding it more than once after the editor had been redrawn.
  • The Emission Angle value keeps its degree symbol while the slider is moved.
  • The default names of new effects, the "Active on Actor" label in the status list of an automation condition, and the "(Promoted)" suffix added when a Local Visage is promoted to the Global Library can now be translated.
  • Fixed some messages showing their internal text key instead of a sentence: the Sequencer Database instructions, the notice after making a Visage the default, the result of importing Visages, and the tooltip of the Image file picker button.

UNDER THE HOOD

  • Added a shared range slider partial (visage-range.hbs) and a VisageRangeDisplay helper driven by a single document-level listener. These replace the inline oninput handlers, the per-render slider listeners and the Foundry <range-picker> elements in the editor.
  • Added a unified --visage-size-* size scale. The older font size and spacing variables are now aliases of it, and --visage-font-size-l changes from 1.2rem to 1.25rem.
  • Removed the unused delay direction toggle code.
  • The effect data model now defaults loop and bindToSprite to true, and new visual effects start with bindRotation on, matching how Sequencer playback already treats effects saved without these settings.
  • Removed localisation keys that are no longer used by any part of the module from every language file, along with keys that only existed in translations.
  • The Editor's tabs are replaced by one workstation grid. Every panel stays in the form and is hidden with CSS, so the Editor can still read every field when it previews or saves.
  • Effect row dragging now uses delegated listeners bound once, so reordering keeps working after the editor re-renders.
  • Added VisageSettingsSections to remember which settings sections are collapsed across re-renders and to build the section summaries.
  • Added VisageAutomationText, which builds the plain-language description of an automation rule once for the editor, Gallery cards and Selector HUD tiles. Conditions are joined with Intl.ListFormat in the user's language.
  • Automation conditions are read back from fields named condition.<id>.<field>, so every condition can be edited at once. The single-condition inspector and its actions have been removed.
  • Added VisageTokenCopy, which reads a token's current appearance (through the new VisageData.getCurrentAsVisage) and copies or clears all of it, one section, the ring or the light in the editor. The editor's default light, ring and RMU settings now come from shared factory functions.