FocusPauseFPS - 自动帧率与音频控制

FocusPauseFPS - 自动帧率与音频控制

自动在打开ESC菜单、游戏被Alt-Tab切换或最小化时降低Palworld的FPS上限和会话音量,并在返回时恢复FPS并将音频调回100%。

FocusPauseFPS 会在《幻兽帕鲁》未被主动游玩时自动应用节省资源的 FPS 和音频配置。

它可以检测三种不同的状态:

• 打开 ESC 菜单
• Alt+Tab 切换后《幻兽帕鲁》失去焦点
• 《幻兽帕鲁》窗口被最小化

默认情况下,每种空闲状态都会将游戏限制为 30 FPS,并将《幻兽帕鲁》的应用音量降低到 20%。

当您返回游戏时,FocusPauseFPS 会恢复在空闲配置生效前捕获的 FPS 限制,并将《幻兽帕鲁》的应用音量恢复到 100%。

此模组绝不会将游戏完全静音。


默认行为

ESC 菜单:
• 30 FPS
• 20%《幻兽帕鲁》应用音量

Alt+Tab / 失去焦点:
• 30 FPS
• 20%《幻兽帕鲁》应用音量

最小化:
• 30 FPS
• 20%《幻兽帕鲁》应用音量

活动 / 聚焦状态:
• 恢复捕获的 FPS 限制
• 将《幻兽帕鲁》应用音量恢复到 100%

当多个状态重叠时,优先级为:

最小化 > Alt+Tab > ESC


功能特色

• 自动 ESC 菜单检测
• 自动 Alt+Tab 和前台窗口检测
• 单独的最小化窗口检测
• 为 ESC、Alt+Tab 和最小化状态提供独立配置
• 每个配置可自定义 FPS 限制
• 每个配置可自定义应用音量
• 可配置激活延迟
• 可选的 150、300 或 500 毫秒音频淡变
• 自动 FPS 恢复
• 按进程的 Windows Core Audio 控制
• 仅更改当前《幻兽帕鲁》进程拥有的音频会话
• 运行时启用、禁用和切换命令
• 本地诊断日志记录
• 不修改存档
• 不修改 Engine.ini
• 无遥测、广告或网络访问
• 无更新器、下载器或外部进程启动器


环境要求

• Windows 版《幻兽帕鲁》Steam
• Windows x64
• Okaetsu RE-UE4SS experimental-palworld

已验证环境:

• 《幻兽帕鲁》构建版本 1.0.2.100993
• UE4SS 提交 c838a8acaade1a0f860bdf249f039e58f4e10088
• UE4SS v3.0.1 Beta #0
• Lua 5.4.7

其他版本的《幻兽帕鲁》或 UE4SS 可能可以运行,但未经核实。

Game Pass、Linux 和 Proton 目前不在支持列表中。


安装说明

1. 完全退出《幻兽帕鲁》。

2. 安装兼容的 Okaetsu RE-UE4SS experimental-palworld 构建版本。

3. 下载并解压 FocusPauseFPS 压缩包。

4. 将 FocusPauseFPS 文件夹复制到:

Palworld\Pal\Binaries\Win64\ue4ss\Mods\

5. 确认以下文件存在:

Palworld\Pal\Binaries\Win64\ue4ss\Mods\FocusPauseFPS\enabled.txt

Palworld\Pal\Binaries\Win64\ue4ss\Mods\FocusPauseFPS\Scripts\main.lua

Palworld\Pal\Binaries\Win64\ue4ss\Mods\FocusPauseFPS\Scripts\config.lua

Palworld\Pal\Binaries\Win64\ue4ss\Mods\FocusPauseFPS\Scripts\focuspause_native.dll

6. 启动《幻兽帕鲁》。


重要文件夹警告

不要将模组放置在额外的嵌套文件夹中。

错误示例:

...\Mods\FocusPauseFPS-1.1.0-beta.4-Nexus-Main\FocusPauseFPS\Scripts\main.lua

正确示例:

...\Mods\FocusPauseFPS\Scripts\main.lua

FocusPauseFPS 文件夹必须直接放置在 UE4SS Mods 文件夹内。


更新说明

1. 完全退出《幻兽帕鲁》。
2. 删除或替换之前的 FocusPauseFPS 文件夹。
3. 安装新版本。
4. 重新启动《幻兽帕鲁》。

对 focuspause_native.dll 的更新始终需要完全重启游戏。


配置说明

编辑文件:

FocusPauseFPS\Scripts\config.lua

编辑配置时应关闭《幻兽帕鲁》。

每个 ESC、Alt+Tab 和最小化配置均支持:

启用
启用或禁用整个配置。

限制FPS
启用或禁用该配置的 FPS 管理。

调整音频
启用或禁用该配置的音频管理。

FPS
请求的空闲 FPS 限制。支持的最低值为 30。

音量百分比
请求的《幻兽帕鲁》应用音量。

支持的值:

5, 10, 20, 30, 40, 50, 60, 70, 80, 90 和 100

延迟毫秒
在配置生效前添加延迟。

淡变毫秒
控制音频过渡持续时间。

支持的值:

0, 150, 300 和 500


默认配置

AutomaticMode = true
RestoreDebounceMs = 0
ShowStatusIndicator = true
VerboseLogging = false

ESC 菜单:
30 FPS / 20% 音量

Alt+Tab:
30 FPS / 20% 音量

最小化:
30 FPS / 20% 音量


性能说明

前台和最小化状态由轻量级的原生 Windows 工作线程每 100 毫秒采样一次。

该模组不会持续轮询虚幻游戏线程以获取暂停状态。

负载较重的 Windows Core Audio 重新扫描每五秒运行一次,并且仅在空闲配置激活时运行。成功的重复扫描不会持续写入日志。


控制台命令

focuspause.status
将当前 FocusPauseFPS 状态和诊断信息写入运行时日志。

focuspause.enable
在当前会话期间启用自动配置管理。

focuspause.disable
禁用自动配置管理并返回活动状态。

focuspause.toggle
切换自动配置管理。

focuspause.indicator_toggle
切换可选的状态指示器。

还包含用于故障排除的其他诊断和测试命令。


运行时日志

FocusPauseFPS 在以下位置创建本地诊断日志:

FocusPauseFPS\FocusPauseFPS.runtime.log

该日志:

• 在原生工作线程启动时重置
• 达到 5 MiB 时轮转
• 最多保留一个 .old 备份
• 完全保留在本地计算机上
• 永远不会自动上传

它可能包含:

• 时间戳
• 临时进程和线程 ID
• 临时窗口句柄
• Windows 版本和内部版本号
• 活动配置信息
• FPS 回读结果
• 音频回读结果

它不包含窗口标题、账户信息或个人文件。


已知测试版限制

可选的游戏内状态指示器可能在某些 UE4SS 构建版本上无法显示,因为虚幻引擎的 PrintString 函数签名在不同版本间可能存在差异。

如果发生这种情况,FocusPauseFPS 会自动禁用屏幕指示器,并继续通过 UE4SS 控制台和 FocusPauseFPS.runtime.log 报告状态更改。

FPS 和音频自动化会继续独立于指示器运行。

如果您不希望模组尝试显示指示器,请将以下选项设置为 false:

ShowStatusIndicator = false


故障排除

模组未加载:

• 确认您安装了 experimental-palworld 版本的 UE4SS。
• 确认 enabled.txt 包含 1。
• 确认文件夹结构符合安装说明。
• 检查 UE4SS.log 和 FocusPauseFPS.runtime.log。
• 确认 Windows 或杀毒软件未删除 focuspause_native.dll。


FPS 或音频未更改:

• 确认 AutomaticMode 设置为 true。
• 确认相关配置已启用。
• 确认 LimitFPS 和 AdjustAudio 已启用。
• 使用 focuspause.status 并检查 FocusPauseFPS.runtime.log。
• 替换原生 DLL 后完全重启《幻兽帕鲁》。


状态消息未显示:

• 这是某些 UE4SS 构建版本上已知的测试版限制。
• FPS 或音频自动化不需要指示器。
• 状态信息仍可在运行时日志中获取。
• 将 ShowStatusIndicator 设置为 false 可将其完全禁用。


卸载说明

1. 完全退出《幻兽帕鲁》。
2. 删除:

Palworld\Pal\Binaries\Win64\ue4ss\Mods\FocusPauseFPS

FocusPauseFPS 不会修改存档文件、《幻兽帕鲁》数据文件或 Engine.ini。


隐私与安全

FocusPauseFPS 完全在本地计算机上运行。

它包含:

• 无遥测
• 无分析
• 无广告
• 无网络访问
• 无账户标识符
• 无更新器或下载器
• 无注册表持久化
• 无浏览器或剪贴板访问
• 无外部进程启动器
• 无存档访问

原生 DLL 会枚举 Windows Core Audio 会话,但仅更改属于当前《幻兽帕鲁》进程的会话。

focuspause_native.dll 是开源且未签名的。

配套的源代码和可复现的构建脚本作为单独的下载提供。


兼容性

• 仅限客户端
• 无需安装专用服务器
• 适用于 Windows x64 上的《幻兽帕鲁》Steam 版
• 需要兼容的 experimental-palworld UE4SS 构建版本
• 持续覆盖 t.MaxFPS 的模组可能会产生冲突
• 持续控制《幻兽帕鲁》Windows 音频会话的其他应用程序可能会产生冲突


版本历史

1.1.0-beta.4

• 首次公开测试版发布
• 添加了自动 ESC 菜单配置
• 添加了自动 Alt+Tab 配置
• 添加了自动最小化窗口配置
• 添加了可配置的 FPS 和应用音量目标
• 添加了可配置的激活延迟
• 添加了可配置的音频淡变
• 添加了原生 Windows 前台和最小化状态检测
• 添加了进程特定的 Windows Core Audio 管理
• 添加了 FPS 写入和回读验证
• 添加了自动 FPS 恢复
• 添加了运行时启用、禁用和切换命令
• 添加了有界本地诊断日志记录
• 添加了源代码包和可复现的原生构建脚本
• 添加了隐私和原生二进制安全文档


致谢

由 byluckysm 创建。

部分防御性加载、前台进程检测和回调验证模式改编自 Vercadi 的 MIT 许可项目 Palworld-AltTabWorkContinuation。

完整的署名和许可声明包含在 LICENSES.md 和 THIRD_PARTY_LICENSES 中。

需要 UE4SS,但不包含在内。

FocusPauseFPS 与 Pocketpair、《幻兽帕鲁》或 UE4SS 开发者无关联,亦未获得其认可。


许可证

FocusPauseFPS 根据 MIT 许可证发布。

允许再分发、修改、转换和复用,前提是保留适用的版权、许可证和署名声明。