Repository navigation
Tutorial 10
Goal: To master Visage, you need to think like an architect. This tutorial will teach you where to place your automations to keep your game running efficiently, how to use selective conditions, and how to use the browser console to find hidden "Derived" attributes that don't appear in the standard Attribute Picker.
- Role: Player or Game Master
- Required Modules: Visage
- Local vs. Global Automations (When to use which)
- The "Halfway House" (Selective Global Rules)
- Using the Browser Console (F12)
- Inspecting the
canvas.tokens.controlled[0].actorobject - Building custom data paths
When you want an event to trigger a Visage, you have to decide where that Visage lives.
- Local Automations (Character-Specific): If an automation is unique to a single character (like a barbarian's "rage" or a specific cursed magic item), build it in their Local Library. It keeps the global engine light because Visage only watches for that trigger when that specific token is in the scene.
- Global Automations (Universal Rules): If a mechanic affects everyone (like the "Bloodied" condition at 50% HP, or a shadow aura that applies when entering a dark region), build it in the Global Library.
What if you have a rule that applies to a group of tokens, but not everyone? (For example, a "Zombie Resurrection" visual effect). You shouldn't put it in 50 individual Local Libraries, but if you make it Global, you don't want your players resurrecting as zombies!
The solution is a Selective Global Rule:
- Build the Visage in the Global Library.
- Add your primary trigger (e.g.,
Attribute: system.attributes.hp.value <= 0). - Click the Attribute button again to add a second condition.
- Set the path to
name, read astext, the comparison tocontains, and the value toZombie. - Make sure the rule's sentence says "Apply this Visage while all of these are true".
Now, your Global Library remains clean, Local Libraries remain empty, and the effect only fires when a token dies if their name contains "Zombie".
As mentioned in Tutorial 6, the Attribute Picker only shows "Base" data (permanent database values). Temporary, calculated numbers (like a character's current armour class after casting a spell, or their temporary movement speed) are called "Derived" attributes.
You can still use Derived attributes in Visage automations, but you have to find their exact paths yourself using Foundry's backend.
-
Select a Token: Click on any token on your canvas.
-
Open the Console: Press
F12on your keyboard (orCtrl+Shift+Ion Windows /Cmd+Option+Ion Mac) to open your browser's Developer Tools. Click the Console tab. -
The Magic Command: At the very bottom of the console, type this exact command and press Enter:
canvas.tokens.controlled[0].actor -
Inspect the Object: The console will spit out an object that looks like
Actor5e {...}(or your system's equivalent). Click the small arrow►next to it to expand it. -
Dig into the System Data: Scroll down and find the property called
system. Expand it►. This is where almost all of a character's mechanical data lives.-
Example: Expand
attributes, then look forac. Inside you might seevalue: 16.
-
Example: Expand
-
Build the Path: To use this in Visage, you just connect the folders you opened with dots.
- You opened
system->attributes->ac-> and foundvalue. - Your final path is:
system.attributes.ac.value.
Tip: The path is case-sensitive and you must include any symbols (derived data paths often contain a leading
_symbol). - You opened
-
Use it in Visage: Go back to the Visage Editor, create a condition, and manually type
system.attributes.ac.valueinto the data path field. You have successfully hacked the matrix.
-
Test your Custom Path: Set up a quick automation using your new custom path (e.g., Make a token glow if
system.attributes.ac.value > 15). - Change the Value: Double-click the token to open its sheet and equip a shield or cast a spell that changes that derived attribute.
- Watch the Automation: Visage will instantly read the derived data and trigger the effect!
-
Exploring Flags: Not everything is in the
systemfolder. Many modules (like Midi-QOL or condition managers) store their data in a folder calledflags. If you expandflagsin the console, you might find a path likeflags.midi-qol.advantage.all. You can use this path in Visage just like any other. -
Data Type Safety: When manually typing a custom path, make sure you set the condition's read as dropdown correctly in the Visage Editor's Automation view. If the value in the console is a word (like
"poisoned"), set it totext. If it istrueorfalse, set it totrue or false.Tip: Visage can only test
number,booleanandstringdata types.
- Home
-
Getting Started
- Tutorial 1: Creating a Local Identity
- Tutorial 2: Creating a Global Overlay
- Tutorial 3: Lighting & Sequencer Audio
- Tutorial 4: Sequencer Visuals
- Tutorial 5: Using Wildcards
- Tutorial 6: Attribute Conditions
- Tutorial 7: Status / Active Effect Conditions
- Tutorial 8: Event Conditions
- Tutorial 9: Library Actions
- Tutorial 10: Automation Strategy
- Game Settings
- The Visage Selector HUD
- The Visage Library
- The Visage Editor
- System & Module Compatibility Notes
- Advanced Features
- Example Macros