BreakoutMods Valheim 模组套件的一部分。
BreakoutNet 是一个用于 Valheim 模组的小型客户端/服务器辅助库。它封装了重复的 BepInEx 和 ZRoutedRpc 大多数服务器感知模组都需要的粘合层:侧端检测、对等端查找、类型化RPC消息、服务器权威设置同步、 proximity广播、日志记录以及基础滥用防护。
GitHub: 突围模组/突围网络
社区: 突围模组 Discord
支持开发: BreakoutMods Patreon
瓦尔海姆的模组通常需要相同的网络构建模块:
BreakoutNet让这些模式保持简单通用、可重复使用,以便模组能共用同一网络层。
当mod需要使用BreakoutNet拥有的事件、钩子和未来对模块友好的API时,请使用限定作用域上下文:
private BreakoutModApp app; private void Awake() { app = BreakoutNet.ForPlugin(this, "com.breakoutmods.valheim.example") .AddShared<SharedModule>() .AddServer<ServerModule>() .AddClient<ClientModule>() .Build(); }
对于没有模块所有权的轻量级集成:
BreakoutModuleContext context = BreakoutNet.ForMod("com.breakoutmods.valheim.example");
网络 和 路由RPC 可使用。public sealed class JoinCheckRequest : IBreakoutSerializable { public string ModListHash; public void Write(ZPackage package) => package.Write(ModListHash ?? string.Empty); public void Read(ZPackage package) => ModListHash = package.ReadString(); } BreakoutRpc.Server.Register<JoinCheckRequest>( "joinguard.check", (context, request) => { if (string.IsNullOrWhiteSpace(request.ModListHash)) { context.Reject("客户端未发送模组列表哈希值。"); return; } BreakoutRpc.Server.SendToClient( context.SenderPeerId, "joinguard.ok", new JoinCheckResult(), "com.breakoutmods.valheim.joinguard"); });
客户端向服务器发送:
BreakoutRpc.Client.SendToServer( "joinguard.check", new JoinCheckRequest { ModListHash = localHash }, "com.breakoutmods.valheim.joinguard");
BreakoutSettingsSync.RegisterServerSettings( "joinguard.settings", () => new JoinGuardSettings { RequireMatchingMods = true }); BreakoutSettingsSync.Client.Register<JoinGuardSettings>( "joinguard.settings", settings => ApplyServerSettings(settings));
服务器会定期广播已注册的设置,并在有会话可用时进行广播。客户端只应用来自服务器对等端的设置数据包。
如果 (BreakoutSide.IsDedicatedServer) { // 仅服务器中继。 } foreach (ZNetPeer peer in BreakoutPeers.ConnectedPeers) { // 服务器可见的对等端。 }
每个BreakoutNet套餐均包含:
BreakoutNet会拒绝未知协议版本、未注册的RPC名称、来自非服务器对等端的客户端消息、不匹配的DTO类型以及过多的入站客户端RPC。
服务器RPC默认使用保守的入站客户端速率限制。语音帧等高频流可以选择使用更大的令牌桶:
BreakoutRpc.Server.Register<VoiceFrame>( "voip.voice.frame", OnVoiceFrame, BreakoutRpcRateLimit.ForMessagesPerSecond(60f, 3f));
模组可以发布本地类型化事件,用于模块内部通信:
Context.Events.Subscribe<MyEvent>(OnEvent); Context.Events.Publish(new MyEvent());
命名事件可用于公共扩展点:
Context.Events.Subscribe<MyEvent>("joinguard.policy.checked", OnPolicyChecked); Context.Events.Publish("joinguard.policy.checked", new MyEvent());
只读核心钩子暴露 BreakoutNet 生命周期和 RPC 观测:
Context.Hooks.OnNetworkReady(OnReady); Context.Hooks.OnPeerJoined(OnPeerJoined); Context.Hooks.OnRpcRejected(OnRpcRejected);
更多详情: 文档/扩展.md
.\build.ps1 -Configuration Release
仅在您明确要求时,才部署到此 Valheim 服务器安装中:
.\build.ps1 -Configuration Release -Deploy

修改前置工具
2026-09-12 14:33:53
修改前置工具

史诗战利品
randyknapp2026-09-09 21:20:10
为英灵神殿添加战利品掉落、魔法物品和附魔。

制作 建造 熔炼 烹饪 燃料 从容器中取出
aedenthorn2025-06-30 08:34:14
让你在制作、建造、使用熔炉和窑炉、添加燃料、烹饪食物等时,可以使用附近容器中的资源。

种植一切
Advize2025-09-09 11:15:37
重写了bkeyes93的种植增强模组。允许你的种植者种植浆果丛、蓟、蒲公英、蘑菇、此前无法获取的树种以及其他装饰性植物。还包括许多其他杂项功能(详见

无限制传送门
frostedplaything4102023-09-02 17:39:40
无限制传送门是一个客户端模组,允许玩家通过传送门传送任何物品。该模组提供广泛的自定义选项,让玩家能够控制物品限制、移除限制,

农场格子
Sarcenzzz2023-06-14 11:38:34
允许所有通过种植器种下的植物自动对齐并放置在网格中,确保它们有足够的生长空间。

更好的UI
MKMasa2021-04-15 09:19:42
这个模组对游戏界面做了一些细微的调整。你可以编辑并选择想要启用的更新内容。

更好的射箭
Ishid42026-09-10 16:16:51
为弓术玩法添加了许多功能和改动,包括全新的箭袋系统、可回收的箭矢、更精准的瞄准以及逼真的箭矢物理效果。