FAQ do Resource Pack Manager
Se sua dúvida não for respondida aqui, confira primeiro as outras páginas do ResourcePackManager na barra lateral.
Quais comandos o ResourcePackManager expõe atualmente?
No backend (Paper / Spigot), a superfície de comandos suportada pelo código é:
/rspm setup— abre um menu de configuração em GUI no jogo (status de atualização do plugin, plugins recomendados, alternância de atualizações automáticas, links para wiki / Discord / conta Nightbreak)/rspm reload— reconstrói e re-hospeda o pack unificado/rspm status— dump completo de diagnóstico (estado do pack, modo de hospedagem, chave da rede, integrações)/rspm itemsadder configure— configura o ItemsAdder para hospedagem via RSPM/rspm itemsadder dismiss— descarta permanentemente o aviso do ItemsAdder para o UUID do seu jogador/rspm data_compliance_request— baixa todos os dados armazenados remotamente para este servidor
O comando raiz é /resourcepackmanager, tendo /rspm como alias. Alguns poucos subcomandos compartilhados do MagmaCore/Nightbreak (por exemplo, /rspm recommendedplugins, /rspm downloadall) também são registrados e são para onde os botões do menu de configuração apontam.
Permissões do backend:
/rspm setupexigeresourcepackmanager.setupe é exclusivo de jogadores (abre uma GUI de inventário)./rspm reload,/rspm status,/rspm itemsadder <configure|dismiss>e/rspm data_compliance_requestexigem todosresourcepackmanager.*.
No plugin do proxy (Velocity / BungeeCord), só existem comandos de diagnóstico:
/rspm status— snapshot do lado do proxy: lista de backends, resultados de fetch por backend, estado do pack unificado, detecção de Geyser/Floodgate/rspm debug bedrock [on|off]— Velocity e BungeeCord. Alterna as linhas de log detalhadas[RSPM-BedrockDebug]doGeyserBinderpara diagnosticar casos de "jogador Bedrock entrou mas não viu o pack". Volta a desligada no restart do proxy. Executá-lo sem argumento imprime o estado atual.
Os comandos do proxy verificam resourcepackmanager.command.status ou resourcepackmanager.*. O console sempre tem ambas; jogadores precisam que sejam concedidas por meio do seu plugin de permissões. A saída é segura para compartilhar — a chave da rede é mascarada e nenhum token é impresso — então conceder amplamente é tranquilo.
Quais plugins são suportados atualmente?
O ResourcePackManager já vem com entradas de integração prontas para estes plugins:
- BackpackPlus
- BetterHUD
- BetterStructures
- CannonRTP
- EliteMobs
- EternalTD
- FreeMinecraftModels
- InfiniteVehicles
- ItemsAdder
- MegaBlockSurvivors
- MMOInventory
- ModelEngine
- Nexo
- Nova
- Oraxen
- RealisticSurvival
- ResurrectionChest
- ValhallaMMO
- vane-core
Essas integrações só entram em vigor se o plugin estiver instalado e seu caminho local ou URL remota configurados forem utilizáveis.
Cada integração tem seu próprio arquivo YAML de configuração em plugins/ResourcePackManager/compatible_plugins/. Lá você pode personalizar isEnabled, pluginName, localPath, url, zips, cluster, additionalLocalPath e reloadCommand para cada plugin. A opção cluster informa ao ResourcePackManager que o caminho local deve ser tratado como um diretório contendo várias subpastas de resource pack que devem ser todas unidas.
O ResourcePackManager é compatível com o ItemsAdder?
Sim. O ResourcePackManager inclui um fluxo de auxiliar e de aviso integrado para o ItemsAdder.
Se o ItemsAdder estiver instalado e ainda precisar ser ajustado para hospedagem via ResourcePackManager, jogadores OP recebem um aviso clicável alguns segundos após entrar. Jogadores que descartaram o aviso permanentemente não o veem novamente. A partir daí você pode:
- executar
/rspm itemsadder configurepara definirresource-pack.hosting.no-host.enabled: true, desativar as três configurações deprotect-file-from-unzip, definircompress-json-files: false, executar/iareloade depois/iazip, e em seguida recarregar o ResourcePackManager (~15s depois) - executar
/rspm itemsadder dismisspara descartar permanentemente esse aviso para o UUID do seu jogador
Se o ItemsAdder já estiver configurado para hospedar o próprio pack por meio de algum de seus modos de hospedagem, o comando auxiliar não substitui isso automaticamente. Ele informa que você deve desativar a hospedagem do ItemsAdder antes.
Posso adicionar meu próprio pack à união?
Sim. Coloque seu arquivo .zip em:
plugins/ResourcePackManager/mixer
Se quiser controlar qual pack vence em conflitos de arquivos, adicione o nome exato do arquivo, incluindo o .zip, em priorityOrder no plugins/ResourcePackManager/config.yml.
Exemplo:
priorityOrder:
- ResourcePackManager
- EliteMobs
- MyCustomPack.zip
Como funciona a prioridade?
priorityOrder define a prioridade mais alta no topo e a mais baixa embaixo.
Para arquivos não mescláveis, o pack de maior prioridade substitui o arquivo de menor prioridade. Para arquivos JSON mescláveis, o ResourcePackManager une os conteúdos em vez de substituí-los cegamente.
O código atualmente trata estes como mescláveis:
sounds.json- arquivos de idioma em
langoulanguages - JSON de modelo de item vanilla em
minecraft/models/item(esses recebem uma mescla não recursiva: apenas o arrayoverridesé combinado entre packs, enquanto o restante do arquivo segue o critério de maior-prioridade-vence) - arquivos de atlas
- arquivos de fonte
- definições de modelo de item 1.21.4+ em
items/(mescla ciente do formato: mantém intactas as árvores de predicados, sem recorrer cegamente para tipos de nó diferentes)
pack.mcmeta é mesclado de forma especial: o maior pack_format vence, intervalos de supported_formats são ampliados para cobrir todos os packs (suportam as formas inteira, array de dois inteiros e objeto {min_inclusive, max_inclusive}), entradas de overlay são combinadas, e chaves de topo não padronizadas (por exemplo, sodium) são preservadas. As entradas de overlay são normalizadas para compatibilidade com 1.21.9+ pela adição dos campos min_format/max_format quando ausentes.
Após todos os packs serem unidos, o ResourcePackManager mescla as fontes do atlas base nos arquivos de overlay de atlas. Isso evita que overlays acidentalmente ocultem entradas de atlas base quando o Minecraft ativa um overlay (por exemplo, ia_overlay_modern_atlas / ia_overlay_legacy_atlas do ItemsAdder).
Outros arquivos JSON são substituídos em vez de mesclados.
Packs que não estão listados em priorityOrder ainda são incluídos na união, mas recebem a menor prioridade.
O ResourcePackManager reconstrói automaticamente quando os packs mudam?
Sim. Ele monitora as fontes de pack suportadas em busca de mudanças.
Quando um pack monitorado para de mudar por 3 segundos, o ResourcePackManager o marca como estável. Quando todos os packs monitorados estão estáveis, o re-mix acontece imediatamente. Durante essa transição, jogadores OP online são notificados: "All resource packs are stable. Mixing and sending now."
O watchdog leva em conta a inicialização do plugin?
Sim. O watchdog tem ciência dos estados de inicialização de plugins Magmacore.
- Ele aguarda todos os plugins monitorados concluírem a inicialização Magmacore antes de iniciar as checagens de estabilidade.
- Se um plugin é recarregado enquanto o watchdog está em execução, ele detecta a mudança de estado, pausa, reseta todo o rastreamento de estabilidade e aguarda o plugin terminar de se reinicializar.
- Isso evita falsas detecções de "instabilidade" que ocorreriam durante sequências normais de inicialização ou reload de plugins.
Como os jogadores recebem o pack final?
Quando autoHost está habilitado (padrão), o RSPM escolhe um caminho de entrega automaticamente e envia essa URL a todo jogador que entrar. A árvore de decisão é:
- Se
selfHostForce: true, sempre faz self-host (pula todos os probes — principalmente para testes). - Caso contrário, se
preferSelfHost: true(padrão), tenta o self-host primeiro, executa três checagens de sanidade (host externo resolvido não-LAN, self-probe em localhost, probe de alcançabilidade externa via magmaguy.com) e compromete-se com o self-host se as três passarem. - Se o self-host falhar ou estiver desabilitado, faz upload do pack para
magmaguy.com/rsp/e anuncia essa URL.
Uma vez de posse de uma URL, o RSPM usa a API de múltiplos packs no Minecraft 1.20.3+, podendo coexistir com outros packs enviados pelo servidor. Em versões anteriores, recorre ao método antigo de pack único, que substitui qualquer atribuição de resource pack existente do servidor.
Se autoHost: false, o RSPM não envia nenhuma URL — espera-se que você pegue o zip de plugins/ResourcePackManager/output/ e o sirva por meio do seu próprio pipeline.
Consulte Self-hosting para a árvore de decisão completa de entrega.
Posso fazer self-host em vez de usar o auto-host integrado?
Sim — e a partir do RSPM v2, o servidor HTTP integrado é o caminho de self-host recomendado. selfHostEnabled: true e preferSelfHost: true vêm ambos ativados por padrão.
Se você quiser hospedar o zip por meio do seu próprio servidor web existente, em vez de qualquer um dos caminhos integrados:
- Defina
autoHost: false. - Opcionalmente defina
resourcePackReroutingcomo um caminho de pasta existente relativo ao diretórioplugins. - Pegue o pack unificado de
plugins/ResourcePackManager/output/ResourcePackManager_RSP.zipe o hospede por conta própria.
Se resourcePackRerouting estiver definido, o RSPM também grava uma cópia desse zip na pasta de redirecionamento. Esse caminho de redirecionamento é resolvido em relação ao diretório plugins, e a pasta de destino já deve existir.
Existe um comando para solicitar dados armazenados no host?
Sim. Use:
/rspm data_compliance_request
Se o auto-host remoto do magmaguy.com tiver uma sessão ativa, o ResourcePackManager baixa a resposta para:
plugins/ResourcePackManager/data_compliance
Se não houver sessão remota ativa (por exemplo, se você estiver fazendo self-host), o comando informa que não há dados remotos a solicitar.
Quais opções de configuração estão disponíveis?
O plugins/ResourcePackManager/config.yml expõe o seguinte:
Geral
priorityOrder— lista que controla quais packs vencem em conflitos de arquivos (maior prioridade primeiro)autoHost— se o ResourcePackManager auto-hospeda e envia o pack unificado (boolean, padrãotrue)forceResourcePack— se os jogadores devem ser forçados a aceitar o pack (boolean, padrãofalse)resourcePackPrompt— o prompt exibido quando o pack é oferecido (padrão"Use recommended resource pack?")resourcePackRerouting— caminho opcional de pasta (relativo aplugins) para gravar uma cópia extra do zip unificadonightbreak.autoDownloadPluginUpdates— se o RSPM baixa automaticamente suas próprias atualizações de plugin na inicialização (boolean, padrãofalse; ainda é necessário um restart para aplicar uma atualização baixada). Esta é uma chave aninhada sob a seçãonightbreak:, não uma chave de topo — procurar no config.yml por uma linhaautoDownloadPluginUpdatessolta só a encontrará indentada sobnightbreak:. É a mesma alternância exposta na GUI de/rspm setup.
Self-hosting
selfHostEnabled— se o servidor HTTP integrado pode ser usado (boolean, padrãotrue)selfHostPort— porta do servidor HTTP de self-host.-1(padrão) auto-deriva comomcPort + networkHttpOffset-v2. Defina qualquer inteiro positivo para forçar uma porta explícita.networkHttpOffset-v2— offset de fallback adicionado à porta do servidor Minecraft quandoselfHostPort = -1. Padrão1(por exemplo, MC 25565 → HTTP 25566). Em uma rede, você não precisa mais manter isso em sincronia com o proxy: o backend auto-anuncia ao proxy a porta HTTP exata em que efetivamente se vinculou, e o proxy só usa seu próprionetwork-http-offset-v2como palpite antes que esse anúncio chegue.selfHostExternalHost— hostname ou IP público que os clientes usam para alcançar seu servidor de self-host. Vazio (padrão) = auto-detecção via api.ipify.org / checkip.amazonaws.com.selfHostForce— pula todas as checagens de sanidade E o upload remoto, sempre faz self-host (boolean, padrãofalse— para testes).preferSelfHost— tenta o self-host primeiro com checagens de sanidade antes de recorrer ao upload remoto (boolean, padrãotrue).
Bedrock
bedrockConversionEnabled— converte o pack Java unificado em um pack Bedrock para o GeyserMC (padrãotrue)bedrockAutoDeployToGeyser— copia o arquivo de custom mappings do Geyser para a pasta Geyser detectada (padrãotrue)bedrockGeyserFolder— substituição manual de caminho para a pasta do Geyser; vazio = auto-detecçãobedrockConverterDebug— linhas de log detalhadas por item / por osso do pipeline Bedrock (padrãofalse)
Um segundo arquivo, plugins/ResourcePackManager/bedrock_display_offsets.yml, expõe doze parâmetros ajustáveis pelo usuário para refinar onde os jogadores Bedrock veem os itens segurados em relação à mão (seis para primeira pessoa, seis para terceira pessoa). Consulte a conversão Bedrock para detalhes.
Intencionalmente não há opção de configuração network-key. A chave que liga o proxy aos seus backends é auto-derivada de plugins/floodgate/key.pem em cada JVM. O Floodgate já exige que esse arquivo seja o mesmo em toda a rede para a autenticação Bedrock, então a chave derivada coincide automaticamente em todos os lugares.
Outros plugins podem registrar seus packs via código?
Sim. O ResourcePackManager expõe uma API Java para registro programático de packs. Consulte a página da API para detalhes.
A conversão Bedrock só funciona para o FreeMinecraftModels?
Não, não mais. O conversor atual lida com qualquer plugin cujo pack inclua definições de itens 1.21.4+ em assets/<namespace>/items/*.json. Isso cobre modelos de ossos do FreeMinecraftModels, equipamentos do EliteMobs, itens personalizados do Oraxen/Nexo, conjuntos de armadura personalizada e qualquer pack que você monte por conta própria nesse formato. Itens 2D simples personalizados são emitidos como ícones Bedrock planos; itens 3D personalizados emitem geometria/attachables Bedrock e um ícone de inventário renderizado por software.
Preciso reiniciar o servidor sempre que o pack Bedrock mudar?
Ajustes de textura e modelo em itens personalizados já existentes entram em vigor para o próximo jogador Bedrock que entrar — o RSPM serve o pack Bedrock ao vivo por sessão via API do Geyser. O reinício só é necessário quando o conjunto de itens personalizados muda (adicionar novos ou remover existentes), pois o Geyser registra seus identificadores de itens personalizados na inicialização.
O ResourcePackManager funciona em BungeeCord / Velocity?
Sim — é uma topologia suportada de primeira classe. É o mesmo ResourcePackManager.jar em todos os lugares: coloque-o em cada backend e coloque uma cópia no proxy. O único jar agrupa os pontos de entrada Bukkit, Velocity e BungeeCord/Waterfall, então ele carrega corretamente seja o host um backend ou um proxy. Não existem mais jars de proxy separados nem pasta proxy-extension/.
Rodando como plugin de proxy, ele une o pack Bedrock convertido de cada backend e o serve a clientes Bedrock por meio do Geyser do proxy. A entrega do pack Java ainda é tratada por cada backend diretamente — clientes Java veem packs por backend.
Os passos de configuração, solução de problemas e verificação estão em Redes com Proxy.