STS2 version compatibility

Last updated:

Published on

Target game line

目标游戏版本

KitLib targets the Steam public-beta STS2 line. The repo pins one compile reference under eng/sts2-refs/beta/<version>/ (currently 0.110.1). MSBuild uses Sts2Profile=beta by default (Directory.Build.props).

make init writes local.props with your Sts2Dir. make sync-full builds against the pinned beta ref and deploys to mods/KitLib/.

KitLib 面向 Steam public-beta 分支的 STS2。仓库在 eng/sts2-refs/beta/<version>/ 固定一份编译引用(当前 0.110.1)。MSBuild 默认 Sts2Profile=beta(见根目录 Directory.Build.props)。

make init 会写入 Sts2Dirmake sync-full 按固定 beta 引用构建并部署到 mods/KitLib/

Runtime compatibility checks

运行时兼容检查

At launch, KitLib maps the game’s release_info.json version through Sts2ProfileMap (KitLib.Abstractions.Compat). PC builds with 0.106+ are treated as supported; older or unknown versions may show a startup banner.

Other mods can reuse the same types without dual-profile loaders or variant DLL folders.

启动时,KitLib 用 Sts2ProfileMapKitLib.Abstractions.Compat)解析游戏的 release_info.json 版本。PC 端 0.106+ 视为 supported;更旧或未知版本可能显示启动横幅。

其它 mod 可直接复用这些类型,无需多版本 Loader 或 lib/<mod>_<version>.dll 变体目录。

Runtime APIs (Abstractions)

运行时 API(Abstractions)

Safe for content mods to reference:

APIPurpose
Sts2ProfileMap.Resolve(version, platform)Map raw game version → Sts2GameProfile
Sts2GameProfileUnknown, Supported
Sts2SupportedGameVersions.AllPinned version strings KitLib was built for
KitLibHostPathsResolve sibling KitLib/ mod directory paths
KitLibCompatDocument / KitLibCompatTomlReaderParse kitlib.compat.toml
KitLibCompatEvaluatorEvaluate constraints at load time
KitLibCompatRuntimeFacts you supply (game version, KitLib version, loaded modules)

Use runtime checks for behavior differences on the same API surface. When Megacrit changes member names or signatures, bump the pinned beta ref and fix KitLib against the new sts2.dll — KitLib no longer ships dual compile profiles or per-mod variant bundles.

内容 mod 可安全引用:

API用途
Sts2ProfileMap.Resolve(version, platform)原始游戏版本 → Sts2GameProfile
Sts2GameProfileUnknownSupported
Sts2SupportedGameVersions.AllKitLib 构建时固定的版本字符串
KitLibHostPaths解析相邻 KitLib/ mod 目录路径
KitLibCompatDocument / KitLibCompatTomlReader解析 kitlib.compat.toml
KitLibCompatEvaluator加载时评估约束
KitLibCompatRuntime由你提供的运行时事实(游戏版本、KitLib 版本、已加载模块)

同一 API 表面上的行为差异用运行时检查。Megacrit 改名或改签名时,提升固定的 beta ref 并对新 sts2.dll 修 KitLib —— KitLib 已不再提供双 profile 编译或其它 mod 的多版本变体包。

kitlib.compat.toml

kitlib.compat.toml

Content mods can ship a sidecar next to the manifest. KitLib’s Mod Panel reads it for warnings when semver checks fail.

Example:

toml
[game]
version = [">=0.110.1"]

[kitlib]
version = [">=0.13.0"]
modules = ["KitLib.Panel"]

[dependencies]
"SomeOtherMod" = [">=1.2.0"]

Ranges use npm-style semver (||, >=, exact pins). Empty file sections are ignored.

内容 mod 可在 manifest 旁放置 sidecar。KitLib Mod Panel 在 semver 不满足时会提示玩家。

示例:

toml
[game]
version = [">=0.110.1"]

[kitlib]
version = [">=0.13.0"]
modules = ["KitLib.Panel"]

[dependencies]
"SomeOtherMod" = [">=1.2.0"]

范围使用 npm 风格 semver(||>=、精确版本)。空 section 会被忽略。

What stays internal to KitLib

仍属于 KitLib 内部的工具

Not required for consumer mods:

  • eng/api_touchpoints.yaml and KitLib.ApiCheck — contract tests against the pinned beta sts2.dll ref
  • Satellite module loader — KitLib packaging only

Use this Valaxy site for extension guides and the rail panels overview while playing.

内容 mod 不必接入:

  • eng/api_touchpoints.yamlKitLib.ApiCheck — 对固定 beta sts2.dll ref 的契约测试
  • 卫星模块加载器 — 仅 KitLib 打包

扩展开发与本站 轨道面板 概览即可。

相关