Das Saisonpässe-Feature-Paket bietet sofort einsatzbereite Funktionen zur Erstellung von zeitlich begrenzten, questbasierten Fortschrittssystemen, in denen Spieler Questziele abschließen können, um Belohnungen zu verdienen, die nur während eines vordefinierten Zeitraums verfügbar sind. Mit den Anpassungsoptionen des Pakets können Sie alle Saisonpässe personalisieren, um neue Inhalte für Ihr Publikum bereitzustellen, die Spielerbindung zu fördern und Einnahmen zu generieren.

Paket erhalten
Der Creator Store ist ein Tab des Toolbox, den Sie verwenden können, um alle von Roblox und der Roblox-Community für Ihre Projekte erstellten Assets zu finden, einschließlich Modell-, Bild-, Mesh-, Audio-, Plugin-, Video- und Schriftarten-Assets. Sie können den Creator Store verwenden, um ein oder mehrere Assets direkt in ein offenes Spiel hinzuzufügen, einschließlich Feature-Paketen!
Jedes Feature-Paket benötigt das Core-Feature-Paket, um ordnungsgemäß zu funktionieren, und das Saisonpässe-Paket benötigt das Missions-Feature-Paket, um die Missionen einer Saison zu definieren. Sobald alle drei Paket-Assets in Ihrem Inventar sind, können Sie sie in jedem Projekt auf der Plattform wiederverwenden.
Um die Pakete von Ihrem Inventar in Ihr Spiel zu bekommen:
Fügen Sie die Core, Missions und Saisonpässe-Pakete zu Ihrem Inventar innerhalb von Studio hinzu, indem Sie auf den Link In Inventar hinzufügen in der folgenden Komponentengruppe klicken.
Öffnen Sie im Fenster-Menü oder in der Start-Tab-Toolbar die Toolbox.
Klicken Sie im Toolbox-Fenster auf den Tab Inventar. Die Sortierung Meine Modelle wird angezeigt.

Klicken Sie auf die Kachel Feature-Paket Core, die Kachel Missions-Feature-Paket und dann die Kachel Saisonpässe-Feature-Paket. Alle drei Paketordner werden im Explorer-Fenster angezeigt.
Ziehen Sie die Paketordner in ReplicatedStorage.
Erlauben Sie Datenspeicheraufrufe, um die Käufe der Spieler mit den Paketen zu verfolgen.
- Öffnen Sie das Datei ⟩ Erfahrungs-Einstellungen-Fenster von Studio.
- Navigieren Sie zum Tab Sicherheit und aktivieren Sie Studio-Zugriff auf API-Dienste aktivieren.
Missionenabhängigkeiten konfigurieren
Damit die Saisons ordnungsgemäß funktionieren, müssen Sie Logik hinzufügen, damit das Saisonpässe-Feature-Paket den Fortschritt der Spieler verfolgen und seine UI-Komponenten aktualisieren kann. Zur Vereinfachung verwendet das folgende Beispiel das Missions-Feature-Paket und ruft SeasonPasses.addProgressToSeason() auf, nachdem Spieler Missionen abgeschlossen haben, aber Sie können den Fortschritt der Spieler auf jede gewünschte Weise verfolgen. Unabhängig davon, ob Sie Missionen definieren oder nicht, müssen Sie jedoch das Missions-Feature-Paket zu Ihrem Spiel hinzufügen, damit der Saisonpässe-Code funktioniert.
Missionen haben jeweils eine Reihe von Aufgaben, die abgeschlossen werden müssen, um die Mission zu beenden, Konfigurationsoptionen und optionale Anzeige-Metadaten. Für eine detaillierte Anleitung zur Konfiguration von Missionen und deren Aufgaben siehe Missionen definieren.
XP von Missionen zu Saisons hinzufügen
Dieses Beispiel verwendet das Missions-Feature-Paket, um Missionen zu definieren, die Spieler abschließen können, um Erfahrung (XP) zu sammeln und durch die Saison voranzukommen. Um Spielern XP zu gewähren, wenn sie eine definierte Mission abschließen, müssen Sie Logik zum Server-Skript ReplicatedStorage.Missions.Server.Examples.MissionsExample hinzufügen, damit es die Daten des Saisonpasses importieren und die Spieler entsprechend ihrem Fortschritt belohnen kann.
local SeasonPasses = require(ReplicatedStorage.SeasonPasses.Server.SeasonPasses)
local function completeHandler(player: Player, missionId: Types.MissionId)
print(`{player} hat die Mission {missionId} abgeschlossen`)
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
endBelohnungssymbole für Saisonstufen hinzufügen
Zusätzlich zur Gewährung von XP an Spieler, wenn sie Missionen abschließen, verwendet das Saisonpässe-Feature-Paket das Missions-Feature-Paket, um einzigartige Belohnungsstufen innerhalb einer Saison zu definieren. Wenn Sie ein Symbol auf dem Bildschirm für eine Belohnung hinzufügen möchten, die Spieler verdienen können, wenn sie genügend XP haben, fügen Sie eine Asset-ID in der Missions-Konfiguration für jede Saisonstufenbelohnung hinzu.
Tier3Mission = {
categoryId = "Allgemein",
metadata = {
displayName = "Tier 3 Mission",
description = "Springe 10 Mal",
visibleAfterComplete = true,
visibleBeforeUnlocked = true,
rewards = {
{
icon = 16826775737,
displayName = "Gegenstand",
},
{
icon = 106912146245070,
displayName = "Saison XP",
},
},
},
}Saisons konfigurieren
Nachdem Sie jede Mission eingerichtet haben, die Sie in einer Saison einbeziehen möchten, ist es an der Zeit, den Saisonpass selbst zu konfigurieren. In ReplicatedStorage.SeasonPasses.Configs.Season gibt es ein Beispiel für eine Saisonkonfiguration zu Ihrer Referenz, und die folgenden Codebeispiele stammen aus dieser Datei.
Pässe definieren
Pässe ermöglichen es Ihnen, von Spielern eine einmalige Robux-Gebühr zu verlangen, um auf die Missionen und potenziellen Belohnungen eines Saisonpasses zuzugreifen. Nachdem Sie einen Pass mit einer einzigartigen Asset-ID erstellt haben, können Sie die Details des Passes im Feld premiumTrack Ihrer Saison festlegen. Zum Beispiel definiert das folgende Codebeispiel einen Pass mit einer Beispiel-Asset-ID von 928192647, um einen Saisonpass darzustellen, und gibt dem Saisonpass einen Tracknamen von "Premium Track".
premiumTrack = {
pricing = {
gamePassId = 928192647,
},
trackMetadata = {
trackName = "Premium Track",
},
},Stufen und Belohnungen konfigurieren
Saisonstufen repräsentieren die Meilensteine, die Spieler erreichen müssen, um Belohnungen während einer Saison zu verdienen. Um die Stufen zu erklimmen, schließen Spieler Missionen ab, um XP zu verdienen, und wenn sie genügend XP verdienen, steigen sie zur nächsten Stufe auf und erhalten Belohnungen für die gerade abgeschlossene Stufe. Stufen haben eine upperBoundXP-Eigenschaft, die die Schwelle von XP festlegt, die erforderlich ist, um die Belohnungen für eine Stufe zu beanspruchen. Jede Stufe kann zwei Arten von Belohnungen anbieten:
- Kostenlos - Eine Belohnung, die Spieler verdienen können, ohne den Saisonpass zu kaufen.
- Premium - Eine Belohnung, die Spieler nur durch den Kauf des Saisonpasses verdienen können.
Um dies zu demonstrieren, überprüfen Sie das folgende Codebeispiel für eine Saison mit einer Stufe, die 100 XP erfordert, um eine kostenlose Eislanze-Belohnung und eine Premium-Explosionsschild-Belohnung zu verdienen. Das icon ist die Asset-ID des UI-Bildes, das für eine Belohnung angezeigt werden soll, und der displayName zeigt einen Namen für die Belohnung an. Beachten Sie, dass der displayName in der UI angezeigt wird, aber die rewardId für den Spieler verborgen ist und hauptsächlich für Datenspeicher Zwecke verwendet wird.
tiers = {
[1] = {
upperBoundXP = 100,
freeReward = {
icon = 128181721602852,
displayName = "Eislanze",
rewardId = "iceLance",
},
premiumReward = {
icon = 95882371958115,
displayName = "Explosionsschild",
rewardId = "blastShield",
},
},
}Während dieses Skript zu Illustrationszwecken dient, wie man eine Stufe nach der anderen konfiguriert, enthalten die meisten Saisons mehr als eine Stufe. Wenn Sie mehrere Stufen und Belohnungen für eine Saison definieren, stellen Sie sicher, dass jede rewardId numerisch und in aufsteigender Reihenfolge ist, damit Ihre Stufen in der Reihenfolge angezeigt werden, in der Sie sie in der Stufenliste definiert haben.
Saison-Details definieren
Jetzt, da Sie einen Saisonpass mit Stufen und Belohnungen haben, ist es an der Zeit, die Details Ihrer Saison zu definieren:
- title - Der Name Ihrer Saison.
- description - Die Beschreibung Ihrer Saison.
- startUtc - Der Beginn der Saison in koordinierter Weltzeit.
- endUtc - Das Ende der Saison in koordinierter Weltzeit.
- seasonId - Ermöglicht es Ihnen, die XP zu verfolgen, die ein Spieler während der gegebenen Saison gewinnt.
Das Paket verwendet startUtc und endUtc, um den Countdown der Saison anzuzeigen.
startUtc = DateTime.fromUniversalTime(2024, 10, 01, 17, 0, 0),
endUtc = DateTime.fromUniversalTime(2025, 2, 28, 17, 0, 0),
title = "Saison 1",
description = "In die Raumstadt",
seasonId = "season1",Serverlogik integrieren
Werfen Sie einen Blick auf ReplicatedStorage.SeasonPasses.Server.Examples.SeasonPassesExample, das zeigt, wie Ihr Server mit dem Saisonpässe-Feature-Paket interagiert. Der folgende Ausschnitt stammt aus diesem Skript.
Sie müssen hauptsächlich eine Handler-Funktion erstellen, um den beanspruchten Belohnungen an Ihre Spieler zu vergeben. Zum Beispiel erstellt das folgende Codebeispiel eine Funktion rewardClaimedHandlerFunction(), die verfolgt, wann Spieler zur nächsten Stufe aufsteigen, und sie dann entweder nur mit der kostenlosen Belohnung oder sowohl mit der kostenlosen als auch der Premium-Belohnung belohnt, wenn sie den Saisonpass gekauft haben.
Für Ihre Zwecke ersetzen Sie den Aufruf task.wait() durch Logik, die es Spielern ermöglicht, die Belohnungen zu erhalten, die sie in der Saison beansprucht haben. Diese Funktion muss einen booleschen Wert zurückgeben: true, wenn der Server die Belohnung gewährt hat, false, wenn nicht.
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
endKonstanten konfigurieren
Konstanten für das Core-Feature-Paket befinden sich an zwei Stellen:
- Gemeinsame Konstanten befinden sich in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.
- Paket-spezifische Konstanten, in diesem Fall das Saisonpässe-Feature-Paket, befinden sich in ReplicatedStorage.SeasonPasses.Configs.Constants. Die Hauptsachen, die Sie anpassen möchten, um die Designanforderungen Ihres Spiels zu erfüllen:
- Sound-Asset-IDs
- Dauer der Kauf-Effekte und Partikelfarben Zusätzlich finden Sie Strings für die Übersetzung an einem Ort aufgeteilt: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.
UI-Komponenten anpassen
Durch die Modifizierung der Paketobjekte, wie Farben, Schriftarten und Transparenz, können Sie die visuelle Präsentation Ihrer Saisonpassaufforderungen anpassen. Beachten Sie jedoch, dass, wenn Sie eines der Objekte hierarchisch verschieben, der Code sie nicht finden kann und Sie Anpassungen an Ihrem Code vornehmen müssen.
Eine Saison besteht aus den folgenden hochrangigen Komponenten, die programmgesteuert zu den UI-Komponenten des Missions-Feature-Pakets hinzugefügt werden:
- SeasonBottomFrame – Der Rahmen, der Informationen zu jedem Track, einen scrollbaren Rahmen der Belohnungen für die Stufen und Stufendaten enthält.
- SeasonDescriptionFrame - Der Rahmen im Header, der den Saison-Titel, die Beschreibung und den Countdown anzeigt.
- TierRewardFrame - Der Rahmen, der eine spezifische Belohnung für eine Stufe anzeigt.
- TierProgressFrame - Der Rahmen, der den Fortschritt anzeigt, den der Spieler in Richtung der aktuellen Stufe gemacht hat, an der er arbeitet.
- PurchaseFrame - Der Rahmen, der den Spieler auffordert, einen Premium-Pass zu kaufen.
- SeasonProgressFrame - Der Rahmen, der die Fortschrittsanzeige des Spielers während der gesamten Saison anzeigt.
- RewardsButtonFrame - Der Rahmen, der einen Button hinzufügt, der es ermöglicht, die Informationen der Saison über den SeasonBottomFrame anzuzeigen.