skills/find-ref/SKILL.md
Find asset references and dependencies using SipherReferenceFinder commandlet
npx skillsauth add sipherxyz/universal-ue-skills find-refInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Role: Asset Reference & Dependency Finder Scope: Any .uasset file or GameplayTag in the project Platform: Windows (Unreal Editor Commandlet) Use Cases: Dependency analysis, refactoring impact assessment, asset cleanup, GameplayTag usage tracking
This skill reads project paths from skills.config.json at the repository root.
project.root / project.uproject — project locationengine.path / engine.editor_cmd — engine installation
If not found, auto-detect using ue-detect-engine skill and CWD.Find all referencers (assets that use a target asset) and dependencies (assets that the target uses) for any Unreal Engine asset. Also supports finding all assets that use specific GameplayTags.
SipherAIBPTools plugin enabled{engine.editor_cmd}{project.root}/{project.uproject}Convert file path to UE package path:
{project.content_path}\S2\Folder\AssetName.uasset
↓
/Game/S2/Folder/AssetName
Command:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/Path/To/Asset" -stdout
Note: Use
//Game(double slash) to prevent bash path expansion on Windows.
Example:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/BehaviorTrees/BBD_eli_beast_" -stdout
Find all assets using a specific tag:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -tag="Sipher.ComboGraph" -stdout
Include child tags:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -tag="Sipher.ComboGraph" -children -stdout
Find all GameplayTags usage:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -alltags -stdout
=== REFERENCERS (assets that use this asset): 24 ===
[/Game/S2/...] AssetName (AssetClass)
...
=== DEPENDENCIES (assets this asset uses): 6 ===
[/Game/S2/...] AssetName (AssetClass)
...
Total: 30 reference(s).
Reports are saved to: {project.root}/Saved/Reports/References/
| Format | File Pattern | Content |
|--------|--------------|---------|
| Markdown | asset_report_{AssetName}_{timestamp}.md | Tree view of folder hierarchy |
| CSV | references_{SearchTerm}_{timestamp}.csv | Flat list for spreadsheet |
# Asset Reference Report
**Asset:** `/Game/S2/Core_Boss/s2_boss_gaolanying/BP_AnimNotify_SpawnFan`
## Referencers (24)
Game └── S2/ ├── Core_Boss/ │ └── s2_boss_gaolanying/ │ ├── Animation/ │ │ └── Movement/ │ │ └── Dodge_B_180_Montage [AnimMontage] │ └── Montage/ │ └── Phase2/ │ └── UE5_combo03_Montage_With_Clone [AnimMontage] └── Core_Ene/ └── s2_eli_Grimwarden_01A_prototype/ └── ANM/ └── AMT_SlashDown_Magic [AnimMontage]
## Dependencies (6)
Engine └── EditorBlueprintResources/ └── StandardMacros [Blueprint] Game └── S2/ └── Skills/ └── BP_LogicReferenceGraph [Blueprint] Script ├── AIModule [Unknown] └── SipherProjectileRuntime [Unknown]
## Summary
| Direction | Count |
|-----------|-------|
| Referencers | 24 |
| Dependencies | 6 |
| **Total** | **30** |
| File System Path | UE Package Path |
|------------------|-----------------|
| {project.content_path}\S2\... | /Game/S2/... |
| {project.content_path}\... | /Game/... |
| {project.root}\Plugins\{Plugin}\Content\... | /{Plugin}/... |
| Parameter | Description | Example |
|-----------|-------------|---------|
| -asset= | UE package path to analyze | -asset="//Game/S2/MyAsset" |
| -tag= | GameplayTag to search for | -tag="Sipher.ComboGraph" |
| -children | Include child tags (with -tag) | -tag="Sipher" -children |
| -alltags | Find all GameplayTag references | -alltags |
| -format= | Output format (csv/json) | -format=json |
| -stdout | Print progress to console | -stdout |
Before deleting an asset, check if anything uses it:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/ToDelete/MyAsset" -stdout
If Referencers = 0, safe to delete.
Before renaming/moving an asset:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/OldPath/MyBlueprint" -stdout
All listed referencers will need redirector or update.
Find where a tag is used before removing it:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -tag="Sipher.Deprecated.OldTag" -stdout
Understand what an asset needs:
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/Characters/BP_MainCharacter" -stdout
Review Dependencies section to understand all required assets.
The commandlet requires loading the Asset Registry which takes ~10-15 seconds. Use timeout of 120000ms (2 minutes) minimum:
# With explicit timeout
timeout 120 "{engine.editor_cmd}" ...
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/MyAsset" -stdout 2>&1 | grep -E "REFERENCERS|DEPENDENCIES|Total"
"{engine.editor_cmd}" "{project.root}/{project.uproject}" -run=SipherReferenceFinder -asset="//Game/S2/MyAsset" -stdout 2>&1 | grep "Markdown report written"
read-uassetUse find-ref to discover dependencies, then read-uasset to inspect their contents.
huli-bp-toolsAfter finding references, use BP tools to analyze Blueprint logic.
combat-ai-reviewFind all assets using combat-related GameplayTags for review.
SipherAIBPTools plugin is enabled in S2.uproject//Game (double slash) instead of /Gamels "{project.content_path}/Path/To/Asset.uasset"Saved/Reports/References/skill: find-ref
invoke: /asset-management:find-ref
type: utility
category: asset-tools
scope: project-root
development
This skill should be used when implementing features in isolation using git worktrees. Triggers on "create worktree", "isolated workspace", "parallel development", or when starting implementation that should not affect main workspace.
testing
Manage VFX team issues on GitHub Projects - timeline scheduling, status updates, member commit checks, bulk assign. Use when managing VFX team project board, adding issues to timeline, checking member progress, or bulk-updating issue fields.
tools
Generate C++ validation rules from JSON definitions. Use when team updates ValidationRules.json or asks to add/modify validation rules.
development
Check codebase for Microsoft Xbox XR (Xbox Requirements) compliance issues. Scans for account picker, cloud saves, achievements, Quick Resume, and Xbox certification requirements. Use before console submission or when preparing for Microsoft certification. Triggers on "XR", "Xbox certification", "Microsoft compliance", "Xbox cert", "Xbox requirements", "GDK compliance".