Por que isso importa para o seu servidor
Um canal de YouTube parado é dinheiro na mesa. O problema nunca foi gravar o vídeo — foi fazer alguém assistir. Pedir no chat "vai lá ver meu vídeo" tem uma taxa de conversão perto de zero, porque exige que o jogador largue o que está fazendo e troque de janela.
Este sistema inverte a ordem: o vídeo vem até o jogador, dentro da tela onde ele já está. E como a recompensa só sai quando o vídeo termina, a visualização que chega ao seu canal é uma visualização de verdade — com tempo de exibição, que é exatamente a métrica que o algoritmo do YouTube usa para recomendar o canal a mais gente.
Na prática ele vira três coisas ao mesmo tempo: canal de divulgação, conteúdo diário para o jogador que já não tem o que fazer, e uma torneira de itens que você controla pelo arquivo.
Como o jogador usa
- Ele abre a Community Board e vai na aba Home.
- A seção Youtube Rewards lista os vídeos do canal, com título, descrição, data de publicação e um campo de busca.
- Ele clica em Watch Video. O player abre dentro do cliente e o personagem entra em modo away até o fim.
- Um contador aparece na tela: "Video opened! Reward in 1m 11s."
- Quando o tempo fecha, o item cai no inventário e o chat registra o que foi pago e por qual vídeo.
O modo away não é enfeite: é o que impede o jogador de deixar o vídeo aberto num canto enquanto continua farmando. Sem ele, a recompensa vira renda passiva e perde o sentido.
O arquivo
Todo o sistema sai de um arquivo só: youtube.xml. Uma linha por vídeo.
<link name="GeoEngine Fixed"
url="https://www.youtube.com/watch?v=l6uJGAq-3RE"
desc=""
date="11/01/26"
watchTime="71000" />
| Atributo | O que faz |
|---|---|
name | O título que aparece na lista dentro do jogo. Não precisa ser igual ao do YouTube — escreva o que faz sentido para o jogador. |
url | O endereço do vídeo. Use o link completo watch?v=. |
desc | A descrição curta mostrada abaixo do título. Pode ficar vazia. |
date | Data de publicação no formato DD/MM/AA. É só exibição: serve para o jogador saber o que é novidade. |
watchTime | O tempo exigido, em milissegundos. É o campo que decide quando a recompensa sai. |
Sobre o watchTime
O valor é em milissegundos, então 71000 são 71 segundos. Vale ter em mente duas coisas ao escolher:
- Não use a duração cheia do vídeo. Se o vídeo tem 5 minutos e você exige 300000, o jogador desiste. Um pedaço representativo — 60 a 120 segundos — já entrega tempo de exibição ao algoritmo e não cansa ninguém.
- O tempo é por vídeo, não global. Um vídeo curto de novidade pode pedir 30 segundos; um tutorial longo pode pedir dois minutos e pagar mais.
Qual item é entregue
A recompensa não fica neste arquivo — ela vem da configuração do módulo, em custom.properties, na seção YouTube Integration. É lá que você define o item, a quantidade e o limite diário.
O crédito é registrado no Discord através de discord/ticketFree.xml, no mesmo canal dos tickets gratuitos. Quando um jogador disser que assistiu e não recebeu, a resposta está no canal — com horário, personagem e vídeo.
Publicando um vídeo novo
- Suba o vídeo no canal normalmente.
- Adicione uma linha em
youtube.xmlcom ourle umwatchTimeadequado à duração. - Recarregue os dados do servidor.
O vídeo aparece na board sem reiniciar o servidor. Isso importa mais do que parece: significa que você pode publicar um vídeo no meio do horário de pico e ter a audiência inteira do servidor vendo ele em minutos, sem derrubar ninguém.
Manter a lista enxuta funciona melhor do que acumular. Uma lista com 40 vídeos faz o jogador rolar e desistir; uma com 6 a 10, atualizada com frequência, faz ele voltar para ver o que entrou.
Cuidados
- O
urlprecisa ser um vídeo público. Vídeo não listado até funciona, mas vídeo privado não abre para o jogador. - Não reaproveite
watchTimegigante para "segurar" o jogador. O sistema tira ele do jogo enquanto o vídeo roda; tempo demais gera reclamação, não engajamento. - Vídeo removido do canal deve sair do XML. Um link morto na lista vira um chamado no suporte.
- O limite diário existe para o sistema não virar farm. Configure em
custom.propertiesantes de abrir o servidor.
Como isso conversa com o resto da base
O módulo compartilha a mesma lógica de recompensa por divulgação do sistema de voto, que integra oito sites de top list com cooldown por site e meta global. Os dois juntos cobrem as duas frentes de divulgação orgânica: quem procura servidor pelo top list, e quem descobre pelo YouTube.