| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
This is a really silly, entirely unnecessary, but fun Foundry VTT module called Idle Token Animation. It adds subtle ambient motion to living tokens, making them gently bob, sway, and tilt while remaining in their true scene position. The idea began as a macro for FX Bus, but it gradually became substantial enough to turn into its own standalone module.
Tokens can gently bob, sway, and tilt while remaining in their true scene position. The effect is visual-only: it does not move TokenDocuments, change token coordinates, alter scene data, or affect attacks, ranges, targeting, walls, automation, or grid position.
The GM controls global animation behaviour through world settings. Players do not configure the effect locally.
Actors can be excluded through their Prototype Token configuration. Individual placed tokens can also be excluded or given their own motion settings.
Supported conditions can automatically alter the animation. Petrified or paralysed tokens become still, unconscious tokens move more subtly, stunned tokens may twitch, and frightened tokens tremble.
Condition-sensitive animation currently supports:
Unsupported systems continue using normal idle animation.
idle_animation.mp4When condition-sensitive animation is enabled, recognised conditions are translated into neutral visual behaviours.
| Condition | Animation behaviour |
|---|---|
| Petrified | Animation stops |
| Paralysed / Paralyzed | Animation stops |
| Unconscious | Slow, subdued motion |
| Stunned | Reduced motion with occasional twitches |
| Frightened | Normal motion with a subtle tremor |
Conditions are resolved by the GM and included in the normal animation synchronisation message.
D&D 5e uses its active status data.
Pathfinder Second Edition uses the system's prepared actor condition collection, including active stored and generated conditions.
If multiple recognised conditions are active, stronger movement restrictions take priority.
Idle Token Animation separates eligibility and condition resolution from rendering.
The GM determines:
The GM then broadcasts a synchronisation message to connected clients.
Each client animates only the listed token render objects locally.
The animation writes only to the token render layer:
The module does not write animation changes back to the TokenDocument or Scene.
When animation stops, the original pivot and rotation are restored.
Idle Token Animation does not:
Document flags are written only when the GM deliberately changes actor or placed-token configuration.
Turns the module on or off.
Default: enabled.
Allows recognised conditions to modify token animation.
Unsupported systems and unrecognised conditions continue using normal idle motion.
Default: enabled.
Opens the compact motion configuration window.
Controls the overall animation strength.
Default: 1.0.
Controls the idle animation frequency in cycles per second.
Default: 0.5.
Adds subtle organic variation to the base idle movement.
Default: 0.01.
Controls vertical movement in pixels before Motion Strength is applied.
Default: 2.
Controls horizontal movement in pixels before Motion Strength is applied.
Default: 2.
Controls visual rotation in degrees before Motion Strength is applied.
Default: 0.
Gives tokens different phases, amplitudes, frequencies, and gradual speed variation so groups do not move in unison.
Default: enabled.
Excludes hidden tokens from animation.
Default: enabled.
Excludes tokens currently in combat.
Default: disabled.
Requires actor HP to resolve above 0 before the token can animate.
Disable this setting to ignore HP during eligibility checks.
Default: enabled.
Controls how the module resolves actor HP.
Choices:
Default: automatic.
Actor system path used when HP Detection Mode is set to Custom.
Example:
system.attributes.hp.value
Treats actors as opted out unless explicitly enabled later.
Default: disabled.
Placed tokens receive an Idle Animation tab in Token Configuration.
The tab allows the GM to:
Placed-token motion overrides are applied before condition responses.
Actor Prototype Token opt-out:
await actor.update({
"prototypeToken.flags.idle-token-animation.disabled": true
});Placed-token opt-out:
await token.document.setFlag(
"idle-token-animation",
"disabled",
true
);Clear placed-token opt-out:
await token.document.unsetFlag(
"idle-token-animation",
"disabled"
);Any disable flag wins.
FX Bus token oscillation takes priority over Idle Token Animation.
When FX Bus starts token oscillation, Idle Token Animation stops animating that token and restores its captured render baseline.
When FX Bus token oscillation stops, Idle Token Animation requests a fresh GM synchronisation and resumes the token's current eligible animation state.
This prevents two modules from trying to animate the same token render object simultaneously.
Recognised conditions are read from actor statuses and Active Effects.
Recognised conditions are read from PF2e's prepared actor.conditions collection.
PF2e condition, effect, and affliction Item changes trigger an automatic animation resynchronisation.
Other systems retain normal idle animation.
Condition-sensitive behaviour is disabled for unsupported systems without affecting the rest of the module.
Idle Token Animation is free and open source.
This project does not accept donations. If you would like to make a donation instead, please consider UNITED24, Ukraine's official fundraising platform:
Idle Token Animation receives no money from this link.
| Back | FazBrowse Home | New Git URL |