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:
- Deneyiminizde yeni oyuncuları yeni başlayanlar için tanıtan görevler oluşturmak ve D1 bağlılık'ı artırmak.
- Orta ve uzun vadeli hedefler ekleyerek D7 ve D30 bağlılığını hedeflemek.
- Katılımı artırmak için oyununuzdaki çeşitli sistemleri öne çıkarıp oyuncuların onlarla etkileşimde bulunmaları için ödüllendirmek.

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:
Aşağıdaki bileşen setindeki Envantere Ekle bağlantısına tıklayarak Studio'daki Core ve Görevler'i envanterinize ekleyin.
Studio'nun Pencere menüsünden veya Ana Sayfa sekmesi araç çubuğundan Araç Kutusunu açın.
Araç Kutusu penceresinde, Envanter sekmesine tıklayın. Modellerim sıralaması görüntülenir.

Ö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.
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.
| Ad | Tür | Açıklama |
|---|---|---|
| missionId | string | Ana Görevler tablosu anahtarı. Tüm görevler kendilerine özgü string ile tanımlanır. |
| categoryId | string | Görevler bir kategoriye ait olmalıdır ve kullanıcı arayüzünde kategoriye göre gruplandırılır. |
| tasks | table | Oyuncunun 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.
| Ad | Tür | Açıklama |
|---|---|---|
| prerequisites | table | Görev kilitlenmeden önce tamamlanması gereken diğer missionIds listesidir. |
| manualOnly | bool | Gö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. |
| availableAfterUtc | bool | Görev belirtilen UTC zamanından önce kilitlenemez. |
| availableBeforeUtc | bool | Görev belirtilen UTC zamanından sonra kilitlenemez. Eğer kilitlenirse ama belirtilen zamandan önce tamamlanmazsa, görev başarısız olur. |
| repeatable | bool | Görev tamamlandıktan sonra tekrar kilitlenir. |
| repeatLimit | number | Eğer görev tekrarlanabilir ise, bu kadar çok kez tekrar edilemez. |
| repeatCooldownSeconds | number | Eğer görev tekrarlanabilir ise, tekrar kilitlenmeden önce bir gecikme vardır. |
| expireSeconds | number | Eğer görev kilitlenirse ve belirtilen saniye sayısında tamamlanmazsa, o zaman başarısız olur. |
| expireCountOffline | bool | Eğ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.
| Ad | Tür | Açıklama |
|---|---|---|
| displayName | string | Kullanıcı arayüzünde görev için görüntülenecek bir isim, missionId yerine görüntülenir. |
| description | string | Görev hakkında ek bilgi veya bağlam sağlayan daha uzun bir metin bloğu. |
| visibleAfterComplete | bool | True olarak ayarlandığında, görev tamamlandıktan sonra bile görevler listesinde gösterilecek ancak tamamlanmış olarak işaretlenecektir. |
| visibleAfterFailed | bool | True 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. |
| visibleBeforeUnlocked | bool | True olarak ayarlandığında, görev, tamamlanmak için mevcut olmadan önce görevler listesinin kilitli ancak görünür olacaktır. |
| invisibleWhileActive | bool | True olarak ayarlandığında, görev aktif olarak ilerleme kaydedilse bile görünmez olacaktır. |
| rewards | table | Ödül görüntüleme bilgileri listesi.
|
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:
| Ad | Tür | Açıklama |
|---|---|---|
| taskType | string | Görev türünün sayım mı yoksa zamanlı olduğunu belirtir. |
| counter | object | (İ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).
|
| metadata | object | (İsteğe bağlı) Görevin UI'da nasıl görüntüleneceğine dair bilgiler.
|
| callToAction | object | (İsteğe bağlı) Bir geri çağırma işlevini tetikleyen bir düğme.
|
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.
| Ad | Tür | Açıklama |
|---|---|---|
| goalCount | number | (İ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.
| Ad | Tür | Açıklama |
|---|---|---|
| goalSeconds | number | Görevi tamamlamak için gereken saniye sayısı. |
| startImmediately | bool | Görev kilitlenir kilitlenmez zaman saymaya başlayacak şekilde ayarlanmalıdır; yalnızca başlatıldığında değil. |
| includesOfflineTime | bool | Oyuncu 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.
| Ad | Tür | Açıklama |
|---|---|---|
| repeatDelaySeconds | number | (İ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:
Görev yapılandırma ayarlarınızı tanımlayın.
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ırMissions.addProgressToTask(player, "Jumping", "Jumps", 1)-- TimeInBattle görevinde BattlingTime görevinin zamanlayıcısını başlatırMissions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- TimeInBattle görevinde BattlingTime görevinin zamanlayıcısını durdururMissions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- Jumps sayacıyla bağlı tüm görevlerde ilerlemeyi artırırCounterSystem.addCounter(player, "Jumps", 1)-- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı başlatırCounterSystem.startTimer(player, "TimeInBattle")-- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı durdururCounterSystem.stopTimer(player, "TimeInBattle")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.
READMElocal function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} görev {missionId} tamamlandı`)-- Oyuncuya ödüllerini ver.endMissions.setCompletionHandler(missionId, completeHandler)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.
READMEMissions.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.