新世界

创作者: sighsorry
已更新:2026-09-09 10:17:21
206KB

关于此 MOD

按计划或通过一条命令恢复《英灵神殿》世界中的区域、资源、地形和地点。选择要重置的内容,并通过简单设置保护基地。支持单人、本地主机和专用服务器。仅需BepInEx。

新世界

FreshWorld可恢复Valheim中已生成的区域、选定的资源和地形,以及选定的地点。它支持单人世界、本地主机和专用服务器。设置分为 三个部分,并每隔 24个游戏日 默认情况下。


玩家的建筑受到保护,而植被会刷新

即使范围内有玩家建筑,只要在配置中开启地点重置,地点也可以被强制重置。

又一个即使玩家建筑在范围内,位置仍被迫重置的例子




查看图片以更好地理解重置

恢复顺序

每局按以下顺序进行:

保存并等待完成 -> 重置区域 -> 随周围地形恢复资源 -> 不改变地形恢复资源 -> 重置选定位置 -> 完成

禁用的阶段会被跳过。一个阶段必须完成后才会开始下一个阶段,任何失败都会中止剩余的阶段。当两个资源组都有目标且地形半径为正时,FreshWorld 会在两者之间让出两帧,以便游戏刷新地形和碰撞数据。阶段之间没有以秒或分钟为单位的固定延迟。

如果一个区域或地点资源在30秒后仍未就绪,FreshWorld会记录其坐标和加载状态,跳过该区域,并继续运行。被跳过的区域在下一次运行时可再次尝试加载。FreshWorld只会在加载完成后释放它已打开的区域;进入该区域的玩家会保持该区域处于加载状态。阶段日志会包含超时区域的数量以及等待加载所花费的时间。

初始存档是强制性的。存档失败或180秒存档超时会导致无法开始恢复。FreshWorld不会在结束时再次请求存档:正常的自动存档和正常的关闭存档会保存结果。如果在下次存档前发生崩溃,即使单独的执行记录显示运行已完成,恢复更改也可能丢失。FreshWorld不会创建单独的备份,也不会自动恢复备份。

在托管世界时,FreshWorld会将之前保存的区块包含在内,而这些区块在游戏的正常保存流程中现已完全为空。这可以防止旧区块文件在世界重新加载后恢复已删除的对象。该修正不会添加额外的存档或配置选项,也不会移除世界中已存在的重复项。

通用:自动调度

[常规] 已启用 = true 模式 = 游戏天数 游戏日间隔 = 24 每日时间 = 05:35,17:35

启用后仅自动调度。手动命令在任一值下均可用。 关闭它会取消尚未开始的自动工作,但会保留已接受的手动请求。它不会中断正在运行的工作;配置重载将推迟到该工作完成后进行。

模式 日程
游戏天数 在每个GameDayInterval之后运行,该间隔从世界时间表基线开始计算。
每日次数 在主机操作系统的本地时区的所列HH:mm时间运行。

普通原版游戏的一天持续 30 真实分钟,即 0.5 小时默认的24天间隔大约相当于游戏内12小时,不含睡眠、暂停或时间变更。FreshWorld计算的是世界游戏时间,因此睡眠和时间修改模组会影响实际经过的时间。它不计入玩家上次访问某区域以来的时间。

重新打开一个启用了相同时间表的世界会保留其基准进度。更改活动时间表则会开始新的基准。关闭再重新开启自动化也会重新开始:GameDays 会等待一个完整间隔,而 DailyTimes 会等待下一个计划时间。禁用期间的截止时间不会被补上。

DailyTimes 不会补算世界关闭期间错过的时间。如果自动化保持启用且日程相同,之前会话中已观测并排队的自动运行可能会保持待执行状态。禁用自动化也会取消该待执行运行。

只有激活的调度字段会被使用。GameDays 会忽略 DailyTimes;DailyTimes 会忽略 GameDayInterval;Enabled=false 会同时忽略两者。编辑未使用的字段不会重置已接受的手动请求。即使自动化被禁用,模式仍必须为 GameDays 或 DailyTimes。

每次运行都会包含所有已启用的恢复阶段。资源没有单独的每日时段列表:当DailyTimes=05:35,17:35且Resources=true时,两个时段都会包含资源。

重置:恢复目标

[重置] 区域 = true 资源 = true 地形资源ID = rock4_copper,silvervein 资源地形半径 = 20 资源ID = 地点 = false 地点ID = Hildir_crypt,Hildir_cave,Hildir_plainsfortress,SunkenCrypt4,Crypt2,Crypt3,Crypt4,MountainCave02,Mistlands_Giant1,Mistlands_Excavation1,Mistlands_DvergrTownEntrance1,Mistlands_DvergrTownEntrance2,Mistlands_DvergrBossEntrance1,CharredFortress,TheHole01,MorkBorg

区域、资源和位置会切换各自阶段的开启或关闭,而不会清除ID列表。额外位置阶段默认禁用;设置Locations=true以启用。现有cfg值会保留。

资源列表 行为
资源ID 仅恢复选定资源,不恢复其周围地形。默认为空。
地形资源ID 在ResourceTerrainRadius米范围内恢复选定资源与地形。默认为铜和银。

例如,ResourceIds=Beech1,Birch1 会恢复这些树木,而不会重置周围的地形。将 rock4_copper,silvervein 保留在 TerrainResourceIds 中,即可在恢复这些矿石的同时恢复其附近的地形。

资源与资源安全区适用于两组。任一资源列表均可为空;若两者均为空,则跳过资源阶段。同时列于两组的ID会在TerrainResourceIds中运行一次。单个列表内的重复项、通配符及命令参数均会被拒绝。

资源地形半径适用 仅限地形资源ID值为 0 时,会从两个列表中恢复资源,但不执行此地形操作。它不会禁用由区域或位置阶段执行的地形更改。

LocationIds 使用精确的地点 ID,可附带可选的 :variant 后缀。默认列表包含 16 个 ID,其中包括 TheHole01 和 MorkBorg。现有的 cfg 选择会被保留;如果需要,可以将这些 ID 添加到现有列表中。空的地点列表无效;使用 Locations=false 可在保留其选择的同时禁用该阶段。当前游戏中不可用的资源或地点 ID 会被记录并跳过。如果没有识别出任何选定的 ID,则跳过其阶段或组。默认选择并不保证每个 ID 都存在于每个游戏或模组配置中。

哪些区域会受影响?

区域阶段考虑 所有先前生成的区域,而不仅仅是玩家周围当前加载的区域。它会将重置区域标记为未生成;当这些区域再次加载时,游戏会重新生成它们。

当 Zones=true 时,资源和位置补充仅使用初始计划中受基地标记保护、且在补充操作前刚刚生成的区域。已重置的区域不会再次包含,其他失败或跳过的区域也不会作为后备目标加入。区域阶段的失败会停止补充。

当 Zones=false 时,补充内容会考虑当前生成的所有区域,然后应用各自的 ID 和保护过滤器。此范围是固定的,没有 cfg 选择器。

所有阶段也会使用下文所述的本次运行的玩家保护机制,排除受玩家保护的目标区域。此排除不会扩展补充候选集。

Resources=false 和 Locations=false 只会禁用其补充阶段。它们不会将资源或地点从更早的区域重置中排除。同样,资源和地点 ID 列表也不会限制区域阶段的目标。

保护:玩家、基地标记和关卡边界

每个玩家的区域及其八个相邻区域(3×3区域)始终受保护,包括在SafeZones=0时也是如此。 在初始保存完成后,FreshWorld会记录托管服务器已知的活跃玩家所在区域。在每次目标尝试或重试之前,它会再次添加这些玩家当前所在的区域。每个被记录的区域会在该轮运行剩余时间内保护其周围3×3范围免受直接区域重置、资源与地形重置、仅资源重置以及位置重置的影响,即使玩家离开也依然有效。因此,移动中的玩家可以在运行期间保护更多区域。下一轮运行会以全新的记录集开始。此固定保护适用于单人、本地主机和专用服务器世界,且不添加任何cfg选项或位置访问追踪。

此保护会跳过直接目标;它不会将地形编辑裁剪到保护区域。来自保护区外目标的资源或位置地形半径仍可触及受保护地形,而在其外部进行的区域重置仍可修复共享的地形边界。安全区标记保护具有相同的边界限制。

[Protection] ZoneSafeZones = 1 ResourceSafeZones = 0 LocationSafeZones = 0 AlwaysProtectedPrefabs = Player_tombstone EpicLootProtection = true EpicLootBountyProtection = false PieceBlacklist = fire_pit

三个安全区设置分别独立控制额外的基地标记保护。ZoneSafeZones仅接受 1或2;ResourceSafeZones和LocationSafeZones也接受 0它们不会改变固定的3×3玩家保护范围或AlwaysProtectedPrefabs:

价值 该阶段的保护
0 仅限资源和地点:忽略基地标记的保护。
1 标记区域:保护包含标记的区域。
2 3 x 3:保护标记区域及其八个相邻区域。

ZoneSafeZones=0无效,在现有cfg中也是如此。请在运行维护前将其明确设置为1或2。无效值会阻止新工作,且不会被转换或钳制。Configuration Manager仅为区域提供1和2两个选项,服务器端验证也会拒绝来自直接cfg编辑或管理员客户端的0值。

默认的 LocationSafeZones=0 会移除所选地点内玩家建造的部件。 它取代了旧的强制行为;不再有单独的强制选项。AlwaysProtectedPrefabs以及独立的玩家、入侵和已启用的EpicLoot保护仍然有效。

ResourceSafeZones=0允许在保留的基础区域内使用所选资源补充。资源阶段不会直接选择任意玩家建造的部分进行删除,但地形恢复可能会改变支撑它们的地面。

如果你选择 ZoneSafeZones=1 和 LocationSafeZones=1,零地点补充可以是正常的:区域阶段已经覆盖了未受保护的地点,并且剩余的基础区域也受到保护,不会被地点恢复影响。FreshWorld 不会为了增加结果数量而自动降低保护。

玩家建造的部件会自动检测为基地标记。 墙壁、地板、船只、陷阱、树液采集器和模组建筑部件,只要其注册预制件带有 Piece 组件且保存的创建者非零,就不需要在列表中单独列出。这也包括玩家放置的使用 Piece 的植物。自然遗迹和没有创建者元数据的生成物体不算自动标记。因此,孤立的建筑可以保护额外的区域。

黑名单 从自动Piece标记中排除以逗号分隔的精确预制体ID。默认 火坑 意思是孤立的营火无法保护区域。其他标记仍可保护该区域及其中的营火。空值不会排除任何棋子。此列表改变的是标记检测,而非重置时删除哪些对象。

前者 玩家放置物体 白名单不再被使用或转换。没有Piece组件的预制体不会仅仅因为带有创建者元数据就成为建筑标记。

FreshWorld 会检查已保存的世界对象,而无需加载其区域。每次保护扫描都会对遇到的每个预制件分类一次,并扩展每个标记区域的保护范围一次,即使该区域包含许多建筑。在一次运行中,保护结果最多可复用十秒;重新扫描会重新检查预制件注册。在该间隔期间建造或移动的对象可能要到下次扫描才会反映出来。

用锤子建造的飞船带有创建者元数据,除非被列入黑名单,否则会自动获得保护资格。使用原版生成指令创建的飞船缺少该元数据,不属于保护标记。保护一艘飞船并不保证地形恢复会保留其周围的地面。

Player_tombstone 是一个独立的内置基础标记,同时也是 AlwaysProtectedPrefabs 的默认条目。墓碑在 s_owner 中存储角色/档案所有者 ID,而放置的建筑则使用 s_creator。因此 FreshWorld 检查墓碑时不需要建筑创建者条件。PieceBlacklist 不会禁用这两条规则中的任何一条。从 AlwaysProtectedPrefabs 中移除 Player_tombstone 后,其现有的基于 SafeZones 的标记保护仍然有效,包括 SafeZones=2 时的 3 x 3 范围。

当该阶段的SafeZones值大于0时,基地标记保护生效。 资源安全区为0且位置安全区为0会绕过基地标记,但不会绕过始终保护的预制体。每个阶段保留各自的安全区策略。仅靠基地标记不会赋予单个物体删除免疫,也不会阻止其保护区外的地形编辑。

始终保护的预制体

始终保护的预制体 是一个服务器同步的精确预制件ID列表,默认为 玩家墓碑每个匹配对象自身的区域(1×1)不受直接区域、资源和位置重置的影响,无论安全区域或物件黑名单如何设置。无需物件组件、创建者元数据、已加载的场景对象或在线玩家。列表中预制体的自然生成和命令生成实例也符合条件。空列表将禁用此附加策略。

列出的对象无法被FreshWorld直接或递归删除。其受保护的地形块也会跳过FreshWorld的地形恢复以及来自相邻区域请求的边界修复。来自受保护区域外部的原生资源或地点放置仍可跨越其边界;该列表不会阻止其他模组、玩家操作或普通伤害。

FreshWorld 在保存后记录初始对象,并在每次尝试或加载重试前重新检查每个目标区域。已观察到的区域在当前运行中保持保护状态,即使对象移动或消失。下一次运行将重新开始。通过 cfg 热重载或管理员的 Configuration Manager 更改的设置将应用于下一次运行;它们无法更改当前运行的保护状态。

此列表独立于EpicLoot开关。即使某个EpicLoot专属保护被禁用,列表中列出的EpicLoot预制体仍受此规则保护。普通基地标记和内置的Jotun入侵保护仍然各自独立。

巨人入侵

FreshWorld保护包含每个的1x1区域 黑冰核心 或 黑冰_核心_外层,即使 SafeZones=0 也是如此。如果它们位于区域边界的两侧,则两个区域都会受到保护。保护取决于目标对象,而不是事件的半径或激活状态。它不需要玩家、创建者元数据、建筑标记或 Jotunn。没有额外的 cfg 选项,这些固定预制件也不需要添加到 AlwaysProtectedPrefabs 中。

FreshWorld在初始存档后捕获目标区域,包括未加载的对象,并在每次目标尝试或加载重试前检查到达情况。已观测区域在该轮结束前保持保护。剩余冰在后续轮次中继续保护其所在区域,即使事件已结束。冰消失后,下一轮可在其他保护规则约束下重置该区域。无冰的事件记录不保护区域;缺失或无效的事件元数据不会禁用基于对象的保护或维护。

FreshWorld 在这些受保护的地形区块中也会跳过地形恢复和边界修复,包括来自相邻区域的请求。现有的玩家、基地和 EpicLoot 地形策略保持不变。来自受保护区域外部的原生资源或地点放置仍可能延伸跨越其边界;此保护不会裁剪生成的预制体,也不会控制其他模组。

黑冰核心 和 黑冰核心外壳 对直接和递归删除FreshWorld增加额外防护,包括事件元数据缺失时的情况。正常的玩家摧毁、入侵完成和奖励不受影响。Mörkhalla中的初始冰块不属于此独立对象防护范围。

活跃入侵区域内的其他地带若无其他保护生效则可能重置。附近的生物可能被移除,之后在游戏正常条件下重新生成;其确切时间和排列不会被保留。FreshWorld不会重建缺失的冰面、修复损坏的事件、完成事件或发放奖励。残留的活跃事件记录和无主冰面需要单独诊断;缩小保护范围不会修复它们。

使用 新世界入侵 用于检查就绪主机当前的入侵状态。它会报告每个活动事件的ID、中心和半径、区域内的核心冰和外层冰ZDO数量,以及最近的核心冰和外层冰坐标、区域和水平距离。报告的事件半径是诊断信息,不是FreshWorld的保护范围。ZDO数量包括未加载区域中的对象;场景数量显示主机上的实例,而非客户端上的可见性。此操作读取当前主机数据,而非磁盘上的存档文件。报告也会写入主机日志。

该报告按位置匹配冰块,而非按事件归属。重叠的事件区域可能会计入同一物体。核心缺失是需要调查的原因,而不是哪个模组将其移除的证据;核心ZDO并不能证明目标有效。活跃区域之外的冰块会被计入,但不会被移除。检查每次请求时扫描主机的ZDO注册表一次,不会加载区域、保存世界、更改归属、结束事件或启动恢复。检查错误会使维护状态保持不变。

EpicLoot藏宝图

与 EpicLootProtection=true (默认值),FreshWorld会保护尚未找到的EpicLoot宝箱和待生成的宝藏生成控制器。每个保护仅针对其自身区域(1x1),防止直接进行区域、资源和位置恢复,包括当ResourceSafeZones或LocationSafeZones为0时。保护不要求Piece组件、创建者元数据、已加载区域或拥有者在线。EpicLoot不是必需依赖项。该设置通过ServerSync由服务器权威控制;cfg重载和已接受的管理员编辑将在下次运行时生效,而非当前运行中。

相邻区域仍可进行修复,包括资源与地点的放置、地形编辑,以及延伸至宝藏区域的地形边界修复。宝箱和待处理宝藏控制器本身受到保护,不会被FreshWorld删除,但其周围地形可能会发生变化。设置 EpicLootProtection=false 同时禁用宝藏区域保护和单个宝藏物品删除免疫。赏金保护在下方有独立设置。现有的玩家、基地和墓碑规则仍然单独生效。

FreshWorld 会在维护前存档后获取初始宝藏快照,并在每次尝试或加载重试前重新检查每个目标区域中已保存的对象。一旦被观测到,受保护区域在该轮运行中会保持受保护状态。已找到或已被移除的宝箱在下一轮运行中不再触发此宝藏规则,但普通基地标记保护仍可能适用。待处理的控制器必须包含宝藏生成数据,不能标记为悬赏,且不能已完成放置。

受保护的宝藏区域没有到期时间或数量限制:未找到的宝箱可以无限期保留其区域。这不会重新生成先前丢失的宝箱、清除旧地图标记、取消契约、发放奖励或改变玩家进度。已识别的存档标记已对照EpicLoot 0.14.10进行了验证。其他重置工具不在此保护范围内。

史诗战利品悬赏

史诗战利品赏金保护 默认处于禁用状态。将其设置为 真 用于保护待处理悬赏生成控制器、悬赏目标及其所有附加单位。即使设置SafeZones=0,每个对象当前所在区域(1x1)也会被排除在直接区域、资源和位置重置之外。FreshWorld还会阻止直接或递归删除这些对象。如果目标及其附加单位占据不同区域,则每个区域都会受到保护;这不是地图标记或原始生成点周围的固定区域。

FreshWorld会读取已保存的世界标签,因此保护不需要已加载的组件、创建者元数据或在线任务所有者。它会在维护前存档后捕获初始集合,并在尝试或加载重试前重新检查每个目标区域,以检测新增或移动的对象。被观测的区域在整个运行期间保持保护状态。下一次运行会重新开始。相邻的地形编辑和边界修复仍可能影响受保护区域,这与宝藏保护的情况相同。

该开关独立于 史诗战利品保护,使用服务器同步,并支持服务器配置热重载。更改将在下次运行时生效。将其设为false可同时禁用赏金区域保护和赏金目标删除免疫。无需依赖EpicLoot。

EpicLoot在悬赏任务被放弃时,可能会留下带有标记的生物。只要标记仍然存在,这些物体就会继续保护它们的区域。FreshWorld不会推断任务状态、移除已放弃的目标、改变玩家进度、发放奖励或修复先前丢失的目标。标记识别已针对EpicLoot 0.14.10进行了检查。

手动命令和权限

使用游戏的F5控制台。如果不可用,请在游戏的启动选项中加入-console。原生自动补全可补全命令名称,并提供status和invasions作为参数。FreshWorld无需启用devcommands。

命令 动作
新世界 使用当前主机配置请求一次恢复。
新世界状态 显示正在运行或待处理的工作,或在空闲时显示已应用策略和最后记录的结果,而不启动恢复。
新世界入侵 检查当前活跃的巨人入侵以及宿主目标ZDO,不改变世界。

只接受这三种命令形式。重置设置和保护规则已在上文及 cfg 说明中解释。

手动恢复请求不会等待自动计划轮询间隔。它们仍然需要一个就绪的世界、完成初始30秒宽限期、未暂停的主机、没有冲突的存档或维护、有效的cfg以及有效的权限。宽限期在世界就绪时启动一次;不会在每次运行前重新添加。入侵检查需要就绪的世界和有效的权限,但在维护期间或重置设置无效时仍然可用。

现有的待处理或进行中的请求不会被覆盖。每个请求者每秒限执行一条命令;同一秒内重复的命令(包括状态查询和入侵)将被静默忽略。请求者会收到接受、等待原因以及完成或失败的消息。

在自己的游戏进程内托管世界的人,无需管理员条目即可运行命令。专用服务器自身的控制台也可以在没有玩家连接的情况下运行这些命令。这包括经过身份验证的 RCON 工具,它们会在服务器进程内执行已注册的命令,而无需 Valheim 玩家连接。RCON 提供方自行控制其身份验证;FreshWorld 不会收到 RCON 身份信息,并会继续验证当前服务器、世界、会话和运行状态。

每个作为游戏客户端连接的请求者都必须是通过服务器 adminlist.txt 验证的管理员。这包括在同一台电脑上连接到专用服务器的单独游戏客户端。客户端管理员标志、声明的 Steam ID 以及匹配的 IP 地址均不被信任为授权依据。

手动请求属于当前世界、连接和已验证权限。断开连接、失去管理员权限或切换世界会取消已排队或正在进行的手动工作。已做出的更改不会回滚或自动重试。该命令无法覆盖已捕获的ID或保护值。来自较早会话的请求必须在重新连接或重启后重新提交。

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!