Missions-Paket

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das Missions-Feature-Paket bietet sofort einsatzbereite Funktionen, um Missionen zu erstellen, die Spieler abschließen können, um Belohnungen zu erhalten und in Ihrer Erfahrung Fortschritte zu erzielen. Alle Missionen müssen eine ID, eine Kategorie und eine Liste von Aufgaben haben, die die Spieler abschließen müssen, um die Mission zu beenden. Die Aufgabenliste kann jedoch leer sein, sodass die Belohnungen der Mission sofort beansprucht werden können.

Mit den Anpassungsoptionen des Pakets können Sie alle Missionen an Ihre einzigartigen Spielanforderungen anpassen, wie zum Beispiel:

  • Erstellen von Missionen, die neue Spieler in Ihre Erfahrung einführen und die D1-Retention verbessern.
  • Zielgerichtete D7- und D30-Retention, indem Sie mittel- bis langfristige Ziele und ein Gefühl der Progression hinzufügen.
  • Erhöhung des Engagements, indem verschiedene Systeme in Ihrem Spiel hervorgehoben und Spieler für die Interaktion mit ihnen belohnt werden.

Paket abrufen

Der Creator Store ist ein Tab des Toolbox, den Sie nutzen können, um alle von Roblox und der Roblox-Community erstellen Assets für Ihre Projekte 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 eine geöffnete Erfahrung hinzuzufügen, einschließlich Feature-Paketen!

Jedes Feature-Paket erfordert das Core-Feature-Paket, um ordnungsgemäß zu funktionieren. Sobald die Core- und Missions-Feature-Paket-Assets in Ihrem Inventar sind, können Sie sie in jedem Projekt auf der Plattform wiederverwenden.

Um die Pakete aus Ihrem Inventar in Ihre Erfahrung zu bringen:

  1. Fügen Sie die Core- und Missions-Pakete Ihrem Inventar innerhalb von Studio hinzu, indem Sie auf den Link In Inventar hinzufügen in folgendem Set von Komponenten klicken.

  2. Öffnen Sie über das Menü Fenster von Studio oder die Symbolleiste der Registerkarte Start die Toolbox.

  3. Klicken Sie im Toolbox-Fenster auf die Registerkarte Inventar. Die Sortierung Meine Modelle wird angezeigt.

    Studio's Toolbox window with the Inventory tab highlighted.
  4. Klicken Sie auf die Kachel Feature-Paket Core, dann auf die Kachel Missions-Feature-Paket. Beide Paketordner werden im Explorer-Fenster angezeigt.

  5. Ziehen Sie die Paketordner in ReplicatedStorage.

Missionen definieren

Jede abschließbare Mission umfasst eine Reihe von Aufgaben, die abgeschlossen werden müssen, um die Mission abzuschließen, Konfigurationsoptionen und optionale Anzeigemetadaten, die alle innerhalb von ReplicatedStorage.Missions.Configs.Missions definiert werden können, wobei Typen aus dem Types-Skript im selben Ordner exportiert werden.

Pflichtfelder

Die folgenden Felder sind für jede Mission erforderlich.

NameTypBeschreibung
missionIdstringDer Hauptschlüssel der Missions-Tabelle. Alle Missionen werden durch ihre eigene eindeutige Zeichenfolge identifiziert.
categoryIdstringMissionen müssen zu einer Kategorie gehören und werden in der Benutzeroberfläche nach Kategorie gruppiert.
taskstableEine Liste von Aufgaben, die der Spieler abschließen muss, um die Mission zu vervollständigen.

Freischaltbedingungen

Standardmäßig werden Missionen automatisch für Spieler freigeschaltet und können genau einmal abgeschlossen werden. Sie können jedoch die folgenden optional Konfigurationsoptionen verwenden, um dieses Verhalten zu ändern.

NameTypBeschreibung
prerequisitestableEine Liste von anderen missionIds, die abgeschlossen werden müssen, bevor die Mission freigeschaltet werden kann.
manualOnlyboolDeaktiviert das automatische Freischalten der Mission. Stattdessen muss eine Funktion aufgerufen werden, um die Mission freizuschalten. Alle anderen Freischaltbedingungen müssen ebenfalls erfüllt sein.
availableAfterUtcboolDie Mission kann nicht vor der angegebenen Zeit in UTC freigeschaltet werden.
availableBeforeUtcboolDie Mission kann nicht nach der angegebenen Zeit in UTC freigeschaltet werden. Wenn die Mission freigeschaltet, aber vor dieser Zeit nicht abgeschlossen wurde, wird sie als fehlgeschlagen angesehen.
repeatableboolDie Mission wird erneut freigeschaltet, nachdem sie abgeschlossen wurde.
repeatLimitnumberWenn die Mission wiederholbar ist, kann sie nicht mehr als diese Anzahl von Malen wiederholt werden.
repeatCooldownSecondsnumberWenn die Mission wiederholbar ist, gibt es eine Verzögerung, bevor sie wieder freigeschaltet wird.
expireSecondsnumberWenn die Mission freigeschaltet ist und nicht innerhalb der angegebenen Anzahl von Sekunden abgeschlossen wird, schlägt sie stattdessen fehl.
expireCountOfflineboolWenn die Mission expireSeconds hat und expireCountOffline auf wahr gesetzt ist, zählt die Zeit, während der Spieler sich nicht in der Erfahrung befindet, zur Ablaufzeit der Mission.

Metadaten

Missionen haben Metadaten, die festlegen, wie sie in der Missionsbenutzeroberfläche angezeigt werden. Sie können die folgenden optional Felder verwenden, um ihre Metadaten anzupassen.

NameTypBeschreibung
displayNamestringEin anzuzeigender Name für die Mission in der Benutzeroberfläche anstelle der missionId.
descriptionstringEin längerer Textblock, der zusätzliche Informationen oder Kontexte zur Mission liefert.
visibleAfterCompleteboolWenn auf wahr gesetzt, wird die Mission auch nach Abschluss in der Liste der Missionen angezeigt, jedoch als abgeschlossen markiert.
visibleAfterFailedboolWenn auf wahr gesetzt, wird die Mission auch nach dem Fehlschlagen in der Liste der Missionen angezeigt, jedoch als fehlgeschlagen markiert.
visibleBeforeUnlockedboolWenn auf wahr gesetzt, wird die Mission sichtbar, aber in der Liste der Missionen gesperrt, bevor sie zur Vervollständigung verfügbar ist.
invisibleWhileActiveboolWenn auf wahr gesetzt, bleibt die Mission unsichtbar, selbst während sie aktiv fortschreitet.
rewardstableEine Liste von Belohnungsanzeigedaten.
  • assetID (number) - Die Bild-ID, die in der Missionsbenutzeroberfläche unter den Belohnungen für eine Quest angezeigt wird. Dies ist erforderlich, wenn eine Belohnung vorhanden ist.
  • displayName (string) - Der Name, der in der Missionsbenutzeroberfläche unter dem Symbol angezeigt wird.

Aufgaben definieren

Jede Mission kann null oder mehr Aufgaben haben. Wenn eine Mission null Aufgaben hat, ist sie sofort nach der Freischaltung beanspruchbar; wenn eine Mission eine oder mehrere Aufgaben hat, kann der Spieler, sobald die Aufgaben abgeschlossen sind, alle mit der Mission verbundenen Belohnungen sammeln. Jede Aufgabe hat eine taskId, die der Schlüssel ist, der mit der Aufgabe für eine bestimmte Mission verbunden ist.

Aufgaben kommen in zwei Typen:

  • Timed Tasks - Ermöglicht es Ihnen, die Aufgabe zu einem anderen Zeitpunkt zu starten und zu stoppen. Eine bestimmte Zeit muss vergehen, während der Timer der Aufgabe läuft, dann ist die Aufgabe abgeschlossen.
  • Count Tasks - Ermöglicht es Ihnen, den Fortschritt der Aufgabe zu erhöhen oder festzulegen. Wenn der Fortschritt einen festgelegten Wert erreicht, ist die Aufgabe abgeschlossen.

Beide Aufgabentypen teilen sich die folgenden Felder:

NameTypBeschreibung
taskTypestringGibt an, ob der Aufgaben-Typ zählen oder zeitgesteuert ist.
counterobject(Optional) Der Zähler, den diese Aufgabe verfolgt. Zähler sind spieler-spezifische persistente Speicher für eine Anzahl oder einen Timer. Mehrere Aufgaben können einen einzelnen Zähler verfolgen; wenn beispielsweise mehr als eine Aufgabe verfolgt, wie viele Münzen ein Spieler gesammelt hat, können sie alle denselben "Münzen"-Zähler verwenden. Diese Aufgaben können unabhängig darauf abzielen, neue gesammelte Münzen zu verfolgen, beginnend bei null, oder die Zählung vom Zählerwert fortzusetzen (alle bereits gesammelten Münzen).
  • counterId (string) - Die ID des Zählers, der verfolgt werden soll. Verwenden Sie diese ID, um den Wert des Zählers zu erhalten oder festzulegen.
  • continueFromCounter (Optional bool) - Wenn auf wahr gesetzt, wird der Fortschritt der Aufgabe direkt dem Wert des Zählers entsprechen, anstatt der Menge, um die er erhöht wurde.
metadataobject(Optional) Informationen darüber, wie die Aufgabe in der Benutzeroberfläche angezeigt wird.
  • displayName (string) - Name der Aufgabe, der verwendet wird, wenn sie in der Benutzeroberfläche angezeigt wird.
  • numericType (Optional string) - wie die Fortschrittszahl in der Aufgabe angezeigt werden sollte.
    • Fraction, z.B. 5/10 oder 5k/50k
    • Percentage, z.B. 50% oder 10%
    • LongFraction, z.B. 5/10 oder 5000/50000
    • Boolean, z.B. Unvollständig
callToActionobject(Optional) Eine Schaltfläche, die eine Rückruffunktion auslöst.
  • callback (function) - Funktion, die durch die Schaltfläche callToAction ausgelöst wird.
  • buttonText (string) - Der Text, der in der Schaltfläche der Benutzeroberfläche angezeigt wird.

Felder für Zählaufgaben

Zählaufgaben haben einen erforderlichen Wert. Wenn der Fortschritt der Aufgabe diesen Betrag erreicht, ist die Aufgabe abgeschlossen.

NameTypBeschreibung
goalCountnumber(Optional) Der Fortschritt, der erforderlich ist, um die Aufgabe abzuschließen.

Zeitaufgabenfelder

Zeitaufgaben haben eine Zielmenge an aufgewendeter Zeit und werden gestartet und gestoppt. Wenn die Zielmenge an Zeit erreicht wird, ist die Aufgabe abgeschlossen.

NameTypBeschreibung
goalSecondsnumberDie Anzahl der Sekunden, die vergehen müssen, um die Aufgabe abzuschließen.
startImmediatelyboolOb die Aufgabe die Zeit zählen sollte, sobald sie freigeschaltet wird, und nicht erst, nachdem sie gestartet wurde.
includesOfflineTimeboolOb die Aufgabe die Zeit einbezieht, die der Spieler nicht aktiv in der Erfahrung ist.

Kategorien konfigurieren

Kategorien müssen nicht ausdrücklich definiert werden, um verwendet zu werden, da die Kategorie einer Mission Standardwerte hat, die verwendet werden. Sie können diese Werte jedoch in ReplicatedStorage.Missions.Configs.Categories konfigurieren, um zusätzliche Effekte auf die Kategorie hinzuzufügen. Kategorien werden durch eindeutige CategoryIds identifiziert, dieselben, die in der Missionskonfiguration referenziert werden.

NameTypBeschreibung
repeatDelaySecondsnumber(Optional) Wenn festgelegt, werden alle Missionen in der Kategorie zurückgesetzt, jedes Mal, wenn die angegebene Zeitspanne vergeht, und können wieder freigeschaltet, abgeschlossen und ihre Belohnungen erneut beansprucht werden. Dies ist unabhängig von wiederholbaren Missionen, die innerhalb einer gegebenen Kategorie wiederholt werden können.

Serverlogik integrieren

Werfen Sie einen Blick auf ReplicatedStorage.Missions.Server.Examples.MissionsExample, das zeigt, wie Ihr Server mit dem Missions-Feature-Paket interagiert.

Sie müssen hauptsächlich vier Dinge anschließen, nachdem Sie das Missions-Feature-Paket in Ihre Erfahrung gezogen haben:

  1. Definieren Sie Missionen in Ihrer Missionskonfiguration.

  2. Fügen Sie Ihrer Erfahrung Logik hinzu, um den Fortschritt der Aufgaben oder der Zähler, an die der Fortschritt gebunden ist, zu aktualisieren.

    README

    -- Erhöht den Fortschritt für eine Mission Jumping mit einer Jumps-Aufgabe
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- Startet den Timer für eine Mission BattlingTime mit einer TimeInBattle-Aufgabe
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Stoppt den Timer für eine Mission BattlingTime mit einer TimeInBattle-Aufgabe
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Erhöht den Fortschritt für alle Aufgaben, die an den Jumps-Zähler gebunden sind
    CounterSystem.addCounter(player, "Jumps", 1)
    -- Startet den Timer für alle zeitgesteuerten Aufgaben, die an den TimeInBattle-Timer-Zähler gebunden sind
    CounterSystem.startTimer(player, "TimeInBattle")
    -- Stoppt den Timer für alle zeitgesteuerten Aufgaben, die an den TimeInBattle-Timer-Zähler gebunden sind
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Setzen Sie Handler für den Abschluss von Missionen und optional auch für Handler für Freischaltungen oder Fehlschläge. Verwenden Sie den Abschluss-Handler, um die Belohnungen aus der Mission in Ihrer Erfahrung zu vergeben.

    README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} hat die Mission {missionId} abgeschlossen`)
    -- Belohnen Sie den Spieler mit seinen Belohnungen.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Schalten Sie Missionen frei, die nicht automatisch freigeschaltet werden. Die Logik des Missions-Feature-Pakets stellt sicher, dass alle Anforderungen der Mission erfüllt sind, bevor die Mission abgeschlossen ist und ihre Belohnungen gesammelt werden können.

    README

    Missions.unlockMission(player, "Manual")

Konstante 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 Missions-Feature-Paket, befinden sich in ReplicatedStorage.Missions.Configs.Constants.

Zusätzlich finden Sie Strings für die Übersetzung an einem Ort aufgeteilt: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

UI-Komponenten anpassen

Durch die Anpassung der Paketobjekte, wie Farben, Schriftarten und Transparenz, können Sie die visuelle Darstellung Ihrer Missionsbenutzeroberfläche anpassen. Beispielsweise können Sie in ReplicatedStorage.Missions.Configs.Constants SingleTaskMode aktivieren, um eine Fortschrittsanzeige für eine Aufgabe direkt auf der Mission anzuzeigen, für Missionen, die nur eine einzige Aufgabe haben.

Wenn Ihre Erfahrung bereits eine bestehende Benutzeroberfläche hat, die Sie in das Missions-Feature-Paket integrieren möchten, enthält das Client-ModuleScript MissionsClient alle Funktionen, die erforderlich sind, um die Informationen über die Missionen eines Spielers vom Server zu erhalten.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.