Das Funktionspaket Saisonpässe bietet eine Out-of-the-Box-Funktionalität, um zeitlich begrenzte, questbasierte Fortschrittssysteme zu erstellen, 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 kannst du alle Saisonpässe personalisieren, um deinem Publikum neue Inhalte zu liefern, den Spielerrückhalt zu fördern und Einnahmen zu generieren.

Paket erhalten
Der Creator-Store ist ein Tab der Toolbox, den Sie verwenden können, um alle Assets zu finden, die von Roblox und der Roblox-Community erstellt wurden, um sie in Ihren Projekten zu verwenden, einschließlich Modell, Bild, Mesh, Audiodateien, Plug-in, Video und Schriftarten.Du kannst den Creator-Store verwenden, um eine oder mehrere Assets direkt in ein offenes Erlebnis einzufügen, einschließlich Feature-Pakete!
Jedes Feature-Paket erfordert, dass das Kern -Feature-Paket ordnungsgemäß funktioniert, und das Saison-Pakete -Paket erfordert, dass das Missions -Feature-Paket eine Saison von Missionen definiert.Sobald alle drei Paket-Assets in deinem Inventar sind, kannst du sie in jedem Projekt auf der Plattform wiederverwenden.
Um die Pakete aus deinem Inventar in deine Erlebniszu bringen:
Fügen Sie die Kern , Missionen und Saisonpässe Pakete zu Ihrem Inventar innerhalb von Studio hinzu, indem Sie auf die Schaltfläche Zum Inventar hinzufügen in der folgenden Reihe von Komponenten klicken.
Wählen Sie in der Toolbar die Ansicht-Registerkarte.
Klicken Sie auf Werkzeugkiste . Das Werkzeugkistenfenster wird angezeigt.
In dem Werkzeugkasten Fenster klicken Sie auf die Inventar Registerkarte. Die meine Modelle Sortierung wird angezeigt.
Klicken Sie auf die Feature-Paket-Kern -Kachel, dann auf die Missions-Feature-Paket -Kachel und dann auf die Saison-Pässe-Feature-Paket -Kachel.Alle drei Paketordner werden im Explorer -Fenster angezeigt.
Ziehe die PaketOrdner in ReplicatedStorage .
Erlaube Datenlagern, Anrufe zu verfolgen, mit denen Spielerkäufe mit den Paketen getätigt werden.
- Wählen Sie auf der Registerkarte Home der Toolbar Spieleinstellungen .
- Navigiere zur Sicherheits -Registerkarte und aktiviere dann Studio-Zugriff auf API-Dienste aktivieren .
Konfiguriere Missionsabhängigkeiten
Um die Saisons ordnungsgemäß funktionieren zu lassen, musst du Logik hinzufügen, damit das Feature-Paket Saisonpässe den Fortschritt des Spielers verfolgen und seine Benutzeroberflächenkomponenten aktualisieren kann.Zum Einfachheit halber verwendet das folgende Beispiel das Missions -Funktionspaket und ruft SeasonPasses.addProgressToSeason() nachdem Spieler Missionen abgeschlossen haben, aber du kannst den Fortschritt der Spieler jedoch verfolgen, wie du möchtest.Ob du Missionen definierst oder nicht, musst du das Missions -Feature-Paket jedoch immer noch zu deiner Erfahrung hinzufügen, damit der Season Pass -Code funktioniert.
Jede Mission hat eine Reihe von Aufgaben, die abgeschlossen sein müssen, um die Mission, Konfigurationsoptionen und optionale Display-Metadaten abzuschließen.Für einen detaillierten Leitfaden zur Konfiguration von Missionen und ihren Aufgaben siehe Definiere Missionen.
Füge XP aus Missionen zu Saisons hinzu
Dieses Beispiel verwendet das Missions -Funktionspaket, um Missionen zu definieren, die Spieler abschließen können, um Erfahrung (XP) zu sammeln und durch die Saison voranzukommen.Um Spielern EP zu verleihen, wenn sie eine definierte Mission abschließen, musst du der ReplicatedStorage.Missions.Server.Examples.MissionsExample Server-Skript-Logik hinzufügen, damit es saisonale Passdaten importieren und Spieler entsprechend ihres Fortschritts belohnen kann.
local SeasonPasses = require(ReplicatedStorage.SeasonPasses.Server.SeasonPasses)
local function completeHandler(player: Player, missionId: Types.MissionId)
print(`{player} completed mission {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
Füge saisonale Stufenbelohnungs-Ikonen hinzu
Zusätzlich zu der Gewährung von XP an Spieler, wenn sie Missionen abschließen, verwendet das Feature-Paket Saisonpässe das Missions -Feature-Paket, um einzigartige Belohnungsstufen innerhalb einer Saison zu definieren.Wenn du ein Symbol auf dem Bildschirm hinzufügen möchtest, das Spieler verdienen können, wenn sie genug XP haben, füge eine AssetID in der Missions Konfiguration für jede Saisonstufenbelohnung hinzu.
Tier3Mission = {categoryId = "General",metadata = {displayName = "Tier 3 Mission",description = "Jump 10 times",visibleAfterComplete = true,visibleBeforeUnlocked = true,rewards = {{icon = 16826775737,displayName = "Item",},{icon = 106912146245070,displayName = "Season XP",},},},}
Saisons konfigurieren
Nachdem du jede Mission eingerichtet hast, die du in einer Saison einbeziehen möchtest, ist es Zeit, den Saisonpass selbst zu konfigurieren.In ReplicatedStorage.SeasonPasses.Configs.Season gibt es ein Beispiel für eine Saisonkonfiguration für deine Referenz, und die folgenden Codebeispiele stammen aus dieser Datei.
Pässe definieren
Pässe ermöglichen es dir, Spielern eine einmalige Robux-Gebühr in Rechnung zu stellen, um Zugang zu Missionen und möglichen Belohnungen eines Saisonpasses zu erhalten.Nachdem du einen Pass mit einer eindeutigen Asset-ID erstellt hast, kannst du die Details des Passes im Feld premiumTrack deiner 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 dann einen Namen für die Spur "Premium-Track".
premiumTrack = {pricing = {gamePassId = 928192647,},trackMetadata = {trackName = "Premium Track",},},
Konfiguriere Stufen und Belohnungen
Saisonstufen repräsentieren die Meilensteine, die Spieler erfüllen müssen, um im Laufe einer Saison Belohnungen zu verdienen.Um die Stufen zu erklimmen, schließen Spieler Missionen ab, um XP zu verdienen, und wenn sie genug XP verdient haben, schließen sie sich der nächsten Stufe an und erhalten Belohnungen für die Stufe, die sie gerade abgeschlossen haben.Stufen haben ein upperBoundXP Eigenschaft, die die Schwellenwerte von EP festlegt, die für die Beanspruchung der Belohnungen für eine Stufe erforderlich sind.Jede Stufe kann zwei Arten von Belohnungen anbieten:
- Kostenlos - Eine Belohnung, die Spieler ohne den Kauf des Passverdienen können
- Premium - Eine Belohnung, die Spieler nur durch den Kauf des Passverdienen können.
Zum Demonstrieren überprüfe das folgende Codebeispiel für eine Saison mit einer Stufe, die 100 EP erfordert, um eine kostenlose Eislanz-Belohnung und eine Prämien-Explosionsschild-Belohnung zu verdienen.Die icon ist die assetID der UI-Bild zum Anzeigen für eine Belohnung, und die displayName zeigt einen Namen für die Belohnung an.Beachten Sie, dass die displayName im UI angezeigt wird, aber die rewardId wird vom Spieler ausgeblendet und wird hauptsächlich für Datenspeicher Zwecke verwendet.
tiers = {[1] = {upperBoundXP = 100,freeReward = {icon = 128181721602852,displayName = "Ice Lance",rewardId = "iceLance",},premiumReward = {icon = 95882371958115,displayName = "Blast Shield",rewardId = "blastShield",},},}
Während dieses Skript zu Illustrationszwecken dazu dient, eine Stufe gleichzeitig zu konfigurieren, enthält die meisten Saisons mehr als eine Stufe.Wenn du mehrere Stufen und Belohnungen für eine Saison definierst, stelle sicher, dass jede rewardId numerisch ist und in zunehmender Reihenfolge angezeigt wird, damit deine Stufen in der Reihenfolge angezeigt werden, in der du sie in der Stufenliste definierst.
Definieren Sie Details der Saison
Jetzt, da du einen Saisonpass mit Stufen und Belohnungen hast, ist es an der Zeit, die Details deiner Saison zu definieren:
- title - Der Name deiner Saison.
- description - Die Beschreibung deiner Saison.
- startUtc - Der Beginn der Saison in koordinierter universeller Zeit.
- endUtc - Das Ende der Saison in koordinierter universeller Zeit.
- seasonId - Lässt dich die EP verfolgen, die ein Spieler während der angegebenen Saison erhält.
Das Paket verwendet startUtc und endUtc um die Countdown der Saison anzuzeigen.
startUtc = DateTime.fromUniversalTime(2024, 10, 01, 17, 0, 0),endUtc = DateTime.fromUniversalTime(2025, 2, 28, 17, 0, 0),title = "Season 1",description = "Into Space City",seasonId = "season1",
Serverlogik integrieren
Schau dir ReplicatedStorage.SeasonPasses.Server.Examples.SeasonPassesExample an, das zeigt, wie dein Server mit dem Season Pass Feature-Paket interagieren wird.Das Snippet unten ist aus diesem Skript, das. PL: die Skripts.
Du musst hauptsächlich eine Handlerfunktion erstellen, um deinen Spielern beanspruchte Belohnungen zu vergeben.Zum Beispiel erstellt das folgende Codebeispiel eine rewardClaimedHandlerFunction()-Funktion, die verfolgt, wann Spieler auf die nächste Stufe vorrücken, und belohnt sie dann entweder nur mit der kostenlosen Belohnung oder mit den kostenlosen und prämierten Belohnungen, wenn sie den Passgekauft haben.
Für deine Zwecke ersetze die task.wait() Anrufe durch Logik, die es den Spielern ermöglicht, die Belohnungen zu erhalten, die sie in der Saison beansprucht haben.Diese Funktion muss eine boolesche Rückgabe liefern: wahr, wenn der Server die Belohnung gewährte, falsch, wenn er es nicht tat.
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
Konfigurieren von Konstanten
Konstanten für das Kern -Funktionspaket sind live in zwei Orten:
- Geteilte Konstanten leben in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.
- Paket spezifische Konstanten, in diesem Fall das Saison-Pass-Feature-Paket , leben in ReplicatedStorage.SeasonPasses.Configs.Constants.Die wichtigsten Dinge, die du anpassen möchtest, um die Designanforderungen deines Erlebnisses zu erfüllen:
- Klang-AssetIDs
- Kaufe Effektdauer und Partikelfarben Zusätzlich finden Sie Zeichenketten für die Übersetzung in eine einzige Position: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .
UI-Komponenten anpassen
Durch Änderung der Paketobjekte wie Farben, Schriftart und Transparenz können Sie die visuelle Präsentation Ihrer Saisonpass-Aufforderungen anpassen.Beachte jedoch, dass, wenn du eines der Objekte hierarchisch umstellst, der Code sie nicht finden kann und du Änderungen an deinem Codesvornehmen musst.
Eine Saison besteht aus den folgenden hohen Komponenten, die programmatisch zu den Missions-Feature-Paket -UI-Komponenten hinzugefügt werden:
- SeasonBottomFrame – Der Rahmen, der Informationen über jede Spur enthält, einen scrollbaren Rahmen der Belohnungen für Stufen und Stufendaten.
- SeasonDescriptionFrame - Der Rahmen im Kopfzeile, der den Saisontitel, 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 derzeitigen Stufe gemacht hat, an der er arbeitet.
- PurchaseFrame - Der Rahmen, der den Spieler auffordert, einen Premium-Pass zu kaufen.
- SeasonProgressFrame - Der Rahmen, der die Fortschrittsleiste des Spieler:inwährend der gesamten Saison anzeigt.
- RewardsButtonFrame - Der Rahmen, der einen Button hinzufügt, der es ermöglicht, die Informationen der Saison durch die SeasonBottomFrame anzuzeigen.