Immersive Vision FX
A premium Bakshi’s Bazaar module for Foundry VTT.
Soften vision and light edges, give creatures different ways of seeing, and preview the result through a token’s eyes.
Features · Preview · Installation · Quick Start · Compatibility · Roadmap · Community · AI Use · License
Feature Index
| Feature | Why it matters |
|---|---|
| Soft Vision & Light Edges | Let sight and placed lights fade into darkness while respecting Foundry’s walls and fog. |
| Peripheral Vision | Add adjustable blur and color loss near the edge of sight. |
| Creature Vision Profiles | Give humans, elves, and animals different color, low-light, and focus settings. |
| Outdoor & Cave Light | Add moonlight, starlight, and daylight spilling through cave entrances. |
| Eyeshine | Map reflective eyes to token art and reuse the mapping wherever that art appears. |
GMs create shared profiles, configure scene lighting, and map eyeshine. Players can adjust the view in their own browser or turn off the module’s effects for themselves. Profiles change how a viewer sees the scene; changing a profile won’t change a torch’s saved brightness or radius for everyone else.
Preview
Features
Soft Vision & Light Edges
Let vision and lights fade into darkness.
Vision fades with distance from the token instead of ending in a hard circle. Adjust the fade distance, curve, and strength. The fade follows walls and the token’s normal field of view.
Ambient Lights and token lights get soft edges even when no token is selected. Set your default light appearance, then override individual lights with Advanced Light Softening. Lights also offer a Photometric curve for a bright center and longer soft tail.
Peripheral Vision
Keep the center of sight clear while the edges soften.
Add gradual blur and color loss near the edge of sight. Adjust where each effect starts and how strong it becomes. These effects apply to scene content, leaving interface controls and the grid clear.
Turning Peripheral Vision off disables its blur and desaturation. Other profile effects, including color perception and tint, retain their own settings.
Creature Vision Profiles
Set how each creature sees color, darkness, and detail.
Start with Module Defaults, Human, Elf, Canid, Felid, Owl, or Ungulate, then tune four main controls: Perceived Light Reach, Color Perception, Total-Darkness Sight, and Focus Pattern.
Expand the fine-tuning groups for light response, sharpness, edge presentation, or magical tints. Optional Adaptive Eyes adds gradual adjustment when moving between dark and bright areas. Natural Clarity makes dimly lit detail easier to see, with the effect fading as the light gets weaker.
Outdoor & Cave Light
Light outdoor scenes and let daylight spill into caves.
Choose starlight, a moon phase, or a custom level of faint outdoor light in Scene Configuration. Creatures with different light sensitivity can see different amounts of detail under the same sky.
Enable Global Light Penetration on an Adjust Darkness Level Region behavior to bring outdoor light through an open cave entrance. Control its reach and softness, add indirect bounce, and choose whether a Region blocks, inherits, or replaces the scene’s ambient sky light.
Eyeshine
Add reflective eyes to your token art.
Place reflective points on a token image in the Eyeshine Editor. Every token using that art path can use the same mapping. Adjust color, size, intensity, and the dim-light floor, then preview the result with the editor’s lighting test.
Browse token art directly in the editor, add individual files or whole folders, and organize them in the Eyeshine Library. Imported art stays ready to map until you save its eye points.
Eyeshine appears when the scene is dark enough and local light reaches a mapped eye. Optional retroreflection also checks the viewer’s position and line of sight. The glow is cosmetic: it does not create light, reveal fog, or extend vision.
Profiles and token overrides
Follow the Quick Start to create and assign your first profile. For a one-token variation, choose Custom in the token’s Vision tab, adjust the values, and click Update Token.
A profile changed from its preset is marked Modified. Restore an individual field or use Restore Preset for the whole profile. Custom (keep current values) removes the preset association while retaining the current values.
Token Custom mode starts with the profile or default values currently in use. You can restore those starting values for one field, one section, or all overrides. Use Profile/Default leaves Custom mode and follows the selected shared profile or default again. Deleting a referenced profile falls back to client defaults.
Use Client Default for your browser’s default values. GMs can assign defaults to Foundry vision modes and import or export shared profiles. Imports merge by profile ID and can optionally restore vision-mode defaults; exported profiles retain their preset restore point.
Prototype tokens support the same profile and custom settings, inherited by newly placed tokens. They are not placed in a scene, so they cannot show a live preview.
Light reach, darkness sight, and color perception
- Perceived Light Reach increases the viewer’s sensitivity to existing light. It does not create illumination or grant sight in total darkness. In the default Realistic Sensitivity model, 2× sensitivity extends a 40 ft local-light radius to about 56 ft; 4× extends it to 80 ft. Legacy Distance retains the earlier direct radius multiplier.
- Total-Darkness Sight lets a token see without light, within its configured sight range. Set a range greater than 0 ft to use it. Native darkvision and truesight also use their applicable ranges.
- Color Perception lets you choose one color model at a time, including species presets with their own color settings. Color loss in darkness can be adjusted separately.
- Focus Pattern changes sharpness with token facing. It does not change line of sight or target visibility.
- Natural Clarity makes dimly lit detail easier to see when using light amplification. Adjust its strength with Dim-Light Detail. It fades as the light gets weaker and does not reveal unexplored fog or areas behind walls.
Low-light sensitivity can change which illuminated targets the viewer recognizes. Walls, light paths, and Foundry’s detection checks still constrain that visibility. Seeing faint terrain does not mean you can also recognize a token there.
With active Global Illumination, redundant vision rings and darkness effects are suppressed. Effects Activation Darkness can delay these effects until the scene reaches a chosen darkness level. Native darkness sight remains available when only this threshold suppresses the visual effects.
Foundry’s Light Amplification vision mode uses IVFX’s light response while the module is enabled; disabling IVFX restores the native mode’s presentation.
Species vision and Photometric falloff are visual approximations, not scientific simulations. Display calibration, individual animals, and adaptation vary.
Light softening, ambient sky, and cave setup
For an individual Ambient Light or token light, open its configuration and expand Advanced Light Softening. Enable Custom Light Softening to override the default fade distance, curve, and intensity. Placed lights preview on the canvas; prototype light settings apply to future tokens without a live canvas preview.
Ordinary lights keep Foundry’s bright/dim structure, wall occlusion, animation, and coloration. Cave-entry lights use the opening’s shape and reach instead of an ordinary circular falloff.
For a basic cave:
- Supply outdoor illumination through Foundry Global Illumination or Scene Configuration → Immersive Vision FX — Outdoor Light. Sky presets include None, Starlight, Crescent Moon, Half Moon, Full Moon, and Custom.
- Wall the sealed cave edges and leave an actual gap at the entrance. A darkness Region does not replace walls.
- Add an Adjust Darkness Level behavior to the Region. Under Light Entry, enable Global Light Penetration and start with Auto from Opening reach.
- Use Manual reach when you want a fixed scene distance. Daylight Softness shapes the spill; Edge Blend tunes the side and terminal fade without moving that endpoint.
- Under Indirect Light, choose Aperture Indirect Bounce for diffuse fill. Indirect Bounce sets brightness and Bounce Spread sets fade distance, from 100% to 200% of Daylight Reach.
- Select a viewer with Selected Token or Sticky Last Selected GM preview. Refresh selected viewer updates the Region form’s setup summary. Save applies the draft; closing discards it.
Advanced controls offer Legacy / Automatic or Height-Aware entry. Height-Aware uses the Opening Height you set and the scene’s daylight elevation. Direct light can follow the opening’s direction or the scene’s daylight direction. Scene azimuth sets the compass direction: 0° is north/up, increasing clockwise. Light spreads across the map in two dimensions; elevation is used when checking what blocks it.
Regions can block outdoor light for interiors, use the scene’s sky settings, or have their own sky preset or custom light level. Darkness Regions default to sealed interiors until configured. The scene needs outdoor light or active Global Illumination for light to spill inward. IVFX creates temporary cave-entry lights as needed; they are not saved as lights on the scene.
Mapping eyeshine, including prototype and animated art
- Enable Eyeshine in the module settings as a GM.
- Select a placed token, open Eyeshine Editor, and choose Add Selected Token Art. Alternatively, use the Eyeshine card on a prototype token’s Appearance tab.
- Click the art preview to add points. Drag to move them, use the mouse wheel to resize them, or use Add Pair and the deletion controls. Adjust color, intensity, dim-light floor, and size.
- Use Lighting Test to compare darkness, dim light, bright light, and Global Illumination.
- Click Save Mapping. Until then, the mapping is a draft.
To build a larger library, expand Browse Token Art, choose the storage location, and open a folder. Use Search source art, select files, and choose Add Selected, or use Add Entire Folder. Folder imports offer Include subfolders and Preserve folder structure, then show a review before Add to Library. Existing mappings are kept and duplicate art is skipped. Open File Picker provides Foundry’s usual file browser.
In Eyeshine Library, use New Folder to organize art and select a destination before importing. Drag source art onto a library folder to add it, or drag library entries between folders to move them. These folders organize the library without moving the underlying files. Use All Art, Unfiled, Search library, and Status to find entries; click an entry to map it and Back to Library to return.
Copy Settings to Selected queues settings from a saved mapping for review. Open each entry marked Needs Review, check its eye positions, and click Save Mapping to apply it. Discard Queued Changes keeps the saved mapping. For unavailable art, use Retry or Locate Replacement, then review and save the replacement mapping.
A prototype-launched mapping is saved separately from Update Prototype Token. It applies globally to that art path, not just to the prototype. For wildcard art, map each concrete variant separately using the previewed image.
Animated art must load its dimensions before point placement is enabled. Playback and timeline controls help choose a frame; the mapping uses fixed coordinates rather than tracking moving eyes through the animation.
Illumination geometry checks light reaching the eyes. Retroreflective (Advanced) also requires observer line of sight and alignment with the incoming light. World settings control eyeshine for all clients; the module’s per-client master toggle remains an opt-out. Export/import lets you transfer mappings, provided the art paths match.
Settings and defaults
Use Settings & Vision Profiles for client defaults, shared profiles, behavior, and diagnostic settings. Fine-tuning groups cover color, light response, focus and clarity, edge presentation, and special effects.
| Control | Default | Range or choices |
|---|---|---|
| Enable Immersive Vision FX | On | Per-client master toggle |
| Vision Fade Distance / Curve / Intensity | 0.20 / Smoothstep / 1.0 | 0.05–0.60 / Smoothstep, Linear, Cosine / 0.3–3.0 |
| Light Fade Distance / Curve / Intensity | 0.20 / Smoothstep / 1.0 | 0.05–0.60 / vision curves plus Photometric / 0.3–3.0 |
| Edge Smoothing | 2 | 0–10; 0 disables it |
| Peripheral Vision / Start / Blur / Desaturation | On / 0.40 / 8 / 0.70 | Start 0.10–0.80; blur 0–20; desaturation 0–1 |
| Effects Activation Darkness | 0 | 0–1; 0 follows Global Illumination without an extra threshold |
| Perceived Light Reach | 1× | 1×–4× sensitivity; world model defaults to Realistic Sensitivity |
| Color Perception / Total-Darkness Sight / Focus Pattern | Full Color / Off / Same in All Directions | Set in Vision Basics |
| Adaptive Eyes / Exposure Model / Strength | Off / Bucket / 1.0 | Bucket or Continuous; strength 0–1 |
| Dark / Light Adaptation Time | 8 s / 2 s | 0–30 s / 0–15 s |
| Bright Washout | 0.35 | 0–1 |
| GM Vision Preview | Selected Token | Neutral Overview, Selected Token, Sticky Last Selected |
| Eyeshine / Darkness Threshold | Off / 0.55 | World settings; threshold 0–1 |
| Eyeshine Geometry / Full Reflection / Cutoff | Illumination / 8° / 20° | Illumination or Retroreflective; 0°–30° / 5°–60° |
| Vision Mechanics Observer | Off | GM diagnostic observation; does not apply actor conditions |
| True Darkness Threshold / Glare Distance | 0.98 / 1.0 | Observer thresholds: 0.80–1.0 / 0.25–2.0 |
| Debug Mode / Debug Sight Radius Overlay / Enable MCP Diagnostics | Off | Troubleshooting tools; leave disabled during normal play |
Shared profiles, vision-mode assignments, the light-amplification model, and eyeshine policy/mappings are world settings. Personal rendering preferences and the master toggle are client settings. The light fade control is a minimum softness; IVFX retains a full-radius fade for ordinary lights.
Reset to Defaults shows the settings you can reset. Players reset their own client settings; GMs can also reset shared world options. Your saved profiles, vision-mode assignments, and eyeshine mappings are preserved.
Troubleshooting and performance
- No effect: confirm libWrapper is installed and enabled, then check the per-client master toggle, the selected viewer, and its profile. Global Illumination or the activation-darkness threshold can suppress effects that would otherwise appear in darkness.
- No sight in darkness: check the token’s sight range and native vision mode or Total-Darkness Sight. Perceived Light Reach needs existing illumination.
- Unexpected GM view: check GM Vision Preview and select the intended token. With no active viewer, Foundry controls the GM’s overview.
- No cave spill: check outdoor illumination, the Region’s Adjust Darkness Level behavior, and a real gap in the walls. Sealed boundaries block entry.
- No eyeshine: save the mapping, confirm the exact art path, and check scene darkness and local light at an eye point. Active Global Illumination suppresses eyeshine; Retroreflective mode adds alignment and observer line-of-sight requirements.
- Slow rendering: reduce peripheral blur and compare simpler light curves on scenes with many overlapping lights. Keep diagnostic tools off during play. The renderer has limits of 16 vision sources, 48 local lights, and 24 apertures; these are rendering limits, not performance guarantees.
- A possible module conflict: reproduce in a test world with other vision/lighting modules disabled, then report the versions, reproduction steps, and console output on Discord.
Installation
- Join Bazaar Patron.
- Link your Patreon account to the Foundry account that owns the Foundry license used by your installation.
- In Foundry Setup, open Add-on Modules → Install Module → Premium Content, find Immersive Vision FX, and install it.
- Install the required libWrapper dependency (version 1.13.5.1 or newer) when Foundry prompts. If it is missing, install it from Add-on Modules → Install Module.
- Open your world, choose Manage Modules, enable Immersive Vision FX and libWrapper, and save.
If Foundry shows Not Owned, check the linked accounts and your active tier’s access. See Foundry’s Premium Content guide for account activation and installation help.
Quick Start
For a first look, use a token with vision enabled in a dimly lit scene with a nearby light.
- As a GM, open Module Settings → Immersive Vision FX → Settings & Vision Profiles.
- Choose New Profile…, pick a preset such as Human or Canid, and click Open Draft.
- Give the profile a name and save it. You can adjust the details later.
- Open the placed token’s Vision tab, select your profile under Immersive Vision FX, and click Update Token.
- Select that token on the canvas to see its view. As a GM, use Selected Token under GM Vision Preview.
If the scene is fully lit by Global Illumination, the darkness effects may not appear. Try a darker scene to see the fade and compare profiles.
Compatibility
Version: 14.1.14
| Requirement | Status |
|---|---|
| Foundry VTT | v14; minimum 14, verified 14.367 |
| Game system | Designed to work across game systems; tested with D&D 5e 5.3.3 |
| Additional modules | libWrapper 1.13.5.1 or newer, installed and enabled |
System support, rendering limits, and other modules
Tested with D&D 5e 5.3.3. The optional Vision Mechanics Observer reads character senses and reports lighting and vision information for troubleshooting. It does not add conditions or effects to characters. Other game systems and module combinations have not all been tested.
IVFX requires libWrapper to help it work alongside other modules. Modules that also change vision or lighting can still conflict. If something looks wrong, try disabling the other vision or lighting modules in a test world, then report the combination on Discord.
Light and vision fade across the map in two dimensions. Token and light elevations participate in relevant V14 collision checks, but this is not a 3D lighting simulation. More visible sources, overlapping lights, and blur increase rendering work; results depend on the scene and client hardware.
Roadmap
Future priorities will be shaped by real campaign workflows, reported issues, and improvements I feel are appropriate. Share a feature request on the Discord! Include an example of what you are trying to show and where the current tools get in your way.
Community
Support is handled through the Bakshi’s Bazaar Discord. Patrons receive priority support, without guaranteed response or resolution times. Suggestions are welcome, but are not commitments or commissions; development priorities remain mine.
- Report bugs — Report on Discord. Include your Foundry version, Immersive Vision FX version, game system and version, steps to reproduce, console logs, and screenshots or short clips when useful.
- Request features — tell me what you were trying to show and what you wish the module could do.
- Follow updates — check the Bakshi’s Bazaar Discord for changes and compatibility notes.
AI-Assisted Development
This module is developed and maintained with the help of AI-assisted tools for coding, debugging, and testing.
I care about the quality, behavior, performance, security, and long-term maintainability of this module, and I take full responsibility for what ships. AI assistance does not replace review, testing, debugging, or security and design judgment.
AI is used here as a tool under my direction to make Foundry better and allow for long term mod support while still having a life outside of building and maintaining my free and premium modules.
If you are uncomfortable using software developed with AI-assisted tools, this module is not for you.
⚖️ License & Permissions
Premium License
Immersive Vision FX is a paid, premium module. Refer to the shipped LICENSE.txt, included with the installed module for usage and redistribution permissions.
Commercial Licensing
For bundling, commercial integrations, or custom feature development, contact GnollStack to discuss licensing and permission.
Contact
For licensing inquiries or permission slips:
- Discord:
GnollStack(Preferred) - Email:
Somedudeed@gmail.com - Please use Discord or email for commercial licensing discussions rather than public bug reports.
Author: GnollStack · Compatibility: Foundry VTT v14




