Pacchetto Missioni

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Il pacchetto di funzionalità Missioni offre funzionalità pronte all'uso per creare missioni che i giocatori possono completare per ottenere ricompense e progredire nel tuo gioco. Tutte le missioni devono avere un ID, una categoria e un elenco di compiti che i giocatori devono completare per terminare la missione. Tuttavia, l'elenco dei compiti può essere vuoto, consentendo di richiedere immediatamente le ricompense della missione.

Utilizzando le opzioni di personalizzazione del pacchetto, puoi personalizzare tutte le missioni per soddisfare i tuoi requisiti di gioco unici, come ad esempio:

  • Creare missioni che introducono i nuovi giocatori nel tuo gioco e migliorano la retention D1.
  • Mirare alla retention D7 e D30 aggiungendo obiettivi a medio e lungo termine e un senso di progressione.
  • Aumentare il coinvolgimento mettendo in evidenza i vari sistemi nel tuo gioco e premiando i giocatori per interagire con essi.

Ottieni il pacchetto

Il Creator Store è una scheda della Toolbox che puoi utilizzare per trovare tutte le risorse create da Roblox e dalla comunità di Roblox per l'uso nei tuoi progetti, inclusi modelli, immagini, mesh, audio, plugin, video e risorse font. Puoi utilizzare il Creator Store per aggiungere una o più risorse direttamente in un gioco aperto, inclusi i pacchetti di funzionalità!

Ogni pacchetto di funzionalità richiede il pacchetto di funzionalità Core per funzionare correttamente. Una volta che le risorse del pacchetto di funzionalità Core e Missioni sono nel tuo inventario, puoi riutilizzarle in qualsiasi progetto sulla piattaforma.

Per ottenere i pacchetti dal tuo inventario nel tuo gioco:

  1. Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri la Toolbox.

  2. Nella finestra Toolbox, fai clic sulla scheda Inventario. La visualizzazione I Miei Modelli viene mostrata.

    Finestra Toolbox di Studio con la scheda Inventario evidenziata.
  3. Fai clic sulla tile Pacchetto di Funzionalità Core, quindi sulla tile Pacchetto di Funzionalità Missioni. Entrambe le cartelle del pacchetto vengono visualizzate nella finestra Explorer.

  4. Trascina le cartelle del pacchetto in ReplicatedStorage.

Definisci le missioni

Ogni missione completabile include un insieme di compiti che devono essere completati per completare la missione, opzioni di configurazione e metadati di visualizzazione facoltativi, tutti i quali possono essere definiti all'interno di ReplicatedStorage.Missions.Configs.Missions, con tipi esportati dallo script Types nella stessa cartella.

Campi richiesti

I seguenti campi sono richiesti per ogni missione.

NomeTipoDescrizione
missionIdstringLa chiave principale della tabella Missioni. Tutte le missioni sono identificate dalla loro stringa unica.
categoryIdstringLe missioni devono appartenere a una categoria e sono raggruppate per categoria nell'interfaccia utente.
taskstableUn elenco di compiti che il giocatore deve completare per completare la missione.

Condizioni di sblocco

Per impostazione predefinita, le missioni vengono sbloccate automaticamente per i giocatori e possono essere completate esattamente una volta. Tuttavia, puoi utilizzare le seguenti opzioni di configurazione facoltative per modificare questo comportamento.

NomeTipoDescrizione
prerequisitestableUn elenco di altri missionId che devono essere completati prima che la missione possa essere sbloccata.
manualOnlyboolDisabilita lo sblocco automatico della missione. Invece, deve essere chiamata una funzione per sbloccare la missione. Qualsiasi altra condizione di sblocco deve comunque essere soddisfatta.
availableAfterUtcboolLa missione non può essere sbloccata prima dell'orario specificato in UTC.
availableBeforeUtcboolLa missione non può essere sbloccata dopo l'orario specificato in UTC. Se viene sbloccata ma non completata prima di questo orario, la missione verrà considerata fallita.
repeatableboolLa missione viene sbloccata di nuovo dopo essere stata completata.
repeatLimitnumberSe la missione è ripetibile, non può essere ripetuta più di questo numero di volte.
repeatCooldownSecondsnumberSe la missione è ripetibile, c'è un ritardo prima che venga sbloccata.
expireSecondsnumberSe la missione è sbloccata e non completata entro il numero specificato di secondi, allora fallirà.
expireCountOfflineboolSe la missione ha expireSeconds e expireCountOffline è impostato su true, il tempo in cui il giocatore non è effettivamente nel gioco verrà conteggiato per l'espirazione della missione.

Metadati

Le missioni hanno metadati che specificano come verranno visualizzate nell'interfaccia utente delle Missioni. Puoi utilizzare i seguenti campi facoltativi per personalizzare i suoi metadati.

NomeTipoDescrizione
displayNamestringUn nome da visualizzare per la missione nell'interfaccia utente invece di missionId.
descriptionstringUn blocco di testo più lungo che fornisce informazioni o contesto aggiuntivi sulla missione.
visibleAfterCompleteboolSe impostato su true, la missione apparirà nell'elenco delle missioni anche dopo essere stata completata, ma contrassegnata come completata.
visibleAfterFailedboolSe impostato su true, la missione apparirà nell'elenco delle missioni anche dopo essere fallita, ma contrassegnata come fallita.
visibleBeforeUnlockedboolSe impostato su true, la missione sarà visibile ma bloccata nell'elenco delle missioni prima di essere disponibile per il completamento.
invisibleWhileActiveboolSe impostato su true, la missione sarà invisibile anche mentre è attivamente in corso.
rewardstableUn elenco di informazioni sulla visualizzazione delle ricompense.
  • assetID (number) - L'ID dell'immagine che viene visualizzato nell'interfaccia utente delle missioni sotto le ricompense per una missione. Questo è richiesto se è presente una ricompensa.
  • displayName (string) - Il nome che viene visualizzato nell'interfaccia utente delle missioni sotto l'icona.

Definisci i compiti

Ogni missione può avere zero o più compiti. Se una missione ha zero compiti, è immediatamente richiedibile dopo essere stata sbloccata; se una missione ha uno o più compiti, una volta completati i compiti, il giocatore può raccogliere eventuali ricompense associate alla missione. Ogni compito ha un taskId, che è la chiave associata al compito per una data missione.

I compiti si dividono in due tipi:

  • Compiti a Tempo - Ti consente di avviare e fermare il compito in diversi momenti. Deve passare un certo periodo di tempo mentre il timer del compito è in esecuzione, quindi il compito è completo.
  • Compiti di Conteggio - Ti consente di aggiungere o impostare il progresso del compito. Quando il progresso raggiunge un valore impostato, il compito è completo.

Entrambi i tipi di compiti condividono i seguenti campi:

NomeTipoDescrizione
taskTypestringSpecifica se il tipo di compito è di conteggio o a tempo.
counterobject(Facoltativo) Il contatore che questo compito tiene traccia. I contatori sono archiviazione persistente specifica per il giocatore per un numero o un timer. Più compiti possono tenere traccia di un singolo contatore; ad esempio, se più di un compito tiene traccia di quanti gettoni un giocatore ha raccolto, possono tutti condividere lo stesso contatore "gettoni". Questi compiti possono tenere traccia in modo indipendente dei nuovi gettoni raccolti, partendo da zero, o continuare a contare dal valore del contatore (tutti i gettoni già raccolti).
  • counterId (string) - L'ID del contatore da tenere traccia. Usa questo ID per ottenere o impostare il valore del contatore.
  • continueFromCounter (Facoltativo bool) - Se impostato su true, il progresso del compito corrisponderà direttamente al valore del contatore piuttosto che all'importo che è aumentato.
metadataobject(Facoltativo) Informazioni su come il compito viene visualizzato nell'interfaccia utente.
  • displayName (string) - Nome del compito, utilizzato quando viene mostrato nell'interfaccia utente.
  • numericType (Facoltativo string) - come il numero di progresso nel compito dovrebbe essere visualizzato.
    • Frazione, es. 5/10 o 5k/50k
    • Percentuale, es. 50% o 10%
    • LongFraction, es. 5/10 o 5000/50000
    • Booleano, es. Incompleto
callToActionobject(Facoltativo) Un pulsante che attiva una funzione di callback.
  • callback (function) - Funzione attivata dal pulsante callToAction.
  • buttonText (string) - Il testo che viene visualizzato nell'interfaccia utente del pulsante.

Campi dei compiti di conteggio

I compiti di conteggio hanno un valore richiesto. Quando il progresso del compito raggiunge questo importo, il compito è completo.

NomeTipoDescrizione
goalCountnumber(Facoltativo) Il progresso richiesto per completare il compito.

Campi dei compiti a tempo

I compiti a tempo hanno un importo target di tempo trascorso e vengono avviati e fermati. Quando l'importo target di tempo è raggiunto, il compito è completo.

NomeTipoDescrizione
goalSecondsnumberIl numero di secondi che devono passare per completare il compito.
startImmediatelyboolSe il compito dovrebbe iniziare a contare il tempo non appena viene sbloccato, piuttosto che solo dopo essere stato avviato.
includesOfflineTimeboolSe il compito dovrebbe includere il tempo trascorso mentre il giocatore non è attivamente nel gioco.

Configura le categorie

Le categorie non devono essere definite esplicitamente per essere utilizzate, poiché la categoria per una missione ha valori predefiniti che verranno utilizzati. Tuttavia, puoi configurare questi valori in ReplicatedStorage.Missions.Configs.Categories per aggiungere effetti aggiuntivi alla categoria. Le categorie sono identificate da CategoryIds unici, gli stessi riferiti nella configurazione delle missioni.

NomeTipoDescrizione
repeatDelaySecondsnumber(Facoltativo) Se impostato, tutte le missioni nella categoria vengono ripristinate ogni volta che passa l'importo di tempo specificato e possono essere sbloccate, completate e le loro ricompense reclamate di nuovo. Questo è separato dalle missioni ripetibili, che sono ripetibili all'interno di un dato ripetizione di categoria.

Integra la logica del server

Dai un'occhiata a ReplicatedStorage.Missions.Server.Examples.MissionsExample, che mostra come il tuo server interagirà con il pacchetto di funzionalità Missioni.

Devi principalmente collegare quattro cose una volta trascinato il pacchetto di funzionalità Missioni nel tuo gioco:

  1. Definisci le missioni nella tua configurazione delle missioni.

  2. Aggiungi logica al tuo gioco per aggiornare il progresso dei compiti o i contatori a cui è legato il progresso.

    README
    -- Aumenta il progresso su una missione Salto con un compito Salti
    Missions.addProgressToTask(player, "Salto", "Salti", 1)
    -- Avvia il timer su una missione Tempo di Combattimento con un compito TempoInBattaglia
    Missions.startTimedTask(player, "Tempo di Combattimento", "TempoInBattaglia")
    -- Ferma il timer su una missione Tempo di Combattimento con un compito TempoInBattaglia
    Missions.stopTimedTask(player, "Tempo di Combattimento", "TempoInBattaglia")
    -- Aumenta il progresso su tutti i compiti legati al contatore Salti
    CounterSystem.addCounter(player, "Salti", 1)
    -- Avvia il timer su tutti i compiti a tempo legati al contatore TempoInBattaglia
    CounterSystem.startTimer(player, "TempoInBattaglia")
    -- Ferma il timer su tutti i compiti a tempo legati al contatore TempoInBattaglia
    CounterSystem.stopTimer(player, "TempoInBattaglia")
  3. Imposta i gestori di completamento delle missioni e, facoltativamente, i gestori di sblocco o fallimento. Usa il gestore di completamento per premiare i ricompensi dalla missione nel tuo gioco.

    README
    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} ha completato la missione {missionId}`)
    -- Premia il giocatore con le loro ricompense.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Sblocca le missioni che non vengono sbloccate automaticamente. La logica del pacchetto di funzionalità Missioni garantisce che tutti i requisiti della missione siano soddisfatti prima che la missione sia completata e le sue ricompense siano collezionabili.

    README
    Missions.unlockMission(player, "Manuale")

Configura le costanti

Le costanti per il pacchetto di funzionalità Core si trovano in due posti:

  • Le costanti condivise si trovano in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.

  • Le costanti specifiche del pacchetto, in questo caso il pacchetto di funzionalità Missioni, si trovano in ReplicatedStorage.Missions.Configs.Constants.

Inoltre, puoi trovare le stringhe per la traduzione suddivise in un'unica posizione: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Personalizza i componenti dell'interfaccia utente

Modificando gli oggetti del pacchetto, come colori, font e trasparenza, puoi regolare la presentazione visiva della tua interfaccia utente delle missioni. Ad esempio, in ReplicatedStorage.Missions.Configs.Constants, puoi abilitare SingleTaskMode per visualizzare una barra di progresso per un compito direttamente sulla missione stessa per le missioni che hanno solo un singolo compito.

Inoltre, se il tuo gioco ha già un'interfaccia utente esistente che desideri integrare con il pacchetto di funzionalità Missioni, il ModuleScript client MissionsClient contiene tutte le funzioni necessarie per ottenere le informazioni sulle missioni di un giocatore inviate dal server.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.