incognitofelix/pal-mod-toolkit

GitHub: incognitofelix/pal-mod-toolkit

面向 Palworld 模组开发者的 UE4SS C++ 游戏内逆向工程工具包,通过控制台命令实时探查 Actor、反射信息和原生调用链。

Stars: 0 | Forks: 0

# PalModToolkit 一个面向 Palworld 模组开发者的**小型游戏内工具包**,它被构建为一个单独的 [UE4SS](https://github.com/UE4SS-RE/RE-UE4SS) C++ mod。它是**控制台驱动**的:输入 `pmt ` 即可将信息打印到 UE4SS 日志中——在进行游戏逆向工程时非常实用。 ## 使用说明 该工具包在 UE4SS 调试窗口(通过 `UE4SS-settings.ini` 中的 `GuiConsoleEnabled` 启用)中添加了一个 **`PalModToolkit` 选项卡**。打开该窗口,选择此选项卡,在输入框中输入 命令并按回车键。输出结果将显示在 UE4SS 日志中。 输入 `pmt help` 列出所有内容。命令列表: | 命令 | 作用 | |---------|--------------| | `pmt help` | 列出所有命令。 | | `pmt loc` | 打印执行命令玩家的世界坐标 (X/Y/Z, cm)。 | | `pmt actors [meters]` | 列出指定半径(默认为 50 m)内的所有 Actor —— 包含距离 + 类/路径。详情 → UE4SS.log。 | | `pmt recon ...` | 对给定的类进行反射转储(属性 + 函数,遍历原生父类链)并输出到日志中,同时标记关键字 `HIT`。单独的名称会解析为 `/Script/Pal.`。 | | `pmt capture` | 开关命令。开启时,会记录每一次 worker/assignment 的函数调用(包含参数值)——例如在分配 Pal 时——以揭示原生调用链。 | | `pmt works` | 列出你附近带有世界坐标的据点工作对象。 | | `pmt defaultpos` | 将所有 worker Pal 发送到其默认位置(诊断用)。 | | `pmt assign` | 将据点中的第一个 Pal 传送到你身边,并进行固定分配(原生的“V-drop”后端)。 | 位置/距离命令会解析**输入命令的玩家**(控制台执行者 / 聊天发送者),因此它们在多人游戏和服务器上也能正常工作。 ## 架构 采用单 DLL 设计,内部模块化。核心部分 (`src/PalModToolkit.cpp`) 拥有一个 **tools** 列表;每个工具都是派生自 `PMT::Tool` (`src/core/Tool.hpp`) 并实现了 `command()`、`help()` 和 `execute(args, out)` 的小型类。核心部分解析输入的命令行 并分发给匹配的工具。在调试窗口选项卡中输入的内容会被 GUI 线程捕获, 为了确保安全,会在游戏线程 (`on_update`) 上执行。 只需三个步骤即可**添加新工具**: 1. 创建 `src/tools/MyTool.hpp` + `.cpp`,派生自 `PMT::Tool` 并实现 `command()`、`help()`、`execute()`。 2. 在 `src/PalModToolkit.cpp` 中引入 `#include "tools/MyTool.hpp"`。 3. 在构造函数中添加 `register_tool(std::make_unique());`。 无需修改构建文件 —— `src/**.cpp` 会被自动匹配。 ## 构建说明 **前置条件** - Visual Studio 2022,需包含 *使用 C++ 的桌面开发* 工作负载 (MSVC)。 - [xmake](https://xmake.io)。 - **RE-UE4SS 源码树**(用于获取头文件)。这需要一个关联了 Epic Games 的 GitHub 账户才能拉取受限的 `UEPseudo` 子模块 —— 详情请参阅 [UE4SS 构建指南](https://docs.ue4ss.com/dev/guides/installation.html)。 - 为你的游戏安装并运行的 **UE4SS.dll**(导入库将从中 生成)。 **步骤** ``` # 1) 从已安装的 UE4SS.dll 生成 import library(在 UE4SS 更新后/运行一次) .\scripts\generate_import_lib.ps1 -Ue4ssDll "C:\...\Palworld\Pal\Binaries\Win64\ue4ss\UE4SS.dll" # 2) 配置(将 xmake 指向你的 RE-UE4SS 源代码 + import lib 文件夹) # From an "x64 Native Tools Command Prompt for VS 2022": xmake f -m release --vs=2022 ^ --ue4ss_src="C:/path/to/RE-UE4SS" ^ --ue4ss_implib="C:/path/to/PalModToolkit/external/ue4ss_implib" -y # 3) 构建 xmake build PalModToolkit ``` 输出的 `main.dll` 将生成在 `build/windows/x64/release/` 目录下。 ## 安装说明 将构建好的 DLL 复制到你的 UE4SS `Mods` 文件夹中: ``` \...\Win64\ue4ss\Mods\PalModToolkit\dlls\main.dll \...\Win64\ue4ss\Mods\PalModToolkit\enabled.txt (empty file) ``` 启动游戏;该工具包会在 UE4SS 控制台中宣告自身及其工具已加载。 ## 关于分发的说明 这个 mod **直接链接游戏加载的 UE4SS.dll**,而不是重新编译 UE4SS。这保证了精确的 ABI 匹配,并且避免了构建 UE4SS 的 GUI 依赖项 —— 但这意味着每个构建者都需要从他们自己的 UE4SS.dll 中生成各自的导入库(即上面的步骤 1)。该库是**故意**不提交到代码仓库中的。 ## 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:C++, Palworld, UE4SS, 云资产清单, 安全意识培训, 数据擦除, 游戏开发工具, 游戏模组, 逆向工程