Foundry Performance

Foundry VTT WebM Token Performance Guide

Make animated WebM tokens run smoothly in Foundry VTT by choosing sensible resolution, frame rate, scene density, alpha, and fallback files.

Updated 2026-08-26Foundry Performance
Blue drake character artwork used as a Foundry VTT token example
Performance is a scene budget: token dimensions, frame rate, transparency, lighting, maps, and device capability all share it.

Practical answer

Animated tokens can make a Foundry scene feel alive, but every transparent video adds decoding and compositing work. The right goal is not the largest possible file. It is a stable scene that remains readable and responsive for the least powerful player device at the table.

Treat performance as a scene-level budget

A WebM that plays perfectly by itself may still be too expensive when a scene also contains a large map, walls, dynamic lighting, weather, tiles, browser extensions, and many other animated tokens. Test the complete encounter rather than assuming a successful preview proves the game session will be smooth.

Count simultaneous animations, not just actors in the sidebar. Hidden tokens and tokens on inactive scenes have different impact from ten visible loops inside the same viewport. Bosses and player characters can justify more detail; background NPCs usually benefit from compact files or static fallbacks.

Use 512p as the live-play baseline

For a token occupying one or two grid squares, 512p usually preserves more detail than the map view can display. HD and 4K are valuable masters, but sending those files to every connected browser can increase download, decode, memory, and compositing cost without a visible benefit at normal zoom.

AssetBest usePerformance note
512p WebMNPCs, players, normal creatures, busy encountersDefault live-play choice
1080p WebMLarge monsters, showcase scenes, close camera workTest on a representative player device
4K masterArchive, editing, very large displayAvoid as the default battlemap asset
Static WebP/PNGCrowds, actor portraits, low-motion scenesLowest playback overhead

Prefer short, silent, controlled loops

A five-second loop at up to 30 FPS is enough for breathing, cloth motion, a ready stance, an aura pulse, or a compact attack beat. Audio does not belong in a token file: it increases size, can surprise players, and is better controlled through Foundry's dedicated sound and playlist tools.

Large transparent regions still need to be decoded and composited. Crop the asset to the intended square canvas, but keep important moving content inside it. Avoid encoding a tiny subject inside a needlessly huge transparent frame.

Separate diagnosis into network, decode, and scene load

When a token stutters, identify the bottleneck before replacing everything. Slow initial appearance may be network or cache related. Smooth playback alone but poor playback in the full scene indicates scene density, lighting, GPU, or browser pressure. A file that fails everywhere may be encoded incorrectly or damaged.

  1. Open the WebM directly in the same browser and confirm transparent playback.
  2. Test one token in an empty Foundry scene.
  3. Add the production map and lighting.
  4. Add other animated assets in groups.
  5. Repeat on the weakest representative player computer.

This sequence reveals the threshold and lets you replace only the assets that matter.

Build a practical fallback policy

Keep a transparent static image for every animated token. Use it for Actor portraits, directory thumbnails, mass encounters, mobile or low-power players, and emergency substitution during a session. The still should match the generated character rather than being an unrelated source crop.

Folosa Foundry packages keep animated and static assets in predictable folders, and Folosa Bridge can create an Actor with a PNG portrait and WebM Prototype Token. That separation makes it easy to retain the animated identity while switching a particular scene to static files.

FAQ

How many animated tokens can Foundry VTT handle?

There is no universal count. The result depends on file dimensions, frame rate, alpha, map and lighting complexity, browser, GPU, network, and what else is visible in the scene.

Is 30 FPS required?

No. Up to 30 FPS is a useful ceiling, not a requirement. Controlled loops can remain readable at lower frame rates and may be lighter to play.

Should the Actor portrait also be WebM?

A static WebP or PNG is the predictable portrait and thumbnail choice. Use the transparent WebM for the Prototype Token texture.