Clarus Victoria

Next Run · Modlar

Next Run Mod Kılavuzu

Next Run modlarının nasıl çalıştığı, dosya yapısı ve oyun bileşenleri hakkında ayrıntılı açıklama. Kendi modlarınızı oluşturup yayımlarken hızlı yanıtlar için bu bağlantıyı kaydedin.

1. Genel

Bu belge Next Run'daki mod sistemini açıklar: modları nasıl kuracağınızı, kendi modlarınızı nasıl oluşturacağınızı ve onları diğer oyuncularla nasıl paylaşacağınızı anlatır.

2. Mod sistemi

Oyunu başlattıktan ve "Oyna" ile "Oyun oluştur" düğmelerine tıkladıktan sonra oyun dizinindeki Mods klasörü taranır. Bu dizindeki her alt klasör, modinfo.json dosyası varsa mod olarak kabul edilir.

2.1. Steam Workshop, modların kurulumu ve yayımlanması

Oyunu Steam istemcisinden çalıştırırsanız, "Oyna" menüsünde aşağıdaki düğmeleri içeren bir "Modlar" paneli bulunur:

  • Steam Workshop
  • Modlar klasörü
  • Yayımla
  • Kılavuz

2.1.1. Steam Workshop

Steam Workshop'u Steam istemcisi içinde açar. Bir modu indirmek için ona abone olun. İndirme otomatik olarak başlar; mod büyükse biraz zaman alabilir. İndirme durumu Steam istemcisinde gösterilir.

2.1.2. Modlar klasörü

Oyununuzun Modlar klasörünü açar.

2.1.3. Yayımla

Oyun, Mods klasörünü otomatik olarak tarar ve yazarı olarak listelendiğiniz tüm modları Steam Workshop'a yükler.

  • Mod yeniyse, steam_id otomatik olarak oluşturulur.
  • Mod zaten varsa güncellenir.
  • Yükleme sırasında yayımlama düğmesinin görünümü değişir.
  • Mod yalnızca içerikte değişiklik varsa yayımlanır.
  • modinfo.json dosyasındaki değişiklik içerik değişikliği olarak sayılmaz.
  • Yayımlanan modlar dünya çapındaki oyunculara açılır. Steam Workshop modları dağıtmanın tek yolu değildir — mod klasörünü Mods dizinine koyarak doğrudan da paylaşabilirsiniz.

2.2. JSON dosyaları

Oyundaki tüm veriler ve metinler JSON biçimini kullanır. Düz metinden temel fark, verilerin {} küme parantezleri içinde olması gerektiğidir.

JSON sözdizimi kaynakları:

Oyun dosyalarındaki örnekleri referans olarak kullanmanızı öneririz.

2.3. Dosya yapısı

Her mod oyununkine benzer bir klasör yapısına sahiptir. Bu dosyalar yeni içerik ekler veya mevcut içeriği değiştirir. JSON dosyaları oyun öğelerini ekler veya değiştirir. Diğer biçimlerdeki (png, ogg) dosyalar bütünüyle değiştirilir.

Örnek: data/game.json dosyası oluşturup içindeki "Warrior" varlığını (oyun sınıfı) değiştirirseniz yalnızca bu sınıf değişir; game.json içindeki diğer varlıklar aynı kalır. portrait_warrior_front.png dosyasını eklerseniz, isim eşleştiği için oyundaki ilgili görseli tamamen değiştirir.

Bir modun içinde zorunlu ve isteğe bağlı dosya ve klasörler vardır. Standart yapı şöyledir:

  • Mod klasörünün adı (herhangi bir ad olabilir, mod adı değildir)
  • modinfo.json
  • preview.png
  • data/
  • icons/
  • sounds/
  • texts/
  • tiles/

Daha iyi anlamak için oyundaki örnekleri ve mevcut modları incelemenizi öneririz. Aşağıda her klasör ve dosyanın ayrıntılı açıklaması yer alır.

2.3.1. modinfo.json

Mod meta verilerini içeren dosya. Bu verilerin bir kısmı mod yayımlanırken Steam Workshop tarafından kullanılır.

  • title — modun adı, Steam'de gösterilir.
  • version — mod sürümü.
  • description — mod açıklaması.
  • tags — Steam Workshop'ta gezinmek için etiketler.
  • order — modların yüklenme sırası. Aynı verileri değiştiren birden fazla mod varsa order değeri yüksek olan, düşük olanı geçersiz kılar.
  • steam_id — elle belirtmeniz gerekmez, yayımlama sırasında otomatik oluşur.
  • created_time — oluşturulma zamanı.
  • changed_time — değiştirilme zamanı.
  • Başka alanlar ekleyebilirsiniz, ancak yalnızca dosya içinde kullanılır. Modun yazarı Steam Workshop üzerinden otomatik belirlenir.

2.3.2. preview.png

Modun Steam Workshop'taki simgesi. Önerilen çözünürlük 256x256 veya 512x512'dir. En boy oranı kare olmalıdır. Şeffaf PNG veya JPG kabul edilir.

2.3.3. data

JSON veri dosyalarının bulunduğu klasör. Mevcut oyun varlıklarını değiştiren veya yenilerini ekleyen dosyaları içerir. Yalnızca değiştirmeniz veya eklemeniz gereken dosyaları ve alanları oluşturabilirsiniz. Değiştirilebilir verilerin ayrıntılı açıklaması 3. bölümde verilmiştir.

2.3.4. icons

Oyunun simgelerinin bulunduğu klasör. GUI ve karolar dışında çoğu görseli içerir. Farklı oyun durumları için birkaç standart boyut ve katman kullanılır. Oyunda şeffaf arka planlı PNG dosyaları kullanılır.

2.3.5. sounds

Sesler ve müziklerin bulunduğu klasör. Yeni dosyalar ekleyebilir veya mevcutları değiştirebilirsiniz. Kullanılan biçim OGG'dir.

2.3.6. texts

Oyunun yerelleştirilmiş metinlerinin bulunduğu klasör. Her dosya bir dili temsil eder ve IETF BCP-47 / ISO standardını kullanır. Şu anda 13 dil desteklenir: ruRU.json, trTR.json, jaJP.json, koKR.json, zhTW.json, zhCN.json, plPL.json, ptBR.json, itIT.json, esES.json, frFR.json, deDE.json, enUS.json.

2.3.7. tiles

Karoların görsellerini içeren klasör. Şeffaf arka planlı PNG dosyaları kullanılır. Standart karo boyutu 256x384'tür. Karolar toprak, nesneler, orman, dağlar, yollar gibi birden çok katmandan oluşur.

2.4. Mod senkronizasyonu

Bir mod edindikten sonra, oyun her başlatıldığında Steam Atölyesinde yayımlanan en son sürümle otomatik olarak senkronize edilir.

Modun yazarı sensen senkronizasyon yapılmaz ve mod dosyaları üzerine yazılmaz. Bu, mod üzerinde çalışırken oyunu yeniden başlattığında değişikliklerinin kaybolmamasını sağlar.

Başkasının modunu temel alarak bir mod oluşturmak istiyorsan, oyunu yeniden başlatmadan önce şunları yapmalısın:

  • Mod klasörünün adını, kimliğinden farklı herhangi bir adla değiştir.
  • modinfo.json dosyasındaki şu alanları sil: "author", "created_time", "steam_id", "changed_time".

2.5. Veri birleştirme

Modların ve oyunun JSON veri dosyaları değiştirilmez, birleştirilir.

Birleştirme sırası:

  • Temel olarak oyunun JSON dosyalarındaki özgün varlıklar alınır.
  • Üzerlerine mod verileri uygulanır. Modlar, modinfo.json dosyasındaki order alanında tanımlanan önceliklere göre uygulanır.

Birleştirme sırasında tüm bileşenlerin her alanı ayrı ayrı işlenir. Örneğin bir varlıkta "hideIfZero":true varsa ve değerin false olması gerekiyorsa, alanı silmek yeterli değildir — "hideIfZero":false değerini açıkça belirtmeniz gerekir.

list.json dosyasındaki listeler aynı şekilde birleştirilir. Sadece tek bir öğe eklemek istiyorsanız tüm alanlarıyla her listeyi çoğaltmanız gerekmez. Ancak yalnızca basit veriler içeren listeler tamamen değiştirilir; örneğin RndGoodEvents ve RndEvents.

3. Bileşenler

Next Run ECS mimarisi üzerine kuruludur. Oyun tamamen varlıklardan oluşur. Bir varlık, bileşenler için bir kaptır ve yalnızca id alanını içerir. Diğer tüm veriler bileşenlerle tanımlanır. Tüm veriler JSON dosyalarında belirlenir.

Bir JSON dosyasındaki örnek kayıt:

"Speed": {
    "Button": {"panel": "statsPanel","iconType": "btnBig","numText1Type": "total","icon": "arrow2"},
    "Tooltip": {"text": "Speed"},
    "Total": {"now": 25}
}

Bu örnek, üç bileşenli "Speed" varlığını tanımlar: Düğme — oyundaki düğmenin görünümünü ve davranışını belirler; Tooltip — bilgi balonu açıklaması; Toplam — varlığın sayısal değeri, bu örnekte hız 25'tir.

Aşağıda bileşenlerin ve alanlarının daha ayrıntılı açıklaması vardır. Bazı bileşen özellikleri otomatik olarak tanımlanır ve JSON dosyalarında düzenlenemez. Örneğin, bir zindanın Temizleme zorluğu, seviyeye ve oyun tarafından hesaplanan diğer parametrelere bağlıdır.

3.1. Button

Oyundaki bir düğmenin görünümünü ve davranışını tanımlar.

  • panel = string, düğmenin varsayılan paneli. Oyundaki tüm düğmeler paneller ve menüler içindedir. Düğmenizi hangi panelde konumlandıracağınızı seçmek için örnekleri kullanın.
  • icon = string, düğmenin simge adı. Simge adı icons klasöründen alınan PNG dosyasıdır.
  • iconType = string, düğme türü, boyutu ve üzerindeki öğeleri etkiler. Seçenekler: "btn" — basit düğme, "btnBig" — altında değer bulunan düğme.
  • color = string, simge arka planının rengi, örneğin green, yellow. Oyunun desteklediği renkler: green, superGreen, lightGreen, darkGreen, red, superRed, darkRed, gray, lightGray, darkGray, lightBlue, blue, darkBlue, darkDarkBlue, grayYellow, yellow, pink, cyan, darkCyan, almostBlack, black, orange, darkOrange, lightViolet, purple, chartreuse, num, gameBack, blank, halfTrans, white, base.
  • numText1 = double, simgenin değeri.
  • numTextAdd = string, değere ek metin, örneğin "%".
  • numText1Type = string, simge değerinin türü, örneğin level, total, duration.
  • numCustom = string, simge için özel değer, örneğin "∞".
  • numIcon = string, değerin yanındaki simge, örneğin seviyeler için star, eşyalar için coin.
  • hotkey = string, klavye kısayolu.
  • hide = bool, düğme gizli mi.
  • hideIfZero = bool, Total.now bileşeni 0 ise düğmeyi gizler.
  • disabled = bool, düğme devre dışı mı etkin mi; örneğin oyunun başında bazı menüler devre dışıdır.
  • interactable = bool, düğme etkileşimli mi; varsayılan olarak evet. Etkileşimli olmayan düğmelere örnek envanter yuvalarıdır.
  • cantBeDeselect = bool, bu düğmede seçimi kaldıramama yasağı.
  • cantBeSelect = bool, düğmeye tıklandığında seçimi yasaklama.
  • draggable = bool, düğmenin sürükle-bırak ile taşınabilmesi.
  • x = double, paneli olmayan düğmeler için X koordinatında konum, örneğin envanter yuvaları.
  • y = double, Y koordinatı için benzeri.
  • upMiniPred = string, bu varlık için kontrol edilen eylemin adı. Eylem mevcutsa bir geliştirme türünde mini ipucu görünür.
  • craftMiniPred = string, Zanaat eylemi için benzer ipucu.
  • raiseMiniPred = string, Kaldırma eylemi için benzer ipucu.

3.2. Tooltip

Düğmenin bilgi balonu içeriğini tanımlar.

  • text = string, oyunda görünen varlık adı.
  • dontShowDuration = bool, varlığın süre değerini göstermeyi engeller.
  • hideSources = bool, bu değeri etkileyen kaynak varlıkların gösterimini engeller.
  • hideAsSubjTT = bool, ilişkili varlıklar için kaynak olarak bu nesnenin gösterimini engeller.
  • desc = string, açıklama metni, ipucunun başında yer alır.
  • desc2 = string, açıklama metni, ipucunun sonunda yer alır.
  • redDesc = string, kırmızı renkle vurgulanan açıklama metni, sonunda yer alır.
  • totalTextAs = string, "Toplam" yerine kullanılan metin.
  • ttPos = string, ipucunun düğmeye göre konumu, seçenekler "top", "left".

3.3. GameClass

Bir oyun sınıfının mekaniğini tanımlar.

  • text = string, oyunda sınıf adı.
  • portrait_back = string, sınıf seçiminde arka plan görseli 391x598.
  • portrait_front = string, sınıf seçiminde sınıf görseli 411x620, şeffaf.
  • figurine = string, haritadaki karakter avatarı görseli 149x243.
  • doll = string, envanterde sınıfın siyah-beyaz görseli 460x784.
  • bonusSkill1 = string, bonus olarak verilen 1. beceri adı.
  • bonusSkillVal1 = double, 1. becerinin bonus miktarı.
  • bonusSkill2 = string, bonus olarak verilen 2. beceri adı.
  • bonusSkillVal2 = double, 2. becerinin bonus miktarı.
  • debuffSkill1 = string, ceza alan 1. beceri adı.
  • debuffSkillVal1 = double, 1. ceza miktarı.
  • debuffSkill2 = string, ceza alan 2. beceri adı.
  • debuffSkillVal2 = double, 2. ceza miktarı.
  • gold = double, sınıfın başlangıç Altın miktarı.
  • remains = double, başlangıçtaki kalıntı sayısı.
  • equip = List<string>, başlangıçta kuşanılacak eşyaların listesi.
  • units = string, başlangıçtaki yaratık adı.
  • itemName = string, başlangıçtaki envanter eşyasının adı.
  • itemNum = double, başlangıçtaki envanter eşyası sayısı.
  • learnList = string, öğrenilecek büyü veya plan listesi adı, liste list.json dosyasındadır.
  • learnNum = double, listeden öğrenilecek büyü veya plan sayısı.
  • lessTime = double, cehennem saldırıları arasındaki sürenin ne kadar kısaldığı.
  • manaBonus = double, mana bonusu, maksimum ve toplam.
  • upgradeDexterityBonusMod = double, Çeviklik becerisinden gelen yükseltme bonusu.
  • skillPointsPerLevel = double, seviye başına verilen beceri puanı sayısı.
  • upgradeManaCostMod = double, büyü yükseltme verimliliği bonusu.
  • freeRegion = bool, ücretsiz bölge.
  • necroBonus = bool, Nekromant oynanışı ve bonusları.
  • druidBonus = bool, Druid oynanışı ve bonusları.
  • stances = bool, duruşlar/biçimler/emirler var mı.
  • defStance = string, varsayılan duruş.
  • notDemo = bool, sınıf demoda kullanılamaz.
  • notTutorial = bool, sınıf Eğitimi modunda kullanılabilir mi.

3.4. GameMode

Bir oyun modunun mekaniğini tanımlar.

  • text = string, oyundaki mod adı.
  • back = string, mod seçiminde arka plan görseli 391x598.
  • moreTime = double, cehennem saldırıları arasındaki sürenin ne kadar uzadığı.
  • lessTime = double, cehennem saldırıları arasındaki sürenin ne kadar kısaldığı.
  • woundChance = double, yara alma Şansı.
  • notDemo = bool, mod demoda kullanılamaz.
  • scenario = string, bu mod için özel harita adı.
  • noHellAttacks = bool, bu modda cehennem saldırıları yok (kum havuzu gibi).
  • savesOnExitOnly = bool, bu modda kayıt yalnızca oyundan çıkarken yapılır.

3.5. Biome

Biyom mekaniğini belirler.

  • frequency = double, harita oluşturulurken biyomun ortaya çıkma sıklığı; sayı ne kadar yüksekse o kadar sık. 0 ise üretilmez. Lava biyomu final bölge olarak her zaman oluşur.
  • hexBase = string, bu biyom için altıgen temel karo, yerleşimlerin altına serilir.
  • music = string, biyomun müzik parçası dosya adı.
  • hexPatterns = List<string>, biyomdaki nesne şablonlarının listesi. Bir deste gibi çalışır: şablonlar karıştırılıp rastgele çekilir, 0'a ulaşınca yeniden oluşturulur. Şablon biçimi: ad1#ad2, # nesneler arasındaki ayırıcıdır.
  • mobLevel1 .. mobLevel8 = string, bölge seviyesine göre üretilen yaratıkların adı.

3.6. TileAsset

Harita üzerindeki bir nesnenin görünümünü belirler.

  • tileMap = string, LandTilemap — toprak yüzeyi, ObjectTilemap — normal nesne, RoadTilemap — yol vb.; fark, katmanların üst üste bindirilme sırasıdır.
  • rawSprite = string, haritaya eklenecek 256x384 görsel.
  • icon = string, tüm TileMap katmanlarının üzerinde eklenecek simge.
  • buttonIcon = bool, simgenin Button'dan alınması gerekip gerekmediği.
  • delLevel = double, nesnenin bir eylemle kaldırılma zorluğu.

3.7. Shop

Mağaza mekaniğini tanımlar.

  • slots = int, mağazadaki yuva sayısı.
  • type = string, list.json içindeki mağaza ürün yelpazesi adı.

3.8. Item

Bir eşyanın mekaniğini tanımlar.

  • slot = string, ekipman yuvasının adı.
  • stackable = bool, aynı yığında birden fazla eşya olup olamayacağı.
  • upgradable = bool, eşyanın yükseltilip yükseltilemeyeceği; yükseltme süresi seviyeye bağlıdır.
  • upProgress = double, yükseltme süresi.
  • order = double, mağazadaki eşya sırası; sayı ne kadar küçükse o kadar yukarıda.

3.9. Mob

Bir yaratığın mekaniğini tanımlar.

  • hell = bool, yaratık cehennem kökenli. Rüşvet cezası. Cehennem saldırılarına katılır. Kalıntı bonusu.
  • undead = bool, yaratık ölümsüz. Rüşvet verilemez. Özel yükseltme mekaniği.
  • type = string, yaratık sınıfı — "Warriors", "Defenders", "Mages", "Gatherers", "Crafters". Arka plan rengini, oyuncuya isabet Şansını, hasar türünü ve ganimet türünü belirler.
  • upMob = string, yaratığın yükseltildiğinde olacağı isim.
  • upCostName = string, yükseltme için gereken eşya adı.
  • upCostNum = double, gerekli kaynak miktarı, varsayılan 1.

3.10. Dungeon

Zindan mekaniğini tanımlar.

  • magic = bool, zindan büyülü. Hasar, ganimet ve eklere etki eder.
  • boss = bool, final zindan.

3.11. Ruins

Harabeler mekaniğini — eşya arama yerlerini — tanımlar.

3.12. Addon

Eklenti mekaniği. Eklentiler zindan veya harabelerin bulunduğu hücrede yer alan, parametrelerini değiştiren ve ayrı ödüller veren nesnelerdir.

  • skill = string, zindan Temizleme veya harabe incelemesi tamamlandığında oyuncunun alacağı beceri. "Random" veya örneğin "Strength" belirtilebilir.
  • unit = string, eylem tamamlandıktan sonra alınacak bonus yaratık. "Random" yazılabilir.
  • item = string, eylem tamamlandıktan sonra alınacak bonus eşya. "Random" yazılabilir.
  • phyChanceMulti = double, Temizleme sırasında fiziksel hasar Şansı çarpanı. Örneğin %50.
  • magChanceMulti = double, Temizleme sırasında büyü hasarı Şansı çarpanı. Örneğin %50.
  • progressMulti = double, Temizleme veya İnceleme eyleminin ne kadar daha uzun süreceği. Örneğin %100.
  • dmgMulti = double, Temizleme sırasında hasar miktarı çarpanı. Örneğin %50.

3.13. Build

Bu nesnenin bir yapı olduğunu belirtir.

3.14. Center

Bu nesnenin bir yerleşim olduğunu belirtir.

  • captureProgress = double, yerleşimi ele geçirmek için gereken çaba.
  • upProgress = double, yerleşimi yükseltmek için gereken çaba.
  • upCostName1 = string, yükseltme için gereken 1. eşyanın adı.
  • upCostNum1 = double, 1. eşyanın gerekli miktarı.
  • upCostName2 = string, 2. eşyanın adı.
  • upCostNum2 = double, 2. eşyanın miktarı.
  • upCostName3 = string, 3. eşyanın adı.
  • upCostNum3 = double, 3. eşyanın miktarı.
  • upProp = string, yerleşimin yükseltileceği varlık.

3.15. Gatherable

Bu nesnenin Kaynak toplama ile elde edilebileceğini ve kaynak sağlayacağını belirtir.

  • gather = string, elde edilecek kaynak adı.
  • deposit = bool, bu kaynağın bir maden yatağı olup olmadığı; evet ise burada maden inşa edilebilir.

3.16. AlliedForest

Druid olarak oynarken "Müttefik ormanı" mekaniğini ve değerlerini tanımlar.

  • allyBonus = double, "Müttefik ormanı" bonusunun değeri.

3.17. Graveyard

Nekromant için önemli olan mezarlık mekaniğini tanımlar. Burada elde edilebilecek kalıntı miktarı rastgele belirlenir.

  • now = double, mevcut kalıntı değeri.
  • rndMin = double, kalıntı sayısının minimum rastgele değeri.
  • rndMax = double, kalıntı sayısının maksimum rastgele değeri.
  • rndCeil = bool, rastgele değer hesaplanırken yukarı yuvarlama.

3.18. Pred

Eylem bileşeni. Bileşenin çoğu işlevi kodda saklıdır, ancak bazı kısımlar kullanılabilir.

  • action = string, eylem tamamlandığında çalışacak eylem adı.
  • local = bool, nesneyle etkileşim için aynı hücrede bulunma gerekliliği.
  • attackPred = bool, bu eylem Saldırı niteliğinde; bir savaş büyüsü uygulanırsa otomatik olarak çalışır.
  • gatherPred = bool, bu eylem Kaynak toplama niteliğinde; kaynak toplama büyüsü uygulanırsa otomatik çalışır.
  • craftPred = bool, bu eylem zanaat niteliğinde; zanaat büyüsü uygulanırsa otomatik çalışır.
  • skill = string, eylemi gerçekleştirmek için kullanılan beceri; örneğin saldırı eylemleri için Saldırı becerisi kullanılır.
  • longPred = bool, bu eylem anlık değildir ve zaman gerektirir.
  • repeat = bool, eylem durdurulana kadar tekrarlanır.
  • noOwner = bool, bu eylem için herhangi bir nesnenin seçilmesi gerekmez.
  • skipLongTooltip = bool, eylem için basitleştirilmiş ipucu kullanır.
  • onlyClass = string, bu eylem (duruş, biçim veya emir türü) yalnızca belirli bir sınıfa açıktır.

3.19. Total

Bir varlığın sayısal değerini tanımlayan bileşen; genellikle miktarı ifade eder.

  • now = double, mevcut değer.
  • inc = double, tur başına artış.
  • max = double, maksimum değer.
  • min = double, minimum değer.
  • rndMin = double, rastgele sayının minimum değeri.
  • rndMax = double, rastgele sayının maksimum değeri, now değerini değiştirir.
  • rndCeil = bool, rastgele değer oluşturulurken yukarı yuvarlama.
  • overMax = bool, sınırın aşılmasına izin verir.
  • delIfZero = bool, değer 0 ise sil.
  • numPercent = bool, değer yüzde midir.

3.20. Level

Bir varlığın Seviye bileşeni.

  • now = double, mevcut değer.
  • max = double, maksimum değer.
  • min = double, minimum değer.
  • localLevelPlus = int, yerel seviye bonusu; yalnızca haritadaki nesneler için çalışır, seviyeleri bölge seviyesi artı bu değer olur.

3.21. Duration

Bir varlığın süresini tanımlayan bileşen.

  • now = double, mevcut değer.
  • max = double, maksimum değer.
  • min = double, minimum değer.
  • delIfZero = bool, değer 0 ise sil.

3.22. Mods

Değiştirici listesi bileşeni. Bu bileşen oluşturulduğunda diğer varlıkları etkileyen bir değişiklik seti oluşur. Varlık silindiğinde bu değişiklikler kaybolur.

  • radius = int, değiştiricinin etki yarıçapı; yalnızca haritada çalışır.
  • objType = string, değiştiricinin uygulanacağı varlık türü, örneğin "Stat", "Skill", "Prop", "Item", "ModableVal", "PropMod".
  • objName = string, varlık adı, örneğin "Speed".
  • objComp = string, değiştirilecek bileşen, örneğin "Total", "Level".
  • objKey = string, bileşende değiştirilecek alan, örneğin "now", "inc", "max".
  • modType = string, alanı etkileme yöntemi: "add", "mult", "addPerLevel", "multPerLevel".
  • now = double, değişikliğin değeri.
  • subjTooltipText = string, dinamik ipucuna özne bilgisi eklenir.
  • skipPerTooltip = bool, ipucunda PerLevel yerine Plus kullanılır.
  • skipSubjTooltip = bool, bu özne için ipucunu atla.

3.23. ModableVals

Oyun için küresel değişkenler listesi bileşeni. Belirli bir varlığa bağlama koşullu. Bu değişkenlerin çoğu mantığı oyunun kodunda saklıdır.

  • now = double, değişkenin değeri.

3.24. Slot

Bu bileşen varlığı envanterde bir yuva olarak tanımlar.

  • name = string, yuva adı. Bir eşyanın bu yuvaya konması için Item bileşenindeki slot alanıyla eşleşmelidir.

3.25. Container

Bu varlığı hücrelere sahip bir konteyner olarak tanımlar.

  • cells = int, konteynerdeki hücre sayısı.
  • cellsPanel = string, panel adı.

3.26. Tom

Bu varlığın öğrenilebilen ve büyü veya yükseltme veren bir büyü tomarı olduğunu belirtir.

  • cast = string, öğrenilecek büyünün adı.

3.27. Cast

Bu varlığın bir büyü olduğunu belirtir.

  • mana = double, büyünün mana maliyeti.
  • predSkill = string, bu büyü etkinleştirildiğinde hangi eylem türünün tetikleneceği; örneğin Attack türü için saldırı eylemleri otomatik başlar.
  • notSkills = string, bu büyünün kullanılması için hangi eylemin gerektiğine dair ipucu.
  • attack = double, Saldırı türü eylemleri ne kadar hızlandırdığı; bu büyü hasarı olarak düşünülebilir.
  • gather = double, Kaynak toplama eylemlerini ne kadar hızlandırdığı.
  • craft = double, zanaat eylemlerini ne kadar hızlandırdığı.
  • heal = double, oyuncu kahramanının ne kadar iyileştiği.
  • newEvent = string, büyünün tetiklediği etkinlik adı; genellikle güçlendirme türü etkinliklerdir.
  • teleport = bool, seçilen konuma ışınlanma.
  • explore = double, bu hücreyi ve komşu hücreleri keşfeder.

3.28. Blueprint

Plan varlığının mekaniği.

  • item = string, üretilecek eşyanın adı.
  • build = string, inşa edilecek yapının adı.
  • costName1 = string, üretim için gereken 1. eşya adı.
  • costNum1 = double, 1. eşyanın gerekli miktarı.
  • costName2 = string, 2. eşya adı.
  • costNum2 = double, 2. eşya miktarı.
  • costName3 = string, 3. eşya adı.
  • costNum3 = double, 3. eşya miktarı.

3.29. Cost

Satın alma ve satış için fiyatı belirleyen fiyat bileşeni.

  • raw = double, temel fiyat, değiştiriciler olmadan. Satın alma ve satış fiyatları buradan hesaplanır.

3.30. Event

Etkinlik bileşeni.

  • uniq = bool, etkinlik benzersizdir; aynı isimde yeni bir etkinlik gelirse eski olan silinir.
  • rndEvent = bool, etkinlik rastgeledir.
  • nextEvent1 = string, mevcut etkinlik bittiğinde başlayacak ilk etkinlik adı.
  • nextEvent2 = string, mevcut etkinlik bittiğinde başlayacak ikinci etkinlik adı.
  • castType = string, büyünün güçlendirme etkisi türü; aynı türü olanı geçersiz kılar.

3.31. Proc

Şans mekaniği bileşeni; örneğin hastalık oluşma olasılığı.

  • addEvent = string, şans gerçekleşirse çalışacak etkinlik.

3.32. ProcMod

Bir varlığın şans (proc) olasılığını etkilemesini sağlayan bileşen.

  • proc = string, bu bileşenin etkilediği proc adı.
  • chance = double, etki gücü; işlevin bir kısmı koddadır.
  • dependsLevel = bool, varlığın seviyesine bağlılık.

3.33. Usable

Tek kullanımlık eşyalar için bileşen; örneğin iksirler. Kullan eylemiyle etkinleşir ve etkisini verir.

  • stat = string, etkilediği stat adı.
  • skill = string, etkilediği beceri adı.
  • nowBonus = double, Total.now alanını etkileyen bonus.
  • maxBonus = double, Total.max alanını etkileyen bonus.
  • cure = bool, eğer doğruysa Hastalık etkisini iyileştirir.

3.34. Drankable

Haritadaki bir nesnenin içilebildiğini belirtir; örneğin Göl, Vaha vb.

3.35. Sphinx

Haritadaki bir görev nesnesi olan Sfenks bileşeni. Parametreler, bölge seviyelerine göre otomatik belirlenir.

3.36. Living_tree

Haritadaki görev nesnesi Canlı ağaç bileşeni. Parametreler, bölge seviyelerine göre otomatik belirlenir.

3.37. Vision

Oyuncu kahramanı bu varlığın bulunduğu konuma girdiğinde haritada artırılmış görüş yarıçapı sağlayan nesne mekaniği.

  • explore = int, keşif yarıçapı. 1 — normal keşif, 2 — bir hücre daha geniş.

3.38. Remains

Kalıntı bileşeni olarak varlık tanımı. Bu varlıkların ölümsüzlere dönüştürülmesine izin verir.

3.39. Audio_comp

Bu varlığın türüne bağlı olarak belirli seslerin çalınmasını sağlayan bileşen.

  • click = string, varlığa tıklandığında çalınan ses; eylemler ve büyüler için kullanılır.
  • added = string, varlık oluşturulduğunda çalınan ses; etkinlikler için kullanılır.
  • ambient1 = string, ortam sesi parça 1.
  • ambient2 = string, ortam sesi parça 2.
  • ambient3 = string, ortam sesi parça 3.
  • process = List<string>, eylem devam ederken çalınan ses adları listesi.
  • waits = List<double>, sesler arasında bekleme süreleri listesi.
  • finish = string, eylem tamamlandığında çalınan ses.
  • rndProcess = bool, çalma sırasında küçük rastgele ses efektleri.

3.40. Childs

Bir varlık için özyineli olarak yeni varlıklar oluşturan bileşen.

  • list = List<Entity>, belirli bir varlık için otomatik olarak oluşturulup bağlanan çocukların listesi.

3.41. Preds

Belirli bir varlık için eylemler oluşturan bileşen; çoğu varlık oyun kodunda tanımlıdır.

  • list = List<string>.

3.42. Equip

Bu eşyanın kahramana kuşanılabileceğini belirten etiket bileşeni.

3.43. Res

Bu varlığın bir kaynak olduğunu gösteren gösterge bileşeni. İpuçları, animasyonlar ve oyun özetleri için gereklidir.

3.44. TurnAct

Bu bileşen, varlığın her oyun tikinde kontrol edilmesi gerektiğini belirtir; örneğin Total ve Duration bileşenleri için.

4. Listeler

list.json dosyası, varlık veya bileşen olmayan veri bölümlerini içerir. Bunlar, oyun içeriği üretmek için çeşitli listeleri tanımlar.

4.1. RndGoodEvents

Oyunun hemen başında oluşturulan olumlu rastgele etkinlikler listesi.

4.2. RndEvents

Oyun ilerledikçe oluşturulan olumlu ve olumsuz rastgele etkinlikler listesi.

4.3. Generator_dungeon_addons_physical

Fiziksel hasarlı zindanlar için oluşturulan eklentiler listesi.

4.4. Generator_dungeon_addons_magical

Büyü hasarlı zindanlar için oluşturulan eklentiler listesi.

4.5. Generator_ruins_addons

Harabeler için oluşturulan eklentiler listesi.

4.6. Generator_settlement_levels

Bölge seviyeleri ile yerleşim varlık adları arasındaki eşleşmeleri içeren liste; örneğin "lvl1":"Village" ifadesi 1. seviye bir bölgede Village türü yerleşim üretileceği anlamına gelir.

4.7. Generator_rar_metals

Bölge seviyeleri ile maden yatağı adları arasındaki eşleşmeleri içeren liste; örneğin "lvl2":"Deposit_tin" ifadesi 2. seviye bir bölgede kalay yatağı oluşacağı anlamına gelir.

4.8. Generator_mages

Bölge seviyeleri ile büyücü adları arasındaki eşleşmeleri içeren liste; bunlar büyücü kulelerini korumak için oluşturulur. Örneğin "lvl3":"Priestesses" ifadesi 3. seviye bölgede Priestesses oluşturulacağı anlamına gelir.

4.9. LevelMobs_

Zindan Temizleme veya harabe incelemesinde tutsakları kurtardıktan sonra oyuncunun aldığı, farklı bölge seviyeleri için yaratık listeleri.

4.10. Crafter_start, Lord_start, Mage_start,

GameClass bileşeninde, learnList alanında farklı sınıfların başlangıçta aldığı çeşitli eşya listeleri. Öğelerin sayısı boş envanter yuvalarıyla sınırlıdır.

  • obj = string, eşya adı.
  • min = double, minimum rastgele sayı.
  • max = double, maksimum rastgele sayı.
  • chance = double, tam olarak bu eşyanın üretilme Şansı.
  • Diğer sınıflar için farklı plan veya büyüler öğrenilmesi gerekiyorsa başka listeler de oluşturup bağlayabilirsiniz.

4.11. Gold_

Bu liste, bölge seviyesine bağlı olarak ne kadar Altın üretileceğini tanımlar. Altın, haritadaki tüm ödül türlerinde %50 olasılıkla görünür. Sözdizimi için 4.10'a bakın.

4.12. Loot_-

Bölge seviyesine bağlı ödül üretimini tanımlayan liste grubu. Yaratıklar, zindanlar, harabeler için uygulanır. Yaratıklar için belirli eşyaların düşme olasılığını %50 ihtimalle belirler; kalan %50 için 4.13'teki listeler kullanılır. Sözdizimi için 4.10'a bakın.

4.13. Warriors_, Defenders_, Mages_, Gatherers_, Crafters_,

Bölge seviyesine ve yaratık sınıfına bağlı ödül üretimini tanımlayan liste grubu. Yalnızca yaratıklar için kullanılır. Bu listeler, özellikle büyücülerde daha sık büyü tomarı ve asa düşmesi gibi sınıfa bağlı ödülleri %50 olasılıkla üretmek için Loot_- listelerinin genişletmesidir. Sözdizimi için 4.10'a bakın.

4.14. Shop_, Books_

Farklı bölge seviyeleri için listeler; örneğin Books5 veya Shop6. Mağaza ürün yelpazesini oluşturmak için kullanılır. Sözdizimi için 4.10'a bakın. Bu listeler Shop bileşeninde, type alanında tanımlanır; kuleler için oyun kodundan üretilir.

Next Run — mod kılavuzu