Description
Changelog
Reviews (0)
Godot Validation Flow
Odin-shaped validation for Godot 4.3+. Catch broken dependencies, bad UIDs, empty NodePaths, export problems, and your own content rules before they ship.
MIT licensed.
Website & docs: https://indieshade.github.io/godot-validation-flow/
What you get
- Validation dock — bottom panel with Subject / Detail / Severity / Actions (open, reveal, copy, ignore)
- Scene badge — live icon + issue count on Canvas Item and Spatial menus; click to open Validation with Scene filter
- Severity toggles — Error / Warning / Info with clear on/off backgrounds and live counts
- 13 built-in rules — dependencies, UIDs, export integrity & coverage, autoloads, empty NodePaths, orphans, configuration warnings, and more
- Content inject — GDScript
VFValidatefluent API and C# attributes (VfRequired,VfScenePath,VfRange, …) - Export gate — block export while blocking issues remain
- Headless CLI — CI-friendly JSON + HTML reports
Daily workflow
- Press Ctrl+Alt+D (or Validate in the dock)
- Watch the Scene badge for the open scene’s health
- Click the badge or browse the full project in the dock
- Fix, ignore, or filter by profile / group / rule / severity
Built-in rules
| Rule ID | What it catches |
|---|---|
missing_dependencies |
Broken ExtResource / missing files |
broken_uid |
Stale or broken UID cache entries |
duplicate_uid |
UID collisions |
uid_mismatch |
.uid file vs editor cache mismatch |
export_integrity |
Main scene / export preset integrity |
export_coverage |
Scenes missing from restrictive export filters |
orphan_assets |
Unreferenced assets |
duplicate_basename |
Same filename in multiple paths |
autoload_paths |
Missing autoload scripts |
empty_node_paths |
Empty exported NodePaths |
configuration_warnings |
Aggregated get_configuration_warnings() |
filename_substring |
Configurable filename substring |
script_hooks |
_vf_validate / C# attributes / hooks |
Toggle rules in validators/ProjectValidationRules.tres. Profiles (validators/profiles/*.tres) control scan scope.
Content inject (example)
func _vf_validate() -> PackedStringArray:
return VFValidate.begin() \
.node_path(self, target, "target", "", "Node2D") \
.finish()
Changelog for version 0.13.1
No changelog provided for this version.