Todos os posts

Bot de missões no Discord: como montar um quadro de missões com status Open, Claimed e Completed

Equipe CordBase

O bot de missões mais simples para Discord é uma tabela com um título, uma recompensa e um status Open, Claimed ou Completed, mais uma coluna de membro para quem pegou o trabalho. O CordBase, que é feito por nós, traz isso pronto no template Quadro de missões, e os membros postam, pegam e consultam missões com comandos de barra (slash commands) em vez de editar uma mensagem fixada.

Só precisa de um quadro para colar hoje? O gerador de quadro de missões grátis monta um agrupado por Open, Claimed e Completed. O resto deste guia guarda as missões em uma tabela que você pode buscar e atualizar com comandos de barra.

O mesmo formato serve para comissões, murais de vagas e filas de pedidos. Ele também tem limites: sem botões para pegar missões, sem notificações e sem pagamentos. Isso está explicado abaixo, junto com o que usar no lugar.

O que você vai ter no final

  • Um comando /bounty-board com as ações add, query, view, update e leaderboard.
  • Uma linha por missão: título, descrição, recompensa (um número), status e responsável (uma coluna de membro). Isso cobre o pedido de sempre: nome de usuário, objetivo, recompensa e status.
  • Permissões por cargo para quem pode ler, postar e alterar missões.
  • Uma consulta de missões abertas que qualquer pessoa roda com um comando.

Passo 1: instale o template

  1. Entre em cordbase.gg com o Discord, escolha seu servidor e adicione o bot quando o painel pedir.
  2. Abra o template Quadro de missões e clique em Usar este template. Você precisa de Gerenciar servidor no servidor escolhido.
  3. A tabela vem com cinco colunas: Title (texto, obrigatória), Description (texto), Reward (número, obrigatória), Status (opção: Open, Claimed, Completed; obrigatória) e Assigned To (membro).

O template diz Completed, não Closed. Se você quer Closed, abra a página de edição da tabela antes de postar qualquer coisa e mude as opções de Status. Linhas salvas antes ficam com o texto antigo, então não vão bater com uma opção renomeada. Ela conta como uma das duas tabelas do plano Free. Veja templates para saber o que dá para mudar depois de instalar.

Passo 2: decida quem pode postar, pegar e fechar

As permissões são definidas por tabela, em três níveis. Leitura permite query, view e leaderboard. Escrita adiciona add e update. Admin adiciona delete e as ações em massa. Até você atribuir algum cargo, todo membro pode rodar tudo, inclusive excluir.

Uma configuração sensata:

  • Dê ao cargo que todos os membros têm (por exemplo, @Member) leitura.
  • Dê ao cargo da staff escrita, para que possam postar missões.
  • Deixe admin para quem exclui missões antigas.

Saiba o que isso não faz. Pegar uma missão é um update, a mesma permissão de postar, e vale para todas as linhas. Não dá para deixar os membros pegarem missões sem também deixar que postem e editem qualquer missão. Nada confere se Assigned To é a pessoa que está rodando o comando. Suas opções:

  • Só a staff altera. Os membros pedem no chat e a staff roda o update. Mais seguro, mais manual.
  • Membros com escrita. Os membros pegam missões para si mesmos, e você confia que o grupo não vai mexer nas missões dos outros.
  • Duas tabelas. A staff posta no Quadro de missões e os membros registram o que pegaram numa segunda tabela que você cria. O plano Free tem exatamente duas tabelas.

Administradores do Discord sempre têm acesso total, e assim que qualquer cargo é configurado, membros sem um cargo da lista não conseguem usar a tabela. Veja tabelas e permissões.

Passo 3: poste e pegue missões

/bounty-board add title:Clear the Ashen Caves description:Kill the boss and post a screenshot reward:500 status:Open

A resposta é postada no canal onde você roda o comando, então rode no canal de missões. Use um título único para cada missão: o seletor row dos próximos comandos busca pelo título.

Quando alguém pegar a missão, comece a digitar na opção row e escolha a missão:

/bounty-board update row:Clear the Ashen Caves status:Claimed assigned_to:@Kai

Quando estiver feita:

/bounty-board update row:Clear the Ashen Caves status:Completed

Só os campos que você passa são alterados. A opção _mode só importa para números: reward:100 _mode:Increment soma 100 à recompensa atual, e Definir (o padrão) substitui o valor.

Passo 4: encontre missões abertas

  • /bounty-board query status:Open lista as missões abertas. Status é um menu, então ninguém digita errado.
  • /bounty-board query status:Claimed assigned_to:@Kai lista o que o Kai está fazendo. Os filtros se combinam.
  • /bounty-board view row:Clear the Ashen Caves mostra uma missão completa, incluindo quem a criou.
  • /bounty-board leaderboard column:reward ranqueia as missões pela recompensa. Ele ranqueia todas as linhas, não só as abertas.

Os resultados vêm dos mais novos para os mais antigos, 10 por padrão e até 25 com limit. A lista mostra só as quatro primeiras colunas (title, description, reward, status), então Assigned To aparece no view, não no query. No Pro, você pode salvar uma visualização "Open bounties" no painel (status igual a Open) e rodar /bounty-board saved-view name:Open bounties.

Comissões, murais de vagas e filas de pedidos

  • Comissões: adicione uma coluna de membro Requester na página de edição. Assigned To vira o artista, e Reward vira o preço combinado, como um número simples.
  • Mural de vagas: o template funciona do jeito que está. Coloque o pagamento em Reward e os requisitos em Description.
  • Fila de pedidos: o template Quadro de tarefas tem tarefa, responsável, prioridade, status (Todo, In Progress, Done) e prazo.

As datas são guardadas como foram digitadas (AAAA-MM-DD) e nada age com base nelas, então uma coluna de prazo é um rótulo, não um vencimento.

Quando outra coisa funciona melhor

  • Se você quer um botão Claim em cada post, use um bot feito em torno de botões. O CordBase não tem nenhum.
  • Se cada comissão precisa de uma conversa privada, um bot de tickets como o Ticket Tool funciona melhor. Um canal de fórum com um post e tags por missão também funciona sem bot nenhum.
  • O CordBase não recebe pagamentos, não guarda valores em custódia e não paga recompensas. A recompensa é um número numa tabela. Se as recompensas forem em moeda do servidor, um bot de economia como o UnbelievaBoat cuida dos saldos.

Limites que vale conhecer

  • O CordBase não avisa ninguém quando um status muda. Ninguém recebe menção, DM ou lembrete.
  • Free: 2 tabelas, 100 linhas cada. Missões concluídas continuam como linhas até um admin excluí-las, então quadros no plano grátis enchem. O Pro (US$ 8/mês) permite tabelas ilimitadas, 10.000 linhas por tabela, visualizações salvas e ações em massa.
  • Até 25 colunas por tabela, e mantenha as listas de opções com 25 opções ou menos (limite do Discord).
  • As tabelas são criadas na web. Os membros não conseguem criá-las pelo Discord.
  • A sintaxe dos comandos está na referência de comandos.

Perguntas frequentes

Os membros podem pegar uma missão com um botão?

Não. O CordBase não tem botões nos posts. Pegar uma missão é o comando de barra update, com as opções status e assigned_to. Se você precisa de um botão Claim de um clique, use um bot feito para isso.

Alguém é avisado quando uma missão é pega ou concluída?

Não. O CordBase não manda menções, DMs nem lembretes quando um status muda. A atualização é postada no canal onde o comando foi usado, e os membros podem conferir com /bounty-board query status:Open.

Posso usar Closed em vez de Completed?

Pode. O template Quadro de missões usa Open, Claimed e Completed, mas as opções de Status podem ser editadas na página de edição da tabela. Mude antes de postar missões, porque as linhas existentes ficam com o texto antigo.