# illusionac/illusion-scriptflowdiscovery architecture

> Architecture diagram of the GitHub repository illusionac/illusion-scriptflowdiscovery, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/illusionac/illusion-scriptflowdiscovery
- Repository: https://github.com/illusionac/illusion-scriptflowdiscovery

## Overview

ISFD is a Roblox Studio plugin for discovering scripts, analyzing ModuleScript dependencies and execution order, and presenting findings in an interactive dock widget or optional Output report. The main user workflow is to initiate a scan, inspect the resulting overview and specialized views, and navigate from findings to scripts in Studio. The README documents these capabilities and module responsibilities, but no source excerpts were provided; dashed, unevidenced links indicate inferred runtime connections rather than verified calls.

Main entry points: [`src/ScriptFlowDiscovery/PluginController.luau`](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/PluginController.luau) (Plugin Controller), [`src/ScriptFlowDiscovery/MainView.luau`](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/MainView.luau) (Main View), [`src/IllusionSFD.plugin.luau`](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/IllusionSFD.plugin.luau) (Plugin Entry), [`src/ScriptFlowDiscovery/OutputFormatter.luau`](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/OutputFormatter.luau) (Output Formatter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_plugin["Plugin and Studio"]
  node_entry["Plugin Entry"]
  node_controller["Plugin Controller"]
end

subgraph group_analysis["Discovery and Analysis"]
  node_discovery["Script Discovery"]
  node_dependency["Dependency Analyzer"]
  node_execution["Execution Analyzer"]
  node_types["Shared Types<br/>[Types.luau]"]
end

subgraph group_interface["Inspection Interface"]
  node_mainview["Main View<br/>[MainView.luau]"]
  node_overview["Overview View<br/>[OverviewView.luau]"]
  node_scriptsview["Scripts Explorer<br/>[ScriptsView.luau]"]
  node_dependenciesview["Dependencies View"]
  node_executionview["Execution View<br/>[ExecutionView.luau]"]
  node_components["UI Components<br/>[UIComponents.luau]"]
  node_theme["Theme<br/>[Theme.luau]"]
end

subgraph group_reporting["Reporting"]
  node_formatter["Output Formatter"]
end

node_developer(("Developer"))
node_studio["Roblox Studio"]

node_developer -.->|"uses plugin"| node_entry
node_entry -.->|"starts"| node_controller
node_controller -.->|"creates dock widget"| node_studio
node_controller -.->|"scans scripts"| node_discovery
node_controller -.->|"analyzes dependencies"| node_dependency
node_controller -.->|"analyzes execution"| node_execution
node_controller -.->|"presents interface"| node_mainview
node_controller -.->|"prints report"| node_formatter
node_studio -.->|"provides DataModel"| node_discovery
node_mainview -.->|"hosts tab"| node_overview
node_mainview -.->|"hosts tab"| node_scriptsview
node_mainview -.->|"hosts tab"| node_dependenciesview
node_mainview -.->|"hosts tab"| node_executionview
node_developer -.->|"navigates scripts"| node_scriptsview
node_developer -.->|"inspects dependencies"| node_dependenciesview
node_developer -.->|"inspects order"| node_executionview
node_formatter -.->|"reports to Output"| node_studio

click node_entry "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/IllusionSFD.plugin.luau"
click node_controller "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/PluginController.luau"
click node_discovery "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ScriptDiscovery.luau"
click node_dependency "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/DependencyAnalyzer.luau"
click node_execution "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ExecutionAnalyzer.luau"
click node_types "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/Types.luau"
click node_mainview "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/MainView.luau"
click node_overview "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/OverviewView.luau"
click node_scriptsview "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ScriptsView.luau"
click node_dependenciesview "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/DependenciesView.luau"
click node_executionview "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ExecutionView.luau"
click node_components "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/UIComponents.luau"
click node_theme "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/Theme.luau"
click node_formatter "https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/OutputFormatter.luau"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_controller toneBlue
class node_discovery,node_dependency,node_execution,node_types toneAmber
class node_mainview,node_overview,node_scriptsview,node_dependenciesview,node_executionview,node_components,node_theme toneMint
class node_formatter toneRose
class node_developer,node_studio toneIndigo
```

## Components

### Plugin and Studio

- [Plugin Entry](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/IllusionSFD.plugin.luau): `src/IllusionSFD.plugin.luau`
- [Plugin Controller](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/PluginController.luau): `src/ScriptFlowDiscovery/PluginController.luau`

### Discovery and Analysis

- [Script Discovery](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ScriptDiscovery.luau): `src/ScriptFlowDiscovery/ScriptDiscovery.luau`
- [Dependency Analyzer](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/DependencyAnalyzer.luau): `src/ScriptFlowDiscovery/DependencyAnalyzer.luau`
- [Execution Analyzer](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ExecutionAnalyzer.luau): `src/ScriptFlowDiscovery/ExecutionAnalyzer.luau`
- [Shared Types](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/Types.luau): `src/ScriptFlowDiscovery/Types.luau`

### Inspection Interface

- [Main View](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/MainView.luau): `src/ScriptFlowDiscovery/MainView.luau`
- [Overview View](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/OverviewView.luau): `src/ScriptFlowDiscovery/OverviewView.luau`
- [Scripts Explorer](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ScriptsView.luau): `src/ScriptFlowDiscovery/ScriptsView.luau`
- [Dependencies View](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/DependenciesView.luau): `src/ScriptFlowDiscovery/DependenciesView.luau`
- [Execution View](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/ExecutionView.luau): `src/ScriptFlowDiscovery/ExecutionView.luau`
- [UI Components](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/UIComponents.luau): `src/ScriptFlowDiscovery/UIComponents.luau`
- [Theme](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/Theme.luau): `src/ScriptFlowDiscovery/Theme.luau`

### Reporting

- [Output Formatter](https://github.com/illusionac/illusion-scriptflowdiscovery/blob/master/src/ScriptFlowDiscovery/OutputFormatter.luau): `src/ScriptFlowDiscovery/OutputFormatter.luau`

### Other components

- **Developer**
- **Roblox Studio**

## Connections

- Developer → Plugin Entry: uses plugin
- Plugin Entry → Plugin Controller: starts
- Plugin Controller → Roblox Studio: creates dock widget
- Plugin Controller → Script Discovery: scans scripts
- Plugin Controller → Dependency Analyzer: analyzes dependencies
- Plugin Controller → Execution Analyzer: analyzes execution
- Plugin Controller → Main View: presents interface
- Plugin Controller → Output Formatter: prints report
- Roblox Studio → Script Discovery: provides DataModel
- Main View → Overview View: hosts tab
- Main View → Scripts Explorer: hosts tab
- Main View → Dependencies View: hosts tab
- Main View → Execution View: hosts tab
- Developer → Scripts Explorer: navigates scripts
- Developer → Dependencies View: inspects dependencies
- Developer → Execution View: inspects order
- Output Formatter → Roblox Studio: reports to Output
