Saltar al contenido principal

Preguntas frecuentes de Resource Pack Manager

Si tu pregunta no se responde aquí, revisa primero las otras páginas de ResourcePackManager en la barra lateral.

¿Qué comandos expone actualmente ResourcePackManager?

En el backend (Paper / Spigot), la superficie de comandos respaldada por código es:

  • /rspm setup — abre un menú de configuración GUI dentro del juego (estado de actualización del plugin, plugins recomendados, interruptor de actualizaciones automáticas, enlaces al wiki / Discord / cuenta de Nightbreak)
  • /rspm reload — reconstruye y vuelve a alojar el paquete fusionado
  • /rspm status — volcado de diagnóstico completo (estado del paquete, modo de alojamiento, clave de red, integraciones)
  • /rspm itemsadder configure — configura ItemsAdder para el alojamiento por RSPM
  • /rspm itemsadder dismiss — descarta permanentemente la advertencia de ItemsAdder para el UUID de tu jugador
  • /rspm data_compliance_request — descarga todos los datos almacenados de forma remota para este servidor

El comando raíz es /resourcepackmanager, con /rspm como su alias. También se registran un puñado de subcomandos compartidos de MagmaCore/Nightbreak (p. ej. /rspm recommendedplugins, /rspm downloadall), que son a los que enlazan los botones del menú de configuración.

Permisos en el backend:

  • /rspm setup requiere resourcepackmanager.setup y es solo para jugadores (abre una GUI de inventario).
  • /rspm reload, /rspm status, /rspm itemsadder <configure|dismiss> y /rspm data_compliance_request requieren todos resourcepackmanager.*.

En el plugin del proxy (Velocity / BungeeCord), solo existen comandos de diagnóstico:

  • /rspm status — instantánea del lado del proxy: lista de backends, resultados de obtención por backend, estado del paquete fusionado, detección de Geyser/Floodgate
  • /rspm debug bedrock [on|off] — Velocity y BungeeCord. Alterna las líneas de log verbosas [RSPM-BedrockDebug] emitidas por GeyserBinder para diagnosticar casos de "el jugador de Bedrock se conectó pero no vio el paquete". Se restablece a off al reiniciar el proxy. Ejecutarlo sin argumento imprime el estado actual.

Los comandos del proxy comprueban resourcepackmanager.command.status o resourcepackmanager.*. La consola siempre tiene ambos; los jugadores necesitan que se les concedan a través de tu plugin de permisos. La salida es segura de compartir — la clave de red está enmascarada y no se imprimen tokens —, por lo que conceder estos permisos de forma amplia no supone ningún problema.

¿Qué plugins son compatibles actualmente?

ResourcePackManager incluye entradas de integración predefinidas para estos plugins:

  • BackpackPlus
  • BetterHUD
  • BetterStructures
  • CannonRTP
  • EliteMobs
  • EternalTD
  • FreeMinecraftModels
  • InfiniteVehicles
  • ItemsAdder
  • MegaBlockSurvivors
  • MMOInventory
  • ModelEngine
  • Nexo
  • Nova
  • Oraxen
  • RealisticSurvival
  • ResurrectionChest
  • ValhallaMMO
  • vane-core

Estas integraciones solo surten efecto si el plugin está instalado y su ruta local o URL remota configurada es utilizable.

Cada integración tiene su propio archivo de configuración YAML en plugins/ResourcePackManager/compatible_plugins/. Allí puedes personalizar isEnabled, pluginName, localPath, url, zips, cluster, additionalLocalPath y reloadCommand por plugin. La opción cluster le indica a ResourcePackManager que trate la ruta local como un directorio de varias subcarpetas de paquetes de recursos que deben fusionarse todas juntas.

¿Es ResourcePackManager compatible con ItemsAdder?

Sí. ResourcePackManager incluye un asistente integrado y un flujo de advertencia para ItemsAdder.

Si ItemsAdder está instalado y aún necesita ser ajustado para el alojamiento por ResourcePackManager, los jugadores OP reciben una advertencia clicable unos segundos después de conectarse. Los jugadores que descartaron permanentemente la advertencia ya no la ven. Desde allí puedes:

  • ejecutar /rspm itemsadder configure para establecer resource-pack.hosting.no-host.enabled: true, desactivar las tres opciones protect-file-from-unzip, establecer compress-json-files: false, ejecutar /iareload y luego /iazip, y después recargar ResourcePackManager (~15 s más tarde)
  • ejecutar /rspm itemsadder dismiss para descartar permanentemente esa advertencia para tu UUID de jugador

Si ItemsAdder ya está configurado para alojar su propio paquete mediante uno de sus modos de alojamiento, el comando asistente no lo anula automáticamente. Te indica que desactives manualmente el alojamiento de ItemsAdder primero.

¿Puedo añadir mi propio paquete a la mezcla?

Sí. Coloca tu archivo .zip en:

plugins/ResourcePackManager/mixer

Si deseas controlar qué paquete gana los conflictos de archivos, añade el nombre exacto del archivo, incluyendo .zip, a priorityOrder en plugins/ResourcePackManager/config.yml.

Ejemplo:

priorityOrder:
- ResourcePackManager
- EliteMobs
- MyCustomPack.zip

¿Cómo funciona la prioridad?

priorityOrder tiene la mayor prioridad arriba y la menor abajo.

Para archivos no fusionables, el paquete de mayor prioridad reemplaza al archivo de menor prioridad. Para archivos JSON fusionables, ResourcePackManager fusiona el contenido en lugar de reemplazarlo a ciegas.

El código trata actualmente como fusionables:

  • sounds.json
  • archivos de idioma bajo lang o languages
  • JSON de modelos de ítems vanilla bajo minecraft/models/item (estos reciben una fusión no recursiva: solo se combina el array overrides entre paquetes, mientras que el resto del archivo sigue la regla de que gana la mayor prioridad)
  • archivos de atlas
  • archivos de fuente
  • definiciones de modelos de ítems 1.21.4+ bajo items/ (fusión consciente del formato: deja los árboles de predicados intactos, no entra recursivamente a ciegas en distintos tipos de nodos)

pack.mcmeta se fusiona de forma especial: gana el pack_format más alto, los rangos de supported_formats se amplían para cubrir todos los paquetes (admite las formas de entero, array de dos enteros y objeto {min_inclusive, max_inclusive}), las entradas de overlay se combinan y las claves de nivel superior no estándar (p. ej. sodium) se conservan. Las entradas de overlay se normalizan para compatibilidad con 1.21.9+ añadiendo los campos min_format/max_format cuando faltan.

Tras fusionar todos los paquetes, ResourcePackManager fusiona las fuentes de atlas base en los archivos de atlas de overlay. Esto evita que los overlays oculten accidentalmente entradas del atlas base cuando Minecraft activa un overlay (p. ej. ia_overlay_modern_atlas / ia_overlay_legacy_atlas de ItemsAdder).

Otros archivos JSON se reemplazan en lugar de fusionarse.

Los paquetes que no estén listados en priorityOrder se incluyen igualmente en la mezcla pero reciben la prioridad más baja.

¿ResourcePackManager se reconstruye automáticamente cuando los paquetes cambian?

Sí. Vigila los cambios en las fuentes de paquetes compatibles.

Cuando un paquete vigilado deja de cambiar durante 3 segundos, ResourcePackManager lo marca como estable. Una vez que todos los paquetes vigilados son estables, la nueva mezcla ocurre inmediatamente. Durante esa transición, los jugadores OP en línea reciben la notificación: "All resource packs are stable. Mixing and sending now."

¿El watchdog tiene en cuenta la inicialización de plugins?

Sí. El watchdog es consciente de los estados de inicialización de los plugins de Magmacore.

  • Espera a que todos los plugins monitorizados terminen su inicialización de Magmacore antes de comenzar las comprobaciones de estabilidad.
  • Si un plugin se recarga mientras el watchdog está activo, este detecta el cambio de estado, se pausa, restablece todo el seguimiento de estabilidad y espera a que el plugin termine de reiniciarse.
  • Esto evita falsas detecciones de "inestable" que de otro modo ocurrirían durante secuencias normales de arranque o recarga de plugins.

¿Cómo reciben los jugadores el paquete final?

Cuando autoHost está activado (por defecto), RSPM elige una ruta de entrega automáticamente y envía esa URL a cada jugador que se conecta. El árbol de decisión es:

  1. Si selfHostForce: true, siempre autoaloja (omite todos los sondeos — principalmente para pruebas).
  2. En caso contrario, si preferSelfHost: true (por defecto), intenta autoalojar primero, ejecuta tres comprobaciones de cordura (host resuelto no-LAN, sondeo a sí mismo en localhost, sondeo de accesibilidad externa vía magmaguy.com) y se decide por autoalojar si las tres pasan.
  3. Si el autoalojamiento falla o está desactivado, sube el paquete a magmaguy.com/rsp/ y anuncia esa URL.

Una vez que tiene una URL, RSPM usa la API de varios paquetes en Minecraft 1.20.3+ para coexistir con otros paquetes enviados por el servidor. En versiones anteriores recurre al método antiguo de paquete único, que reemplaza cualquier asignación existente de paquete de recursos del servidor.

Si autoHost: false, RSPM no envía ninguna URL — se espera que tomes el zip de plugins/ResourcePackManager/output/ y lo sirvas a través de tu propia canalización.

Consulta Autoalojamiento para el árbol de decisión completo de entrega.

¿Puedo autoalojar en lugar de usar el alojamiento automático integrado?

Sí — y a partir de RSPM v2, el servidor HTTP integrado es la ruta de autoalojamiento recomendada. selfHostEnabled: true y preferSelfHost: true están ambos activos por defecto.

Si deseas alojar el zip a través de tu propio servidor web ya existente en lugar de cualquiera de las rutas integradas:

  • Establece autoHost: false.
  • Opcionalmente establece resourcePackRerouting a una ruta de carpeta existente relativa al directorio plugins.
  • Toma el paquete fusionado de plugins/ResourcePackManager/output/ResourcePackManager_RSP.zip y sírvelo tú mismo.

Si resourcePackRerouting está establecido, RSPM también escribe una copia de ese zip en la carpeta de redireccionamiento. Esa ruta se resuelve relativa al directorio plugins, y la carpeta de destino debe existir previamente.

¿Hay un comando para solicitar los datos almacenados en el host?

Sí. Usa:

/rspm data_compliance_request

Si el auto-host remoto de magmaguy.com tiene una sesión activa, ResourcePackManager descarga la respuesta en:

plugins/ResourcePackManager/data_compliance

Si no hay una sesión remota activa (p. ej. estás autoalojando), el comando te indica que no hay datos remotos que solicitar.

¿Qué opciones de configuración hay disponibles?

plugins/ResourcePackManager/config.yml expone las siguientes:

General

  • priorityOrder — lista que controla qué paquetes ganan los conflictos de archivos (mayor prioridad primero)
  • autoHost — si ResourcePackManager auto-aloja y envía el paquete fusionado (booleano, por defecto true)
  • forceResourcePack — si se fuerza a los jugadores a aceptar el paquete (booleano, por defecto false)
  • resourcePackPrompt — el mensaje de aviso mostrado cuando se ofrece el paquete (por defecto "Use recommended resource pack?")
  • resourcePackRerouting — ruta de carpeta opcional (relativa a plugins) donde escribir una copia adicional del zip fusionado
  • nightbreak.autoDownloadPluginUpdates — si RSPM descarga automáticamente sus propias actualizaciones de plugin al arrancar (booleano, por defecto false; aún se requiere un reinicio para aplicar una actualización descargada). Esta es una clave anidada bajo la sección nightbreak:, no una clave de nivel superior — buscar en config.yml una línea autoDownloadPluginUpdates suelta solo la encontrará indentada bajo nightbreak:. Es el mismo interruptor expuesto en la GUI de /rspm setup.

Autoalojamiento

  • selfHostEnabled — si el servidor HTTP integrado puede usarse (booleano, por defecto true)
  • selfHostPort — puerto para el servidor HTTP de autoalojamiento. -1 (por defecto) lo deriva automáticamente como mcPort + networkHttpOffset-v2. Establécelo a cualquier entero positivo para forzar un puerto explícito.
  • networkHttpOffset-v2 — desplazamiento de respaldo añadido al puerto del servidor de Minecraft cuando selfHostPort = -1. Por defecto 1 (p. ej. MC 25565 → HTTP 25566). En una red ya no tienes que mantenerlo sincronizado con el proxy: el backend anuncia automáticamente al proxy el puerto HTTP exacto al que realmente se enlazó, y el proxy solo usa su propio network-http-offset-v2 como conjetura antes de que llegue ese anuncio.
  • selfHostExternalHost — hostname público o IP que los clientes usan para alcanzar tu servidor de autoalojamiento. Vacío (por defecto) = autodetectar vía api.ipify.org / checkip.amazonaws.com.
  • selfHostForce — omite todas las comprobaciones de cordura Y la subida remota, siempre autoaloja (booleano, por defecto false — para pruebas).
  • preferSelfHost — intenta autoalojar primero con comprobaciones de cordura antes de recurrir a la subida remota (booleano, por defecto true).

Bedrock

  • bedrockConversionEnabled — convierte el paquete Java fusionado en un paquete de Bedrock para GeyserMC (por defecto true)
  • bedrockAutoDeployToGeyser — copia el archivo de mappings personalizados de Geyser a la carpeta de Geyser detectada (por defecto true)
  • bedrockGeyserFolder — sobrescritura manual de la ruta para la carpeta de Geyser; vacío = autodetectar
  • bedrockConverterDebug — líneas de log verbosas por ítem / por hueso de la canalización de Bedrock (por defecto false)

Un segundo archivo, plugins/ResourcePackManager/bedrock_display_offsets.yml, expone doce parámetros ajustables por el usuario para afinar dónde ven los jugadores de Bedrock los ítems en mano respecto a su mano (seis para primera persona, seis para tercera persona). Consulta Conversión a Bedrock para más detalles.

Intencionadamente no existe ninguna opción de configuración network-key. La clave que enlaza el proxy con sus backends se deriva automáticamente de plugins/floodgate/key.pem en cada JVM. Floodgate ya requiere que ese archivo sea el mismo en toda la red para la autenticación de Bedrock, por lo que la clave derivada coincide en todas partes automáticamente.

¿Pueden otros plugins registrar sus paquetes mediante código?

Sí. ResourcePackManager expone una API de Java para el registro programático de paquetes. Consulta la página de API para más detalles.

¿La conversión a Bedrock solo funciona para FreeMinecraftModels?

No, ya no. El convertidor actual gestiona cualquier plugin cuyo paquete incluya definiciones de ítems 1.21.4+ bajo assets/<namespace>/items/*.json. Eso cubre modelos por huesos de FreeMinecraftModels, equipo de EliteMobs, ítems personalizados de Oraxen/Nexo, sets de armadura personalizados y cualquier paquete que tú mismo construyas en ese formato. Los ítems personalizados 2D planos se emiten como iconos planos de Bedrock; los ítems 3D personalizados emiten geometría/attachables de Bedrock y un icono de inventario renderizado por software.

¿Necesito reiniciar el servidor cada vez que cambia el paquete de Bedrock?

Los ajustes de textura y modelo a ítems personalizados existentes surten efecto para el siguiente jugador de Bedrock que se conecte — RSPM sirve el paquete de Bedrock en vivo por sesión mediante la API de Geyser. Solo se requiere un reinicio cuando cambia el conjunto de ítems personalizados (añadir nuevos o eliminar existentes), porque Geyser registra sus identificadores de ítems personalizados al arrancar.

¿Funciona ResourcePackManager en BungeeCord / Velocity?

Sí — es una topología soportada de primera clase. Es el mismo ResourcePackManager.jar en todas partes: colócalo en cada backend y coloca una copia en el proxy. El único jar incluye los puntos de entrada de Bukkit, Velocity y BungeeCord/Waterfall, de modo que se carga correctamente tanto si el host es un backend como si es un proxy. Ya no hay jars de proxy separados ni carpeta proxy-extension/.

Ejecutándose como plugin del proxy, fusiona el paquete de Bedrock convertido de cada backend y lo sirve a los clientes de Bedrock a través del Geyser del proxy. La entrega del paquete Java sigue siendo gestionada por cada backend directamente — los clientes de Java ven los paquetes por backend.

Los pasos de configuración, solución de problemas y verificación están en Redes proxy.