Pacote de passes de temporada

*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 Passes de Temporada oferece funcionalidade pronta para criar sistemas de progressão baseados em missões e de tempo limitado, nos quais os jogadores podem completar objetivos de missões para ganhar recompensas que estão disponíveis apenas durante um período de tempo pré-definido. Usando as opções de personalização do pacote, você pode personalizar todos os passes de temporada para oferecer novo conteúdo ao seu público, promover a retenção de jogadores e gerar receita.

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!

Todo pacote de recursos requer o pacote de recursos Core para funcionar corretamente, e o pacote Passes de Temporada requer o pacote de recursos Missões para definir as missões de uma temporada. Uma vez que todos os três ativos do pacote 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 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, no bloco Pacote de Recursos Missões, e depois no bloco Pacote de Recursos Passes de Temporada. Todas as três pastas do pacote são exibidas na janela Explorer.

  4. Arraste as pastas do pacote para ReplicatedStorage.

  5. Permita que as chamadas de armazenamento de dados rastreiem as compras dos jogadores com os pacotes.

    1. Abra a janela ArquivoConfigurações da Experiência do Studio.
    2. Navegue até a aba Segurança, e então ative Habilitar Acesso do Studio aos Serviços da API.

Configurar dependências de missões

Para que as temporadas funcionem corretamente, você deve adicionar lógica para que o pacote de recursos Passes de Temporada possa rastrear o progresso do jogador e atualizar seus componentes de UI. Para simplificar, o exemplo abaixo usa o pacote de recursos Missões e chama SeasonPasses.addProgressToSeason() após os jogadores completarem missões, mas você pode rastrear o progresso do jogador como preferir. No entanto, independentemente de você definir missões ou não, ainda assim deve adicionar o pacote de recursos Missões ao seu jogo para que o código de Passes de Temporada funcione.

As missões têm um conjunto de tarefas que devem ser concluídas para completar a missão, opções de configuração e metadados de exibição opcionais. Para um guia detalhado sobre como configurar missões e suas tarefas, veja Definir missões.

Adicionar XP das missões às temporadas

Este exemplo usa o pacote de recursos Missões para definir missões que os jogadores podem completar para ganhar experiência (XP) e progredir pela temporada. Para premiar os jogadores com XP quando eles completam uma missão definida, você deve adicionar lógica ao script do servidor ReplicatedStorage.Missions.Server.Examples.MissionsExample para que ele possa importar dados do passe de temporada e recompensar os jogadores de acordo com seu progresso.

local SeasonPasses = require(ReplicatedStorage.SeasonPasses.Server.SeasonPasses)
local function completeHandler(player: Player, missionId: Types.MissionId)
print(`{player} completou a missão {missionId}`)
if missionId == "Walking" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Walking2" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Walking3" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Availability" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Manual" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Minutely" then
SeasonPasses.addProgressToSeason(player, 100)
end
end

Adicionar ícones de recompensa de nível de temporada

Além de conceder XP aos jogadores quando eles completam missões, o pacote de recursos Passes de Temporada usa o pacote de recursos Missões para definir níveis de recompensa únicos dentro de uma temporada. Se você quiser adicionar um ícone na tela para uma recompensa de nível que os jogadores podem ganhar se tiverem XP suficiente, adicione um ID de ativo na configuração de Missões para cada recompensa de nível da temporada.

Tier3Mission = {
categoryId = "General",
metadata = {
displayName = "Missão de Nível 3",
description = "Salte 10 vezes",
visibleAfterComplete = true,
visibleBeforeUnlocked = true,
rewards = {
{
icon = 16826775737,
displayName = "Item",
},
{
icon = 106912146245070,
displayName = "XP da Temporada",
},
},
},
}

Configurar temporadas

Depois de configurar todas as missões que você deseja incluir em uma temporada, é hora de configurar o próprio passe de temporada. Em ReplicatedStorage.SeasonPasses.Configs.Season, há um exemplo de configuração de temporada para sua referência, e os seguintes exemplos de código são desse arquivo.

Definir passes

Passes permitem que você cobre dos jogadores uma taxa única em Robux para acessar as missões e recompensas potenciais de um passe de temporada. Depois de criar um passe com um ID de ativo exclusivo, você pode definir os detalhes do passe no campo premiumTrack da sua temporada. Por exemplo, o seguinte exemplo de código define um passe com um ID de ativo de exemplo 928192647 para representar um passe de temporada, e então dá ao passe de temporada um nome de faixa de "Faixa Premium".

premiumTrack = {
pricing = {
gamePassId = 928192647,
},
trackMetadata = {
trackName = "Faixa Premium",
},
},

Configurar níveis e recompensas

Os níveis de temporada representam os marcos que os jogadores devem atingir para ganhar recompensas ao longo de uma temporada. Para subir os níveis, os jogadores completam missões para ganhar XP, e quando eles ganham XP suficiente, eles sobem para o próximo nível e recebem recompensas pelo nível que acabaram de completar. Os níveis têm uma propriedade upperBoundXP que define o limite de XP necessário para reivindicar as recompensas de um nível. Cada nível pode oferecer dois tipos de recompensas:

  • Gratuita - Uma recompensa que os jogadores podem ganhar sem comprar o passe de temporada.
  • Premium - Uma recompensa que os jogadores só podem ganhar comprando o passe de temporada.

Para demonstrar, revise o seguinte exemplo de código para uma temporada com um nível que requer 100 XP para ganhar uma recompensa de lança de gelo gratuita e uma recompensa de escudo de explosão premium. O icon é o ID de ativo da imagem da UI a ser exibida para uma recompensa, e o displayName exibe um nome para a recompensa. Observe que o displayName é exibido na UI, mas o rewardId é oculto do jogador e é usado principalmente para fins de armazenamento de dados.

tiers = {
[1] = {
upperBoundXP = 100,
freeReward = {
icon = 128181721602852,
displayName = "Lança de Gelo",
rewardId = "iceLance",
},
premiumReward = {
icon = 95882371958115,
displayName = "Escudo de Explosão",
rewardId = "blastShield",
},
},
}

Embora este script seja para fins de ilustração sobre como configurar um nível de cada vez, a maioria das temporadas inclui mais de um nível. Ao definir vários níveis e recompensas para uma temporada, certifique-se de que cada rewardId seja numérico e em ordem crescente para que seus níveis sejam exibidos na ordem que você os definiu na lista de níveis.

Definir detalhes da temporada

Agora que você tem um passe de temporada com níveis e recompensas, é hora de definir os detalhes da sua temporada:

  • title - O nome da sua temporada.
  • description - A descrição da sua temporada.
  • startUtc - O início da temporada em tempo universal coordenado.
  • endUtc - O final da temporada em tempo universal coordenado.
  • seasonId - Permite que você rastreie o XP que um jogador ganha ao longo da temporada dada.

O pacote usa startUtc e endUtc para exibir a contagem regressiva da temporada.

startUtc = DateTime.fromUniversalTime(2024, 10, 01, 17, 0, 0),
endUtc = DateTime.fromUniversalTime(2025, 2, 28, 17, 0, 0),
title = "Temporada 1",
description = "Para a Cidade Espacial",
seasonId = "season1",

Integrar lógica do servidor

Dê uma olhada em ReplicatedStorage.SeasonPasses.Server.Examples.SeasonPassesExample, que mostra como seu servidor interagirá com o Pacote de Recursos Passes de Temporada. O trecho abaixo é desse script.

Você precisa principalmente criar uma função manipuladora para conceder recompensas reivindicadas aos seus jogadores. Por exemplo, o seguinte exemplo de código cria uma função rewardClaimedHandlerFunction() que rastreia quando os jogadores progridem para o próximo nível, e então os recompensa com a recompensa gratuita, ou com ambas as recompensas gratuita e premium se eles compraram o passe de temporada.

Para seus propósitos, substitua a chamada task.wait() por lógica que permita que os jogadores recebam as recompensas que reivindicaram na temporada. Esta função deve retornar um booleano: verdadeiro se o servidor concedeu a recompensa, falso se não o fez.

local function rewardClaimedHandlerFunction(_player: Player, _rewardId: Types.RewardId): boolean
task.wait(2)
return true
end
local function initializeRewardClaimedHandlers()
for tierId, tier in pairs(Season.tiers) do
if tier then
if tier.freeReward then
SeasonPasses.setRewardClaimedHandler(tier.freeReward.rewardId, rewardClaimedHandlerFunction)
end
if tier.premiumReward then
SeasonPasses.setRewardClaimedHandler(tier.premiumReward.rewardId, rewardClaimedHandlerFunction)
end
end
end
end

Configurar constantes

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

  • Constantes compartilhadas vivem em ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.
  • Constantes específicas do pacote, neste caso o pacote de recursos Passes de Temporada, vivem em ReplicatedStorage.SeasonPasses.Configs.Constants. As principais coisas que você pode querer ajustar para atender aos requisitos de design do seu jogo:
  • IDs de ativos de som
  • Duração do efeito de compra e cores de partículas Além disso, você pode encontrar strings para tradução separadas em um local: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Personalizar componentes de UI

Ao modificar os objetos do pacote, como cores, fonte e transparência, você pode ajustar a apresentação visual dos prompts do seu passe de temporada. No entanto, tenha em mente que se você mover qualquer um dos objetos hierarquicamente, o código não conseguirá encontrá-los, e você precisará fazer ajustes no seu código.

Uma temporada é composta pelos seguintes componentes de alto nível que são adicionados programaticamente aos componentes de UI do Pacote de Recursos Missões:

  • SeasonBottomFrame – O quadro que inclui informações sobre cada faixa, um quadro de rolagem das recompensas para os níveis e dados dos níveis.
  • SeasonDescriptionFrame - O quadro no cabeçalho que exibe o título da temporada, descrição e contagem regressiva.
  • TierRewardFrame - O quadro que exibe uma recompensa específica para um nível.
  • TierProgressFrame - O quadro que exibe o progresso que o jogador fez em relação ao nível atual em que está trabalhando.
  • PurchaseFrame - O quadro que solicita ao jogador que compre um passe premium.
  • SeasonProgressFrame - O quadro que exibe a barra de progresso do jogador ao longo de toda a temporada.
  • RewardsButtonFrame - O quadro que adiciona um botão que permite que as informações da temporada sejam exibidas através do SeasonBottomFrame.
©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.