Enable your openclaw to create mods for Stardew Valley

Integrations
Json

星露谷物语 Mod 制作助手。用于创建 Content Patcher (CP) Mod 或 SMAPI Mod,包括:创建项目结构、编写 JSON、添加 NPC/事件/对话、验证格式、编译 SMAPI Mod。当用户说"做星露谷 mod"、"创建 Stardew Valley Mod"、"星露谷 Mod 制作"时触发。

Install

openclaw skills install @yizege/stardewvalley-modding

Stardew Valley Mod 制作助手

⚠️ 工具依赖

使用本技能前,请确保有以下工具:

工具用途检查命令
文本编辑器编辑文件已有
Python验证 JSONpython3 --version
.NET SDK编译 SMAPI Moddotnet --version

检查工具可用性

import subprocess
import shutil

def check_tools():
    errors = []
    
    # 检查 Python
    if not shutil.which('python3'):
        errors.append("❌ Python 未安装")
    
    # 检查 .NET (可选,用于 SMAPI Mod)
    if not shutil.which('dotnet'):
        errors.append("⚠️ .NET SDK 未安装(SMAPI Mod 需要,CP Mod 不需要)")
    
    if errors:
        return errors
    return ["✅ 所有工具就绪"]

🔧 自动判断 Mod 类型

根据用户需求自动选择:

需求类型需要 .NET
添加 NPC/对话/立绘CP Mod❌ 不需要
修改游戏数据CP Mod❌ 不需要
添加新地图CP Mod❌ 不需要
修改游戏机制SMAPI Mod✅ 需要
添加孩子功能SMAPI Mod✅ 需要
代码级 HookSMAPI Mod✅ 需要

自动判断逻辑

def determine_mod_type(user_request):
    request = user_request.lower()
    
    smapi_keywords = ["孩子", "孩子功能", "hook", "修改机制", "代码", "dll", "编译"]
    cp_keywords = ["对话", "立绘", "npc", "剧情", "事件", "地图", "json"]
    
    for keyword in smapi_keywords:
        if keyword in request:
            return "SMAPI"
    
    for keyword in cp_keywords:
        if keyword in request:
            return "CP"
    
    return "CP"  # 默认 CP

快速开始

Content Patcher Mod

  1. 创建项目文件夹结构
  2. 编写 manifest.json
  3. 编写 content.json
  4. 添加资源文件(对话、立绘、地图等)

SMAPI Mod (C#)

  1. 创建 C# 项目
  2. 引用 SMAPI DLL
  3. 编写 Mod 代码
  4. 编译 DLL

项目结构

CP Mod 标准结构

ModName/
├── manifest.json           # Mod 信息
├── content.json          # 内容定义
└── assets/              # 资源文件夹
    ├── Dialogue/        # 对话文件
    ├── Image/           # 图片资源
    ├── Maps/            # 地图文件
    ├── Schedule/        # 行程文件
    └── i18n/           # 多语言

SMAPI Mod 标准结构

ModName/
├── ModName.csproj       # 项目文件
├── ModEntry.cs          # 主代码
└── manifest.json        # Mod 信息

常用代码片段

manifest.json 模板

{
  "Name": "ModName",
  "Author": "YourName",
  "Version": "1.0.0",
  "Description": "Mod 描述",
  "UniqueID": "YourName.ModName",
  "ContentPackFor": {
    "UniqueID": "Pathoschild.ContentPatcher",
    "MinimumVersion": "2.0"
  }
}

content.json 基础结构

{
  "Format": "2.3.0",
  "Changes": [
    {
      "LogName": "说明",
      "Action": "EditData/Load/EditImage",
      "Target": "目标路径",
      "Entries": {}
    }
  ]
}

婚后对话格式

{
  "Action": "EditData",
  "Target": "Characters/Dialogue/MarriageDialogueNPC名",
  "Entries": {
    "Rainy_Day_0": "对话内容",
    "Indoor_Night_0": "对话内容"
  }
}

Event 触发条件

条件代码
结婚Spouse NPC名
好感度Friendship NPC名 数字 (2500 = 10心)
时间Time 600 1000
天气Weather rainy
季节Season summer
雨天Weather rainy
晴天Weather sunny

工具

验证 JSON

python3 -c "import json; json.load(open('file.json'))"

编译 SMAPI Mod

dotnet build

资源路径

  • 游戏目录:~/Library/Application Support/Steam/steamapps/common/Stardew Valley/
  • Mods:.../Stardew Valley/Contents/MacOS/Mods/
  • SMAPI DLL:.../Stardew Valley/Contents/MacOS/smapi-internal/

参考