Modding:Guía del Modder/APIs/Manifest

De Stardew Valley Wiki
Ir a la navegación Ir a la búsqueda

Creación de mods SMAPI SMAPI mascot.png


Modding:Índice

Cada mod o paquete de contenido de SMAPI debe tener un archivo manifest.json en su carpeta. SMAPI usa esto para identificar y cargar el mod, realizar comprobaciones de actualización, etc. La información del manifiesto también está disponible para cualquier mod en el código (usando this.ModManifest para el manifiesto del mod actual, o registro de mod para los manifests de otros mods).

Ejemplos básicos

Este es el formato básico (consulte a continuación los detalles de cada campo):

Para un mod SMAPI Para un paquete de contenido
{
  "Name": "Nombre de su proyecto",
  "Author": "su nombre",
  "Version": "1.0.0",
  "Description": "Una o dos oraciones sobre el mod",
  "UniqueID": "Sunombre.SunombredeProyecto",
  "EntryDll": "YourDllFileName.dll",
  "UpdateKeys": []
}
{
  "Name": "Nombre de su proyecto",
  "Author": "su nombre",
  "Version": "1.0.0",
  "Description": "Una o dos oraciones sobre el mod",
  "UniqueID": "Sunombre.SunombredeProyecto",
  "UpdateKeys": [],
  "ContentPackFor": {
    "UniqueID": "Pathoschild.ContentPatcher"
  }
}

Campos

Campos básicos

Todos los mods deben especificar los siguientes campos.

campo descripción
Name El nombre del mod. SMAPI usa esto en los mensajes, registros y errores del jugador. Ejemplo:
"Name": "LookupAnything"
Author El nombre de la persona que creó el mod. Idealmente, esto debería incluir el nombre de usuario utilizado para publicar mods. Ejemplo:
"Author": "Pathoschild"
Version La versión semántica del mod. ¡Asegúrate de actualizar esto para cada versión! SMAPI usa esto para comprobaciones de actualización, dependencias de mods y listas negras de compatibilidad (si el mod falla en una versión futura del juego). Ejemplos:
"Version": "1.0.0"
"Version": "1.0.1-beta.2"
Description Una breve explicación de lo que hace tu mod (una o dos oraciones), que se muestra en el registro de SMAPI. Ejemplo:
"Description": "Ver metadatos sobre cualquier cosa presionando un botón."
UniqueID Un identificador único para tu mod. El formato recomendado es <tu nombre>.<nombre del mod>, sin espacios ni caracteres especiales. SMAPI usa esto para Comprobaciones de actualización, dependencias de mods y listas negras de compatibilidad (si el mod falla en una versión futura del juego). Cuando otro mod necesita hacer referencia a este mod, usa la ID única. Ejemplo:
"UniqueID": "Pathoschild.LookupAnything"
EntryDll or ContentPackFor

Todos los mods deben especificar ya sea EntryDll (para un mod SMAPI) o ContentPackFor (para un paquete de contenido). Estos son mutuamente excluyentes: no puede especificar ambos.

Para un mod SMAPI, EntryDll es el nombre de archivo DLL compilado del mod en su carpeta mod. Ejemplo:
"EntryDll": "LookupAnything.dll"

Para un paquete de contenido, ContentPackFor especifica qué mod puede leerlo. El MinimumVersion es opcional. Ejemplo:

"ContentPackFor": {
   "UniqueID": "Pathoschild.ContentPatcher",
   "MinimumVersion": "1.0.0"
}

Versión mínima de SMAPI

El campo MinimumApiVersion establece la versión mínima de SMAPI necesaria para usar este mod. Si un jugador intenta usar el mod con una versión anterior de SMAPI, verá un mensaje amistoso que dice que necesita actualizar SMAPI. Esto también sirve como proxy para la versión mínima del juego, ya que SMAPI impone una versión mínima del juego. Ejemplo:

"MinimumApiVersion": "3.8.0"

Dependencias

El campo Dependencies especifica otros mods necesarios para usar esta mod. Si un jugador intenta usar el mod y las dependencias no están instaladas, el mod no se cargará y verá un mensaje amigable que dice que necesita instalarlos. Por ejemplo:

"Dependencies": [
   {
      "UniqueID": "SMAPI.ConsoleCommands",
      "MinimumVersion": "3.8.0" // opcional. Si se especifica, las versiones anteriores no cumplirán el requisito. 
   }
]

Puede marcar una dependencia como opcional. Se cargará primero si está instalado; de lo contrario, se ignorará.

"Dependencies": [
   {
      "UniqueID": "SMAPI.ConsoleCommands",
      "IsRequired": false
   }
]

Comprobaciones de actualización

SMAPI puede detectar nuevas versiones de su mod y alertar al usuario con un enlace a su página de mod. Puede habilitar esto configurando el campo UpdateKeys en tu manifest.json, que le dice a SMAPI dónde verificar.

Consulte las comprobaciones de actualización para obtener más información.

Algo más

Cualquier otro campo se almacenará en el diccionario del IManifest.ExtraFields que está disponible a través del registro del mod. SMAPI ignora los campos adicionales, pero pueden ser útiles para metadatos extendidos destinados a otros mods.