Skip to content

更新日期:

2025年3月23日

谷歌文档原文一共63页

⊿ 原文:Loot Modification

- 📄

介绍

本文档描述了《SCUM》中的自定义物资功能。自定义物资是通过创建和修改各种JSON文件来实现的。熟悉JSON的基础知识是前提条件,因此如果您从未听说过JSON,或者只是需要复习一下相关知识,这里有一些有用的链接:

JSON代码百科

JSON代码教程

JSON代码介绍

大多数与自定义物资相关的JSON文件可以通过游戏中的各种管理员命令导出,而其中一些则需要手动创建。JSON文件所在的根路径是:

对于多人服务器

ts
<Server>\SCUM\Saved\Config\WindowsServer\Loot

对于单机游戏

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot

JSON文件在游戏启动时加载,任何后续的更改都可以通过

ts
#ReloadLootCustomizationsAndResetSpawners

命令重新加载,以便快速测试修改内容。稍后会详细描述提到的命令,以及导出、创建和修改与自定义物资相关的JSON文件的过程

在深入探讨命令和自定义物资修改之前,我们会先介绍一些概念和必要的功能,这些内容对于有效的自定义物资至关重要。 如果你希望立即开始操作,可以直接跳到导出部分。

- 📄

稀有度

稀有度在自定义物资中被广泛使用。它决定了从一组对象中选择某个对象的概率。这里的 对象 是一个抽象的术语,可以指任何东西。你可以暂时将其理解为 物品 。在一组对象中,每个对象都被分配了一个稀有度,其值可以是以下几种: 丰富(Abundant):被选中的概率是 极稀有(Extremely Rare) 的32倍。

  • 普通(Common):被选中的概率是 极稀有(Extremely Rare) 的16倍。

  • 不常见(Uncommon):被选中的概率是 极稀有(Extremely Rare) 的8倍。

  • 稀有(Rare):被选中的概率是 极稀有(Extremely Rare) 的4倍。

  • 非常稀有(Very Rare):被选中的概率是 极稀有(Extremely Rare) 的2倍。

  • 极稀有(Extremely Rare):与其他 极稀有 对象在该组中被选中的概率相同。

例如,假设你有以下一组对象(在这个例子中,对象是物品):

ts
【原文代码】
{
Apple (Abundant),
Banana (Common),
Lemon (Uncommon),
Kiwi (Rare),
Mango (Very Rare),
Watermelon (Extremely Rare)
}
ts
【代码翻译】
{
苹果(丰富),
香蕉(普通),
柠檬(不常见),
猕猴桃(稀有),
芒果(非常稀有),
西瓜(极稀有)
}

苹果被选中的概率是香蕉的2倍,是柠檬的4倍,是猕猴桃的8倍,是芒果的16倍,是西瓜的32倍。

另一方面,香蕉被选中的概率比苹果少2倍,比柠檬多2倍,比猕猴桃多4倍,比芒果多8倍,比西瓜多16倍。

其他水果相对于剩余水果的被选中概率也可以通过类似的方式推导出来

另一种理解稀有度的方式是通过一个饼图,其中每个对象所占据的区域面积决定了它被选中的概率。对于上面的例子,轮盘赌模型看起来是这样的:

稀有度饼图

正如你所见,苹果占据了最大的区域,因此它被选中的概率最高;而西瓜占据的区域最小,因此被选中的概率最低。其他水果则介于两者之间。

让我们再来看一个例子:

ts
{
Apple|Common,
Banana|Common,
Lemon|Rare,
Watermelon|Very Rare
}
ts
{
苹果(普通)
香蕉(普通)
柠檬(稀有)
西瓜(非常稀有)
}

这一次,某些稀有度 缺失 了,而且有两种水果具有相同的稀有度。具有相同稀有度的对象会被归为一组。为了确定组内被选中的对象,会再掷一次骰子,所有具有相同稀有度的对象被选中的机会均等。让我们看看上面例子中的饼图: 稀有度饼图 在这种情况下,苹果或香蕉被选中的概率是柠檬的4倍,是西瓜的8倍。在上面的轮盘赌中,首先会选中苹果或香蕉,然后会再掷一次骰子来决定选中苹果还是香蕉,二者的被选中概率均为50%。 了解如何通过稀有度选择对象是很重要的,因为这种机制在本文档的其余部分中被用于物品选择、节点选择和子预设选择。如果你还不清楚节点和子预设是什么,不用担心,它们会在接下来的部分中进行解释。

- 📄

自定义物资节点


概述在解释什么是自定义物资节点节点之前,我们先了解一下引入它们的动机。假设我们有一个酒吧,它可以生成以下物品:
  • 啤酒(Beer)

  • 苦艾酒(Absinthe)

  • 薯片(Chips)

  • 榛子(Hazelnuts)

  • 单手厨刀(1H_KitchenKnife)

我们必须以某种方式为这些物品分配概率,因为榛子和啤酒的生成概率相同是不合逻辑的——至少在酒吧里是这样。我们已经可以通过稀有度来指定概率,所以让我们试试这种方法:

ts
【原文命名】
Beer (Abundant)
Absinthe (Very Rare)
Chips (Uncommon)
Hazelnuts (Rare)
1H_KitchenKnife (Extremely Rare)
ts
【中文命名】
啤酒(丰富) 
苦艾酒(非常稀有)
薯片(不常见)
榛子(稀有)
单手厨刀(极稀有)

这种方法的问题在于,这些概率在酒吧中是有意义的,但在其他地方可能就不一定适用了。例如,如果我们在一个住宅厨房中生成物品,单手厨刀被找到的概率应该比榛子或苦艾酒更高。此外,如果我们处理的是大量的物品,稀有度本身可能就无法提供足够的精细度。一种解决方案是使用数字来表示概率,而不是稀有度,但这在调整和维护时可能会变得繁琐。

我们通过将物品及其稀有度分类到一个树形结构中来解决这个问题。每个树节点都有一个名称和稀有度。父节点代表一组具有某些共同特征的物品。例如,父节点可以是一个酒吧,其中包含在酒吧中合理的物品。此外,酒吧节点还可以包含其他子分类,例如饮料、食品和武器,这些子分类中包含适合这些分类的物品。让我们把上面的5个物品放入一个树形结构中:

ts
【原文命名】
 Bar
   Drinks
       Beer
       Absinthe
   Food
       Chips
       Hazelnuts
   Weapons
       1H_KitchenKnife
ts
【中文命名】
 酒吧
   饮料
      啤酒
      苦艾酒
   食物
      薯片
      榛子
   武器
      单手厨刀

所以,第一步是将物品组织成一棵树。下一步是分配稀有度。每个节点的稀有度是相对于其兄弟节点的稀有度而言的。因为这是一个酒吧,饮料应该比食物更常见,而比武器常见得多。此外,啤酒应该比苦艾酒更常见,薯片应该比榛子更常见。我们可以这样分配稀有度:

ts
【原文命名】
 Bar
   Drinks(Abundant)
       Beer(Abundant)
       Absinthe(Rare)
   Food(Uncommon)
       Chips(Abundant)
       Hazelnuts(Common)
   Weapons(Very Rare)
       1H_KitchenKnife
ts
【中文命名】
 酒吧
   饮料(丰富)
      啤酒(丰富)
      苦艾酒(稀有)
   食物
      薯片(丰富)
      榛子(普通)
   武器(非常稀有)
      单手厨刀

注意,酒吧(Bar)和单手厨刀(1H_KitchenKnife)节点没有分配稀有度。酒吧没有稀有度,因为它是根节点;单手厨刀也没有稀有度,因为它没有兄弟节点,所以在武器(Weapons)节点内是唯一的选择。

剩下的问题是,如何从上面这样的树中选择一个物品。答案是从左到右,或者用树的术语来说,是从根节点到叶节点。在上面的例子中,酒吧(Bar)节点是根节点,所以选择从这里开始。接下来需要选择酒吧的子节点。

酒吧节点有三个子节点:饮料(丰富)、食物(不常见)和武器(非常稀有)。子节点的选择是根据稀有度进行的,如在稀有度部分所解释的那样。假设选择了食物(Food)节点。现在过程继续进行,直到到达叶节点。食物节点有两个子节点:

薯片(丰富)和榛子(普通)。

选择是根据稀有度进行的,假设选择了薯片(Chips)节点。

薯片节点是叶节点,选择过程在这里停止。玩家将生成薯片这个物品。

即使是最大的树,选择过程也是一样的。选择从根节点开始,根据稀有度选择子节点,并一直进行,直到到达叶节点。

叶节点始终是物品。

包含子节点的节点始终是物品的集合。

我们称这种类型的树为自定义物资节点,而这种树中的节点称为自定义物资节点节点(或简称为节点)。




节点ID

为了在某处使用节点,它们必须以某种方式被引用。例如,假设我们在酒吧中有三个位置:

  • 抽屉,包含酒吧厨房的工具

  • 冰箱,包含各种饮料

  • 酒吧的桌子,上面可以放置饮料或食物

我们将使用上一节中的节点来指定每个位置可以生成哪些物品:

  • 抽屉分配到 武器(Weapons) 节点

  • 冰箱分配到 饮料(Drinks) 节点

  • 桌子分配到 饮料(Drinks) 和 食物(Food) 节点

在上面的例子中,我们使用了节点名称来指定哪些节点为哪些位置提供物品。对于示例中这样简单的树结构来说,这没问题,但问题是游戏中实际使用的自定义物资节点非常庞大,节点名称并不一定唯一。

例如,我们可能在酒吧和警察局都有一个名为 武器(Weapons) 的节点。我们必须有一种更精确的方式来指定引用了哪些节点。这就是节点ID的用武之地。

每个节点都有一个ID,用于唯一标识它。特定节点的节点ID是通过在其节点名称前附加其祖先节点的名称,并用点号分隔所有名称来形成的。

现在,我们使用ID而不是原始名称来为上述位置分配节点:

  • 抽屉分配到 酒吧.武器Bar.Weapons 节点
  • 冰箱分配到 酒吧.饮料Bar.Drinks 节点
  • 桌子分配到 酒吧.饮料Bar.Drinks 和 酒吧.食物Bar.Food 节点

另一种看待节点ID的方式是将它们视为文件系统中的路径。根节点和内部节点(物品集合)可以被视为文件夹,而叶节点(物品)可以被视为文件。

唯一的显著区别在于,路径段的分隔符是英文点号 . ,而不是英文斜杠 /




JSON 代码规范

节点是通过 JSON 对象来指定的。每个节点是一个包含以下两个属性的 JSON 对象:

名称类型描述
物品名称字符串 String节点的名称。必须在同级节点中唯一
稀有度字符串 String节点的稀有度。可以是 稀有度 部分列出的值之一

包含其他节点(集合)的节点有一个额外的属性:

名称类型描述
子节点 Children对象数组 Array of objects此节点的子节点

代表物品的节点(叶节点)可以有一个额外的属性:

名称类型描述
变体 Variations字符串数组 Array of strings某些物品在逻辑上是相同的物品,但有不同的 外观皮肤 。例如,同一件衣服可能有不同的颜色。这些颜色变体可以通过物品节点的变体数组来指定。当选择一个带有变体的物品节点时,将有相等的概率选择该节点所代表的物品或其变体之一

这是上一节中树的 JSON 示例:

ts
{
	"Name": "Bar",
	"Children": [
		{
			"Name": "Drinks",
			"Rarity": "Abundant",
			"Children": [
				{
					"Name": "Beer",
					"Rarity": "Abundant"
				},
				{
					"Name": "Absinthe",
					"Rarity": "Rare"
				}
			]
		},
		{
			"Name": "Food",
			"Rarity": "Uncommon",
			"Children": [
				{
					"Name": "Chips",
					"Rarity": "Abundant"
				},
				{
					"Name": "Hazelnuts",
					"Rarity": "Common"
				}
			]
		},
		{
			"Name": "Weapons",
			"Rarity": "Very Rare",
			"Children": [
				{
					"Name": "1H_KitchenKnife"
				}
			]
		}
	]
}



导出内置节点

到目前为止,我们一直使用一个简单的自定义物资节点来说明一些基本概念。现在是时候导出游戏中实际使用的自定义物资节点了。为此,需要使用两条命令:

ts
#ExportDefaultLootTree
ts
#ExportCurrentLootTree

#ExportCurrentLootTree 将在 自定义 部分进行解释。

#ExportDefaultLootTree 导出自定义物资节点的默认状态。

默认状态是指在进行任何自定义物资之前的初始状态,也是游戏发布时的状态。

执行此命令后,你将在以下文件夹中获得自定义物资节点:

对于多人服务器

ts
<Server>\SCUM\Saved\Config\WindowsServer\Loot\Nodes\Default

对于单机游戏

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Nodes\Default

默认自定义物资节点在导出为单个文件时过于庞大,难以管理,因此它会被导出到多个 JSON 文件中,每个文件包含 ItemLootTreeNodes 节点的每个直接子节点的 JSON 数据。ItemLootTreeNodes 是游戏中所有节点的根节点。导出后的文件夹结构如下所示:

默认自定义物资文件明细

你可以在此处这里查看生成的默认自定义物资节点。

在你导出默认自定义物资节点之后,你还没有进行任何自定义。

你只是得到了一个用于分析和修改的起点。

ItemLootTreeNodes 是游戏中所有自定义物资节点节点的根节点。它是一个容器,包含了游戏中所有可能的物品类别及其子节点的定义。这些子节点进一步细分了物品的类别和具体物品,形成了一个层次化的自定义物资节点结构。




自定义

本节将指导你完成游戏中自定义物资节点的自定义。

我们将逐步向你展示如何修改和测试游戏中某个特定对象被检查后掉落的物品。

请注意,游戏对象并不一定需要使用节点来指定它们掉落的物品。

它们可以直接引用物品,而不使用任何节点。但由于我们正在介绍节点,我们将涵盖这种情况。

游戏中不同对象掉落物品的不同方式在 生成器预设 部分中有详细说明。

我们现在将完全自定义下图中红色垃圾桶掉落的内容。 SCUM游戏截图

为了演示,我们的想法是让红色垃圾桶掉落饮料和食物。

饮料掉落的概率应该比食物更高。

当选择掉落饮料时,我们希望掉落的是水或啤酒,其中啤酒应该很少掉落。

当选择掉落食物时,我们希望以相等的概率掉落苹果或香蕉。

为了实现上述目标,我们需要根据描述创建一个自定义物资节点的 JSON 文件。

以下是这个示例的完整 JSON 自定义物资节点:

ts
{
	"Name": "ItemLootTreeNodes",
	"Children": [
		{
			"Name": "Trash",
			"ChildrenMergeMode": "Replace",
			"Children": [
				{
					"Name": "Drinks",
					"Rarity": "Abundant",
					"Children": [
						{
							"Name": "Water_05l",
							"Rarity": "Abundant"
						},
						{
							"Name": "Beer",
							"Rarity": "Rare"
						}
					]
				},
				{
					"Name": "Food",
					"Rarity": "Common",
					"Children": [
						{
							"Name": "Apple"
						},
						{
							"Name": "Banana"
						}
					]
				}
			]
		}
	]
}

这里也有一个 GitHub 链接。

在上面的 JSON 中,有一个属性在之前的 Json 代码规范 部分中没有提到,那就是集合(bag)上的 ChildrenMergeMode 属性。

它的作用是指导自定义物资系统如何合并具有相同 ID 的两个集合的子节点。在上面的自定义物资节点中,自定义节点是一个具有 ID ItemLootTreeNodes.Trash 的集合。

在默认自定义物资节点中,已经存在一个具有该 ID 的集合,但它与我们正在创建的集合完全不同。

自定义物资系统在处理具有相同 ID 的集合时有两种选择:

  • 完全替换:将默认集合的子节点完全替换为自定义集合的子节点。

  • 合并子节点:将子节点合并,使得结果集合中的子节点名称相同的会被更新,并且新的子节点会被添加。


第一种行为是通过为冲突的集合添加 **子项合并模式ChildrenMergeMode** 属性,

并将其值设置为 替换Replace 来实现的。

第二种行为是通过完全省略 子项合并模式ChildrenMergeMode 属性,

或者将其值设置为 替换/更新UpdateOrAdd 来实现的。

我们为自定义集合选择了 替换Replace 作为合并模式,

因为我们并不关心默认 物品自定义物资节点节点.垃圾ItemLootTreeNodes.Trash 集合中包含什么内容。

为了帮助您更好地理解合并是如何工作的,以及合并后的最终结果是什么,您可以使用#ExportCurrentLootTree命令。

它的功能与 #ExportDefaultLootTree 相同,但有两个重要的区别:

  • 自定义物资节点会导出到命名为[Current]的文件夹中,而不是[Default]。

  • 导出的结果是实际用于决定生成哪些物品的自定义物资节点,它是默认自定义物资节点与您创建的任何自定义物资节点合并后的结果。如果您没有任何自定义物资节点的自定义设置,那么当前自定义物资节点与默认自定义物资节点是相同的。

    那么现在我们有了一个自定义物资节点,我们需要让红色垃圾桶掉落水瓶、啤酒、苹果和香蕉。为此,请按照 以下步骤操作:

  • 1.启动游戏。我们建议使用单机模式进行节点实验。

  • 2.使用以下命令将你的角色传送到指定位置:

ts
#Teleport -493223 -423063 611

 红色垃圾桶应该就在你周围。

  • 3.使用命令
ts
#ExportDefaultLootTree

 导出默认自定义物资节点。游戏会告诉你自定义物资节点已导出到哪里。在单机游戏中,路径应该是:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Nodes\Default


  • 4.默认情况下,红色垃圾桶会掉落来自 物品自定义物资节点节点.垃圾ItemLootTreeNodes.Trash 节点包中的物品。

 稍后你会学到 如何 确定哪些游戏对象掉落什么物品,它们是使用节点、固定的物品集合,还是通过其他方式来指定掉落结果。

 目前,只需记住红色垃圾桶可以掉落 物品自定义物资节点节点.垃圾ItemLootTreeNodes.Trash 节点包中的任何物品。

 打开[Trash.json]**文件并查看它。

 我们暂时不会使用这个文件,只是浏览一下,了解一下节点的结构以及红色垃圾桶可能掉落哪些物品。

  • 5.既然我们将要修改节点并测试结果,那么让红色垃圾桶每次被搜索时都掉落物品会很有帮助。我们不想浪费时间等待生成器冷却,尤其是当游戏对象什么也不掉落的时候。首先,我们需要增加游戏对象掉落物品的概率。

 下载 GeneralZoneModifiers.json 文件,并将其放置在以下文件夹中:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot

 这个文件会使地图上所有的检查生成器(examine spawners)掉落物品的概率增加。

 具体来说,掉落概率会增加100倍,基本上所有的检查生成器都将有100%的机会掉落物品。

GeneralZoneModifiers.json 文件的相应部分详细解释了这一点。

 目前,只需按照文件中的通用区域修改器(general zone modifiers)设置即可。

 通过这种方式,你可以在测试时更高效地查看和调整红色垃圾桶的掉落内容,而无需担心冷却时间和空掉落的问题。

  • 6.由于你在 Loot 目录中添加了一个新的自定义设置(通用区域修改器),你需要告诉游戏重新加载它。

 执行

ts
#ReloadLootCustomizationsAndResetSpawners

#ReloadLootCustomizationsAndResetSpawners 命令以重新加载所有自定义物资设置。

 执行该命令后,游戏会将检查生成器掉落物品的概率提高100倍,并重置所有检查生成器的冷却时间。

  • 7.尝试搜索红色垃圾桶,然后连续重复执行下面这个命令。
ts
#ReloadLootCustomizationsAndResetSpawners

 如果你这样做,你会发现你可以反复搜索红色垃圾桶并从中获得物品。  这使得你可以快速测试掉落的物品内容。

  • 8.在以下路径中创建一个名为 Override 的文件夹:
ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Nodes

 游戏会从 Override 文件夹中读取所有的自定义物资节点自定义设置。

  • 9.在 Override 文件夹中创建一个名为 MyTrash.json 的文件,并将之前制作的自定义 ItemLootTreeNodes.Trash 节点的 JSON 内容复制粘贴到该文件中。

 或者,你可以直接下载 链接 文件到你的 Override 文件夹中。

  • 10.使用命令
ts
#ReloadLootCustomizationsAndResetSpawners

 来应用并测试自定义物资节点的自定义设置。  这个命令会重新加载你放在 Override 文件夹中的自定义物资节点配置,并重置所有检查生成器的冷却时间,让你能够立即看到修改后的掉落效果。

  • 11.使用命令来应用并测试自定义物资节点的自定义设置。
ts
#ReloadLootCustomizationsAndResetSpawners


  • 12.完成测试后,别忘了删除 GeneralZoneModifiers.json 文件,除非你希望在常规的单机游戏中所有物品的生成概率都为100%。

这应该是你现在需要了解的关于节点的全部内容。稍后,你将学习如何从自定义的生成器预设 中引用节点。

常见问题 在JSON文件中出现小的语法错误并导致自定义物资无法正常工作,这是很常见的问题。

当自定义物资没有按预期工作时,我们建议检查游戏日志以查找错误。

例如,如果我们修改了MyTrash.json文件,并且错误地放置了一个逗号,输出日志中可能会包含类似以下内容:

ts
LogItemSpawningDataRegistry: Error: Failed to parse
'E:/Projects/SCUM/Main/SCUM/Saved/Config/Windows/Loot/Nodes/Override/MyTrash.json'.

我们承认这个错误提示并不十分具体,但至少你知道应该在哪个文件中查找错误。

除了语法错误之外,与自定义物资相关的游戏日志还包含有关自定义物资的其他有用信息。

与自定义物资相关的日志类别包括LogItemSpawning、LogItemLootTree和LogItemSpawningDataRegistry,因此你可以使用这些关键词来过滤游戏日志。

- 📄

导出

我们已经导出了以下列出的所有内容。你还会找到所有区域和一些城镇,这样你就可以在单机游戏中练习修改,而无需像在多人游戏中那样按位置导出。你可以从这里下载:

文件下载

生成默认自定义物资文件#ExportDefaultItemSpawningParameters
ts
#ExportDefaultItemSpawningParameters

这个命令会创建一个包含自定义物资系统可以生成的所有物品参数的.json文件。

例如,不包括手工制作的物品。

  • 在多人游戏中输入
ts
#ExportDefaultItemSpawningParameters

 会导出位于以下路径的 Parameters.json 文件:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Items\Default


  • 在 单机游戏 中输入
ts
#ExportDefaultItemSpawningParameters

 会导出位于以下路径的 Parameters.json 文件路径为:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Items\Default


  • 我们将以M82A1为例来解释这些行的含义:
ts
{
  "Id":"Weapon_M82Al",
  "IsDisabledForSpawning": false,
  "AllowedLocations": [
    "Coastal",
    "Continental",
    "Mountain"
],
  "CooldownPerSquadMemberMin": 0,
  "CooldownPerSquadMemberMax": 0,
  "Variations":[
    "Weapon_M82Al_Black",
    "Weapon_M82Al_Desert",
    "Weapon_M82A1_Snow"
],
  "ShouldOverrideInitialAndRandomUsage": false,
  "InitialUsageOverride": 0,
  "RandomUsageOverrideUsage": 0
},


1

ts
"IsDisabledForSpawning": false

  表示该物品可以被生成。如果你将其改为 true ,则该物品不会生成。



2

ts
"AllowedLocations"
Coastal - 只在地图的海岸区域生成的物品。
Continental - 只在地图的大陆区域生成的物品。
Mountain - 只在地图的山区生成的物品。


3

ts
"CooldownPerSquadMemberMin": 0

 如果你的小队中有任何人获取了该物品,那么整个小队在设置的最小时间(以小时为单位)内将无法再次找到该物品。

4

ts
"CooldownPerSquadMemberMax": 0

 如果你的小队中有任何人获取了该物品,那么整个小队在设置的最大时间(以小时为单位)内将无法再次找到该物品。

5

ts
"CooldownPerSquadMemberMin": 1

  和 ⤵️

ts
"CooldownPerSquadMemberMax": 4

 那么某个物品的冷却时间将介于1到4小时之间。

6

 如你所见,这些都是M82A1的所有皮肤变体。如果你在任何生成器预设的节点或物品设置中放入Weapon_M82A1,它也可以生成其变体。

ts
  "Variations":[
    "Weapon_M82Al_Black",
    "Weapon_M82Al_Desert",
    "Weapon_M82A1_Snow"
],


7

ts
"ShouldOverrideInitialAndRandomUsage": false

 它不会使用生成器预设中的使用设置,而是会使用此文件中的

ts
"InitialUsageOverride"

  和 ⤵️

ts
"RandomUsageOverride"


8

ts
"InitialUsageOverride": 0

  值以百分比表示,如果你将其设置为80,它将移除物品最大使用次数的80%。

9

ts
"RandomUsageOverrideUsage": 0

  值以百分比表示,如果你将其设置为20,它将从最大使用次数中随机移除0-20%。

10

  例如:我们的汽油罐有40次使用次数。我们将

ts
"InitialUsageOverride": 80

  和 ⤵️

ts
"RandomUsageOverrideUsage": 20

假设   "RandomUsageOverrideUsage": 20   随机选择了10,那么总共会移除 90% 的 40 次使用次数。

在这种情况下,我们的汽油罐将生成时只有 4 / 40 次使用次数。


创建Parameters代码文件Overriding/Parameters.json

为了修改你的 Parameters.json ,你需要创建一个 Override 文件夹。

1  对于多人游戏,前往 【以下提供的路径】下并创建 Override 文件夹。
ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Items


2 对于单机游戏,在以下路径创建它:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Items\


3 你可以在 Override 文件夹中创建任意数量的 .json 文件,并随意命名它们,这纯粹是为了方便组织。

4 你可以将任意数量的物品放入你创建的 .json 文件中,具体如何组织取决于你自己的需求。以下是一个这样的文件夹 示例文件下载

5 在这个文件夹中,你可以看到我们有默认的 Default 文件夹和我们创建的覆盖 Override 文件夹。

6 在覆盖文件夹中,我们创建了两个 .json 文件,并根据自己的命名习惯,给它们取个名字。

在这些 .json 文件中,我们覆盖了一些物品的设置。

ts
{
   "Parameters": [
    {
      "Id": "Banana",
      "IsDisabledForSpawning": false,
      "AllowedLocations": [
        "Coastal",
        "Continental",
        "Mountain"
      ],
      "CooldownPerSquadMemberMin": 0,
      "CooldownPerSquadMemberMax": 0,
      "Variations": [],
      "ShouldOverrideInitialAndRandomUsage": false,
      "InitialUsageOverride": 0,
      "RandomUsageOverrideUsage":
    },
    {
      "Id":"Apple",
      "IsDisabledForSpawning": false,
      "AllowedLocations": [
      "Coastal",
      "Continental",
      "Mountain"
      ],
      "CooldownPerSquadMemberMin": 0,
      "CooldownPerSquadMemberMax": 0,
      "Variations": [],
      "ShouldOverrideInitialAndRandomUsage":false,
      "InitialUsageOverride": 0,
      "RandomUsageOverrideUsage": 0
    }
  ]
}



导出自定义物资预设#ExportDefaultItemSpawnerPresets

该命令会导出游戏中正在使用的全部默认生成器预设。

1  在多人游戏中输入

ts
#ExportDefaultItemSpawnerPresets

  这将在你的配置文件夹中创建一个 Loot 文件夹,路径为:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Default



2  如果你在单机游戏中输入

ts
#ExportDefaultItemSpawnerPresets

  它将保存在以下路径:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Spawners\Presets\Default



3  在 Default 文件夹中,你可以找到所有导出的生成器预设。你无法创建新的预设,只能修改现有的。

4  名称中包含 Examine 的预设被分配给需要 搜索(按F键) 才能掉落物品的对象。例如,

ts
  **Buildings-Kitchen-Examine_Cabinet**

被分配给房屋中的厨房橱柜。

5  名称中包含 World 的预设被分配给在周围生成物品的生成器。 例如,

ts
  **Buildings-Garage-Residential-World_Shelf**

被分配给住宅区车库中的架子,并掉落诸如汽油罐或汽车电瓶等物品。


特定区域导出自定物资预设#ExportItemSpawnerPresetsInZone
ts
#ExportItemSpawnerPresetsInZone

该命令会导出在特定区域中使用的全部生成器预设。

1  位置只能通过在地图上指定一个矩形区域或使用区域名称来定义。

2 该命令不会生成一些景观(Landscape)预设、农业(Farming)、角色(Character)和空投(Cargo drop)生成器预设,这些需要手动添加,稍后步骤中会详细说明。

3  所有区域的导出工作都应在多人游戏中完成,因为在单机游戏中,只有围绕你的角色的一定范围内才会加载数据,因此无法有效导出。


按区域名称导出:

1  在多人游戏中输入

ts
#ExportItemSpawnerPresetsInZone A2

这将创建以下文件夹:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\A2



2  在单机游戏中输入

ts
#ExportItemSpawnerPresetsInZone A2

这将创建以下文件夹:

ts
%LocalAppData%\SCUM\Saved\Config\WindowsNoEditor\Loot\Spawners\Presets\Override\A2



3  在 A2 文件夹中,你可以找到在A2区域中使用的全部生成器预设。
  在文件夹底部,你会找到 Zones.json 文件。

按区域名称导出

4  这个文件包含了矩形的 左上角右下角 位置,而在这个例子中,矩形对应的是A2区域。

ts
{
	"Zones": [
		{
			"TopLeft":"X=9600.000 Y=-295198.375",
			"BottomRight": "X=-295198.375 Y=-599996.750"
		}
	]
}



5Zones 文件决定了给定文件夹中所有生成器预设的位置边界;在下一段中会更清楚地解释这一点。


按矩形位置导出:

1  打开任何管理员辅助程序,或者打开 SCUM游戏交互地图

2  找到你想要修改的位置,例如我们将要修改 蒂斯诺(Tisno):

按矩形位置导出

3  如果我们输入

ts
#ExportItemSpawnerPresetsInZone A2

我们将获得整个A2区域的生成器预设,但我们只想指定 蒂斯诺(Tisno)。

4  该命令的格式为:

ts
#ExportItemSpawnerPresetsInZone X Y X Y Name



5  因此,我们需要输入矩形左上角位置的 X 和 Y 坐标,然后输入矩形右下角位置的 X 和 Y 坐标,名称则完全是为了方便组织。

  指定的名称将是创建的文件夹的名称。

6  右键单击矩形的左上角位置并选择 复制TP位置 ,你会得到以下值:

ts
#Teleport -15613.1299 -472342.2348 0X= -15613.1299, Y= -472342.2348



7  将这个位置保存下来,然后复制矩形右下角的位置,你会得到以下值:

ts
#Teleport -83853.2402 -516124.1469 0X= -83853.2402, Y= -516124.1469



8  现在,我们需要将第一个位置和第二个位置的 X 和 Y 坐标放入命令中,并为方便理解输入 (根据自己命名习惯) 作为名称。这里为了方便下面的示例,我将命名为 Tisno

9  因此,输入以下命令:

ts
#ExportItemSpawnerPresetsInZone -15613.1299 -472342.2348 -83853.2402 -516124.1469 Tisno

  该命令已为指定位置导出了130个生成器预设。

按矩形位置导出01

10  我们现在创建了一个名为 Tisno 的文件夹,位于以下路径:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\Tisno

11  在这个文件夹中,我们可以找到该位置使用的所有生成器预设,并且可以看到命令生成了相应的 Zones.json 文件。


- 📄

根据区域生成预设


  • Zones.json 文件决定了特定文件夹中生成器预设的边界范围。
  • 如果某个文件夹中没有 Zones.json 文件,它将使用父文件夹中的 Zones.json 文件(即子文件夹中的 Zones.json 会覆盖父文件夹中的 Zones.json )。
  • 如果在整个 Override 文件夹中都没有包含 Zones.json 文件,那么它将使用全局位置(预设将在整个地图上生效)。

1  我们将使用我们已经导出的内容作为示例,并再次导出蒂斯诺港口的一个小矩形区域(我们已经导出了A2区域和蒂斯诺本身)。

2  因此,我们将使用相同的步骤,通过港口本身的左上角和右下角位置来导出该位置。

3  左上角位置:

ts
#Teleport -52954.4182 -493783.9695 0

4  右下角位置:

ts
#Teleport -77080.9405 -510602.7629 0

5  现在,我们将这些X、Y坐标以及名称(想要命名的名称) 示例: TisnoPort 放入命令中。完整代码示例请看第 6 条

6  示例的完整代码:

ts
#ExportItemSpawnerPresetsInZone -52954.4182 -493783.9695 -77080.9405 -510602.7629 TisnoPort

7 现在,地图上的情况如下:

Zones

8 现在,我们在A2文件夹中有了 Zones 文件,Tisno 文件夹中也有,TisnoPort 文件夹中也有。位置的优先级是从最小到最大。

9  所以在这个例子中,A2 的配置将适用于 A2 区域内的所有地方,但不包括 TisnoTisnoPort

10 在 Tisno 文件夹中完成的配置将优先使用该文件夹中的生成器预设,而不是A2文件夹中的生成器预设。

11 同样, TisnoPort 文件夹中的配置将优先使用该文件夹内的生成器预设,而不是 Tisno 文件夹中的生成器预设。


修改较小的区域

1  如果你愿意,你可以逐栋房子进行修改,但请注意,管理员服主工具上的位置可能并不完全准确。

2  如果你想要逐栋房子进行修改,最好在游戏中获取位置,这最好由两名玩家完成(一名玩家站在左上角位置,另一名玩家站在右下角位置)。

3  管理员应在到达目标位置后输入命令

ts
#Location

4  在获取游戏中位置后,你应该将生成的 X 和 Y 坐标转换为管理员命令中所需的格式。


重叠区域

1  如果你遇到如下所示的情况,红色矩形将拥有自己的自定义物资预设。

2  但是,红色矩形的右上角部分会被绿色矩形覆盖,因为绿色矩形设置的位置更小。

3  因此,重叠区域的所有生成器预设将优先使用绿色矩形文件夹中的设置。

4  例如:如果你在红色矩形中设置石头掉落武士刀(Katana),而在绿色矩形中设置石头掉落MK18,那么在重叠区域的每块石头都将掉落MK18。

重叠区域


指定全局修改区域内掉落GeneralZoneModifiers.json

1  如果我们想在地图上选择一个特定的矩形区域或整个区域来全局修改该区域内的掉落物品,我们可以使用这种方法。

2  你需要手动在根目录的 Loot 文件夹中创建一个名为 GeneralZoneModifiers.json 的文件,路径如下:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot

3  使用示例,可查看下方的最新代码文件: 打开文件

以下是代码示例(可能不是最新的哦🙂‍↕️

ts
{
	"Modifiers": [
		{
			"Zones": [
				{
					"Name": "FishFactory",
					"TopLeft": "X=-327211.8142 Y=-346843.5702",
					"BottomRight": "X=-363868.8911 Y=-383500.647"
				}
			],
			"SpawnerProbabilityMultiplier": 100,
			"ExamineSpawnerProbabilityMultiplier": 100,
			"ExamineSpawnerQuantityMultiplier": 5
		},
		{
			"Zones": [
				{
					"Sector": "A1"
				}
			],
			"ExamineSpawnerQuantityMultiplier": 5
		}
	]
}



1  我们创建了 GeneralZoneModifiers.json ,并添加了鱼类加工厂的 左上角右下角 位置。

2  使用 Name 纯粹是为了方便命名罢了。

3  这将全局增加我们在该特定区域内指定的掉落物品。

4  你也可以像上图所示那样全局增加整个区域的掉落物品。

5  这些设置基本上是将你选择的区域的掉落设置与 ServerSettings.ini 中的掉落设置相乘,并乘以你输入的数值。

6  例如,我们将A1区域的 ExamineSpawnerQuantity设置为5

ts
ExamineSpawnerQuantity: 5

如果你的 ServerSettings.ini 中该值为0.5,那么最终结果将是2.5(5 * 0.5 = 2.5)。

7  我们还将整个鱼类加工厂的设置调整为上图中显示的数值。


查看容器名称#SetShouldPrintExamineSpawnerPresets

该命令会显示你正在从哪个对象名称中获取掉落的生成器预设。
*  要找出游戏中哪个检查(Examine)预设被分配给了哪个对象名称,正确的执行代码,你需要输入如下:

ts
#SetShouldPrintExamineSpawnerPresets true

*  在搜索一个对象后,分配的生成器预设将打印在你的聊天框和日志中。

*  你可以使用以下行来过滤日志,以找到所有你使用该命令搜索过的内容:Examine spawner preset。

*  在SCUM.log和Loot.log中打印的示例行如下:

ts
LogItemSpawning: Examine spawner preset: Buildings-Office-Police-Examine_File_Cabinet.

Loot.log示例


单机游戏 - 查看容器名称
在 单人游戏模式下,检查对象名称后的日志路径

在单机游戏中,你进行的所有搜索操作都会被记录在 SCUM.log 文件中,该文件位于以下路径:

ts
C:\Users\%username%\AppData\Local\SCUM\Saved\Logs

多人游戏 - 查看容器名称
在 多人游戏模式下,检查对象名称后的日志路径

在多人游戏中,你进行的所有搜索(按F键)操作都会被记录在 Loot.log 文件中,该文件位于以下路径:

ts
Server\SCUM\Saved\SaveFiles\Logs\Loot.log




重置自定义物资配置文件

重置你在 Config/Loot 中所做的所有自定义物资设置。同时重置检查生成器,使它们无需等待冷却时间(如果它们最近被搜索过),即可重新生成物品。附近的生成器不会被重置,因此你需要等待冷却时间结束后才能测试这些。或者,你可以在单机游戏中进行测试,并在每次修改自定义物资后创建一个新角色。

如果你希望快速测试你所做的自定义设置,这个命令非常有用。一个常见的工作流程可能是:

1  进行你选择的自定义物资(不要忘记保存修改后的文件)。

2  执行命令。

ts
#ReloadLootCustomizationsAndResetSpawners

3  通过搜索在第一步中受影响的容器(或多个容器)来测试自定义物资。

生成器预设

生成器预设决定了你在世界中或搜索物品时会找到哪些自定义物资。

你搜索的每一个物品都被分配了一个生成器预设,每一个可搜索的物品也是如此。


- 📄

生成器预设说明:

1 名称中包含 Examine 的预设:这些预设被分配给需要通过 搜索 才能掉落物品的对象。例如, Buildings-Kitchen-Examine_Cabinet.json 被分配给你在房屋中搜索的厨房橱柜。

2 名称中包含 World的预设:这些预设被分配给在周围生成物品的生成器。例如:架子上的气罐、洗衣机上的衣服等。

3 只有在 Override 文件夹中所做的更改才会修改生成器预设的设置,其他提取的内容都是它们的默认值。 如果仅将生成器预设添加到 Override 文件夹中,这些更改将是全局性的,因为你没有通过 Zones.json 指定位置。

4 地图上已存在的物品在修改生成器预设后不会被替换。

5 修改某个生成器预设后,你需要等待物品过期并重新生成,或者使用命令

ts
#ReloadLootCustomizationsAndResetSpawners

来重新加载可搜索对象。此命令不会影响周围生成或 World 生成的物品。

6 最佳操作方式:在多人游戏中提取你需要的所有内容,然后将整个 Loot 文件夹复制到单机游戏的以下路径:

ts
C:\Users\%username%\AppData\Local\SCUM\Saved\Config\WindowsNoEditor



7 在单机游戏中,你可以创建一个新角色,周围的生成物品也会重新加载。


生成器预设设置

我们将以 Buildings-Factory-Quarry-World_Production_Line.json 为例,来说明生成器预设设置的具体含义:

这里是使用#ExportDefaultItemSpawnerPresets 生成的文件

ts
{
   "Nodes": [
   	{
   		"Rarity": "Uncommon",
   		"Ids": [
   			"ItemLootTreeNodes.Quarry.Crafting",
   			"ItemLootTreeNodes.Quarry.Tools.Heavy",
   			"ItemLootTreeNodes.Quarry.WorkClothes.Torso",
   			"ItemLootTreeNodes.Quarry.WorkClothes.Legs",
   			"ItemLootTreeNodes.Quarry.WorkClothes.Feet",
   			"ItemLootTreeNodes.Quarry.Other.Ammo",
   			"ItemLootTreeNodes.Quarry.Other.Explosives",
   			"ItemLootTreeNodes.Quarry.Other.Flares",
   			"ItemLootTreeNodes.Quarry.Other.Money",
   			"ItemLootTreeNodes.Quarry.Other.Backpacks.Belt_Pistol_Holster",
   			"ItemLootTreeNodes.Quarry.Other.Backpacks.Hiking.Other",
   			"ItemLootTreeNodes.Quarry.Other.Backpacks.Plain",
   			"ItemLootTreeNodes.Quarry.Other.Backpacks.School",
   			"ItemLootTreeNodes.Quarry.Other.Backpacks.WaistBags"
   		]
   	}
   ],
   "Probability": 25,
   "QuantityMin": 1,
   "QuantityMax": 1,
   "AllowDuplicates": false,
   "ShouldFilterItemsByZone": true,
   "InitialDamage": 5,
   "RandomDamage": 35,
   "InitialUsage": 5,
   "RandomUsage": 35
}
生成概率说明

1Probability :25,物品掉落的概率为25%,乘以你在 ServerSettings.ini 文件中设置的值以及区域修正值。

2  如果你想要100%的掉落概率,可以直接删除整个 Probability 这一行。

3  注意,如果你将 Probability 设置为100,它仍然会与 ServerSettings.ini 文件中的值和区域修正值相乘,因此你的掉落概率不会是100%。


生成数量说明

1QuantityMin : 1,从生成器预设中掉落的物品的最小数量。

2QuantityMax : 1,从生成器预设中掉落的物品的最大数量。

3  如果你将 QuantityMin : 4 和 QuantityMax : 9,生成器预设将从4到9中选择一个数字,并掉落相应数量的物品。


允许重复说明

1AllowDuplicates : false,- 不会给你两个相同的物品。

2  即使生成器预设决定给你7个物品,但其中有3个是重复的,你只会收到4个物品。

AllowDuplicates : true,- 生成器预设可以多次生成相同的物品。


掉耐久度说明

1InitialDamage : 5,- 物品应该以100%的耐久度生成,但生成器预设会对其造成5%的耐久度伤害,因此你将得到95%耐久度的物品。

2RandomDamage : 35,- 从0到35中选择一个数字,并对最大耐久度造成相应百分比的伤害。

3  在这个例子中,我们有 InitialDamage : 5 和 RandomDamage : 35 选择了25,我们的物品将生成在70%的耐久度(100 - 5 - 25 = 70)。


使用次数说明

1InitialUsage : 5,- 从物品的最大使用次数中移除5%,如果物品有20次使用次数,它将移除1次。

2RandomUsage : 35,- 从0到35中选择一个数字,并对最大耐久度造成相应百分比的伤害。

3  在这个例子中,我们有 InitialUsage : 5 和 RandomUsage : 35 选择了15,我们的物品将生成为16/20次使用(20 - 20% = 20 - 4 = 16)。


根据区域筛选物品

1  这指的是在 Parameters.json 文件中设置的 沿海 (Coastal)、 大陆 (Continental)和 山区 (Mountain)区域位置。

2ShouldFilterItemsByZone : true,- 表示将使用 Parameters.json 中设置的区域位置。如果将其设置为 false,则可以在任何地方生成。

3  (例如:你的节点中有10个物品,而生成器预设设置在一个位于大陆区域的对象上。任何未在 AllowedLocations 中包含 大陆 (Continental)的物品都不会在那里生成)。

4  你可以使用以下命令导出 Parameters.json 文件:#ExportDefaultItemSpawningParameters,文件将位于以下路径:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Items\Default

5  请注意,如果你想要编辑 Parameters.json,你需要将物品添加到在 Override 文件夹中创建的文件中,这在 Overriding Parameters.json ** 部分中有解释。文件位置为:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Items\Override

6  沿海(Coastal)—— 只会在地图的海岸区域生成的物品。

7  大陆(Continental)—— 只会在地图的大陆区域生成的物品。

8  山区(Mountain)—— 只会在地图的山区区域生成的物品。

9  例如,你永远不会在海边找到圣诞老人外套,因为它没有被标记为 沿海 (Coastal):

ts
"Id": "Santa_Jacket",
"IsDisabledForSpawning": false,
"AllowedLocations":[
"Continental",
"Mountain"
],
"CooldownPerSquadMemberMin": 0,
"CooldownPerSquadMemberMax": 0,
"Variations": [],
"ShouldOverrideInitialAndRandomUsage": false,
"InitialUsageOverride": 0,
"RandomUsageOverrideUsage": 0

10  你也不会在大陆(Continental)或沿海(Coastal)区域找到战术夹克,因为它只包含 山区 (Mountain)属性:

ts
"Id": "Tactical_Jacket_01_04",
"IsDisabledForSpawning": false,
"AllowedLocations": [
"Mountain"
],
"CooldownPerSquadMemberMin": 0,
"CooldownPerSquadMemberMax": 0,
"Variations":「

整理生成器预设

我们将修改我们在上述步骤中已经提取的生成器预设。

1  现在,我们已经提取了在A2、Tisno和TisnoPort中使用的全部生成器预设。

2  由于我们的 Override 文件夹中包含了这三处提取的内容,我们将按照优先级将它们放入不同的文件夹中,以便更好地进行组织,因为它们都位于 A2 区域。 Override的A2

3  既然 TisnoPort 会覆盖 Tisno 的生成器预设,而 Tisno 又会覆盖 A2 的生成器预设,那么我们将按照这种顺序将它们放置在文件夹中,正如在 Zones.json 文件中所解释的那样。

4  服务器的路径指引

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\A2\Tisno\TisnoPort

TisnoPort的A2


修改生成器预设

1  有 4 种不同的方式可以修改某个生成器预设中的物资:固定物品(FixedItems)、物品(Items)、节点(Nodes)和子预设(Subpresets)。

2  我们将逐步解释每种方式的使用方法,以及它们的含义和用途。


- 📄

固定物品

固定物品用于当你希望列表中的所有物品都被生成时。

  固定物品(FixedItems)会忽略生成器预设的所有设置,除了:

 初始损坏(InitialDamage)、

 随机损坏(RandomDamage)、

 初始使用次数(InitialUsage)、

 随机使用次数(RandomUsage)、

 生成后动作(PostSpawnActions)

  复制并粘贴一个带有“固定物品(FixedItems)”的生成器预设的链接:

FixedItems文件下载

  FixedItem 代码示例:

ts
{
	"FixedItems": [
		"Weapon_M82A1",
                "Weapon_MK18",
                "2H_Katana"
	],
	"QuantityMin": 1,
	"QuantityMax": 2,
	"AllowDuplicates": true,
	"ShouldFilterItemsByZone": false,
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}

1  打开我们已经提取到“Override”文件夹中的任意一个生成器预设,我们选择了位于以下路径的“TisnoPort”文件夹中的 Street-Residental-Examine_Trash_Container_Red.json  文件:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\A2\Tisno\TisnoPort
ts
{
	"Nodes": {
		{
		"Rarity": "Uncommon",
		"Ids": {
				"ItemLootTreeNodes.Trash"
				}
		}
	},
	"Probability":20
	"QuantityMin":1
	"QuantityMax":1,
	"AllowDuplicates":false,
	"ShouldFilterItemsByZone":true,
	"InitialDamage":50,
	"RandomDamage":40,
	"InitialUsage":50,
	"RandomUsage":40,
	"PostSpawnActions": {
		"SetAmmoAmount SmallStash",
		"SetCashAmount SmallStash",
		"SetClothesDirtiness DirtyClothes"
	}
}

2  这个生成器预设包含一个节点,可能会掉落一些物品,但我们希望它掉落特定的物品或多个物品。

3  我们将从最新的 FixedItems文件下载 中获取代码,并用它替换

  Street-Residental-Examine_Trash_Container_Red.json  文件中的内容。

FixedItem 文件代码示例:

ts
{
	"FixedItems": [
		"Weapon_M82A1",
                "Weapon_MK18",
                "2H_Katana"
	],
	"QuantityMin": 1,
	"QuantityMax": 2,
	"AllowDuplicates": true,
	"ShouldFilterItemsByZone": false,
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}

4  我们在生成器预设中增加了三个物品。为了立即测试这个功能,你可以使用这个命令:

ts
#ReloadLootCustomizationsAndResetSpawners

现在,当你在 TisnoPort 的红色容器中获取物资时,你将获得以下所示的物品

SAM20250317-005504


物品

 当你想添加一些物品时,你需要为它们指定一个稀有度

 复制带有「物品」的预设链接

 生成器预设中包含的「物品」取决于预设本身的稀有度(Rarity)、概率(Probability)、最小数量(QuantityMin)和最大数量(QuantityMax)。


1 我们将以上面链接中的生成器预设为例

2 我们将把它添加到我们在上述步骤中已经提取的生成器预设之一中

3 前往以下的路径并选择任意一个生成器预设

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\A2\Tisno

4 我们选择 Landscape-Foliage-Examine_Aloe_Vera

5 从上面的链接中复制代码并替换  Landscape-Foliage-Examine_Aloe_Vera 中的代码。

现在,我们在蒂斯诺地区获取的每株芦荟都将使用这个生成器预设。

ts
{
	"Items": [
		{
			"Rarity": "Abundant",
			"Id": "Weapon_M82A1"
		},
		{
			"Rarity": "Common",
			"Id": "1H_Hatchet"
		},
		{
			"Rarity": "Uncommon",
			"Id": "2H_Katana"
		}
     	],
        "Probability": 20,
	"QuantityMin": 1,
	"QuantityMax": 2,
	"AllowDuplicates": true,
	"ShouldFilterItemsByZone": false,
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}

6 在选定区域搜索芦荟后,首先你有几率获得由概率定义的任何物资

7 如果你会获得任何物品,数量取决于你在 QuantityMin 和 QuantityMax 中设置的值,在这种情况下,你会获得1到2件物品

8

稀有度较低的物品会有更高的掉落几率,正如稀有度 部分所解释的那样。 sam20250317


子预设

 如果你希望在某个生成器预设中包含多种类型的生成预设,使用子预设(Subpresets)会更加方便。在我们的例子中,我们在子预设中使用了固定物品(FixedItems)。

 如果子预设没有被分配稀有度,它们默认为不常见(uncommon)。如果你想为它们分配稀有度以增加或减少掉落几率,应该按照以下方式操作。

复制带有「子预设」的预设链接

1 我们将以  Buildings-Armory-TV_Bunker-Examine_Weapon_Locker_Lockpick_Tier_4 为例

ts
{
	"Subpresets": [
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_AWP_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_AWP_Ammo_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_AWM_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_AWM_Ammo_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_M82A1_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_M82A1_Ammo_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_SVD_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_SVD_Ammo_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_M249_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_M249_Ammo_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_RPK_Vault_Pack"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Special_Packages-Vault-Examine_RPK_Ammo_Vault_Pack"
		}
	]
}

2 我们在这里使用「子预设」,是因为我们希望多种「固定物品」预设能够生成。
3 它们的稀有度相同,因此生成的几率也相同。
4 如果我们想更改“子预设”或者查看它们包含的内容,我们需要在下方路径中找到它们。

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Default

5 我们将使用 Special_Packages-Vault-Examine_RPK_Vault_Pack ,并将其在「Default」文件夹中打开。

ts
{
	"FixedItems": [
		"Weapon_RPK-74",
		"ScopeRail_AK47",
		"WeaponSights_V3_Holographic"
	],
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}

6 如果生成了这个「子预设」,我们就会得到其中包含的「固定物品」。

7 要更改它们包含的内容,你可以直接打开一个子预设并更改其中的物品。


节点

1 关于如何完全使用节点的内容:物资树节点

2 我们会提供两种方法,教你如何在生成器预设中使用它们。

3 复制粘贴节点的链接到你的生成器预设中:点击链接

4 多个节点按稀有度分开:点击链接


按稀有度分组

1 你可以按稀有度对节点进行分组。当你的生成器预设在决定你会获得哪个节点时,你可以将多个节点添加到相同的稀有度中。例如:

ts
{
	"Nodes" :[
		{
			"Rarity": "Uncommon"
			"Ids":[
				"ItemLootTreeNodes.workshop.Tools",
				"ItemLootTreeNodes.Workshop.WorkClothes.Feet",
				"ItemLootTreeNodes.workshop.WorkClothes.Torso",
				"ItemLootTreeNodes.Workshop.WorkClothes .Legs",
				"ItemLootTreeNodes.workshop.Crafting",
				"ItemLootTreeNodes.workshop.LightsFire"
			]
		},
		{
			"Rarity": "Rare"
			"Ids":[
				"ItemLootTreeNodes.Trash"
			]
		}
},

2 你会有更大的机会获得被归类为“不常见”稀有度的节点组合,而不是被单独归类为“稀有”稀有度的节点。

3 当你在一个稀有度分类中有多个节点时,这些节点本身仍然有自己的稀有度。我们在分组中指定的稀有度只是决定了这个分组节点的稀有度。

4 在这个例子中,我们有:

- Workshop.Tools,它是 「不常见(Uncommon)」 的,

ts
"Name": "ntools",
"Rarity": "Uncommon",
"Children": [

- Workshop.WorkClothes,它是 「常见(Common)」 的

ts
"Name": "workClothes",
"Rarity": "Common",
"PostSpawnActions": [
	"SetClothesDirtiness_Dirtyclothes"

- Workshop.Crafting,它是 「常见(Common)」 的

ts
"Name": "Crafting",
"Rarity": "Common",
"Children": [
	{

- Workshop.LightsFire,它是“非常稀有”的  ````ts:line-numbers "Name": "LightsFire", "Rarity": "uVeryRare", "Children": [ ````

5 在我们的生成器预设选择了这个节点组之后,它仍然会根据这些节点内部的稀有度来进行选择,因此根据它们各自的稀有度,某些物品的掉落几率会有所不同。

6 为了给特定节点分配期望的稀有度,请查看下面的示例。


按稀有度分组

1 你可以像上面展示的那样按稀有度分开节点,但这里是一个包含更多节点的例子:

ts
"Nodes": [
	{
		"Rarity": "Uncommon"
		"Ids":[ "ItemLootTreeNodes.Workshop.Tools" ]
	},
	{
		"Rarity":"Common"
		"Ids":[ "ItemLootTreeNodes.Workshop.WorkClothes.Feet"]
	},
	{
		"Rarity": "Rare"
		"Ids":[ "ItemLootTreeNodes.Workshop.WorkClothes.Torso" ]
	}.
	{
		"Rarity": "VeryRare"
		"Ids":[ "ItemLootTreeNodes.Workshop.WorkClothes.Legs"]
	},
	{
			"Rarity": "Uncommon"
			"Ids":[ "ItemLootTreeNodes.Workshop.Crafting" ]
	},
	{
		"Rarity": "Uncommon"
		"Ids":[ "ItemLootTreeNodes.Workshop.LightsFire" ]
	}
]

2 生成器预设会随机决定从这个列表中选择哪个节点,稀有度越低,被选中的几率越高。

3 在生成器预设决定了你会获得哪个节点后,你只能获得该节点中包含的物品。


多种方式

1 你可以通过多种方法修改生成器预设。

2 最好的例子是游戏中已经有的内容,我们将打开位于以下路径的 Landscape-Examine_GroundRocks_Snow.json 文件:

ts
\Loot\Spawners\Presets\Default

代码示例
ts
{
	Items": [
		{
			"Rarity": "Abundant"
			Id":"Stone Small"
		},
		{
			"Rarity":"Common"
			"Id": "Stone"
		},
		{
			"Rarity":"Uncommon"
			"Id":"Snowballs_0l"
		},
		{
			"Rarity": "VeryRare"
			Id":"Snowballs 02
		}
	],
	"FixedItems": [
		"Stone Small"
		"Snowballs_0l"
	],
	"QuantityMin": 1,
	"QuantityMax": 2,
	"AllowDuplicates": true,
	"ShouldFilterItemsByZone": false,
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}

2 这个生成器预设表明,你总是会获得 Stone_Small 和 Snowballs_01 ,正如在 FixedItems 中所述。你还将从 「 Items 」 部分获得 1 到 2 件物品,正如在 QuantityMin 和 「 QuantityMax 中所述:

3 你可以向任何生成器预设添加任意数量的方法,将 FixedItems 与 Items / Subpresets / 节点(Nodes) 结合使用最为方便。


地形、丧尸、容器和农业掉落物

 当你导出特定地点的生成器预设时,它不会提供丧尸、容器、农业和高达机器人掉落物的生成器预设,也不会提供一些地形生成器预设,比如石头的预设。

 为了修改这些生成器预设,你需要将它们从 【下方提供的路径】 文件夹中取出,并添加到你提取的文件夹中(如果你将它们添加到“Override”文件夹中,它们将会全局更改)。

ts
\Loot\Spawners\Presets\Default

注意 ,这些生成器预设有很多。例如:有53个人偶生成器预设,如果你希望人偶不掉落任何物品,或者掉落特定物品,你需要修改所有这些预设。

1 前往以下路径:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Default

2 我们在这里选取几个预设:

- Landscape-Examine_GroundRocks

- Special_Packages-Cargo_Drops-Examine_ASVal_CargoDrop

- Character-Puppets-Military-Examine_SK_Millitary_Zombie_03

- Farming-Examine_Cabbage

3 为了修改它们,你需要将整个预设复制粘贴到你想要的区域。在这个例子中,我们已经提取了 A2 区域的文件夹:

ts
Server\SCUM\Saved\Config\WindowsServer\Loot\Spawners\Presets\Override\A2

4 我们将这些预设放在 A2 区域文件夹中,并使用我们在 FixedItems 中链接的代码,为每个预设进行修改。

5 现在,我们已经用期望的 FixedItems 替换了它们。在 A2 区域搜索的每一块石头都将掉落 M82A1、MK18 和武士刀。

6 如果你搜索到 Military_Zombie_03,它也会掉落这些物品。

7 如果你找到 ASVal_Cargodrop 预设,你也会获得这 3 件物品。

8 你通过农业种植的每一棵卷心菜在成熟阶段都会掉落这 3 件物品,所以你可以基本上种植任何你放入的物品。

8 你可以使用任何类型的物资修改器来修改这些生成器预设,正如在修改生成器预设部分提到的那样。

生成后操作

 生成后操作是在【PostSpawnActions】行中添加的,如果我们想修改掉落的物品。

 一个使用多个【PostSpawnActions】的生成器预设的链接:

列表 - 生成后可自定义

1 遗弃地堡钥匙卡 - 如果物品是钥匙卡,指定它可以打开最近的地堡。

2 大储量弹药数量设置 - 如果物品是弹药,将弹药数量设置为该口径容量的50-100%(例如:.22口径的最大数量是20,那么它将是10-20/20)。

3 小储量弹药数量设置 - 如果物品是弹药,将弹药数量设置为该口径容量的0-35%(例如:.22口径的最大数量是20,那么它将是0-7/20)。

4 大储量现金金额设置 - 如果物品是现金,将其金额设置为200-500。

5 中储量现金金额设置 - 如果物品是现金,将其金额设置为50-200。

6 小储量现金金额设置 - 如果物品是现金,将其金额设置为1-100。

7 死亡人偶衣物脏污度设置 - 如果物品是衣物,将其脏污度设置为93-96%。

8 脏衣物脏污度设置 - 如果物品是衣物,将其脏污度设置为60-85%。

9 住宅衣物脏污度设置 - 如果物品是衣物,将其脏污度设置为0-20%。

10 最大使用次数设置 - 所有具有使用次数的物品都将生成为0次使用,例如水瓶将生成为0/5次使用,宠物瓶为0/20次使用等。


示例 - 生成后可自定义

1  我们以 Street-Residential-Examine_Car_Wreck_Scrap 为例:

Street-Residential-Examine Crate Tarp Red.json以下只是示例
ts
{
	"Nodes": [
		{
			"Rarity":"Uncommon",
		"Ids": [
			"ItemLootTreeNodes.Barn.Tools",
			"ItemLootTreeNodes.Barn.crafting",
			"ItemLootTreeNodes.Barn.LightsFire",
			"ItemLootTreeNodes.Barn.Workclothes"
		]
		}
	],
	"Probability": 15,
	"QuantityMin": 1,
	"QuantityMax":2,
	"AllowDuplicates":false,
	"ShouldFilterItemsByZone":true,
	"InitialDamage":0
	"RandomDamage":50,
	"InitialUsage":0,
	"RandomUsage":50
	"PostSpawnActions": [ 
		"SetclothesDirtiness Residentialclothes"
	]
}

2 这个生成器预设表明,如果掉落的物品是衣物,那么它的脏污度将被设置为0-20%,正如上面所解释的那样。

3 另一个在生成器预设中使用多个 PostSpawnActions 的例子是:

Buildings-Garage-Residential-Examine_Wardrobe_Locker.json以下只是示例
ts
{
	"Nodes": [
		{
			"Rarity": "Uncommon",
			"Ids": [
				"ItemLootTreeNodes.Garage.workClothes",
				"ItemLootTreeNodes.Garage.0ther.Ammo",
				"ItemLootTreeNodes,Garage.Other.Backpacks.WaistBags",
				"ItemLootTreeNodes.Garage.0ther.Backpacks.School",
				"ItemLootTreeNodes,Garage.0ther,Backpacks,Plain"
			]
		}
	],
	"Probability: 20,
	"QuantityMin": 1,
	"QuantityMax": 1,
	"A1lowDuplicates": false,
	"ShouldFilterItemsByZone": true,
	"InitialDamage": 10,
	"RandomDamage": 30,
	"Initialusage": 1,
	"RandomUsage": 30,
	"PostSpawnActions": [
		SetAmmoAmount_SmallStash"
		SetcashAmount_Smallstash",
		SetClothesDirtiness_Dirtyclothes
	]
}

4 如果物品是弹药,将弹药数量设置为该口径容量的0-35%

5 如果物品是现金,将其金额设置为1-100

6 如果物品是衣物,将其脏污度设置为60-85%


- 📄

冷却组

我们为物资系统增加了一个名为【冷却组】的新功能。这个功能的目的是限制在地图上访问量最大和人口最密集的区域掉落稀有物资。如果你习惯于定居的生活方式,这可能会改变你囚犯的生活方式。

自定义冷却组

通过自定义来设置【冷却组】,以下是对自定义冷却组的名称介绍
 名称 - 它的名称稍后将在【Parameters.json】中用于将物品分配到该组别。
 注释 - 这纯粹是为了组织目的,你可以将其用作“备注”。
 冷却时间最小值 - 可以分配给某个组别的最小冷却时间(以小时为单位)。
 冷却时间最大值 - 可以分配给某个组别的最大冷却时间(以小时为单位)。
 是否受较低组别影响 - 真/假值,将在文档的后续部分进行解释。

冷却时间最小值(CooldownMin)和冷却时间最大值(CooldownMax)是以小时为单位进行衡量的,可以设置为任意数值。如果你想将冷却时间设置为2小时,就将其设置为2。如果你想设置为1分钟,可以输入0.01667(因为1/60 = 0.01667)。如果你的最小值和最大值不相同,游戏会在最小值和最大值之间随机选择一个数值,并在从某个组别中获取物品时分配该数值。在下面的例子中,我们将得到一个介于1分钟到2小时之间的随机数值。

ts
{   
	"CooldownGroups": [
		{
			"Name": "Weapons.Handguns.Tier.Low",
			"_comment": "1min-2hours",
			"CooldownMin": 0.01667,
			"CooldownMax": 2,
			"IsAffectedByLowerGroups": true
		}
}



冷却组的功能

冷却组是一个新的物资系统,它为包含在某个特定对象或附近生成器中的物品组分配冷却时间。当你获取一个物品时,它会检查该物品被分配到哪个冷却组,并为该冷却组设置冷却时间(冷却时间的长短在冷却组的配置中声明)。它还会将从获取的组中得到的相同冷却时间分配给所有冷却时间更长的冷却组。这样,你可以限制在地图上每个被获取的对象中可以找到的某些物品。附近生成器的工作方式也是一样的。冷却时间不会影响从“固定物品”(FixedItems)设置中生成的物品。“固定物品”总是会掉落。更多相关内容可以参考这里:修改生成器预设
为了完整地解释冷却组的工作原理,我们将在下面提供一些例子。

导出冷却组

首先,我们将导出默认的冷却组和默认的物品生成参数。
我们导出物品生成参数是因为我们需要在Parameters.json中将物品分配到冷却组中:

ts
#ExportDefaultItemSpawningCooldownGroups

这将导出默认的冷却组,其位置如下:
对于单机游戏
ts
%LocalAppData%/SCUM/Saved/Config/WindowsNoEditor/Loot/CooldownGroups/Default

对于多人游戏
ts
游戏服务器\SCUM\Saved\Config\WindowsServer\Loot\CooldownGroups\Default



导出默认的物品生成参数代码

ts
#ExportDefaultItemSpawningParameters

这将导出默认的物品生成参数,其位置如下:
对于单机游戏
ts
%LocalAppData%/SCUM/Saved/Config/WindowsNoEditor/Loot/Items/Default

对于多人游戏
ts
游戏服务器\SCUM\Saved\Config\WindowsServer\Loot\Items\Default



在完成这些操作后,你可以看到我们为某些物品设置的默认值以及我们将它们放入了哪个组别。这些默认值将用于官方服务器。简而言之,你可以在这里看到设置的冷却时间:

国内节点访问文档              海外节点访问文档



删除默认冷却组

在导出默认冷却组后,你会注意到在【.json】文件的顶部有两行。它们分别叫作【DeleteAllDefaultCooldownGroups】和【DefaultCooldownGroupsToDelete】。如果我们只是在【Override】文件夹中创建一个【.json】文件并创建新的冷却组,它仍然会使用我们设置的默认组。你要么手动使用【DefaultCooldownGroupsToDelete】逐个删除组,要么使用【DeleteAllDefaultCooldownGroups】的【true】参数来删除所有默认冷却组。

删除所有默认冷却组

这行代码用于删除我们设置的所有默认冷却组。默认情况下,它的值是【false】,如果你想删除这些组,需要将其改为【true】。你可以在开始修改冷却组时(如下文所述)使用这个设置。如果你将这个值设置为【true】,冷却组也会从【Parameters.json】中移除。

删除默认冷却组列表

这行代码用于逐个删除默认冷却组。如果你只想删除部分组而保留其他组,就需要用到这个设置。为了删除特定的组,你需要正确地写出它们的名称。你删除的每一个组也会从【Parameters.json】中解除与某些物品(从被删除的组中)的关联。

删除 3 个特定冷却组的格式:

ts
{
	"DeleteAllDefaultCooldownGroups": false,
	"DefaultCooldownGroupsToDelete": [
          "Weapons.Rifles.Tier.High",
          "Weapons.RPGs.Tier.Mid",
          "Weapons.DMRSnipers.Tier.High"
	],
	"CooldownGroups": []
}

- 📄

修改冷却组

为了修改冷却组,我们需要在【Default】文件夹旁边创建一个【Override】文件夹,就像我们对物资修改所做的那样。

对于单机游戏

创建一个名为【Override】的文件夹,跟【Default】文件夹同一个目录下

ts
%LocalAppData%/SCUM/Saved/Config/WindowsNoEditor/Loot/CooldownGroups

对于多人游戏 创建一个名为【Override】的文件夹,跟【Default】文件夹同一个目录下
ts
游戏服务器\SCUM\Saved\Config\WindowsServer\Loot\CooldownGroups



在【Override】文件夹中创建一个【.json】文件,你可以随意命名。我们将我们的文件命名为【CooldownGroups.json】。首先,我们将【DeleteAllDefaultCooldownGroups】设置为【true】,以删除所有默认的冷却组,因为我们在这个示例中不需要它们。接下来,我们将创建4个冷却组,如下所述:

1● 创建一个冷却时间为1小时的【组A】
1● 创建一个冷却时间为2小时的【组B】
1● 创建一个冷却时间为3小时的【组C】
1● 创建一个冷却时间为4小时的【组D】

这个【.json】文件应该看起来像这样:

ts
{
	"DeleteAllDefaultCooldownGroups": true,
	"DefaultCooldownGroupsToDelete": [
	],
	"CooldownGroups": [
		{
			"Name": "A",
			"_comment": "1h",
			"CooldownMin": 1,
			"CooldownMax": 1,
			"IsAffectedByLowerGroups": true
		},
            {
			"Name": "B",
			"_comment": "2h",
			"CooldownMin": 2,
			"CooldownMax": 2,
			"IsAffectedByLowerGroups": true
		},
            {
			"Name": "C",
			"_comment": "3h",
			"CooldownMin": 3,
			"CooldownMax": 3,
			"IsAffectedByLowerGroups": true
		},
            {
			"Name": "D",
			"_comment": "4h",
			"CooldownMin": 4,
			"CooldownMax": 4,
			"IsAffectedByLowerGroups": true
		}
	]
}



修改并适配冷却组
修改【Parameters.json】以适配冷却组
我们现在需要在【Parameters.json】中将物品分配到冷却组。前往以下路径:
对于单机游戏

创建一个名为【Override】的文件夹,跟【Default】文件夹同一个目录下

ts
%LocalAppData%/SCUM/Saved/Config/WindowsNoEditor/Loot/Items

对于多人游戏 创建一个名为【Override】的文件夹,跟【Default】文件夹同一个目录下
ts
游戏服务器\SCUM\Saved\Config\WindowsServer\Loot\Items



创建一个名为【任意名称】的【.json】文件,我们将我们的文件命名为【Parameters.json】。我们将按照以下描述将以下物品添加到对应的组中。我们需要使用在冷却组的【Name】中设置的正确名称,才能在【Parameters.json】中将物品分配到对应的组。如果我们想把苹果(Apple)添加到冷却组【A】,我们需要在【CooldownGroup】一行中输入【A】。

ts
{
	"Parameters": [
		{
			"Id": "Apple",
			"CooldownGroup": "A"
		}
}



我们将以4个物品为例

  我们将苹果(Apple)添加到冷却时间为1小时的【组A】
  我们将香蕉(Banana)添加到冷却时间为2小时的【组B】
  我们将桃子(Peach)添加到冷却时间为3小时的【组C】
  我们将武士刀(Katana)添加到冷却时间为4小时的【组D】

这个【.json】文件应该看起来像这样:

ts
{
	"Parameters": [
		{
			"Id": "Apple",
			"IsDisabledForSpawning": false,
			"AllowedLocations": [
				"Coastal",
				"Continental",
				"Mountain"
			],
			"CooldownPerSquadMemberMin": 0,
			"CooldownPerSquadMemberMax": 0,
			"CooldownGroup": "A",
			"Variations": [],
			"ShouldOverrideInitialAndRandomUsage": false,
			"InitialUsageOverride": 0,
			"RandomUsageOverrideUsage": 0
		},
		{
			"Id": "Banana",
			"IsDisabledForSpawning": false,
			"AllowedLocations": [
				"Coastal",
				"Continental",
				"Mountain"
			],
			"CooldownPerSquadMemberMin": 0,
			"CooldownPerSquadMemberMax": 0,
			"CooldownGroup": "B",
			"Variations": [],
			"ShouldOverrideInitialAndRandomUsage": false,
			"InitialUsageOverride": 0,
			"RandomUsageOverrideUsage": 0
		},
		{
			"Id": "Peach",
			"IsDisabledForSpawning": false,
			"AllowedLocations": [
				"Coastal",
				"Continental",
				"Mountain"
			],
			"CooldownPerSquadMemberMin": 0,
			"CooldownPerSquadMemberMax": 0,
			"CooldownGroup": "C",
			"Variations": [],
			"ShouldOverrideInitialAndRandomUsage": false,
			"InitialUsageOverride": 0,
			"RandomUsageOverrideUsage": 0
		},
		{
			"Id": "2H_Katana",
			"IsDisabledForSpawning": false,
			"AllowedLocations": [
				"Coastal",
				"Continental",
				"Mountain"
			],
			"CooldownPerSquadMemberMin": 0,
			"CooldownPerSquadMemberMax": 0,
			"CooldownGroup": "D",
			"Variations": [],
			"ShouldOverrideInitialAndRandomUsage": false,
			"InitialUsageOverride": 0,
			"RandomUsageOverrideUsage": 0
		}
}



获取物品的示例

在按照上述设置好一切之后,我们现在将创建一个包含所有4种物品的生成器预设。这仅仅是为了以最佳方式解释而使用的示例。

我们将前往附近的警察局,在那里有4个储物柜,它们都包含相同的生成器预设,因此它们也可以掉落完全相同的物资。

我们将修改这些储物柜包含的生成器预设,使其仅掉落上述提到的4种物品。 获取物品的示例01

由于这些储物柜被分配了3个生成器预设,我们将覆盖全部3个。我们会保留其中2个生成器预设为空白,只修改一个。

用于此示例的物资配置可以在此处: 示例代码下载

我们的生成器预设看起来会是这样:

ts
{
	"Items": [
		{
			"Rarity": "Uncommon",
			"Id": "Apple"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Banana"
		},
		{
			"Rarity": "Uncommon",
			"Id": "Peach"
		},
		{
			"Rarity": "Uncommon",
			"Id": "2H_Katana"
		}
     	],
	"QuantityMin": 1,
	"QuantityMax": 1,
	"AllowDuplicates": true,
	"ShouldFilterItemsByZone": false,
	"InitialDamage": 0,
	"RandomDamage": 0,
	"InitialUsage": 0,
	"RandomUsage": 0
}



现在我们模拟一种实际情况
我们有3个储物柜

  每个储物柜都可以掉落:苹果、香蕉、桃子或武士刀
  我们把苹果分配到了冷却时间为1小时的【组A】
  我们把香蕉分配到了冷却时间为2小时的【组B】
  我们把桃子分配到了冷却时间为3小时的【组C】
  我们把武士刀分配到了冷却时间为4小时的【组D】
  我们将使用默认设置进行获取(即我们的物资重生时间为1小时)
  我们还将使用以下指令,以便所有更改立即生效

ts
#ReloadLootCustomizationsAndResetSpawners



01 - 模拟实际情况说明
获取第 1 个储物柜的物品

  我们搜索了第一个储物柜,并获取了一个苹果。 你的苹果现在在我手上呢
  我们触发了【组A】的冷却时间
  正如我们提到的,【组A】有1小时的冷却时间,并且它还会将这1小时的冷却时间分配给所有冷却时间大于1小时的组
 现在我们的冷却情况如下: 01冷却时间说明图
  在这种特定的储物柜(第一个储物柜)中,在接下来的1小时内,我们将无法从它那里获取任何物品,因为我们已经将所有组都设置为1小时的冷却时间。这种冷却时间不会转移到其他储物柜,它只会影响提到的储物柜。
  一旦1小时计时器结束,我们将能够从它那里获取所有物品。

02 - 模拟实际情况说明
获取第 2 个储物柜的物品

我们搜索了第二个储物柜,并获取了一把武士刀。 你的武士刀现在是我的了
  我们触发了冷却组【D】,它有4小时的冷却时间
  这个组会将4小时的冷却时间分配给所有冷却时间大于4小时的组,由于我们没有冷却时间超过4小时的组,因此它只会将【组D】置于冷却状态
 现在我们的冷却情况如下: 02冷却时间说明图
  在这种特定的储物柜(第二个储物柜)中,现在我们在接下来的4小时内无法找到武士刀。这种冷却时间不会转移到其他储物柜,它只会影响提到的储物柜。
  在1小时后战利品重置时,我们只能找到分配在【组A】、【组B】和【组C】中的物品。在这种情况下,我们只能找到:苹果、香蕉和桃子。
  请注意,我们现在移除了在接下来4小时内获取武士刀的可能性。当你再次搜索储物柜时,从【组A】、【组B】和【组C】中获取物品的概率会更高。

03 - 模拟实际情况说明
获取第 3 个储物柜的物品

  我们搜索了第三个储物柜,并获取了一个桃子。 现在你的桃子是我的了

  我们触发了【组C】的冷却时间
  正如我们提到的,【组C】有3小时的冷却时间,并且它还会将这3小时的冷却时间分配给所有冷却时间大于3小时的组。
 现在我们的冷却情况如下: 03冷却时间说明图
  在这种特定的储物柜(第三个储物柜)中,现在我们在接下来的3小时内无法找到桃子和武士刀。冷却时间也传递到了【组D】,因为它有更高的冷却时间。这种冷却时间不会转移到其他储物柜,它只会影响提到的储物柜。
  在1小时后战利品重置时,我们只能找到分配在【组A】和【组B】中的物品。
  请注意,我们现在移除了在接下来3小时内获取桃子和武士刀的可能性。当你再次搜索储物柜时,从【组A】和【组B】中获取物品的概率会更高。

物品冷却组时长倍率

这是一个服务器设置,用于乘以在【CooldownMin】和【CooldownMax】属性中设置的值。如果不想手动更改每一个组,可以用它来增加或减少服务器上设置的冷却时间。
它的默认值是1,这意味着它将直接使用【CooldownMin】和【CooldownMax】中的确切值。如果我们将其设置为2(并结合上述示例),我们将有以下情况:
 冷却时间为1小时的【组A】,现在将变为2小时
 冷却时间为2小时的【组B】,现在将变为4小时
 冷却时间为3小时的【组C】,现在将变为6小时
 冷却时间为4小时的【组D】,现在将变为8小时

游戏内的服务器设置进入游戏/服务器后,依次打开 ESC》服务器设置》特性》物品生成中:

启动冷却时间组的设置所在位置

物品冷却组时长倍率

我们想提一下,如果你不想在服务器或单机游戏中启用这个功能,可以在服务器设置中将其禁用。它位于 ESC》服务器设置》特性》物品生成中,需要将启用物品冷却组设置为。之后你需要重启服务器,或者如果是单机模式,只需重新登录即可。

启动冷却时间组的设置所在位置


- 🙆🏻‍♂️

免责声明

本文中包含的第三方链接可能会将您导向与我们无关的第三方网站。我们不对这些内容或准确性进行审查或评估,也不对任何第三方材料或网站提供保证,并且不会对任何第三方的其他材料、产品或服务承担任何责任或义务。

我们不对与购买或使用商品、服务、资源、内容或任何其他与第三方网站相关的交易有关的任何损害或损害承担责任。在进行任何交易之前,请仔细查看第三方的政策和做法,并确保您理解它们。有关第三方产品的投诉、索赔、疑虑或问题应直接向第三方提出。

白木的独白

请注意以上许多地方并未校对,整个翻译过程都采用分段式使用Ai进行翻译,仅对部分词汇不通顺的地方进行校对,因此在阅读起来可能比较难理解。但做这件事情的初衷只是为了无法访问谷歌文档、看不懂英文的服主/玩家提供便利(白木力所能及的事情),因此有很多不足的地方希望能谅解~❤️也非常希望有更多热爱SCUM的玩家/服主加入本文档的翻译校对中,白木在此非常欢迎,也非常感谢你们的支持与付出~😽


⩥ 编译:白木『QQ:2819066121』

🥳 校对名单:...招募校对伙伴...有兴趣可联系白木❤️

♥内容原创归属:SAM • 游戏社区

⩥⩥ 「 鸣谢列表

© 2025 SAM社区 - 白木 公益性创建