Pacote de Missões

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O pacote de recursos Missões oferece funcionalidade pronta para criar missões que os jogadores podem completar para alcançar recompensas e progredir em seu jogo. Todas as missões devem ter um ID, categoria e uma lista de tarefas que os jogadores devem completar para finalizar a missão. No entanto, a lista de tarefas pode estar vazia, permitindo que as recompensas da missão sejam reivindicadas imediatamente.

Usando as opções de personalização do pacote, você pode personalizar todas as missões para atender aos seus requisitos de jogabilidade exclusivos, como:

  • Criar missões que introduzam novos jogadores ao seu jogo e melhorem a retenção D1.
  • Focar na retenção D7 e D30 adicionando metas de médio a longo prazo e um senso de progresso.
  • Aumentar o engajamento ao destacar os vários sistemas em seu jogo e recompensar os jogadores por interagir com eles.

Obter pacote

A Loja do Criador é uma aba da Caixa de Ferramentas que você pode usar para encontrar todos os ativos feitos pela Roblox e pela comunidade Roblox para uso em seus projetos, incluindo modelos, imagens, malhas, áudios, plugins, vídeos e fontes. Você pode usar a Loja do Criador para adicionar um ou mais ativos diretamente em um jogo aberto, incluindo pacotes de recursos!

Cada pacote de recursos requer o pacote de recursos Core para funcionar corretamente. Uma vez que os ativos dos pacotes de recursos Core e Missões estejam em seu inventário, você pode reutilizá-los em qualquer projeto na plataforma.

Para obter os pacotes do seu inventário para o seu jogo:

  1. No menu Janela do Studio ou na barra de ferramentas da aba Início, abra a Caixa de Ferramentas.

  2. Na janela da Caixa de Ferramentas, clique na aba Inventário. A classificação Meus Modelos é exibida.

    Janela da Caixa de Ferramentas do Studio com a aba Inventário destacada.
  3. Clique no bloco Pacote de Recursos Core, depois no bloco Pacote de Recursos de Missões. Ambas as pastas de pacotes são exibidas na janela Explorer.

  4. Arraste as pastas de pacotes para ReplicatedStorage.

Definir missões

Cada missão completável inclui um conjunto de tarefas que devem ser finalizadas para completar a missão, opções de configuração e metadados de exibição opcionais, todos os quais podem ser definidos dentro de ReplicatedStorage.Missions.Configs.Missions, com tipos exportados do script Types na mesma pasta.

Campos obrigatórios

Os seguintes campos são obrigatórios para cada missão.

NomeTipoDescrição
missionIdstringA chave principal da tabela de Missões. Todas as missões são identificadas por sua própria string única.
categoryIdstringAs missões devem pertencer a uma categoria e são agrupadas por categoria na interface do usuário.
taskstableUma lista de tarefas que o jogador deve finalizar para completar a missão.

Condições de desbloqueio

Por padrão, as missões são desbloqueadas para os jogadores automaticamente e podem ser completadas exatamente uma vez. No entanto, você pode usar as seguintes opções de configuração opcionais para alterar esse comportamento.

NomeTipoDescrição
prerequisitestableUma lista de outros missionIds que devem ser completados antes que a missão possa ser desbloqueada.
manualOnlyboolDesabilita o desbloqueio automático da missão. Em vez disso, uma função deve ser chamada para desbloquear a missão. Quaisquer outras condições de desbloqueio também devem ser atendidas.
availableAfterUtcboolA missão não pode ser desbloqueada antes do horário especificado em UTC.
availableBeforeUtcboolA missão não pode ser desbloqueada após o horário especificado em UTC. Se for desbloqueada, mas não completada antes desse horário, a missão será falhada.
repeatableboolA missão se torna desbloqueada novamente após ser completada.
repeatLimitnumberSe a missão for repetível, não pode ser repetida mais do que esse número de vezes.
repeatCooldownSecondsnumberSe a missão for repetível, há um atraso antes que ela se torne desbloqueada.
expireSecondsnumberSe a missão estiver desbloqueada e não for completada dentro do número especificado de segundos, ela falhará.
expireCountOfflineboolSe a missão tiver expireSeconds e expireCountOffline estiver definido como verdadeiro, o tempo em que o jogador não está realmente no jogo contará para a expiração da missão.

Metadados

As missões têm metadados que especificam como serão exibidas na interface do usuário de Missões. Você pode usar os seguintes campos opcionais para personalizar seus metadados.

NomeTipoDescrição
displayNamestringUm nome a ser exibido para a missão na interface do usuário em vez do missionId.
descriptionstringUm bloco de texto mais longo que fornece informações ou contexto adicionais sobre a missão.
visibleAfterCompleteboolSe definido como verdadeiro, a missão aparecerá na lista de missões mesmo após ser completada, mas marcada como completada.
visibleAfterFailedboolSe definido como verdadeiro, a missão aparecerá na lista de missões mesmo após ser falhada, mas marcada como falhada.
visibleBeforeUnlockedboolSe definido como verdadeiro, a missão será visível, mas bloqueada na lista de missões antes de estar disponível para conclusão.
invisibleWhileActiveboolSe definido como verdadeiro, a missão será invisível mesmo enquanto estiver ativamente em progresso.
rewardstableUma lista de informações de exibição de recompensas.
  • assetID (number) - O ID da imagem que é exibido na interface de missões sob as recompensas de uma quest. Isso é obrigatório se uma recompensa estiver presente.
  • displayName (string) - O nome que é exibido na interface de missões sob o ícone.

Definir tarefas

Cada missão pode ter zero ou mais tarefas. Se uma missão tiver zero tarefas, ela pode ser reivindicada imediatamente após ser desbloqueada; se uma missão tiver uma ou mais tarefas, uma vez que as tarefas estejam completas, o jogador pode coletar quaisquer recompensas associadas à missão. Cada tarefa tem um taskId, que é a chave associada à tarefa para uma missão específica.

As tarefas vêm em dois tipos:

  • Tarefas Temporizadas - Permite que você inicie e pare a tarefa em diferentes momentos. Um certo período de tempo deve passar enquanto o cronômetro da tarefa está em execução, então a tarefa está completa.
  • Tarefas de Contagem - Permite que você adicione ou defina o progresso da tarefa. Quando o progresso atinge um valor definido, a tarefa está completa.

Ambos os tipos de tarefa compartilham os seguintes campos:

NomeTipoDescrição
taskTypestringEspecifica se o tipo de tarefa é de contagem ou temporizada.
counterobject(Opcional) O contador que esta tarefa rastreia. Contadores são armazenamento persistente específico do jogador para um número ou um cronômetro. Múltiplas tarefas podem rastrear um único contador; por exemplo, se mais de uma tarefa rastrear quantas moedas um jogador coletou, então todas podem compartilhar o mesmo contador de “moedas”. Essas tarefas podem rastrear independentemente novas moedas coletadas, começando do zero, ou continuar contando a partir do valor do contador (todas as moedas já coletadas).
  • counterId (string) - O ID do contador a ser rastreado. Use este ID para obter ou definir o valor do contador.
  • continueFromCounter (Opcional bool) - Se definido como verdadeiro, o progresso da tarefa corresponderá diretamente ao valor do contador em vez da quantidade que aumentou.
metadataobject(Opcional) Informações sobre como a tarefa é exibida na interface do usuário.
  • displayName (string) - Nome da tarefa, usado quando exibido na interface do usuário.
  • numericType (Opcional string) - como o número de progresso na tarefa deve ser exibido.
    • Frações, ex. 5/10 ou 5k/50k
    • Porcentagem, ex. 50% ou 10%
    • LongFraction, ex. 5/10 ou 5000/50000
    • Booleano, ex. Incompleto
callToActionobject(Opcional) Um botão que aciona uma função de retorno de chamada.
  • callback (function) - Função acionada pelo botão callToAction.
  • buttonText (string) - O texto que é exibido na interface do botão.

Campos de tarefas de contagem

As tarefas de contagem têm um valor obrigatório. Quando o progresso da tarefa atende a essa quantidade, a tarefa está completa.

NomeTipoDescrição
goalCountnumber(Opcional) O progresso necessário para completar a tarefa.

Campos de tarefas temporizadas

As tarefas temporizadas têm uma quantidade alvo de tempo gasto e são iniciadas e paradas. Quando a quantidade alvo de tempo é atingida, a tarefa está completa.

NomeTipoDescrição
goalSecondsnumberO número de segundos que devem passar para completar a tarefa.
startImmediatelyboolSe a tarefa deve começar a contar o tempo assim que for desbloqueada, em vez de apenas após ser iniciada.
includesOfflineTimeboolSe a tarefa deve incluir o tempo gasto enquanto o jogador não está ativamente no jogo.

Configurar categorias

As categorias não precisam ser definidas explicitamente para serem usadas, pois a categoria de uma missão tem valores padrão que serão utilizados. No entanto, você pode configurar esses valores em ReplicatedStorage.Missions.Configs.Categories para adicionar efeitos adicionais à categoria. As categorias são identificadas por CategoryIds únicos, os mesmos referenciados na configuração das missões.

NomeTipoDescrição
repeatDelaySecondsnumber(Opcional) Se definido, todas as missões na categoria são redefinidas toda vez que a quantidade especificada de tempo passa, e podem ser desbloqueadas, completadas e suas recompensas reivindicadas novamente. Isso é separado de missões repetíveis, que são repetíveis dentro de uma repetição de categoria dada.

Integrar lógica do servidor

Dê uma olhada em ReplicatedStorage.Missions.Server.Examples.MissionsExample, que mostra como seu servidor interagirá com o pacote de recursos Missões.

Você precisa conectar principalmente quatro coisas ao arrastar o pacote de recursos Missões para o seu jogo:

  1. Defina missões em sua configuração de missões.

  2. Adicione lógica ao seu jogo para atualizar o progresso das tarefas ou os contadores aos quais o progresso está vinculado.

    README
    -- Aumenta o progresso em uma missão Saltando com uma tarefa de Saltos
    Missions.addProgressToTask(player, "Saltando", "Saltos", 1)
    -- Inicia o cronômetro em uma missão Tempo de Batalha com uma tarefa de Tempo em Batalha
    Missions.startTimedTask(player, "Tempo de Batalha", "Tempo em Batalha")
    -- Para o cronômetro em uma missão Tempo de Batalha com uma tarefa de Tempo em Batalha
    Missions.stopTimedTask(player, "Tempo de Batalha", "Tempo em Batalha")
    -- Aumenta o progresso em todas as tarefas vinculadas ao contador de Saltos
    CounterSystem.addCounter(player, "Saltos", 1)
    -- Inicia o cronômetro em todas as tarefas temporizadas vinculadas ao contador de Tempo em Batalha
    CounterSystem.startTimer(player, "Tempo em Batalha")
    -- Para o cronômetro em todas as tarefas temporizadas vinculadas ao contador de Tempo em Batalha
    CounterSystem.stopTimer(player, "Tempo em Batalha")
  3. Defina manipuladores de conclusão de missões e, opcionalmente, manipuladores de desbloqueio ou falha. Use o manipulador de conclusão para premiar as recompensas da missão em seu jogo.

    README
    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} completou a missão {missionId}`)
    -- Premie o jogador com suas recompensas.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Desbloqueie missões que não são desbloqueadas automaticamente. A lógica do pacote de recursos Missões garante que todos os requisitos da missão sejam atendidos antes que a missão seja completada e suas recompensas sejam coletáveis.

    README
    Missions.unlockMission(player, "Manual")

Configurar constantes

As constantes para o pacote de recursos Core vivem em dois locais:

  • Constantes compartilhadas vivem em ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.

  • Constantes específicas do pacote, neste caso o pacote de recursos Missões, vivem em ReplicatedStorage.Missions.Configs.Constants.

Além disso, você pode encontrar strings para tradução separadas em um local: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Personalizar componentes da interface do usuário

Ao modificar os objetos do pacote, como cores, fonte e transparência, você pode ajustar a apresentação visual da interface de missões. Por exemplo, em ReplicatedStorage.Missions.Configs.Constants, você pode habilitar SingleTaskMode para exibir uma barra de progresso para uma tarefa diretamente na missão para missões que têm apenas uma única tarefa.

Além disso, se seu jogo já tiver uma interface do usuário existente que você gostaria de integrar com o pacote de recursos Missões, o ModuleScript do cliente MissionsClient contém todas as funções necessárias para obter as informações sobre as missões de um jogador enviadas do servidor.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.