Immersive Light
A module for automation and management of light sources, and their fuel consumption. Includes sputtering mechanics at low fuel. Fully customizable. System-agnostic with first-class PF2e and D&D 5e support.
System Agnosticv1.3.1Foundry V13+
★ Traveler Tierimmersive-light · v1.3.1 · Foundry VTT v13+ (verified 14.367) · Premium: Traveler tier · System-agnostic, first-class PF2e (8.4.0), D&D 5e (5.3.3) & Crucible (0.10.2)For players and GMs who want to track lantern and torch usage without any bookkeeping. This module adds a fuel gauge that tracks fuel usage. Each item like an oil flask or torch displays time remaining while in use and stacks neatly when multiple fuel items share the same name. Includes a drop feature and the ability to hood lanterns.
Requires: Wayfinder Core, socketlib.
Installation
Classic manifest install. Premium manifest URLs are issued to active subscribers.
- Get your manifest URL from wayfindermodules.com/install.
- In Foundry, open Add-on Modules → Install Module.
- Paste it into the Manifest URL field and click Install.
Install Wayfinder Core and socketlib the same way first; this module won't load without them.
Features:
- Adds a fuel gauge that tracks fuel usage in gametime.
- Lets you aim a bullseye lantern’s light cone by holding V. Useful for flashlights in modern settings too.
- Toggleable fuel gauge: ALT + L.
- Lights flicker when fuel is about to run out, threshold can be adjusted in the settings.
- Ability to drop items and hood lanterns. Works without permissions to create tokens, but if no GM is online it will not work.
- Ability to pick up previously dropped light items.
- Fuel continues depleting even when lit lanterns and torches are dropped on the ground.
- Full customization of color templates for light sources.
- Ability for GMs to create and edit their own custom light sources in settings.
- Full customization of chat notifications such as “torch has burnt out” and “fuel is running low”.
- Light Attenuation (v1.0.2 onwards) to soften the hard edges between light and darkness that Foundry generates on lights that are cones and/or occluded partially by a wall. Off by default since it affects every light in the game world.
- Fog of War Attenuation (v1.2.0+) softens the darkness band between explored and unexplored areas.
- Vision Attenuation (v1.2.0+) softens the vision cones of tokens on the scene, caused by walls obstructing their line of sight.
- Complete Crucible support (v1.3.0+) allowing you to modify as much or as little in the system as you desire.
Lightsources & Fuel
Each one gets its own light profile and its own behaviour.
| Category | Fuel | Dim / Bright | Angle | Animation |
|---|---|---|---|---|
| Torch | Consumes itself | 40 / 20 | 360° | Torch flicker |
| Candle | Consumes itself | 10 / 5 | 360° | Gentle pulse |
| Sunrod / Glow-rod | Consumes itself | 40 / 20 | 360° | None (steady) |
| Hooded lantern | Separate oil | 60 / 30 | 360° | Torch flicker |
| Bullseye lantern | Separate oil | 120 / 60 | 45° cone | Torch flicker |
| Infinite (Everlight Crystal, Continual Flame) | Never consumes | 60 / 30 | 360° | Pulse |
Aiming a bullseye lantern
Hold V, rebindable and the selected token’s light cone follows your cursor. Release to leave it where it is.
Aiming in this way only works for lights with an angle under 360°, since there’s nothing to aim on an omnidirectional source.
System support
PF2e matches on slug: torch, candle, sunrod/glow-rod, lantern-hooded, lantern-bulls-eye, oil-1-pint, everlight-crystal. Legacy slugs and English name patterns are kept alongside these for homebrew and older content.
D&D 5e matches torch, candle, lantern-hooded, lantern-bullseye, oil/oil-flask, plus name matching for sunrods and Continual Flame.
Anything else falls back to matching English item names for torches, candles, sunrods and lanterns. That works until someone runs a French table, at which point it doesn't. Slug matching is language-independent; name matching only catches English clients.
Oils are the exception and are always matched by slug. On a system without dedicated support, declare your oil slug on the Items tab or lanterns won't refuel at all.
Call of Cthulhu, LANCER, Cyberpunk Red and Shadowdark are the next systems we want to cover properly. No dates on any of them.
Settings
Three general settings exist the Control Panel itself. The rest of the settings are separated into two menus. Light Configuration controls everything related to custom and default light sources, as well as messages caused by them. Light Rendering Settings groups all light attenuation/feathering settings for Fog of War, Vision, Light Cones and wall shadows as well as a per-player toggle for all of them.
| Setting | Scope | Type | Default | What it does |
|---|---|---|---|---|
enableSputtering | world | Boolean | true | Lights dim and flicker when fuel is low. |
sputterThreshold | world | Number | 10 | Percentage of max duration at which sputtering begins. Range 1-50. |
enableHUD | client | Boolean | true | Show the fuel bar for the selected token. Per-player. |
Light
Colour and intensity for each kind of source, with a preview for the one you're currently editing.
| Category | Colour | Intensity |
|---|---|---|
| Torch | #ffa500 | 0.35 |
| Lantern | #ffddaa | 0.25 |
| Candle | #ff7b00 | 0.40 |
| Sunrod | #d0f0ff | 0.20 |
| Everlight | #00d2ff | 0.30 |
Items
A card per each category of a light source with the ability to add custom categories for both Light Sources (e.g. Flashlights) and Fuel (e.g. Batteries).
Drag an item onto a card to add it.
| Setting | Default | Burn time for |
|---|---|---|
torchDuration | 60 | Torches |
candleDuration | 480 | Candles |
sunrodDuration | 360 | Sunrods and glow-rods |
oilDuration | 360 | One unit of standard oil |
A bullseye's cone is set on its own card under bullseyeAngle. Default/blank adopts system default (90° for PF2e, 45° elsewhere).
Fuels are in a separate section below Light Sources.
Your own sources and fuels. The + card at the end of either grid opens a creation menu, allowing you to create your own, custom light sources (items only for now) and fuels on a step-by-step guide.
A source you defined keeps its colour in that wizard. It does not get a row in the Light tab, and can be edited by editing the category itself.
Messages
Each message has two wordings. A light lying on the ground uses the second one and posts with no speaker. One switch covers both.
| Message | State | Default |
|---|---|---|
| Sputtering | Carried | The {sourceName} held by {tokenName} begins to sputter and dim… |
| Sputtering | On the ground | The {sourceName} on the ground sputters and dims… |
| Extinguish | Carried | {tokenName} extinguished their {sourceName}. It has {remainingMinutes} minutes remaining. |
| Extinguish | On the ground | The {sourceName} on the ground goes out, with {remainingMinutes} minutes remaining. |
| Burnout | Carried | {fuelName} held by {tokenName} burns out completely. |
| Burnout | On the ground | The {fuelName} on the ground burns out completely. |
Wildcards: {sourceName}, {tokenName}, {fuelName}, {remainingMinutes}
Light Rendering
The second window. Softens the hard edges Foundry draws between light and dark. Each one is a switch and its own slider, and all four are off by default since they affect every light in the world.
| Setting | Scope | Type | Default | What it does |
|---|---|---|---|---|
softenLightCones | world | Boolean | false | Fade the edge of a cone light. |
coneAttenuationPercent | world | Number | 35 | How far that edge fades. Range 0-50. |
softenWallShadows | world | Boolean | false | Fade the edge where a wall cuts a light. |
shadowAttenuationPercent | world | Number | 35 | How far that edge fades. Range 0-50. |
softenVisionEdges | world | Boolean | false | Fade the edge where a wall cuts a token's vision. |
visionAttenuationPercent | world | Number | 35 | How far that edge fades. Range 0-50. |
softenDarknessEdges | world | Boolean | false | Fade the band between explored and unexplored fog. Experimental. |
darknessSoftness | world | Number | 25 | How far that band fades. Range 0-50. |
enableAttenuation | client | Boolean | true | Enables or disables rendering changes on a per player basis. |
All attenuation settings are purely visual and change nothing about the token's mechanical perception of the scene.
Keybindings
| Action | Default | Notes |
|---|---|---|
| Toggle Light Duration Bar | Alt + L | Show/hide the HUD fuel bar. |
| Rotate Light Cone | V (hold) | Aim directional light toward the cursor. |
Support
Questions, bug reports, and feature requests are welcome on the Wayfinder Society Discord.
Changelog · License. Distributed under a proprietary license.