YimMenu 完整实操指南:10 分钟从构建到 Lua 扩展
【免费下载链接】YimMenuYimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience.项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu
刚把 YimMenu 注入游戏,按 Insert 却没反应?这篇带 YimMenu 这个 GTA V mod menu 走完「编译 DLL → 注入配置 → Lua 扩展」全流程,约 10 分钟读完后照做,能绕开 3 个最耗时的坑:编译器选错、游戏 build 不匹配、配置文件找错位置。
它是什么
YimMenu 是注入到 GTA V 进程里的 C++ 菜单 DLL,核心卖点是防攻击——拦截大量公开流传的崩溃类攻击包,同时提供 210 个命令、50 个菜单页的修改能力,并支持 Lua 脚本扩展。
- 如果你要自己编译、改代码或用 Lua 定制功能,这篇正好。
- 如果你只想要「免安装、解压即用」,仓库里只有源码和构建脚本,没有安装器,这篇帮不了你。
一次性准备
照着勾,4 项全满足再开始:
- Windows x64 系统(程序读 Windows 注册表、调 Win32 API,没有 Linux/macOS 路径)
- Visual Studio 2022 的 MSVC 编译器 + CMake 3.20 以上。
CMakeLists.txt第 7 行对非 MSVC 编译器直接FATAL_ERROR,换 GCC/Clang 必挂 - 游戏版本与菜单支持的 build 一致:当前仓库支持 online 1.69 / build 3274,见 metadata.json
- 一个存放源码的目录,执行:
git clone https://gitcode.com/GitHub_Trending/yi/YimMenu判断标准:4 项全勾,且git clone后能看到CMakeLists.txt和src/目录。
构建出能注入的 YimMenu.dll 🔩
目标:拿到一个YimMenu.dll。
- 用 VS2022「打开本地文件夹」打开仓库根目录。
- 选
CMakeSettings.json里现成的预设x64-Release(带OPTIMIZE=YES),或x64-Release-FastCompile(编译更快);日常使用别选x64-Debug——运行时日志会专门警告 Debug 版不稳定。 - 生成并构建。
判断标准:输出目录里有YimMenu.dll;注入后cout.log第一屏出现Yim's Menu Initializing且没有Debug Build警告。
让菜单稳定弹出
目标:按 Insert 键,菜单出现并记住你的设置。
- 游戏先正常启动、进到任意画面,再以管理员身份运行注入器,把
YimMenu.dll注入 GTA5 进程。程序启动后会等游戏主窗口(窗口类grcWindow)出现才开始初始化,注入太早只会空转等待。 - 按 Insert 键,这是默认的
menu_toggle热键。 - 首次运行会在
%APPDATA%\YimMenu\自动生成settings.json和cout.log,配置和日志都在这个目录。
判断标准:菜单能弹出能收起;cout.log里能看到Pointers initialized.到Hooking enabled.这一串记录。缺Hooking enabled.说明 hook 阶段就失败了,回看上一行日志定位。
把配置改到位
目标:热键、功能开关改完即生效,重启游戏不丢。
- 配置只有一个文件:
%APPDATA%\YimMenu\settings.json。程序后台每 500ms 检查一次,有改动才落盘;读到损坏或不兼容的旧配置时会自动重写默认值并打日志。 - 热键在菜单「设置 → 热键」页里改,不用手编 JSON。默认值:菜单开关 Insert、命令执行器 U,其余热键(传送、免弹、治疗等)默认未设置。
- 想手动改 JSON 也行,但要在游戏关闭时改,否则会被自动保存覆盖。
判断标准:菜单里改完一个开关,立刻打开settings.json能看到对应字段变化;重启游戏后设置还在。
用 Lua 脚本扩展功能 📜
目标:不重新编译,往目录里丢脚本就能加功能。
- 脚本放在
%APPDATA%\YimMenu\scripts\,子目录会递归扫描。 - 重载是轮询式的,约每 3 秒检查一次文件变化,丢进去不用重启游戏。把脚本移进
scripts\disabled\即禁用;includes\子目录放被require的库脚本,不会单独占列表位置。 - 调命令的写法就一行,完整列表见 docs/lua/commands.md:
command.call("spawn", {joaat("adder")})判断标准:菜单「Lua 脚本」页出现新脚本条目,日志无报错;执行command.call后游戏内车辆生成。
边界与取舍
| 项目 | 支持到哪 | 什么时候别动 |
|---|---|---|
| 编译器 | 仅 MSVC,CMake 里写死了检查 | 别花时间去移植 GCC/Clang |
| 系统 | Windows x64 | Proton/WSL 下没有官方路径 |
| 游戏版本 | 截至 online 1.69 / build 3274 | 游戏更新后先查 metadata.json,别急着怪菜单 |
| 功能红线 | 210 命令、50 页,含整套防护 | 金钱类功能是贡献规范明令禁止的,线上也别碰 |
| 配置位置 | %APPDATA%\YimMenu\ | 移动 DLL 不迁移配置,配置跟人走不跟文件走 |
高频疑问
Q:注入了但菜单不弹?定位:多半是注入时机太早或 build 不匹配,看cout.log最后一行停在哪一步。 解法:等游戏进图后再注入;确认游戏版本不高于菜单支持的 build。
Q:手改 settings.json 后设置回退了?定位:游戏内 500ms 一次的自动保存把你的修改覆盖了。 解法:要么在游戏内改,要么关游戏再改文件。
Q:新 Lua 脚本没反应?定位:路径不在scripts\下,或 3 秒重载还没轮到。 解法:核对路径,等约 3 秒,日志有报错就按报错修。
Q:游戏更新后菜单整个没反应?定位:游戏 build 超过了菜单支持的上限(当前 3274)。 解法:查 metadata.json 对比版本号,等菜单跟进更新再注入。
速查清单
- ✅ MSVC + CMake 3.20+ + x64,构建选
x64-Release - ✅ 游戏版本对齐 metadata.json 里的 build
- ✅ 注入器以管理员运行,游戏进程已启动
- ✅ Insert 开关菜单(默认值,可改)
- ✅ 配置与日志都在
%APPDATA%\YimMenu\(settings.json/cout.log),损坏自动重写 - ✅ Lua 脚本丢
%APPDATA%\YimMenu\scripts\,约 3 秒自动重载 - ❌ 线上模式别碰金钱类功能
- ❌ 游戏更新后先查版本匹配,再怀疑菜单有 bug
延伸资源
- docs/lua/:Lua 扩展全套文档,含 210 个命令清单和 50 个菜单页定义
- CONTRIBUTING.md:贡献规则与 C++ 代码规范
- metadata.json:当前支持的游戏版本,排障时第一手资料
【免费下载链接】YimMenuYimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience.项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考