[
{
"Id": "MyMod.MyMailId", // 信件 ID。为了避免冲突,该 ID 必须是唯一的字符串。此外,它不应包含空格。
"GroupId": "MyMod.MyGroupId", // 信件组 ID。具有相同组 ID 的信件绝不会在同一天投递。先注册的信件具有优先权,除非组 ID 以“.Random”结尾,在这种情况下,将随机选择一封信件。默认值为 null。
"Title": "我的信件标题", // 信件标题。将显示在收藏菜单中。如果您不想让该信件出现在收藏中,请将其设置为 null 或删除此行。如果提供了翻译文件,您应该在此处输入翻译关键字,但如果没有标题,您仍然可以将其保留为 null。
“Text”:“亲爱的@^这是我的自定义邮件。” // 信件正文。您可以使用@输入玩家姓名,使用^输入换行符。您还可以使用基础游戏命令添加金钱、物品和其他物品。如果提供了翻译文件,您应该在此处输入翻译代码。
"RandomlyChooseAttachment": 2, // 如果设置了数字,则将从附件列表中按组随机选择指定数量的项目。默认值为 null。
"RandomlyChooseAttachmentPerGroup": { "CaveItems": 3 }, // 如果此处设置了组别和数量,系统将使用该数量来拾取物品,而不是 RandomlyChooseAttachment 中设置的数量。默认为空。
"AttachmentGroupWithReplacement": [ "CaveItems" ], // 默认情况下,附件会从列表中随机选择,无需替换。如果您希望选择替换附件,请将组添加到列表中。如果您未添加组,请使用空字符串。默认值为空列表。
"Attachments": [ // 附件列表。删除该属性则不将项目附加到邮件。
{
"Type": "Object", // [Object|BigCraftable|Tool|Ring|Furniture|Weapon|Boots|DGA|QualifiedItemId|None] 必填。待添加物品的类型。若未提供,则该物品将被忽略。“None”在日志中始终会被忽略且不会出现错误,因此当您希望计算不添加附件的概率时,应使用此参数。
"Name": "Cave Carrot", // 用于查找项目索引。如果使用自定义对象(例如 Json Assets 对象),则需要提供此项。使用 DGA 时,应提供完整的 DGA ID。如果未提供,则将使用索引。默认值为 null。
"Index": "(0)78", // 项目的索引。应为符合条件的项目 ID(字符串形式),但为了兼容后续操作,也可使用整数形式。如果未提供名称或未找到与名称对应的项目,则使用索引。否则,将忽略该附件。如果类型为 DGA,则忽略该附件。
"Stack": 1, // 待投递物品的堆叠值。仅用于 Objects 和 BigCraftable。默认值为 1。
"Quality": 2, // 待交付物品的品质值。仅适用于对象。0 = 无,1 = 银,2 = 金,4 = 铱。默认值为 0;
"RequireMailReceived": [ "jojaVault", "ccVault" ], // 要求收到一封邮件。游戏列表中还包含其他非邮件内容,例如社区中心旗帜。默认为 null,表示不要求收到邮件。
"RequireAllMailReceived": false, // 如果为 true,则要求“RequireMailReceived”列表中的所有邮件都已接收。默认为 false。
"ProbabilityWeight": 1, // 此附件在选择投递哪个附件时的权重。该参数会将给定组中所有附件的权重相加,并计算出一个概率,将该权重除以总权重。默认值为 1。
"RandomGroup": "CaveItems" // 随机选择物品时,根据找到的组对列表进行分组,并从每个组中选取设定的数量。默认值为空字符串,用作默认组。
},
{
"Type": "Tool", // 使用工具时,只能附加受支持的工具。
"Name": "Axe", // [斧头|锄头|喷壶|镐|镰刀|金镰刀|牛奶桶|剪刀|鱼竿|平底锅|回礼杖] 工具必需。支持的工具名称。否则,附件将被忽略。
"UpgradeLevel": 1 // 工具的升级等级。常规工具:0 = 石质,1 = 铜质,2 = 钢质,3 = 金质,4 = 铱质。钓鱼竿:0 = 竹竿,1 = 训练竿,2 = 玻璃纤维竿,3 = 铱质竿。其他类型忽略。默认值为 0。
},
{
"Type": "DGA", //DGA项目
"Name": "spacechase0.DynamicGameAssets.Example/My Custom Item", // 使用完整的 DGA ID。必填。
"Stack": 10, // 待投递物品的堆叠值。仅用于 Objects 和 BigCraftable。默认值为 1。
"Quality": 2 // 待交付物品的品质值。仅适用于对象。0 = 无,1 = 银,2 = 金,4 = 铱。默认值为 0;
},
{
"Type": "QualifiedItemId", //任何支持的物品
"Index": "(0)78", // 某个商品的合格商品 ID。
"Stack": 10, // 待投递物品的堆叠值。仅用于 Objects 和 BigCraftable。默认值为 1;
"Quality": 2 // 待交付物品的品质值。仅适用于对象。0 = 无,1 = 银,2 = 金,4 = 铱。默认值为 0;
}
],
"Recipe": "Recipe Name", // 如果您不想在邮件中附加配方,请删除此行。此操作仅在邮件中没有其他附件时有效。对于 DGA 配方,仅使用 ID 部分(省略 ModID)
"AdditionalMailReceived": ["MyMod.AnotherMailId", "VANILLA_FLAG"], // 使用此项向 MailReceived 列表添加附加文本。可用于添加原版标志或其他 MFM 字母 ID。
"MailReceivedToRemove": ["MyMod.AnotherMailThatNeedToBeResent","MyMod.SomeFlagThatWasLockingSomeFeature"], //要从 MailReceived 列表中移除的文本。这可用于触发新邮件、事件、原始标志,以及阻止其他 MFM 邮件的发送……
"LetterBG": "CustomLetterBG.png", // 内容包中包含要使用的自定义字母背景的文件的名称。它应遵循与游戏 LetterBG 文件相同的结构。WhichBG 将与此字母的此文件相关联。如果为空或已移除,模组将使用游戏 LetterBG。
"WhichBG": 0, //字母背景的 id。0 = 经典,1 = 记事本,2 = 金字塔
"TextColor": -1, //删除此行即可使用默认颜色。如果设置了 CustomTextColor,则会被忽略。-1 = 深红色,0 = 黑色,1 = 天蓝色,2 = 红色,3 = 蓝紫色,4 = 白色,5 = 橙红色,6 = 柠檬绿,7 = 青色,8 = 深灰色
"CustomTextColorName": "White", //文本的颜色。[http://www.foszor.com/blog/xna-color-chart/] 默认将使用 TextColor 属性。
"UpperRightCloseButton": "CustomCloseButton.png", // 内容包中包含要使用的自定义关闭按钮的文件的名称。其尺寸应为 12 x 12。如果为空或已移除,则将使用默认按钮。
"ReplyConfig": { // 如果您希望玩家在阅读信件后发送回复,则会显示回复选项,并根据玩家的回复添加一个或多个“ReceivedMail”。任何与回复相关的附加逻辑都需要基于添加的 ReceivedMail 来实现。
"QuestionKey": "MyMod.MyMailId.Question", //用于标识您的问题的键。它仅供内部使用,但在您的内容包中应保持唯一,以避免回复之间发生冲突。
"QuestionDialog": "发送回复,选择您的奖励:", //您的问题或文本将显示在回复选项中。如果提供了翻译文件,您应该在此处输入翻译关键字。
"回复": [
{
"ReplyKey": "MyMod.MyMailId.Reply1", //问题回复之间必须是唯一的。
"ReplyOptionDialog": "我想要种子。", //回复列表中显示的选项文本。如果提供了翻译文件,请在此处输入翻译关键字。
"RequireMailReceived": [ "jojaVault", "ccVault" ], // 要求收到一封邮件。游戏列表中还包含其他非邮件内容,例如社区中心旗帜。默认为 null,表示不要求收到邮件。
"RequireAllMailReceived": false, // 如果为 true,则要求“RequireMailReceived”列表中的所有邮件都已接收。默认为 false。
"MailReceivedToAdd": [ "MyMod.MyMailId.PlayerSeedOption" ], // 要添加到 MailReceived 列表的文本。这可用于触发新邮件、事件、原始标志,以及阻止其他 MFM 邮件的发送……
"MailReceivedToRemove": [ "MyMod.MyMailId.PlayerSapplingOption" ], //要从 MailReceived 列表中移除的文本。这可用于触发新邮件、事件、原始标志,以及阻止其他 MFM 邮件的发送……
"ReplyResponseDialog": "您请求种子的信件已发送。", //选择此回复选项后显示的文本。如果提供了翻译文件,请在此处输入翻译关键字。
"Cost": 50 //玩家选择此选项所需的金钱数额。如果玩家选择此选项,该金额将立即从玩家的金钱中扣除。务必提供一个无需花费的选项,否则你可能会软锁定玩家。
}
]
},
"Repeatable": false, // 如果为 true,模块将不会检查信件 ID 是否已投递。默认值为 false。
"AutoOpen": false, // 如果设置为 true,模组会在满足条件后,于每日开始时打开信件。信件 ID 将被标记为已读,如果设置了配方,则会学习该配方。由于信件永远不会显示,因此标题、文本、背景等视觉属性以及附件将永远不会被使用。
// 交货条件
//以下是交付条件。如果您不想检查该条件,请删除任何行。
"Date": "10 spring Y1", // 必须是该日期或之后的日期。格式为“[1-28] [spring|summer|fall|winter] Y[1-999]”。
"Days": [7,14,21,28], // 必须是列表中的某一天。
"Seasons": ["fall"], // 必须是列表中的季节之一。[spring|summer|fall|winter]
"Weather": "sunny", // 必须是游戏天气。格式为“[sunny|rainy]”。
“HouseUpgradeLevel”:2,//房屋升级等级必须等于或高于定义的等级。0 - 初始房屋(没有理由使用它,只需删除该行),1 - 厨房,2 - 二楼,3 - 地窖。
"DeepestMineLevel": 80, // 最深矿井等级必须等于或高于定义值。120 是矿井的最后一层,121 是骷髅洞穴的第一层。
“CurrentMoney”:10000,//当前金额必须等于或高于定义金额。
“TotalMoneyEarned”:500000,//总收入必须等于或高于定义值。
"FriendshipConditions": // 列表中的每个 NPC 都必须检查所有条件。
[
{
"NpcName": "Lewis", //NPC 的名称。可以使用自定义 NPC。
"FriendshipLevel": 8, // NPC 的友谊等级必须等于或高于定义的值。默认值为 0。
"FriendshipStatus": ["Dating","Engaged","Married"] // [Friendly|Dating|Engaged|Married|Divorced] 要求 NPC 的友谊状态必须为列表中的一项。删除则不要求提供状态。
}
],
"SkillConditions": // 列表中每项技能的等级必须等于或高于定义等级。可以使用原版游戏中所有已编码的技能,包括运气技能。无法使用自定义技能。
[
{ "SkillName": "农业", "SkillLevel": 1 }
],
"StatsConditions": // 列表中每个统计数据的值必须等于或高于定义值。请选择 StatsName 或 StatsLabel
[
{
"StatsName": "CheeseMade", //[种子播种|物品运送|物品烹饪|物品制作|鸡蛋产出|鸭蛋产出|牛奶产出|羊奶产出|兔毛产出|羊毛产出|CheeseMade|山羊奶酪产出|松露发现|石头收集|岩石压碎|泥土锄头|礼物赠送|昏迷次数|平均就寝时间|钓鱼次数|鱼获量|破碎巨石|砍树桩|步数采集|怪物击杀|钻石发现|棱柱形ardsFound|OtherPreciousGemsFound|CaveCarrotsFound|CopperFound|IronFound|CoalFound|CoinsFound|GoldFound|IridiumFound|BarsSmelted|BeveragesMade|PreservesMade|PiecesOfTrashRecycled|MysticStonesCrushed|DaysPlayed|WeedsEliminated|SticksChopped|NotesFound|QuestsCompleted|StarLevelCropsShipped|CropsShipped|ItemsForaged|SlimesKilled|GeodesCracked|GoodFriends|IndividualMoneyEarned] 默认值为空。
"StatsLabel": "Name", // [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted] 这是当前通过标签标识的游戏统计数据,如果添加更多标签,则应支持。它还可以标识其他模组添加的自定义统计数据标签。默认值为 null。
“金额”:1 // 状态金额应等于或大于条件有效。
}
],
"CollectionConditions": // 列表的每个收集条件必须具有等于或高于定义数量的值。
[
{
"Collection": "已发货", //[已发货|鱼|文物|矿物|烹饪|制作] 必填。
"Name": "Oil", //已弃用,改用 ID。“Crafting”系列物品或配方的名称。如果不是制作系列,则会在物品列表中查找该名称以查找索引。如果未找到该名称,则忽略该字母。将与其他属性合并。默认值为 null。
"Index": 211, //已弃用,使用 ID 代替。对象的索引。将与其他属性合并。默认值为 null。
"Ids": [ "282", "MossSoup" ], //物品 ID 或合成配方名称。将与其他属性合并。金额将被相加,以便与 Amount 属性进行比较。
"Amount": 10 // 集合中对象的总数量应等于或大于该条件才有效。
}
],
"SpecialDateCondition": // 必须是该日期或该日期之后。
{
"SpecialDate": "ChildBirth", //[婚礼|ChildBirth] 必填
"YearsSince": 1, //自日期发生以来的年数。0 表示与实际日期匹配,1 表示与后续年份匹配。默认值为 0。
"WhichChild": 1 //如果 SpecialDate 属性为 ChildBirth,则表示是哪个孩子。默认为 1;
},
"ExpandedPrecondition": "d Mon Fri/HasItem Pink Cake/!JojaMartComplete/!w rainy", //需要扩展前提条件实用程序模块。请参阅该模块的文档以了解其工作原理。如果未加载该模块,信件将无法投递。
"ExpandedPreconditions": [ "!z spring/t 600 1000", "f Linus 1000/w rainy/z spring", "f Linus 2500" ], //需要扩展前提条件实用程序模块。请参阅该模块的文档以了解其工作原理。如果未加载该模块,信件将无法投递。
"RandomChance": 0.25, // 模块会检查 0 到 1 之间的随机数是否低于给定值。同一天、同一封信的同一次存档将始终获得相同的结果,以避免作弊。
"Buildings": ["Coop","Big Coop","Deluxe Coop"], // 要求农场中当前正在建造其中一栋建筑物。
"RequireAllBuildings": false, // 如果为 true,则要求“建筑物”列表中的所有建筑物当前均已在农场中建造。默认值为 false。
"MailReceived": ["jojaVault","ccVault"], // 要求其中一封邮件已收到。游戏列表中还包含其他非邮件内容,例如社区中心旗帜。
"RequireAllMailReceived": false, // 如果为 true,则要求“MailReceived”列表中的所有邮件都已接收。默认为 false。
"MailNotReceived": ["jojaVault","ccVault"], // 要求邮件尚未收到。游戏列表中还包含其他非邮件内容,例如社区中心旗帜。
"EventsSeen": [ "4", "32423" ], // 要求其中一个事件已被玩家看到。应为字符串,但为了兼容后续版本,也可使用整数。
"RequireAllEventsSeen": false, // 如果为 true,则要求玩家必须已看到“EventsSeen”列表中的所有事件。默认值为 false。
"HasMods": [ "SMAPI.ConsoleCommands", "SMAPI.SaveBackup" ], // 需要加载其中一个模块。应为模块的 UniqueID。
"RequireAllMods": false, // 如果为 true,则要求“HasMods”列表中的所有模块都已加载。默认值为 false。
"EventsNotSeen": [ "4", "32423" ], // 要求事件未被玩家看到。应为字符串,但为了兼容后续版本,也可使用整数。
"RecipeKnown": ["Pizza","Survival Burger"], // 要求玩家已经学会其中一种食谱。
"RequireAllRecipeKnown": false, // 如果为 true,则要求玩家必须已学会“RecipeKnown”列表中的所有配方。默认值为 false。
"RecipeNotKnown": ["Wild Bait"], // 要求配方尚未被玩家学过。
"KeepValid": false // 如果为真,则在满足条件后,保持邮件有效直至被阅读。默认为 false。
}
]MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自定义文本。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
(此处似有缺失,请提供更正后的文本)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自定义文本。”
,new List<Item> { new StardewValley.Object(60,5) }
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
(此处似有缺失,请提供更正后的文本)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
, "字母自定义文本。"
,“食谱唯一名称”
, (l) => !Game1.player.cookingRecipes.ContainsKey(l.Recipe)
)
(此处似有缺失,请提供更正后的文本)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自定义文本。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
1
){文本颜色=8}
(此处似有缺失,请提供更正后的文本)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自定义文本。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,Game1.player.mailReceived.Add(l.Id)
1
){
LetterTexture=helper.Content.Load<Texture2D>("CustomLetterBG.png")
,文本颜色=4
}
(此处似有缺失,请提供更正后的文本)。
其中 CustomLetterBG.png 是一个遵循与“LooseSprites//letterBG”相同结构的图像文件MailRepository.保存信件(
新信件(
“LetterUniqueId”
,"我的信件翻译关键文本"
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
){
标题 = “myletter.translation.key.title”,
I18N = helper.Translation
}
(此处似有缺失,请提供更正后的文本)。

SMAPI-Stardew修改API
Pathoschild2025-07-15 09:52:47
Stardew Valley的mod加载器。

内容修补程序
Pathoschild2025-10-27 01:17:30
加载内容包,更改游戏的数据、图像和地图,而不替换XNB文件。

钓鱼助手2(1.6兼容)
I3lanketGhost2024-04-26 00:45:13
你的私人钓鱼助理。这将为你处理艰难、无聊和疲惫的钓鱼,而你甚至不必点击一次。

轻松垂钓套件(内容补丁)
Ericlegacy212026-05-10 01:42:50
升级你的垂钓体验!调整难度(简单/困难)、鱼类出现条件(时间、季节、天气)、刷新频率与售价。移除垃圾物品,重新捕捉传说鱼种,钓取五彩碎片,提升鱼塘产出,并排除指定鱼类。

又一个钓鱼模组
NeverToxic2024-11-18 00:43:23
钓鱼苦手想跳过小游戏?想给竹竿加鱼饵?这个模组能让你调整各种钓鱼相关设定。

易捕鱼v2.0
mmanlapat2018-06-06 05:41:20
让钓鱼变得更容易。兼容星谷1.2+。兼容星谷测试版。

Eidee轻松钓鱼
EideeHi2026-06-02 10:42:25
可定制的模式,便于钓鱼。

钓鱼信息叠加层
barteke222025-11-14 16:39:56
自定义覆盖层,手持鱼竿(或蟹笼)时显示当前区域鱼类,并在钓鱼小游戏中提供预览。