Kruziikloksu bebbab335a
All checks were successful
Publish Release / build (push) Successful in 1m5s
update readme
2026-06-26 07:28:21 +08:00
2026-06-26 06:31:39 +08:00
2026-06-26 07:09:59 +08:00
2026-06-26 07:09:59 +08:00
2026-06-26 06:31:39 +08:00
2026-06-26 07:09:59 +08:00
2026-06-26 07:28:21 +08:00

Stick Fight Socket Mod

stick.plugins.socketmod 是一个用于 Stick Fight: The Game 的 BepInEx 5 插件。它为游戏增加基于 UDP Socket 的联机方式,方便局域网、直连 IP、IPv4/IPv6 域名连接,以及无本地玩家的房间服模式。

重要说明

  • 只要启用本插件,原版 Steam 联机路径就会被替换,游戏内 Steam 联机会失效。需要恢复 Steam 联机时,请禁用或移除本插件。
  • 本插件改动面很大,涉及联机、玩家、同步、房间服和部分流程控制。目前没有针对其他插件做兼容适配,同时使用其他插件时可能出现冲突。

主要功能

  • 游戏内按 F9 打开 Socket 联机界面
  • 支持普通 Host 和 Room Server
  • 支持自动地址、IPv4、IPv6 三种建房和连接方式
  • 支持域名、IPv4 地址、IPv6 地址、域名:端口[IPv6]:端口 等输入形式
  • Room Server 可以作为无本地玩家的权威 Host负责加载世界、转发同步、处理玩家清理、回合结算和切图流程
  • Socket 模式可绕过 Steam 初始化,便于本地测试或房间服部署

目录结构

.
|-- Plugin.cs
|-- Patches/
|-- vendor/
|   `-- stick.plugins.socketmod.lidgren/
|-- lib/
|   |-- Assembly-CSharp.dll
|   |-- Assembly-CSharp-firstpass.dll
|   |-- UnityEngine.dll
|   `-- UnityEngine.UI.dll
|-- stick.plugins.socketmod.csproj
`-- README.md

Plugin.cs 是主插件入口。后续如果把 Harmony Patch 从主文件拆出来,拆分文件放到 Patches/ 目录。

vendor/ 保存随仓库维护的源码依赖。当前构建会把需要的 vendor 源码编进主插件 DLL。

lib/ 保存编译所需的游戏和 Unity 参考程序集。这里的 DLL 是构建输入,不是最终安装产物。

环境要求

  • .NET SDK 8.x
  • Stick Fight 已安装 BepInEx 5
  • lib/ 中需要有从游戏目录复制来的程序集:
    • Assembly-CSharp.dll
    • Assembly-CSharp-firstpass.dll
    • UnityEngine.dll
    • UnityEngine.UI.dll
  • 首次 restore 需要能访问 NuGet或者本机已经缓存过依赖包

编译

在仓库根目录执行:

dotnet restore .\stick.plugins.socketmod.csproj
dotnet build .\stick.plugins.socketmod.csproj -c Release

输出文件:

bin/Release/net35/stick.plugins.socketmod.dll

运行时只需要安装 stick.plugins.socketmod.dll

安装

关闭游戏后,把 Release 输出目录中的插件 DLL 复制到 BepInEx 插件目录:

$gamePlugins = 'E:\Program Files (x86)\Steam\steamapps\common\StickFightTheGame\BepInEx\plugins'
Copy-Item .\bin\Release\net35\stick.plugins.socketmod.dll $gamePlugins -Force

如果目录里还残留旧版本的 stick.plugins.socketmod.lidgren.dll,可以删除;新版不需要单独安装它。

使用方式

  1. 启动带 BepInEx 的游戏。
  2. F9 打开 Socket 联机界面。
  3. 填写 Host/域名/IP 和端口。
  4. 服务端选择建房按钮:
    • Host:普通玩家 Host自动地址模式
    • Room Server:无本地玩家的房间服,自动地址模式
    • Host IPv4 / Room IPv4:仅使用 IPv4
    • Host IPv6 / Room IPv6:仅使用 IPv6
  5. 客户端选择连接按钮:
    • Join:自动地址模式
    • Join IPv4:只使用 IPv4
    • Join IPv6:只使用 IPv6

公网 IPv6 房间服建议在 Host 输入框填写公网域名或目标公网 IPv6然后点击 Room IPv6

配置项

首次启动后BepInEx 会生成配置文件:

BepInEx/config/stick.plugins.socketmod.cfg

常用配置:

  • General.Enabled:是否启用插件
  • General.ToggleGuiKeySocket UI 快捷键,默认 F9
  • Network.DefaultHostHost 输入框默认值
  • Network.DefaultPort:端口默认值,默认 1337
  • Network.PlayerNameSocket 模式显示名
  • Network.FakeSocketUserId:可选固定假用户 ID0 表示每次进程生成
  • Network.DefaultHostAsRoomServer:让 Host 按钮默认启动房间服模式
  • Compatibility.AllowSocketModeWithoutSteamSocket 测试时绕过 Steam 初始化
  • Compatibility.AutoCreateKeyboardPlayerHost/Join 前没有本地玩家时自动创建键盘玩家

更新日志

v0.1.0

  • 新增 Socket Host/Join UI以及 IPv4/IPv6 专用按钮。
  • 新增 Room Server 模式。
  • 支持房间服世界加载、同步转发、玩家清理、结算和切图流程。
  • 增加 DNS、endpoint、握手和绑定地址诊断日志。
  • 仓库结构调整为根目录 Plugin.csPatches/vendor/lib/
Description
纯AI硬草出来的神秘socket连接支持,内置魔改Lidgren
Readme AGPL-3.0 3.4 MiB
2026-06-26 18:55:21 +08:00
Languages
C# 100%