Overview

Foundry Virtual Tabletop has a powerful engine for Lighting and Fog of War which interacts with placed Walls to define the visibility and exploration progress of a Scene. Lights can be used to influence the appearance of a scene as well as allows players to explore an environment through their character's perspective with lights revealing areas they would normally be unable to see.

Lighting Layer

Lighting Tool Palette
The Lighting Layer controls.

The Lighting Layer controls allow you to create and edit lights which change the appearance of scenes, as well as reset fog of war exploration that has already taken place

Light sources can be easily created on any scene by selecting the Draw Light Source tool from the control palette and using a click-and-drag workflow to set the light location and its overall radius. Lights default to splitting the overall radius drawn between bright and dim light. The radii of both levels of light can be configured after the light is created. Lights are blocked by Walls which have been configured to stop light, by default this includes all standard walls, Terrain Walls, and Ethereal Walls.

For more info on how to create and configure walls please see the Walls article.

Light Control Palette

Editing Light Sources

After a light has been placed, it can be moved at any time by clicking and dragging the light source icon. By default the light source will snap to the map grid, but this behavior can be disabled by holding Shift while dragging the light source to a new location.

Lights can also be toggled on and off with a right click on the light source itself.

It is also possible to quickly rotate a light by hovering the mouse cursor over the light source icon, holding Shift and rolling the mouse wheel up or down. Alternatively, holding Control uses smaller increments of rotation than the Shift key, allowing for finer adjustments. To edit an existing light, double click the light source icon, this will being up the light configuration panel.

Lighting Configuration

The lighting configuration panel is separated into three tabs which contain the various light settings. These tabs are Basic Configuration, Light Animation, and Advanced Options. The settings in these tabs are detailed below.

Basic Configuration

Lighting Configuration - Basic Configuration
The Basic Configuration panel governs the fundamental features of the light including size, color, and activation.

Basic configuration contains the most commonly used features of lights. These settings allow you to manipulate the basic size and appearance of the light.

Light Animation

Lighting Configuration - Light Animations
The Light Animation panel allows for the selection and configuration of light animation shaders.

This panel contains the options necessary to select and customize the lighting animations that can be applied to lights. For more information on the specific features of each animation see the @Article[lighting-animations] article.

Advanced Option

Lighting Configuration - Advanced Options
The Advanced Options panel allows users to fine tune lights in terms of brightness, saturation, and blending styles.

This panel allows for specific manipulation of various advanced lighting features that can drastically change the appearance of the light and how it affects the rest of the scene.

Color Blending Techniques

The following color blending techniques are available. Each one changes the way that colors are mixed with other lights and the underlying tiles, tokens, and scene backgrounds. All newly created lights default to Adaptive Luminance, but this can be changed from the Advanced Options tab of the ambient light configuration window.

Animations

Foundry VTT includes nearly twenty customizable animation shaders which create moving textures in scenes. These animations are selectable in the Light Animation tab of the light configuration window as detailed above. These animations are influenced by two sliders that govern their speed the the intensity of the animation.

API References

To interact with AmbientLights programmatically, consider using the following API concepts: