References Tab
The References tab answers one question fast: where is this used? Point it at a file or a variable and it lists every node, character, project setting, and UI style across your project that references it - then lets you jump straight there.
Overview
References is a dockable utility tab, the same kind of tab as the Content Browser. You open it on demand for a specific target - either a file (a script, image, audio, character, or font) or a variable - and it scans your whole project to find everything that points at that target.
By default, opening References spawns a dedicated window so the list stays visible next to the script you are inspecting. If a References tab is already open somewhere, the existing one is reused and focused instead of opening another. The tab is freely dockable into any tab group in any window, so you can drag it wherever it is convenient.
A Viewer, Not an Editor
The References tab is strictly read-only. It reports where things are used and helps you navigate to them - it never edits your nodes, files, or project settings. The automatic rewriting of references when you rename or move a file is a completely separate feature, covered in Content Browser → Automatic Reference Updates and again at the bottom of this page.
Use the References tab to:
- Check what would break before you delete or rework a shared script, image, or character
- Find every dialogue node that uses a particular background image or audio clip
- See which scripts read or write a global variable
- Trace a Run Script node chain by finding everything that calls a given script
- Confirm whether a file is referenced at all before cleaning it up
Opening the References Tab
You open References for a target through a right-click menu or a toolbar button. The menu item is labeled View References everywhere it appears.
From a File
In the Content Browser, right-click a single file and choose View References. This works on scripts (.sfe), characters (.sfc), images, audio, and fonts. The tab opens scanning that file as its target.
Single Files Only
View References appears when exactly one item is selected and it is a file - not a folder, and not a Markdown (.md) file. Markdown notes are not referenced by the node graph, so there is nothing to scan.
From a Variable
In the Variables Panel, right-click a variable and choose View References. The tab scans for every node that gets or sets that variable, plus dialogue text that interpolates it with {variableName} and dialogue options that reference an enum value.
Scope matters here, and it changes what gets scanned:
- Local variables are scanned only within the script that owns them, since a local variable cannot be used anywhere else.
- Global variables are scanned across every script in the project - both open files and files still on disk - because any script can read or write them. Global variable targets show a globe next to the name.
From the Editor Toolbar
The editor's top toolbar has a View References button (a magnifier-over-document icon) that opens References for the active script file - the one currently focused in the editor. It is a one-click shortcut equivalent to right-clicking that script in the Content Browser.
Reading the Results
The header at the top of the tab shows your current target - its icon and name (and full path for files, or a type indicator for variables) - alongside a total count like "7 references" and the live Refreshed Xs ago label.
While a scan is running, the tab shows a "Scanning project files..." spinner. If nothing points at the target, you get an explicit empty state - either "This file is not referenced by any other file in the project." or "This variable is not used by any nodes in the project." An empty result is a meaningful answer: it tells you the target is safe to remove.
Grouped by Source File
Results are grouped by the source file that contains each reference, not flattened into one long list. Each group header shows the file's icon, its name (with the full path dimmed beside it), and a per-file reference count. Groups are expanded by default; click a header to collapse or expand it.
Inside a group, each row describes one specific usage. A row carries:
- A category badge - Node, Project, or UI Style - or a character/variable indicator
- A human-readable label for what kind of reference it is (for example Run Script, Set Background Image, Get Boolean, or Dialogue)
- For variable and asset references, a type indicator and, where relevant, array and global markers
- The node's own label or title in quotes, when the node has one, so you can recognize it on the canvas
Some sources are not project files. References found in your project settings appear under a Project Settings group (for example, when the target is set as the startup script or startup UI), and references stored in global variable default values appear under a Global Variables group.
What Counts as a Reference
The scan is thorough and spans several layers of your project. For a file target it finds, among others:
- Script nodes in
.sfefiles: Run Script, dialogue background images, dialogue audio, dialogue characters, Set Background Image, Set Image, Play Audio, Set Audio, Set Character, and Get / Set Character Variable nodes - Asset-typed variable values (image, character, audio), including individual elements inside array variables
- Character files (
.sfc): a character's portrait image and any asset-typed character variables - UI style files (
.sfui): font references used in your interface styles - Project settings: the startup script and startup UI
- Global variables: asset values stored as global variable defaults
For a variable target it finds every Get / Set node for that variable (across all the typed and array variants), plus dialogue text that interpolates the variable and dialogue options that reference one of its enum values.
Unsaved Edits Are Included
The scan reads the live, in-memory state of files you have open in the editor - including changes you have not saved yet - and reads everything else straight from disk. A reference you just added shows up without saving first.
Per-Result Actions
Each reference and each file group offers quick navigation. Because a file can be open in a different window, these actions route to the correct window automatically and bring it to the front.
| Action | Where it appears | What it does |
|---|---|---|
| Go to Node | On each individual reference row that points at a node in a script | Opens the source script (if it is not already open) and selects the exact node that holds the reference, so you land right on it. |
| Open File | On each file group header (for openable file types) and on the target header | Opens that file in the editor without targeting a specific node. |
| Show in Content Browser | On each file group header and on the target header | Reveals the file in the Content Browser, navigating to its folder and highlighting it. |
| Refresh | On the target header | Forces an immediate re-scan of the current target. The icon spins while scanning. |
The Go to Node action only appears on rows that correspond to a node in a script file - project-setting and global-variable references have no node to jump to, so they show no Go to Node button. Likewise, Open File and Show in Content Browser appear on group headers only for navigable source files (scripts, characters, and UI styles), and Open File is disabled for audio files, which have no in-editor view to open.
Telling the Buttons Apart
Go to Node and Open File use the same magnifier-over-document icon in the app; the button tooltips ("Open File & Go to Node" vs. "Open File") tell them apart. Show in Content Browser uses a magnifier-over-folder icon.
Live Refresh
The header shows a "Refreshed Xs ago" label that tells you how long it has been since the list last updated - reading just now, then 15s ago, 2m ago, and so on as time passes. The label ticks forward on its own so it never goes stale-looking while you read.
More importantly, the tab re-scans automatically when something in your project could have changed the results. A small filter decides whether each filesystem change is relevant to the current target, so unrelated saves elsewhere in the project are quietly ignored and do not trigger needless re-scans:
- Saving a file that actually references the current target re-scans the list; saving an unrelated file does not.
- Deleting a file re-scans, since a deletion may remove a reference you were looking at.
- Renaming or moving a file re-scans to keep the displayed paths correct. If the renamed file is your current target, the tab follows it automatically and keeps showing its references under the new path.
The manual Refresh button in the header is there for the rare case where you want to force a re-scan immediately - for example after changing files with an external tool. Most of the time the live refresh keeps the list current for you.
Not the Same as Rename/Move Rewiring
It is worth stating plainly, because the two features sound similar: the References tab and the Content Browser's automatic reference updates are different things that solve different problems.
| References Tab (this page) | Automatic Reference Updates | |
|---|---|---|
| What it is | A read-only viewer you open on demand | Behind-the-scenes maintenance that runs by itself |
| When it acts | When you choose View References for a target | When you rename or move a file |
| What it changes | Nothing - it only shows and navigates | Rewrites the referencing paths so links don't break |
| Where it's documented | Here | Content Browser |
Deletion Is Also Separate
When you delete a referenced file, the Content Browser shows its own reference-aware confirmation dialog (with Cancel, Force Delete, and Replace References options). That dialog is part of the delete flow, not the References tab. See Content Browser → Deleting.
At a Glance
- Right-click a file or variable → View References
- Results group by the source file that uses the target
- Go to Node jumps to the exact node; Open File and Show in Content Browser locate the file
- The list refreshes live; "Refreshed Xs ago" shows how current it is
- It never edits anything - rename/move rewiring is a separate feature
Next Steps