# Lot O1 : modules de code (/Script/...) et paquets de plugins (//...) dont dependent les assets de /Game. # Lecture seule. Sortie : Saved/Audit/script_deps.json {module: [assets qui en dependent]} # # Usage : # UnrealEditor-Cmd.exe -run=pythonscript -script="/Tools/AuditScriptDeps.py" -unattended -nopause -nosplash import json import os import unreal registry = unreal.AssetRegistryHelpers.get_asset_registry() registry.search_all_assets(True) assets = registry.get_assets_by_path("/Game", recursive=True) opts = unreal.AssetRegistryDependencyOptions(include_soft_package_references=True, include_hard_package_references=True, include_searchable_names=False, include_soft_management_references=False, include_hard_management_references=False) deps = {} seen = set() for a in assets: pkg = str(a.package_name) if pkg in seen: continue seen.add(pkg) for d in registry.get_dependencies(a.package_name, opts) or []: d = str(d) if d.startswith("/Game/"): continue key = d if d.startswith("/Script/") else "/" + d.split("/")[1] deps.setdefault(key, []).append(pkg) out = os.path.join(unreal.Paths.project_saved_dir(), "Audit", "script_deps.json") os.makedirs(os.path.dirname(out), exist_ok=True) with open(out, "w", encoding="utf-8") as f: json.dump({k: sorted(set(v)) for k, v in sorted(deps.items())}, f, indent=1) unreal.log_warning("AuditScriptDeps : {} modules -> {}".format(len(deps), out))