实验版 0.4.3,基于 Valheim 1.0.15 构建并测试。 如实记录你的维京冒险历程:击杀、死亡、伤害贡献、助攻、技能、建造、制作、采集、挂机估算、跨越生物群系以及精确到具体生物类型的复仇。
按 F8 在游戏中打开你自己的服务器统计信息。该软件包还包括可选工具,用于可搜索的本地HTML概览以及供人工和分析工具使用的结构化日志。
Storyteller为只读模式:它记录游戏过程,不会改变游戏内容,也不会提供管理员命令,且不会自动发送聊天消息。
配合你自己的世界和模组列表使用 Storyteller。它通过 Valheim 发现当前激活的世界和已连接的玩家;无需服务器地址、玩家白名单、世界种子、私有管理插件或托管账户。记录保存在收集主机上。客户端仅将游戏报告发送至其所加入的游戏服务器。
将其安装在专用服务器和参与的客户端上,或使用玩家托管的游戏作为收集端。每个世界拥有独立的记录。偏好设置位于BepInEx配置中;该包不包含预配置的服务器设置。升级时现有配置会被保留。服务器管理员控制收集、共享排行榜和保留策略;客户端控制上报、快照、可选的Epic Loot元数据以及F8热键。
史诗战利品是可选内容,报告工具也是可选的。你不需要作者的其他模组或服务器管理配置。自动更新、重启以及管理员聊天/传送命令不属于此整合包。
测试环境: Windows专用服务器 Valheim 1.0.15。玩家自建主机和Linux安装属于预期使用场景,但尚未经过同等的原生冒烟测试。随附的Python工具需要显式路径,并独立于游戏进程运行。寻求帮助时请报告游戏版本、模组版本、托管平台及相关错误;发布日志前请移除账号标识和私人游戏数据。
这 排行榜 标签页比较已收集的世界总计数据,包括生物击杀、死亡、助攻、生物伤害、砍伐树木、采矿命中、放置操作、制作、开门/关门/合计以及活跃分钟数。放置包括地形和植物;采矿命中不是矿石数量。服务器设置 启用排行榜 控制可用性。并列名次共享排名;视图显示前50名以及你自己的排名。未知指标覆盖范围已省略。选择 今天, 过去 7 天 (包括今天),或 全部时间每日边界以压缩历史开始时所记录的服务器时区为准。排名基于可用观测数据,而非等时长对局。总计数据跟随上报账号,并显示其最新角色名。死亡数排名按最高计数优先。原生采集计数与击杀数分开计算,且不会在重叠层级间累加。详细玩家数据仍仅你自己可见;共享排名包含角色名与汇总数值。
安装后会自动检测 Epic Loot,没有硬性依赖。装备变化时,已装备物品会报告稀有度、品质和附魔标识符/数值;普通快照不会重复完整的装备数据。F8 技能与状态会显示最后报告的已装备物品。Epic Loot 缺失、禁用或不兼容时,普通报告仍可正常工作。 可选史诗战利品装备 控制此集成。装备按快照间隔采样;采样之间的临时变化可能会被遗漏。世界战利品和受支持物品的移动会按如下所述单独记录。镶嵌物特定效果和推断的伤害加成不会被追踪。
叙事者记录观察到的生物战利品生成和成功的世界拾取,包括部分堆叠,并附带物品名称、数量、品质、时间、位置以及可选的史诗战利品稀有度/效果。仅当世界物品的确切身份和元数据一致时,才会将获取的物品与生物关联。玩家丢弃的物品可以关联到其丢弃玩家,并与生物战利品分开标记。现有物品、过期来源和不支持的掉落路径保持 未知来源; 装备再好,也证明不了它的来历。
物品台账记录手动物品转移、玩家丢弃、普通制作、建造/种植消耗以及食物/蜂蜜酒使用。如果已安装, 整理箱 快速存款通过其实际转移方式检测,与热键无关,包括反引号绑定。 最佳自动排序 报告接受/部分宝箱变更,并根据交易发送者解析行动者。直接本地拥有的宝箱消耗在精确需求列表匹配时记录配方或植物。FeedLikeGrandma喂食器移除标记为自动化,不归咎于玩家。被拒绝或重复的请求不算物品移动。宝箱端提交不能证明已交付给玩家或在特定配方中消耗。不支持的定制存储路径可能保持未被观测。
记录通过容器网络ID和位置进行标识,而非假定同名箱子就是同一个箱子。物品自定义数据绝不会被修改。其指纹可在转移观测期间区分其他方面相似的附魔物品;私有负载不会被记录。不会上传完整的箱子库存。常规物品事件进入可搜索的详细流;附魔物品事件保留在故事流中。可按物品、玩家、容器ID或位置搜索。这是已观测交易的证据,并非保证完整的库存余额或永久性物品审计。
在服务器和参与的客户端上安装新版本以获取这些报告。Epic Loot、Tidy Chests 和 BestAutoSort 仍为可选。 [战利品] 控制世界战利品和普通可堆叠物品; [账簿] 控制传输。起源关联最多保留4,096个掉落物和4,096个生物载体,持续最多86,400模拟秒。日志共享现有的保留预算;过期事务无法从生命周期统计中恢复。
每个世界的默认保留时间: 64 MiB 原始细节, 64 MiB 原始剧情,以及 128 MiB 压缩档案。详细片段七天后过期;故事片段和压缩存档三十天后过期。以先达到的时间或大小限制为准。相关设置位于 [留存]检查大约每分钟运行一次;活跃段和待处理批次可能会短暂超出预算。
终身收集的统计数据保留在 -stats.json 以及一个紧凑的 -ledger.json 检查点。保留策略会验证该检查点,压缩已关闭的段,并在移除原始来源前验证其解压后的校验和。归档也会过期,因此磁盘占用不会无限增长。已过期的详细时间线无法从总计中重建。总计会从累积状态替换,绝不会从归档中重新累加。历史导入或检查点失败会阻止清理。现有日志若缺少累积统计或累积统计不可读,会持续保留保留挂起状态以进行历史恢复;请检查 -留存.json 以及如果磁盘空间不再被回收时可能出现的收集器故障。状态字典单独设有上限。这些预算不包括世界存档、管理员备份和导出的报告。
HTML/JSON 报告默认使用保留的原始日志;CLI 选项 包含存档 包含保留的压缩日志。生命周期账本数据与按日期筛选的事件总计是分开的。重建时会清理生成的按天或按玩家导出文件,因此过期的导出历史不会悄悄累积。
每日简报会在详细日志过期后保留击杀、死亡、助攻、生物伤害、活跃度、排名、表情以及选定的采集/制作/开门计数。默认设置保留 60天,然后将较早的日期合并为每月总计,保留用于 24个自然月两者均可配置。每个周期的玩家记录上限为128条;每日生物类别和重要事件数量有限制。当月度记录过期后,终身总计数据仍单独保留。
首次启动时会将可用的原始事件/详情日志一次性导入到周期历史中,并进行事件ID去重和原子标记。它不会重放生命周期总计,也不会虚构不可用的历史记录。压缩归档不包含在此自动导入中。导入失败会保留现有数据不变并暂停保留。导入限制为两百万条相关事件;格式错误的文件需要先修复才能重试。HTML概览提供可选择的每日/每月摘要,与其基于事件的周期总计分开显示。
击败首领后会保存一份观察到的战斗摘要:持续时间、按玩家重生分组统计的伤害占比、致命一击、治疗、未归属伤害以及与该首领直接关联的玩家死亡。它会以紧凑状态保留最近64份摘要,并生成可搜索的 首领摘要 事件。摘要仅涵盖最后观察到的遭遇片段;完整恢复、长时间伤害间隔、收集器重启或证据缺失都可能缩短其长度。它们并非对未见过战斗的重建。
生命值因上限下降而受到的钳制(包括食物腐烂)会与伤害分开记录,并从新的战斗百分比中排除。钳制不会每刻都输出一条日志。实际敌人命中、中毒、坠落及其他生命值损失仍会计入。所有上报客户端都需要此版本才能进行该区分。较早收集的伤害总计可能包含与食物相关的生命值损失;这些数据被保留,因为其原始因果背景无法可靠还原。
中毒和燃烧的持续伤害在报告者观察到其施加过程并保留可靠来源时,会获得来源归属。被接受的毒替代会更新其来源;被忽略的较弱毒施加则不会。具有多个或未知来源的火焰/灵魂池保持未归属状态。在归属变更、重启或归属缓冲区重置后首次出现的现有效果,在能够建立新来源之前保持未知。致命持续伤害保留其精确命中证据,直到观察到匹配的延迟死亡。归属仅改变报告,绝不改变游戏伤害或状态效果。先前未归属的历史持续伤害会被保留。
在服务器和参与的客户端上安装相同版本,然后重启它们。依赖项仍为 BepInExPack Valheim 5.4.2350 和 JsonDotNET 13.0.4。无需额外的 UI 模组或 Jotunn 依赖。
没有 Storyteller 的客户端仍然可以加入。0.1 版客户端提供死亡信息;0.2 版客户端提供增强的战斗/活动/行动报告。0.4 版客户端会协商使用 0.4,然后依次回退到 0.3、增强版 0.2 和仅死亡信息 0.1。新的统计窗口、原生计数器和快照需要 0.3 服务器。未收齐的收集者最多收到四次谈判尝试;报告需要被接受。
在首次启动收集器且没有已完成的导入标记时,保留的0.1事件日志会自动将可识别的击杀和死亡回填到F8中。完成标记与总计数据会以原子方式一同保存,防止在重启后重复导入。当前进度会被保留,重复项会被跳过,无法读取的日志会推迟整个导入。战斗标签页会标注导入的总计数据。只有在首次完整导入期间存在的日志才会被包含。0.1中缺失的已删除历史以及伤害、助攻、挂机、工作或技能统计无法重建。HTML工具仍然可以搜索和汇总保留的0.1事件。当前技能等级是快照,并非在此服务器上获得的等级。正常更新时,请保留你现有的世界和叙事者文件。
F8 打开窗口;按 F8、Escape 或“关闭”可将其关闭。如果其他模组已占用该快捷键,可以重新配置。窗口打开时会屏蔽正常的移动、攻击和视角输入,关闭后恢复控制。窗口打开期间约每 15 秒从收集器刷新一次,并提供一个手动刷新按钮。
这是你们世界积累的 已收集 记录,而非实时角色卡,也未必涵盖你的完整角色历史。缺失的记录会显示“尚未收集”。快照会显示其时间戳。服务器通过你的已认证连接来检索你的记录。最多返回384条指标行,更多条目保留在服务器记录中。
0.4版本将每个报告玩家的常规行为每十分钟左右汇总为一条摘要,并在玩家断线或收集器停止时提供部分摘要。击杀、死亡、复仇、表情和生物群系切换仍作为独立的故事事件保留。
客户端大约每15秒批量处理一次工作;只有剧情输出按十分钟分组。窗口使用服务器接收时间;延迟的批次可能跨越边界。待处理窗口每15秒设置一次检查点,并在意外重启后以部分摘要的形式恢复。崩溃时最多可能丢失最后一个检查点间隔内的数据。稳定的摘要ID允许在重放恢复后进行去重。有界缓冲区在持续过载时可能丢弃证据,并在状态中报告。
F8的冒险标签页会显示你最近完成的工作摘要以及最多十二个地点。HTML概览包含所有保留的地点、指向战斗和可搜索底层证据的链接。详细工作要求双方均为0.4;没有工作报告的旧客户端不会被标记为空闲。
观察全部205个实际的变化 玩家属性类型 测试版本中的类别包括:制作/升级、采矿、伐木、采集、食物、钓鱼、农耕、驯服、宠物、建造、旅行、航海、传送门、首领击杀等。命名词典会保留拾取、制作、收获、食用或放置过的内容。仅观察当前连接的本地角色档案。
计数器在已完成的游戏方法前后读取,并聚合成有界批次,通常每15秒一次。导入的总数永远不会成为新的进度。重生会保留同一配置文件的待处理进度;配置文件、连接和世界变更会清除该进度。原生死亡/击杀类别可能与独立观察到的战斗记录重叠: 不要把它们加在一起增量与设置变更保持独立,包括减少/重置操作。
原生回调可能遗漏那些绕过游戏方法的模组操作。计数器使用游戏内单位。受限的字典/批处理大小及背压机制优先保证游戏运行,而非收集每一个事件。若可选的原生钩子失败,战斗报告仍保持启用,状态报告会指出缺失的功能。
快照通常每30秒生成一次,包含当前生命值/最大生命值、耐力、艾特尔、护甲、负重/最大负重、舒适度、已装备武器/品质、食物及剩余持续时间、最多128项技能、位置、生物群系以及采样的移动/状态标记。检测到挂机时,常规快照默认放慢至每120秒一次;恢复输入或切换生物群系会触发更早的采样。战斗报告保持正常运行。
客户端每两秒检查一次其生物群系,当发生变化时,可以发送更早的快照。非常短暂的跨越可能会被遗漏。生物群系过渡并不能确定旅行方式或确切的跨越瞬间。
技能变化会在同一次连接内对比同一角色的邻近样本。第一个样本、不同角色、时钟回滚或超过120秒的间隔都会开启一个基线。新出现的技能也需要一个基线。增减是观察到的差异;Storyteller不会推测它们是死亡、指令还是其他模组导致的。
会话事件描述收集器在何时观察到就绪的上报连接及其结束。会话时长包含挂机时间,不包含协商前时间;它并非活跃游玩时间。进程突然失败可能导致会话缺少结束记录。
每个角色的网络所有者会观察到由此产生的生命值变化。伤害计算的是减伤后实际扣除的生命值,溢出伤害以剩余生命值为上限,并忽略零损失命中。每个玩家或生物死亡时可包含生命值损失、命中次数及按来源统计的百分比,并单独记录致命一击。未知攻击者和环境因素归入未知或明确的原因分类;持续伤害的归因仅依据可识别的游戏数据。
战斗遭遇会在观察到完全恢复后重置,或在120秒内未记录到生命值损失后重置。部分治疗可能导致总生命值损失超过最大生命值。百分比使用 已观测到的交战伤害,不保证完整伤害或因果责任百分比。生命值连续性缺口和乱序报告会被标记。缺少归属者、重启、队列限制或绕过观测方法的模组都可能留下缺口。进行中的战斗不会在重启后保留。
助攻是指在生物最后一次被观察到的遭遇中记录到的伤害,但不包括致命一击;每个账号对每个生物最多只能获得一次助攻,包括跨重生的情况。精确生物复仇关联需要匹配的世界和实体ID,而不仅仅是相同的生物种类。生命值获取可以包括食物和其他生命值变化,而不仅仅是治疗技能。
AFK默认判定为五分钟内未观察到游戏内输入。宽限期算作活跃。活跃状态大约每15秒上报一次;长时间停滞或挂起的间隔明确视为未观察,而不会归入活跃或AFK时间。这是一种启发式判断,并不能证明玩家实际在场。不会踢出玩家。
客户端会读取输入活动的时间和聚焦控制器活动,绝不会读取按键内容或聊天文本。表情动作也会被计为活动。受到伤害和船只移动并不能证明有人在场。
成功表情和已完成 玩家.放置棋子 通话记录会记录本地玩家、动作、时间和位置。当已识别的船只和建造的建筑物的网络对象被永久移除时,服务器也会将其记录下来。 移除操作无法区分是摧毁、拆解还是管理员删除,也无法识别操作者。 普通客户端卸载并非永久移除。未识别/自定义对象类型可能会缺失。
下方 BepInEx/config/VikingStoryteller/:
README-v5.md 和 schema-v5.json:起始点与字段含义,包括支持的原生统计数据。<世界ID>-事件.jsonl:每行一个版本化事件,包含稳定ID、UTC观测时间、游戏时间、来源证据和链接。<世界ID>-详情.jsonl: 例行证据:个人安置、健康状况、指标、工作样本、快照和活动。在调查摘要时在此搜索。<world-id>-work.json:待处理的工作窗口检查点。<世界-ID>-战利品.json:有界物品来源关联检查点,并非宝箱库存。<世界ID>-状态.json:精简死亡/复仇的关联与去重。<世界ID>-统计.json:每位玩家的累计总数和最新快照。状态.json:版本、功能就绪情况、协议覆盖、已接受/已拒绝/已丢弃的计数与队列。事件大约每两秒刷新一次。状态大约每十五秒保存一次,并在正常卸载时保存。事件/详细日志在接近 4 MiB 时轮转,或在 UTC 日期变更后的下一次写入时轮转。可配置的保留时长和大小限制会同时约束原始历史和压缩历史;见下文。崩溃可能导致缓冲记录丢失,而旧的轮转文件可能使历史不完整。本地原始记录包含平台账号标识符、名称、游戏内位置和游玩内容;请勿公开。
这 工具/ 文件夹包含无依赖的 Python 3.10+ 工具。这些工具由操作员单独运行;模组不会启动网页服务器。点 服务器 在普通专用服务器文件夹、收集器文件夹本身,或包含以下内容的父目录中 服务器/BepInEx/...。使用日志文件名中的数字世界ID。
python data_hub.py --server "/path/to/valheim-server" --world WORLD_ID --output "/path/to/story-reports" python preview.py --server "/path/to/valheim-server" --world WORLD_ID --output "/path/to/story-reports" --port 8766
第一条命令会创建 概述.html, summary.json,紧凑 历史.json, bosses.json 和 账本.json, 报告.json, events.jsonl,一个带索引的 事件.sqlite,UTC 日分区、按玩家导出以及 schema.json。该HTML是自包含的。第二个可选地在以下位置提供它: 仅限127.0.0.1;开放 http://127.0.0.1:8766/ 在同一台电脑上使用刷新数据。不加载任何外部脚本、分析工具或字体。
按时间段、玩家、事件类型和文本筛选;深入查看伤害百分比、来源行、技能快照和精确事件链接。常规遥测数据可从时间线中隐藏。匹配的客户端/服务器生物群系观察结果保留为证据,但只计一次。可选的托管服务器观察器包含来自本地的记录 维护/管理/剧情 存在时显示文件夹。
python query.py --database "/path/to/story-reports/events.sqlite" --player "你的维京人" --kind player_death --limit 20 python query.py --database "/path/to/story-reports/events.sqlite" --text Lox --since 2026-09-20T00:00:00-05:00
派生导出会省略平台账号 ID 和会话令牌,保留源文件/行引用,并区分不可用值与零值。UTC 观察时间是查询时钟;浏览器显示本地时间。导出反映保留的输入文件;陈旧的已生成日期/玩家文件会在重建时清除。源日志保持不变。游戏玩法导出为私有,并且是 不包含在此包中.
雅各布斯英灵神殿维京说书人配置 保留现有主开关:
发送游戏死亡报告:主客户端报告/协商开关,尽管其名称沿用至今。收集玩法死亡报告:主服务器收集与个人数据服务切换。离开输入后几秒自动挂机: 默认300,范围60–3600。举报玩家快照系统默认开启。玩家快照间隔秒数默认 30,范围 15–300;观察到的生物群系变化可以更快报告。打开属性快捷键默认 F8。编辑配置后,请重启受影响的游戏/服务器。可选的 Python 预览仅会打开其明确请求的本地端口。
模型与报告测试覆盖身份、伤害计算、相关性、挂机、快照、原生增量、重生/档案边界、有界自身属性视图、溯源、SQLite搜索以及缺失数据处理。隔离的原生游戏测试则验证真实的伤害/死亡/移除、补丁后的档案增量、协议v1/v2/v3/v4协商、序列化、自身属性回复、输入门控,以及对错误身份、令牌、重放或无效报告的拒绝。HTML包含分组工作和详细证据。
多台电脑的正常游玩以及新游戏内窗口的视觉与输入测试仍然必不可少。 无头原生测试验证其钩子和服务器数据路径,而非渲染后的客户端窗口。这是一个实验性版本,缺失或冲突的模组可能导致报告不完整。服务器会验证身份、世界、会话令牌、时间戳、所有权和载荷边界,但客户端观测结果并非反作弊证明。
Correlation 保留 2,000 条死亡记录和最多 8,192 个受害者 ID。最多保留 2,048 次遭遇及每次遭遇的 64 个来源桶。原生缓冲区上限为 512 个名称,累计原生指标上限为每位玩家 4,096 个名称。世界回滚可能复用 ID:请先保留备份,然后如果你确实想要全新的报告历史,再归档/重置对应的 Storyteller 状态。
包含 MIT 源代码和 Windows 构建脚本。请针对你自己的 Valheim/BepInEx/Harmony 程序集进行构建。游戏程序集和私有测试/管理工具不再分发。

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