BZG INI - 用于Papyrus的运行时INI读写器(SKSE插件)

创作者: Barzing
已更新:2026-07-21 14:02:30
258KB

关于此 MOD

一个SKSE Papyrus扩展,允许模组在运行时读取、写入、重新加载和更新.ini文件。此插件主要作为模组开发者资源使用。
它是做什么的?

BZG INI将原生的Papyrus函数开放给:
  • 从以下位置读取数值 .ini 文件
  • 在游戏过程中写入数值
  • 将更改保存回磁盘
  • 按需重新加载文件
  • 检查分区或键是否存在
  • 列出各区块和键位
  • 移除钥匙或章节
该DLL直接读写物理INI文件,而非依赖Skyrim标准的INI配置文件API。这使其适用于需要在游戏运行时修改配置值并安全重新加载这些值的模组。

为什么选择这个插件?


一些INI修改工具对格式要求严格,或者会暴露许多功能重叠的选项。
BZG INI旨在保持更小、更可预测:
  • 紧凑型Papyrus API
  • 宽容的INI解析
  • 支持注释和空行
  • 自动创建缺失的区块和键
  • 在现有章节内更安全地插入新键位
  • 不依赖天际的INI缓存访问
  • 用于运行时模组配置
当模组需要维护自己的配置文件并通过Papyrus动态更新时,该功能尤为实用。

功能特性


  • 读写:
    字符串
    整数
    浮动
    布尔
    数值。
  • 在游戏过程中重载INI文件。
  • 将修改后的值保存回磁盘。
  • 检查某个分区或键是否存在。
  • 从文件中获取所有分段。
  • 从章节中获取所有钥匙。
  • 移除一个钥匙。
  • 移除一个分区。
  • 自动创建缺失的分区。
  • 尽量保留现有注释和布局。
  • 添加新键时,避免在节内出现孤立的空行。
  • 兼容SE / AE / VR版本,具体取决于CommonLibSSE-NG的构建配置。

Papyrus API


Scriptname BZG_Ini Hidden

Bool 函数 Reload(字符串 filePath) 全局 原生
Bool Function Save(String filePath) Global Native

Bool Function HasSection(String filePath, String section) 全局原生函数
Bool Function HasKey(String filePath, String section, String key) Global Native

String Function GetString(String filePath, String section, String key, String defaultValue = "") Global Native
Int Function GetInt(String filePath, String section, String key, Int defaultValue = 0) Global Native
Float Function GetFloat(String filePath, String section, String key, Float defaultValue = 0.0) Global Native
Bool 函数 GetBool(String filePath, String section, String key, Bool defaultValue = false) 全局原生

Bool Function SetString(String filePath, String section, String key, String value) Global Native
Bool Function SetInt(String filePath, String section, String key, Int value) Global Native
Bool Function SetFloat(String filePath, String section, String key, Float value) Global Native
Bool Function SetBool(String filePath, String section, String key, Bool value) Global Native

String[] Function GetSections(String filePath) Global Native
String[] Function GetKeys(String filePath, String section) 全局 原生

Bool Function RemoveKey(String filePath, String section, String key) Global Native
Bool Function RemoveSection(String filePath, String section) Global Native


示例


String configPath = "Data\\SKSE\\Plugins\\MyMod.ini"

BZG_Ini.Reload(configPath)

Bool enabled = BZG_Ini.GetBool(configPath, "General", "Enabled", True)
Float duration = BZG_Ini.GetFloat(configPath, "General", "Duration", 2.0)

BZG_Ini.SetBool(configPath, "General", "Enabled", False)
BZG_Ini.SetFloat(configPath, "General", "Duration", 3.5)

BZG_Ini.Save(configPath)


布尔值


解析器支持多种常见的布尔值格式:
启用 = true
Enabled = false
Enabled = 1
Enabled = 0
启用 = 是
启用 = 否
已启用 = 开启
启用 = 关闭
已启用 = enabled
启用 = 禁用
读取值时不区分大小写。

安装


像安装其他SKSE插件一样安装:

Data/SKSE/Plugins/BZG_INI.dll
Data/Scripts/BZG_Ini.pex
Data/Scripts/Source/BZG_Ini.psc

源脚本仅供希望针对此插件编译Papyrus脚本的模组作者使用。



模组作者须知


此插件旨在便于简单集成。
添加
BZG_Ini.psc
到你的Papyrus源文件夹,针对它编译你的脚本,并从你自己的模组中调用原生函数。
推荐工作流程如下:

BZG_Ini.Reload(path)
value = BZG_Ini.GetBool(path, "Section", "Key", defaultValue)

BZG_Ini.SetBool(path, "Section", "Key", newValue)
BZG_Ini.Save(path)


备注


  • BZG INI不使用天际的标准配置文件功能来读写数值。
  • 直接写入目标文件。
  • 它尽可能保留现有的注释和结构。
  • 添加新键时,可避免在节内产生孤立的空行,这些空行可能会导致某些模组中的严格读取器出错。
  • 这不意在成为一个庞大的INI框架。它特意做得小而精。
  • BZG INI 的设计目的是与 PrivateProfileRedirector SE 配合使用。由于它直接读写 INI 文件,而非使用天际的重定向配置文件 API,因此它可以在游戏过程中更新物理 INI 文件,并通过自身的 Papyrus 函数重新加载,而不会被 PrivateProfileRedirector 的缓存所阻断。由于这些文件由 BZG INI 直接访问,它们不会被 PrivateProfileRedirector 缓存,也不会受益于其缓存机制。这是有意为之,以便实现可靠的运行时重载。
  • BZG INI不会自动强制无关的模组刷新其自身缓存的配置。运行时重载支持必须由使用BZG INI的模组来实现。 

上古卷轴5:天际 特别版 的热门 MOD

探索适用于 上古卷轴5:天际 特别版 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

2025-12-16 11:53:50

前置必备Mod

修改与Mod必备前置工具

ModOrganizerTeam2024-08-04 16:31:44

Mod Organizer(MO)是一个用于管理任意大小的Mod集合的工具。它是专门为那些喜欢尝试mods的人设计的,因此需要一种简单可靠的方法来安装和卸载它们。

天空用户界面

schlangster2017-10-04 05:03:26

界面优雅,对电脑友好,并具有许多高级功能。

非官方《上古卷轴5:天际》特别版补丁 - USSEP

Arthmoor2025-09-01 07:56:09

一款针对《上古卷轴V:天际特别版》的综合性错误修复模组。非官方天际特别版补丁(简称USSEP)的目标是最终修复《天际特别版》中所有尚未被官方修复的错误。

静态网格改进模组 - SMIM

Brumbek2018-07-05 02:28:26

这是一个旨在大幅提升《上古卷轴5:天际》中无数静态3D模型外观的大型项目。简而言之,我希望通过这个项目让天际的建筑、杂物、家具和景观更加美观。

SKSE插件的地址库

meh3212024-02-14 09:19:54

包含头文件和数据库,以便轻松实现 SKSE DLL 插件的版本独立性。

比赛菜单

expired69782024-01-27 03:38:17

角色创建菜单全面改版,新增多种自定义功能,例如多种RGBA战纹、身体彩绘、手部彩绘和脚部彩绘。(需要SKSE)

Fores Skyrim SE-FNIS SE中的新闲置

NexusModsCaretaker2020-02-19 01:47:03

Skyrim没有可能的自定义动画?错误的。FNIS行为允许添加不同类型的动画到游戏:闲置/姿势,顺序,家具,配对,杀戮,生物,等等。

使用 Xmod 解锁 上古卷轴5:天际 特别版 的全部潜力 — 今天就探索这些顶级 MOD!