A 专用服务器 仅发布统计数据的模组 服务器 可以看到一个HTTP端点——默认情况下,自托管的 GS 仪表盘,但它会向任何 URL 发送 POST 请求。
与以下内容配对 瓦 伙伴程序(每位玩家安装用于个人数据统计)。两者都POST到同一端点;接收方按以下方式合并它们: 世界 + 玩家名称。
完整负载模式、键命名约定与合并规则 记录在 数据格式与自托管 维基。
到底为什么要服务器模组? Valheim将生物模拟交给任一 客户端 是最接近的,因此大部分战斗在客户端捕获。服务器仍然拥有 闲置 / 远处 生物(例如你潜行攻击的沉睡怪物),因此这个模组捕捉了这些——尤其是真正的背刺后 受创最深 - 以及服务器权威的世界进度里程碑。
一个用于《英灵神殿》的BepInEx插件 专用服务器。它会修补
角色.远程伤害 和 角色.死亡时,轮询世界全局键,并定时向gs仪表盘POST累积的JSON快照。Boss通过以下方式识别 是首领单位 而不是硬编码列表,这样新Boss无需修改代码就能生效。累积计数器会持久化到
BepInEx/config/net.cproudlock.gsvalheimstats.state.tsv 并在重启后存活。
在线玩家 / 世界日),在加入/离开时强制触发,以实现近乎即时的“现在在线”状态安装到你的 专用服务器 (取决于 denikson-BepInExPack_Valheim). 把DLL拖进去 BepInEx/plugins/.
启动一次即可生成 BepInEx/config/net.cproudlock.gsvalheimstats.cfg,然后设置:
[通用] World = vhserver3 # 你的服务器 -world 名称 EmitIntervalSeconds = 120 [数据采集] Url = http://localhost:3001/api/valheim/ingest # 可从服务器访问的仪表盘 Token = <持有者令牌>
重启服务器。累计计数器将持续保留到 BepInEx/config/<guid>.state.tsv.
dotnet build -c Release
没有本地开发循环。构建需要 Valheim 专用服务器程序集和 BepInEx 核心,因此它只能在游戏服务器虚拟机上编译,在那里
GsValheimStatsEmitter.csproj 点数 $(托管) 和 $(BepInEx核心)此仓库中没有任何内容可在工作站上构建。
成功的样子 构建成功。0 个错误,而 部署到服务器
正在将 DLL 复制到目标位置 BepInEx/插件.
构筑 自行部署: 部署到服务器 每次成功后目标运行 释放 构建并将DLL复制到 $(DeployDir)所以整个流程就是把源代码复制过去,在那构建,然后重启。
scp src/Plugin.cs *.csproj manifest.json CHANGELOG.md \ cproudlock@10.9.50.213:/home/cproudlock/mod-valheim/ ssh cproudlock@10.9.50.213 'cd ~/mod-valheim && dotnet build -c Release'
然后重启服务器。使用安全重启脚本,千万不要 服务器重启,这永远不会通过 qemu 客户机代理返回,并留下一个陈旧的
lgsm/lock/vhserver-stopping.lock 它却会无声地阻止后续每一次启动:
setsid /home/cproudlock/vhserver3/vh-safe-restart.sh >/dev/null 2>&1 & # 然后轮询 /tmp/vh-safe-restart.log 以查找 RESULT: 行
之后确认 加载中 [GsValheimStatsEmitter <version>] 和
[gs] 数据接入状态:200 在 BepInEx/LogOutput.log.
注意版本位于 三 必须同意的地点: <版本> 在csproj中, 版本号 在 manifest.json,以及 版本 恒常于
src/Plugin.cs仪表盘记录了最后一次,因此模组列表中会出现不匹配。
与客户端模组相同的合约——一个经过认证的 帖子 一个JSON快照(关于最小接收器 + curl 测试,请参阅该模组的README)。
载荷 (服务器):
{ "schemaVersion": 1, "game": "valheim", "source": "server", "world": "vhserver3", "hostName": "Proudlock VH Server 3", "serverStartedAtUtc": "2026-06-09T11:32:00Z", "onlinePlayers": ["Erebus", "Pridetoes"], "worldDay": 12, "emittedAtUtc": "2026-06-09T18:00:00Z", "snapshotIdLocal": "9a6b...", "players": [{ "name": "Erebus", "boss": [{ "boss": "Eikthyr", "kills": 1, "damageDealt": 1450, "fightSec": 95 }], "weapons": [{ "weapon": "Knives", "damageDealt": 80, "kills": 2, "hardestHit": 79 }] }], "bossKillEvents": [{ "boss": "Eikthyr", "fightSec": 95, "firstBlood": "Erebus", "topDamagePlayer": "Erebus", "topDamage": 1450, "participants": 2, "tsUtc": "..." }], "milestones": [{ "key": "defeated_eikthyr", "label": "赤血灵鹿已击败", "kind": "boss", "tsUtc": "..." }], "mods": [{ "guid": "Azumatt.AzuCraftyBoxes", "name": "AzuCraftyBoxes", "version": "1.8.14", "author": "Azumatt", "folder": "Azumatt-AzuCraftyBoxes-1.8.14" }] }
每次喂食都会报告生物信息 它 模拟,所以它们是不相交的。接收者应该:
造成伤害 / 击杀 每 (玩家, 武器) 在这两者之间 来源秒(精确总数,不重复计算,因为单次命中只会由一方处理),并且最重打击.游戏仪表盘通过按来源分行以及 总和 / 最大值(...) 在读取时。

修改前置工具
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
为弓术玩法添加了许多功能和改动,包括全新的箭袋系统、可回收的箭矢、更精准的瞄准以及逼真的箭矢物理效果。