Spawn That, Drop That a Custom Raids, všechny od ASharpPen, jsou tři mody řízené konfigurací, které přepisují, co Valheim spawnuje, co věci dropují a které nájezdy útočí na tvou základnu. Fungují stejně: obyčejné soubory .cfg v BepInEx/config s jednou [Section] na položku, číslované položky, které přepíšou vanillu, když se číslo shoduje, další soubory, které můžeš přidat s vlastním názvem, a ladicí přepínače, které vyexportují vanilla tabulky, abys začal od skutečných dat. Všechny tři musí být nainstalovány na serveru i na každém klientovi. Klienti při připojení ignorují své vlastní soubory a používají kopii, kterou pošle server, takže počítají jen soubory serveru. Většina hlášení „nefunguje to“ se redukuje na tři věci: úprava špatné kopie, chybějící restart nebo podmínky, které nemohou být nikdy splněny současně.
Tento návod pokrývá, jak Valheim rozhoduje o spawnech, dropech a nájezdech, soubory pro každý mod, ladicí exporty, funkční příklady, bezpečné testování změn a chyby, které nechají nájezd oznámený, ale prázdný.
Jak fungují spawny, dropy a nájezdy ve Valheimu#
K nastavení těchto modů potřebuješ vanilla model, protože upravují systémy vanilly, místo aby je nahrazovaly.
- Světové spawnery jsou pravidla spawnu na pozadí: seznam šablon pro každý biom, který říká, jaký tvor, kolik nejvýše poblíž, jak často kontrolovat, den nebo noc, jaké počasí, jak daleko od středu světa. Dokumentace Spawn That napočítá 44 výchozích šablon.
- Lokální spawnery jsou neviditelné body spawnu umístěné uvnitř lokací a místností dungeonů - kostlivci v rozpadlé věži, kanci u svého runového kamene. Každý spravuje jednoho tvora a vždy jen jednoho.
- Oblasti spawnu jsou spawnery jako hnízda Greydwarfů, které spawnují ze seznamu kolem sebe.
- CharacterDrop je způsob, jak tvorové dropují kořist: každá položka hází vlastní šanci a množství nezávisle.
- DropTable je způsob, jak dropuje většina ne-tvorů: stromy, kameny, truhly a několik tvorů jako ptáci. Tabulka hodí, kolik výběrů provést, a pak vybírá položky podle váhy.
- Nájezdy jsou události. Server každou chvíli zkontroluje, jestli nějakou spustit, vybere z nájezdů, jejichž podmínky jsou splněny, a řekne klientům, aby začali.
Detail, který vysvětluje většinu chování serveru: spawnování probíhá na klientovi, který zónu vlastní. Server rozhodne, že nájezd začíná, ale spawnery spouští hráč, jehož hra oblast simuluje. Proto musí být tyto mody na každém klientovi a proto hra jednoho hráče rozhoduje, co se objeví poblíž něj. Vanilla logiku nájezdů podrobněji pokrývá nájezdy a události na serverech.
Instalace tří modů a jak funguje synchronizace konfigurace#
Každý závisí jen na BepInExPack. Nainstaluj je jako jakýkoli plugin BepInEx - celou cestu má mody Valheim s BepInEx na serveru - na server a na PC každého hráče ve stejných verzích. Sdílený profil správce modů je snadný způsob, jak skupinu udržet sladěnou; viz r2modman pro skupiny.
| Mod | Hlavní soubory | Další soubory, které přidáváš |
|---|---|---|
| Spawn That | spawn_that.cfg, spawn_that.world_spawners_advanced.cfg, spawn_that.local_spawners_advanced.cfg, spawn_that.simple.cfg | spawn_that.world_spawners.*.cfg, spawn_that.local_spawners.*.cfg |
| Drop That | drop_that.cfg, drop_that.character_drop.cfg, drop_that.drop_table.cfg | drop_that.character_drop.*.cfg, drop_that.drop_table.*.cfg |
| Custom Raids | custom_raids.cfg, custom_raids.raids.cfg | custom_raids.supplemental.*.cfg |
První soubor v každém řádku je obecná konfigurace: ladicí přepínače a globální chování. Ostatní drží tvé položky. Většina začíná prázdná - vyplníš jen to, co chceš změnit.
Pravidla synchronizace, podle dokumentace samotných modů:
- Klienti připojení k serveru nepoužívají své místní konfigurace. Dostanou konfigurace serveru v paměti, aniž by se dotkli svých souborů, takže si hráč může nechat jiné nastavení pro singleplayer.
- Konfigurace se načítají při vstupu do světa. Na dedikovaném serveru to znamená při startu serveru, takže po úpravě restartuj server a pak ať se hráči znovu připojí.
- Další soubory se slučují s hlavním. Kde se dvě položky překrývají, vyhrává ta načtená později. Spawn That a Drop That načítají hlavní soubor jako poslední, takže má vždy poslední slovo. Custom Raids také prohledává podsložky kvůli svým doplňkovým souborům.
Na RE:NODE jsou to textové soubory, které upravuješ ve správci souborů v prohlížeči se zvýrazněním syntaxe nebo přes SFTP; restartuj z konzole a sleduj tamní výstup BepInEx kvůli varováním. Nic se za tebe neinstaluje - mody nahráváš ty - a neexistuje seznam povolených modů.
Před jakoukoli změnou vyexportuj vanilla tabulky#
Každý z těchto modů umí zapsat vlastní tabulky hry ve stejném formátu jako jeho konfigurace. Začni tím. Naučíš se skutečné názvy prefabů, čísla existujících položek k přepsání a hodnoty, které vanilla používá.
[WorldSpawner]WriteSpawnTablesToFileBeforeChanges = true[LocalSpawner]WriteSpawnTablesToFileBeforeChanges = true[Datamining]WriteLocationsToFile = true[Debug]WriteCharacterDropsToFile = trueWriteDropTablesToFiles = true[Debug]WriteDefaultEventDataToDisk = trueWriteGlobalKeyDataToDisk = trueVýstup jde do složky nastavené v DebugFileFolder, která je ve výchozím stavu Debug relativně ke složce BepInEx - tedy BepInEx/Debug. Přepínače potom zase vypni. Nejjednodušší místo pro generování exportů je singleplayerový svět na tvém PC se stejnými mody, protože soubory se objeví na tom stroji a můžeš je číst v editoru. Exporty také ukazují názvy lokací, které potřebuješ pro lokální spawnery, a globální klíče, které nájezdy kontrolují, například defeated_bonemass.
Spawn That: světové a lokální spawnery#
Položka světového spawneru je [WorldSpawner.ID]. Pokud ID odpovídá jedné z výchozích šablon (0 až 43 v současné dokumentaci), upraví tuto šablonu; jakékoli nepoužité ID přidá novou. Tohle přidá lovící vlky do Black Forest po Bonemassovi, v noci, ve skupinách:
[WorldSpawner.200]Name = Night wolvesPrefabName = WolfBiomes = BlackForestHuntPlayer = trueMaxSpawned = 3SpawnInterval = 300SpawnChance = 20GroupSizeMin = 2GroupSizeMax = 3LevelMin = 1LevelMax = 2SpawnDuringDay = falseSpawnDuringNight = trueRequiredGlobalKey = defeated_bonemassConditionDistanceToCenterMin = 1500| Volba | Výchozí | Poznámky |
|---|---|---|
MaxSpawned | 1 | Strop tohoto tvora v místní oblasti, ne na celém světě |
SpawnInterval | 90 | Sekundy mezi kontrolami |
SpawnChance | 100 | Procenta na kontrolu |
LevelMin / LevelMax | 1 / 1 | Úroveň 2 je jedna hvězda |
LevelUpChance | 10 | Procenta, hází se znovu za každou získanou úroveň |
GroupSizeMin / GroupSizeMax | 1 / 1 | Spawnují se společně |
RequiredGlobalKey | prázdné | Spawnuje se, až když je tento klíč nastaven |
ConditionAreaSpawnChance | 100 | Hází se jednou na oblast biomu, takže některé lesy ho nikdy nedostanou |
Nastavení Enabled = false u existující šablony zastaví vanilla verzi, což je způsob, jak spawn odstranit. Pamatuj, že SpawnDuringDay = false také způsobí, že se tvorové z té šablony ve dne pokusí zmizet. Obecná sekce [WorldSpawner] ve stejném souboru přijímá DisableSpawnLimiter = true, které vypne vanilla omezení spawnu; dokumentace to nazývá možná dočasným a je to rychlý způsob, jak zaplavit zónu, pokud jsou tvé počty vysoké.
Lokální spawnery používají [Location.PrefabName] nebo [DungeonRoom.PrefabName] a mohou upravovat jen spawnery, které už existují. Každá kombinace musí být jedinečná:
[Runestone_Boars.Boar]PrefabName = BoarLevelMin = 1LevelMax = 3LevelUpChance = 25RespawnTime = 20RespawnTime je u lokálních spawnerů v minutách, zatímco SpawnInterval u světových spawnerů je v sekundách. Pokud se v lokaci a prefabu sdílí několik spawnerů, všechny dostanou šablonu - Spawn That je nerozliší.
Spawn That přidává konzolové příkazy pro kontrolu práce: spawnthat wheredoesitspawn 200 zapíše PNG mapu, kde může šablona 200 spawnovat, spawnthat area vypíše ID oblasti, ve které stojíš, a spawnthat room řekne, ve které místnosti dungeonu jsi - šikovné pro zjištění názvů místností. Pokud je nainstalován Creature Level and Loot Control, převezme úrovně, pokud v podsekci [WorldSpawner.200.CreatureLevelAndLootControl] nenastavíš UseDefaultLevels = true; tuto integraci pokrývá Creature Level and Loot Control.
Drop That: dropy tvorů a tabulky dropů#
Dropy tvorů jdou do drop_that.character_drop.cfg, jako [PrefabName] pro nastavení celého tvora a [PrefabName.ID] pro každý drop. Stejně jako u spawnerů shodné ID přepíše vanilla položku a nové přidá drop.
[Draugr.10]PrefabName = IronScrapAmountMin = 1AmountMax = 2ChanceToDrop = 25ScaleByLevel = falseConditionKilledByEntityType = Player[Troll.0]Enable = falsePrvní položka dává Draugr 25% šanci dropnout jeden nebo dva kusy železného šrotu, nenásobené počtem hvězd, a jen když zabití provede hráč. Druhá vypne první vanilla drop trolla. ChanceToDrop je v současných verzích procento od 0 do 100. Starší konfigurace používaly názvy jako SetAmountMin a SetChanceToDrop; Drop That je pořád čte, ale nové soubory by měly používat současné názvy. Další užitečné volby dropů jsou DropOnePerPlayer, AmountLimit a podmínky jako ConditionBiomes, ConditionGlobalKeys, ConditionMinLevel a ConditionKilledWithStatus.
Tabulky dropů fungují jinak a konfigurace to ukazuje. Sekce [EntityName] musí nastavit vlastní pravidla tabulky, pak mají položky Weight:
[TreasureChest_forestcrypt]DropChance = 100DropOnlyOnce = trueDropMin = 3DropMax = 6[TreasureChest_forestcrypt.8]PrefabName = SurtlingCoreWeight = 0.5AmountMin = 1AmountMax = 2Protože se položky vybírají podle váhy, přidání těžké položky zvýší vzácnost všeho ostatního v tabulce. DropOnlyOnce odstraní položku po jejím výběru, což udržuje truhly různorodé.
drop_that.cfg má dvě nastavení pro zdraví serveru: DropLimit (výchozí -1, bez limitu) omezuje, kolik předmětů může vytvořit jediný drop, a AlwaysAutoStack skládá dropy do menšího počtu objektů na zemi. Se škálováním hvězd a násobiteli stojí za použití obě; proč hromady předmětů server stojí, vysvětluje odhozené předměty a úklid světa. dropthat:reload znovu načte konfigurace v běžícím světě pro testování, ale dokumentace varuje, že je určen pro rychlé testy a může způsobit problémy - pro skutečné změny restartuj.
Custom Raids: frekvence, nové nájezdy a vypnutí starých#
custom_raids.cfg řídí systém nájezdů jako celek. Zdokumentované výchozí hodnoty:
| Nastavení | Výchozí | Efekt |
|---|---|---|
EventCheckInterval | 46 | Minuty mezi kontrolami nájezdů (interval vanilly) |
EventTriggerChance | 20 | Procentní šance na kontrolu (šance vanilly) |
RemoveAllExistingRaids | false | Odstraní vanilla náhodné nájezdy; události bossů zůstanou |
OverrideExisting | true | Tvůj nájezd nahradí vanilla nájezd se stejným názvem |
UseIndividualRaidChecks | false | Nechá každý nájezd mít vlastní RaidFrequency a RaidChance |
PauseEventTimersWhileOffline | true | Časovače nájezdů se zmrazí, když není nikdo online |
GeneratePresetRaids | true | Zapíše dva ukázkové nájezdy pro závěr hry, vypnuté |
EventTriggerChance = 0 nájezdy vypne úplně a to je případ, kdy mod potřebuje být jen na serveru, protože server rozhoduje, kdy nájezdy začnou. Dva přednastavené nájezdy jsou Ragnarok a Deathsquitoseason; nech je vypnuté, dokud si je nepřečteš.
Nájezd je sekce pro nájezd a číslované podsekce pro jeho spawny, v custom_raids.raids.cfg nebo v doplňkovém souboru:
[DraugrSiege]Name = draugr_siegeEnabled = trueRandom = trueDuration = 120NearBaseOnly = trueBiomes = Meadows, BlackForest, SwampRequiredGlobalKeys = defeated_bonemassCanStartDuringDay = falseStartMessage = The dead are marchingEndMessage = The dead fall silent[DraugrSiege.0]PrefabName = DraugrHuntPlayer = trueMaxSpawned = 6SpawnInterval = 5SpawnChancePerInterval = 50GroupSizeMin = 1GroupSizeMax = 2[DraugrSiege.1]PrefabName = Draugr_EliteHuntPlayer = trueMaxSpawned = 1SpawnInterval = 20SpawnChancePerInterval = 25Chceš-li vypnout vanilla nájezd, pojmenuj ho a zakaž:
[foresttrolls]Name = foresttrollsEnabled = falseNázvy vanilla nájezdů jsou v exportu WriteDefaultEventDataToDisk. Další podmínky nájezdů zahrnují ConditionPlayersOnlineMin, ConditionWorldAgeDaysMin a ConditionDistanceToCenterMin, plus podmínky podle hráčů, které fungují s modifikátorem světa playerevents. Pamatuj, že StopTouchingMyConfigs v custom_raids.cfg je od verze 1.7.10 ve výchozím stavu true, takže mod už nepřepisuje tvé soubory nájezdů komentáři a chybějícími volbami; wiki stále ukazuje starší výchozí hodnotu.
Testování změn bez zničení světa#
Změna tabulky spawnů ovlivní celý svět od příštího restartu a nájezd, který spawnuje čtyřicet trollů v něčí základně, se nevrátí. Testuj takto:
- Udělej zálohu světa serveru.
- Proveď změnu na kopii: ve vlastním singleplayerovém světě se stejnými mody, nebo ve světě serveru stáhnutém a načteném lokálně.
- Použij ladicí příkazy. S právy admina a devcommands spustí vanilla
event draugr_siegepojmenovanou událost tam, kde stojíš, astopeventji ukončí;randomeventspustí náhodnou. Na dedikovaném serveru devcommands potřebují mod Server Devcommands - viz Server Devcommands. - Zkontroluj log BepInEx na varování o svých souborech.
- Teprve pak zkopíruj soubor na server, restartuj a řekni to skupině.
Na RE:NODE se zálohy dělají na požádání a obnovují jedním tlačítkem a záložka Schedules umí udělat zálohu před plánovaným restartem - dobrá dvojice, když večer měníš tabulky spawnů a chceš ověřenou kopii pro případ, že to skupina nebude chtít.
Proč vlastní spawny a nájezdy selhávají#
Zpráva o nájezdu se objeví, ale nic se nespawnuje. Nájezd začal, ale selhaly podmínky vlastních položek spawnu: špatný biom, spawn jen ve dne v noci, příliš strmá zem nebo nenastavený požadovaný globální klíč. Dokumentace Custom Raids to uvádí jako obvyklou příčinu. Nejdřív uvolni podmínky spawnu.
Nájezd nikdy nezačne. Podmínky nájezdu ho vylučují (NearBaseOnly bez základny poblíž, chybějící klíče), Enabled je false, nebo je s zapnutým UseIndividualRaidChecks jeho vlastní frekvence a šance příliš nízká. Po změnách zkontroluj ladicí výstup.
Změny nedělají nic. Upravil jsi kopii klienta, ne serveru, nebo jsi nerestartoval server. Klienti používají konfigurace serveru.
Položky se ignorují. Překlepy v názvech voleb nebo prefabů. Názvy prefabů rozlišují velikost písmen a jsou to interní názvy, ne zobrazované; běžné vypisuje příkaz spawn a ID předmětů.
Dropy se násobí mimo kontrolu. ScaleByLevel je zapnuté a tvorové mají vysoké počty hvězd, nebo loot násobí i jiný mod. Nastav u té položky ScaleByLevel = false nebo použij DropLimit.
Vanilla spawn se objevuje i po nahrazení. Přidal jsi nové ID místo přepsání vanilla. Najdi vanilla ID v exportu a použij ho.
FAQ#
Potřebují hráči tyto mody, když je má server?
Ano, pro téměř všechno. Spawnování probíhá na klientech a mody posílají konfigurace serveru klientům, kteří mod mají. Výjimkou je vypnutí nájezdů, které funguje s Custom Raids jen na serveru.
Kam patří doplňkové soubory?
Do BepInEx/config vedle hlavních souborů, pojmenované podle vzoru modu, například spawn_that.world_spawners.wolves.cfg. Custom Raids najde své doplňkové soubory i v podsložkách. Spawn That a Drop That načítají další soubory před hlavním souborem, takže hlavní soubor vyhrává každý konflikt; u Custom Raids dej každému nájezdu jedinečný název sekce, aby se tato otázka neřešila.
Mohu měnit tabulky spawnů ve světě, na kterém už hrajeme?
Ano. Tyto mody mění pravidla, ne terén, takže se uplatní od příštího restartu. Už spawnutí tvorové zůstávají, dokud nezemřou nebo nezmizí, a lokální spawnery v už navštívených dungeonech použijí novou šablonu při dalším spawnu.
Mohu nájezdy jen zřídit místo jejich odstranění?
Ano. Zvyš EventCheckInterval nebo sniž EventTriggerChance v custom_raids.cfg. Vanilla modifikátor světa raids také mění frekvenci nájezdů bez modu; jeho hodnoty vypisuje modifikátory a presety světa.
Přežijí tyto konfigurace aktualizaci hry?
Soubory ano. Jestli se mody na nové verzi načtou, je na jejich autorovi a nový obsah hry může přidat nebo přečíslovat vanilla položky. Po patchi aktualizuj mody, znovu vygeneruj exporty a porovnej, než starým ID zase uvěříš.


