EasyMod

游戏开发者指南:开放权限、SDK 定制、Mod Editor、地图编辑、运行时管理与联机同步。

v0.7.0 Win64 / Unreal Engine 5.x / UE 5.0 walkthrough Unreal EngineModdingBlueprint

概览

EasyMod Overview

EasyMod for Unreal Engine

EasyMod 是面向 Unreal Engine 游戏的 Mod 创作与运行框架。管理你愿意开放的类、方法与资源,定制游戏 SDK,并向社区提供专用 Mod Editor;游戏内负责 Mod 加载、管理与联机同步。

渐进接入现有项目

复用现有 C++、Blueprint 和资源,从一个小功能开始。原型、开发后期或长期维护项目均可逐步加入 Mod 支持。 查看教程

精细管理开放范围

控制类的引用、继承和实例化,以及变量、函数、事件和资源的访问与编辑权限。 查看教程

定制游戏 SDK

选择作者需要的 API、资源、地图和创作能力,导出属于当前游戏的 .emsdk。 查看教程

专用 Mod Editor

向作者提供匹配的独立 Blueprint 编辑器,用熟悉的工作流创建、调试和打包 Mods。 查看教程

玩法、资源与地图扩展

按批准的范围编辑 Blueprint 逻辑和默认值、扩展资源与地图,并分别授权场景、World Settings 和 Level Blueprint。 查看教程

自动联机 Mod 同步

准备服务器要求的 Mod 包,校验并匹配版本与加载顺序,支持下载缓存、断点续传和逐包进度。 查看教程

游戏内 Mod 管理

使用可复用 UMG 组件或 Blueprint API 接入导入、启停、排序、状态与冲突展示。 查看教程

存档与稳定内容 ID

为 Mod 保存独立数据,登记稳定内容 ID,并接入数据迁移和游戏自己的存储后端。 查看教程

社区翻译 Mod

选择开放的游戏文本,让社区制作与分发翻译 Mod,独立翻译包无需 Cook/Pak。 查看教程

独立 Mod 编辑器 — 实际编辑界面:SDK 提供游戏公开内容,Content 保存当前 Mod 的作品;上方提供 Mod tools、Packaging content 和测试入口。
独立 Mod 编辑器实际编辑界面:SDK 提供游戏公开内容,Content 保存当前 Mod 的作品;上方提供 Mod tools、Packaging content 和测试入口。英文界面实机截图 · 点击查看原图

EasyMod 的组成

EasyMod
|
+-- Developer Tools: Public Rules / Custom SDK Export
+-- Mod Editor:      Blueprints / Maps / Assets / Packaging
+-- Game Runtime:    Mod Loading / UMG Manager / Blueprint APIs
+-- Multiplayer:     Automatic Mod Package Synchronization

开发者配置开放规则并导出 SDK;作者在匹配的 Mod Editor 中创建和打包 Mod;玩家通过你的游戏加载和管理 Mod,联机时使用已接入的自动同步流程。

三种交付物与使用者

交付物谁使用用途
EasyMod 插件游戏开发者安装在正常 UE 工程中,配置开放规则、导出 SDK、集成运行时与管理 UI。
游戏 SDK(.emsdk)Mod 作者由开发者导出,包含这款游戏发布的 API、资源、地图、权限和创作信息。
EasyMod EditorMod 作者独立的 Blueprint Mod 编辑器,配合匹配的游戏 SDK 创建、测试和打包 Mods。

玩家运行你的游戏并安装 Mod 即可。只有需要制作 Mod 的玩家才需要 Mod Editor。这三种交付物分别分发;作者不需要购买或安装 FAB 的游戏开发者源码插件。

推荐接入路线

先跑通一条小流程:选择一个已有 Blueprint 或小地图,开放需要的权限,导出 SDK,制作一个简单 Mod,再回到游戏确认结果。之后逐步开放更多内容。

正文面向游戏开发者,使用英文界面名称。当前示例基于 UE 5.0 Win64 工作流;其他 UE 版本需要匹配的插件二进制、编辑器和 SDK。文中的 MyGame、BP_ModProp 等是教学名称,请替换为自己的工程和资产。

配置与生命周期从哪里看

插件配置集中解释项目选项;Mod 生命周期介绍作者已有的启动/停止入口;运行时加载说明游戏何时准备内容并激活入口。使用技巧已改为通过生命周期登记地图。

安装插件与确认入口

准备条件

  • 一个能够正常打开和打包的 Windows Unreal Engine 游戏工程,Blueprint 与 C++ 工程均可。
  • 与工程 UE 版本匹配的 EasyMod 插件。C++ 源码使用版本兼容宏,已编译 DLL 仍须与所用引擎匹配。
  • 游戏开发者保留项目正常所需的 UE 构建环境;Mod 作者使用独立编辑器,不需要安装 Visual Studio 或配置原生 C++ 编译环境。

安装步骤

  1. 关闭目标工程,将完整 EasyMod 文件夹放到 <Project>/Plugins/EasyMod。确认 EasyMod.uplugin 直接位于该目录,避免多套一层文件夹。
  2. 打开工程,在 Edit → Plugins 搜索 EasyMod,确认插件已启用。若通过 FAB 安装到引擎,使用对应引擎版本下的插件即可。
  3. 按 UE 提示重新打开工程。出现模块不匹配时,先检查引擎版本和插件包,不要把另一 UE 版本的 DLL 直接复制过来。
  4. 确认工具栏有 Mod settings、Plugin management 和 Documentation。开放规则入口也可从 Tools → EasyMod Developer 打开。
  5. 在 Content Browser 的 Settings 中启用 Show Plugin Content,找到 EasyMod Content / EasyMod / UI。
完成标志:工程能正常打开,Mod settings 能显示 All、Blueprints and Classes、Maps、Assets 和 Localization。继承、实例化和成员权限在选中内容后于右侧配置。

新工程没有预选的公开类、资源或地图。安装插件后先配置你要开放的内容。插件提供可复用管理 UI;游戏地图、玩法框架、输入和启动流程由你的项目决定。

安装后先配置

继续阅读插件配置,分别确认游戏加载、SDK 身份与测试环境、安装及分发,再跑通第一个开放功能。

跑通第一个开放功能

下面使用一个游戏已有的 Actor Blueprint 演示最小开放范围。目标是让作者修改指定函数的实现,同时保持游戏原有类和调用方式。

1. 准备一个能观察到结果的游戏功能

  1. 选择已有的 Blueprint,或创建一个 Actor Blueprint,教学名称为 BP_ModProp。
  2. 添加字符串变量 DisplayLabel,再添加返回字符串的 Blueprint 函数 GetDisplayLabel。让函数返回该变量。
  3. 在自己的测试地图放置这个 Actor,并让游戏 UI 或测试逻辑实际调用 GetDisplayLabel 显示结果。编译、保存,先确认原始游戏功能正常。

2. 只开放这次需要的权限

  1. 打开 Mod settings,通过 Add Public Content... 添加该 Blueprint。
  2. 如果作者要创建子类,在 Blueprints and Classes 中选中它,并在右侧 Class / Inheritable 行允许继承;只需要引用时,保留公开并关闭继承权限。
  3. 本例要修改原函数,因此还要允许该 Blueprint 的 Editable original implementation,并单独将 GetDisplayLabel 设为 Public 和允许重写。继承许可不会自动开放原实现。
  4. 需要作者改默认值时,再开放 DisplayLabel 的相应编辑权限。不要因为本例需要一个函数就开放全部成员。

3. 导出、创作、回到游戏验证

  1. 按SDK 导出章节准备测试环境,点击 Export SDK。
  2. 在匹配的 EasyMod Editor 中加载 SDK,新建 Mod,打开获准修改的 Blueprint,将 GetDisplayLabel 返回值改成可辨认的文字。
  3. 编译、保存并导出 Mod。开发初次验证可选择公开 .umod,避免额外配置私有包加密。
  4. 通过游戏管理 UI 导入并启用 Mod,再冷启动游戏或重新启动 PIE,进入使用该 Actor 的地图。
  5. 确认游戏原有调用显示 Mod 的返回值,再停用 Mod 并重新启动,确认恢复游戏原结果。
完成标志:Mod Editor 只能编辑被批准的实现;游戏启用 Mod 后显示修改结果,停用并重新启动后恢复。这个例子完成后,再开放地图、更多资源或新的创作类型。

新增一个 Mod 子类不会自动替换游戏里所有原类实例。如果你的目标是让玩家选择作者新增的角色或物品,请使用派生类查询与实例化接入自己的选择和生成逻辑。

如果这个 Mod 需要主动登记或初始化,从已有生命周期调用游戏公开接口;仅修改原函数实现的例子不需要额外创建入口。

插件配置:加载、信任与运行限制

先在游戏开发者工程中配置插件,再导出作者使用的 SDK。游戏运行配置、SDK 发布配置和 Mod 作者的编辑器偏好分别管理。

先找到正确的入口

入口用途保存位置
Edit → Project Settings → Game → EasyMod游戏版本、加载、联机同步、信任、编辑器安装与分发。Config/DefaultGame.ini
Edit → Project Settings → Game → EasyMod SDK ExportGame Id、Api Version、创作能力和离线测试环境。Config/DefaultEditor.ini
工具栏 Mod settings / Tools → EasyMod Developer选择公开内容;配置类、成员、资源、地图与游戏文本权限。自动写入上述项目配置。
独立 Mod Editor 的 Editor settings...作者自己的语言、自动保存、视口和 Blueprint 偏好。作者本机;不会改写游戏授权。

公开内容的更改会在 PIE 和 Cook 前自动准备为运行配置;向作者提供更改时,重新导出 SDK。无需创建或选择 Contract Asset。SDK 配置和安装与分发配置分别见后续页面。

本地加载与安全切换

设置(代码名)默认值何时调整
Game Version (GameVersion)1.0.0维护游戏自己的发行版本;它与 UE、插件和 SDK Api Version 分开。
Load Mods on Startup (bDiscoverOnStartup)开启让插件自动发现和准备 Mod。需要自己的加载流程时关闭,先绑定进度与就绪事件,再调用 Load Mods。
Enable New Mods by Default (bEnableNewModsByDefault)开启决定新发现 Mod 的初始启用状态;玩家已保存的选择继续生效。
Mods Subdirectory (ModsSubdirectory)EasyMod/Mods用于编辑器/PIE,位于项目 Saved 下。打包游戏使用游戏发行根目录的 Mods。
Safe Menu Map (SafeMenuMap)未设置指定允许尝试切换 Mod 集的安全菜单地图。此设置不会令所有已加载内容都能热卸载;按返回结果处理重启。
Startup Loading Map (StartupLoadingMap)未设置可选的轻量加载地图;不要包含玩法、覆盖目标或需要等待 Mod 才能加载的资源。

没有任何有效公开配置的新工程保持正常游戏启动,不会因为默认开启加载选项就自动扫描 Mod。游戏若依赖 Mod 内容,按加载与激活等待准备和入口激活。

联机、存档与限制

设置默认值说明
Automatic Mod Session Sync (bEnableModSessionSync)开启自动接入还要求实际地图 GameMode 派生自 EasyModGameModeBase。普通 GameMode 仍使用本地 Mods。
ModSyncPortOffset2同步 TCP 端口 = UE 游戏端口 + 偏移;按服务器网络环境开放。
MaxSessionDownloadMiB32768会话下载上限,单位 MiB。
ModDownloadRateKiB / ModUploadRateKiB0每个传输连接的速率限制;0 表示不限速。
OptionalSaveModGuids空只列出游戏认可的可选存档依赖;存档所属 Mod 始终必需。
MaxMods / MaxTypesPerMod / MaxPayloadMiB128 / 4096 / 4096Mod 数、单 Mod 类型数、单包负载 MiB;根据实际内容需求调整。

信任和私有运行包

Allow Unsigned Mods(bAllowUnsignedMods)默认关闭。私有 .emod 使用 Private Mods 中的游戏 RSA-3072 密钥;派生公钥进入 SDK,私钥只供宿主游戏打包使用。公开 .umod 不需要此资产加密密钥。详见包格式与信任。

AllowedOverridePackages 是精确的宿主包覆盖范围。类和资源权限优先通过 Mod settings 管理,避免同时维护互相矛盾的手写规则。

Bridge 的 bEnableBridgeService 默认开启,BridgePipeName 默认 EasyModBridge,协议版本默认 1;它是游戏侧的 Windows Named Pipe 验证服务,独立于 HTTP 更新服务。多个游戏同时运行时可设置独立管道名,正常接入保留协议默认值。

首次接入先确认游戏版本、加载时机和安全菜单;只有需要联机、私有包或自定义限制时再调整对应组。保存项目配置后,继续配置公开内容。

SDK 配置:身份、创作能力与测试环境

入口:Edit → Project Settings → Game → EasyMod SDK Export。配置保存在 Config/DefaultEditor.ini;游戏版本和文本公开总开关位于 Game → EasyMod。

固定游戏身份

设置默认值配置方法
GameIdsample.game首次发行前改为自己的稳定标识,例如 studio.mygame。同一游戏保持一致,避免把默认示例身份用于正式发行。
ApiVersion1维护 SDK 公共 API 的版本;破坏兼容的权限或签名变更按游戏兼容策略处理。
Classes / Assets / PublicMapPaths空通过 Mod settings 添加和编辑;自动依赖不会因此变成主动公开。
EnabledAuthoringCapabilitiesblueprint, widget, animation, mesh, material, data, audio, map只发布宿主具备对应 Runtime 支持的创作能力;它不代替逐类、逐资源授权。
RuntimeCapabilityProofs空按导出报告提供真实匹配的游戏启动证据;支持专用服务器时还应提供服务器证据。

提供可运行的离线预览

设置默认值用途
bOfflineTestingSupported关闭确认并开放脱离游戏在线服务也能运行的测试环境。开启前准备真实地图、模式和依赖。
OfflineTestGameMode / OfflineTestGameInstance未设置适合离线运行的测试类;避免依赖登录、远程服务或开发机私有文件。
OfflineTestProfiles / DefaultOfflineTestProfile空配置多个测试环境及默认 Id;每项包含 Id、EntryMap、GameMode、GameInstance。入口地图应已公开,或使用引擎 Basic 模板。
OfflineTestAdditionalAssets空补充无法通过序列化引用图发现的动态加载资源。
OfflineAutomationTests空在必需的地图、类和物理检查之外追加游戏行为测试。

离线测试环境决定作者在 Mod Editor 中能否实际 Play/Simulate。只有编辑、保存和导出需求时,不应把“未开放离线环境”描述成可以直接预览玩法。

本地化与高级项

在 Mod settings → Localization 选择本地化 Target、真实源语言、允许收集的语言和公开文本。总开关 bExposeLocalizationTexts、源语言及逐条规则保存在 EasyMod 游戏配置中。改动后重新导出 SDK;已有 SDK 不会自动带上新公开的游戏文本。普通 Mod 自有文本可独立收集,见本地化。

AllowedEngineScriptPackages 控制允许的引擎脚本包范围,默认包括 CoreUObject、Engine、UMG、InputCore、SlateCore。它与资源权限、源码开放是不同层面的设置。PythonExecutable 是维护用后备路径,正常作者分发使用随工具提供的运行环境;ActiveModPlugin 属于当前创作选择,正常接入无需手写作者工作区。

确认 Game Id、创作能力和测试环境后,回到 公开内容配置所需权限,再按导出流程生成新的单文件 SDK。

安装、更新与游戏分发配置

入口:Edit → Project Settings → Game → EasyMod。这里决定作者如何获得编辑器与 SDK;内容权限仍在 Mod settings 中管理。

安装与更新服务

设置默认值说明
Enable Editor Launch (bEnableEditorLaunch)开启允许游戏管理界面启动独立编辑器。
EditorUpdateApiUrlhttps://easymod.dashixiong.men官方安装与更新服务地址。
EditorUpdatePublicKey内置官方 Ed25519 验签公钥校验更新服务签名;自建服务时配置对应验签公钥。它不是私有 Mod 的加密密钥。
EditorDownloadUrl空未安装编辑器时可展示的可选下载页面。
Resource API Sources (ResourceSources)EasyMod Official资源服务的 SourceId、DisplayName、ApiUrl、PublicKey 和启用状态。这里的公钥验证目录签名。
Recommended Plugins (RecommendedPlugins)空随 SDK 提供的作者扩展推荐引用,使用 SourceId、ResourceId、VersionId。推荐不等于已安装,也不改变游戏权限。

从 Plugin management → Mod Editor 打开安装页,自动匹配当前 UE 系列,只显示最新版。未安装时使用 Install;已有安装需要升级时使用 Update,安装后才显示 Open Editor。新用户一次组成最新安装;旧用户复用一致文件,只获取所需新增、替换和删除更新,不用手动逐个安装历史版。

编辑器位于 <GameRoot>/EasyModEditor。安装流程维护目录和发行选择;EditorDirectory、旧安装模式及 RecommendedEditor 是内部/兼容配置,无需手动选择另一个 UE 版本。

随游戏分发

设置默认值分发要求
Bundle Mod Editor with Game (bBundleModEditor)开启打包时附带当前工程 EasyModEditor 目录中的已安装发行。单独分发编辑器时关闭。
Bundle SDK with Game (bBundleSDK)开启附带工程根目录最新导出的 <GameProjectName>.emsdk;与编辑器捆绑选项独立。
Game Display Name (ModEditorGameName)使用项目标题在作者启动器显示游戏名称。
Game Icon (ModEditorGameIcon)自动选择项目/游戏图标可指定 PNG 或 ICO;导出到 SDK。

开启捆绑的组件必须在打包前准备好;若选择单独分发,关闭对应选项并给作者有效获取方式。启用捆绑选项不会替你安装编辑器或重新导出 SDK。

已有 UI 或自定义入口

EditorGameDirectory 可覆盖传给作者编辑器的游戏目录,空值使用当前游戏工程目录。EditorExecutableRelativePath 默认 EasyModEditor.exe。EditorSdkRelativePath 保留旧 EasyModSDK.emsdk 兼容名称;实际分发优先核对本次导出的 <GameProjectName>.emsdk。EditorSdkPath 可保存显式选中的 SDK 路径。公共发行不应依赖开发机绝对路径。

用作者实际收到的游戏目录检查安装、SDK 识别、启动和更新。继续阅读交付独立编辑器和游戏打包。

开放类、继承与实例化

选择内容,再配置权限 — 示例选中 BP_WeaponBase。左侧按内容类型筛选;右侧分别设置继承、实例化、原实现编辑和成员权限。勾选状态仅代表此示例项目。
选择内容,再配置权限示例选中 BP_WeaponBase。左侧按内容类型筛选;右侧分别设置继承、实例化、原实现编辑和成员权限。勾选状态仅代表此示例项目。英文界面实机截图 · 点击查看原图

Mod settings 左侧选择公开内容,右侧设置权限。修改会自动保存;新的设置会在 PIE 与 Cook 前准备为运行时配置。需要把变化交给作者时,再导出新版 SDK。

权限适用情况不会自动授予
Inheritable作者需要以游戏类为父类创建 Blueprint。修改原 Blueprint、全部成员写入或原事件重写。
Public reference / inheritance disabled允许使用类型、读取公开变量或调用公开函数,但不允许继承。实例化、成员写入和原资产覆盖。
Allow instantiation允许在对应的创建或放置流程中创建该公开类型的实例。抽象类实例化或不符合 UE 实际能力的创建。
Derived queries / Mod descendants让获准的 Mod 后代进入可查询的类型目录。自动导出全部游戏内部子类。

添加内容的三种方式

  1. Add Public Content...:批量选择 Blueprint、原生类、地图和资源。
  2. Add Current Selection:从 Content Browser 的当前资源选择,或从关卡所选 Actor 的类添加。
  3. 在 Content Browser 右键资源,选择 Add to public SDK 后返回 Mod settings 检查权限。此快捷入口会给予默认公开和编辑状态,发布前应逐项收紧。

让游戏使用作者新增的类

在运行时获取 EasyMod Subsystem,等待准备完成后使用 Find Derived Mod Classes,传入游戏批准的基类和目标 Mod ID。把返回的实际 Class 放入你自己的角色选择、物品目录或 Spawn 流程;按对象类型使用正常 UE 创建方式。查询本身不会自动生成或替换对象。

检查:作者可以选择获准父类;仅开放引用、未开放继承的类不能作为作者新 Blueprint 的父类;未授权的创建和成员访问应被拒绝。

实践案例:通过生命周期登记 Mod 地图。游戏定义公开登记接口,作者从已有启动/停止事件提交和清理自己的配置;派生类查询仍可作为可选发现方案。

调整来源与移除公开

默认来源筛选为 Explicit Rules。自动引用依赖保持只读,浏览它不会新增授权。需要公开时使用已有公开操作。选中一个或多个主动规则后点击 Remove...,确认兼容性提示;原资产不删除,仍被其他公开内容引用的项保留为只读依赖。移除后重新导出 SDK。

管理变量、函数与事件

Public 和 Overridable 分开配置 — 右侧 Functions 中的 OnFireProjectile 展示函数调用与覆盖权限。公开父类并不等于开放父类所有事件;按实际需要逐项授权。
Public 和 Overridable 分开配置右侧 Functions 中的 OnFireProjectile 展示函数调用与覆盖权限。公开父类并不等于开放父类所有事件;按实际需要逐项授权。英文界面实机截图 · 点击查看原图

选中类或 Blueprint 后,右侧按变量、函数、资源字段和事件分组。使用成员搜索框定位目标,分别检查 Public 与 Editable / Overridable。可编辑或可重写必须同时满足公开条件和 UE 本身的能力。

希望作者做什么需要开放什么
读取变量公开对应属性的读取能力。
运行时写变量明确开放写入,且属性本身允许该访问。
修改获准默认值开放资产/原实现编辑与对应默认值字段。
调用函数公开函数调用能力。
修改现有 Blueprint 函数或事件实现允许原 Blueprint 编辑,并单独批准函数或事件重写。

调用与重写分别配置

一个函数可以允许调用而不允许修改实现。公开父类也不会自动允许改写 BeginPlay、Tick 或所有输入事件。事件图按照具体事件分支授权;共享节点、入口声明、变量与函数签名仍受保护。作者可以修改获准实现,但不能删除、改名或改类型来改变游戏公开接口。

C++ 项目如何准备 API

UFUNCTION(BlueprintCallable, Category = "Game|Mod")
bool GiveItem(FName ItemId, int32 Count);

UFUNCTION(BlueprintNativeEvent, Category = "Game|Mod")
void OnModAction();

BlueprintCallable 提供调用能力;需要 Blueprint 事件能力的可重写接口,应使用合适的 UE 声明。普通 C++ virtual 不会因勾选权限自动变成可覆盖的 Blueprint 事件。以上声明完成后,仍需在 Mod settings 明确批准类和成员。

处理多个 Mod 的修改

不同 Mod 可以修改同一个 Blueprint 的不同函数。同一函数或默认属性发生竞争时,按当前依赖与加载顺序选取首个有效贡献,界面可通过 Get Mod Conflicts 显示获选项。已经创建的对象和已加载的整包资源不会被强制刷新成新内容。

检查:分别测试允许调用、禁止调用、允许重写、禁止重写;修改权限后重新导出 SDK,再用作者编辑器验证。

发布资源与开放地图编辑

插槽权限独立于资源整体编辑 — SK_Mannequin_Arms 的 Allow New Sockets 已开放,而 Asset / Editable 仍关闭;允许新增插槽不等于可任意修改整个网格。
插槽权限独立于资源整体编辑SK_Mannequin_Arms 的 Allow New Sockets 已开放,而 Asset / Editable 仍关闭;允许新增插槽不等于可任意修改整个网格。英文界面实机截图 · 点击查看原图

公开资源与只读依赖

  1. 在 Assets 中添加要向作者提供的材质、网格、动画、音频或数据资源。
  2. 为每个资源区分 Public 与 Editable;只需要引用的资源保留只读。
  3. 按需要逐字段开放,而不是将整个资源的全部配置交给作者。
  4. 导出 SDK 后检查依赖是否齐全,尤其是运行时按字符串拼接路径加载的内容。

SDK 会收集公开内容所需的依赖。例如公开 Blueprint 引用了一个网格和材质,这些必要依赖可能随 SDK 提供,但默认只读,不会额外获得继承、编辑或覆盖权限。完全无关的游戏内容不会因此自动导出。

地图与 World Settings 分层授权 — Demo 地图的场景编辑和 World Settings 字段分别配置;地图公开并不会自动开放场景、GameMode 或 Level Blueprint 的全部修改。
地图与 World Settings 分层授权Demo 地图的场景编辑和 World Settings 字段分别配置;地图公开并不会自动开放场景、GameMode 或 Level Blueprint 的全部修改。英文界面实机截图 · 点击查看原图

地图的三个独立权限

权限层控制内容
地图公开与场景编辑作者能否打开地图,以及是否能移动、删除、替换或新增获准 Actor。
World Settings单独决定 GameMode 等世界设置字段是否能修改。
Level Blueprint单独决定变量、函数及具体事件分支的访问和重写。
  1. 把游戏地图加入 Maps。
  2. 需要作者改场景时,开启 Map / Editable scene。
  3. 继续检查下方 World Settings、字段与 Events,不要把场景编辑理解为全部地图设置和关卡蓝图都开放。
  4. 需要向地图新增游戏 Actor 时,另外开放相应类的实例化。Pawn、HUD 等 GameMode 类默认值在对应类或 Blueprint 权限中设置。
  5. 在作者编辑器修改并导出后,通过游戏冷启动进入目标地图验证。
地图替换按地图及相关烹饪包组处理。切换已经加载的地图或覆盖资源时,应重新启动 PIE 或游戏;不要依赖运行中强制替换已驻留对象。

新增地图也需要在 Mod 中实际发布,并满足游戏自己的选图或入口逻辑。游戏不会因为安装了一个地图包就自动把它设为默认地图。

需要区分可玩地图与测试地图时,参见通过生命周期登记 Mod 地图:让作者用自己的 DataAsset 显式登记地图,再由游戏汇总到选图界面。

定制并导出游戏 SDK

导出前准备

  1. 在 Project Settings → Game → EasyMod SDK Export 设置唯一且稳定的 GameId,维护 ApiVersion。在 Game → EasyMod 设置游戏自己的 GameVersion;它与 UE 版本不同。
  2. 在 Mod settings 完成公开类、成员、资源、地图和文本选择。
  3. 在 EnabledAuthoringCapabilities 中选择创作能力,例如 blueprint、widget、animation、mesh、material、data、audio、map。宿主必须同时具备这些能力所需的 Runtime 模块和插件。
  4. 准备作者可离线运行的真实测试环境:检查 bOfflineTestingSupported、OfflineTestGameMode、OfflineTestGameInstance 和需要的 OfflineTestProfiles。动态加载依赖放入 OfflineTestAdditionalAssets;额外行为测试使用 OfflineAutomationTests。
  5. 编译、保存游戏资产。导出会核验宿主能力与原生构建证据;若提示缺少 RuntimeCapabilityProofs 或测试依赖,补充当前游戏/服务器的真实构建和运行证据后重试。

通过界面导出

从公开内容面板导出 SDK — 完成左侧内容与右侧权限配置后,使用右上角 Export SDK。此图展示导出入口;导出成功仍以进度窗口的完成结果为准。
从公开内容面板导出 SDK完成左侧内容与右侧权限配置后,使用右上角 Export SDK。此图展示导出入口;导出成功仍以进度窗口的完成结果为准。英文界面实机截图 · 点击查看原图
  1. 打开 Mod settings,点击右上角 Export SDK。
  2. 工具会保存工程变化,准备 Mod 配置并后台执行导出。查看独立进度窗口;需要时使用 View Progress 返回进度,或使用 Cancel Export 取消。
  3. 等待明确成功结果。默认文件位于工程根目录,名称为 <GameProjectName>.emsdk,例如 MyGame.emsdk。
  4. 把成功导出的 SDK 交给匹配的 Mod Editor 测试,再交付作者。失败时先修复进度窗口指出的具体问题,不要把中间目录当作 SDK 发出去。

当前界面使用游戏开发者实际的 UE 引擎进行发布验证,不要求为了点击导出先安装作者用的 Mod Editor。作者随后仍需获取匹配该 SDK 的独立编辑器。旧版 EasyModSDK.emsdk 文件名保留兼容,更新时以本次导出的实际文件为准。

命令行导出(可选)

& ".\Plugins\EasyMod\Tools\BuildProjectSDK.ps1" -Project ".\MyGame.uproject" -EngineRoot "F:\UE_5.0" -OutputFile ".\MyGame.emsdk"

这个例子使用游戏开发者引擎验证。只有显式开放项目原生 Runtime 模块时,才需要按照脚本的 ApiModules / ApiPlugins 和匹配的构建环境准备批准模块;只开放项目 Blueprint 不等于必须把游戏原生源码交给作者。

完成标志:导出报告成功,工程根目录生成完整单文件 SDK;作者编辑器可以加载,公开内容和离线测试环境符合预期。

日常导出与完整验证

Export SDK 默认使用变更资源缓存与结构检查,进度窗口显示阶段及已知的资源计数。先导出 SDK;需要完整验证时,使用旁边下拉菜单的 Run Full SDK Validation。结构导出成功不等于本次已经执行完整 Cook/玩法验证。设置字段的解释见SDK 配置。

向社区提供专用 Mod Editor

EasyMod Editor 是提供给 Mod 作者的独立编辑器。游戏开发者在正常 UE 工程里决定开放规则;作者在编辑器中使用你的 SDK,不需要购买或安装 FAB 的开发者源码插件。

准备编辑器与 SDK

  1. 通过 Plugin management 中的编辑器资源入口,或你提供的正式下载渠道,获取与游戏 SDK 匹配的安装版。
  2. 开发者可在 Project Settings → Game → EasyMod 配置游戏显示名称、图标和发行方式;安装页面会按当前项目的 UE 系列显示一个最新版。
  3. 向作者交付 SDK 和编辑器获取方式。可以随游戏附带,也可以分别下载,具体见游戏打包。
  4. 用作者实际收到的文件测试一次。不要用只存在于开发机的私有工程路径代替交付验证。
安装与项目对应的编辑器 — Plugin management → Mod Editor 自动匹配项目的 UE 系列,只显示该系列的最新版。这里使用 UE 5.8;请以你项目中显示的版本和状态为准。
安装与项目对应的编辑器Plugin management → Mod Editor 自动匹配项目的 UE 系列,只显示该系列的最新版。这里使用 UE 5.8;请以你项目中显示的版本和状态为准。英文界面实机截图 · 点击查看原图

作者的基本工作流程

作者选择 SDK 与 Mod — 独立启动器显示游戏、SDK、UE 系列和可继续编辑的 Mod;New Mod 新建作品,Import Mod 导入已有源码包。
作者选择 SDK 与 Mod独立启动器显示游戏、SDK、UE 系列和可继续编辑的 Mod;New Mod 新建作品,Import Mod 导入已有源码包。英文界面实机截图 · 点击查看原图
  1. 启动 EasyModEditor.exe,选择游戏 SDK,或选择能自动找到 SDK 的游戏目录。
  2. 新建 Mod,填写名称、作者等信息,选择自己的 .umod 保存位置。
  3. 在 Content Browser 中创建自己的 Blueprint、Widget、资源或地图。SDK 内容按照开发者权限显示为可继承、只读或可覆盖。
  4. 使用原生 Blueprint 的 Compile、Save 和获准的 PIE/Simulate 测试。编辑的是每个 Mod 独立的工作区,不会直接改写共享 SDK。
  5. 从 Mod tools → Build and export... 导出。通过 Export format 选择公开源码包 .umod 或私有运行包 .emod;重复导出可使用 Export again。
  6. 将导出的包导入游戏,验证真实加载与玩法效果。

作者不需要配置 Visual Studio 或原生 C++ 工具链。独立编辑器支持的具体资源类型仍由游戏 SDK 声明;安装编辑器并不会绕过游戏权限。公开 SDK 内的原类声明、成员签名和身份不能随意改名或删除。

交付检查:在独立安装中完成加载 SDK、新建 Mod、编译保存、测试、导出和游戏导入。SDK 或编辑器发生更新后重新走一次。

普通 Mod 已有启动与停止入口

从 Mod tools → Mod lifecycle... 打开默认生命周期 Blueprint,在 OnModStart 初始化、OnModStop 清理。不要另建第二个入口。见生命周期及Mod 自有文本收集与翻译。

Mod 生命周期:启动、停止与清理

每个普通内容 Mod 默认拥有一个生命周期 Blueprint,基类为 EasyModEntry。作者可以直接编辑它的启动和停止逻辑;开发者无需另建一套扩展基类来获得基础生命周期。纯翻译 Mod 不使用生命周期入口。

作者从哪里打开

  1. 在匹配 SDK 的 Mod Editor 中打开普通 Mod。
  2. 选择 Mod tools → Mod lifecycle...,打开当前已有的入口。重复点击仍打开同一个 Blueprint。
  3. 在 Event On Mod Start(OnModStart)接入初始化,在 Event On Mod Stop(OnModStop)接入清理,然后 Compile、Save。

入口通常保存为 /EM_<ModId>/__EasyModInternal/BP_ModEntry,由编辑器维护身份与绑定。使用菜单编辑它,不要另建第二个入口或手改 entryClass。额外入口会在保存/导出校验时被拒绝。

启动与停止做什么

位置适合的操作需要保留的信息
OnModStart调用已公开的游戏注册接口,创建允许的对象、Actor 或 UI,绑定自己的监听。创建对象引用、注册句柄、需要撤销的监听。
OnModStop撤销本 Mod 的注册、解除监听、移除自己的 UI,清理外部状态。按所属 Mod 清理;允许重复清理,不删除其他 Mod 或游戏自身内容。
StartupActors可选:通过默认父类启动逻辑生成获准的 Actor 类。父类在默认变换处生成并记录 Actor;自定义位置/生成条件改用自己的获准逻辑。
Mod tools → Mod lifecycle...

Event On Mod Start
  → Parent: On Mod Start
  → Call an approved game registration API / create permitted objects
  → Keep handles and references needed for cleanup

Event On Mod Stop
  → Unregister this Mod’s contributions / unbind callbacks / remove UI
  → Parent: On Mod Stop

默认父类调用负责 StartupActors 的生成与回收。使用该功能时保留父类调用;自己生成的内容还要清理游戏注册、事件和 UI 等外部状态。生命周期对象是 UObject,不是关卡 Actor,不提供普通 Actor Tick/BeginPlay 替代接口。事件在游戏线程调用。

与游戏加载阶段的关系

Load Mods → discover / validate / mount
          → On Ready (preparation complete)
          → Activate Mods / automatic world activation
          → OnModStart (enabled content Mod)
          → world stop / Stop Mod Entries
          → OnModStop → execution-scope cleanup

On Ready 先于入口激活。它表示准备阶段完成,可能仍有被拒绝的 Mod。依赖初始化结果的游戏逻辑应检查实际 Mod 状态和 Are Mod Entries Active,不能只收到 On Ready 就假定所有启动事件已执行。

生命周期与当前世界关联。停止入口或离开世界时会执行清理;进入新世界并再次激活时重新初始化。它不是整个进程只执行一次的永久对象。停止入口不会卸载所有 Pak 或恢复所有已应用补丁,切换已加载内容仍可能要求重启。

开发者还需要开放什么

生命周期只提供执行时机,不授予额外游戏权限。作者调用的类型、函数、生成对象和引用资源仍须满足 SDK 规则;自动依赖继续只读。物品或地图需要出现在游戏 UI 中时,公开游戏自己的 Register/Unregister 接口,或让游戏按约定查询 Mod 子类。保存一个 Blueprint 不会自动让游戏生成它。

需要游戏枚举多个扩展类型时,仍可使用 FindDerivedModClasses;自定义扩展基类是游戏内容协议,不再承担“补一个 Mod 启动入口”的职责。参见用生命周期登记地图。

最小验证:启动时只登记一次;停止后自己的登记、UI 和监听被清理;重开或换世界后能再次初始化;保存重开仍使用同一个生命周期 Blueprint。

游戏文本与 Mod 自有本地化

先区分游戏公开文本与 Mod 自有文本,再选择需要的创作流程。Localization 工作台不改变 Mod Editor 自身的界面语言。

文本来源前提作者能做什么
游戏/SDK 文本开发者公开本地化 Target、文本身份和可收集语言,并重新导出 SDK。在 SDK 允许范围内读取原文、创建译文。
当前 Mod 自有文本当前 Mod 的 Blueprint、Widget 或 StringTable 中存在可本地化 FText。收集并翻译自己的文本;无需游戏先公开文本目录。
其他 Mod / 游戏未公开文本不属于当前 Mod,或未获得游戏文本授权。不能借收集操作扩大来源范围。

开发者公开游戏文本

  1. 先在 UE Localization Dashboard 为项目或相应插件 Target 收集文本;普通 FString 或未标记字符串不会自动成为本地化 FText。
  2. 在 Mod settings → Localization 开启 Publish Localization Text,选择需要发布的 Target。
  3. 沿用真实源语言,设置可收集语言和逐条公开文本。选择语言行与勾选语言权限是不同操作;未选中 Target 或总开关关闭时先完成上级选择。
  4. 重新导出 SDK,让作者使用新文件。仅修改工程勾选不会更新已导出的 SDK 或已打开的旧工作区。

作者翻译自己的内容 Mod

  1. 在自己的 Blueprint、Widget 或 StringTable 中使用可本地化 Text,保存资产。
  2. 打开 Localization,添加目标语言,选择 Mod texts 并执行 Gather source texts。
  3. 编辑译文,或导入/导出支持的 PO、JSON;保存译文并预览目标语言。
  4. 重新 Build and export,在游戏实际目标语言下检查资源文本。

自有文本使用当前 Mod 的命名空间 EM_<32位ModId>:。Namespace、Key 和原文身份由收集流程管理;翻译不能伪装成其他 Mod 或替换未公开游戏文本。

独立翻译 Mod 与包格式

只翻译游戏文本时,可新建纯翻译 Mod,基于 SDK 公开目录创作;没有公开游戏目录时,该流程无法收集游戏原文。纯翻译 Mod 没有内容生命周期,也不需要资产 Cook/Pak,使用公开 .umod。

普通内容 Mod 可以同时带自己的译文:公开 .umod 支持译文,私有 .emod 保持资产 Pak 加密,译文以可读、签名及哈希绑定的元数据随包保存。译文可读不等于公开 Blueprint 源码。

遇到空目录时

EM2500: this SDK has no published game text catalog 表示当前 SDK 没有游戏文本目录。要翻译游戏,检查总开关、Target、语言和新 SDK;要翻译自己的 Mod,切换到 Mod 自有来源并收集。SDK 原文更新后重新检查译文身份和原文哈希。

确认自己的 Text 可收集、保存重开和导出;游戏公开文本只在授权范围出现;实际游戏语言切换后显示译文,停用后恢复正确翻译层。

接入本地 Mod 加载与启动

本地 Mod 功能可以使用你现有的 GameMode 和 GameInstance。按项目需要选择自动加载或手动加载;自动联机同步是另外一条接入路径。

自动加载

Project Settings → Game → EasyMod → Mods → Load Mods on Startup 默认开启。存在有效 Mod 配置后,EasyMod 会发现、验证并准备本地 Mods。若游戏玩法必须依赖这些内容,先在轻量菜单/加载地图等待准备完成,再进入实际玩法地图。

手动控制加载时机

  1. 关闭 Load Mods on Startup。
  2. 在 GameInstance、菜单或加载流程中获取 EasyMod Subsystem。
  3. 先绑定 On Ready 和 On Startup Progress,再调用 Load Mods。
  4. 通常保持 Activate When Ready 为 true。需要自己安排入口时设为 false,收到准备完成后调用 Activate Mods。
  5. 调用立即失败时读取 Get Last Error;过程中显示 Get Startup Progress,检查全局错误和被拒绝的个别 Mod。
  6. 需要停止入口生命周期时调用 Stop Mod Entries;用 Are Mod Entries Active 检查当前世界是否已经激活入口。
GameInstance / Loading Menu
  -> Get EasyMod Subsystem
  -> Bind On Ready + On Startup Progress
  -> Load Mods (Activate When Ready = true)
  -> Inspect status and errors
  -> Continue to gameplay when your readiness conditions pass
Load Mods 返回 true 表示异步请求已被接受,不代表所有 Mod 都已经加载成功。On Ready 表示准备阶段就绪;还要检查实际 Mod 状态与入口激活结果。

何时使用 EasyMod 的基类

EasyModGameModeBase 提供标准引擎下的 Actor BeginPlay 就绪屏障和会话准入;EasyModGameInstance 额外协调首图等待与进程重启恢复。普通 GameMode 不会自动获得这些启动屏障。接入现有框架时,按需要保留或实现等效的等待与恢复逻辑。

Stop Mod Entries 负责结束入口及其拥有对象,不等同于卸载所有 Pak 或撤销所有补丁。切换已加载的内容仍需安全菜单或重启。地图/资源覆盖应在目标地图和资源加载前准备。

需要让作者主动登记内容时,参见使用技巧:通过生命周期登记 Mod 地图。登记服务先准备好,入口启动时提交,停止时清理;游戏按 ModId 区分各个作品。

入口逻辑在哪里写

Load Mods 负责准备内容,Activate Mods 负责启动当前世界的入口。作者在 Mod tools → Mod lifecycle... 编辑已有的 OnModStart/OnModStop。开发者不要再要求作者新建第二个入口。完整说明见Mod 生命周期。

接入游戏内 Mod 管理界面

使用现成 UMG 面板

  1. 在 Content Browser 启用 Show Plugin Content,打开 EasyMod Content / EasyMod / UI / Widgets。
  2. 找到 WBP_EasyModDemoPanel。在你的 PlayerController 或菜单 Widget 中创建它,设置合适的 Owning Player,并加入 Viewport 或自己的容器。
  3. 根据界面流程设置鼠标显示、键盘/手柄焦点和 Input Mode。关闭面板时恢复游戏原有输入方式。
  4. 参考 UI/Examples/WBP_DemoHUD 与 WBP_DemoMenu 的嵌入方式,按自己的游戏改外观和打开时机。

完整面板包路径为 /EasyMod/EasyMod/UI/Widgets/WBP_EasyModDemoPanel。单行条目为 WBP_EasyModModRow,拖拽与辅助逻辑位于 UI/Blueprints。这些 UI 可以嵌入现有菜单,不要求使用某个固定的游戏地图或 GameMode。

需要自定义 UI 时

操作主要接口界面应如何反馈
显示列表Get Installed Mods / On Changed显示状态、版本、错误及是否需要重启。
导入Choose Mod Archive → Import Mod只在安装验证成功后刷新;失败显示 Out Error。
启用/停用Request Set Mod Enabled / On Enable Request Completed等待实际完成结果,不把点击状态当作已生效。
修改顺序Set Mod Order使用返回的 Applied Order;依赖可能影响最终顺序。
冲突提示Get Mod Conflicts显示竞争项和当前获选 Mod。
启动创作工具Install or Update Mod Editor / Launch Mod Editor检查可用性并展示返回错误。

运行时变更需要满足游戏的安全地图与加载状态要求。同步联机会话中的有效 Mod 集合由服务器控制,不能直接用普通本地开关修改。

检查:导入成功/失败、依赖联动、顺序变化、需要重启以及编辑器未安装等情况,都能在界面上得到明确反馈。

接入 Mod 存档与稳定内容 ID

如果 Mods 会创建需要长期保存的物品、进度或数据,可以使用 EasyMod Save Subsystem。它按游戏身份、Mod GUID 和 Slot 隔离记录,并在读取前检查依赖与数据版本。

基本接入

  1. 定义自己的 USaveGame/SaveGame Blueprint 数据对象,只把需要序列化的字段标记为 SaveGame。
  2. 确定所属 Mod GUID、Slot 名称与 Data Version。
  3. 保存对象引用对应的 Mod 内容前,使用运行时 Register Mod Content 注册稳定 Key,并记录返回的稳定内容 ID。
  4. 简单同步流程使用 Save Mod Data / Load Mod Data。在游戏交互流程中需要后台 I/O 时,优先使用 Request Save Mod Data / Request Load Mod Data。
  5. 异步请求保存返回的 Request ID,绑定 On Save Request Completed、On Save Request Failed 和取消事件;不要在请求刚返回时就显示保存成功。

缺少 Mod 和数据升级

必要 Mod、稳定内容 ID 或数据版本不匹配时,默认拒绝读取并保留原记录。可选降级需要游戏在 OptionalSaveModGuids 中明确允许,同时保存方声明该依赖可选。拥有该存档的 Mod 本身不能当作可选内容。

需要迁移时,提供 EasyModSaveMigration 子类,实现 Migrate,在 Mod 激活时通过 Register Migration 注册。迁移失败应保留原记录,并向玩家提供可理解的错误。

接入自己的存储系统

游戏可以实现宿主拥有的 EasyModSaveStorageProvider,通过 Set Host Storage Provider 接入其他存储。异步提供器通过对应 Request ID 完成请求,取消后不能再提交旧结果。

联机客户端不能保存或加载权威 Mod 存档。权威保存应由服务器/宿主执行。要让 Mod 作者调用这些 API,仍需在游戏的公开规则中批准相关类和成员,再重新导出 SDK。

配置自动联机 Mod 同步

自动同步让客户端获取服务器要求的 Mod 包,完成校验,并以匹配的版本和顺序进入游戏。它支持缓存复用和断点续传,也保留玩家自己的单机 Mod 偏好。

接入自动会话

  1. 先确认相同 Mod 在打包游戏的本地流程中可以加载。
  2. 让实际运行地图使用的 GameMode 继承 EasyModGameModeBase,或在你的框架中实现对应的准入与就绪适配。检查地图自己的 World Settings,避免它覆盖项目默认 GameMode 后没有使用适配器。
  3. 保持 Automatic Mod Session Sync 开启。当前实现根据实际 GameMode 判断自动集成;普通 GameMode 继续使用本地 Mods 和正常网络,不会因安装插件自动接管所有会话。
  4. 接入首图与恢复流程。可以使用 EasyModGameInstance,或在现有 GameInstance 中保留等效的就绪等待和重启恢复处理。
  5. 通过 EasyMod Session Subsystem 在加入前调用 Prepare Mod Session(GameUrl, SyncPort),绑定进度与失败事件。
  6. On Completed 后检查阶段为 Ready,再用 Get Prepared Connection Url 连接。不要把下载完成直接当作游戏准入成功。
Server Mod Set
  -> Download missing packages / Reuse verified cache
  -> Verify packages, compatibility and dependencies
  -> Apply matching versions and load order
  -> Connect with the prepared URL

端口与传输设置

设置作用
Mod Sync Port Offset同步使用独立 TCP 端口,默认为游戏端口 + 2。游戏端口为 7777 时,同步端口为 7779;服务器网络需允许对应端口。
Max Session Download MiB限制本次会话所需 Mod 总下载量。
Mod Download Rate KiB / Mod Upload Rate KiB分别限制下载和上传速率;0 表示不限速。

服务器改集与退出

服务器先调用 Begin Server Mod Change,等待玩家离开玩法并进入安全地图。完成启停与顺序操作后,调用 Complete Server Mod Change 发布新集合,客户端重新同步并恢复连接。离服调用 Leave Mod Session。需要重启时使用恢复流程;若游戏必须先存档,处理 On Before Session Recovery,保存完成后以相同 Request ID 调用 Complete Mod Session Recovery。

Mod 包与配置同步不等于自动实现全部玩法复制。Actor replication、RPC 权限、权威存档和游戏规则仍由宿主游戏设计。用独立客户端/服务器进程验证监听服、专用服务器、缺包、断点续传、改集和重启恢复。

理解 .umod、.emod 与信任边界

格式包含内容适合用途
.umod可编辑源码;一般内容 Mod 正式导出后还包含未加密的 runtime.zip。公开创作、协作、继续编辑和初期验证。
.emod加密运行内容,不附作者源码。希望发布运行包并保留本地源码的作者。

作者保存源码后,需要重新 Build and export,游戏才会得到与源码匹配的新运行载荷。仅保存过的工作文件不等于已完成游戏运行包。相同 GUID 的源码/私有变体可按管理流程选择;不要把两者当作两个独立内容同时启用。

接入私有运行包

  1. 由游戏开发者为自己的游戏准备 RSA-3072 私有包密钥。
  2. 在 Project Settings → Game → EasyMod → Private Mods 配置私钥,派生公钥进入 SDK。
  3. 重新导出 SDK,再让作者以 Encrypted package (.emod) 导出。
  4. 按正式游戏打包流程准备宿主密钥模块并检查发布配置。游戏私钥和宿主专用模块不能进入公共 SDK、通用 Mod Editor 或文档附件。

公开 .umod 不需要这套运行内容加密密钥。纯翻译 Mod 使用公开 .umod,无需 Cook/Pak。普通内容 Mod 的 .umod/.emod 可以附带译文;.emod 的资产 Pak 继续加密,译文使用可读且受签名及哈希绑定的元数据。见本地化。

验证与安全

安装和加载会检查签名、摘要、游戏身份、兼容性、权限与依赖。签名说明包内容及作者身份的一致性,不能保证作者逻辑安全。Blueprint 与资产在引擎进程中执行;权限控制与校验不构成恶意代码沙箱或反作弊保证。只向玩家推荐可信来源,并在服务器端校验重要玩法请求。

私有包加密用于运行内容分发,不能承诺绝对防提取。游戏客户端需要持有解密能力,产品和授权说明应如实描述这一点。

打包游戏、SDK 与编辑器

先确认游戏运行配置

  1. 使用支持的 Win64 Pak 工作流:启用 Pak,关闭 Mod 载荷流程中的 IoStore。先验证 Development 包,再验证实际发行配置。
  2. 保证正常启动地图、玩法地图及需要的公开内容按游戏自己的打包配置被 Cook。
  3. 配置 SafeMenuMap,需要等待首图准备时配置轻量 StartupLoadingMap。
  4. 保存 Mod settings,重新导出当前 SDK。运行时配置由插件在 PIE/Cook 前自动准备;不需要手动创建或编辑内部 Contract 资产。

选择是否随游戏附带创作工具

在 Project Settings → Game → EasyMod → Game Packaging 中,分别设置 Bundle SDK with Game 和 Bundle Mod Editor with Game。

SDKEditor发行方式
开启开启随游戏附带当前 SDK 与已安装、匹配的编辑器。
开启关闭附带 SDK,作者另外下载安装编辑器。
关闭开启附带选中的编辑器,SDK 通过其他渠道提供。
关闭关闭游戏正常发行,SDK 与编辑器分别分发。

附带编辑器复制的是当前工程管理的已安装发行版,不会在游戏打包时自动下载或重新构建完整编辑器。开启组件缺失或 SDK/安装版不匹配时,先修复报告的问题。当前编辑器随游戏附带的详细归档流程以已验证的 UE 5.0 Win64 配置为基础,其他引擎版本应单独验收。

使用正常 UE 打包入口

通过 Platforms → Windows → Package Project 进行打包。以 MyGame 为例,SDK 与编辑器作为独立文件放在发行包的项目子目录中,实际名称以本次导出和打包日志为准:

Windows/
  MyGame.exe
  MyGame/
    Binaries/Win64/...
    MyGame.emsdk
    EasyModEditor/...
  Mods/

SDK 和编辑器不是游戏 Pak 中的普通游戏资产。只给玩家运行的游戏可以关闭这两个附带选项,再通过你的网站给创作者提供下载。

发行前:在目标目录冷启动游戏,分别验证无 Mod、公开 Mod、私有 Mod、停用/排序/重启,再用实际交付 SDK 和编辑器完成一次作者流程。需要联机时额外验证独立服务器与客户端。

维护 SDK、API 与编辑器版本

什么时候需要重新导出 SDK

  • 新增、删除或调整公开类、成员、资源、地图或权限。
  • 修改公开资源内容、输入映射、本地化文本或离线测试环境。
  • 升级游戏公开 API、引擎发行或影响作者环境的原生模块。

保持 GameId 稳定,分别维护游戏版本和 API 版本。新增内容与删除或更改现有成员签名对旧 Mod 的影响不同;不要只改显示版本号就假定兼容。

推荐更新流程

  1. 保存游戏资源和 Mod settings,点击 Export SDK。
  2. 等待发布验证完成,再替换对外下载的当前 SDK。失败时保留之前可用的 SDK。
  3. 在作者编辑器中打开已有 Mod,观察 SDK 更新与权限变化。编辑器会在合适时机同步对应 Mod 的工作区;PIE 或构建期间的同步会等待操作结束。
  4. 原生 DLL、模块描述或工程描述变化时,按提示关闭并重新打开 Mod Editor。
  5. 重新编译、测试并导出受影响的 Mods,再用实际游戏包验证。
  6. 发布简短的迁移说明:新增内容、移除内容、需要作者重新导出的原因和目标版本。

SDK 更新不会授权作者修改更多内容;新的权限仍由开发者配置。作者已经选择的本地覆盖和未保存修改也需要保留与检查,不能把共享 SDK 更新理解为覆盖全部作者作品。

开放原生模块时多检查一步

只有批准的项目 Runtime 模块/API 插件才进入 SDK。批准 DLL 或插件需要审查它的实现、配置和依赖,并满足作者编辑器的二进制兼容要求。不要把游戏私有模块、宿主密钥或未审查的配置顺手放进 SDK。

回归检查:至少保留一个旧 Mod 和一个新 Mod,分别测试允许的兼容路径、应拒绝的签名/权限变化,以及 SDK 更新后作者继续创作的流程。

通过生命周期登记 Mod 地图

让作者在 Mod 自带的生命周期中登记地图,游戏统一汇总到选图界面。基础启动/停止直接使用已有入口,无需再创建 Initialize/Shutdown 扩展基类。以下 Registry、结构体和函数是游戏自定义教学接口。

1. 游戏提供地图登记接口

在游戏 GameInstance 或已有管理服务中提供 RegisterPlayableMaps(ModId, Entries) 与 UnregisterPlayableMaps(ModId),并公开允许的调用。登记表使用 ModId + MapId 作为键,重复登记要幂等处理或明确报告,移除时只处理该 Mod。管理服务须在生命周期激活前可用;若它依赖关卡 Actor,先协调该 Actor 就绪,再激活入口。

字段类型用途
MapIdName当前 Mod 内稳定且唯一的地图标识。
DisplayNameText游戏选图界面的本地化显示名称。
MapWorld Soft Object Reference玩家选择后实际打开的地图。

2. 公开必要内容并导出 SDK

公开登记接口、地图信息结构和作者需要的配置类型/字段;启用实际支持的地图创作能力。只开放必要调用和资源。作者自己的新地图按 Mod 打包流程处理;编辑游戏原地图还需要相应地图权限。配置更改后重新导出 SDK。

3. 作者接入已有生命周期

在自己的 Mod 中创建地图及地图配置,然后打开 Mod tools → Mod lifecycle...。OnModStart 取得已公开的游戏管理服务并提交地图数组,使用入口的 ModId;OnModStop 按同一个 ModId 撤销登记。保留所需父类调用。

Existing Mod lifecycle Blueprint
  OnModStart → Get approved game registry
             → RegisterPlayableMaps(ModId, this Mod’s map entries)
  OnModStop  → UnregisterPlayableMaps(ModId)

Game menu → Read registry → Display entries → Open selected map

每个 Mod 保存自己的配置,游戏在运行时组合各自的登记。多个 Mod 修改同一份游戏 DataAsset 不会自动合并数组。生命周期会在世界重新激活时再次运行;GameInstance 登记表也应支持重复登记和上一世界清理。

4. UI 与跨地图处理

游戏 UI 在实际登记完成后刷新列表;On Ready 只是准备完成,不能代替登记完成通知。选中地图后,单机可用 Open Level (by Object Reference);联机由服务器决定,并结合会话同步。软引用本身不证明地图已 Cook,必须确认运行包包含地图及依赖。

如果游戏要在 Mod 未激活时读取纯静态地图目录,或一个 Mod 需要多个可枚举扩展类型,可以另行使用 FindDerivedModClasses。这是可选发现方案,查询到 Class 后也不会自动执行它的方法。

检查两个 Mod 的地图能同时出现;同名 MapId 以 ModId 区分;重复启动不重复添加;停止后只移除自己的项;切图、重启及实际运行包的地图打开正常。本页为接入示例,不表示你的自定义登记接口已自动生成。

Blueprint API

Blueprint API

蓝图 API

按实际源码列出 4 个主要接口类的 63 个 Blueprint 函数。每张卡片包含 C++ 名称、输入参数、返回值、用途、场景与节点预览。点击“复制节点”后可粘贴到启用了当前版本 EasyMod 的 Blueprint 图表,再连接 Target 和其他引脚。

前三个 Subsystem 从 GameInstance 获取;EasyMod UI Blueprint Library 的静态函数直接搜索调用。蓝图节点标题和引脚保留英文,中文仅翻译说明。

启动与加载 9

加载 Mods

C++LoadMods返回值bool参数bool bActivateWhenReady = true用途排队执行验证、挂载及补丁准备,可选择就绪后自动激活入口。场景手动加载时先绑定 OnStartupProgress 和 OnReady;返回值表示请求是否被接受。

是否已准备就绪

C++IsReady返回值bool参数无输入参数用途检查全局 Mod 准备状态是否为 Ready。场景准备完成后再开放依赖 Mod 内容的操作;这不代表所有 Mod 都已成功激活。

获取启动进度

C++GetStartupProgress返回值FEasyModStartupProgress参数无输入参数用途读取当前准备状态、阶段、进度和错误信息。场景在启动页展示验证、挂载和准备结果。

激活 Mod 入口

C++ActivateMods返回值bool参数无输入参数用途为当前世界启动已经准备好的 Mod 入口。场景在游戏自己的准备流程结束后启动 Mod;普通 GameMode 也能使用。

停止 Mod 入口

C++StopModEntries返回值bool参数无输入参数用途结束入口生命周期及其管理的对象。场景返回菜单或停止玩法内容;已挂载的包和已应用补丁仍可能需要重启才能移除。

入口是否已激活

C++AreModEntriesActive返回值bool参数无输入参数用途查询当前 Mod 入口的激活状态。场景让管理界面区分准备就绪与入口运行状态。

刷新 Mod 发现流程

C++DiscoverMods返回值bool参数无输入参数用途排队刷新元数据、验证和分阶段挂载。场景需要重新扫描时发起请求;用 OnReady 接收准备完成通知。

重试启动准备

C++RetryStartup返回值bool参数无输入参数用途请求重新执行失败后的 Mod 准备流程。场景显示错误后让玩家重试,并继续监听启动进度。

取消启动准备

C++CancelStartup返回值void参数无输入参数用途取消当前启动准备操作。场景玩家取消加载时结束当前请求,并显示最终状态。

Mod 管理 9

获取已安装 Mods

C++GetInstalledMods返回值TArray<FEasyModInfo>参数无输入参数用途返回当前已安装 Mod 的信息列表。场景创建 Mod 列表,并在 OnChanged 后刷新。

导入 Mod 包

C++ImportMod返回值bool
OutModId: FString
OutError: FString
参数const FString& ArchivePath用途验证并安装本地 .umod 或 .emod 到当前游戏的 Mods 目录。场景通过文件选择器获得 ArchivePath,显示安装结果;新安装内容在重启后生效。

请求启用或停用 Mod

C++RequestSetModEnabled返回值bool参数const FString& ModId
bool bEnabled
用途提交一个逻辑启停请求,并处理相关依赖 Mods。场景勾选列表项后等待 OnEnableRequestCompleted,不能只用立即返回值判断结果。

设置 Mod 顺序

C++SetModOrder返回值bool
OutAppliedOrder: TArray<FString>
OutError: FString
参数const TArray<FString>& RequestedOrder用途提交排序请求,并返回依赖优先的实际顺序和错误。场景拖放结束后一次提交,再按 OutAppliedOrder 刷新列表。

获取 Mod 冲突

C++GetModConflicts返回值TArray<FEasyModConflictInfo>参数无输入参数用途读取运行时汇总的内容贡献冲突信息。场景在管理界面展示冲突来源与当前选择。

选择源码或私有包变体

C++SelectVariant返回值bool
OutError: FString
参数FGuid ModGuid
bool bUseSourceProject
用途为同一 Mod GUID 选择作者工程或私有包变体。场景切换工作区与发行包时显示 OutError;内容已加载时可能需要重启。

Mod 是否已登记

C++IsModRegistered返回值bool参数const FString& ModId用途检查指定 Mod ID 是否存在于当前登记记录。场景在执行依赖该 Mod 的操作前检查记录。

获取 Mods 目录

C++GetModsDirectory返回值FString参数无输入参数用途返回当前游戏使用的本地 Mods 目录。场景向玩家显示安装位置,或用于打开目录按钮。

获取最近错误

C++GetLastError返回值FString参数无输入参数用途读取运行时记录的最近错误文本。场景请求失败后补充诊断;异步操作仍应优先使用对应完成事件。

公开内容与稳定 ID 12

获取公开类型

C++GetPublicTypes返回值TArray<FEasyModTypeInfo>参数无输入参数用途读取 SDK 与运行时登记的公开类型信息。场景构建公开内容浏览器,或查看当前游戏允许访问的类型。

查找派生类型信息

C++FindDerivedTypes返回值TArray<FEasyModTypeInfo>参数const FString& BaseClassPath
bool bRecursive = true
bool bIncludeAbstract = false
用途按基类路径查找派生类型,可控制递归与抽象类筛选。场景展示类型目录;需要实际 UClass 时使用 FindDerivedModClasses。

按 Mod 查找派生类型

C++FindDerivedTypesForMod返回值TArray<FEasyModTypeInfo>参数const FString& BaseClassPath
const FString& ModId
bool bRecursive = true
bool bIncludeAbstract = false
用途在指定 Mod 范围内查询某个基类的派生类型。场景为选中的 Mod 展示可用内容类型。

查找 Mod 派生类

C++FindDerivedModClasses返回值TArray<UClass*>参数UClass* BaseClass
const FString& ModId
bool bRecursive = true
bool bIncludeAbstract = false
用途验证已挂载包及实际继承关系后返回匹配的 UClass。场景从批准的基类查询作者扩展,再由游戏决定如何生成实例。

运行配置是否已加载

C++HasContract返回值bool参数无输入参数用途检查内部生成的运行时公开规则配置是否已加载。场景排查配置加载问题;正常接入由插件自动生成配置,无需手工编辑内部资产。

获取 Mod 执行作用域

C++GetModExecutionScope返回值UEasyModExecutionScope*参数const FString& ModId用途取得指定 Mod 的执行作用域对象。场景需要与 Mod 生命周期关联的操作时使用对应作用域。

注册稳定内容 ID

C++RegisterModContent返回值bool
StableId: FString
Error: FString
参数const FString& ModId
const FString& Key
FSoftObjectPath Asset
int32 DataVersion
用途用 Mod ID、作者 Key、资源和数据版本登记内容,输出稳定 ID。场景存档记录物品或其他内容时保留稳定标识,减少资源改名和移动带来的影响。

内容是否已注册

C++IsContentRegistered返回值bool参数const FString& StableId用途检查稳定内容 ID 是否已登记。场景读取存档后判断引用内容当前是否可用。

获取已注册内容信息

C++GetRegisteredContentInfo返回值bool
ModGuid: FGuid
DataVersion: int32
参数const FString& StableId用途按稳定 ID 获取 Mod GUID 和内容数据版本。场景执行内容兼容性检查或为存档显示来源。

解析 Mod 内容

C++ResolveModContent返回值UObject*参数const FString& StableId用途把已登记的稳定内容 ID 解析为 UObject。场景读取存档内容后获取实际资源,并检查返回对象是否有效。

解析公开对象

C++ResolveExposedObject返回值UObject*参数FEasyModObjectHandle Handle用途把公开对象句柄解析为当前可用的 UObject。场景使用宿主已公开的实例,并在使用前检查有效性。

查找公开对象

C++FindExposedObjects返回值TArray<FEasyModObjectHandle>参数const FString& PublicClassPath
FName Channel
用途按公开类路径和通道查找已公开实例的句柄。场景定位游戏通过公开机制提供的对象集合。

联机同步与恢复 15

自动会话同步是否启用

C++IsAutomaticModSessionSyncEnabled返回值bool参数无输入参数用途查询当前实际 GameMode 和配置是否启用自动联机 Mod 同步。场景区分普通本地 Mod 流程与自动网络准入流程。

准备 Mod 会话

C++PrepareModSession返回值bool参数const FString& GameUrl
int32 SyncPort = 0
用途根据游戏连接地址和同步端口准备服务器要求的 Mod 集合。场景连接前下载、校验并应用会话配置;准备完成后使用返回的已准备连接地址。

取消会话准备

C++CancelModSession返回值void参数无输入参数用途取消当前 Mod 会话准备操作。场景玩家离开下载界面时取消,并处理 OnCancelled。

启动 Mod 同步服务

C++StartModSessionServer返回值bool参数int32 SyncPort = 0用途按指定端口启动当前服务器的 Mod 包同步服务。场景手动管理同步服务;自动接入通常由实际 GameMode 流程协调。

停止 Mod 同步服务

C++StopModSessionServer返回值void参数无输入参数用途停止当前服务器的 Mod 包同步服务。场景关闭服务器或结束手动托管的同步流程。

离开 Mod 会话

C++LeaveModSession返回值bool
Error: FString
参数无输入参数用途请求结束当前同步会话并恢复本地配置流程。场景退出服务器时调用,并显示错误或后续重启要求。

开始服务器 Mod 变更

C++BeginServerModChange返回值bool
Error: FString
参数无输入参数用途停止新准入,请求玩家离开玩法,并让宿主进入配置的安全大厅。场景服务器修改 Mod 集合前先调用,等待安全流程完成。

完成服务器 Mod 变更

C++CompleteServerModChange返回值bool
Error: FString
参数无输入参数用途在 Mod 操作完成后,从安全大厅发布新的完整集合。场景完成启停与排序后提交,让后续连接按新版本集合重新准备。

恢复 Mod 会话

C++RecoverModSession返回值bool
Error: FString
参数bool bRestoreSinglePlayer用途请求恢复会话,可选择恢复单人配置。场景遇到需要重启的配置变化时使用;绑定恢复前事件的宿主必须完成或取消请求。

完成恢复前确认

C++CompleteModSessionRecovery返回值bool
Error: FString
参数FGuid RequestId
bool bProceed
用途使用 RequestId 批准或取消仍在等待的会话恢复。场景宿主完成必要存档后响应 OnBeforeSessionRecovery,避免批准已过期请求。

获取待处理恢复请求

C++GetPendingRecoveryRequest返回值FGuid参数无输入参数用途读取当前等待宿主处理的恢复请求 ID。场景将保存结果与准确的恢复请求关联。

获取会话同步进度

C++GetSessionProgress返回值FEasyModSessionProgress参数无输入参数用途返回当前会话阶段、总体进度、信息与逐 Mod 文件进度。场景展示下载、缓存命中、校验、失败和重启状态。

获取已准备连接地址

C++GetPreparedConnectionUrl返回值FString参数无输入参数用途返回完成准备后使用的游戏连接 URL。场景会话进入 Ready 后用于连接,不要改回未经准备的原始地址。

获取服务器 Mod 集合 ID

C++GetHostedSetId返回值FString参数无输入参数用途读取当前宿主发布的 Mod 集合标识。场景为状态面板或诊断记录标识本次集合。

获取恢复配置路径

C++GetRecoveryProfilePath返回值FString参数无输入参数用途读取会话恢复使用的配置文件路径。场景提供恢复诊断信息;让插件管理恢复文件内容。

Mod Editor 与界面工具 10

本地化内置文本

C++LocalizedText返回值FText参数const FString& InString用途通过插件本地化目标解析英文内置 UI 文本。场景复用管理界面标签;游戏和 Mod 自有文本使用各自的本地化流程。

是否为游戏开发工程

C++IsGameDeveloperProject返回值bool参数无输入参数用途判断当前是否为未 Cook 的游戏开发工程,而非作者 SDK 工作区。场景区分开发者与作者侧的工具入口。

检查 Mod Editor 可用性

C++IsModEditorAvailable返回值bool
OutError: FString
参数bool bDeveloperProject = false用途检查当前上下文中是否存在可用的 Mod Editor。场景启用编辑器按钮前查询,并向用户显示 OutError。

启动 Mod Editor

C++LaunchModEditor返回值bool
OutError: FString
参数bool bDeveloperProject = false用途启动当前游戏或开发工程对应的独立 Mod Editor。场景在游戏菜单中提供创建 Mod 的入口,失败时显示 OutError。

打开指定 Mod 工程

C++LaunchModEditorForMod返回值bool
OutError: FString
参数const FString& ModId
bool bDeveloperProject = false
用途为指定 Mod ID 启动对应的 Mod Editor 工作流。场景在列表中提供编辑按钮;公开源码与私有包的可编辑性不同。

选择 Mod Editor 目录

C++ChooseModEditorDirectory返回值bool
OutDirectory: FString
OutError: FString
参数bool bDeveloperProject = false用途打开原生选择界面并返回编辑器目录或错误。场景配置手动安装的独立编辑器位置。

选择游戏 SDK

C++ChooseModEditorSDK返回值bool
OutProjectPath: FString
OutError: FString
参数bool bDeveloperProject = false用途打开 SDK 选择流程并返回相应工程路径或错误。场景将已有 .emsdk 接入编辑器工作流。

打开编辑器下载页

C++OpenModEditorDownloadPage返回值bool
OutError: FString
参数bool bDeveloperProject = false用途打开配置的 Mod Editor 下载页面。场景为尚未安装编辑器的作者提供下载入口。

安装或更新 Mod Editor

C++InstallOrUpdateModEditor返回值bool
OutError: FString
参数bool bDeveloperProject = false用途用游戏导出的 SDK 和更新策略启动独立安装器。场景在管理界面提供安装与更新按钮,并显示失败原因。

选择 Mod 包

C++ChooseModArchive返回值bool
OutPath: FString
OutError: FString
参数无输入参数用途打开可选的原生文件选择器,返回 Mod 包路径和错误。场景把 OutPath 传给 ImportMod;也可以由游戏自己的文件选择界面提供路径。

Mod 存档 8

同步保存 Mod 数据

C++SaveModData返回值bool
Error: FString
参数FGuid ModGuid
const FString& Slot
int32 DataVersion
USaveGame* Data
const TArray<FEasyModSaveRequirement>& Requirements
const TArray<FString>& ContentIds
用途验证并保存指定 Mod 的 SaveGame 数据、依赖和内容 ID。场景少量同步存储;数据字段需要 SaveGame,网络客户端不能执行权威写入。

同步读取 Mod 数据

C++LoadModData返回值USaveGame*
Error: FString
参数FGuid ModGuid
const FString& Slot
int32 ExpectedDataVersion
用途读取并验证指定 Mod、存档槽和目标数据版本的存档。场景同步读取时检查返回对象与 Error,配置迁移以处理版本变化。

请求异步保存 Mod 数据

C++RequestSaveModData返回值FGuid参数FGuid ModGuid
const FString& Slot
int32 DataVersion
USaveGame* Data
const TArray<FEasyModSaveRequirement>& Requirements
const TArray<FString>& ContentIds
用途发起保存请求并返回 RequestId,本地磁盘 I/O 在后台执行。场景先绑定 OnSaveRequestCompleted、OnSaveRequestFailed 和 OnSaveRequestCancelled。

请求异步读取 Mod 数据

C++RequestLoadModData返回值FGuid参数FGuid ModGuid
const FString& Slot
int32 ExpectedDataVersion
用途发起读取请求并返回 RequestId。场景按请求 ID 处理完成事件中的 Data,不把请求返回值当作存档对象。

取消存档请求

C++CancelSaveRequest返回值bool参数FGuid RequestId用途请求取消指定 RequestId 的存档操作。场景关闭读写界面或取消恢复流程时,处理对应取消通知。

完成宿主存储请求

C++CompleteStorageRequest返回值bool参数FGuid RequestId
UEasyModSaveStorageProvider* Provider
bool bSucceeded
const FString& Record
const FString& Error
用途由当前宿主存储提供者报告异步读取或写入结果。场景接入云存档等自有后端;请求和 Provider 必须与当前操作匹配。

注册存档迁移

C++RegisterMigration返回值bool参数FGuid ModGuid
UEasyModSaveMigration* Migration
用途为指定 Mod 注册数据版本迁移对象。场景在 Mod 激活时登记迁移;迁移失败会保留原始文件。

设置宿主存储后端

C++SetHostStorageProvider返回值bool
Error: FString
参数UEasyModSaveStorageProvider* Provider用途设置当前 GameInstance 的宿主存储提供者;空对象恢复文件存储。场景将已验证的存档流程接入游戏自己的存储系统。

常用事件

TargetEvent用途
UEasyModSubsystemOnReady
OnStartupProgress
启动准备完成、状态与进度;不等同于所有 Mod 成功激活。
UEasyModSubsystemOnChanged
OnVariantChanged
OnEnableRequestCompleted
列表与变体变化,以及启停操作的最终结果。
UEasyModSessionSubsystemOnProgress
OnCompleted
OnFailed
OnCancelled
OnRestartRequired
同步进度、完成、失败、取消和需要重启的状态。
UEasyModSessionSubsystemOnServerPeersReleased
OnBeforeSessionRecovery
服务器变更的玩家释放通知;恢复前宿主存档与确认流程。
UEasyModSaveSubsystemOnSaveRequestCompleted
OnSaveRequestFailed
OnSaveRequestCancelled
按 RequestId 匹配异步存档结果。
UEasyModSaveSubsystemOnValidatedSave
OnValidatedLoad
OnOptionalContentUnavailable
已验证读写的观察通知,以及可选内容缺失信息。
异步接口返回 bool 或 RequestId 时,表示本次请求的受理情况或标识;实际完成结果由对应事件报告。游戏开发者应按用途选择对 Mod 作者公开的 API,宿主管理和网络准入接口不需要全部开放。

EM 错误码与处理办法

EasyMod 0.7.0 的错误码速查:595 个当前可定位编号、32 个分类。每项包含含义、原始诊断和处理办法;支持中文、英文及编号搜索。

先读懂日志

错误编号帮助定位类别,后面的完整文字才说明这一条具体失败。一个编号可能由编辑器、工具或游戏的不同入口复用;不要只按编号执行同一套重置。

  1. 找到第一条具体 Error / Compiler Error / EMxxxx,记录失败阶段、资源完整路径、字段、节点或 Mod ID。
  2. 若看到 EM3703: command returned 1; see .../01-validate.log,打开该日志继续找前面的根因;02-cook.log 失败也要看 UE 的首条具体编译/Cook 错误。
  3. 在下方输入编号,例如 EM2316。展开原始诊断,选择与你日志一致的分支。
  4. 自己的 Blueprint、数据和文件问题由作者修复;公开权限、游戏模块和新 SDK 由开发者提供;完整安装或服务问题由发行维护者修复。

保存失败先保留未保存作品;不要把清空工作区、手改 Contract/BuildId 或关闭验证当作通用修复。没有 EM 编号的 UE 编译错误也可能是真正根因;Warning 本身不一定阻断任务。

常见错误直达

完整编号目录

595 / 595

编号按数值分类,历史分配有重叠。先匹配完整诊断及所属阶段,再使用处理步骤。下方保留原始日志模板;{...}、%s 和 @@ 表示实际值或节点位置。

EM10xx · 包清单与身份

核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

EM1001必需的字符串字段缺失或类型错误1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1001: missing/invalid string '%s'
EM1002JSON 文件不存在或超过大小限制1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1002: JSON missing or exceeds size limit:
EM1003JSON 结构、语法或数值无效10 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1003: JSON exceeds its size limit
  • EM1003: JSON nesting exceeds 32
  • EM1003: JSON root must be an object
  • EM1003: cannot read bounded JSON:
  • EM1003: duplicate JSON key:
  • EM1003: invalid JSON object
  • EM1003: invalid JSON structure
  • EM1003: invalid JSON syntax
  • EM1003: invalid JSON:
  • EM1003: non-finite JSON number
EM1004无法创建目录或原子替换输出文件3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1004: failed to create output directory:
  • EM1004: failed to replace file:
  • EM1004: file verification failed after replace:
EM1005无法打开包内负载1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1005: cannot open payload:
EM1006读取包内负载失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1006: payload read failed:
EM1007旧格式 Mod 包需要重新创建或导出3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1007: invalid single-file .umod author project; old packages must be recreated
  • EM1007: old Mod format; recreate and export this Mod
  • EM1007: old Mod package; recreate and export a new .emod
EM1008Mod 身份、版本或运行元数据无效5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1008: invalid GUID-derived Mod identity or filename
  • EM1008: invalid author project compatibility or entry class
  • EM1008: invalid identity, hash, platform or container (v1 supports Win64 Pak only)
  • EM1008: missing Mod author name
  • EM1008: missing cooked source revision
EM1009生命周期入口不在当前 Mod 命名空间1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1009: entryClass must be a generated Blueprint class in the mod namespace
EM1010源码标记与负载清单不一致3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1010: editableSource must be boolean
  • EM1010: payload count differs from editableSource
  • EM1010: required payload missing
EM1011负载路径或哈希无效、重复1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1011: invalid/duplicate payload path or hash
EM1012依赖或冲突列表格式无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1012: invalid dependency/conflict list
EM1013依赖或冲突重复、指向自身或无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1013: invalid, duplicate or self dependency/conflict
EM1014负载大小不是合法的有限整数1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1014: payload size must be a finite nonnegative integer within limits
EM1015支持的游戏版本列表无效4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1015: invalid or duplicate game version
  • EM1015: invalid supported game version
  • EM1015: missing supported game versions
  • EM1015: supportedGameVersions must contain 1-64 game versions
EM1016作者签名公钥无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1016: invalid publisher public key
EM1017公开、私有包类型与内容不匹配4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1017: .emod must be an encrypted private package
  • EM1017: cooked runtime must contain no editable source
  • EM1017: invalid Mod package type
  • EM1017: missing Mod package type
EM1018私有 Pak 密钥缺失或出现在公开包中2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对完整诊断指出的清单字段;普通作者从有效源码重新导出包,不手改已签名清单。

原始日志模板(以实际完整文字为准)
  • EM1018: missing or invalid private Pak encryption key
  • EM1018: public Mod cannot carry a private Pak key

EM11xx · 包兼容性与宿主授权

核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

EM1100当前包平台不是受支持的 Win641 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1100: the initial container profile is Win64 only
EM1101游戏、引擎或 Cook 配置不匹配1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1101: game/engine/cook profile mismatch
EM1102负载超过宿主设置的限制1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1102: payload exceeds configured limits
EM1103负载实际大小与清单不符1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1103: payload size mismatch:
EM1104负载 SHA-256 与清单不符1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1104: payload SHA-256 mismatch:
EM1110缺少或损坏宿主接口使用记录4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1110: invalid usedHost members
  • EM1110: invalid usedHost or override package list
  • EM1110: malformed usedHost member
  • EM1110: missing usedHost compatibility record; rebuild the Mod
EM1111原资源覆盖未获授权或清单不一致2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1111: override package list and payload differ
  • EM1111: override path not allowed by this game:
EM1112公共类被移除,或动画 Slot 补丁无效4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1112: Slot patch manifest has no patches
  • EM1112: invalid Slot patch version or count
  • EM1112: invalid or unapproved skeleton Slot patch
  • EM1112: used public class removed:
EM1113公共成员变化,或 Socket、名称映射无效5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1113: invalid or unapproved Socket patch
  • EM1113: missing or foreign Mod name map
  • EM1113: namespaced additions require manifest v7
  • EM1113: too many Socket patches
  • EM1113: used public member removed, changed or denied:
EM1114公共资源被移除,或函数补丁无效3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1114: invalid Blueprint function patch version or count
  • EM1114: invalid or unapproved Blueprint function patch
  • EM1114: used public asset removed:
EM1115使用的公共地图已被移除1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1115: used public map removed:
EM1116使用的骨骼动画 Slot 编辑权限已撤回1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1116: used skeleton Slot editing permission removed:
EM1117使用的 Socket 添加权限已撤回1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1117: used Socket addition permission removed:
EM1118使用的 Blueprint 编辑权限已撤回1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1118: used Blueprint editing permission removed:
EM1119DataTable 权限或补丁结构已变化3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1119: invalid Data Table patch version or count
  • EM1119: invalid or unapproved Data Table patch
  • EM1119: used Data Table editing permission removed:
EM1120创作能力或 Runtime 模块清单无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1120: invalid authoring capability or runtime module list
EM1121游戏不支持 Mod 要求的创作能力1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1121: game does not support required capability:
EM1122游戏或服务器缺少所需 Runtime 模块1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1122: game/server lacks required Runtime module:
EM1123网络复制元数据缺失或摘要不一致3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1123: incomplete v9 networking metadata; re-export the Mod
  • EM1123: invalid replication schema entry
  • EM1123: replication schema digest differs
EM1124地图族或宿主事件元数据无效5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1124: invalid or unapproved map group
  • EM1124: invalid used host event
  • EM1124: map group contains an unauthorized or overlapping package:
  • EM1124: missing v10 event or map metadata
  • EM1124: undeclared map Pak
EM1125使用的宿主事件签名或权限已变化1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1125: used event removed, changed or no longer open:
EM1126地图族不完整或场景编辑权限已变化3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1126: map family is incomplete:
  • EM1126: map is no longer open for scene modification:
  • EM1126: package is outside the current map family:
EM1127游戏构建与插件能力证据缺失或无效12 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1127: actual Game runtime proof is required; Server is optional
  • EM1127: build proof lacks capability module:
  • EM1127: build proof lacks valid capability plugin evidence:
  • EM1127: current SDK has no valid actual build proof for
  • EM1127: incomplete plugin build evidence
  • EM1127: invalid or duplicate runtime proof
  • EM1127: invalid plugin version/descriptor proof
  • EM1127: invalid proof module name
  • EM1127: invalid proof plugin name
  • EM1127: missing v11 runtime proof or async metadata
  • EM1127: new execution and proof metadata requires manifest v11
  • EM1127: runtime proof lacks required module:
EM1128异步事件实现与签名声明不一致6 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对游戏、SDK 和运行包版本;权限或签名变化由开发者更新 SDK,作者重新编译导出。

原始日志模板(以实际完整文字为准)
  • EM1128: compiled async event differs from signed metadata:
  • EM1128: duplicate async patch
  • EM1128: invalid async function name
  • EM1128: signed async event is absent from its patch:
  • EM1128: stateful host events require manifest v11
  • EM1128: undeclared or foreign async execution patch

EM12xx · 类与生命周期类型目录

成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

EM1200类型目录头或类型数量无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1200: invalid catalog header/count
EM1201类型目录路径或父类记录无效、重复1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1201: invalid/duplicate catalog type or parent chain
EM1202类型目录缺少抽象类标记1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1202: missing abstract flag
EM1203祖先类型列表无效或包含循环1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1203: malformed/cyclic ancestor list
EM1204首个祖先不是实际直接父类1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1204: first ancestor must be the immediate parent
EM1205类型没有获准的公共宿主父类1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1205: type has no permitted public host parent:
EM1206生命周期入口未进入有效类型目录2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:成功编译并保存 Blueprint,使用 Mod tools → Mod lifecycle... 打开已有入口,再导出更新包。

原始日志模板(以实际完整文字为准)
  • EM1206: create and save BP_ModEntry before enabling this source Mod
  • EM1206: entry class absent from catalog

EM13xx · Pak 挂载、引用与重启

先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

EM1300插件命名空间不安全1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1300: unsafe plugin namespace
EM1301同一 Mod 的旧内容仍驻留内存4 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1301: Older content from this Mod is already loaded. Stop and restart PIE, or restart the standalone game. If files are still in use, close the affected assets or restart the editor.
  • EM1301: namespace already mounted with different content; restart the entire process
  • EM1301: this Mod namespace still has different content mounted; stop and restart PIE, or close referenced editor assets
  • EM1301: this Mod still has different content mounted; stop and restart PIE, or close referenced editor assets
EM1302Mod 命名空间已被其他安装或工程占用2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1302: Mod namespace is already registered
  • EM1302: namespace is already registered (disable the authoring plugin when testing external packages)
EM1303PakFile 层不可用或初始化失败2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1303: could not initialize the PakFile layer for editor Mod loading
  • EM1303: no PakFile layer available for Mod loading
EM1304挂载 Pak 失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1304: Pak mount failed
EM1305源码 Content 目录或命名空间无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1305: invalid source Content or Mod namespace
EM1306Mod 包仍被引用,无法直接切换1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1306: Mod packages are still referenced; restart the game to switch
EM1307无法卸载 Pak,需要重启1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1307: Pak could not be unmounted; restart the game
EM1310原资源覆盖归属无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1310: invalid override owner
EM1311另一份原资源覆盖 Pak 仍已挂载1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1311: a different override Pak is already mounted; restart required
EM1312覆盖加载所需 PakFile 层不可用1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1312: PakFile layer unavailable
EM1313覆盖 Pak 索引无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1313: invalid override Pak index
EM1314覆盖 Pak 的目标不是游戏 Content1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1314: override Pak does not target game Content
EM1315覆盖 Pak 含未声明文件或越界路径3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1315: override Pak contains an unsupported file
  • EM1315: override Pak contains undeclared package:
  • EM1315: override Pak path escapes Content
EM1316覆盖 Pak 缺少已声明的资源包2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1316: override Pak is missing declared package:
  • EM1316: override Pak is missing declared packages
EM1317覆盖 Pak 挂载失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1317: override Pak mount failed
EM1318覆盖资源仍驻留,重启后才能完成卸载1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1318: override packages are still loaded; restart to complete unload
EM1319覆盖 Pak 卸载失败,需要重启1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:旧版本资源仍在内存时不能靠重新覆盖磁盘文件完成切换。先保存,停止并重新开始 PIE;仍提示时关闭引用资源或重启受影响的编辑器/独立游戏。保留 .umod 与工作区。

原始日志模板(以实际完整文字为准)
  • EM1319: override Pak unmount failed; restart required
EM1320地图 Pak 缺失或地图覆盖依赖失败2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先保存作品并停止 PIE;仍有旧包或资源驻留时重启相关编辑器或游戏,再加载新包。

原始日志模板(以实际完整文字为准)
  • EM1320: map Pak is unavailable:
  • EM1320: map override dependency failed:

EM14xx · 游戏配置与安装记录

开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

EM1400游戏生成的 Mod 配置不存在3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1400: generated Mod configuration is missing. Open the game project and check its Mod settings before playing or packaging.
  • EM1400: no compiled host contract
  • EM1400: no host contract; compile one in Tools > EasyMod before loading mods
EM1401用户 Mod 顺序、启用或移除记录无效4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1401: invalid Mod order
  • EM1401: invalid enabled preferences
  • EM1401: invalid pending removals
  • EM1401: invalid user settings
EM1403Mod 数量超过游戏配置上限1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1403: mod count exceeds configured limit
EM1404Mod 归档无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1404: invalid Mod archive
EM1405同一 GUID 的同类 Mod 包重复1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1405: duplicate Mod GUID and package type
EM1410当前 Mod 工作区描述无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者检查 Mod settings 与生成配置;玩家核对安装包和游戏内选择,按具体诊断修复记录。

原始日志模板(以实际完整文字为准)
  • EM1410: invalid active Mod workspace descriptor

EM15xx · 依赖、排序与切换状态

安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

EM1500Mod 依赖存在循环1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1500: dependency cycle
EM1501所需依赖缺失、被禁用或版本不符3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用诊断指出的依赖及兼容版本;不要仅通过重新排序掩盖缺失或版本不符。发布者修正依赖声明后重新导出。

原始日志模板(以实际完整文字为准)
  • EM1501: missing dependency:
  • EM1501: missing or incompatible dependency:
  • EM1501: missing, disabled, cyclic, failed or version-mismatched dependency:
EM1502子系统正在关闭1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1502: subsystem is shutting down
EM1504依赖 Mod 挂载失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1504: a dependency failed to mount
EM1505类型目录中的类发生冲突1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1505: catalog class collision
EM1506源码没有匹配的 Cook 运行负载5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:Save 只保存源码,不会自动生成与其匹配的 Cook 内容。从当前源码重新 Build and export,安装本次输出并重启真实游戏;确认没有误选另一份同 GUID 变体。

原始日志模板(以实际完整文字为准)
  • EM1506: .umod has no cooked runtime; export this Mod before using Shipping
  • EM1506: .umod source and cooked runtime identities differ
  • EM1506: .umod source changed since Cook; rebuild before loading in Shipping
  • EM1506: missing source digest:
  • EM1506: source changed since Cook; rebuild this Mod
EM1507Mod 声明冲突或请求的变体不存在2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1507: declared conflict with
  • EM1507: requested Mod variant is unavailable
EM1508变体选择已保存,重启后才会切换1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1508: version selection saved; restart to switch the loaded package
EM1510当前不在安全菜单或不能执行变更2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1510: change Mods in the configured safe menu; the Mod must be installed and no request may be running
  • EM1510: left the safe menu before the request completed
EM1511当前地图不允许修改 Mod 排序1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1511: sorting is only available in the configured safe menu
EM1513排序含未知、重复或遗漏的 Mod2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1513: order contains an unknown or duplicate Mod
  • EM1513: order must contain every discovered Mod
EM1514依赖循环阻止排序1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1514: dependency cycle prevents ordering
EM1516运行负载尚未准备完成1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1516: runtime payload is not prepared; wait for Mod readiness
EM1517准备过程中 Mod 元数据发生变化2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1517: Mod metadata changed during preparation; refresh and retry
  • EM1517: Mod source metadata changed during preparation; refresh and retry
EM1520加载地图失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:安装并启用兼容依赖,解决冲突;准备完成后在配置的安全菜单修改 Mod 集,按返回结果处理重启。

原始日志模板(以实际完整文字为准)
  • EM1520: loading map failed: %s

EM16xx · 激活、补丁与事件执行

检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

EM1600当前没有可用于激活的游戏世界1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1600: no active game world
EM1601生命周期入口不是有效的 EasyModEntry 子类1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1601: invalid entry base
EM1602依赖 Mod 未能激活1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1602: dependency activation failed
EM1603无法构造生命周期入口实例1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1603: entry construction failed
EM1610骨骼动画 Slot 补丁无效或未经授权1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1610: invalid or unauthorized skeleton Slot patch
EM1611骨骼 Slot 目标或基线不存在1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1611: skeleton Slot target or baseline is unavailable
EM1612修改了宿主 Slot 基线或新增名称无效7 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分新增定义与游戏已有定义;撤回对已有 Socket/Slot/分组或受保护事件的删除、重命名和修改。若诊断为 Mod 身份缺失,则先从选择窗口打开正确 Mod;需要变更原定义时由开发者开放相应编辑权限。

原始日志模板(以实际完整文字为准)
  • EM1612: Slot namespace identity differs
  • EM1612: duplicate, non-additive or invalid skeleton Slot definition
  • EM1612: host Slot baseline differs:
  • EM1612: host Slot group baseline differs
  • EM1612: invalid Slot group
  • EM1612: invalid or non-additive namespaced Slot
  • EM1612: invalid or non-additive namespaced Slot group
EM1613Slot 补丁依赖失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1613: Slot patch dependency failed
EM1620生成运行时名称需要有效 Mod GUID1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1620: runtime name requires a valid Mod GUID
EM1621Mod 名称映射身份或定义无效2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1621: invalid Mod name map identity or count
  • EM1621: invalid, duplicate or incorrectly namespaced Mod definition
EM1622名称映射缺少对应补丁或目标权限4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1622: host name mapping has no corresponding additive patch
  • EM1622: name map contains an undeclared host definition:
  • EM1622: name map references a missing owned definition:
  • EM1622: name map targets a resource without additive permission
EM1623Socket 补丁无效或未经授权1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1623: invalid or unauthorized Socket patch
EM1624Socket 定义冲突、基线变化或身份缺失3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分新增定义与游戏已有定义;撤回对已有 Socket/Slot/分组或受保护事件的删除、重命名和修改。若诊断为 Mod 身份缺失,则先从选择窗口打开正确 Mod;需要变更原定义时由开发者开放相应编辑权限。

原始日志模板(以实际完整文字为准)
  • EM1624: current Mod identity requires an author context or compiler binding
  • EM1624: duplicate, incompatible or invalid Socket definition:
  • EM1624: host Socket baseline differs:
EM1625没有目标对象,无法解析 Mod 名称1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1625: cannot resolve Mod name '%s' without a target object
EM1626名称解析后容器键冲突或类型不符3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1626: name Map keys collide after runtime resolution:
  • EM1626: string Map keys collide after runtime resolution:
  • EM1626: typed name Map requires matching Name/String keys and value layouts
EM1640函数补丁目标、身份或编辑权限不符3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1640: function patch identity or target differs from the manifest
  • EM1640: host Blueprint is no longer editable
  • EM1640: invalid or unauthorized Blueprint function patch
EM1641函数参数布局、签名或权限不一致2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1641: function parameter layout differs:
  • EM1641: function patch signature or permission differs:
EM1643函数体引用的成员缺失或类型不兼容3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1643: function body references a missing host function:
  • EM1643: function body references an incompatible host property:
  • EM1643: function local cannot be rebound:
EM1644默认值补丁无法导入或字段权限变化2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1644: default-value patch cannot be imported:
  • EM1644: default-value patch permission or field differs:
EM1645函数补丁依赖失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1645: function patch dependency failed
EM1650无法保存生成的函数负载1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1650: cannot save generated function payload:
EM1651事件图转换失败或缺少编辑入口2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1651: changed event has no authoring entry:
  • EM1651: event graph conversion failed
EM1652异步事件不能转换为当前函数补丁2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1652: asynchronous event body cannot become a function patch:
  • EM1652: latent event calls require a resumable function patch and cannot be exported:
EM1653函数合并缺少公共类或资源规则1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1653: Blueprint function merging requires a public host class and asset policy:
EM1654结构性或只读字段不能导出为值补丁2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1654: Blueprint structural or read-only field cannot become a value patch:
  • EM1654: cannot serialize editable default:
EM1655函数或事件未获覆盖授权2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:只公开父类或允许继承,不等于允许覆盖每个事件。开发者在 Mod settings 对具体函数/事件开放覆盖后重新导出 SDK;作者编译已有生命周期,不另建入口来绕过规则。

原始日志模板(以实际完整文字为准)
  • EM1655: changed function is not open for override:
  • EM1655: event is not open for override:
EM1656生成的函数 Blueprint 未成功编译3 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:打开指出的 Blueprint/Level Blueprint,查看 Compiler Results 的第一条具体节点错误;修复缺失节点、引脚、引用或签名后 Compile、Save,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM1656: generated function Blueprint did not compile:
  • EM1656: missing converted default field:
  • EM1656: missing function implementation class
EM1657专用 Blueprint 需要完整资源覆盖授权1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1657: specialized Blueprint source requires an authorized whole-package override:
EM1660事件节点缺少执行适配或不能转换1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1660: event node requires an execution adapter: {BlueprintPath} NodeGuid={NodeGuid} :: {NodeName}
EM1661事件执行器无法编译或保存2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1661: cannot save event executor:
  • EM1661: event executor did not compile:
EM1662已激活事件执行器不可用1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1662: active event executor unavailable: %s :: %s
EM1663异步适配器重复或仍有活动操作2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1663: adapter still owns active asynchronous operations
  • EM1663: duplicate or unnamed asynchronous operation adapter
EM1664异步适配器无法找到代理工厂1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查列出的 Mod、目标资源及函数签名/权限;使用匹配 SDK 重新编译导出,并检查当前世界的激活结果。

原始日志模板(以实际完整文字为准)
  • EM1664: asynchronous adapter cannot locate the proxy factory: @@

EM17xx · 类型加载与对象归属

确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

EM1700类不在已验证的类型目录中2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1700: class not in the verified catalog
  • EM1700: no host or unregistered class
EM1701类无法加载或发生非预期重定向1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1701: class could not load or resolved through an unexpected redirect
EM1702实际类继承关系或标记与目录不符1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1702: actual class hierarchy/flags differ from the catalog
EM1703类已弃用或仍处于重实例化状态1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1703: class is deprecated or reinstanced
EM1704异步类型加载请求被拒绝1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1704: async load request rejected
EM1705宿主已经不可用1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1705: host no longer available
EM1711无法为入口或新对象登记执行作用域2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1711: Entry execution scope could not be created
  • EM1711: created object could not be registered to Mod %s: %s
EM1712创建节点缺少对象归属适配器1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:确认类型在当前 SDK/Mod 目录中、可加载且允许使用;通过当前世界的有效 Mod 执行作用域创建和登记对象。

原始日志模板(以实际完整文字为准)
  • EM1712: creation node requires an ownership adapter: @@

EM18xx · 存档与编辑器启动

按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

EM1800存档路径或当前游戏、Mod 身份无效2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1800: save path crosses a filesystem link
  • EM1800: saving needs a ready game, a Mod identity and a bounded slot name
EM1801权威 Mod 存档只能由服务器处理1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1801: authoritative Mod saves belong to the server
EM1802存档所属 Mod 尚未激活1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1802: save owner Mod is not active
EM1803存档版本、类型或元数据无效3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1803: invalid data version
  • EM1803: invalid data version, save class or metadata limits
  • EM1803: save class is unavailable or not permitted
EM1804存档要求的 Mod 依赖不兼容2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1804: missing/incompatible required Mod or unauthorized optional dependency
  • EM1804: save requires missing/incompatible Mod:
EM1805存档内容 ID 无法解析或目录选择不支持3 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1805: SDK folder selection currently supports Windows only.
  • EM1805: save content is missing or has an incompatible data version:
  • EM1805: unresolved stable content ID:
EM1806存档负载损坏或编辑器下载 URL 无效4 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1806: Configure a valid HTTP(S) editor download URL first.
  • EM1806: save payload is damaged
  • EM1806: save payload layout changed
  • EM1806: save serialization failed or exceeds 64 MiB
EM1807存档封装、稳定 ID 或依赖身份无效7 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1807: duplicate or oversized stable content ID
  • EM1807: invalid host storage envelope
  • EM1807: invalid legacy content ID
  • EM1807: invalid or unauthorized optional save dependency
  • EM1807: invalid save envelope
  • EM1807: invalid stable content ownership/version
  • EM1807: save owner dependency is missing
EM1808存档迁移缺失或失败,原存档已保留1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1808: migration is unavailable or failed; original save preserved
EM1810宿主存储适配器或稳定内容登记无效7 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1810: host save adapter rejected request
  • EM1810: host storage has no asynchronous read adapter
  • EM1810: host storage has no asynchronous write adapter
  • EM1810: host storage reader is not implemented
  • EM1810: host storage writer is not implemented
  • EM1810: stable content registration must belong to an active Mod namespace
  • EM1810: storage provider must be an authoritative host-owned GameInstance object
EM1811编辑器启动被关闭或稳定 ID 定义冲突3 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1811: Editor launch disabled by host
  • EM1811: Standalone EasyModEditor launch is disabled by the host configuration.
  • EM1811: stable content ID already has a different definition
EM1812SDK 选择不符或存档写请求尚未完成5 条诊断

出现位置:Game runtime · Authoring / developer editor · Launcher / updater · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1812: Game SDK not found. Export an SDK or select the matching game's .emsdk file.
  • EM1812: SDK must belong to this game package
  • EM1812: finish or cancel pending save requests before changing storage provider
  • EM1812: select the SDK inside this game package
  • EM1812: this save slot has an asynchronous write in progress
EM1813编辑器程序不存在或异步存档作用域无效2 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1813: EasyModEditor.exe not found. Select the editor distribution directory.
  • EM1813: active execution scope required for asynchronous save
EM1814编辑器启动或存档原子写入失败8 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1814: Could not start EasyModEditor.exe: %s
  • EM1814: Could not start EasyModEditor.exe: {0}
  • EM1814: atomic save replacement failed (Win32 %lu); original save preserved
  • EM1814: atomic save replacement failed; original save preserved
  • EM1814: cannot stage save record
  • EM1814: could not launch EasyModEditor.exe
  • EM1814: host storage operation failed
  • EM1814: staged save verification failed
EM1815编辑器发行目录或安装回执缺失2 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1815: The selected directory does not contain EasyModEditor.exe.
  • EM1815: missing Editor distribution receipt
EM1818编辑器程序或引擎模块清单缺失2 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1818: Editor executable missing
  • EM1818: The Mod Editor installation has no valid engine module manifest. Repair the installation.
EM1819无法选择或保存本地编辑器目录3 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1819: Could not save the local editor registration directory.
  • EM1819: Directory selection currently supports Win64 only.
  • EM1819: No editor installation directory selected.
EM1820Mod ID 无效1 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1820: invalid Mod ID
EM1821编辑器未启用或未配置资源服务1 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1821: Enable the editor and configure at least one resource API source.
EM1822编辑器更新器程序缺失1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1822: EasyModUpdater.exe is missing from the distribution.
EM1823无法启动编辑器更新器1 条诊断

出现位置:Game runtime · Authoring / developer editor · 此编号链接

如何处理:按日志入口区分存档问题与编辑器启动问题:存档检查服务器、所属 Mod、存储适配器;启动检查 SDK、安装目录和回执。

原始日志模板(以实际完整文字为准)
  • EM1823: Could not start the editor updater.
EM1830另一个 Mod 编辑器仍处于打开状态3 条诊断

出现位置:Authoring / developer editor · Launcher / updater · EasyModTool · 此编号链接

如何处理:先保存并正常关闭已打开的 Mod 编辑器和选择 Mod 窗口,再启动另一个。保存本身失败时保留当前窗口和未保存内容,先处理保存错误。

原始日志模板(以实际完整文字为准)
  • EM1830: A Mod editor is already open. Close it before opening another.
  • EM1830: close the current Mod editor before relocating its workspace
  • EM1830: :已经打开一个 Mod 编辑器。请先关闭,再打开另一个。

EM19xx · DataTable 补丁

核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

EM1900DataTable 补丁或宿主行结构已变化2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1900: Data Table host schema changed
  • EM1900: invalid Data Table patch, target permission or row schema
EM1901DataTable 单元格无效或只读1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1901: invalid or read-only Data Table cell:
EM1902DataTable 字段值无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1902: invalid Data Table field value:
EM1903DataTable 引用未声明或 Cook 依赖无效2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1903: invalid Data Table cook dependency:
  • EM1903: undeclared or unpublished Data Table reference:
EM1904DataTable 负载身份与清单不符1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1904: Data Table payload identity differs from manifest
EM1910DataTable 或行类型尚未公开1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1910: Data Table patch requires a published table and row type
EM1911DataTable 行字段路径不明确或不支持2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1911: ambiguous Data Table row/field path:
  • EM1911: unsupported Data Table field:
EM1912无法保存 DataTable 补丁1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1912: cannot save Data Table patch:
EM1913DataTable 补丁来源或转换字段缺失2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:核对行结构、字段路径与逐字段授权,重新保存并导出;表结构变化后由开发者更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM1913: missing Data Table donor:
  • EM1913: missing converted Data Table cell:

EM20xx · SDK 编译与联机会话

先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

EM2000资产保存失败或联机同步服务启动失败4 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2000: cannot bind Mod synchronization TCP port
  • EM2000: cannot start Mod synchronization worker
  • EM2000: invalid Mod synchronization endpoint or catalogue
  • EM2000: unable to save asset:
EM2001游戏 API 身份无效或同步已取消2 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2001: Mod synchronization cancelled
  • EM2001: invalid game id/API version
EM2002同步连接失败或公共类、稳定 ID 缺失6 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2002: Mod download connection failed
  • EM2002: Mod server connection failed or timed out
  • EM2002: Mod set download failed
  • EM2002: cannot connect to Mod server
  • EM2002: missing class/stable ID
  • EM2002: missing class/stable ID or duplicate:
EM2003同步期间服务端 Mod 集改变或类路径过期3 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2003: server Mod set changed during synchronization
  • EM2003: server Mod set changed; negotiate again
  • EM2003: stale class path:
EM2004成员规则重复或服务端包已不可用2 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2004: duplicate/empty member rule:
  • EM2004: immutable server package is unavailable
EM2005服务端目录无效或公开类不能继承8 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2005: invalid negotiated Mod catalogue during verification
  • EM2005: invalid server Mod identity, size, order or replication metadata
  • EM2005: invalid server dependency order or range
  • EM2005: invalid server game compatibility metadata
  • EM2005: malformed server Mod catalogue
  • EM2005: missing server dependency metadata
  • EM2005: requested inheritance but class is not Blueprintable:
  • EM2005: server catalogue digest is invalid
EM2006公共配置变化、创建规则或同步大小不符5 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2006: Mod Blueprint parent, namespace or output path is not approved
  • EM2006: Mod parent or project namespace is not approved by Contract
  • EM2006: contract changed. Review api.pending.json against api.json, then explicitly approve the rebuild. Existing mods need this new contract.
  • EM2006: invalid public Blueprint path, parent, or asset already exists
  • EM2006: server Mod set exceeds configured download limit
EM2007同步缓存写入失败或磁盘空间不足7 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2007: Mod download write failed
  • EM2007: cannot commit verified Mod content cache
  • EM2007: cannot create a regular session content cache
  • EM2007: cannot determine free disk space
  • EM2007: cannot resume Mod cache file
  • EM2007: insufficient disk space for Mod synchronization
  • EM2007: session cache file crosses a filesystem link
EM2008下载分块或完整归档校验失败3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2008: Mod chunk is damaged or interrupted
  • EM2008: complete Mod archive SHA-256 mismatch
  • EM2008: invalid Mod chunk header
EM2011SDK 所需的公开资源不存在2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2011: published asset is missing:
  • EM2011: required SDK asset is missing:
EM2012SDK 依赖被明确拒绝或遍历超限1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2012: required SDK dependencies are explicitly denied or traversal exceeded its limit:
EM2021联机会话正在控制有效 Mod 集3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2021: leave the Mod session before changing installed variants
  • EM2021: server controls the effective Mod set
  • EM2021: session Mod choices cannot be persisted as single-player preferences
EM2030同步地址、服务器地址或端口无效4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2030: invalid Mod synchronization port
  • EM2030: invalid session URL
  • EM2030: unsupported server address
  • EM2030: use an Unreal game server address and port
EM2031客户端与服务器的游戏配置不匹配2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2031: no host Contract
  • EM2031: server game/engine/cooking version differs from this client
EM2032已下载 Mod 与协商的服务器清单不符5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2032: Mod set verification failed
  • EM2032: server dependency offer differs from signed package
  • EM2032: verified Mod profile could not be applied
  • EM2032: verified archive count differs from server offer
  • EM2032: verified package/replication identity differs from server offer
EM2033无法准备服务端不可变内容缓存4 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2033: cannot stage immutable server Mod package
  • EM2033: installed Mod changed since activation; refresh before hosting
  • EM2033: server content cache crosses a filesystem link
  • EM2033: server content file is a filesystem link
EM2034服务器 Mod 集尚未准备到可准入状态1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2034: server Mod set is not ready for admission
EM2035加入前尚未准备当前服务器 Mod 集1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2035: prepare the current server Mod set before joining
EM2036本地会话恢复请求或同步端口无效2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2036: invalid local recovery synchronization port
  • EM2036: invalid local session recovery request
EM2037恢复后的服务器连接失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2037: recovered connection failed: %s
EM2038当前 GameMode 未接入会话准入适配器1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:自动联机同步需要实际地图 GameMode 接入 EasyModGameModeBase/准入适配。只使用本地 Mod 的普通 GameMode 不需要为此改基类;开发者按联机集成章节配置。

原始日志模板(以实际完整文字为准)
  • EM2038: host GameMode must integrate the EasyMod session admission adapter
EM2039会话恢复助手、请求或安全大厅不可用5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2039: cannot launch session recovery helper
  • EM2039: end PIE and start a separate game process for a different Mod profile; do not restart the author Editor
  • EM2039: no verified session recovery request
  • EM2039: packaged session recovery helper is missing or invalid
  • EM2039: server recovery requires a safe lobby map
EM2040新服务端 Mod 集或安全大厅尚未就绪6 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2040: a ready server and a configured safe lobby are required
  • EM2040: finish Mod operations and safe lobby travel before publishing the new session
  • EM2040: new server Mod set could not be prepared
  • EM2040: safe lobby travel failed
  • EM2040: server did not provide a new complete Mod set before timeout
  • EM2040: server is preparing a new Mod session
EM2041会话恢复请求过期、取消或仍在执行2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:先区分开发者编译与游戏同步日志;核对所列类型/资源、服务器 Mod 集、同步端口及连接状态。

原始日志模板(以实际完整文字为准)
  • EM2041: session recovery callback is stale or cancelled
  • EM2041: session recovery or synchronization is already pending

EM21xx · 示例与初始创作工程

使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

EM2100Mod 插件名不符合 EM_ 命名规则1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

原始日志模板(以实际完整文字为准)
  • EM2100: use an EM_ prefixed ASCII plugin name
EM2101尚未选择带 Content 的独立 Mod 工程1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

原始日志模板(以实际完整文字为准)
  • EM2101: select a standalone Mod project with a Content directory
EM2102无法创建示例 Blueprint1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

原始日志模板(以实际完整文字为准)
  • EM2102: could not create example Blueprints
EM2103示例 Blueprint 编译失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

原始日志模板(以实际完整文字为准)
  • EM2103: example Blueprint compilation failed
EM2104示例世界创建失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用当前 SDK 新建的有效 Mod 工程,检查其 Content 和首条 Blueprint 编译错误。

原始日志模板(以实际完整文字为准)
  • EM2104: demo world creation failed

EM22xx · Blueprint 调用与覆盖权限

定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

EM2200Blueprint 缺少已编译类或父类1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2200: Blueprint has no compiled class/parent
EM2201父类尚未开放继承或不是获准创作基类1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2201: first non-mod parent requires an inheritable public type or a permitted authoring base
EM2202Blueprint 编译失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:打开指出的 Blueprint/Level Blueprint,查看 Compiler Results 的第一条具体节点错误;修复缺失节点、引脚、引用或签名后 Compile、Save,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM2202: Blueprint compile error
EM2203函数覆盖未获授权1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:只公开父类或允许继承,不等于允许覆盖每个事件。开发者在 Mod settings 对具体函数/事件开放覆盖后重新导出 SDK;作者编译已有生命周期,不另建入口来绕过规则。

原始日志模板(以实际完整文字为准)
  • EM2203: function override is not permitted:
EM2204继承事件覆盖被拒绝1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:只公开父类或允许继承,不等于允许覆盖每个事件。开发者在 Mod settings 对具体函数/事件开放覆盖后重新导出 SDK;作者编译已有生命周期,不另建入口来绕过规则。

原始日志模板(以实际完整文字为准)
  • EM2204: inherited event override denied:
EM2205Blueprint 函数目标无法解析2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2205: unresolved Blueprint function target
  • EM2205: unresolved function target
EM2206函数调用未获授权1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2206: function call denied:
EM2207属性读取或写入未获授权1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2207: property access denied:
EM2208所需系统能力未获授权1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2208: system capability denied:
EM2209修改了只读的继承默认值1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:定位 Blueprint、节点或成员;只调用/覆盖已授权接口。需要更多权限时由游戏开发者在 Mod settings 授权并重新导出 SDK。

原始日志模板(以实际完整文字为准)
  • EM2209: read-only inherited default changed:
EM2210Level Blueprint 编译失败或只读变量被可变引用2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:打开指出的 Blueprint/Level Blueprint,查看 Compiler Results 的第一条具体节点错误;修复缺失节点、引脚、引用或签名后 Compile、Save,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM2210: Level Blueprint compile failed:
  • EM2210: mutable reference to read-only host variable:

EM23xx · 保存、资源、地图与命名权限

按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

EM2300当前 EM_ 命名空间无效1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2300: invalid EM_ plugin namespace
EM2301尚未选择独立 Mod 工程1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2301: standalone Mod project not selected
EM2302SDK 的宿主配置资源缺失1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2302: missing host contract asset
EM2303清单中的 Mod 身份或入口路径不符2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2303: entry class is outside this Mod
  • EM2303: invalid manifest template id/entryClass
EM2304引用了未声明或未获准的外部资源1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:核对报出的外部资源和 referenced by 来源是否真实进入 SDK/打包依赖。引擎资源也要区分可运行内容与 Editor-only 预览资源。必要游戏内容由开发者公开并重新导出;正常可运行 Engine 内容仍在最新配套版被误拒绝时,提交完整路径和日志。

原始日志模板(以实际完整文字为准)
  • EM2304: undeclared external asset dependency:
EM2305资源依赖图遍历超过限制1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2305: dependency graph exceeds traversal limit
EM2306入口不是当前 Mod 中有效的已编译 Blueprint1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2306: entry is not a valid compiled Blueprint in this plugin
EM2307SDK 与 Mod 编辑器的 UE 系列不一致1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2307: the SDK and Mod Editor require the same UE series
EM2308打包设置偏离 Pak 与内联 Shader 配置1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2308: effective packaging settings differ from the Pak/inline-shader profile
EM2309打包资源列表缺失、越界或无效4 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2309: invalid additional asset or published map path
  • EM2309: manual packaging roots must belong to the current Mod
  • EM2309: missing Mod asset:
  • EM2309: missing or oversized asset list:
EM2310宿主路径声明无效或数量超限2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2310: invalid declared host path in
  • EM2310: too many declared
EM2311原资源覆盖路径重复或未在许可范围2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2311: override package is not allowlisted or is duplicated
  • EM2311: too many override packages
EM2312覆盖 Blueprint 编译失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:打开指出的 Blueprint/Level Blueprint,查看 Compiler Results 的第一条具体节点错误;修复缺失节点、引脚、引用或签名后 Compile、Save,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM2312: override Blueprint failed to compile:
EM2315原资源类型变化或缺少匹配的源资产4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2315: Level Blueprint has no matching source map:
  • EM2315: generated class has no matching source Blueprint
  • EM2315: host asset type changed:
  • EM2315: override asset is missing:
EM2316修改了宿主资源的受保护字段2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:读取“资源路径 :: 字段 (原因)”。若修改的是游戏只读字段,恢复该修改或让开发者授权并更新 SDK。若最新配套版仍仅因 PreviewMesh、ThumbnailInfo 或 EditorViews 等编辑状态拦截,保留窗口、资源和日志反馈维护者;不要删除作品或改写基线来绕过。

原始日志模板(以实际完整文字为准)
  • EM2316: host field validation failed:
  • EM2316: new field added to read-only host asset:
EM2317修改了只读 SDK 源资源或 Slot 基线无效3 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2317: SDK source operation is read-only:
  • EM2317: invalid SDK Slot baseline
  • EM2317: invalid SDK skeleton Slot baseline
EM2318无法保存生成的 Slot 补丁1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2318: unable to save generated Slot patch
EM2320SDK 的 Socket 基线缺失2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者用当前配套插件重新导出带 Socket 基线的 SDK;作者重新选择该 SDK。不要自行伪造或删除 Socket 基线。

原始日志模板(以实际完整文字为准)
  • EM2320: SDK is missing its Socket baseline; export the SDK again
  • EM2320: missing Socket baseline
EM2321修改或删除了宿主已有 Socket1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分新增定义与游戏已有定义;撤回对已有 Socket/Slot/分组或受保护事件的删除、重命名和修改。若诊断为 Mod 身份缺失,则先从选择窗口打开正确 Mod;需要变更原定义时由开发者开放相应编辑权限。

原始日志模板(以实际完整文字为准)
  • EM2321: host Socket was modified or removed:
EM2322Socket 名称为空、重复或过长1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2322: duplicate, empty or oversized Socket name:
EM2323新增 Socket 或 DataTable 字段未获授权2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:消息为 Socket 时检查 Allow New Sockets;为 DataTable 时检查对应新增行/字段授权。自动引用依赖仍只读,需由开发者显式公开相应操作并导出新 SDK。

原始日志模板(以实际完整文字为准)
  • EM2323: adding Sockets is not authorized:
  • EM2323: unauthorized Data Table row/field addition:
EM2324修改了宿主 Slot、分组或受保护事件4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分新增定义与游戏已有定义;撤回对已有 Socket/Slot/分组或受保护事件的删除、重命名和修改。若诊断为 Mod 身份缺失,则先从选择窗口打开正确 Mod;需要变更原定义时由开发者开放相应编辑权限。

原始日志模板(以实际完整文字为准)
  • EM2324: host Slot group removed:
  • EM2324: host Slot modified or removed:
  • EM2324: host event declaration added:
  • EM2324: protected host event modified:
EM2325新增 Slot 或地图场景编辑不符合授权12 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:先看具体消息:added Slot/Slot group 指骨骼动画 Slot;Socket 是挂接点,权限不同。地图相关消息则检查场景编辑、Actor 实例化及成员权限。开发者修改对应授权后重新导出 SDK;允许添加不等于允许改动已有宿主定义。

原始日志模板(以实际完整文字为准)
  • EM2325: actor placement denied: %s
  • EM2325: invalid or unauthorized added Slot group:
  • EM2325: invalid or unauthorized added Slot:
  • EM2325: map actor class is not open for instantiation:
  • EM2325: map scene is read-only:
  • EM2325: new scene actor changes a protected component member:
  • EM2325: new scene actor changes a protected member:
  • EM2325: new scene component has no matching template:
  • EM2325: new scene component is not part of the authorized actor template:
  • EM2325: protected World Settings were removed or replaced:
  • EM2325: scene change touches a protected actor/component member:
  • EM2325: unsupported map scene signature:
EM2326Socket 补丁保存失败或共享事件节点只读2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2326: cannot save generated Socket patch
  • EM2326: shared host event node is read-only:
EM2330不支持当前类型化名称字段1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2330: unsupported typed name field '%s' in @@
EM2331类型化名称缺少关联的目标对象3 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2331: typed Mod name has no associated target parameter in @@
  • EM2331: typed name return has no associated target in @@
  • EM2331: typed name variable has no associated target in @@
EM2332无法保存名称转换后的构建副本1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2332: unable to save named build copy:
EM2333名称默认值、容器键或目标解析失败13 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2333: invalid name-use metadata:
  • EM2333: invalid typed name kind:
  • EM2333: typed Data Table has no row struct:
  • EM2333: typed name default has no target:
  • EM2333: typed name nesting exceeds its limit:
  • EM2333: typed names inside struct Map keys need an identity adapter:
  • EM2333: typed names inside struct Set elements need an identity adapter:
  • EM2333: typed table name has no target:
  • EM2333: unknown AnimGraph Slot:
  • EM2333: unknown Montage Slot:
  • EM2333: unresolved default Socket attachment:
  • EM2333: unsupported typed name default or colliding Map keys:
  • EM2333: unsupported typed table name or colliding container keys:
EM2334名称烘焙缺少隔离构建目录或有效身份1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2334: name baking requires an isolated build stage and valid Mod identity
EM2335Slot 或 Socket 补丁目标缺失2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2335: missing Slot patch target
  • EM2335: missing Socket patch target
EM2336名称感知 Blueprint 编译失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2336: name-aware Blueprint compilation failed:
EM2337PIE 缺少有效 Mod 身份1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2337: PIE has no valid Mod identity
EM2338无法创建 PIE 网格或运行时副本3 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2338: PIE mesh has no render data:
  • EM2338: cannot create PIE runtime copy:
  • EM2338: cannot create late PIE runtime copy:
EM2339PIE 动画 Blueprint 编译失败1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2339: PIE animation Blueprint failed:
EM2340名称使用规则重复、越界或类型错误4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:按资源路径、字段及原因定位;区分自己 Mod 内容、主动公开资源和只读依赖,再检查对应修改或添加权限。

原始日志模板(以实际完整文字为准)
  • EM2340: invalid name-use asset count
  • EM2340: invalid or duplicate name-use rule:
  • EM2340: name-use member must contain Name or String values/Map keys:
  • EM2340: name-use target is not an object field or parameter:

EM24xx · 创作适配器与能力证据

开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

EM2400创作能力目录或配置缺失、无效11 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2400: EasyMod capability catalogue is unavailable
  • EM2400: capability catalogue is missing
  • EM2400: capability has no ID
  • EM2400: duplicate enabled capability:
  • EM2400: invalid capability catalogue
  • EM2400: invalid capability catalogue record
  • EM2400: invalid capability record:
  • EM2400: missing package
  • EM2400: no SDK Contract
  • EM2400: no SDK capability Contract
  • EM2400: unknown or duplicate capability:
EM2401游戏 SDK 未开放对应创作能力1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2401: game SDK does not permit authoring capability:
EM2402声明的创作能力依赖不完整1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2402: declared capability
EM2403资源类型没有有效创作适配器4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2403: asset type is unavailable
  • EM2403: external Actor has no matching scene owner:
  • EM2403: generated class has no matching source Blueprint:
  • EM2403: no validated authoring capability adapter for asset type:
EM2404尝试在 SDK 中替换声明或创建资源1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2404: create assets inside the current Mod; SDK declarations cannot be replaced
EM2410资源适配器没有名称或重复注册1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2410: duplicate or unnamed asset adapter
EM2411无法捕获资源的权限或默认值状态1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2411: {AssetPath} :: {capture diagnostic}
EM2412资源捕获期间内容变化或超过边界9 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2412: owned source object limit exceeded:
  • EM2412: source map changed during capture:
  • EM2412: source map entry is missing:
  • EM2412: source nesting limit exceeded:
  • EM2412: source object is missing
  • EM2412: source root or asset is missing
  • EM2412: source set changed during capture:
  • EM2412: source set entry is missing:
  • EM2412: source value address is missing:
EM2414SDK 源资源重新导入被拒绝1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2414: SDK reimport refused:
EM2415SDK 的 Blackboard 声明受到保护1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2415: SDK Blackboard declaration is protected:
EM2416预览源资源不可用或不能修改6 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2416: SDK preview source is read-only:
  • EM2416: SDK preview source is unavailable
  • EM2416: incompatible or unavailable preview source
  • EM2416: preview object count exceeds validation bounds
  • EM2416: preview validation copy failed
  • EM2416: preview validation requires the source Editor
EM2420能力证据并非来自真实 Game 或 Server 构建2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2420: Runtime capability proof must be generated by an actual Game or Server target
  • EM2420: build proof exceeds the module/plugin evidence bounds
EM2421能力证据输出路径或宿主配置无效2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2421: Runtime capability proof needs an absolute regular output path
  • EM2421: no host Contract for capability probe
EM2422能力证据过期、无法读取或插件证据不符7 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2422: cannot read Game/Server capability proof:
  • EM2422: incomplete plugin version/descriptor evidence:
  • EM2422: invalid module proof
  • EM2422: invalid plugin proof
  • EM2422: invalid proof module/plugin evidence
  • EM2422: stale or mismatched Game/Server capability proof:
  • EM2422: stale required plugin build evidence:
EM2423实际目标未链接必需模块或启用必需插件2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2423: {Target} does not enable required plugin {Plugin} for {Capability}
  • EM2423: {Target} does not link required module {Module} for {Capability}
EM2424无法建立公共配置的能力证据身份2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:开发者核对能力声明、Runtime 模块/插件及真实构建证据;作者使用支持该能力的配套 SDK 和编辑器。

原始日志模板(以实际完整文字为准)
  • EM2424: cannot serialize public Contract identity
  • EM2424: runtime capability proof has no public Contract identity

EM25xx · 编辑器与运行时本地化

区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

EM2500游戏文本未公开或本地化能力、语言不允许2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:要翻译游戏:开发者开启 Publish Localization Text,选择 Target 和可收集语言并重新导出 SDK,作者重新选择新文件。要翻译自己的内容:切换 Mod texts 并收集,不需要游戏先公开文本。

原始日志模板(以实际完整文字为准)
  • EM2500: invalid or unpublished localization capability/culture
  • EM2500: this SDK has no published game text catalog; ask the developer to export a new SDK
EM2501SDK 公开本地化目录格式无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2501: malformed published localization catalog
EM2502文本身份未公开、重复或原文已变化1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2502: private, duplicate or changed text identity/source:
EM2503译文格式、大小、路径或签名哈希不符5 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2503: invalid translation catalog format/culture/count
  • EM2503: invalid translation row
  • EM2503: translation bytes differ from the signed payload SHA
  • EM2503: translation catalog exceeds 16 MiB
  • EM2503: unsafe translation output path
EM2504译文所属身份、顺序或默认语言无效3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2504: declared default culture has no translation payload
  • EM2504: duplicate translation culture
  • EM2504: invalid translation owner, order or default culture
EM2505活动本地化层的原文或源语言冲突2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2505: conflicting active host native culture
  • EM2505: conflicting active host text source
EM2506译文语言、描述或负载声明无效8 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2506: culture differs only by case from an existing translation
  • EM2506: default localization culture has no declared payload
  • EM2506: invalid localization patch count
  • EM2506: invalid or duplicate localization culture/payload path
  • EM2506: invalid translation culture
  • EM2506: missing localization metadata object
  • EM2506: the selected translation language is not part of this Mod
  • EM2506: unknown Mod type
EM2507译文缺失或纯翻译 Mod 混入玩法内容8 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2507: declared translation payload missing
  • EM2507: save at least one translation before enabling this Mod
  • EM2507: translation is not in the signed payload list
  • EM2507: translation validation did not complete
  • EM2507: translation-only catalog must contain no classes
  • EM2507: translation-only package contains gameplay contributions
  • EM2507: translation-only package contains no translations
  • EM2507: translation-only packages must be public and have no entry class
EM2508译文使用了其他配置或其他 Mod 的命名空间2 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:保留译文草稿,核对当前 Mod 命名空间、SDK 文本身份和原文哈希;换 SDK 后重新收集/匹配。不能把另一 Mod 的命名空间或已变化的游戏原文当作当前来源。

原始日志模板(以实际完整文字为准)
  • EM2508: translation Mod requires its exact SDK Contract
  • EM2508: translation targets another Mod's text namespace
EM2509源码与运行包中的译文声明或字节不一致2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2509: editable source and runtime translation bytes differ
  • EM2509: source and runtime translation declarations differ
EM2510本地化工作区未打开或路径越界8 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2510: Mod localization path escapes its Content directory
  • EM2510: open a Mod project before editing translations
  • EM2510: unsafe Mod asset path
  • EM2510: unsafe Mod content path
  • EM2510: unsafe author translation output
  • EM2510: unsafe author workspace path
  • EM2510: unsafe translation content directory
  • EM2510: unsafe translation output path
EM2511工作区、本地化模板或 SDK 身份不一致4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2511: author translation workspace belongs to a different SDK Contract
  • EM2511: invalid author translation Mod identity
  • EM2511: source and workspace localization identities differ
  • EM2511: workspace and template localization declarations differ
EM2512纯翻译 Mod 包含资源或内容数量超限5 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2512: translation content directory limit exceeded
  • EM2512: translation content file limit exceeded
  • EM2512: translation-only Mod cannot contain a Blueprint Entry
  • EM2512: translation-only Mod cannot contain asset packages
  • EM2512: translation-only Mod contains gameplay contributions:
EM2513译文文件保存、读取或移除失败3 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:区分 Game texts 与 Mod texts;检查语言、文本身份、原文哈希和译文保存。游戏文本变更需要新的 SDK。

原始日志模板(以实际完整文字为准)
  • EM2513: cannot read current translation file before saving:
  • EM2513: cannot remove the selected translation payload
  • EM2513: translation save failed at
EM2514Mod 自有文本收集失败或身份冲突8 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:先保存自己的 Blueprint、Widget 或 StringTable,使用可本地化 Text(FText),再在 Mod texts 收集。普通 String 和 culture-invariant 文本不会成为译文源;身份或原文冲突需按诊断修复。纯翻译 Mod 不含自有资源。

原始日志模板(以实际完整文字为准)
  • EM2514: Mod localization asset count exceeds the limit
  • EM2514: Mod localization text count exceeds the limit
  • EM2514: Mod text was not isolated to its owner:
  • EM2514: cannot load Mod localization asset:
  • EM2514: conflicting Mod localization source:
  • EM2514: save the Mod asset before gathering translations:
  • EM2514: save the Mod asset to establish stable localization keys:
  • EM2514: translation-only Mods contain game translations, not Mod asset texts

EM30xx · JSON、文件路径与桥接状态

检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

EM3000JSON 包含重复键1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3000: duplicate JSON key: {key}
EM3001JSON 数值无效或桥接处理器不可用3 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3001: bridge handler unavailable
  • EM3001: non-finite JSON number
  • EM3001: non-finite JSON number: {value}
EM3002JSON 层级无效或开发者桥接已停止4 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3002: JSON nesting exceeds 32
  • EM3002: bridge owner is no longer valid
  • EM3002: developer bridge stopped
  • EM3002: invalid JSON: {exc}
EM3003JSON 文件不存在或是文件系统链接1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3003: missing or symbolic-link JSON file: {path}
EM3004JSON 文件超过大小限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3004: JSON file exceeds limit: {path}
EM3005JSON 不是有效 UTF-81 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3005: JSON must be UTF-8: {path}
EM3006JSON 根节点不是对象1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3006: JSON root must be an object: {path}
EM3007拒绝替换符号链接目标1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3007: refusing to replace symlink: {path}
EM3008路径超出了允许的根目录1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3008: path escapes root: {path}
EM3009路径中存在不允许的符号链接1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查诊断中的文件或连接;使用有效 UTF-8 JSON 和允许范围内的普通目录,修复真实读取/连接原因。

原始日志模板(以实际完整文字为准)
  • EM3009: symbolic links are not allowed: {cursor}

EM31xx · 工具清单与验证连接

检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

EM3100桥接平台不支持或清单根节点无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3100: EasyMod Bridge currently supports Win64 only
  • EM3100: manifest must be an object
EM3101游戏验证未连接或 Mod 包身份、格式无效6 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:若消息提到游戏验证连接/超时,选择同一 SDK 对应的打包游戏目录或启动匹配游戏;导出功能不以连接成功为前提。若消息实际是加密 Pak、覆盖资源或清单问题,则按对应分支修复,不能把它视作单纯网络错误。

原始日志模板(以实际完整文字为准)
  • EM3101: bridge pipe is unavailable: %s
  • EM3101: cooked Mod identity does not match its GUID
  • EM3101: invalid Mod package filename
  • EM3101: missing Mod GUID
  • EM3101: missing cooked source revision
  • EM3101: old content-plugin Mod or project format; recreate this Mod
EM3102桥接连接或 API 版本无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3102: failed to open bridge pipe (%d)
  • EM3102: invalid apiVersion
EM3103桥接写入失败或必要清单字段缺失3 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3103: failed to write bridge request (%d)
  • EM3103: missing author name
  • EM3103: missing/invalid {key}
EM3104桥接响应超限或游戏、Mod ID 无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3104: bridge response exceeds the message limit
  • EM3104: invalid mod/game id
EM3105桥接读取失败或命名空间格式错误2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3105: failed to read bridge response (%d)
  • EM3105: namespace must be an EM_ prefixed ASCII plugin name
EM3106版本号不是严格的数字 x.y.z1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3106: use an exact numeric x.y.z version
EM3107宿主配置指纹无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3107: invalid hostContract fingerprint
EM3108平台或容器不是 Win64 Pak1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3108: v1 supports Win64 Pak only
EM3109Cook 配置不支持1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3109: unsupported cook profile
EM3110游戏引擎版本或编辑器适配不存在2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3110: invalid game engine version
  • EM3110: no Editor adapter for this game UE series
EM3111入口路径不在当前 Mod 命名空间1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3111: entryClass must be a generated Blueprint class under the mod namespace
EM3112源码标记与负载数量不符2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3112: editableSource must be boolean
  • EM3112: incorrect payload count for editableSource
EM3113负载记录不是对象1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3113: payload record must be an object
EM3114负载路径未知或重复1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3114: unknown or duplicate payload path
EM3115负载大小无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3115: invalid payload size
EM3116负载 SHA-256 无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3116: invalid payload SHA-256
EM3117类型目录过大1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3117: catalog too large
EM3118负载缺失或包总大小超限1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3118: missing payload or total size limit exceeded
EM3119依赖或冲突列表无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3119: invalid dependency/conflict list
EM3120依赖或冲突记录无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3120: invalid dependency/conflict
EM3121依赖指向自身、重复或版本规则不符2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3121: duplicate/self dependency/conflict
  • EM3121: legacy packages require exact dependencies
EM3122支持的游戏版本无效或重复1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3122: invalid/duplicate supportedGameVersions
EM3123作者签名公钥格式或长度无效3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3123: invalid publisher public key
  • EM3123: invalid publisher public key encoding
  • EM3123: invalid publisher public key length
EM3124包类型与是否包含源码不符2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3124: packageType is required for formatVersion 3
  • EM3124: public packages require source; private packages forbid source
EM3125私有密钥信封缺失或公开包混入加密信息3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3125: invalid private Pak key envelope
  • EM3125: missing private Pak key envelope
  • EM3125: public packages cannot carry encryption metadata
EM3126原资源覆盖路径列表无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3126: invalid override package paths
EM3127宿主 API 使用记录缺失或无效3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3127: invalid usedHost members
  • EM3127: invalid usedHost {key}
  • EM3127: missing usedHost compatibility record
EM3128骨骼动画 Slot 补丁声明无效3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3128: invalid Slot patch manifest version
  • EM3128: invalid skeleton Slot patch list
  • EM3128: invalid skeleton Slot patch reference
EM3129Socket 补丁或 Mod 名称映射声明无效4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3129: invalid Socket patch list
  • EM3129: invalid Socket patch reference
  • EM3129: invalid or foreign name-map asset
  • EM3129: namespaced payload references require manifest v7
EM3130Blueprint 函数补丁声明无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3130: invalid Blueprint function patch reference
  • EM3130: invalid Blueprint function patch version or count
EM3132DataTable 补丁声明无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查清单字段或游戏验证连接,使用匹配的 SDK 和最新导出文件;作者一般不需要手改内部描述文件。

原始日志模板(以实际完整文字为准)
  • EM3132: invalid Data Table patch reference
  • EM3132: invalid Data Table patch version/count

EM32xx · 类型目录与桥接请求

确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

EM3200桥接请求或类型目录格式无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3200: invalid bridge JSON request
  • EM3200: unsupported catalog format
EM3201桥接协议版本或类型命名空间不符2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3201: catalog namespace mismatch
  • EM3201: unsupported bridge protocol version
EM3202桥接方法缺失或类型数量越界2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3202: missing bridge method
  • EM3202: missing/excessive catalog types
EM3203游戏未加载配置或目录类型记录无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3203: catalog type is not an object
  • EM3203: game authority has no loaded EasyMod Contract
EM3204SDK 与游戏配置不符或生成类路径无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:按具体消息区分游戏配置不匹配与 SDK 导出基线问题。作者获取当前游戏对应的新 SDK;开发者保存公开规则并重新导出。若仍为验证输出/基线错误,保留该阶段日志给维护者;不要修改指纹绕过。

原始日志模板(以实际完整文字为准)
  • EM3204: SDK or Mod metadata does not match the packaged game's Contract
  • EM3204: invalid/duplicate generated-class path
EM3205桥接方法不支持或稳定 ID 重复2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3205: invalid/duplicate stable id
  • EM3205: unsupported bridge method '%s'
EM3206验证请求缺少包路径或类型抽象标记无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3206: abstract must be boolean
  • EM3206: validate_package requires packagePath
EM3207类型祖先列表无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3207: invalid ancestor list
EM3208类型祖先列表循环或不一致1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3208: cyclic/inconsistent ancestor list
EM3209入口类不在类型目录中1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3209: entry class not in catalog
EM3210包验证需要已解出的包目录1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:确认验证针对同一游戏与 SDK,桥接协议和目录有效;启动匹配游戏或让开发者修复导出配置。

原始日志模板(以实际完整文字为准)
  • EM3210: validate_package requires an extracted package directory

EM33xx · 负载校验与游戏匹配

检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

EM3300包目录不存在或是符号链接1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3300: package directory missing or symlink
EM3301负载缺失、大小不符或 SDK 配置尚未加载2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3301: payload missing/size mismatch: {f['path']}
  • EM3301: the SDK has no loaded EasyMod Contract asset
EM3302负载摘要不符或桥接返回的 JSON 无效2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3302: SHA-256 mismatch: {f['path']}
  • EM3302: game bridge returned invalid JSON
EM3303输出扩展名错误或游戏拒绝该 SDK 配置2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:按具体消息区分游戏配置不匹配与 SDK 导出基线问题。作者获取当前游戏对应的新 SDK;开发者保存公开规则并重新导出。若仍为验证输出/基线错误,保留该阶段日志给维护者;不要修改指纹绕过。

原始日志模板(以实际完整文字为准)
  • EM3303: game bridge rejected the SDK Contract
  • EM3303: output archive must have {extension} extension
EM3304游戏桥接与 SDK 的引擎或 Cook 配置不符1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3304: game bridge game, engine or cook profile differs from the SDK
EM3305游戏桥接与 SDK 的协议版本不符1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3305: game bridge protocol version differs from the SDK
EM3306游戏桥接与 SDK 的 API 版本不符1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:检查负载是否完整,以及游戏、SDK、API 和 Cook 配置是否一致;重新取得正确包或从源码导出。

原始日志模板(以实际完整文字为准)
  • EM3306: game bridge API version differs from the SDK Contract

EM34xx · 归档、安装与恢复

检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

EM3400归档负载数量无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3400: archive payload count invalid
EM3401归档包含禁止的路径1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3401: forbidden archive path
EM3402归档路径重复1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3402: duplicate archive path
EM3403归档含链接、设备或不允许的目录项1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3403: archive links/directories/devices are forbidden
EM3404归档含目录项或 ZIP 级加密条目1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3404: directories/encrypted ZIP entries are forbidden
EM3405ZIP 压缩格式不支持1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3405: unsupported ZIP compression
EM3406ZIP 单项文件超过大小限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3406: ZIP entry too large
EM3407ZIP 压缩比异常或过高1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3407: excessive compression ratio
EM3408清单文件超过大小限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3408: manifest too large
EM3409类型目录超过大小限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3409: catalog too large
EM3410归档总大小超过限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3410: archive total size limit exceeded
EM3411清单文本不是 UTF-81 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3411: manifest is not UTF-8
EM3412ZIP 与清单不符或校验期间文件变化4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3412: ZIP payload set differs from manifest
  • EM3412: ZIP/manifest size mismatch
  • EM3412: package changed during verification
  • EM3412: package changed while copying
EM3413包扩展名不符或构建锁被占用7 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:先确认另一项安装、导出或构建是否仍在执行。活动或无法证明已退出的锁不能直接删;崩溃后的残留锁应保留现场并按恢复流程核实所属进程,再处理。

原始日志模板(以实际完整文字为准)
  • EM3413: another operation owns {path}
  • EM3413: another operation owns {path}; after a crashed process, inspect and remove the stale lock manually
  • EM3413: another operation owns {path}; owner is active or cannot be proven dead
  • EM3413: archive extension does not match its package type
  • EM3413: build lock is a link; inspect manually: {path}
  • EM3413: build lock ownership cannot be trusted: {path}
  • EM3413: build lock ownership changed during recovery: {path}
EM3414Mod 根目录或选中的文件不是普通路径2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3414: mod root must not be a symlink
  • EM3414: select a regular Mod package file
EM3415已安装目标是符号链接1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3415: installed target is a symlink
EM3416目标文件属于其他 Mod 或已经安装2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3416: installed filename belongs to another Mod
  • EM3416: mod already installed; use --replace after stopping the game
EM3417解压后的文件超过声明大小1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3417: decompressed entry exceeded declared size
EM3418归档条目被截断1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3418: truncated archive entry
EM3419无法创建目录或操作锁3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3419: cannot create mod root {root}: {exc}
  • EM3419: cannot create operation lock {path}: {exc}
  • EM3419: cannot recover cancelled build lock {path}: {exc}
EM3420无法创建安装暂存目录1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3420: cannot create install staging under {mods_dir}: {exc}
EM3421无法写入安装暂存内容1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3421: cannot write install staging {staging}: {exc}
EM3422无法保留旧安装以准备替换1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3422: cannot move existing installation to backup {backup}: {exc}
EM3423安装提交失败,未提交或已恢复旧安装2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3423: install commit failed; no installation was committed: {commit_error}
  • EM3423: install commit failed; previous installation restored: {commit_error}
EM3424安装失败且回滚失败,旧内容仍保留1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:不要继续清理提示中的旧安装或恢复目录。保留该路径和日志,先解除文件占用、修复目标写权限/空间,再恢复安装;无法安全判断时让维护者依据记录处理。

原始日志模板(以实际完整文字为准)
  • EM3424: install commit failed and rollback failed; backup retained at {backup}: commit={commit_error}; rollback={rollback_error}
EM3425新安装已提交,但旧内容清理失败1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:新安装已经提交,失败的是旧内容清理。先确认新安装可用,再在未占用时处理日志指出的残留目录,不把它误判为需要删除新安装。

原始日志模板(以实际完整文字为准)
  • EM3425: new installation committed but backup cleanup failed at {backup}: {exc}
EM3426安装暂存目录清理失败1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3426: install staging cleanup failed at {staging}: {exc}
EM3430Mod 根目录不允许使用符号链接1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3430: mod root must not be a symlink
EM3431Mod 根目录不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3431: mod root does not exist: {mods_dir}
EM3432操作锁不可信或指向符号链接2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:先确认另一项安装、导出或构建是否仍在执行。活动或无法证明已退出的锁不能直接删;崩溃后的残留锁应保留现场并按恢复流程核实所属进程,再处理。

原始日志模板(以实际完整文字为准)
  • EM3432: operation lock cannot be trusted; inspect manually: {lock}: {exc}
  • EM3432: operation lock is a symlink; inspect manually: {lock}
EM3433操作锁所属进程仍活动或状态不明2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:先确认另一项安装、导出或构建是否仍在执行。活动或无法证明已退出的锁不能直接删;崩溃后的残留锁应保留现场并按恢复流程核实所属进程,再处理。

原始日志模板(以实际完整文字为准)
  • EM3433: operation lock owner changed state or cannot be proven dead (pid={pid}): {lock}
  • EM3433: operation lock owner is active or cannot be proven dead (pid={pid}): {lock}
EM3434发现残留操作锁,需要核实后恢复1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:先确认另一项安装、导出或构建是否仍在执行。活动或无法证明已退出的锁不能直接删;崩溃后的残留锁应保留现场并按恢复流程核实所属进程,再处理。

原始日志模板(以实际完整文字为准)
  • EM3434: stale operation lock found; rerun recover with --remove-stale-lock after inspection: {lock}
EM3435无法移除已确认的残留操作锁1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3435: cannot remove stale operation lock {lock}: {exc}
EM3436无法移除废弃安装暂存目录1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3436: cannot remove abandoned install staging {artifact}: {exc}
EM3437无法恢复保留的旧安装1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:不要继续清理提示中的旧安装或恢复目录。保留该路径和日志,先解除文件占用、修复目标写权限/空间,再恢复安装;无法安全判断时让维护者依据记录处理。

原始日志模板(以实际完整文字为准)
  • EM3437: cannot restore backup {backup} to {target}: {exc}
EM3450ZIP 不存在或超过大小限制1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3450: ZIP missing or exceeds size limit
EM3451无法读取 ZIP 目录1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3451: cannot read ZIP directory
EM3452ZIP 结束记录缺失1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3452: ZIP end record missing
EM3453不支持分卷 ZIP1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3453: multi-disk ZIP unsupported
EM3454ZIP64 目录无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3454: invalid ZIP64 directory
EM3455ZIP 条目数量或目录边界无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3455: invalid ZIP entry count or directory bounds
EM3456ZIP 目录条目格式损坏1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3456: malformed ZIP directory entry
EM3457ZIP 文件名编码或来源路径无效3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3457: ZIP name must be ASCII or UTF-8 source path
  • EM3457: malformed UTF-8 ZIP source path
  • EM3457: unsafe ZIP entry
EM3458ZIP 路径重复或被禁止1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3458: forbidden or duplicate ZIP path:
EM3459ZIP64 大小或压缩比无效1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3459: invalid ZIP64 size or compression ratio
EM3460ZIP 负载超过限制1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3460: ZIP payload exceeds limit
EM3461ZIP 内容不符合 Mod 格式1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3461: ZIP contents do not match Mod format
EM3462无法打开 ZIP1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3462: cannot open ZIP
EM3463ZIP 本地文件头或名称与目录不一致3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3463: ZIP local header mismatch
  • EM3463: ZIP local name mismatch
  • EM3463: ZIP local name missing
EM3464ZIP 文件条目被截断1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3464: truncated ZIP entry
EM3465无法创建安装文件或源码缓存目录2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3465: cannot create install staging file
  • EM3465: cannot create verified source cache directory:
EM3466ZIP 解压器失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3466: ZIP inflater failed
EM3467ZIP 条目截断或 CRC 校验失败1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3467: ZIP entry truncated or CRC mismatch:
EM3470Mod 文件或根目录不安全、不可写3 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3470: Mod archive is a link
  • EM3470: Mods directory is unsafe or not writable:
  • EM3470: unsafe or unavailable Mod root
EM3476宿主配置不可用或 Mod 文件格式不支持1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3476: Contract unavailable or unsupported Mod file
EM3477无法创建暂存目录1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3477: cannot create staging directory
EM3478ZIP 实际负载与清单不符2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3478: ZIP/manifest payload mismatch
  • EM3478: unexpected ZIP payload
EM3480Mod 已安装或正等待重启后移除2 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3480: Mod is pending removal; restart before reinstalling
  • EM3480: this Mod variant is already installed
EM3483Mod 文件选择器不可用或未完成选择3 条诊断

出现位置:Authoring / developer editor · Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3483: Mod file picker supports Win64 only
  • EM3483: could not open Mod file picker
  • EM3483: could not select Mod package
EM3484另一项 Mod 操作尚未完成1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:检查完整包、磁盘空间、目标写权限与占用进程。安装/回滚失败时保留日志给出的旧安装和源码,先处理具体失败。

原始日志模板(以实际完整文字为准)
  • EM3484: another Mod operation is in progress

EM35xx · 依赖拓扑与冲突

补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

EM3500Mod ID 或指定排序重复2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

原始日志模板(以实际完整文字为准)
  • EM3500: duplicate mod id
  • EM3500: duplicate preferred Mod order
EM3501插件命名空间重复1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

原始日志模板(以实际完整文字为准)
  • EM3501: duplicate plugin namespace
EM3502Mod 依赖层级超过限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

原始日志模板(以实际完整文字为准)
  • EM3502: dependency depth limit
EM3503Mod 依赖不存在或未启用1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:安装并启用诊断指出的依赖及兼容版本;不要仅通过重新排序掩盖缺失或版本不符。发布者修正依赖声明后重新导出。

原始日志模板(以实际完整文字为准)
  • EM3503: missing/disabled dependency: {mod_id}
EM3504Mod 依赖形成循环1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

原始日志模板(以实际完整文字为准)
  • EM3504: dependency cycle at {mod_id}
EM3505Mod 依赖版本不匹配1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:安装并启用诊断指出的依赖及兼容版本;不要仅通过重新排序掩盖缺失或版本不符。发布者修正依赖声明后重新导出。

原始日志模板(以实际完整文字为准)
  • EM3505: dependency version mismatch: {dep['id']}
EM3506Mod 之间声明了冲突1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:补齐兼容依赖、启用所需 Mod、移除重复身份,修正循环或显式冲突后再生成顺序。

原始日志模板(以实际完整文字为准)
  • EM3506: {mod_id} conflicts with {conflict['id']}

EM36xx · 源码、工作区与生命周期

保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

EM3600没有选择有效、关联当前 SDK 的 Mod 工程5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3600: Mod project must be outside and associated with the selected SDK;
  • EM3600: invalid Mod project identity
  • EM3600: invalid standalone Mod project
  • EM3600: provide an existing .uproject file: {project}
  • EM3600: provide an existing Mod.emodproject
EM3601插件名称无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3601: invalid plugin name
EM3602插件根目录无效或项目插件数量不符2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3602: expected one project plugin {name}, found {len(candidates)}
  • EM3602: invalid installed EasyMod plugin root
EM3603Mod、游戏标识或游戏版本无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3603: invalid plugin/mod/game identifier or game version
EM3604Mod 位置已存在或位于 SDK 内3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3604: Mod project already exists: {target}
  • EM3604: Mod projects must live outside the SDK
  • EM3604: choose a directory outside the game SDK for the Mod project
EM3605源码 Content 目录不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3605: source Content missing
EM3606可编辑资源类型不支持1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3606: unsupported editable asset: {relative}
EM3607可编辑源码没有任何资源1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3607: editable source needs at least one asset
EM3608可编辑源码超过大小限制1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3608: editable source exceeds 1 GiB
EM3610该 Mod 没有公开可编辑源码1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3610: author did not publish editable source
EM3611源码属于其他游戏或目标 SDK 配置无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3611: source belongs to another game
  • EM3611: target SDK is missing a valid game Contract
EM3612源码路径不安全或命名空间属于其他 Mod3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3612: author project location must be outside the SDK
  • EM3612: local project namespace belongs to another Mod
  • EM3612: unsafe existing Mod project
EM3613独立 Mod 的源码文件集合无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3613: invalid standalone Mod source set
EM3614源码归档路径不安全1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3614: unsafe source archive entry
EM3615源码或元数据超过大小限制2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3615: source archive exceeds 1 GiB
  • EM3615: source metadata exceeds 1 MiB
EM3616源码条目长度不符1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3616: source entry length mismatch
EM3617已发布源码不能升级或描述身份不一致2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3617: cannot upgrade invalid published Mod source
  • EM3617: source identity/descriptor mismatch
EM3620Mod ID 无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3620: invalid Mod id
EM3621本地 Mod 身份不一致1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3621: local Mod identity mismatch
EM3622游戏目录无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3622: invalid game directory
EM3623找不到对应本地工程或已安装 Mod1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3623: no local project or installed Mod with this id
EM3625支持的游戏版本数量或唯一性无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3625: expected 1-64 unique game versions
EM3626工作区与导出模板中的 Mod 身份不符2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3626: Mod metadata does not belong to the selected workspace
  • EM3626: Mod project identity differs from export template
EM3627UE 系列不同或编辑器补丁版本过低1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3627: this Mod requires the same UE series and cannot be opened by a lower patch version
EM3628目标 SDK 缺少游戏版本1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3628: target SDK is missing its game version
EM3629目标 UE 系列没有编辑器适配1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3629: target UE series has no EasyMod Editor adapter
EM3630Mod 补丁版本号无法递增1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3630: Mod patch version cannot be incremented
EM3631游戏不允许未签名的已发布 Mod1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3631: unsigned published Mod is disabled by this game
EM3632Mod 属于其他游戏或被放在 SDK 内2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3632: Mod belongs to another game
  • EM3632: Mod must live outside the SDK
EM3640选中了旧格式工程或非单文件 .umod2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3640: old .umod package or Mod.emodproject; create a new Mod
  • EM3640: select a single-file .umod author project
EM3641Mod GUID 缺失或无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3641: missing or invalid Mod GUID
EM3642Mod 身份记录不一致1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3642: inconsistent Mod identity
EM3643入口类或游戏兼容元数据无效3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3643: invalid entry class
  • EM3643: invalid supported game versions
  • EM3643: missing game SDK compatibility metadata
EM3644Mod 显示名称或文件名无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3644: invalid Mod display/file name
EM3645工程文件列表、覆盖清单或运行变体无效7 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3645: duplicate cooked runtime variants
  • EM3645: invalid deleted external package list
  • EM3645: invalid override package list
  • EM3645: invalid project entry count
  • EM3645: missing metadata or project exceeds 1 GiB
  • EM3645: source contains an undeclared override package
  • EM3645: unsafe project archive entry
EM3646工程元数据无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3646: invalid project metadata
EM3647无法保存源码包或找不到真实工作区8 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:源码保存失败时当前工作区更改仍需保留。检查日志中的源 .umod 路径、文件占用、磁盘空间及写权限;不要先删除工作区。需要发布时使用当前真实工作区重新保存、构建导出。

原始日志模板(以实际完整文字为准)
  • EM3647: could not save the Mod source package; workspace edits are preserved
  • EM3647: invalid source workspace
  • EM3647: missing Mod source path
  • EM3647: no active .umod author project
  • EM3647: overwriting the source package requires --mod-project
  • EM3647: provide the actual workspace or its matching SDK
  • EM3647: publish needs the actual Mod.emodproject workspace descriptor
  • EM3647: runtime embedding needs the actual Mod.emodproject
EM3648源码包在编辑器外变化,需要解决冲突14 条诊断

出现位置:EasyModTool · Launcher / updater · 此编号链接

如何处理:源码包或工作区在编辑器外发生变化。先保留两边版本并看清冲突提示:写回当前编辑会覆盖外部版本;重新载入会丢弃当前工作区更改;取消会保留现场。不要未经选择就清缓存或替换源码。

原始日志模板(以实际完整文字为准)
  • EM3648: internal workspace identity changed
  • EM3648: registered workspace belongs to another source
  • EM3648: resolve the source conflict before changing versions
  • EM3648: runtime embedding belongs to another workspace or an external source revision
  • EM3648: select an explicit conflict resolution
  • EM3648: source changed outside the Editor
  • EM3648: source changed outside the Editor; preserve the workspace and resolve the conflict
  • EM3648: source changed outside the Editor; resolve the conflict before changing the cover
  • EM3648: source changed outside the Editor; resolve the conflict before publishing
  • EM3648: source changed outside the Editor; resolve the conflict before saving Mod information
  • EM3648: source identity changed
  • EM3648: the source belongs to another Mod; do not replace this workspace
  • EM3648: this workspace is bound to a different source file; open the selected file in its own workspace
  • EM3648: workspace relocation belongs to another source
EM3649工程过大或包含不支持的资源2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3649: project exceeds limits
  • EM3649: unsupported project asset:
EM3650Mod、游戏、SDK 或 UE 身份不匹配7 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3650: Mod belongs to another game
  • EM3650: Mod game/SDK Contract or engine version mismatch
  • EM3650: Mod must be in this game's Mods directory
  • EM3650: external source and selected SDK Contract differ
  • EM3650: external source targets a different SDK Contract
  • EM3650: game SDK identity mismatch
  • EM3650: source belongs to another game
EM3651工作区、源码或元数据在操作中变化11 条诊断

出现位置:EasyModTool · Launcher / updater · 此编号链接

如何处理:源码包或工作区在编辑器外发生变化。先保留两边版本并看清冲突提示:写回当前编辑会覆盖外部版本;重新载入会丢弃当前工作区更改;取消会保留现场。不要未经选择就清缓存或替换源码。

原始日志模板(以实际完整文字为准)
  • EM3651: Mod source changed during preparation; retry
  • EM3651: Mod validation belongs to another source
  • EM3651: incomplete internal workspace
  • EM3651: internal Content mount is not a directory
  • EM3651: internal workspace identity changed
  • EM3651: open the Mod before changing its cover
  • EM3651: original workspace changed; preserve both locations
  • EM3651: source changed while a workspace exists
  • EM3651: source changed while a workspace exists; preserve unsaved edits
  • EM3651: source changed while a workspace exists; preserve unsaved edits and resolve manually
  • EM3651: workspace files changed during relocation; original edits are preserved
EM3652游戏标识或版本无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3652: invalid game identity/version
EM3653需要新的源码保存路径或该 GUID 已存在4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3653: choose a new .umod save path
  • EM3653: destination already exists
  • EM3653: select a new .umod save path
  • EM3653: this Mod GUID is already installed; open the existing project
EM3654选中的 Mod 没有唯一的可编辑源码6 条诊断

出现位置:EasyModTool · Launcher / updater · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3654: Invalid Mod source listing.
  • EM3654: The selected Mod's editable source was not found.
  • EM3654: expected one editable .umod for the selected Mod
  • EM3654: invalid selected Mod
  • EM3654: select one editable Mod for this SDK
  • EM3654: 未找到所选 Mod 的可编辑源码。
EM3655选中的私有包格式无效或过旧2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3655: old package; rebuild the Mod
  • EM3655: select a private .emod
EM3656封面图片或原资源覆盖路径无效12 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3656: corrupt PNG checksum
  • EM3656: corrupt PNG chunk
  • EM3656: cover must be 8-bit RGB/RGBA, at most 2048x2048
  • EM3656: cover must be a PNG no larger than 2 MiB
  • EM3656: external source contains an override not allowed by this SDK
  • EM3656: incomplete or trailing PNG data
  • EM3656: invalid cover path
  • EM3656: override package not allowed by this SDK
  • EM3656: selected override package is missing from the SDK workspace:
  • EM3656: unsafe host package path
  • EM3656: unsafe override path
  • EM3656: unsupported override source asset:
EM3657作者信息或隔离 SDK 工作区不符合要求13 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:此码包含多个分支:作者名称为空时填写作者信息;基线/SDK 身份不符时重新选择正确 SDK;搬移失败或空间不足时保留原工作区并修复目标。按完整消息处理,不统一重建或清空所有内容。

原始日志模板(以实际完整文字为准)
  • EM3657: SDK baseline missing; reselect the matching SDK first
  • EM3657: SDK workspace belongs to another Mod
  • EM3657: SDK workspace targets another game or engine
  • EM3657: an edited override is no longer editable in this SDK; workspace preserved
  • EM3657: author name is required
  • EM3657: author name is required, at most 100 characters
  • EM3657: insufficient space to relocate the workspace; original edits are preserved
  • EM3657: invalid author workspace layout
  • EM3657: isolated SDK workspace belongs to another Mod
  • EM3657: source contains an override path not approved by this SDK
  • EM3657: unsafe or unowned SDK workspace
  • EM3657: workspace relocation cannot follow links or junctions
  • EM3657: workspace relocation destination is occupied; preserve both workspaces
EM3658源码与 Cook 运行负载不是同一版本8 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:Save 只保存源码,不会自动生成与其匹配的 Cook 内容。从当前源码重新 Build and export,安装本次输出并重启真实游戏;确认没有误选另一份同 GUID 变体。

原始日志模板(以实际完整文字为准)
  • EM3658: .umod requires an unencrypted public runtime
  • EM3658: cooked package does not match author project
  • EM3658: cooked runtime identity differs from its .umod source
  • EM3658: public source belongs to another Mod
  • EM3658: rebuild the editable Mod before installing it in a game
  • EM3658: source changed since Cook; rebuild before Shipping use
  • EM3658: source changed since Cook; rebuild before embedding runtime
  • EM3658: staged package belongs to another workspace
EM3659公开导出缺少 .umod 源码工程1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3659: public export needs a .umod source project
EM3660必填作品信息缺失或输出属于其他 Mod3 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3660: expected Mod name, author, version, supported game versions and optional coverPath
  • EM3660: missing source metadata field:
  • EM3660: output belongs to another Mod; choose a different filename
EM3661默认生命周期入口创建、编译或保存失败9 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:关闭前先保存能保存的作品;通过选择 Mod 窗口重新打开,让编辑器恢复默认入口。若仍失败,检查提示中的创建/编译日志并修复配套安装;不要另建第二个入口或手改 entryClass。

原始日志模板(以实际完整文字为准)
  • EM3661: Mod entry parent cannot create a Blueprint: %s
  • EM3661: compiling the Mod entry Blueprint failed: %s
  • EM3661: creating the Mod entry Blueprint failed: %s
  • EM3661: creating the Mod entry failed; source workspace preserved; see
  • EM3661: creating the Mod entry timed out; see
  • EM3661: initial Mod entry differs from the declared entry
  • EM3661: saving the Mod entry Blueprint failed: %s
  • EM3661: the Mod entry already exists; it was not replaced
  • EM3661: the selected Mod Editor cannot create its entry
EM3670尚未打开可编辑生命周期的 Mod1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:保留 .umod 和当前未保存更改,确认选择了对应 SDK/真实工作区。身份或外部修改冲突应通过选择窗口及冲突提示解决。

原始日志模板(以实际完整文字为准)
  • EM3670: Open a Mod before editing its lifecycle.
EM3671已有生命周期入口或出现多个入口2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:普通 Mod 已经有一个入口。用 Mod tools → Mod lifecycle... 打开已有 Blueprint;若导入/复制产生额外入口,保留正确入口并处理多余副本后保存导出。

原始日志模板(以实际完整文字为准)
  • EM3671: A Mod can have only one lifecycle Blueprint. Remove the extra lifecycle Blueprints before saving or exporting.
  • EM3671: This Mod already has a lifecycle Blueprint. Open it from Mod tools > Mod lifecycle.
EM3672生命周期 Blueprint 尚未成功编译1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:打开已有生命周期,修复 Compiler Results 中第一条具体错误,Compile 成功后 Save,再导出。

原始日志模板(以实际完整文字为准)
  • EM3672: Compile the lifecycle Blueprint successfully before saving or exporting the Mod.
EM3673默认生命周期入口缺失1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:关闭前先保存能保存的作品;通过选择 Mod 窗口重新打开,让编辑器恢复默认入口。若仍失败,检查提示中的创建/编译日志并修复配套安装;不要另建第二个入口或手改 entryClass。

原始日志模板(以实际完整文字为准)
  • EM3673: The default lifecycle entry is missing. Reopen the Mod to restore it.
EM3674纯翻译 Mod 不使用生命周期 Blueprint1 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:纯翻译 Mod 只维护译文,不需要启动/停止入口。需要 Blueprint 或玩法逻辑时创建普通内容 Mod。

原始日志模板(以实际完整文字为准)
  • EM3674: Translation Mods do not use lifecycle Blueprints.

EM37xx · 原生工具启动与子命令

确认完整配套工具可用。子命令失败先打开提示的阶段日志,定位第一条具体 Error,而不是只重试最后一行。

EM3700当前引擎没有匹配的编辑器适配1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认完整配套工具可用。子命令失败先打开提示的阶段日志,定位第一条具体 Error,而不是只重试最后一行。

原始日志模板(以实际完整文字为准)
  • EM3700: no Editor adapter for exact engine build {build}
EM3701UnrealEditor-Cmd 或 UnrealPak 程序不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认完整配套工具可用。子命令失败先打开提示的阶段日志,定位第一条具体 Error,而不是只重试最后一行。

原始日志模板(以实际完整文字为准)
  • EM3701: Win64 UnrealEditor-Cmd.exe / UnrealPak.exe not found
EM3702无法启动原生工具或配置其运行环境6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认完整配套工具可用。子命令失败先打开提示的阶段日志,定位第一条具体 Error,而不是只重试最后一行。

原始日志模板(以实际完整文字为准)
  • EM3702: cannot identify native build owner
  • EM3702: cannot reset DLL search path for a native child
  • EM3702: cannot restore frozen DLL search path
  • EM3702: could not launch engine/tool: {exc}
  • EM3702: frozen DLL search path exceeds limits
  • EM3702: native build process helper is missing
EM3703子命令失败;具体原因在阶段日志中1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:这只是子命令退出的汇总,不是根因。打开 see 后的阶段日志(例如 01-validate.log 或 02-cook.log),找到前面的第一条 Error/Compiler Error/具体 EM 编号,先解决它;若输出只剩这一行,连同该日志反馈维护者。

原始日志模板(以实际完整文字为准)
  • EM3703: command returned {code}; see {log_path}
EM3704引擎构建信息或编辑器适配链无效5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认完整配套工具可用。子命令失败先打开提示的阶段日志,定位第一条具体 Error,而不是只重试最后一行。

原始日志模板(以实际完整文字为准)
  • EM3704: Editor adapter UE series mismatch: {build}
  • EM3704: Editor adapter inheritance cycle: {build}
  • EM3704: engine Build.version requires major, minor, patch and changelist
  • EM3704: invalid Editor version adapter manifest
  • EM3704: unknown Editor adapter: {build}

EM38xx · Cook 输出与 Pak 收集

检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

EM3800Pak 命名空间无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3800: invalid Pak namespace
EM3801Cook 输出 Content 目录不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3801: cooked content directory missing
EM3802Cook 没有生成资源包1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3802: no cooked asset packages found
EM3803Cook 输出使用了不支持的文件或打包配置1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3803: unsupported cooked file (IoStore/shared shader/registry data cannot be silently ignored): {path}
EM3804Cook 文件路径不安全1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3804: unsafe cooked file path
EM3805地图或源码 Cook 输入缺少有效归属证据7 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3805: generated-map input has no selected owner
  • EM3805: generated-map input is outside its cooked map family
  • EM3805: invalid generated-map Cook input proof
  • EM3805: invalid generated-map input
  • EM3805: invalid selected Mod asset list
  • EM3805: invalid source-only Cook input proof
  • EM3805: selected cooked assets are missing:
EM3806所选 Mod 资源未进入 Cook 输出2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3806: invalid selected Mod package
  • EM3806: selected Mod packages missing from Cook output:
EM3810原资源覆盖选择无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3810: invalid override package selection
EM3811覆盖 Cook 的游戏 Content 目录缺失1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3811: cooked game Content directory missing
EM3812覆盖资源没有进入 Cook 输出1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3812: override packages missing from Cook output:
EM3813覆盖包文件类型不支持1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3813: unsupported override file: {path}
EM3814覆盖资源路径不安全1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查 Cook 日志及所选打包内容,确认资源实际被 Cook,保持支持的 Win64/Pak 配置,再重新导出。

原始日志模板(以实际完整文字为准)
  • EM3814: unsafe override path

EM39xx · 构建导出与游戏验证

从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

EM3900导出需要真实 Mod.emodproject 工作区描述6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3900: --mod-project requires the actual Mod.emodproject descriptor, not a source archive
  • EM3900: invalid active plugin namespace
  • EM3900: pass the actual Mod.emodproject descriptor returned by prepare
  • EM3900: provide --mod-project
  • EM3900: provide --mod-project for a standalone Mod
  • EM3900: set-versions needs the actual Mod.emodproject descriptor
EM3901项目打包配置不兼容1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3901: incompatible project profile:
EM3902当前 Mod 与模板的命名空间或身份不符3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3902: Mod project identity differs from its export template
  • EM3902: selected Mod project name differs
  • EM3902: template namespace/id mismatch
EM3903Blueprint Mod 中混入了原生文件或插件描述2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3903: Blueprint-only Mod contains native files: {files}
  • EM3903: Mod projects cannot contain UE plugin descriptors
EM3904当前平台不能执行 UE Cook/Pak1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3904: UE Cook/Pak execution is Win64-only in this preview; use --dry-run to inspect commands elsewhere
EM3905模板目标属于其他游戏1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3905: template targets a different game
EM3906找不到唯一的独立 Mod Cook 输出1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3906: expected one cooked standalone Mod Content directory; inspect 02-cook.log
EM3907UnrealPak 没有生成 content.pak1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3907: UnrealPak did not create content.pak
EM3908发布方式无效或游戏验证响应无效3 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3908: The game returned an invalid validation response.
  • EM3908: invalid publication mode
  • EM3908: public export needs a .umod source project
EM3909SDK 插件依赖未启用或游戏拒绝 Mod6 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3909: The game rejected the Mod Contract or exported package.
  • EM3909: approved SDK plugin is not enabled in project
  • EM3909: built-in SDK cannot declare the legacy EasyMod plugin
  • EM3909: invalid SDK approved plugin list
  • EM3909: invalid SDK plugin requirements
  • EM3909: required SDK dependency plugin is not enabled in project
EM3910暂存目录不是有效 EasyMod 构建目录1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3910: staged package is not an EasyMod build directory
EM3911私有 Pak 未加密索引或游戏验证未连接3 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:若消息提到游戏验证连接/超时,选择同一 SDK 对应的打包游戏目录或启动匹配游戏;导出功能不以连接成功为前提。若消息实际是加密 Pak、覆盖资源或清单问题,则按对应分支修复,不能把它视作单纯网络错误。

原始日志模板(以实际完整文字为准)
  • EM3911: No game validation connection is available. The selected folder contains {0} game executables. Choose the packaged game folder, or start the matching game and try again. Export remains available.
  • EM3911: UnrealPak did not encrypt the private Pak index:
  • EM3911: private map/override Pak index was not encrypted:
EM3912覆盖资源未获授权或无法启动游戏验证4 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:若消息提到游戏验证连接/超时,选择同一 SDK 对应的打包游戏目录或启动匹配游戏;导出功能不以连接成功为前提。若消息实际是加密 Pak、覆盖资源或清单问题,则按对应分支修复,不能把它视作单纯网络错误。

原始日志模板(以实际完整文字为准)
  • EM3912: Could not start the packaged game for Mod validation. Export remains available.
  • EM3912: invalid override package
  • EM3912: override package is not allowed by the host SDK
  • EM3912: validated override package list differs from the author project
EM3913覆盖资源不在当前工作区或游戏验证超时2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:若消息提到游戏验证连接/超时,选择同一 SDK 对应的打包游戏目录或启动匹配游戏;导出功能不以连接成功为前提。若消息实际是加密 Pak、覆盖资源或清单问题,则按对应分支修复,不能把它视作单纯网络错误。

原始日志模板(以实际完整文字为准)
  • EM3913: The game did not provide a validation connection within 30 seconds. Export remains available.
  • EM3913: override package must exist in this Mod's writable SDK workspace:
EM3914找不到唯一的覆盖资源 Cook 输出1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3914: expected one cooked game Content directory for overrides
EM3915函数补丁构建缺少隔离 SDK 基线2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3915: Blueprint patch build needs an isolated SDK workspace with its source SDK baseline
  • EM3915: missing host Blueprint baseline:
EM3920编辑器回执或 SDK API 文件缺失2 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3920: EasyMod Editor receipt or SDK API is missing
  • EM3920: EasyMod Editor receipt, SDK metadata or API is missing
EM3921SDK、游戏与编辑器验证上下文不符4 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:从当前已保存工作区重新构建,检查验证、Cook、Pak 阶段及第一条错误;游戏验证连接与导出本身分开判断。

原始日志模板(以实际完整文字为准)
  • EM3921: Editor/SDK UE series or SDK game Contract mismatch
  • EM3921: publisher SDK and game Contract differ
  • EM3921: publisher SDK validation requires its actual game engine and project plugin
  • EM3921: this Editor does not support the SDK's UE series

EM40xx · SDK 依赖、模块与分发

主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

EM4000创作目录或复制来源无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4000: invalid author tree: {root}
  • EM4000: invalid source tree: {source}
EM4001输出目录不能位于待复制源码内部1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4001: output cannot be inside copied source tree
EM4002Blueprint 专用目录含原生文件或链接2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4002: filtered Blueprint-only tree still contains native author files:
  • EM4002: source tree contains a symlink: {name}
EM4003资源包路径无效1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4003: invalid asset package path
EM4004资源路径包含不支持的字符1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4004: unsupported package path characters
EM4005SDK 资源来自未批准插件1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4005: SDK asset belongs to an unapproved plugin: {parts[0]}
EM4006SDK 依赖审计被明确拒绝或阻塞2 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4006: SDK dependency audit is blocked:
  • EM4006: explicitly denied SDK dependency:
EM4007SDK 计划或原生反射依赖闭包无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4007: invalid SDK plan
  • EM4007: invalid public native reflection dependency closure
EM4008SDK 输出已经存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4008: SDK output already exists; export to a fresh directory
EM4009公开 API 依赖未批准的原生模块1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4009: exported API depends on unapproved native modules:
EM4010已生成的宿主配置资源不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4010: compiled host contract asset is missing
EM4011SDK 暂存内容发生冲突1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4011: unexpected SDK staging collision
EM4012已批准资源缺失或缺少匹配编辑器3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4012: approved source asset missing: {package}
  • EM4012: bundled Engine dependencies require a matching Mod Editor
  • EM4012: required bundled Engine asset missing: {package}
EM4013Blueprint SDK 混入原生作者文件或私有引擎源码2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4013: Blueprint-only SDK contains author native files:
  • EM4013: Blueprint-only SDK contains the private Editor source repository
EM4014游戏 UE 系列缺少对应编辑器1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4014: game SDK has no Editor for its UE series
EM4015SDK API 缺少有效游戏版本1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4015: compiled SDK API is missing a valid game version
EM4016只有明确批准的 Runtime 项目模块可进入 SDK1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4016: only explicitly approved Runtime project modules can enter the author SDK
EM4017已批准原生模块缺少匹配编辑器构建2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4017: approved project modules require a matching Editor build and its module output
  • EM4017: approved project modules require the matching Editor module build
EM4018项目模块、SDK 插件或编辑器 BuildId 不匹配4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4018: SDK plugin {name} does not match the target Mod Editor
  • EM4018: invalid project module receipt
  • EM4018: publisher project modules differ from the target Mod Editor BuildId
  • EM4018: target Mod Editor has no verifiable BuildId
EM4019已批准模块输出缺失或是链接2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4019: approved module {name} is missing from the matching Editor build
  • EM4019: project module {name} is a link
EM4020SDK 回执与游戏配置不匹配1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4020: SDK receipt/Contract mismatch
EM4021SDK 与编辑器模块 BuildId 不匹配3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认 SDK、插件、编辑器都是目标 UE 系列及其真实配套构建。原生模块 BuildId 不符时重新安装匹配发行或由开发者重编、导出;不能仅修改 BuildId 字符串或复制另一版本 DLL。

原始日志模板(以实际完整文字为准)
  • EM4021: SDK differs from Mod Editor BuildId
  • EM4021: SDK plugin {name} differs from Mod Editor BuildId
  • EM4021: SDK project modules differ from Mod Editor BuildId
EM4022项目模块哈希缺失或与批准回执不符2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4022: SDK project module hashes are missing
  • EM4022: SDK project modules differ from approval receipt
EM4023已批准项目模块文件缺失或已变化1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4023: approved project module {name} is missing or changed
EM4024SDK 输出已存在或含禁止的打包产物2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4024: packaged SDK contains a bundled archive or author build
  • EM4024: packaged SDK destination already exists
EM4025SDK 混入私有引擎源码或分发后台2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4025: SDK contains the private Editor source repository
  • EM4025: SDK contains the publisher distribution backend or its dependencies
EM4026SDK 的内部桥接依赖或内容范围不符3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4026: EasyMod bridge content leaked into the author SDK
  • EM4026: SDK EasyMod bridge must not expose plugin content
  • EM4026: SDK internal dependency is missing:
EM4027所选编辑器缺少 Widget 所需 UMGEditor1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4027: SDK widget dependency requires UMGEditor in the selected Mod Editor
EM4028游戏私钥或宿主密钥模块泄漏到作者分发4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4028: host key module can never be approved for the SDK
  • EM4028: host key module cannot be distributed with an SDK or common Editor
  • EM4028: private game encryption configuration leaked into author distribution
  • EM4028: private game encryption key leaked into author distribution
EM4030不能把工作区或其他目录当作 SDK 替换1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4030: replace requires a published SDK, not an author workspace or another folder
EM4031不能用另一个游戏的 SDK 覆盖当前 SDK2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4031: cannot replace an SDK for another game
  • EM4031: replace requires an SDK of the same game
EM4032SDK 更新暂存目录冲突1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4032: SDK update staging collision
EM4033游戏图标路径、尺寸或 PNG/ICO 格式无效8 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4033: ICO conversion requires Windows; configure a PNG game icon
  • EM4033: configured game icon does not exist
  • EM4033: could not decode the game icon
  • EM4033: could not read the game's Windows icon
  • EM4033: game icon must be a PNG or Windows ICO
  • EM4033: invalid PNG game icon
  • EM4033: invalid game icon dimensions
  • EM4033: invalid icon bitmap
EM4034SDK 游戏展示信息或图标发生变化5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4034: SDK game icon changed
  • EM4034: SDK game icon is missing or changed
  • EM4034: SDK game identity mismatch
  • EM4034: SDK game information changed
  • EM4034: SDK game presentation is missing or invalid
EM4035SDK 文件不完整或增量同步清单无效4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4035: SDK file is incomplete or changed:
  • EM4035: SDK live-update manifest is missing or changed; export the SDK again
  • EM4035: unsafe SDK live-update file list
  • EM4035: unsupported SDK live-update manifest
EM4036SDK 同步目标工作区身份不匹配3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4036: SDK live-update workspace identity mismatch
  • EM4036: live SDK synchronization requires an isolated workspace
  • EM4036: live SDK update targets another game or engine
EM4037同步过程中 SDK 再次发生变化2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:主要由开发者处理:批准真实依赖,使用匹配模块/回执重新导出;不把私有源码、密钥或后台混入 SDK。

原始日志模板(以实际完整文字为准)
  • EM4037: SDK changed during synchronization; previous workspace restored
  • EM4037: SDK changed during synchronization; retry with the completed export

EM41xx · 签名、加密与密钥

核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

EM4100签名加密依赖缺失或示例输出已存在6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4100: game key generation requires the cryptography Python package
  • EM4100: install Tools/requirements.txt into the configured Python for signed Mod export
  • EM4100: private Mod export requires the cryptography Python package
  • EM4100: sample output already exists
  • EM4100: signature verification requires the cryptography Python package
  • EM4100: signing requires the cryptography Python package
EM4101作者 Ed25519 签名密钥缺失或路径无效5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4101: expected an Ed25519 author key
  • EM4101: invalid workspace author signing key path
  • EM4101: the workspace author key is missing; restore it or select --signing-key
  • EM4101: unsafe author key directory
  • EM4101: unsafe author key file
EM4102暂存包已经签名1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4102: staged package was already signed
EM4103签名、公钥或签名文件长度不符3 条诊断

出现位置:Game runtime · EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4103: signature without publisher key
  • EM4103: signed Mod is missing its signature or manifest
  • EM4103: signed Mod requires a 64-byte detached signature
EM4104Mod 作者签名验证失败1 条诊断

出现位置:Game runtime · EasyModTool · 此编号链接

如何处理:签名损坏时重新获取可信包,或由原作者使用正确密钥重新导出。未签名被禁用时提交有效签名包;是否允许未签名由游戏开发者决定。

原始日志模板(以实际完整文字为准)
  • EM4104: invalid Mod author signature
EM4105游戏开发者禁止未签名 Mod1 条诊断

出现位置:Game runtime · 此编号链接

如何处理:签名损坏时重新获取可信包,或由原作者使用正确密钥重新导出。未签名被禁用时提交有效签名包;是否允许未签名由游戏开发者决定。

原始日志模板(以实际完整文字为准)
  • EM4105: unsigned Mod disabled by the game developer
EM4107发布密钥与暂存时使用的密钥不一致1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4107: publish key differs from the key used to stage this Mod
EM4110游戏私有 Mod 密钥或宿主密钥提供器无效9 条诊断

出现位置:Game runtime · EasyModTool · 此编号链接

如何处理:游戏开发者准备并配置匹配的 RSA-3072 私有包密钥、宿主密钥提供器和 SDK 公钥;换密钥后重新生成游戏配置及 SDK。作者只需使用正确游戏/SDK,不需要游戏私钥。

原始日志模板(以实际完整文字为准)
  • EM4110: .emod requires an RSA-3072 private key
  • EM4110: choose a new safe game key file
  • EM4110: configure an RSA-3072 ModEncryptionPrivateKey
  • EM4110: game Mod encryption key does not match the package format
  • EM4110: game has no compiled Mod key provider; package through PackageHost
  • EM4110: invalid ModEncryptionPrivateKey in developer plugin settings
  • EM4110: invalid developer Mod encryption private key
  • EM4110: invalid private Mod key envelope
  • EM4110: missing or invalid game Mod encryption key
EM4111SDK 加密公钥无效或不匹配当前游戏4 条诊断

出现位置:Game runtime · EasyModTool · 此编号链接

如何处理:游戏开发者准备并配置匹配的 RSA-3072 私有包密钥、宿主密钥提供器和 SDK 公钥;换密钥后重新生成游戏配置及 SDK。作者只需使用正确游戏/SDK,不需要游戏私钥。

原始日志模板(以实际完整文字为准)
  • EM4111: game SDK requires an RSA-3072 encryption public key
  • EM4111: game developer has not configured private Mod encryption
  • EM4111: invalid game encryption public key
  • EM4111: private Mod cannot be decrypted with this game's key
EM4112密钥模块归属错误或换密钥后未更新 SDK3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:游戏开发者准备并配置匹配的 RSA-3072 私有包密钥、宿主密钥提供器和 SDK 公钥;换密钥后重新生成游戏配置及 SDK。作者只需使用正确游戏/SDK,不需要游戏私钥。

原始日志模板(以实际完整文字为准)
  • EM4112: host key module must not be a link
  • EM4112: refusing to overwrite a non-generated host key plugin
  • EM4112: regenerate the game Contract and SDK after changing the encryption private key
EM4113无法验证打包配置或游戏私钥仍留在配置中5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对签名完整性和密钥归属。作者保留原签名密钥;游戏加密私钥由开发者配置,不能用修改清单代替正确签名或加密。

原始日志模板(以实际完整文字为准)
  • EM4113: could not inspect the packaged INI configuration
  • EM4113: host archive or UnrealPak is missing
  • EM4113: packaged game has no Pak to inspect
  • EM4113: private game key remains in loose packaged configuration
  • EM4113: private game key remains in packaged Pak configuration

EM42xx · 编辑器安装与运行能力

使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

EM4200工具包输出必须使用新位置1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4200: choose a fresh ModKit output
EM4203编辑器发行目录不存在1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4203: EasyModEditor distribution missing: {editor_dist}
EM4204编辑器发行缺少启动器或官方引擎程序1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4204: EasyModEditor distribution must contain its launcher and official Unreal Editor executable
EM4205编辑器包包含不允许分发的源码或构建内容3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4205: EasyModEditor distribution contains forbidden source/toolchain files:
  • EM4205: Mod Editor includes a forbidden runtime path: {relative}
  • EM4205: Mod Editor includes game-packaging content: {relative}
EM4207编辑器验收回执缺失或格式不支持1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4207: missing or unsupported Editor acceptance receipt
EM4208编辑器程序与验收回执不符1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4208: Editor executable build differs from the acceptance receipt
EM4209编辑器组件与验收回执不符1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4209: Editor {name} differs from the acceptance receipt
EM4210EasyModTool.exe 或必需编辑器组件缺失6 条诊断

出现位置:Authoring / developer editor · EasyModTool · Launcher / updater · Game runtime · 此编号链接

如何处理:通过官方/游戏提供的安装更新入口修复完整配套发行。检查缺失的工具、模块或资源;不能只复制一个 EXE/DLL,也不要把另一 UE 系列文件混入安装。保留 SDK、Mod 和用户配置。

原始日志模板(以实际完整文字为准)
  • EM4210: EasyMod plugin is unavailable
  • EM4210: EasyModTool.exe is missing. Repair or reinstall the complete Mod Editor package.
  • EM4210: EasyModTool.exe is missing. Repair the Mod Editor installation.
  • EM4210: EasyModTool.exe is missing. Repair the complete Mod Editor installation.
  • EM4210: missing Editor dependency: {relative}
  • EM4210: 缺少 EasyModTool.exe。请修复完整 Mod 编辑器安装。
EM4211编辑器资源文件缺失1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:通过官方/游戏提供的安装更新入口修复完整配套发行。检查缺失的工具、模块或资源;不能只复制一个 EXE/DLL,也不要把另一 UE 系列文件混入安装。保留 SDK、Mod 和用户配置。

原始日志模板(以实际完整文字为准)
  • EM4211: missing Editor resources: {relative}
EM4212编辑器回执、游戏 UE 系列与适配不符1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4212: Editor receipt/game UE series differs from its adapter
EM4213编辑器适配、裁剪配置或加密自检失败4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4213: Editor adapters are missing
  • EM4213: Editor trim policy is missing
  • EM4213: bundled AES verification failed
  • EM4213: bundled RSA verification failed
EM4214工具运行环境缺失、变化或清单无效7 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:通过官方/游戏提供的安装更新入口修复完整配套发行。检查缺失的工具、模块或资源;不能只复制一个 EXE/DLL,也不要把另一 UE 系列文件混入安装。保留 SDK、Mod 和用户配置。

原始日志模板(以实际完整文字为准)
  • EM4214: Editor receipt lacks frozen tool identity
  • EM4214: frozen tool dependency changed:
  • EM4214: frozen tool has missing or unlisted files
  • EM4214: frozen tool is missing its executable or Python runtime
  • EM4214: frozen tool receipt changed
  • EM4214: invalid frozen tool receipt
  • EM4214: unsafe frozen tool file record
EM4216官方工具准备失败或内置编辑器身份不符14 条诊断

出现位置:Game runtime · EasyModTool · 此编号链接

如何处理:首次准备官方工具失败时检查网络/代理后重试。若日志是模块身份、BuildId、内置布局或回执不符,则修复整个匹配安装。两种分支都不需要修改 SDK 权限或作者源码。

原始日志模板(以实际完整文字为准)
  • EM4216: Could not start the official tool installer.
  • EM4216: Editor receipt and built-in authoring layout differ
  • EM4216: Editor receipt does not bind its source versions
  • EM4216: Official tool preparation failed. Retry when connected.
  • EM4216: The Windows user cache directory is unavailable.
  • EM4216: The official EasyMod tool manifest does not match this engine version.
  • EM4216: Unknown EasyMod desktop tool.
  • EM4216: built-in Editor BuildId or module identity differs from receipt
  • EM4216: built-in Editor cannot contain the developer plugin
  • EM4216: built-in Editor receipt requires its authoring marker
  • EM4216: built-in author source binding differs from Editor receipt
  • EM4216: built-in authoring marker differs from Editor receipt
  • EM4216: built-in authoring module SHA-256 differs from Editor receipt
  • EM4216: invalid source binding:
EM4251SDK 公共设置、桥接或覆盖路径无效5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4251: invalid exported override path
  • EM4251: invalid game bridge pipe name
  • EM4251: invalid game bridge protocol version
  • EM4251: invalid public {key}
  • EM4251: invalid {key}
EM4260SDK 创作能力声明无效或适配不匹配3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4260: SDK capability does not match the selected Editor adapter:
  • EM4260: invalid SDK authoring capability list
  • EM4260: unknown or duplicate SDK authoring capability
EM4261编辑器缺少创作能力所需模块或插件4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4261: Editor adapter lacks authoring capabilities
  • EM4261: Mod Editor lacks module {module} required by capability {entry['id']}
  • EM4261: Mod Editor lacks plugin {plugin} required by capability {entry['id']}
  • EM4261: unknown Editor authoring capability
EM4262所需 Runtime 模块或能力列表无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4262: invalid required Runtime module list
  • EM4262: invalid required capability list
EM4263SDK 未提供 Mod 所需模块或能力2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4263: SDK does not declare Runtime modules:
  • EM4263: game SDK does not support required capabilities:
EM4264编辑器模块 BuildId 或二进制清单不一致4 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:确认 SDK、插件、编辑器都是目标 UE 系列及其真实配套构建。原生模块 BuildId 不符时重新安装匹配发行或由开发者重编、导出;不能仅修改 BuildId 字符串或复制另一版本 DLL。

原始日志模板(以实际完整文字为准)
  • EM4264: Editor BuildId missing
  • EM4264: Editor module BuildId mismatch:
  • EM4264: invalid Editor module binary:
  • EM4264: module list missing:
EM4270依赖版本范围不是有效数字语义版本5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4270: invalid dependency version range
  • EM4270: invalid installed Mod version
  • EM4270: missing/excessive range terms
  • EM4270: too many version alternatives
  • EM4270: use numeric x.y.z range bounds
EM4271冲突或可选依赖声明格式无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4271: conflicts require manifest v9
  • EM4271: invalid optional dependency flag
EM4272网络复制描述缺失或摘要不符3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4272: incomplete v9 network metadata; re-export this Mod
  • EM4272: invalid replication schema
  • EM4272: replication digest differs
EM4275地图族重叠、不完整或未获场景编辑授权6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4275: duplicate map family
  • EM4275: invalid map override groups
  • EM4275: invalid, overlapping or undeclared map family
  • EM4275: map families overlap; export one complete connected family
  • EM4275: map scene edit permission is not granted:
  • EM4275: only external source packages of a selected editable map may be deleted
EM4276宿主事件或地图元数据无效2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4276: invalid used host event
  • EM4276: missing v10 event or map metadata
EM4280真实 Game 构建能力证据缺失或不匹配12 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4280: an actual Game capability proof is required
  • EM4280: capability probe does not match this game SDK
  • EM4280: capability proof belongs to a different public Contract
  • EM4280: export a Game build probe before updating the SDK; Server is optional
  • EM4280: incomplete plugin build evidence
  • EM4280: invalid capability proof
  • EM4280: invalid or duplicate capability proof target
  • EM4280: invalid or duplicate probe
  • EM4280: invalid plugin version/descriptor proof
  • EM4280: invalid probe
  • EM4280: invalid proof
  • EM4280: v11 requires an actual Game capability proof; Server is optional
EM4281构建证据缺少所需 Runtime 模块或插件1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4281: {Target} proof lacks required Runtime modules or plugins
EM4282异步执行补丁元数据缺失或归属错误5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用当前 UE 系列的完整安装,核对回执、模块和资源;能力不足由开发者补齐游戏模块并更新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4282: duplicate async execution patch
  • EM4282: missing or invalid async execution metadata
  • EM4282: new execution and proof metadata requires manifest v11
  • EM4282: undeclared or foreign async execution patch
  • EM4282: v11 runtime cannot contain editable source

EM43xx · SDK 加载、导出与离线测试

核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

EM4300未选择有效单文件 SDK 或本地版本信息缺失12 条诊断

出现位置:Authoring / developer editor · Game runtime · EasyModTool · Launcher / updater · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4300: Local SDK, Contract or editor version information is missing. Reopen the Mod.
  • EM4300: SDK exceeds the size limit
  • EM4300: SDK output must be a single .emsdk file
  • EM4300: SDK staging requires a new .emsdk file
  • EM4300: Select a .emsdk file. UE project SDK loading has been removed.
  • EM4300: native validation timeout must be between 30 and 3600 seconds
  • EM4300: select a single .emsdk file
  • EM4300: select an existing .emsdk file; UE SDK project directories are no longer supported
  • EM4300: unknown SDK validation mode
  • EM4300: unknown native validation mode
  • EM4300: 请选择 .emsdk 文件。已移除 UE project SDK 加载。
  • EM4300: 请选择游戏 .emsdk 文件
EM4301SDK 描述头、身份或格式无效10 条诊断

出现位置:Game runtime · Launcher / updater · EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4301: SDK must begin with a stored sdk.json descriptor
  • EM4301: SDK must begin with sdk.json
  • EM4301: SDK 描述不完整
  • EM4301: SDK 格式不正确
  • EM4301: invalid SDK descriptor header
  • EM4301: invalid SDK format or identity
  • EM4301: invalid SDK identity or format
  • EM4301: unreadable SDK:
  • EM4301: unsupported SDK format
  • EM4301: 缺少 sdk.json
EM4302SDK 与编辑器的版本、模块或 BuildId 不符14 条诊断

出现位置:Authoring / developer editor · EasyModTool · Game runtime · 此编号链接

如何处理:确认 SDK、插件、编辑器都是目标 UE 系列及其真实配套构建。原生模块 BuildId 不符时重新安装匹配发行或由开发者重编、导出;不能仅修改 BuildId 字符串或复制另一版本 DLL。

原始日志模板(以实际完整文字为准)
  • EM4302: SDK Editor BuildId missing
  • EM4302: SDK and Editor BuildId differ; select the matching Editor
  • EM4302: SDK and builtin Editor BuildId differ; export the matching SDK
  • EM4302: SDK and selected Editor UE series differ
  • EM4302: SDK authoring modules differ from the selected Editor; re-export the SDK
  • EM4302: SDK verification context differs from the selected Editor
  • EM4302: common Editor module BuildId differs:
  • EM4302: developer plugin and engine BuildId differ
  • EM4302: native SDK requires Editor BuildId {meta['editorBuildId']}, selected {editor_id}
  • EM4302: select the matching Mod Editor before exporting
  • EM4302: selected Editor receipt has no BuildId
  • EM4302: this legacy Editor requires the SDK publisher's BuildId; update the Mod Editor
  • EM4302: update the Mod Editor to read this SDK format
  • EM4302: 推荐 Mod 编辑器与 SDK 所选安装版本不一致;请安装并选择该发行,或清空推荐后重新导出。
EM4303SDK 文件索引、路径或公共设置无效13 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4303: SDK file index differs from archive
  • EM4303: SDK materialization metadata missing
  • EM4303: SDK payload exceeds supported limits
  • EM4303: duplicate materialized asset path
  • EM4303: game SDK cannot replace the common Editor plugin
  • EM4303: invalid SDK asset index
  • EM4303: invalid SDK file record:
  • EM4303: invalid SDK metadata
  • EM4303: invalid SDK payload path:
  • EM4303: invalid asset destination
  • EM4303: invalid public settings
  • EM4303: missing or oversized SDK API
  • EM4303: missing or oversized SDK metadata:
EM4304SDK 在准备、缓存或验证过程中变化11 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4304: SDK cache resource or module changed:
  • EM4304: SDK changed during native validation
  • EM4304: SDK changed during preparation; retry
  • EM4304: SDK file changed:
  • EM4304: SDK metadata changed during preparation
  • EM4304: SDK payload changed during compression:
  • EM4304: SDK validation belongs to another file
  • EM4304: SDK validation no longer matches its cache
  • EM4304: cached SDK entry differs
  • EM4304: cached SDK entry is truncated
  • EM4304: staged SDK changed after verification
EM4305SDK、游戏或导出验证基线不一致74 条诊断

出现位置:Authoring / developer editor · EasyModTool · Game runtime · 此编号链接

如何处理:按具体消息区分游戏配置不匹配与 SDK 导出基线问题。作者获取当前游戏对应的新 SDK;开发者保存公开规则并重新导出。若仍为验证输出/基线错误,保留该阶段日志给维护者;不要修改指纹绕过。

原始日志模板(以实际完整文字为准)
  • EM4305: Editor baseline changes event declarations or permissions
  • EM4305: Editor baseline changes graph declarations or permissions
  • EM4305: Editor baseline changes shared node ownership
  • EM4305: GUI SDK export currently requires Win64
  • EM4305: GUI baseline SDK must be pristine
  • EM4305: GUI baseline identity differs from the pristine SDK
  • EM4305: GUI baseline output must be fresh
  • EM4305: GUI baseline policy directory must be pristine
  • EM4305: GUI export executable or project changed
  • EM4305: GUI export file missing:
  • EM4305: GUI export identity or output inventory missing
  • EM4305: GUI export native
  • EM4305: GUI export native identity differs from its output metadata
  • EM4305: GUI export native receipt or context invalid; see
  • EM4305: GUI export output bytes or path differs:
  • EM4305: GUI export output collision
  • EM4305: GUI export output inventory differs
  • EM4305: GUI export output record invalid
  • EM4305: GUI export policy directory contains unsafe output
  • EM4305: GUI export policy directory missing
  • EM4305: GUI export policy index missing
  • EM4305: GUI export process failed
  • EM4305: GUI export process failed; see
  • EM4305: GUI export report directory must be fresh:
  • EM4305: GUI export requires regular paths:
  • EM4305: GUI export requires the native Editor executable and a project
  • EM4305: SDK Contract cannot load
  • EM4305: SDK Contract differs from this game; export the matching SDK
  • EM4305: SDK Editor baseline changes a Contract declaration
  • EM4305: SDK Editor baseline changes an event declaration
  • EM4305: SDK Editor baseline changes shared event ownership
  • EM4305: SDK Editor baseline has no Contract policy
  • EM4305: SDK descriptor and public Contract differ
  • EM4305: SDK event declaration changed:
  • EM4305: SDK game identity differs from this game
  • EM4305: SDK graph declaration changed:
  • EM4305: SDK policy baseline output missing
  • EM4305: SDK shared event declaration changed
  • EM4305: The game's generated Mod configuration could not be loaded. Export the game SDK again from Mod Settings.
  • EM4305: The local SDK, Contract and current Mod editor do not match. Use a matching SDK.
  • EM4305: automatic SDK policy can grant editing permissions or changes its declaration
  • EM4305: automatic SDK policy exceeds size limit
  • EM4305: automatic SDK policy index binding differs
  • EM4305: automatic SDK policy index destination differs
  • EM4305: automatic SDK policy payload differs
  • EM4305: automatic SDK policy source binding differs
  • EM4305: automatic SDK policy source differs from SDK payload
  • EM4305: automatic SDK policy sources missing
  • EM4305: duplicate GUI export output paths
  • EM4305: game Contract missing
  • EM4305: incomplete SDK Editor baselines
  • EM4305: incomplete automatic SDK policy index
  • EM4305: incomplete event baselines
  • EM4305: incomplete graph baselines
  • EM4305: incomplete shared node baselines
  • EM4305: internal SDK Contract changed
  • EM4305: invalid GUI export operation
  • EM4305: invalid GUI export options
  • EM4305: invalid SDK Editor baseline policy
  • EM4305: invalid automatic SDK policy binding
  • EM4305: invalid automatic SDK policy record
  • EM4305: invalid public Contract API revision
  • EM4305: native SDK export timed out after
  • EM4305: original SDK graphs could not be bound to this Editor; see
  • EM4305: publisher baseline SDK must be pristine
  • EM4305: publisher baseline SDK, engine or project plugin changed
  • EM4305: publisher baseline engine or project plugin differs
  • EM4305: publisher baseline identity differs from the pristine SDK
  • EM4305: publisher baseline plugin module map differs
  • EM4305: selected Editor lacks SDK read-only baseline export; update the Mod Editor
  • EM4305: unsafe SDK policy baseline output
  • EM4305: unsafe automatic SDK policy source
  • EM4305: unsafe publisher plugin module path
  • EM4305: workspace Contract differs from the original SDK
EM4306编辑器 UE 或 SDK 离线环境配置不匹配7 条诊断

出现位置:Game runtime · Authoring / developer editor · EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4306: Install the Mod Editor for this game's Unreal Engine version.
  • EM4306: SDK, game and Editor engine requirements differ
  • EM4306: incomplete offline test configuration
  • EM4306: invalid SDK runtime capability
  • EM4306: invalid offline runtime capability
  • EM4306: offline SDK has no default test profile
  • EM4306: offline test profiles differ from the SDK runtime capability
EM4307SDK 未通过声明的验证模式3 条诊断

出现位置:Game runtime · Launcher / updater · EasyModTool · 此编号链接

如何处理:此码不一定表示必须执行所有测试;它表示 SDK 未满足自己声明的验证模式。开发者检查导出结果,必要时先 Export SDK,再选择 Run Full SDK Validation,成功后交付。

原始日志模板(以实际完整文字为准)
  • EM4307: SDK has not passed its declared validation mode
  • EM4307: SDK offline tests have not passed
  • EM4307: SDK 尚未通过 SDK 测试
EM4308编辑器模板、内置创作模块或资源清单不符24 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:通过官方/游戏提供的安装更新入口修复完整配套发行。检查缺失的工具、模块或资源;不能只复制一个 EXE/DLL,也不要把另一 UE 系列文件混入安装。保留 SDK、Mod 和用户配置。

原始日志模板(以实际完整文字为准)
  • EM4308: Editor authoring template missing; repair the Mod Editor
  • EM4308: GUI baseline author modules or receipt changed
  • EM4308: GUI baseline exporter lacks matching built-in author modules and receipt
  • EM4308: SDK authoring layout identity mismatch
  • EM4308: SDK built-in authoring layout differs from selected Editor
  • EM4308: SDK built-in authoring module identity missing or changed
  • EM4308: SDK built-in module identity missing or changed
  • EM4308: SDK cache is incomplete; preserve it and use a fresh cache
  • EM4308: built-in authoring BuildId missing
  • EM4308: built-in authoring SDK contains a developer plugin
  • EM4308: built-in authoring module missing:
  • EM4308: built-in authoring resource manifest differs
  • EM4308: built-in authoring resource missing or changed:
  • EM4308: built-in authoring template missing
  • EM4308: installed Editor differs from its own distribution receipt
  • EM4308: invalid built-in authoring resource SHA:
  • EM4308: native SDK authoring modules differ from selected Editor
  • EM4308: publisher plugin module map missing
  • EM4308: publisher validation file missing:
  • EM4308: publisher validation must use its actual game plugin and engine
  • EM4308: select the complete Mod Editor for SDK offline validation
  • EM4308: unsafe publisher plugin module path
  • EM4308: unsupported SDK built-in authoring layout
  • EM4308: unsupported built-in authoring layout
EM4309开发者引擎或离线测试配置无效15 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4309: GUI publisher Contract engine differs from the selected engine
  • EM4309: SDK test dependency collection failed
  • EM4309: actual developer Editor engine version differs from Build.version; see
  • EM4309: configure offline automation tests before enabling SDK offline runtime
  • EM4309: default offline test profile does not exist
  • EM4309: developer engine Build.version differs from the compiled Contract; regenerate the Contract with this actual engine
  • EM4309: developer engine must declare a real supported UE 5.0-5.8 Build.version including changelist and branch
  • EM4309: developer engine must use regular paths:
  • EM4309: developer engine requires Engine/Build/Build.version and UnrealEditor-Cmd.exe
  • EM4309: invalid offline automation test name
  • EM4309: matching developer engine required; select --developer-engine or a registered project engine
  • EM4309: offline GameInstance is missing
  • EM4309: offline profile requires a unique Id and a permitted entry map
  • EM4309: profile id basic is reserved for the Basic template
  • EM4309: selected offline test profile is missing
EM4310SDK 离线 PIE 验证失败或未开放预览7 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:“does not provide offline preview”表示 SDK 没有开放离线环境,可继续编辑/导出并在真实游戏测试。若 SDK 已声明预览但 PIE 失败/超时,由开发者修复测试地图、GameMode、GameInstance、依赖和首条编译错误后导出。

原始日志模板(以实际完整文字为准)
  • EM4310: SDK offline PIE failed; SDK was not published; see
  • EM4310: offline PIE did not complete; see
  • EM4310: offline testing changed SDK assets or modules:
  • EM4310: offline validation Mod could not be created
  • EM4310: offline world or Contract missing
  • EM4310: required SDK offline PIE validation timed out after
  • EM4310: this SDK does not provide offline preview
EM4311SDK、离线环境或编辑器依赖缺失24 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4311: Editor plugin dependency missing:
  • EM4311: SDK baseline cannot load:
  • EM4311: SDK dependency cannot load:
  • EM4311: SDK runtime dependency cannot load:
  • EM4311: SDK runtime dependency snapshot failed:
  • EM4311: approve the native modules required by offline test profiles:
  • EM4311: common Editor resource bytes differ:
  • EM4311: common Editor resource file set differs:
  • EM4311: common Editor resource payload missing:
  • EM4311: duplicate Editor plugin:
  • EM4311: dynamic SDK dependency missing:
  • EM4311: missing common Editor resource:
  • EM4311: offline GameInstance cannot load
  • EM4311: offline GameMode cannot load
  • EM4311: offline GameMode missing for
  • EM4311: offline dependency graph exceeds limit
  • EM4311: offline dependency missing:
  • EM4311: offline map missing:
  • EM4311: offline profile map, GameMode or GameInstance cannot load:
  • EM4311: project plugin conflicts with common Editor resource:
  • EM4311: public SDK class cannot load:
  • EM4311: publisher common resource provider missing or ambiguous:
  • EM4311: test dependency requires an explicitly approved plugin:
  • EM4311: unknown common Editor resource provider:
EM4312SDK 发布命令、回执或输出身份验证失败36 条诊断

出现位置:Authoring / developer editor · EasyModTool · Game runtime · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4312: ApproveChanges is an explicit bare publisher-only flag
  • EM4312: DescribeSDKBaselines requires EasyModAuthorBaselines
  • EM4312: GUI baseline output must be independent from SDK source/policy inputs and receipt
  • EM4312: GUI export cannot authenticate output:
  • EM4312: GUI export flag is not valid for this project
  • EM4312: GUI export nonce must be 32 lowercase hexadecimal digits
  • EM4312: GUI export receipt serialization failed
  • EM4312: GUI export refuses an unsafe project or Mod workspace
  • EM4312: GUI export rejects mixed editor/workspace/commandlet arguments:
  • EM4312: GUI export requires a fresh absolute regular JSON output with an existing parent:
  • EM4312: GUI export requires one dedicated flag, unique nonce and fresh receipt
  • EM4312: GUI export requires the native editor game thread outside commandlet mode
  • EM4312: GUI output/receipt may not replace SDK or project source inputs:
  • EM4312: SDK test collection is a dedicated publisher-only flag
  • EM4312: SDK test configuration belongs to the publisher batch
  • EM4312: builtin authoring module SHA-256 mismatch:
  • EM4312: builtin authoring module binding differs:
  • EM4312: builtin authoring module binding is missing; export the matching SDK
  • EM4312: builtin authoring redirects could not be registered
  • EM4312: builtin authoring resource SHA-256 mismatch:
  • EM4312: builtin authoring resource hash is missing:
  • EM4312: builtin authoring resource hashes are missing
  • EM4312: configuration is unavailable for authoring redirects
  • EM4312: current map is not permitted for offline running:
  • EM4312: invalid builtin authoring SHA-256:
  • EM4312: invalid builtin authoring layout; repair the Mod Editor
  • EM4312: invalid builtin authoring module SHA-256:
  • EM4312: invalid builtin authoring module list
  • EM4312: invalid builtin authoring resource hash:
  • EM4312: missing GUI Contract output:
  • EM4312: missing or unsafe builtin authoring module:
  • EM4312: missing or unsafe builtin authoring resource:
  • EM4312: publisher GUI export uses the core Contract output paths
  • EM4312: publisher baseline export requires a pristine pending SDK and fresh policy outputs
  • EM4312: publisher baseline export requires the game project plugin
  • EM4312: publisher validation is a dedicated pristine SDK baseline flag
EM4313SDK 发布快照、依赖或只读基线准备失败23 条诊断

出现位置:Authoring / developer editor · EasyModTool · 此编号链接

如何处理:按完整诊断检查对应资源、字段、缓存文件或发布快照。保存工程再导出;只读资源基线无法生成时由开发者修复资源/依赖或将日志提交维护者。保留旧 SDK,不删除作者作品,也不关闭权限检查作为处理办法。

原始日志模板(以实际完整文字为准)
  • EM4313: SDK dependency policy is unavailable or is being replaced
  • EM4313: SDK dependency snapshot failed:
  • EM4313: SDK read-only baseline
  • EM4313: SDK serializer module is unavailable:
  • EM4313: cached SDK copy changed
  • EM4313: cached SDK lacks validation
  • EM4313: invalid publisher snapshot file record
  • EM4313: invalid publisher source path
  • EM4313: linked publisher input cannot be cached:
  • EM4313: no loose source files for SDK resource:
  • EM4313: prepared publisher Contract differs
  • EM4313: prepared publisher data requires the developer engine
  • EM4313: prepared resource identity differs from this SDK
  • EM4313: publisher dependency graph exceeds limit
  • EM4313: publisher input changed during export; save and export again:
  • EM4313: publisher preparation requires a fresh managed directory
  • EM4313: publisher preparation requires the Contract and dependency batch
  • EM4313: publisher snapshot inventory is incomplete
  • EM4313: publisher snapshot must belong to this project's managed export directory
  • EM4313: publisher snapshot project or engine differs
  • EM4313: publisher snapshot receipt changed
  • EM4313: publisher source missing:
  • EM4313: unsafe publisher snapshot output
EM4314SDK 临时目录身份发生变化2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:核对同一游戏的单文件 .emsdk、UE 系列及编辑器发行。导出/离线测试失败由开发者按具体阶段修复并交付新 SDK。

原始日志模板(以实际完整文字为准)
  • EM4314: SDK temporary directory identity changed
  • EM4314: unexpected SDK temporary directory

EM44xx · 在线资源与游戏附带内容

检查官方/开发者提供的服务地址、网络、签名公钥及资源状态;随游戏分发检查两个 Bundle 选项和本地准备的组件。

EM4450资源服务、公钥或推荐引用配置无效6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查官方/开发者提供的服务地址、网络、签名公钥及资源状态;随游戏分发检查两个 Bundle 选项和本地准备的组件。

原始日志模板(以实际完整文字为准)
  • EM4450: invalid or duplicate resource SourceId
  • EM4450: invalid recommended plugin reference
  • EM4450: recommended plugin source is disabled or missing
  • EM4450: resource API must use HTTPS
  • EM4450: resource API requires a raw Ed25519 public key
  • EM4450: 游戏开发插件不能加入作者推荐或 SDK:
EM4451资源下载、迁移或归档校验失败1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留开发者提供的可信服务地址与验签公钥,检查网络/代理并重新检查更新。哈希不符时重新获取归档;持续签名或目录异常由服务维护者修复。不要关闭签名验证。

原始日志模板(以实际完整文字为准)
  • EM4451: Resource archive SHA-256 mismatch; retry downloads a fresh archive
EM4452资源服务签名验证失败1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留开发者提供的可信服务地址与验签公钥,检查网络/代理并重新检查更新。哈希不符时重新获取归档;持续签名或目录异常由服务维护者修复。不要关闭签名验证。

原始日志模板(以实际完整文字为准)
  • EM4452: Resource signature verification failed
EM4453资源服务地址迁移链过长1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查官方/开发者提供的服务地址、网络、签名公钥及资源状态;随游戏分发检查两个 Bundle 选项和本地准备的组件。

原始日志模板(以实际完整文字为准)
  • EM4453: API migration chain is too long
EM4454所选资源版本已不再发布1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查官方/开发者提供的服务地址、网络、签名公钥及资源状态;随游戏分发检查两个 Bundle 选项和本地准备的组件。

原始日志模板(以实际完整文字为准)
  • EM4454: The selected resource version is no longer published
EM4455资源服务连接中断2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留开发者提供的可信服务地址与验签公钥,检查网络/代理并重新检查更新。哈希不符时重新获取归档;持续签名或目录异常由服务维护者修复。不要关闭签名验证。

原始日志模板(以实际完整文字为准)
  • EM4455: Resource service connection interrupted; check the network or proxy and retry Check for updates.
  • EM4455: 资源服务连接中断,请检查网络或代理后点击“检查更新”。
EM4460仅预览计划时不能修改回执或输出1 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:检查官方/开发者提供的服务地址、网络、签名公钥及资源状态;随游戏分发检查两个 Bundle 选项和本地准备的组件。

原始日志模板(以实际完整文字为准)
  • EM4460: --plan-only cannot change receipts or packaged output
EM4470游戏附带 SDK、编辑器或宿主打包校验失败38 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:开发者检查 Project Settings → Game → EasyMod → Game Packaging 的 Bundle Mod Editor with Game 和 Bundle SDK with Game。开启的组件必须实际准备好;单独分发时关闭对应选项,再按具体消息修复路径或完整性。

原始日志模板(以实际完整文字为准)
  • EM4470: SDK and selected Mod Editor BuildId differ; export a matching SDK
  • EM4470: SDK differs from the game's current Contract; export it again
  • EM4470: bundle destination is the source project
  • EM4470: bundle file changed while copying
  • EM4470: bundle input changed after validation
  • EM4470: bundle output path is occupied by a directory
  • EM4470: bundle path escapes its project/output
  • EM4470: bundle paths may not contain symbolic links or junctions
  • EM4470: bundle plan belongs to a different project
  • EM4470: choose an installed version below the project's EasyModEditor directory
  • EM4470: conflicting original custom configs
  • EM4470: custom ini exceeds size limit
  • EM4470: duplicate bundle filename
  • EM4470: editor INI staging requires a case-insensitive Windows installation directory
  • EM4470: editor directory cannot be represented in staging ini
  • EM4470: editor game bundling requires a supported UE 5.0-5.8 Win64 series
  • EM4470: invalid bundling boolean
  • EM4470: invalid expected bundle hash
  • EM4470: invalid owned staging config property
  • EM4470: invalid previous bundle ownership manifest
  • EM4470: invalid staging ownership files
  • EM4470: invalid staging ownership hash algorithm
  • EM4470: invalid target receipt dependencies
  • EM4470: invalid target receipt properties
  • EM4470: output preparation requires a validated bundle plan
  • EM4470: preserve modified staging ownership marker
  • EM4470: preserve unowned generated staging directory
  • EM4470: previous ownership manifest contains a non-bundle file
  • EM4470: project name cannot be represented in staging ini
  • EM4470: receipt sync requires a validated bundle plan
  • EM4470: restricted original CustomConfig requires explicit developer staging configuration
  • EM4470: selected Mod Editor does not target a supported Win64 engine series
  • EM4470: selected Mod Editor has no BuildId
  • EM4470: selected Mod Editor targets a different game engine series
  • EM4470: staging requires a validated bundle plan
  • EM4470: unsafe or reserved original custom config
  • EM4470: unsafe project-relative bundle path
  • EM4470: unsafe staging ownership entry

EM45xx · 本地化收集与译文工具

使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

EM4500SDK 未公开游戏文本或本地化目录不可用5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:要翻译游戏:开发者开启 Publish Localization Text,选择 Target 和可收集语言并重新导出 SDK,作者重新选择新文件。要翻译自己的内容:切换 Mod texts 并收集,不需要游戏先公开文本。

原始日志模板(以实际完整文字为准)
  • EM4500: SDK contains text in a non-public localization culture
  • EM4500: cannot find the original .emsdk; provide --sdk for complete translation validation
  • EM4500: invalid SDK localization culture permissions
  • EM4500: this SDK has no public localized texts; ask the game developer to re-export the SDK
  • EM4500: unsupported SDK localization format; re-export the SDK
EM4501译文语言名称不符合 BCP471 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4501: invalid translation culture; use a BCP47 name such as zh-Hans or en-US
EM4502SDK 公开文本身份、Unicode 或原文哈希无效5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4502: SDK public localized text count exceeds the limit
  • EM4502: duplicate localized text or sourceHash differs from its UTF-8 source
  • EM4502: invalid SDK localized text record
  • EM4502: invalid localized text
  • EM4502: localized text must contain valid Unicode
EM4503译文描述、默认语言与源文件不一致12 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4503: default culture must name a declared localization patch
  • EM4503: duplicate culture or unsafe localization payload path
  • EM4503: invalid localization patch list
  • EM4503: localization patch requires only culture and payloadPath
  • EM4503: published translation bytes differ from the editable source
  • EM4503: runtime translation descriptor differs from source
  • EM4503: source translation descriptor mismatch
  • EM4503: source translation files differ from localizationPatches
  • EM4503: translation source and descriptor differ
  • EM4503: translation source and export template differ
  • EM4503: unsupported modType
  • EM4503: workspace translation files differ from localizationPatches
EM4504纯翻译 Mod 缺少译文或包含玩法内容9 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4504: add a language in the editor's Localization panel before exporting this translation Mod
  • EM4504: pure translation source cannot contain assets
  • EM4504: pure translation workspace cannot contain assets
  • EM4504: select the matching translation Mod
  • EM4504: translation Mod cannot contain runtime capability proofs
  • EM4504: translation Mods cannot claim host asset usage
  • EM4504: translation Mods cannot contain Blueprint, content, override or execution payloads
  • EM4504: translation Mods cannot declare replicated types
  • EM4504: translation catalog cannot contain Blueprint types
EM4505译文负载格式、身份数量或语言不符6 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4505: duplicate translation namespace/key
  • EM4505: payload culture differs from descriptor
  • EM4505: too many translation entries
  • EM4505: translation entry must contain namespace, key, source and translation
  • EM4505: translation payload exceeds 16 MiB
  • EM4505: unsupported translation payload
EM4506翻译了未公开、已变化或其他 Mod 的文本3 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留译文草稿,核对当前 Mod 命名空间、SDK 文本身份和原文哈希;换 SDK 后重新收集/匹配。不能把另一 Mod 的命名空间或已变化的游戏原文当作当前来源。

原始日志模板(以实际完整文字为准)
  • EM4506: translation namespace/key is not public in this SDK
  • EM4506: translation targets a private, unknown or changed SDK source text
  • EM4506: translation targets another Mod's text namespace
EM4507译文使用的 SDK 配置或原文身份已变化2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:保留译文草稿,核对当前 Mod 命名空间、SDK 文本身份和原文哈希;换 SDK 后重新收集/匹配。不能把另一 Mod 的命名空间或已变化的游戏原文当作当前来源。

原始日志模板(以实际完整文字为准)
  • EM4507: translation Mod and SDK Contract differ; do not apply translations to changed source text
  • EM4507: translation workspace descriptors differ from the source Contract
EM4508译文导入导出路径或工作区参数无效5 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4508: export to a translation .json file outside workspace configuration
  • EM4508: provide --mod-project
  • EM4508: provide --translation or --remove
  • EM4508: select a translation-capable .umod workspace
  • EM4508: unsafe translation build stage
EM4509纯翻译 Mod 只支持公开 .umod2 条诊断

出现位置:EasyModTool · 此编号链接

如何处理:该限制针对纯翻译 Mod:使用公开 .umod。普通内容 Mod 可以随私有 .emod 带可读、签名及哈希绑定的译文元数据;资产 Pak 仍加密,不公开 Blueprint 源码。

原始日志模板(以实际完整文字为准)
  • EM4509: translation Mods currently require public .umod publication; private JSON encryption is unavailable
  • EM4509: translation Mods support public .umod only; private JSON encryption is unavailable
EM4510本地化来源、资源缓存或收集文件无效25 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用有效 Text、正确语言及当前 SDK 的公开文本或本 Mod 自有文本,按当前工作区保存译文并重新导出。

原始日志模板(以实际完整文字为准)
  • EM4510: cannot load localization package with missing or obsolete cache:
  • EM4510: cannot read localization package header:
  • EM4510: invalid localization JSON:
  • EM4510: invalid localization archive
  • EM4510: invalid localization manifest tree
  • EM4510: invalid localization package header:
  • EM4510: localization JSON missing or exceeds size limit:
  • EM4510: localization archive entry is missing Key, Source.Text or Translation.Text
  • EM4510: localization archive text exceeds the limit
  • EM4510: localization archives disagree for
  • EM4510: localization cache has a count but no offset:
  • EM4510: localization cache is corrupt or exceeds its bounds:
  • EM4510: localization cache is outside the package header:
  • EM4510: localization manifest entry has no Key
  • EM4510: localization manifest entry has no Source.Text or Keys
  • EM4510: localization native culture changed while collecting
  • EM4510: localization package changed while gathering:
  • EM4510: localization package file is missing:
  • EM4510: localized text has conflicting sources: %s / %s. Regenerate the project's localization manifest.
  • EM4510: more than 64 published localization cultures
  • EM4510: more than 65536 public localized texts
  • EM4510: published localization exceeds the supported text count or length
  • EM4510: save the loaded package before publishing its localization texts:
  • EM4510: save the partially loaded package before publishing its localization texts:
  • EM4510: text visibility rules require unique Namespace / Key identities
EM4512Unreal PO 文件身份、格式或读写失败5 条诊断

出现位置:Authoring / developer editor · 此编号链接

如何处理:使用 Unreal 身份格式的 PO,保留 msgctxt 中的 Namespace/Key、msgid、占位符和原文;检查重复身份及文件编码。修复后再导入,不用普通文本替换破坏身份字段。

原始日志模板(以实际完整文字为准)
  • EM4512: PO must use Unreal text identities and a single msgstr
  • EM4512: cannot read translation PO:
  • EM4512: cannot write translation PO
  • EM4512: duplicate PO text identity
  • EM4512: too many PO entries

范围对照当前插件、命令行工具和配套 UE 5.0 原生编辑器源码,排除测试及仅用于识别旧错误的引用。原始消息可能动态拼接;具体路径、字段和后续原因不可忽略。新发行或第三方插件的编号应以其实际日志和维护者说明为准。

常见问题与发行检查

看到 EM 编号时先打开错误码速查:支持编号搜索,并说明日志含义和处理办法。EM3703 是汇总,继续查看阶段日志中的首条具体错误。

现象先检查处理方式
没有 Mod settings 按钮插件是否启用、当前是否游戏开发者工程、引擎版本是否匹配。重新打开匹配工程,从 Tools → EasyMod Developer 检查入口。
编辑器看不到插件 UI 资源Show Plugin Content 和当前内容目录。打开 EasyMod Content / EasyMod / UI。
添加了 Blueprint,作者仍不能选作父类是否只开放引用、是否允许继承、类是否具备真实 Blueprintable 能力。修正具体类权限,重新导出 SDK。
函数可以调用但不能重写调用与重写权限、原实现编辑、UE 事件/函数能力。分别批准需要的能力,不把 Callable 当作可重写保证。
地图能开但不能修改场景或 GameMode地图场景、World Settings、Level Blueprint 是独立权限。逐层开放需要的字段和事件;重新导出 SDK。
Export SDK 失败进度窗口与 Saved/Logs 中的首个实际错误。修复未保存/未编译资产、缺失依赖、离线测试环境、模块或构建证据,再导出。
找不到 EasyModSDK.emsdk是否已使用当前版本默认文件名。查看工程根目录的 <GameProjectName>.emsdk 与导出成功路径。
源码已改,游戏效果没变是否只保存而未重新导出,是否仍启用另一变体,目标内容是否已加载。重新 Build and export,确认包和选中变体,再冷启动验证。
Load Mods 返回 true 但内容未就绪异步进度、被拒绝的 Mod、入口状态。等待对应事件并检查错误,不直接开始依赖 Mod 的玩法。
本地正常,联机不同步实际地图 GameMode、Automatic Mod Session Sync、同步 TCP 端口。检查适配、网络可达性和准备后的连接 URL;使用独立进程测试。
需要重启才能改变 Mod 集合已有包/地图是否驻留。遵循安全菜单和恢复流程,不强制卸载正在引用的资源。
打包因缺少编辑器或 SDK 停止Game Packaging 中两个 Bundle 选项及选择的安装版。准备开启的组件,或关闭本次不随游戏附带的组件并另行分发。

每次发行至少检查这些结果

  1. 新安装工程能正常打开,公开内容和权限与设计一致。
  2. 使用实际交付的 SDK 和 Mod Editor 创建、编译、保存和导出一个 Mod。
  3. 打包游戏冷启动:无 Mod、公开 Mod、私有 Mod(如果支持)均按预期运行。
  4. 启停、排序、依赖、冲突和需要重启等状态有正确 UI 反馈。
  5. 开放地图和资源在真正加载目标内容之前准备完成。
  6. 联机项目额外测试服务器改集、缺包、版本冲突、缓存/续传、离服和重启恢复。
  7. SDK、编辑器与公开下载目录不包含游戏私钥、宿主专用密钥模块或未批准的游戏内容。

反馈问题时提供 UE 版本、EasyMod 版本、游戏开发者/作者/玩家身份、操作步骤、首个错误和相关日志片段。不要附上游戏私钥、登录凭据或整个含机密内容的工程。