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:

  1. Stardew Valley en PC (versión 1.6 o superior).
  2. SMAPI, el cargador de mods oficial. Descárgalo, ejecútalo y dejará el juego listo para arrancar con mods cargados.
  3. 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.
  4. Editor de imágenes (Aseprite, GIMP o Photoshop) si vas a trabajar con sprites y pixel art.
  5. Copia de seguridad de la carpeta Saves antes de probar nada.

Para mods de código necesitarás además el .NET SDK (la versión 1.6+ usa .NET 6) y un editor como Visual Studio o VS Code con referencia a StardewModdingAPI.dll.

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 modDificultadLenguajeHerramientas clavePara qué sirve
Content PatcherBaja-mediaJSONSMAPI, Content Patcher, editor de imágenesSkins, sprites, retratos, mapas, precios, textos
Código en C#Media-altaC# (.NET 6)SMAPI, .NET SDK, VS o VS CodeEventos, mecánicas, interfaces, integraciones

Crea tu primer mod visual con Content Patcher

Content Patcher cambia imágenes y datos del juego mediante reglas en JSON, sin tocar los archivos originales. Es la vía recomendada si vienes del arte o del diseño, y resulta reversible: si quitas el mod, el juego vuelve a su estado base.

  1. Crea una carpeta dentro de Stardew Valley/Mods con el nombre de tu proyecto, por ejemplo MisGallinas.
  2. Añade un manifest.json con los campos Name, Author, Version, UniqueID y ContentPackFor apuntando a Pathoschild.ContentPatcher.
  3. 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.
  4. 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.
  5. 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.

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.

  1. Crea un proyecto de tipo Class Library con el .NET SDK adecuado y añade la referencia a StardewModdingAPI.dll.
  2. Escribe una clase que herede de StardewModdingAPI.Mod. Tu punto de entrada es el método Entry.
  3. Dentro de Entry, suscríbete a los eventos que necesites: GameLaunched, DayStarted, ButtonPressed, RenderedHud, entre otros.
  4. Usa Monitor.Log para escribir en la consola con niveles Debug, Info, Warn o Error. Te ahorrará horas de depuración.
  5. 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:

  1. Elimina archivos temporales y deja solo lo necesario.
  2. 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.
  3. Añade un README con instrucciones de instalación y desinstalación, una licencia y un listado de cambios.
  4. 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) es el programa que carga los mods y hace de puente entre el juego y tus archivos. Sin él, ni Content Patcher ni los mods de C# funcionan. Es seguro: no modifica los ficheros originales del juego, sino que intercepta lo que el juego pide y lo sustituye en memoria. Por eso quitar SMAPI devuelve Stardew Valley a su estado original sin dejar rastro.

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?

Usa siempre la última versión de SMAPI compatible con tu Stardew Valley. Para la versión 1.6 o superior del juego, los mods de código se compilan con .NET 6. Content Patcher no requiere SDK de .NET, solo SMAPI instalado.

¿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.

Guía revisada por comocrearun.org

Explicamos cada paso de forma clara y la actualizamos cuando algo cambia.