A Roblox Studio plugin that resolves selected Lua expressions into their fully qualified object paths within the DataModel hierarchy.
This tool is designed for developers who need accurate, canonical object paths without executing code or relying on loadstring.
When working in Roblox Studio, developers often reference objects indirectly through local variables, chained indexing, or require() calls. Determining the full object path manually can be time-consuming and error-prone.
This plugin analyzes a selected Lua expression and resolves it into its complete path (for example, from obj.PartA to game:GetService("ReplicatedStorage").ModuleA.PartA) using safe static evaluation.
The plugin does not execute arbitrary Lua code.
- Static resolution of dot indexing (
a.b.c) - Local variable tracking within the script
- Canonical path reconstruction
- No use of
loadstring - No runtime execution
local storage = game:GetService("ReplicatedStorage")
local moduleA = require(storage.ModuleA)
local object = moduleA.ObjectAobject
game:GetService("ReplicatedStorage").ModuleA.ObjectA
local ws = workspace
local model = ws.ModelA
local part = model.PartASelecting:
part
Resolves to:
workspace.ModelA.PartA
The plugin performs controlled static analysis:
-
Parses the selected expression.
-
Tracks local variable assignments.
-
Resolves:
gameworkspacescriptGetServicerequire
-
Walks the object hierarchy safely.
-
Reconstructs the canonical path string.
Only safe, statically analyzable expressions are supported.
No arbitrary function execution occurs at any point.
This plugin:
- Does not use
loadstring - Does not execute dynamic code
- Does not evaluate user-defined functions
- Restricts evaluation to whitelisted operations
- Limits traversal depth to prevent runaway resolution
All resolution is deterministic and controlled.
- Local variable references
- Property access (
object.Child) - Bracket indexing with constant strings
game:GetService("ServiceName")- Static
require()calls - Constant string concatenation
The following patterns are intentionally unsupported:
- Loops
- Conditional branching
- Arbitrary function calls
- Metatable behavior
- Dynamic runtime mutations
- Non-constant indexing
- Computed expressions with side effects
If an expression cannot be resolved safely, the plugin will return a resolution error if debug prints are enabled.
- Generating canonical object paths
- Refactoring scripts
- Debugging indirect references
- Verifying module return structures
- Improving code clarity
- Tooling and static analysis workflows
- Download the plugin file.
- Open Roblox Studio.
- Navigate to Plugins → Manage Plugins → Install from File.
- Select the plugin file.
- Enhanced AST parsing
- Cross-script reference analysis
- Improved module inference
- Smarter fallback resolution strategies
- Performance optimizations for large hierarchies
Custom Source-Available (No Redistribution)