Cómo crear mods para Stardew Valley paso a paso
Crea un mod de Stardew Valley con SMAPI y Content Patcher: ejemplo JSON descargable, instalación, dependencias y comprobaciones sin tocar los XNB originales.
En esta guía
Crear un mod para Stardew Valley se reduce a dos caminos: editar texturas y datos con Content Patcher (sin programar, solo archivos JSON) o escribir lógica nueva en C# con el SDK de .NET. En ambos casos necesitas SMAPI, el cargador de mods que conecta tus archivos con el juego. Esta guía cubre el flujo completo, desde instalar el entorno hasta publicar.
Lo esencial: instala SMAPI, crea una carpeta en Stardew Valley/Mods con un manifest.json y, si solo cambias gráficos, un content.json de Content Patcher; para lógica avanzada compila una DLL en C#.
Prepara el entorno antes de empezar
Antes de tocar una textura o escribir código, instala lo básico:
- Stardew Valley compatible con tu SMAPI. A 14 de septiembre de 2026, SMAPI 4.5.2 exige Stardew Valley 1.6.14 o posterior en Linux, macOS, Windows o Steam Deck. No extrapoles esa instalación a móvil o consola.
- SMAPI, un cargador de código abierto creado por la comunidad, no una herramienta oficial de ConcernedApe. Instálalo desde el proyecto original y arranca el juego a través de SMAPI.
- Decide tu ruta: Content Patcher para cambiar gráficos, mapas, precios o descripciones; C# con el .NET SDK para eventos, mecánicas o interfaces nuevas.
- Editor de imágenes (Aseprite, GIMP o Photoshop) si vas a trabajar con sprites y pixel art.
- Copia de seguridad de la carpeta Saves antes de probar nada.
Para mods de código necesitas además el .NET SDK que corresponda a la versión del juego y SMAPI, junto con un proyecto de mod configurado para ese entorno. No confundas el SDK para compilar con el runtime para jugar. Sigue las instrucciones de creación enlazadas por SMAPI y usa el paquete de compilación del proyecto para resolver las referencias, en lugar de copiar DLL arbitrarias de otra instalación.
Como referencia comprobada en esta revisión, el proyecto de SMAPI declara net6.0. Es el framework de destino de ese código; no significa que cualquier versión futura del juego vaya a utilizarlo ni que debas sustituir tu SDK sin seguir las instrucciones de compilación.
Si prefieres organizar tus mods de forma visual, te sirve la guía para gestionar mods con CurseForge. Y si juegas desde Steam, revisa cómo añadir mods a juegos de Steam sin romper la instalación.
| Tipo de mod | Dificultad | Lenguaje | Herramientas clave | Para qué sirve |
|---|---|---|---|---|
| Content Patcher | Baja-media | JSON | SMAPI, Content Patcher, editor de imágenes | Skins, sprites, retratos, mapas, precios, textos |
| Código en C# | Media-alta | C# y .NET compatible | SMAPI, .NET SDK, editor | Eventos, mecánicas, interfaces, integraciones |
Crea tu primer mod visual con Content Patcher
Content Patcher cambia imágenes y datos mediante JSON sin sustituir los XNB originales. Quitar un parche visual sencillo restaura ese recurso, pero un mod que añade objetos o ubicaciones puede dejar referencias en tu partida. Usa una partida de prueba y conserva una copia de Saves.
- Crea una carpeta dentro de Stardew Valley/Mods con el nombre de tu proyecto, por ejemplo MisGallinas.
- Añade un manifest.json con los campos Name, Author, Version, Description, UniqueID y ContentPackFor apuntando a Pathoschild.ContentPatcher.
- Crea un content.json con tus patches. Para sustituir una textura usa la acción Load; para cambios parciales, EditImage; para datos como precios o descripciones, EditData; y EditMap para mapas editados con Tiled.
- Coloca tus imágenes PNG en una subcarpeta assets/ y referéncialas desde content.json. El PNG debe respetar el tamaño y el orden del asset original.
- Arranca el juego con SMAPI y revisa la consola: ahí verás si el parche se aplicó o si hay rutas mal escritas.
Un detalle importante: mantén el UniqueID único (algo como tunombre.MisGallinas) y usa versión semántica (1.0.0). Eso evita conflictos con otros mods y facilita las actualizaciones.
Las acciones de Content Patcher también aceptan condiciones, así que puedes aplicar un cambio solo en una estación concreta, en un idioma o según una opción que active el usuario. Esto es lo que te permite, por ejemplo, dar a un cultivo un aspecto distinto en invierno.
Ejemplo descargable: cambiar una frase de Abigail
Este primer ejemplo utiliza dos JSON y ningún gráfico externo. Añade una frase propia a la entrada de diálogo Mon de Abigail. Está basado en la estructura de Content Patcher y su acción EditData, comprobadas el 14 de septiembre de 2026.
Descomprime la carpeta [CP] DialogoAbigail dentro de Mods/, junto a Content Patcher. El archivo manifest.json identifica el paquete:
{
"Name": "Dialogo de prueba de Abigail",
"Author": "comocrearun.org",
"Version": "1.0.0",
"Description": "Cambia una frase de los lunes para aprender EditData.",
"UniqueID": "ComoCrearUn.DialogoAbigail",
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher",
"MinimumVersion": "2.9.0"
}
}
Y content.json contiene la modificación:
{
"Format": "2.9.0",
"Changes": [
{
"Action": "EditData",
"Target": "Characters/Dialogue/Abigail",
"Entries": {
"Mon": "Hoy estoy probando una frase nueva. Parece que el parche funciona."
}
}
]
}
Qué comprobar: SMAPI debe listar el paquete sin errores de dependencia. En la consola de Content Patcher puedes consultar patch summary para revisar la carga. La clave Mon corresponde al diálogo ordinario de lunes, pero otras condiciones del juego o mods pueden seleccionar un diálogo diferente: no esperes ver la frase en cualquier conversación o evento. No cambies el guardado para forzar la prueba.
Para retirar este ejemplo, cierra el juego y saca su carpeta de Mods/. Validación del descargable: estructura del ZIP y JSON comprobados; no se ha ejecutado una partida de Stardew Valley en esta revisión. La compatibilidad final debe comprobarse con tus versiones y otros mods instalados.
Programa un mod de código en C#
Cuando Content Patcher se queda corto (necesitas un evento nuevo, una mecánica o una interfaz), toca compilar una DLL en C# que SMAPI cargará al iniciar.
- Crea un proyecto de tipo Class Library siguiendo la plantilla y referencias de la guía de SMAPI para la versión de tu juego. Configura el paquete de compilación recomendado por el proyecto.
- Escribe una clase que herede de StardewModdingAPI.Mod. Tu punto de entrada es el método Entry.
- Dentro de Entry, suscríbete a los eventos que necesites: GameLaunched, DayStarted, ButtonPressed, RenderedHud, entre otros.
- Usa Monitor.Log para escribir en la consola con niveles Debug, Info, Warn o Error. Te ahorrará horas de depuración.
- Compila en modo Release, copia la carpeta del mod (manifest + DLL) a Mods/ y prueba con SMAPI.
Trabajarás sobre todo con el espacio de nombres StardewValley (granja, objetos, NPCs, jugador) y las utilidades de SMAPI. Empieza pequeño: muestra un mensaje al iniciar el día o ajusta la energía del personaje, y desde ahí escala hacia mecánicas completas.
Eventos que más vas a usar:
- DayStarted: al comenzar cada día.
- TimeChanged: cada 10 minutos del reloj del juego.
- UpdateTicked: en cada frame (úsalo con cuidado, pesa mucho).
- MenuChanged: cuando se abre o cierra una interfaz.
- PlayerWarped: al cambiar de mapa.
Si quieres que los jugadores ajusten valores (teclas, cantidades, activar o desactivar funciones), añade un config.json y léelo desde tu mod. Y si te interesa el modding más profundo, este flujo es parecido al de crear un mod de Skyrim, donde también se separa contenido de lógica.
Prueba y depura tu mod
La consola de SMAPI es tu mejor herramienta. Al arrancar lista los mods cargados, sus versiones, las dependencias que faltan y los errores. Cuando algo no funciona:
- En Content Patcher, revisa rutas de assets, nombres exactos y condiciones.
- En C#, lee el stack trace para localizar la línea que falla.
- Prueba siempre en una partida nueva o en un perfil separado antes de tocar tu partida principal.
Para no perder progreso, haz copias de seguridad de Saves con frecuencia y evita eliminar de golpe un mod que añade datos persistentes, porque puede dejar la partida en un estado raro.
En cuanto al rendimiento, no metas lógica pesada dentro de UpdateTicked, cachea los resultados que puedas reutilizar y escribe en el log solo lo necesario. Un mod que recalcula todo en cada frame baja los FPS de cualquier equipo.
Publica tu mod de forma segura
Cuando funcione bien, prepara un paquete limpio para compartirlo:
- Elimina archivos temporales y deja solo lo necesario.
- Para mods de contenido, incluye manifest.json, content.json y la carpeta assets. Para mods de código, la DLL compilada y un config.json de ejemplo si aplica.
- Añade un README con instrucciones de instalación y desinstalación, una licencia y un listado de cambios.
- En el manifest, declara las dependencies (por ejemplo, Content Patcher) y las update keys para que SMAPI avise de nuevas versiones.
Las plataformas más usadas son Nexus Mods y ModDrop. Indica siempre qué versión de Stardew Valley y de SMAPI soporta tu mod, y mantén versionado semántico (1.0.0, 1.1.0, 1.1.1) para que quede claro qué cambia en cada actualización.
Qué es SMAPI y por qué lo necesitas
SMAPI (Stardew Modding API) conecta los mods con el juego y muestra sus errores. Es un proyecto de código abierto de Pathoschild. Eso no convierte todos los mods que carga en seguros ni garantiza que desinstalarlo elimine cambios guardados por otros mods: revisa las dependencias y conserva copias de las partidas.
Preguntas frecuentes
¿Puedo crear mods de Stardew Valley sin saber programar?
Sí. Con Content Patcher cambias sprites, retratos, mapas, precios o descripciones usando solo archivos JSON, sin escribir C#. Conviene entender cómo se estructuran los patches y organizar bien tus assets, pero no necesitas conocimientos de programación.
¿Qué versión de SMAPI y de .NET necesito?
Comprueba los requisitos de la descarga de SMAPI y del mod. El ejemplo de esta página requiere Content Patcher 2.9.0 o posterior compatible. Para editar sus JSON no necesitas instalar un SDK de .NET; para compilar C# sí debes preparar el entorno que indique la guía de desarrollo de SMAPI.
¿Cómo evito romper mi partida guardada?
Haz copias de seguridad de la carpeta Saves antes de probar mods, usa una partida nueva o un perfil aparte para las pruebas y revisa la consola de SMAPI buscando errores. No elimines de golpe un mod que añade datos persistentes sin desinstalarlo de forma ordenada.
¿Dónde publico mi mod y cómo lo actualizo?
Las plataformas más habituales son Nexus Mods y ModDrop. Sube un paquete limpio con README, licencia y dependencias listadas. Para actualizar, sigue el versionado semántico, explica los cambios en el changelog y comprueba la compatibilidad con la última versión del juego y de SMAPI antes de publicar.
¿Por qué mi mod no aparece o no se carga?
Casi siempre es un problema en el manifest.json (un campo mal escrito o un UniqueID duplicado), una ruta de asset incorrecta o una dependencia que falta. Arranca con SMAPI y lee la consola: indica exactamente qué mod falló y por qué, lo que te lleva directo a la causa.