Das Missions -Funktionspaket bietet eine Out-of-the-Box-Funktionalität, um Missionen zu erstellen, die Spieler abschließen können, um Belohnungen und Fortschritt in deiner Erlebniszu erzielen.Alle Missionen müssen eine ID, Kategorie und eine Liste von Aufgaben haben, die Spieler abschließen müssen, um die Mission abzuschließen.Die Aufgabenliste kann jedoch leer sein, so dass die Belohnungen der Mission sofort beansprucht werden können.
Mit den Anpassungsoptionen des Pakets kannst du alle Missionen personalisieren, um deine einzigartigen Spielanforderungen zu erfüllen, wie:
- Erstellung von Missionen, die an Bord neue Spieler in deine Erfahrung bringen und verbessern D1-Beständigkeit.
- Zielgerichtet D7 und D30-Retention durch Hinzufügen von mittelfristigen bis langfristigen Zielen und einem Gefühl des Fortschritts.
- Erhöhen von Engagement, indem die verschiedenen Systeme in deinem Spiel zutage gebracht und Spieler dafür belohnt werden, mit ihnen zu interagieren.

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.Sobald die Kern - und Missions -Funktionspaket-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 und Missionen 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.Beide Paketordner werden im Explorer -Fenster angezeigt.
Ziehe die PaketOrdner in ReplicatedStorage .
Missionen definieren
Jede abschließbare Mission enthält eine Reihe von Aufgaben, die abgeschlossen sein müssen, um die Mission, die Konfigurationsoptionen und optionale Display-Metadaten abzuschließen, alles, was innerhalb von ReplicatedStorage.Missions.Configs.Missions definiert werden kann, mit Arten, die aus dem Skript Types im gleichen Ordner exportiert wurden.
Erforderliche Felder
Die folgenden Felder sind für jede Mission erforderlich.
Namen | Typ | Beschreibung |
---|---|---|
missionId | string | Der Schlüsselfür Missionen. Alle Missionen werden durch ihre eigene einzigartige Stringidentifiziert. |
categoryId | string | Missionen müssen einer Kategorie angehören und sind in der UI nach Kategorie gruppiert. |
tasks | table | Eine Liste von Aufgaben, die der Spieler abschließen muss, um die Mission abzuschließen. |
Bedingungen freischalten
Standardmäßig werden Missionen automatisch für Spieler freigeschaltet und können genau einmal abgeschlossen werden.Sie können jedoch die folgenden optionalen Konfigurationsoptionen verwenden, um dieses Verhalten zu ändern.
Namen | Typ | Beschreibung |
---|---|---|
prerequisites | table | Eine Liste anderer MissionIds, die vor der Freischaltung der Mission abgeschlossen werden müssen. |
manualOnly | bool | Deaktiviert die automatische Freischaltung der Mission.Stattdessen muss eine Funktion aufgerufen werden, um die Mission freizuschalten.Alle anderen Freischaltbedingungen müssen ebenfalls noch erfüllt werden. |
availableAfterUtc | bool | Die Mission kann nicht vor der angegebenen Zeit in UTC freigeschaltet werden. |
availableBeforeUtc | bool | Die Mission kann nach der angegebenen Zeit in UTC nicht freigeschaltet werden. Wenn sie freigeschaltet wird, aber nicht vor dieser Zeit abgeschlossen wird, wird die Mission fehlgeschlagen. |
repeatable | bool | Die Mission wird nach ihrer Fertigstellung wieder freigeschaltet. |
repeatLimit | number | Wenn die Mission wiederholbar ist, kann sie nicht mehr als diesen vielen Mal wiederholt werden. |
repeatCooldownSeconds | number | Wenn die Mission wiederholbar ist, gibt es eine Verzögerung, bevor sie freigeschaltet wird. |
expireSeconds | number | Wenn die Mission nicht innerhalb der angegebenen Anzahl von Sekunden freigeschaltet und nicht abgeschlossen wird, scheitert sie stattdessen. |
expireCountOffline | bool | Wenn die Mission expireSeconds und expireCountOffline auf wahr gesetzt ist, wird die Zeit, während der Spieler nicht tatsächlich in der Erfahrung ist, zur Missionserfüllung zählen. |
Metadaten
Missionen haben Metadaten, die spezifizieren, wie sie im Missions-Benutzeroberfläche angezeigt werden.Du kannst die folgenden optionalen Felder verwenden, um seine Metadaten anzupassen.
Namen | Typ | Beschreibung |
---|---|---|
displayName | string | Ein Name, der für die Mission im Benutzeroberfläche angezeigt wird, anstatt der missionId. |
description | string | Ein längerer Textblock, der zusätzliche Informationen oder Kontext über die Mission liefert. |
visibleAfterComplete | bool | Wenn auf wahr gesetzt, wird die Mission in der Liste der Missionen angezeigt, auch nachdem sie abgeschlossen ist, aber als abgeschlossen markiert. |
visibleAfterFailed | bool | Wenn auf wahr gesetzt, wird die Mission in der Liste der Missionen angezeigt, auch nachdem sie fehlgeschlagen ist, aber als fehlgeschlagen markiert. |
visibleBeforeUnlocked | bool | Wenn auf wahr gesetzt, wird die Mission sichtbar, aber gesperrt in der Liste der Missionen, bevor sie für die Fertigstellung verfügbar ist. |
invisibleWhileActive | bool | Wenn auf wahr gesetzt, wird die Mission auch während der aktiven Bearbeitung unsichtbar sein. |
rewards | table | Eine Liste mit Belohnungsanzeigedaten.
|
Aufgaben definieren
Jede Mission kann null oder mehr Aufgaben haben.Wenn eine Mission keine Aufgaben hat, kann sie sofort nach ihrer Freischaltung beansprucht werden; wenn eine Mission eine oder mehrere Aufgaben hat, kann der Spieler nach Beendigung der Aufgaben alle mit der Mission verbundenen Belohnungen sammeln.Jede Aufgabe hat ein taskId, das der Schlüssel ist, der mit der Aufgabe für eine bestimmte Mission verbunden ist.
Aufgaben kommen in zwei Arten vor:
- Zeitlich begrenzte Aufgaben - Lässt dich die Aufgabe zu unterschiedlichen Zeitpunkten starten und stoppen.Eine bestimmte Zeit muss vergehen, während der Timer der Aufgabe läuft, dann ist die Aufgabe abgeschlossen.
- Aufgaben zählen - Lässt dich den Fortschritt der Aufgabe hinzufügen oder festlegen. Wenn der Fortschritt einen festgelegten Wert erreicht, ist die Aufgabe abgeschlossen.
Beide Aufgabenarten teilen die folgenden Felder:
Namen | Typ | Beschreibung |
---|---|---|
taskType | string | Gibt an, ob der Aufgabentyp zählen oder zeitlich ist. |
counter | object | (Optional) Die Zähler, die diese Aufgabe verfolgt.Zähler sind persistente Speicher für Spieler spezifische Zahlen oder Timer.Mehrere Aufgaben können eine einzige Gegenangebot machenverfolgen; zum Beispiel, wenn mehr als eine Aufgabe verfolgt, wie viele Münzen ein Spieler gesammelt hat, können sie alle denselben "Münzen"Gegenangebot machenteilen.Diese Aufgaben können unabhängig verfolgen, welche neuen Münzen gesammelt wurden, beginnend mit Null, oder die Zählung vom Zählerwert fortsetzen (alle Münzen bereits gesammelt).
|
metadata | object | (Optional) Informationen darüber, wie die Aufgabe in der UI angezeigt wird.
|
callToAction | object | (Optional) Eine Schaltfläche, die eine Rückruffunktion auslöst.
|
Zähle Aufgabenfelder
Zählaufgaben haben einen erforderlichen Wert. Wenn der Fortschritt der Aufgabe diesem Betrag entspricht, ist die Aufgabe abgeschlossen.
Namen | Typ | Beschreibung |
---|---|---|
goalCount | number | (Optional) Der Fortschritt, der zum Abschluss der Aufgabe erforderlich ist. |
Zeitaufgaben-Felder
Zeitaufgaben haben einen anvisierten Zeitaufwand und werden gestartet und gestoppt. Wenn der anvisierte Zeitaufwand erreicht ist, ist die Aufgabe abgeschlossen.
Namen | Typ | Beschreibung |
---|---|---|
goalSeconds | number | Die Anzahl der Sekunden, die vergehen müssen, um die Aufgabe abzuschließen. |
startImmediately | bool | Wenn die Aufgabe sofort nach ihrer Freischaltung Zeit zählen soll, anstatt erst dann, wenn sie gestartet wird. |
includesOfflineTime | bool | Wenn die Aufgabe Zeit enthalten sollte, während der Spieler nicht aktiv im Erlebnis ist. |
Kategorien konfigurieren
Kategorien müssen nicht explizit definiert werden, um verwendet zu werden, da die Kategorie für eine Mission Standardwerte hat, die verwendet werden.Sie können diese Werte jedoch in ReplicatedStorage.Missions.Configs.Categories konfigurieren, um der Kategorie zusätzliche Effekte hinzuzufügen.Kategorien werden durch einzigartige CategoryIds identifiziert, die in der Missionskonfiguration referenziert werden.
Namen | Typ | Beschreibung |
---|---|---|
repeatDelaySeconds | number | (Optional) Wenn es festlegenist, werden alle Missionen in der Kategorie jedes Mal zurückgesetzt, wenn die angegebene Menge an Zeit verstrichen ist, und können freigeschaltet, abgeschlossen und ihre Belohnungen wieder eingesammelt werden.Dies ist von wiederholbaren Missionen zu unterscheiden, die innerhalb einer bestimmten Kategorie wiederholbar sind. |
Serverlogik integrieren
Schau dir ReplicatedStorage.Missions.Server.Examples.MissionsExample an, das zeigt, wie dein Server mit dem Missions -Funktionspaket interagieren wird.
Du musst vor allem vier Dinge verbinden, nachdem du das Missions -Funktionspaket in deine Erlebnisgezogen hast:
Definieren Sie Missionen in Ihrer Missionskonfiguration.
Füge Logik zu deiner Erfahrung hinzu, um den Fortschritt der Aufgabe oder die Zähler zu aktualisieren, an denen der Fortschritt gebunden ist.
LESEN Sie ME-- Erhöht den Fortschritt bei einer Mission Springen mit einer SprungaufgabeMissions.addProgressToTask(player, "Jumping", "Jumps", 1)-- Starte den Timer in einer Mission mit einer TimeInBattle-AufgabeMissions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- Stoppt den Timer auf einer Mission mit einer TimeInBattle-AufgabeMissions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- Erhöht den Fortschritt aller Aufgaben, die mit der Gegenangebot machenverbunden sindCounterSystem.addCounter(player, "Jumps", 1)-- Startet den Timer für alle zeitgesteuerten Aufgaben, die mit dem Gegenangebot machenvon TimeInBattle verbunden sindCounterSystem.startTimer(player, "TimeInBattle")-- Stoppt den Timer für alle zeitgesteuerten Aufgaben, die mit dem Gegenangebot machenvon TimeInBattle verbunden sindCounterSystem.stopTimer(player, "TimeInBattle")Stelle Missionsabschluss-Handler ein und schalte optional Abschluss-Handler frei oder sperre sie.Verwende den Abschluss处理器, um die Belohnungen aus der Mission in deiner Erlebniszu vergeben.
LESEN Sie MElocal function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} completed mission {missionId}`)-- Belohnen Sie den Spieler mit seinen Belohnungen.endMissions.setCompletionHandler(missionId, completeHandler)Schalte Missionen frei, die nicht automatisch freigeschaltet werden. Missions -Funktionspaketlogik stellt sicher, dass alle Missionsanforderungen erfüllt sind, bevor die Mission abgeschlossen ist, und ihre Belohnungen Sammler-Itemsind.
LESEN Sie MEMissions.unlockMission(player, "Manual")
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 Missions -Funktionspaket, leben in ReplicatedStorage.Missions.Configs.Constants .
Zusätzlich können Sie Zeichen für die Übersetzung in eine einzige Position aufteilen: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .
UI-Komponenten anpassen
Durch Änderung der Paketobjekte wie Farben, Schriftart und Transparenz kannst du die visuelle Präsentation deiner Missions-UI anpassen.Zum Beispiel in ReplicatedStorage.Missions.Configs.Constants kannst du SingleTaskMode aktivieren, eine Fortschrittsleiste für eine Aufgabe direkt auf der Mission selbst für Aufgaben mit nur einer Aufgabe anzuzeigen.
Darüber hinaus, wenn deine Erfahrung bereits eine vorhandene Benutzeroberfläche hat, die du mit dem Missions-Funktionspaket integrieren möchtest, enthält der Client alle Funktionen, die erforderlich sind, um die Informationen über die Missionen eines Spieler:invom Server zu erhalten.