Hover on Steroids - Mod Organizer 2 插件
向后兼容:与MO2 2.4.x版本兼容
⚙️ 安装
下载存档文件。
2. 将脚本解压到 MO2/plugins/目录中。
3. 重新启动 Mod Organizer 2。
⌨️ 快捷键 F1 — 允许您通过单击启用或禁用“强化悬停”功能。
⌨️ 快捷键 F3 — 允许你在冲突列表和插件列表之间切换。
概览
"嗑药悬浮" 是 Mod Organizer 2 的一款生活质量优化插件。它会拦截你在主模组列表上的鼠标移动,并在你悬停于任意模组上方时,实时显示对应的提示信息。
现在,你只需将鼠标悬停在一个模组上,就能立即查看其VRAM占用、插件构成和文件冲突的摘要,无需再双击模组来查看属性。
实时VRAM与分辨率检测:运作方式: 该插件会扫描硬盘上的实体模组文件夹,并即时汇总所有松散DDS纹理的文件大小,将输出格式化为整洁、可读的单位(字节、KB、MB或GB)。
智能分辨率标记: 扫描过程中,插件会读取纹理头部信息以确定其最大尺寸,从而精准捕捉方形和长方形纹理(如4096×2048)。随后,它会生成一个整洁的徽章,显示模组的解析度,支持从512到8K的各类尺寸。
(注意:扫描时间完全取决于模组的大小及其包含的纹理数量) 但我通过多种技术对这一过程进行了高度优化。更多详情,请参阅下方的“优化”章节。)注意: 该插件会忽略打包的存档(BSA和BA2),因为读取它们需要借助繁重的第三方工具进行即时解压和读取。
2. 完整的插件分解与检查器 (F3)该插件会扫描你的ESP文件的二进制头部,以准确检测任何带有ESL标记的插件(ESP-FE),以及ESM、ESP和ESL文件。随后,它会显示插件总数,并详细列出每种插件类型的具体数量(例如,插件总数:(4)| ESM:1 | ESP:1 | ESPFE:2 | ESL:0)。
详细插件视图:悬停时按F3可隐藏冲突列表,并即时检查模组内包含的每一个.esp、.esm和.esl文件!
加载顺序同步:插件并非仅按字母顺序列出,它们会与您的活动加载顺序完美交叉引用!
已启用的插件将按其在游戏中的加载顺序精确排序到顶部,并附带有加载顺序索引号(✔ [14] Example.esp)。
已停用的插件会沉到列表底部(✖ Inactive.esp)。
3. 全面冲突地图:真实优先级排序:冲突列表按你的实际MO2优先级加载顺序排序。
覆盖写入
(绿色): 在悬停模组之前加载的模组。您当前的模组在冲突中胜出,并正在主动覆盖它们。
被覆盖于
(Red): :在悬停模组之后加载的模组。它们正在覆盖当前模组的文件,并在冲突中胜出。
4. 可自定义的显示数量上限: 由于Qt提示框的动态大小调整限制,较长的插件或冲突列表可能会超出屏幕范围。为防止此问题,最新更新允许您设置显示条目的最大数量。最棒的是,无需编辑脚本!只需前往
工具 -> 设置 -> 插件 在MO2中,选择
类固醇加持下的悬浮,并调整界限以完美适配你的屏幕。
5. 优化与性能:为了使MO2完全无卡顿,该插件使用0毫秒空闲计时器,以每次500个文件的异步块处理文件。这样会将控制权让给主线程,确保即使在扫描大型模组时界面也保持响应流畅。
通过使用临时缓存,插件可即时加载已扫描模组的提示信息,并在加载顺序变化时自动清除缓存,确保数据实时更新。通过缓存繁重的MO2 API调用并利用单次os.stat()系统调用,彻底消除了加载瓶颈。
此脚本利用MO2内置的isSeparator()和isForeign()接口,安全地忽略MO2的分隔符和游戏基础文件。此外,由于MO2未为Overwrite目录提供原生的布尔标记,脚本将os.path字符串与核心MO2的overwritePath()进行交叉比对,从而准确跳过Overwrite文件夹的扫描。这意味着悬停时不会浪费任何扫描时间!:)
最终,通过强制设定131 KB的最小纹理尺寸限制,磁盘计算量得以最小化。这避免了对数千个次要资源(如LOD、特效及低于512分辨率纹理)的扫描。该脚本还采用了提前退出的elif块,一旦文件已被识别为.dds纹理,即可立即跳过插件字符串检查。
通用兼容性:100%向后兼容MO2 2.4.x(PyQt5),同时保持对最新MO2 2.5+(PyQt6)的原生、无妥协支持。