Broken Reference Finder
Finds res:// paths in your scenes, resources and scripts that point at
files which no longer exist — and knows when a path only looks broken
because Godot already repaired it through a uid://.
The false-positive problem this solves
A plain text search for path="res://old/sprite.png" will flag that as
broken the moment the file moves, even though Godot scenes also carry a
uid="uid://..." right next to the path, and Godot resolves the resource by
that uid first — repairing the stale path silently on load. A scanner that
only checks the path reports a false positive on every project that's had
assets reorganized. This one checks the uid against Godot's own
ResourceUID table before deciding anything is actually broken, so you only
see the references that genuinely need fixing.
What it checks
- Every
.tscnand.tresfile, forpath="res://..."entries inext_resource/sub_resourcelines (plus theuid="uid://..."that often sits right beside them). - Every
.gdand.csfile, forpreload(...)andload(...)calls using either ares://or a bareuid://string. - Only string-literal paths and uids — a path assembled at runtime from a variable is outside what any static scan can see, so treat the results as a strong lead, not a guarantee.
Confidence tiers
Every result is marked High or Low confidence. Scene and resource
file references are always High — a path=/uid= attribute there is never
sitting inside a comment or a template. Script references can be Low two
ways: a preload(...) or load(...) call for a missing file that's
actually inside a commented-out line (# preload(...) in GDScript,
// preload(...) in C#) still matches a plain text search but never runs;
and a literal immediately followed by %, + or .format( —
load("res://x_%02d.png" % i) — is a template being built into a real path
at runtime, not the literal path that's actually loaded. Both are labelled
separately instead of being mixed in with calls that actually execute.
What you get back
A list with the exact file, line number and confidence tier of each
genuinely broken reference (uid-repairable ones are left out), sorted so
High-confidence results come first. Double-click a row to reveal the
containing file in your system file manager, and an Export Markdown
button writes broken_references.md so you can work through the list
outside the editor or hand it to someone else.
Setup
Copy addons/broken_reference_finder into your project's addons/ folder
and enable Broken Reference Finder under Project > Project Settings >
Plugins. Use the dock tab's Scan Project button after a rename pass,
after deleting old art, or right before you cut a release.
Works with
Godot 4.2 and later (tested on 4.7).
License
MIT — see LICENSE.
Changelog for version v1.1.0
2026-10-11 11:43:41
No changelog provided for this version.