ResourcePackManager (RSPM)
O ResourcePackManager descobre, une, hospeda e distribui resource packs de plugins suportados e de packs fornecidos manualmente. Ele também pode converter o pack Java unificado em um resource pack Bedrock, para que jogadores via GeyserMC vejam o mesmo conteúdo personalizado que os jogadores Java, e oferece suporte de primeira classe para redes com proxy BungeeCord, Waterfall e Velocity.
O Que Ele Faz
- descobre packs de plugins suportados e os une de acordo com
priorityOrder - executa seu próprio servidor HTTP integrado para fazer self-host do pack unificado (sem necessidade de um host de arquivos externo)
- pode recorrer à hospedagem gratuita do MagmaGuy (auto-host) quando o self-host não for viável
- pode forçar ou opcionalmente solicitar o uso do pack
- monitora alterações nos packs e refaz a união automaticamente quando as fontes se estabilizam
- converte o pack Java unificado em um resource pack Bedrock para o GeyserMC
- registra entidades Bedrock verdadeiramente personalizadas no Geyser por meio de uma extensão do Geyser empacotada, de modo que entidades modeladas (por exemplo, do FreeMinecraftModels e do EliteMobs) renderizem e animem para jogadores Bedrock
- funciona em redes com proxy: cada backend produz seu próprio pack Bedrock, o plugin do proxy os busca, os une e serve o resultado por meio do Geyser
- conecta uma rede sem nenhuma chave para colar: o proxy é o dono da chave da rede, salva-a em seu próprio arquivo
network-keye a envia automaticamente para cada backend na primeira vez que um jogador se conecta lá - consegue manter-se atualizado em toda a rede: os backends oferecem o jar universal do plugin por uma rota autenticada; o proxy valida sua estrutura e versão, recusa downgrades, verifica os bytes transferidos por SHA-256 e o prepara para o próximo desligamento
Arquitetura em Resumo
O RSPM v2 é um build Maven multi-módulo, mas é distribuído como um único jar: ResourcePackManager.jar. Esse único jar contém o plugin Bukkit/Paper, o plugin Velocity e o plugin BungeeCord/Waterfall, todos de uma só vez — o Minecraft carrega o ponto de entrada que corresponder à plataforma em que está rodando. Não existem mais arquivos ResourcePackManager-Velocity.jar / ResourcePackManager-BungeeCord.jar separados para extrair.
A pasta proxy-extension/ ainda existe, mas agora significa outra coisa: quando um backend percebe que está atrás de um proxy e nunca recebeu uma chave de rede, ele prepara uma cópia byte a byte idêntica do próprio jar em execução em plugins/ResourcePackManager/proxy-extension/ResourcePackManager.jar e pede que você copie esse único arquivo para o proxy. É uma cópia de conveniência do jar que você já tem, não um artefato separado por plataforma.
O mesmo jar desempenha dois papéis, dependendo de onde você o coloca:
- Como plugin de backend (em cada backend Paper/Spigot) — mescla packs Java, executa o conversor Bedrock, hospeda o pack, expõe um pequeno servidor HTTP e envia packs aos clientes Java.
- Como plugin de proxy (em um proxy Velocity ou BungeeCord/Waterfall) — busca o pack Bedrock e os mappings de cada backend, une-os em um único pack válido para toda a rede e o serve a clientes Bedrock por meio do Geyser do proxy.
Um servidor standalone só precisa do jar no backend. Uma rede com proxy precisa do mesmo jar em cada backend E de uma cópia no proxy.
O mesmo jar também funciona como uma extensão do Geyser. Quando o backend detecta uma instalação local do Geyser-Spigot, ele instala o mesmíssimo ResourcePackManager.jar universal em Geyser-Spigot/extensions/, para que o Geyser consiga renderizar as entidades Bedrock personalizadas do RSPM; o papel de proxy faz o mesmo para o Geyser do proxy. (Versões antigas entregavam um ResourcePackManager-GeyserBridge.jar separado — esse arquivo foi aposentado e é substituído automaticamente pela fila de atualização do Geyser.) Veja Extensão do Geyser e entidades personalizadas.
Opções de Hospedagem
A entrega do pack Java usa esta precedência:
- Self-host forçado (
selfHostForce: true) — sobrepõeautoHosteselfHostEnabled, pula todos os probes e o upload remoto, e anuncia a URL local. Principalmente para testes. - Self-host primeiro (
autoHost: true,preferSelfHost: trueeselfHostEnabled: true, todos padrões) — o RSPM inicia seu próprio servidor HTTP, executa uma cadeia de checagens de sanidade (endereço não-LAN, self-probe em localhost, probe de alcançabilidade externa via magmaguy.com) e anuncia a URL local aos clientes. Custo zero de banda para o MagmaGuy. Essa preferência de "tentar o self-host primeiro" é pulada em um backend de proxy, que vai direto para o passo 3; o servidor HTTP do próprio backend continua rodando lá, porque o proxy busca dele os artefatos Bedrock. - Fallback de auto-host remoto — se o self-host estiver desativado ou uma checagem real de alcançabilidade do self-host falhar, o RSPM faz upload do pack para a CDN do MagmaGuy em
magmaguy.com/rsp/e anuncia essa URL. Se o caminho remoto falhar, ele pode recorrer ao self-host quandoselfHostEnabled: true.
Se autoHost: false e selfHostForce: false, o RSPM grava o zip unificado em plugins/ResourcePackManager/output/ sem enviar uma URL.
Consulte Self-hosting para a árvore de decisão completa de entrega, resolução de portas e detecção de host externo.
Conversão Java-para-Bedrock
O conversor Bedrock não é mais exclusivo do FreeMinecraftModels. Ele percorre recursivamente todo arquivo de definição de itens 1.21.4+ (assets/<namespace>/items/**/*.json) no pack unificado e produz geometria Bedrock, attachables e ícones de inventário, independentemente do plugin que os tenha enviado:
- Jogadores Bedrock veem itens 3D, armaduras personalizadas e equipamentos modelados de qualquer plugin cujo pack use o formato de definição de itens 1.21.4+.
- Texturas de armadura personalizadas são renderizadas em jogadores Bedrock usando a geometria de armadura vanilla, com a textura Java como camada visível.
- Ícones de inventário para itens 3D são renderizados por software a partir do modelo Java por meio da transformação
display.gui. - O pack Bedrock é servido ao vivo por sessão Bedrock via API do Geyser, de modo que ajustes de textura e modelo chegam ao próximo jogador Bedrock que entrar sem reiniciar o servidor. Mapeamentos de itens personalizados ainda exigem reinício, pois o Geyser os registra na inicialização.
- Doze parâmetros ajustáveis pelo usuário para offsets de exibição de itens segurados (seis de primeira pessoa, seis de terceira pessoa) em
bedrock_display_offsets.yml.
Integrações Atuais
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
Cada integração só é ativada se o plugin estiver instalado e seu caminho local ou URL remota configurados forem utilizáveis. O plugin também detecta o Geyser (Geyser-Spigot em um backend, Geyser-Velocity / Geyser-BungeeCord em um proxy) na inicialização e conecta a entrega do pack Bedrock àquele que encontrar.
Para Onde Ir Agora
- Configuração — fluxo do operador para um servidor standalone
- Redes com Proxy — configuração passo a passo para BungeeCord / Waterfall / Velocity
- Self-hosting — servidor HTTP integrado, resolução de portas, detecção de host externo
- Conversão Bedrock / Geyser — o que é convertido, parâmetros de ajuste
- Extensão do Geyser e entidades personalizadas — como a extensão empacotada é instalada, requisitos de versão do Geyser
- FAQ — perguntas comuns
- Solução de Problemas — o que verificar quando algo dá errado
- API — registrando packs a partir do seu próprio plugin