Görevler özellik paketi, oyuncuların tamamlayabileceği görevler oluşturarak ödüller kazanmasını ve oyununuzda ilerlemesini sağlamak için hazır işlevsellik sunar. Tüm görevlerin bir ID'si, kategorisi ve oyuncuların görevi tamamlamak için tamamlaması gereken bir görev listesi olmalıdır. Ancak, görev listesi boş olabilir, bu da görevin ödüllerinin hemen alınabilmesini sağlar.
Paketin özelleştirme seçeneklerini kullanarak, tüm görevleri benzersiz oyun deneyimi gereksinimlerinizi karşılayacak şekilde kişiselleştirebilirsiniz, örneğin:
- Oyuncuları oyununuzda yeni başlayanlar için görevlere yönlendirmek ve D1 tutma oranını artırmak.
- Orta ve uzun vadeli hedefler ekleyerek D7 ve D30 tutma oranlarını hedeflemek ve bir ilerleme hissi yaratmak.
- Oyuncuların oyundaki çeşitli sistemlerle etkileşimde bulunmalarını ödüllendirerek katılımı artırmak.

Paketi alın
Yaratıcı Mağaza, projelerinizde kullanılmak üzere Roblox ve Roblox topluluğu tarafından oluşturulan tüm varlıkları bulmak için kullanabileceğiniz Araç Kutusu'nun bir sekmesidir; model, resim, ağ, ses, eklenti, video ve yazı tipi varlıkları dahil. Yaratıcı Mağaza'yı, açık bir oyuna bir veya daha fazla varlık eklemek için kullanabilirsiniz; bu, özellik paketlerini de içerir!
Her özellik paketi, düzgün çalışması için Çekirdek özellik paketini gerektirir. Çekirdek ve Görevler özellik paketi varlıkları envanterinize alındıktan sonra, bunları platformdaki herhangi bir projede yeniden kullanabilirsiniz.
Envanterinizdeki paketleri oyununuzda almak için:
Aşağıdaki bileşenler setinde Envantere Ekle bağlantısına tıklayarak Çekirdek ve Görevler'i Studio içinde 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 Çekirdek 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 dizi görev, 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ördeki Types betiğinden dışa aktarılır.
Gerekli 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ü benzersiz bir dize ile tanımlanır. |
| categoryId | string | Görevler bir kategoriye ait olmalıdır ve UI'de kategoriye göre gruplandırılır. |
| tasks | table | Oyuncunun görevi tamamlamak için bitirmesi gereken görevlerin bir listesi. |
Kilitlenme koşulları
Varsayılan olarak, görevler oyuncular için otomatik olarak kilitlenir ve tam olarak 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 açılmadan önce tamamlanması gereken diğer missionIds'in bir listesi. |
| manualOnly | bool | Görevin otomatik olarak kilitlenmesini devre dışı bırakır. Bunun yerine, görevi açmak için bir işlev çağrılmalıdır. Diğer tüm kilitlenme koşulları da karşılanmalıdır. |
| availableAfterUtc | bool | Görev, belirtilen UTC zamanından önce açılamaz. |
| availableBeforeUtc | bool | Görev, belirtilen UTC zamanından sonra açılamaz. Eğer bu zaman öncesinde açılır ama tamamlanmazsa, görev başarısız olur. |
| repeatable | bool | Görev tamamlandıktan sonra tekrar açılır. |
| repeatLimit | number | Eğer görev tekrar edilebilir ise, bu kadar çok kez tekrar edilemez. |
| repeatCooldownSeconds | number | Eğer görev tekrar edilebilir ise, açılmadan önce bir gecikme vardır. |
| expireSeconds | number | Eğer görev açılmış ve belirtilen saniye sayısı içinde tamamlanmamışsa, görev başarısız olur. |
| expireCountOffline | bool | Eğer görevde expireSeconds varsa ve expireCountOffline true olarak ayarlandıysa, oyuncunun oyunda olmadığı süre görev süresine dahil edilir. |
Meta veriler
Görevlerin, Görevler kullanıcı arayüzünde nasıl görüntüleneceğini belirten meta verileri vardır. Meta verilerini özelleştirmek için aşağıdaki isteğe bağlı alanları kullanabilirsiniz.
| Ad | Tür | Açıklama |
|---|---|---|
| displayName | string | Görev için kullanıcı arayüzünde missionId yerine görüntülenecek bir ad. |
| 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 tamamlanmış olarak işaretlenmiş olsa bile görevler listesinde görünecektir. |
| visibleAfterFailed | bool | True olarak ayarlandığında, görev başarısız olduktan sonra bile başarısız olarak işaretlenmiş olsa bile görevler listesinde görünecektir. |
| visibleBeforeUnlocked | bool | True olarak ayarlandığında, görev tamamlanabilir hale gelmeden önce görevler listesinde görünür ancak kilitli olacaktır. |
| invisibleWhileActive | bool | True olarak ayarlandığında, görev aktif olarak ilerlerken 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örev içeriyorsa, açıldıktan hemen sonra talep edilebilir; eğer bir görev bir veya daha fazla göreve sahipse, görevler tamamlandığında oyuncu göreve bağlı ödülleri toplayabilir. Her görevin bir taskId'si vardır; bu, belirli bir görev için göreve bağlı anahtardır.
Görevler iki türde gelir:
- Zamanlı Görevler - Görevi farklı zaman noktalarında başlatıp durdurmanıza olanak tanır. Görev zamanlayıcısı çalışırken belirli bir süre geçmelidir, ardından görev tamamlanır.
- Sayım Görevleri - Görevin ilerlemesini artırmanıza veya ayarlamanıza olanak tanır. İlerleme belirli 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ı mı olduğunu belirtir. |
| counter | object | (İsteğe bağlı) Bu görevin izlediği sayaç. Sayacılar, bir sayı veya zamanlayıcı için oyuncuya özgü kalıcı depolamadır. Birden fazla görev, tek bir sayacı izleyebilir; örneğin, birden fazla görev, bir oyuncunun topladığı madeni para sayısını izliyorsa, hepsi aynı "madeni paralar" sayacını paylaşabilir. Bu görevler, sıfırdan başlayarak yeni toplanan madeni paraları bağımsız olarak izleyebilir veya sayaç değerinden (zaten toplanan tüm madeni paralar) devam edebilir.
|
| metadata | object | (İsteğe bağlı) Görevin UI'de nasıl görüntüleneceği hakkında bilgi.
|
| 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 bir zorunlu değeri vardır. Görev ilerlemesi bu miktara ulaştığında, 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, harcanan hedef süreye sahiptir ve başlatılıp durdurulabilir. Hedef süre karşılandığında, görev tamamlanır.
| Ad | Tür | Açıklama |
|---|---|---|
| goalSeconds | number | Görevi tamamlamak için geçmesi gereken saniye sayısı. |
| startImmediately | bool | Görev açıldığında zaman sayımına hemen başlaması gerektiğini belirtir, yalnızca başlatıldığında değil. |
| includesOfflineTime | bool | Görev, oyuncunun oyunda aktif olmadığı süreyi de içermelidir. |
Kategorileri yapılandırın
Kategorilerin kullanılmak üzere açıkça tanımlanması gerekmez, çünkü bir görev için kategori varsayılan değerler kullanılı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 benzersiz CategoryIds ile tanımlanır.
| Ad | Tür | Açıklama |
|---|---|---|
| repeatDelaySeconds | number | (İsteğe bağlı) Ayarlandığında, kategorideki tüm görevler, belirtilen süre geçtikçe sıfırlanır ve tekrar açılabilir, tamamlanabilir ve ödülleri tekrar alınabilir. Bu, belirli bir kategori tekrarı içinde tekrar edilebilir görevlerden ayrıdır. |
Sunucu mantığını entegre edin
ReplicatedStorage.Missions.Server.Examples.MissionsExample'a göz atın; bu, sunucunuzun Görevler özellik paketi ile nasıl etkileşime gireceğini gösterir.
Görevler özellik paketini oyununuza sürükledikten sonra dört şeyi bağlamanız gerekir:
Görevler yapılandırmanızda görevleri tanımlayın.
Görev ilerlemesini veya ilerlemenin bağlı olduğu sayaçları güncellemek için oyununuzda mantık ekleyin.
README-- Jumps görevine sahip Jumping görevinde ilerlemeyi artırırMissions.addProgressToTask(player, "Jumping", "Jumps", 1)-- BattlingTime görevinde TimeInBattle görevinde zamanlayıcıyı başlatırMissions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- BattlingTime görevinde TimeInBattle görevinde zamanlayıcıyı durdururMissions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- Jumps sayacına 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şleyicilerini ayarlayın ve isteğe bağlı olarak açma veya başarısız olma işleyicileri ekleyin. Tamamlama işleyicisini, oyununuzda görevden ödülleri 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 açılmayan görevleri açın. Görevler özellik paketi mantığı, görevin tamamlanabilmesi için tüm görev gereksinimlerinin karşılandığından emin olur ve ödülleri toplanabilir hale getirir.
READMEMissions.unlockMission(player, "Manual")
Sabitleri yapılandırın
Çekirdek özellik paketi için sabitler iki yerde bulunur:
Paylaşılan sabitler ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants içinde bulunur.
Paket özel sabitleri, bu durumda Görevler özellik paketi, ReplicatedStorage.Missions.Configs.Constants içinde bulunur.
Ayrıca, çeviri için dizeleri bir yerde bulabilirsiniz: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.
UI bileşenlerini özelleştirin
Paket nesnelerini, renkler, yazı tipi ve saydamlık gibi değiştirerek, görevler UI'nizin görsel sunumunu ayarlayabilirsiniz. Örneğin, ReplicatedStorage.Missions.Configs.Constants içinde SingleTaskMode'u etkinleştirerek, yalnızca tek bir görevi olan görevler için görevin kendisinde bir ilerleme çubuğu görüntüleyebilirsiniz.
Ayrıca, oyununuzda zaten mevcut bir UI varsa 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.