Property Path Inspector
A lightweight Foundry VTT module that lets GMs and module developers instantly discover the data path of any field on an Item or Actor sheet.
This project is developed independently, in the developer's free time. Suggestions, bug reports, and fixes are always welcome.
How to use
- Activate the inspector shortcut (default Alt + P, customizable in Foundry's Configure Controls).
- Hover over any field on an open Item or Actor sheet — form fields, rich text descriptions, anything rendered from
systemdata. - A tooltip appears next to the cursor showing the field's data path (e.g.
system.description.value). - Click the field to copy the currently shown path to your clipboard.
- Press the shortcut again to deactivate.
Game system compatibility
The module is system-agnostic: it doesn't rely on any system-specific configuration to work, unlike modules that need a field mapped per system. It reads whatever name or data-edit attribute Foundry itself puts on a field, so any system built the standard way is supported out of the box.
It recognizes both ApplicationV2 sheets (.application) and legacy Application (V1) sheets (.window-app), so it works regardless of whether a system has migrated its sheets to the new API.
For elements that don't expose a name (plain read-only text, for instance), the module falls back to matching the visible text against the item's raw system data. This fallback is best-effort: it can fail if two fields share the same value, or if the displayed text differs from the stored raw value.
Default Shortcut
Alt + P. Fully rebindable in Foundry's Configure Controls menu, under Property Path Inspector.
Adding a new language
This was designed to be quite simple:
- Copy
lang/en.json(orlang/pt-BR.json) to a new file, e.g.lang/es.json. - Translate the values (the part to the right of each
:). Do not change the keys on the left (e.g."PROPERTYINSPECTOR.Notif.Activated") — only the translated text. - Open
module.jsonand add an entry under"languages":
{ "lang": "es", "name": "Español", "path": "lang/es.json" }
- Restart Foundry completely (not just a page refresh or world relaunch) — manifest changes are only read on startup. The new language will appear in Foundry's language options.
No other file needs to be touched to translate the module — all interface text comes from the files in lang/.
Module structure
property-inspector/
├── module.json Module manifest
├── scripts/
│ └── property-inspector.js Keybinding, hover detection, path resolution, tooltip, clipboard
├── styles/
│ └── property-inspector.css Tooltip and highlight styles
└── lang/
├── en.json English
└── pt-BR.json Portuguese
Technical notes
- The inspector never writes to any Document — it's a pure read-only overlay, no world setting or data storage is used.
- Exact paths come straight from the
nameattribute (form fields) ordata-editattribute (rich text/prose-mirror content in display mode). - The approximate fallback path is found by a recursive search through
item.system(oractor.system), comparing each leaf value to the hovered element's text content. - The tooltip is a fixed-position element with a very high
z-index; since the browser's nativetitletooltip and Foundry's owndata-tooltipsystem both render above any page content regardless ofz-index, the module temporarily removes whichever of those two attributes is present on the hovered element (restoring it afterward) so they don't overlap the module's own tooltip. - A click while the inspector is active copies the last path shown by the tooltip — not a fresh lookup at the click coordinates — since the tooltip is offset from the cursor.
Support my work
Images
