El informe de migración
Cada ejecución escribe dos archivos:
<Proyecto>/Saved/UEAPM/MigrationReport.md legible por personas
<Proyecto>/Saved/UEAPM/MigrationReport.json legible por máquinas (mismo contenido)
Usa Open report en el panel para abrir la versión Markdown.
Encabezado y tabla de resumen
El informe empieza con el nombre del proyecto, la fecha, el modo (apply o dry run), la versión del motor y el
número de pendientes (errores más elementos manuales). Después, una fila por paso:
# Migration report: MiJuego
- Date: 2026-09-25 01:01:12
- Mode: apply
- Engine: 5.8.3
- Open items (errors + manual): 1
| Step | Status | Changes | Left (error/manual) | Warnings | Time (s) |
|---|---|---|---|---|---|
| Project and config (`project`) | ran | 3 | 0 | 0 | 0.0 |
| Assets resave (`assets`) | ran | 873 | 0 | 0 | 14.1 |
| Enhanced Input (opt-in) (`input`) | not selected | 0 | 0 | 0 | 0.0 |
| ... | | | | | |
Status es ran, not selected o el motivo por el que se omitió un paso (por ejemplo tras un paso con reinicio
necesario).
Una sección por paso
Cada paso ejecutado tiene su propia sección con hasta tres tablas. El informe se escribe en inglés.
Changes made (cambios realizados)
Lo que se cambió, una fila por cambio:
| Category | Location | Message |
|---|---|---|
| Engine association | MiJuego.uproject | EngineAssociation "4.27" -> "5.8" |
| Convert | /Game/FX/P_Fire.P_Fire | converted to /Game/FX/P_Fire_Converted.P_Fire_Converted |
Left to do (lo que queda por hacer)
Lo que todavía tienes que hacer, con la corrección:
| Severity | Category | Location | Message | Fix |
|---|---|---|---|---|
| Error | Compile error | /Game/.../GA_Example.GA_Example | CooldownGameplayEffectClass 'GE Example' grants no tags. ... | Either set CooldownGameplayEffectClass to None or give that effect a 'Grant Tags to Target Actor' component with a Cooldown.* tag. |
La Location es lo más precisa posible: un archivo con línea (Source/.../File.cpp:181), una ruta de asset, una
ruta de asset más grafo y nodo (BP_Weapon: EventGraph > SpawnEmitterAttached) o un notify de animación con su
tiempo.
Notes (notas)
Líneas informativas: comando de build, censo de versiones, número de materiales comprobados, número de Blueprints compilados.
Severidades
| Severidad | Significado | Cuenta como pendiente |
|---|---|---|
| Info | solo información (Notes) | no |
| Fixed | un cambio hecho por UEAPM (Changes made) | no |
| Warning | funciona, pero conviene revisarlo (por ejemplo una referencia que aún apunta a Cascade) | no |
| Error | no funciona hasta que se corrija (error de carga o de compilación) | sí |
| Manual | UEAPM no puede hacerlo; la corrección te dice qué hacer | sí |
Historial
Cada ejecución también se copia en:
<Proyecto>/Saved/UEAPM/History/MigrationReport_<yyyyMMdd_HHmmss>.md
<Proyecto>/Saved/UEAPM/History/MigrationReport_<yyyyMMdd_HHmmss>.json
MigrationReport.md siempre contiene la última ejecución; la carpeta History conserva todas las anteriores (por
ejemplo la pasada de pasos de archivos de un proyecto C++ y la pasada completa posterior).
Campos del JSON
Nivel superior:
| Campo | Tipo | Contenido |
|---|---|---|
project | string | nombre del proyecto |
date | string | fecha de la ejecución |
dryRun | bool | true en un dry run |
engine | string | versión del motor |
openItems | int | errores más elementos manuales |
steps | array | una entrada por paso |
findings | array | todos los hallazgos de todos los pasos |
Cada entrada de steps: id, name, ran, skipped, skipReason, seconds.
Cada entrada de findings:
{
"step": "project",
"phase": "Analyze",
"severity": "Fixed",
"category": "Config packaging-inikeyblacklist-rename",
"location": "Config/DefaultGame.ini",
"line": 0,
"message": "move [/Script/UnrealEd.ProjectPackagingSettings] IniKeyBlacklist to ... IniKeyDenylist",
"fix": ""
}
phase es Analyze, Apply o Verify; line es 0 cuando la ubicación no tiene línea.