Görevler paketi

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Görevler özellik paketi, oyuncuların ödüller kazanmak ve deneyiminizde ilerlemek için tamamlayabileceği görevler oluşturmak için hazır işlevsellik sunar. Tüm görevlerin bir ID, kategori ve oyuncuların görevi tamamlamak için tamamlaması gereken bir görevler listesi olmalıdır. Ancak, görevler listesi boş olabilir, bu da görevin ödüllerinin hemen talep edilmesine olanak tanır.

Paketin özelleştirme seçeneklerini kullanarak, tüm görevleri benzersiz oyun deneyimi gereksinimlerinize uyacak şekilde kişiselleştirebilirsiniz, örneğin:

Paketi alın

Yaratıcı Mağaza, projelerinizde kullanılmak üzere Roblox ve Roblox topluluğu tarafından oluşturulan tüm varlıkları bulabileceğiniz Araç Kutusu'nun bir sekmesidir; model, resim, ağ, ses, eklenti, video ve yazı tipi varlıklarını içerir. Özellik paketleri de dahil olmak üzere bir veya daha fazla varlığı açık bir deneyime doğrudan eklemek için Yaratıcı Mağaza'yı kullanabilirsiniz!

Her özellik paketi, doğru çalışması için Core özellik paketini gerektirir. Core ve Görevler özellik paketi varlıkları envanterinizde olduğunda, bunları platformdaki herhangi bir projede yeniden kullanabilirsiniz.

Envanterinizdeki paketleri deneyiminize almak için:

  1. Studio'nun Pencere menüsünden veya Ana Sayfa sekmesi araç çubuğundan Araç Kutusunu açın.

  2. Araç Kutusu penceresinde, Envanter sekmesine tıklayın. Modellerim sıralaması görüntülenir.

    Studio'nun Araç Kutusu penceresi, Envanter sekmesi vurgulanmış.
  3. Özellik Paketi Core karosuna, ardından Görevler Özellik Paketi karosuna tıklayın. Her iki paket klasörü de Keşfedin penceresinde görüntülenir.

  4. Paket klasörlerini ReplicatedStorage içine sürükleyin.

Görevleri tanımlayın

Her tamamlanabilir görev, görevi tamamlamak için bitirilmesi gereken bir görevler seti, yapılandırma seçenekleri ve isteğe bağlı görüntüleme meta verileri içerir; bunların tümü ReplicatedStorage.Missions.Configs.Missions içinde tanımlanabilir ve türler, aynı klasörde bulunan Types komut dosyasından dışa aktarılabilir.

Gereken alanlar

Her görev için aşağıdaki alanlar gereklidir.

AdTürAçıklama
missionIdstringAna Görevler tablosu anahtarı. Tüm görevler kendilerine özgü string ile tanımlanır.
categoryIdstringGörevler bir kategoriye ait olmalıdır ve kullanıcı arayüzünde kategoriye göre gruplandırılır.
taskstableOyuncunun görevi tamamlamak için bitirmesi gereken görevlerin listesi.

Kilitlenme koşulları

Varsayılan olarak, görevler oyuncular için otomatik olarak kilitsizdir ve yalnızca bir kez tamamlanabilir. Ancak, bu davranışı değiştirmek için aşağıdaki isteğe bağlı yapılandırma seçeneklerini kullanabilirsiniz.

AdTürAçıklama
prerequisitestableGörev kilitlenmeden önce tamamlanması gereken diğer missionIds listesidir.
manualOnlyboolGörevin otomatik kilitlenmesini devre dışı bırakır. Bunun yerine, görevi kilitlemek için bir fonksiyon çağrılmalıdır. Diğer kilitlenme koşullarının da karşılanması gerekmektedir.
availableAfterUtcboolGörev belirtilen UTC zamanından önce kilitlenemez.
availableBeforeUtcboolGörev belirtilen UTC zamanından sonra kilitlenemez. Eğer kilitlenirse ama belirtilen zamandan önce tamamlanmazsa, görev başarısız olur.
repeatableboolGörev tamamlandıktan sonra tekrar kilitlenir.
repeatLimitnumberEğer görev tekrarlanabilir ise, bu kadar çok kez tekrar edilemez.
repeatCooldownSecondsnumberEğer görev tekrarlanabilir ise, tekrar kilitlenmeden önce bir gecikme vardır.
expireSecondsnumberEğer görev kilitlenirse ve belirtilen saniye sayısında tamamlanmazsa, o zaman başarısız olur.
expireCountOfflineboolEğer görevde expireSeconds varsa ve expireCountOffline true olarak ayarlandıysa, oyuncu deneyimde değilken geçen zaman görev süresinin sona ermesine sayılacaktır.

Meta veriler

Görevlerin, Görevler kullanıcı arayüzünde nasıl görüntüleneceğini belirten meta verileri vardır. Aşağıdaki isteğe bağlı alanları kullanarak meta verilerini özelleştirebilirsiniz.

AdTürAçıklama
displayNamestringKullanıcı arayüzünde görev için görüntülenecek bir isim, missionId yerine görüntülenir.
descriptionstringGörev hakkında ek bilgi veya bağlam sağlayan daha uzun bir metin bloğu.
visibleAfterCompleteboolTrue olarak ayarlandığında, görev tamamlandıktan sonra bile görevler listesinde gösterilecek ancak tamamlanmış olarak işaretlenecektir.
visibleAfterFailedboolTrue olarak ayarlandığında, görev başarısız olduktan sonra bile görevler listesinde gösterilecek ancak başarısız olarak işaretlenecektir.
visibleBeforeUnlockedboolTrue olarak ayarlandığında, görev, tamamlanmak için mevcut olmadan önce görevler listesinin kilitli ancak görünür olacaktır.
invisibleWhileActiveboolTrue olarak ayarlandığında, görev aktif olarak ilerleme kaydedilse bile görünmez olacaktır.
rewardstableÖdül görüntüleme bilgileri listesi.
  • assetID (number) - Görev için ödüller altında görevler UI'sinde görüntülenen resim ID'si. Ödül mevcutsa bu gereklidir.
  • displayName (string) - İkonun altında görevler UI'sinde görüntülenen isim.

Görevleri tanımlayın

Her görev sıfır veya daha fazla göreve sahip olabilir. Eğer bir görev sıfır göreve sahipse, kilitlendikten hemen sonra talep edilebilir; eğer bir görev bir veya daha fazla göreve sahipse, görevler tamamlandığında oyuncu, görevle ilişkili ödülleri toplayabilir. Her görevin bir taskId'si vardır; bu, belirli bir görev için görevle ilişkili anahtarını belirtir.

Görevler iki türde gelir:

  • Zamanlı Görevler - Görevi farklı zamanlarda başlayıp durdurmanıza olanak tanır. Görevin zamanlayıcısı çalışırken belirli bir süre geçmeli, ardından görev tamamlanır.
  • Sayım Görevleri - Görevin ilerlemesini eklemenize veya ayarlamanıza olanak tanır. İlerleme belirlenen bir değere ulaştığında, görev tamamlanır.

Her iki görev türü de aşağıdaki alanları paylaşır:

AdTürAçıklama
taskTypestringGörev türünün sayım mı yoksa zamanlı olduğunu belirtir.
counterobject(İsteğe bağlı) Bu görevin takip ettiği sayaç. Sayacılar, bir sayının veya zamanlayıcının kalıcı depolamasıdır. Birden fazla görev, bir sayacıyı takip edebilir; örneğin, birden fazla görev bir oyuncunun topladığı madeni para sayısını takip ediyorsa, hepsi aynı “madeni paralar” sayacını paylaşabilir. Bu görevler, sıfırdan başlayarak yeni toplanan madeni paraları bağımsız olarak takip edebilir veya sayaç değeri üzerinden saymaya devam edebilir (zaten toplanmış tüm madeni paralar).
  • counterId (string) - Takip edilen sayacının kimliği. Bu kimliği sayacının değerini almak veya ayarlamak için kullanın.
  • continueFromCounter (İsteğe bağlı bool) - True olarak ayarlandığında, görev ilerlemesi doğrudan sayacın değerine eşit olacaktır.
metadataobject(İsteğe bağlı) Görevin UI'da nasıl görüntüleneceğine dair bilgiler.
  • displayName (string) - UI'da gösterildiğinde görevin ismi.
  • numericType (İsteğe bağlı string) - Görevdeki ilerleme sayısının nasıl görüntülenmesi gerektiği.
    • Kesir, örn. 5/10 veya 5k/50k
    • Yüzde, örn. 50% veya 10%
    • Uzun Kesir, örn. 5/10 veya 5000/50000
    • Boolean, örn. Tamamlanmadı
callToActionobject(İsteğe bağlı) Bir geri çağırma işlevini tetikleyen bir düğme.
  • callback (function) - callToAction düğmesi tarafından tetiklenen işlev.
  • buttonText (string) - Düğme UI'sinde görüntülenen metin.

Sayım görevleri alanları

Sayım görevlerinin gerekli bir değeri vardır. Görev ilerlemesi bu miktara ulaşırsa, görev tamamlanır.

AdTürAçıklama
goalCountnumber(İsteğe bağlı) Görevi tamamlamak için gereken ilerleme.

Zaman görevleri alanları

Zaman görevleri, harcanması gereken hedef bir süreye sahiptir ve başlatılıp durdurulur. Hedef süre dolduğunda, görev tamamlanır.

AdTürAçıklama
goalSecondsnumberGörevi tamamlamak için gereken saniye sayısı.
startImmediatelyboolGörev kilitlenir kilitlenmez zaman saymaya başlayacak şekilde ayarlanmalıdır; yalnızca başlatıldığında değil.
includesOfflineTimeboolOyuncu aktif olarak deneyimde değilken harcanan zamanın dahil edilip edilmeyeceğini belirler.

Kategorileri yapılandırın

Kategoriler, kullanılmak üzere açıkça tanımlanmalarına gerek yoktur, çünkü bir görevin kategorisi varsayılan değerleri kullanır. Ancak, bu değerleri ReplicatedStorage.Missions.Configs.Categories içinde yapılandırarak kategoriye ek etkiler ekleyebilirsiniz. Kategoriler, görevler yapılandırmasında referans verilen aynı benzersiz CategoryIds ile tanımlanır.

AdTürAçıklama
repeatDelaySecondsnumber(İsteğe bağlı) Ayarlanırsa, belirli bir zaman aralığında yineleyen sırayla sıfırlanan tüm görevler, yeniden kilitlenebilir, tamamlanabilir ve ödülleri yeniden talep edilebilir. Bu, verilen bir kategori tekrarı içinde tekrarlanabilir görevlerden ayrıdır.

Sunucu mantığını entegre edin

Görevler özellik paketiyle sunucunuzun nasıl etkileşimde bulunacağını gösteren ReplicatedStorage.Missions.Server.Examples.MissionsExample'a göz atın.

Görevler özellik paketini deneyiminize sürükledikten sonra dört şeyle bağlantı kurmanız gerekir:

  1. Görev yapılandırma ayarlarınızı tanımlayın.

  2. Görev ilerlemesini veya ilerlemenin bağlı olduğu sayaçları güncellemek için deneyiminize mantık ekleyin.

    README

    -- Jumps görevinde bir görev tamamlayarak ilerlemeyi artırır
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- TimeInBattle görevinde BattlingTime görevinin zamanlayıcısını başlatır
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- TimeInBattle görevinde BattlingTime görevinin zamanlayıcısını durdurur
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Jumps sayacıyla bağlı tüm görevlerde ilerlemeyi artırır
    CounterSystem.addCounter(player, "Jumps", 1)
    -- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı başlatır
    CounterSystem.startTimer(player, "TimeInBattle")
    -- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı durdurur
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Görev tamamlama işlemcilerini ayarlayın ve isteğe bağlı olarak kilitleme veya başarısızlık işlemcilerini ekleyin. Tamamlama işlemcisini, deneyiminizde görevin ödüllerini vermek için kullanın.

    README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} görev {missionId} tamamlandı`)
    -- Oyuncuya ödüllerini ver.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Otomatik olarak kilitlenmeyen görevleri kilitleyin. Görevler özellik paketi mantığı, görevin tamamlandığından emin olmak için tüm görev gerekliliklerinin karşılandığını kontrol eder ve ödüllerinin alınabilir olmasını sağlar.

    README

    Missions.unlockMission(player, "Manual")

Sabitleri yapılandırın

Core özellik paketi için sabitler iki yerde bulunur:

  • Paylaşılan sabitler ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants içinde yer alır.

  • Paket spesifik sabitler, bu durumda Görevler özellik paketi ise, ReplicatedStorage.Missions.Configs.Constants içinde bulunur.

Ayrıca, çevrimiçi diller için İfade dizilimini ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings içinde bulabilirsiniz.

UI bileşenlerini özelleştirin

Paket nesnelerini, renkler, yazı tipi ve saydamlık gibi nesneleri değiştirerek, görevler UI'sinin görsel sunumunu ayarlayabilirsiniz. Örneğin, ReplicatedStorage.Missions.Configs.Constants içinde, yalnızca bir görevi olan görevler için görevin kendisinde bir ilerleme çubuğu görüntülemek için SingleTaskMode'u etkinleştirebilirsiniz.

Ayrıca, deneyiminiz zaten mevcut bir UI'ye sahipse ve bunu Görevler özellik paketi ile entegre etmek istiyorsanız, istemci ModuleScript MissionsClient, sunucudan bir oyuncunun görevleri hakkında bilgi almak için gerekli tüm işlevleri içerir.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.