配方管理器

配方管理器

RecipeManager 提供了一种简单且非常轻量的方法来操作合成配方。

实用工具

RecipeManager

这是一个轻量级的配方修改工具。你可以定义配方来添加、修改、删除等操作。它不使用任何补丁,也不会持续运行。

如果你想做更多的事情而不仅仅是修改配方和建筑部件,可以查看 WackysDB

在《英灵神殿》中,配方指的是在制作台、烹饪台等处制作物品的规则。例如,制作木箭需要使用工作台的制作配方。 建筑部件(用锤子建造的)不是配方,熔炉转化(例如1矿石换1锭)也不是配方。

建筑部件几乎包括所有可放置的物品。用锤子建造的一切物品、用耕种器种植的植物、可放置的食物等。

功能

  • 添加配方
  • 修改配方
  • 删除配方
  • 禁用部件
  • 启用部件
  • 修改部件

配方可以通过yaml文件进行操作和添加。所有现有的配方也可以按照相同的格式导出到一个文件中,以帮助你查找和理解现有配方。

建议在修改配方时使用支持语法高亮的yaml编辑器,以确保你的yaml格式正确。yamlChecker 是一个免费的在线检查工具,你也可以用它来验证。

配方修改存储在 \BepInEx\config\RecipeManager\Recipes.yaml 文件中。如果该文件在首次运行时不存在,将会自动生成。

Yaml 配置示例:

#################################################
# 配方操作配置
#################################################
recipeModifications:                     # <- 这是顶级键,所有修改都在此之下,必需
  DisableWoodArrow:                      # <- 这是修改名称,主要用于让你理解此修改的作用,应该保持唯一
    action: Disable                      # <- 这是操作类型,应为 [Disable, Delete, Modify, Add, Enable] 之一
    prefab: ArrowWood                    # <- 此修改将针对的预制体
  AddNewWoodArrowRecipe:
    action: Add
    prefab: ArrowWood
    recipeName: Recipe_ArrowWood         # <- 可选,指定配方名称可以匹配和修改针对同一预制体的多个配方
    craftedAt: Workbench                 # <- 制作此配方的制作台,留空或使用无效值表示手工艺制作
    minStationLevel: 2                   # <- 发现和制作此配方所需的制作台等级
    recipe:                              # <- 执行 [Modify] 或 [Add] 操作时,应定义一个配方
      anyOneResource: false              # <- 使配方只需要一种材料,将使用列表中最靠前的材料
      ingredients:                       # <- 配方中的材料,是一个数组
        - prefab: Wood                   # <- 此材料所需的预制体
          craftCost: 2                   # <- 制作此配方需要消耗的材料数量
          upgradeCost: 0                 # <- 升级物品需要消耗的材料数量
        - prefab: Feathers
          craftCost: 2
          upgradeCost: 0
  DeleteTrollHideArmorRecipe:
    action: Delete
    prefab: CapeTrollHide
  ModifyTrollHideChestRecipe:
    action: Modify
    prefab: ArmorTrollLeatherChest
    craftedAt: Workbench
    minStationLevel: 1
    recipe:
      anyOneResource: false
      ingredients:
        - prefab: TrollHide
          craftCost: 4
          upgradeCost: 2

命令

此模组添加了两个新命令,可用于加速配方修改。

  • RM_Recipes_Reload - 重新加载所有找到的配方修改。
  • RM_Recipes_PrintAll - 打印当前存储在对象数据库中的所有配方(包括修改),此文件将被忽略。
  • RM_Pieces_Reload - 重新加载所有找到的部件修改。
  • RM_Pieces_PrintAll - 将所有部件打印到一个调试文件中(包括修改),此文件将被忽略。

命令需要 启用游戏内控制台

如果你使用的是 Thunderstore Mod Manager 或 R2 Modmanager,可以通过选择你的英灵神殿配置文件,进入设置(最左侧),调试选项卡,设置启动参数并添加 --console 来启用控制台。

不建议使用 Vortex mod 管理器,但如果使用 Vortex 的硬链接或复制部署,你可以从 Steam 启动,并使用 BepInEx 加上 --console 启动参数。操作方法是:在你的库中右键点击游戏,管理,通用,在启动选项底部添加 --console

多个配置文件

所有在 \BepInEx\config\RecipeManager\ 目录下文件名包含 Recipes.yaml 的文件都将被视为配方文件(ObjectDBRecipes.yaml 除外)。 例如:

  • Forge_Recipes.yaml 是有效的
  • SoupStationStuff.yaml 无效,不会被加载,但 SoupStationStuffRecipes.yaml 是有效的。

所有在 \BepInEx\config\RecipeManager\ 目录下文件名包含 Pieces.yaml 的文件都将被视为部件修改文件并被加载。 例如:

  • CultivatorPieces.yaml 是有效的
  • Cultivator.yaml 无效,不会被加载

配方示例

该模组附带一个默认的示例配方文件,其中提供了与上述类似的说明。在安装此模组并启动游戏后,你可以在 BepInEx\config\RecipeManager 文件夹中找到该配方文件。

R2modman 或 Thunderstore mod 管理器也会将此文件检测为可编辑的配置文件,可以在“编辑配置”菜单中直接编辑或打开,搜索 Recipes.yaml

用于加载配方的唯一文件是 Recipes.yaml,该目录下的其他 yaml 文件不会被加载。

添加可制作的链条(替代 Chain-Manager

recipeModifications:
  CraftableChainRecipe:
    action: Add
    prefab: Chain
    craftedAt: forge
    minStationLevel: 4
    craftAmount: 1
    recipe:
      anyOneResource: false
      ingredients:
      - prefab: Iron
        craftCost: 2
        upgradeCost: 0

禁用你不想要的来自原版或其他模组的配方(禁用来自 Southsil Armors 的配方)

recipeModifications:
  DisableNeckHelm:
    action: Disable
    prefab: neckhelm
  DisableNeckChest:
    action: Disable
    prefab: neckchest
  DisableNeckLegs:
    action: Disable
    prefab: necklegs

增加青铜产量(替代 triple bronze

recipeModifications:
  Recipe_Bronze:
    action: Modify
    prefab: Bronze
    recipeName: Recipe_Bronze
    craftedAt: forge
    minStationLevel: 1
    craftAmount: 3
    recipe:
      anyOneResource: false
      ingredients:
      - prefab: Copper
        craftCost: 2
        upgradeCost: 1
      - prefab: Tin
        craftCost: 1
        upgradeCost: 1
  Recipe_Bronze5:
    action: Modify
    prefab: Bronze
    recipeName: Recipe_Bronze5
    craftedAt: forge
    minStationLevel: 1
    craftAmount: 15
    recipe:
      anyOneResource: false
      ingredients:
      - prefab: Copper
        craftCost: 10
        upgradeCost: 1
      - prefab: Tin
        craftCost: 5
        upgradeCost: 1

将配方从一个制作台移动到另一个(来自 Honey+ 的自定义蜜酒)

recipeModifications:
  custom_item_meadbase_damage:
    action: Modify
    prefab: HoneyMeadBaseDamage
    recipeName: $custom_item_meadbase_damage
    craftedAt: piece_cauldron

部件示例

启用所有节日建筑部件

pieceModifications:
  enable_mistletoe:
    action: Enable
    prefab: piece_mistletoe
  enable_jackoturnip:
    action: Enable
    prefab: piece_jackoturnip
  enable_yuletree:
    action: Enable
    prefab: piece_xmastree
  enable_yulecrown:
    action: Enable
    prefab: piece_xmascrown
  enable_yulegarland:
    action: Enable
    prefab: piece_xmasgarland
  enable_gift1:
    action: Enable
    prefab: piece_gift1
  enable_gift2:
    action: Enable
    prefab: piece_gift2
  enable_maypole:
    action: Enable
    prefab: piece_maypole

使熔炉花费100个石头,但只需要1个焰灵核心

pieceModifications:
  expensive_kiln:
    action: Modify
    prefab: charcoal_kiln
    requirements:
    - prefab: Stone
      amount: 100
    - prefab: SurtlingCore
      amount: 1

移除切石机作为可建造部件

pieceModifications:
  remove_stonecutter:
    action: Disable
    prefab: piece_stonecutter

转化示例

使木炭窑可以处理木材、细木和核心木

conversionModifications:
  charcoal_kiln:
    action: modify
    prefab: charcoal_kiln
    conversions:
    - fromPrefab: Wood
      toPrefab: Coal
      amount: 2
    - fromPrefab: FineWood
      toPrefab: Coal
      amount: 2
    - fromPrefab: RoundLog
      toPrefab: Coal
      amount: 2
    maxOres: 50
    conversionTime: 3

使熔炼炉可以处理所有矿石,增加其容量,并改变熔炼物品所需的时间。

conversionModifications:
  blastfurnace:
    prefab: blastfurnace
    action: modify
    conversions:
    - fromPrefab: FlametalOreNew
      toPrefab: FlametalNew
      amount: 1
    - fromPrefab: BlackMetalScrap
      toPrefab: BlackMetal
      amount: 1
    - fromPrefab: CopperOre
      toPrefab: Copper
      amount: 1
    - fromPrefab: IronOre
      toPrefab: Iron
      amount: 1
    - fromPrefab: IronScrap
      toPrefab: Iron
      amount: 1
    - fromPrefab: BronzeScrap
      toPrefab: Bronze
      amount: 1
    - fromPrefab: TinOre
      toPrefab: Tin
      amount: 1
    - fromPrefab: SilverOre
      toPrefab: Silver
      amount: 1
    - fromPrefab: CopperScrap
      toPrefab: Copper
      amount: 1
    maxOres: 20
    maxFuel: 50
    fuelPerProduct: 2
    conversionTime: 15

使发酵器酿造速度极快,并且每种蜜酒基底都能产出10瓶药水而不是更少。

conversionModifications:
  fermenter:
    prefab: fermenter
    action: modify
    conversions:
    - fromPrefab: MeadBaseHealthMinor
      toPrefab: MeadHealthMinor
      amount: 10
    - fromPrefab: MeadBaseHealthMedium
      toPrefab: MeadHealthMedium
      amount: 10
    - fromPrefab: MeadBaseStaminaMinor
      toPrefab: MeadStaminaMinor
      amount: 10
    - fromPrefab: MeadBaseStaminaMedium
      toPrefab: MeadStaminaMedium
      amount: 10
    - fromPrefab: MeadBasePoisonResist
      toPrefab: MeadPoisonResist
      amount: 10
    - fromPrefab: MeadBaseFrostResist
      toPrefab: MeadFrostResist
      amount: 10
    - fromPrefab: BarleyWineBase
      toPrefab: BarleyWine
      amount: 10
    - fromPrefab: MeadBaseTasty
      toPrefab: MeadTasty
      amount: 10
    - fromPrefab: MeadBaseHealthMajor
      toPrefab: MeadHealthMajor
      amount: 10
    - fromPrefab: MeadBaseStaminaLingering
      toPrefab: MeadStaminaLingering
      amount: 10
    - fromPrefab: MeadBaseEitrMinor
      toPrefab: MeadEitrMinor
      amount: 10
    - fromPrefab: MeadBaseEitrLingering
      toPrefab: MeadEitrLingering
      amount: 10
    - fromPrefab: MeadBaseHealthLingering
      toPrefab: MeadHealthLingering
      amount: 10
    - fromPrefab: MeadBaseBzerker
      toPrefab: MeadBzerker
      amount: 10
    - fromPrefab: MeadBaseStrength
      toPrefab: MeadStrength
      amount: 10
    - fromPrefab: MeadBaseHasty
      toPrefab: MeadHasty
      amount: 10
    - fromPrefab: MeadBaseLightFoot
      toPrefab: MeadLightfoot
      amount: 10
    - fromPrefab: MeadBaseSwimmer
      toPrefab: MeadSwimmer
      amount: 10
    - fromPrefab: MeadBaseTamer
      toPrefab: MeadTamer
      amount: 10
    - fromPrefab: MeadBaseBugRepellent
      toPrefab: MeadBugRepellent
      amount: 10
    conversionTime: 10

使烹饪台烹饪速度更快。

conversionModifications:
  piece_cookingstation:
    action: modify
    prefab: piece_cookingstation
    conversions:
    - fromPrefab: RawMeat
      toPrefab: CookedMeat
      cookTime: 10
    - fromPrefab: NeckTail
      toPrefab: NeckTailGrilled
      cookTime: 10
    - fromPrefab: FishRaw
      toPrefab: FishCooked
      cookTime: 10
    - fromPrefab: DeerMeat
      toPrefab: CookedDeerMeat
      cookTime: 10
    - fromPrefab: WolfMeat
      toPrefab: CookedWolfMeat
      cookTime: 10
    - fromPrefab: ChickenMeat
      toPrefab: CookedChickenMeat
      cookTime: 10
    - fromPrefab: HareMeat
      toPrefab: CookedHareMeat
      cookTime: 10

使烤炉烹饪更快,燃料持续更久。

conversionModifications:
  piece_oven:
    action: modify
    prefab: piece_oven
    conversions:
    - fromPrefab: LoxPieUncooked
      toPrefab: LoxPie
      cookTime: 10
    - fromPrefab: BreadDough
      toPrefab: Bread
      cookTime: 10
    - fromPrefab: FishAndBreadUncooked
      toPrefab: FishAndBread
      cookTime: 10
    - fromPrefab: MeatPlatterUncooked
      toPrefab: MeatPlatter
      cookTime: 10
    - fromPrefab: HoneyGlazedChickenUncooked
      toPrefab: HoneyGlazedChicken
      cookTime: 10
    - fromPrefab: MisthareSupremeUncooked
      toPrefab: MisthareSupreme
      cookTime: 10
    - fromPrefab: MagicallyStuffedShroomUncooked
      toPrefab: MagicallyStuffedShroom
      cookTime: 10
    - fromPrefab: RoastedCrustPieUncooked
      toPrefab: RoastedCrustPie
      cookTime: 10
    - fromPrefab: PiquantPieUncooked
      toPrefab: PiquantPie
      cookTime: 10
    maxFuel: 10
    fuelItem: Wood
    secPerFuel: 2000

使纺车工作更快,并且可以容纳最多50个亚麻。

conversionModifications:
  piece_spinningwheel:
    action: Modify
    prefab: piece_spinningwheel
    conversions:
    - fromPrefab: Flax
      toPrefab: LinenThread
    maxOres: 50
    conversionTime: 3

常见问题解答

  • 问: 为什么我的配方没有显示出来? 答: 确保配方使用了“Modify”或“Add”操作。默认情况下,从对象数据库导出的配方不会使用这些操作,而是使用“Enable”。如果配方已经存在且未被禁用,则“Enable”操作不产生任何效果。
  • 问: 我的yaml文件关于 refund 键报错。 答: refund 键在0.4.1版本中已被移除。如果你需要从现有的yaml文件中移除该键,可以使用以下正则表达式 ( +refund: \w+\n?) 并替换为空。这可以在大多数文本编辑器的查找替换功能中实现。

计划中的功能

  • 更多配方验证
  • 转化修改(如矿石换锭)
  • 导出到WackyDB

安装(手动)

确保下载的 .dll 文件放置在你的 /bepinex/plugins 文件夹中。

请注意,此模组在配置之前不会执行任何操作。