Le paquet de fonctionnalités Missions offre une fonctionnalité prête à l'emploi pour créer des missions que les joueurs peuvent terminer pour obtenir des récompenses et progresser dans votre expérience.Toutes les missions doivent avoir un ID, une catégorie et une liste de tâches que les joueurs doivent accomplir pour terminer la mission.Cependant, la liste des tâches peut être vide, ce qui permet de réclamer immédiatement les récompenses de la mission.
En utilisant les options de personnalisation du paquet, vous pouvez personnaliser toutes les missions pour répondre à vos exigences de jeu uniques, telles que :
- Créer des missions qui embarquent de nouveaux joueurs dans votre expérience et améliorent la rétention de D1.
- Cibler la rétention de D7 et de D30 en ajoutant des objectifs à moyen et long terme et un sentiment de progression.
- Augmenter l'engagement en surfiant sur les différents systèmes dans votre jeu et en récompensant les joueurs pour leur interaction avec eux.

Obtenir le paquet
La boutique des créateurs est une tab de la boîte à outils que vous pouvez utiliser pour trouver toutes les ressources créées par Roblox et la communauté Roblox pour une utilisation dans vos projets, y compris le modèlisation, l'image, le maillage, l'audio, le plugin, la vidéo et les ressources de police .Vous pouvez utiliser la boutique des créateurs pour ajouter une ou plusieurs ressources directement dans une expérience ouverte, y compris des packages de fonctionnalités !
Chaque paquet de fonctionnalités nécessite que le paquet de fonctionnalité noyau fonctionne correctement.Une fois que les ressources du paquet de fonctionnalités noyau et mission sont dans votre inventaire, vous pouvez les réutiliser dans n'importe quel projet sur la plateforme.
Pour obtenir les packages de votre inventaire dans votre expérience :
Ajoutez le noyau et les missions à votre inventaire dans Studio en cliquant sur le lien ajouter à l'inventaire dans le ensemble de composants suivant.
Dans la barre d'outils, sélectionnez l'onglet Affichage.
Cliquez sur boîte à outils . La fenêtre boîte à outils s'affiche.
Dans la fenêtre boîte à outils , cliquez sur l'onglet inventaire . Les affichages de tri mes modèles s'affichent.
Cliquez pavéla case Feature Package Core , puis sur la case Missions Feature Package .Les deux dossiers de paquet s'affichent dans la fenêtre Explorateur .
Faites glisser les dossiers de paquet dans ReplicatedStorage .
Définir des missions
Chaque mission complétable comprend un ensemble de tâches qui doivent être terminées pour terminer la mission, les options de configuration et les métadonnées d'affichage facultatifs, tous lesquels peuvent être définis dans ReplicatedStorage.Missions.Configs.Missions , avec des types exportés du script Types dans le même dossier.
Champs obligatoires
Les champs suivants sont requis pour chaque mission.
Nom | Type | Avertissement |
---|---|---|
missionId | string | La clé principale de la table des missions. Toutes les missions sont identifiées par leur propre chaîne unique. |
categoryId | string | Les missions doivent appartenir à une catégorie et sont regroupées par catégorie dans l'interface utilisateur. |
tasks | table | Une liste de tâches que le joueur doit terminer pour terminer la mission. |
Déverrouiller les conditions
Par défaut, les missions sont débloquées automatiquement pour les joueurs et peuvent être terminées exactement une fois.Cependant, vous pouvez utiliser les options de configuration suivantes facultatives pour modifier ce comportement.
Nom | Type | Avertissement |
---|---|---|
prerequisites | table | Une liste d'autres ID de mission qui doivent être terminés avant que la mission ne puisse être débloquée. |
manualOnly | bool | Désactive le déverrouillage automatique de la mission.Au lieu de cela, une fonction doit être appelée pour déverrouiller la mission.D'autres conditions de déverrouillage doivent également être respectées. |
availableAfterUtc | bool | La mission ne peut pas être débloquée avant le temps spécifié en UTC. |
availableBeforeUtc | bool | La mission ne peut pas être débloquée après le temps spécifié en UTC. Si elle est débloquée mais pas terminée avant ce temps, la mission échouera. |
repeatable | bool | La mission se débloque à nouveau après sa fin. |
repeatLimit | number | Si la mission est répétable, elle ne peut pas être répétée plus de cette quantité de fois. |
repeatCooldownSeconds | number | Si la mission est répétable, il y a un délai avant qu'elle ne soit déverrouillée. |
expireSeconds | number | Si la mission n'est pas débloquée et n'est pas terminée dans le nombre de secondes spécifié, elle échouera à la place. |
expireCountOffline | bool | Si la mission a expireSeconds et expireCountOffline est réglée sur vrai, le temps pendant que le joueur n'est pas réellement dans l'expérience comptera pour l'expiration de la mission. |
Métadonnées
Les missions ont des métadonnées qui spécifient comment elles seront affichées dans l'interface utilisateur des missions.Vous pouvez utiliser les champs suivants facultatifs pour personnaliser ses métadonnées.
Nom | Type | Avertissement |
---|---|---|
displayName | string | Un nom à afficher pour la mission dans l'interface utilisateur au lieu du missionId. |
description | string | Un bloc de texte plus long qui fournit des informations supplémentaires ou un contexte sur la mission. |
visibleAfterComplete | bool | Si la valeur est définie sur vrai, la mission apparaîtra dans la liste des missions même après sa fin mais marquée comme terminée. |
visibleAfterFailed | bool | Si la valeur est définie sur vrai, la mission apparaîtra dans la liste des missions même après son échec mais marquée comme échouée. |
visibleBeforeUnlocked | bool | Si la valeur est définie sur vrai, la mission sera visible mais verrouillée dans la liste des missions avant d'être disponible pour la finition. |
invisibleWhileActive | bool | Si la valeur est définie sur vrai, la mission sera invisible même lorsqu'elle est active en cours. |
rewards | table | Une liste d'informations d'affichage des récompenses.
|
Définir des tâches
Chaque mission peut avoir zéro ou plus de tâches.Si une mission n'a aucune tâche, elle peut être réclamée immédiatement après son déverrouillage ; si une mission a une ou plusieurs tâches, une fois les tâches terminées, le joueur peut collecter toutes les récompenses associées à la mission.Chaque tâche a un taskId, qui est la clé associée à la tâche pour une mission donnée.
Les tâches se présentent en deux types :
- Tâches planifiées - Vous permet de démarrer et d'arrêter la tâche à des points différents dans le temps.Une certaine quantité de temps doit s'écouler pendant que le minuterie de la tâche est en cours d'exécution, puis la tâche est terminée.
- Compter les tâches - Vous permet d'ajouter ou de définir la progression de la tâche. Lorsque la progression atteint une valeur définie, la tâche est terminée.
Les deux types de tâches partagent les champs suivants :
Nom | Type | Avertissement |
---|---|---|
taskType | string | Spécifie si le type de tâche est comptage ou tempéré. |
counter | object | (Facultatif) Le compteur que cette tâche suit.Les comptoirs sont un stockage persistant spécifique au joueur pour un nombre ou un minuterie.Plusieurs tâches peuvent suivre un seul contrer; par exemple, si plus d'une tâche suit le nombre de pièces qu'un joueur a collectées, elles peuvent toutes partager le même compteur de « pièces ».Ces tâches peuvent indépendamment suivre les nouvelles pièces collectées, à partir de zéro, ou poursuivre le comptage à partir de la valeur du compteur (toutes les pièces déjà collectées).
|
metadata | object | (Facultatif) Informations sur la façon dont la tâche s'affiche dans l'interface utilisateur.
|
callToAction | object | (Facultatif) Un bouton qui déclenche une fonction de rappel.
|
Compter les champs de tâches
Les tâches comptées ont une valeur requise. Lorsque la progression de la tâche atteint ce montant, la tâche est terminée.
Nom | Type | Avertissement |
---|---|---|
goalCount | number | (Facultatif) La progression requise pour terminer la tâche. |
Champs de tâches de temps
Les tâches de temps ont une quantité cible de temps dépensé, et sont démarrées et arrêtées. Lorsque la quantité cible de temps est atteinte, la tâche est terminée.
Nom | Type | Avertissement |
---|---|---|
goalSeconds | number | Le nombre de secondes qui doivent passer pour terminer la tâche. |
startImmediately | bool | Si la tâche doit commencer à compter le temps dès qu'elle est débloquée, plutôt qu'après seulement son démarrage. |
includesOfflineTime | bool | Si la tâche doit inclure le temps passé pendant que le joueur n'est pas activement dans l'expérience. |
Configurer les catégories
Les catégories n'ont pas à être explicitement définies pour être utilisées, car la catégorie pour une mission a des valeurs par défaut qui seront utilisées.Cependant, vous pouvez configurer ces valeurs dans ReplicatedStorage.Missions.Configs.Categories pour ajouter des effets supplémentaires à la catégorie.Les catégories sont identifiées par un CategoryIds unique, les mêmes référencées dans la configuration des missions.
Nom | Type | Avertissement |
---|---|---|
repeatDelaySeconds | number | (Facultatif) Si cette option est configurer, toutes les missions de la catégorie sont réinitialisées chaque fois que la quantité de temps spécifiée passe, et peuvent être débloquées, terminées et leurs récompenses réclamées à nouveau.Cela est séparé des missions répétables, qui sont répétables dans une catégorie donnée. |
Intégrer la logique du serveur
Jetez un coup d'œil à ReplicatedStorage.Missions.Server.Examples.MissionsExample, qui montre comment votre serveur interagira avec le paquet de fonctionnalités missions .
Vous devez principalement brancher quatre choses une fois que vous avez fait glisser le paquet de fonctionnalités missions dans votre expérience :
Définir des missions dans votre configuration de missions.
Ajoutez de la logique à votre expérience pour mettre à jour la progression des tâches ou les compteurs auxquels la progression est liée.
LECTURE ME-- Augmente la progression d'une mission de saut en effectuant une tâche de sautMissions.addProgressToTask(player, "Jumping", "Jumps", 1)-- Démarre la minuterie sur une mission BattlingTime avec une tâche TimeInBattleMissions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- Arrête le minuteur sur une mission BattlingTime avec une tâche TimeInBattleMissions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- Augmente le progrès de toutes les tâches liées au compteur de sautsCounterSystem.addCounter(player, "Jumps", 1)-- Démarre la minuterie sur toutes les tâches planifiées liées au compteur de temps en contrerCounterSystem.startTimer(player, "TimeInBattle")-- Arrête le minuteur sur toutes les tâches planifiées liées au compteur de temps en contrerCounterSystem.stopTimer(player, "TimeInBattle")Définir les gestionnaires de fin de mission et, facultativement, déverrouiller ou échouer les gestionnaires.Utilisez le traitement de fin pour attribuer les récompenses de la mission dans votre expérience.
LECTURE MElocal function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} completed mission {missionId}`)-- Remettez au joueur ses récompenses.endMissions.setCompletionHandler(missionId, completeHandler)Débloquer des missions qui ne sont pas débloquées automatiquement.La logique du paquet de fonctionnalités Missions garantit que toutes les exigences de mission sont satisfaites avant la fin de la mission et que ses récompenses sont de collection.
LECTURE MEMissions.unlockMission(player, "Manual")
Configurer les constantes
Les constantes pour le paquet de fonctionnalités noyau vivent dans deux endroits :
Les constantes partagées vivent dans ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants .
Les constantes spécifiques au paquet, dans ce cas le paquet de fonctionnalité missions , vivent dans ReplicatedStorage.Missions.Configs.Constants.
De plus, vous pouvez trouver des chaînes pour la traduction séparées en une seule position : ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .
Personnaliser les composants d'interface utilisateur
En modifiant les objets de package, tels que les couleurs, la police et la transparence, vous pouvez ajuster la présentation visuelle de l'interface utilisateur de vos missions.Par exemple, dans ReplicatedStorage.Missions.Configs.Constants , vous pouvez activer SingleTaskMode pour afficher une barre de progression pour une tâche directement sur la mission elle-même pour les missions qui n'ont qu'une seule tâche.
En outre, si votre expérience dispose déjà d'une interface utilisateur existante que vous souhaitez intégrer avec le paquet de fonctionnalités missions , le client contient toutes les fonctions nécessaires pour obtenir les informations sur les missions d'un joueur envoyées depuis le serveur.