Pack de missions

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le pack de fonctionnalités Missions offre une fonctionnalité prête à l'emploi pour créer des missions que les joueurs peuvent compléter pour obtenir des récompenses et progresser dans votre expérience. Toutes les missions doivent avoir un identifiant, une catégorie et une liste de tâches que les joueurs doivent compléter pour terminer la mission. Cependant, la liste des tâches peut être vide, permettant aux récompenses de la mission d'être réclamées immédiatement.

En utilisant les options de personnalisation du pack, vous pouvez personnaliser toutes les missions pour répondre à vos besoins de jeu uniques, tels que :

  • Créer des missions qui intègrent de nouveaux joueurs dans votre expérience et améliorent la rétention D1.
  • Cibler la rétention D7 et D30 en ajoutant des objectifs à moyen et long terme ainsi qu'un sentiment de progression.
  • Augmenter l'engagement en mettant en avant les différents systèmes de votre jeu et en récompensant les joueurs pour les avoir utilisés.

Obtenir le pack

La Boutique du Créateur est un onglet du Toolbox que vous pouvez utiliser pour trouver tous les actifs créés par Roblox et la communauté Roblox pour une utilisation dans vos projets, y compris des modèles, images, maillages, audio, plugins, vidéos et actifs de police. Vous pouvez utiliser la Boutique du Créateur pour ajouter un ou plusieurs actifs directement dans une expérience ouverte, y compris des packs de fonctionnalités !

Chaque pack de fonctionnalités nécessite le pack de fonctionnalités Core pour fonctionner correctement. Une fois que les actifs des packs de fonctionnalités Core et Missions sont dans votre inventaire, vous pouvez les réutiliser dans n'importe quel projet sur la plateforme.

Pour obtenir les packs de votre inventaire dans votre expérience :

  1. Dans le menu Fenêtre de Studio ou dans la barre d'outils de l'onglet Accueil, ouvrez la Toolbox.

  2. Dans la fenêtre Toolbox, cliquez sur l'onglet Inventaire. Le tri Mes modèles s'affiche.

    Fenêtre Toolbox de Studio avec l'onglet Inventaire mis en surbrillance.
  3. Cliquez sur le carreau Pack de fonctionnalités Core, puis sur le carreau Pack de fonctionnalités Missions. Les deux dossiers de pack s'affichent dans la fenêtre Explorer.

  4. Faites glisser les dossiers de pack dans ReplicatedStorage.

Définir des missions

Chaque mission complétable comprend un ensemble de tâches qui doivent être terminées pour achever la mission, des options de configuration et des métadonnées d'affichage optionnelles, le tout pouvant être défini dans ReplicatedStorage.Missions.Configs.Missions, avec des types exportés depuis le script Types dans le même dossier.

Champs requis

Les champs suivants sont requis pour chaque mission.

NomTypeDescription
missionIdstringLa clé principale de la table Missions. Toutes les missions sont identifiées par leur propre chaîne unique.
categoryIdstringLes missions doivent appartenir à une catégorie et sont regroupées par catégorie dans l'interface utilisateur.
taskstableUne liste de tâches que le joueur doit terminer pour achever la mission.

Conditions de déblocage

Par défaut, les missions sont débloquées pour les joueurs automatiquement et peuvent être complétées une seule fois. Cependant, vous pouvez utiliser les options de configuration optionnelles suivantes pour modifier ce comportement.

NomTypeDescription
prerequisitestableUne liste d'autres missionIds qui doivent être complétées avant que la mission puisse être déverrouillée.
manualOnlyboolDésactive le déblocage automatique de la mission. Au lieu de cela, une fonction doit être appelée pour déverrouiller la mission. Toutes les autres conditions de déblocage doivent également être remplies.
availableAfterUtcboolLa mission ne peut pas être déverrouillée avant l'heure spécifiée en UTC.
availableBeforeUtcboolLa mission ne peut pas être déverrouillée après l'heure spécifiée en UTC. Si elle est déverrouillée mais non complétée avant cette heure, la mission échouera.
repeatableboolLa mission devient déverrouillée à nouveau après avoir été complétée.
repeatLimitnumberSi la mission est répétable, elle ne peut pas être répétée plus de ce nombre de fois.
repeatCooldownSecondsnumberSi la mission est répétable, il y a un délai avant qu'elle ne devienne déverrouillée.
expireSecondsnumberSi la mission est déverrouillée et non complétée dans le nombre spécifié de secondes, elle échouera à la place.
expireCountOfflineboolSi la mission a expireSeconds et que expireCountOffline est défini sur true, le temps pendant que le joueur n'est pas réellement dans l'expérience sera compté pour l'expiration de la mission.

Métadonnées

Les missions disposent de métadonnées qui spécifient comment elles seront affichées dans l'interface utilisateur des missions. Vous pouvez utiliser les champs optionnels suivants pour personnaliser ses métadonnées.

NomTypeDescription
displayNamestringUn nom à afficher pour la mission dans l'interface utilisateur au lieu de missionId.
descriptionstringUn bloc de texte plus long qui fournit des informations supplémentaires ou un contexte sur la mission.
visibleAfterCompleteboolSi défini sur true, la mission apparaîtra dans la liste des missions même après avoir été complétée mais marquée comme complétée.
visibleAfterFailedboolSi défini sur true, la mission apparaîtra dans la liste des missions même après avoir échoué mais marquée comme ayant échoué.
visibleBeforeUnlockedboolSi défini sur true, la mission sera visible mais verrouillée dans la liste des missions avant d'être disponible pour être complétée.
invisibleWhileActiveboolSi défini sur true, la mission sera invisible même lorsqu'elle est activement en cours.
rewardstableUne liste d'informations d'affichage des récompenses.
  • assetID (number) - L'ID de l'image qui s'affiche dans l'interface utilisateur des missions sous les récompenses d'une quête. Ceci est requis si une récompense est présente.
  • displayName (string) - Le nom qui s'affiche dans l'interface utilisateur des missions sous l'icône.

Définir des tâches

Chaque mission peut avoir zéro ou plusieurs tâches. Si une mission a zéro tâche, elle est réclamable immédiatement après avoir été déverrouillée ; si une mission a une ou plusieurs tâches, une fois les tâches complété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 déclinent en deux types :

  • Tâches chronométrées - Vous permettent de démarrer et d'arrêter la tâche à différents moments. Une certaine quantité de temps doit s'écouler pendant que le chronomètre de la tâche est en marche, puis la tâche est complète.
  • Tâches de comptage - Vous permettent d'ajouter ou de définir la progression de la tâche. Lorsque la progression atteint une valeur définie, la tâche est complète.

Les deux types de tâches partagent les champs suivants :

NomTypeDescription
taskTypestringSpécifie si le type de tâche est de comptage ou chronométrée.
counterobject(Optionnel) Le compteur que cette tâche suit. Les compteurs sont des mémoires persistantes spécifiques au joueur pour un nombre ou un chronomètre. Plusieurs tâches peuvent suivre un seul compteur ; par exemple, si plusieurs tâches suivent combien de pièces un joueur a collectées, elles peuvent toutes partager le même compteur "coins". Ces tâches peuvent suivre indépendamment de nouvelles pièces collectées, en partant de zéro, ou continuer à compter à partir de la valeur du compteur (toutes les pièces déjà collectées).
  • counterId (string) - L'ID du compteur à suivre. Utilisez cet ID pour obtenir ou définir la valeur du compteur.
  • continueFromCounter (Optionnel bool) - Si défini sur true, la progression de la tâche correspondra directement à la valeur du compteur plutôt qu'à la quantité qu'il a augmentée.
metadataobject(Optionnel) Informations sur la manière dont la tâche s'affiche dans l'interface utilisateur.
  • displayName (string) - Nom de la tâche, utilisé lorsqu'il est affiché dans l'interface utilisateur.
  • numericType (Optionnel string) - comment le numéro de progression dans la tâche doit être affiché.
    • Fraction, ex. 5/10 ou 5k/50k
    • Pourcentage, ex. 50% ou 10%
    • LongFraction, ex. 5/10 ou 5000/50000
    • Booléen, ex. Incomplet
callToActionobject(Optionnel) Un bouton qui déclenche une fonction de rappel.
  • callback (function) - Fonction déclenchée par le bouton callToAction.
  • buttonText (string) - Le texte affiché dans l'interface utilisateur du bouton.

Champs des tâches de comptage

Les tâches de comptage ont une valeur requise. Lorsque la progression de la tâche atteint ce montant, la tâche est complète.

NomTypeDescription
goalCountnumber(Optionnel) La progression requise pour compléter la tâche.

Champs des tâches chronométrées

Les tâches chronométrées ont un montant cible de temps passé et sont démarrées et arrêtées. Lorsque le montant cible de temps est atteint, la tâche est complète.

NomTypeDescription
goalSecondsnumberLe nombre de secondes qui doivent s'écouler pour compléter la tâche.
startImmediatelyboolSi la tâche doit commencer à compter le temps dès qu'elle est déverrouillée, plutôt qu'après avoir été démarrée.
includesOfflineTimeboolSi 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 besoin d'être explicitement définies pour être utilisées, car la catégorie d'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 des CategoryIds uniques, les mêmes que ceux référencés dans la configuration des missions.

NomTypeDescription
repeatDelaySecondsnumber(Optionnel) Si défini, toutes les missions de la catégorie sont réinitialisées chaque fois que le temps spécifié s'écoule, et peuvent être déverrouillées, complétées, et leurs récompenses peuvent à nouveau être réclamées. Ceci est distinct des missions répétables, qui sont répétables dans le cadre d'une répétition de catégorie donnée.

Intégrer la logique serveur

Consultez ReplicatedStorage.Missions.Server.Examples.MissionsExample, qui montre comment votre serveur interagira avec le pack de fonctionnalités Missions.

Vous devez principalement relier quatre choses après avoir glissé le pack de fonctionnalités Missions dans votre expérience :

  1. Définissez les missions dans votre configuration de missions.

  2. Ajoutez de la logique à votre expérience pour mettre à jour la progression des tâches ou les compteurs auxquels la progression est liée.

    README

    -- Augmente la progression sur une mission Saut avec une tâche Saut
    Missions.addProgressToTask(player, "Saut", "Sauts", 1)
    -- Démarre le chronomètre sur une mission Temps de combat avec une tâche Temps sous le feu
    Missions.startTimedTask(player, "Temps de combat", "Temps sous le feu")
    -- Arrête le chronomètre sur une mission Temps de combat avec une tâche Temps sous le feu
    Missions.stopTimedTask(player, "Temps de combat", "Temps sous le feu")
    -- Augmente la progression sur toutes les tâches liées au compteur Sauts
    CounterSystem.addCounter(player, "Sauts", 1)
    -- Démarre le chronomètre sur toutes les tâches chronométrées liées au compteur Temps sous le feu
    CounterSystem.startTimer(player, "Temps sous le feu")
    -- Arrête le chronomètre sur toutes les tâches chronométrées liées au compteur Temps sous le feu
    CounterSystem.stopTimer(player, "Temps sous le feu")
  3. Définissez des gestionnaires de complétion de mission, et éventuellement des gestionnaires de déblocage ou d'échec. Utilisez le gestionnaire de complétion pour récompenser les récompenses de la mission dans votre expérience.

    README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} a complété la mission {missionId}`)
    -- Récompensez le joueur avec ses récompenses.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Déverrouillez les missions qui ne sont pas déverrouillées automatiquement. La logique du pack de fonctionnalités Missions garantit que toutes les exigences de la mission sont remplies avant que la mission ne soit complète, et que ses récompenses soient récupérables.

    README

    Missions.unlockMission(player, "Manuel")

Configurer les constantes

Les constantes pour le pack de fonctionnalités Core se trouvent à deux endroits :

  • Les constantes partagées se trouvent dans ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.

  • Les constantes spécifiques au pack, dans ce cas le pack de fonctionnalités Missions, se trouvent dans ReplicatedStorage.Missions.Configs.Constants.

De plus, vous pouvez trouver des chaînes pour la traduction regroupées en un seul endroit : ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Personnaliser les composants de l'interface utilisateur

En modifiant les objets du pack, tels que les couleurs, la police, et la transparence, vous pouvez ajuster la présentation visuelle de votre interface utilisateur de 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 pour les missions qui n'ont qu'une seule tâche.

De plus, si votre expérience a déjà une interface utilisateur existante que vous souhaitez intégrer au pack de fonctionnalités Missions, le script de module client ModuleScript MissionsClient contient toutes les fonctions nécessaires pour obtenir les informations sur les missions d'un joueur envoyées par le serveur.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.