Ustawienia Sandbox Project Zomboid Wyjaśnione (Build 42)
Ustawienia sandbox Project Zomboid znajdują się w jednym pliku: Pterodactyl_SandboxVars.lua. Każdy parametr rozgrywki (populacja zombie, mnożniki lootu, XP umiejętności, długość dnia, pogoda) jest tu kontrolowany. To najważniejszy plik na serwerze. Ten przewodnik opisuje plik tak, jak faktycznie zapisuje go Build 42, z prawdziwymi nazwami kluczy i prawdziwymi wartościami domyślnymi.
Ważne: Zatrzymaj serwer przed edycją. PZ zapisuje
SandboxVars.luana nowo przy wyłączaniu i nadpisze twoje zmiany, jeśli edytujesz podczas działania serwera.
Gdzie leży plik
/home/container/.cache/Server/Pterodactyl_SandboxVars.lua
Jeśli zmieniłeś nazwę serwera, zastąp Pterodactyl nazwą serwera.
Jak zbudowany jest plik Build 42
Build 42 zmienił wiele nazw kluczy i przeniósł kilka grup ustawień do zagnieżdżonych tabel. Plik B42 zaczyna się tak:
SandboxVars = {
VERSION = 6,
Zombies = 4,
Distribution = 1,
...
ZombieLore = {
Speed = 4,
...
},
ZombieConfig = {
PopulationMultiplier = 0.65,
...
},
MultiplierConfig = {
Global = 1.0,
...
},
}
Wynikają z tego cztery rzeczy i to właśnie tutaj większość edycji idzie nie tak:
VERSION = 6oznacza format Build 42. Jeśli widzisz niższą liczbę, plik został zapisany przez Build 41 i nie wszystkie klucze poniżej będą obecne.- Zachowanie zombie nie leży na najwyższym poziomie.
Speed,Sight,Hearingi reszta działają tylko wewnątrzZombieLore = { ... }. - Respawn i mnożniki populacji leżą wewnątrz
ZombieConfig = { ... }. - XP umiejętności to tabela (
MultiplierConfig), a nie pojedyncza wartość mnożnika.
Wklejenie klucza na najwyższym poziomie, gdy gra oczekuje go w tabeli, nic nie daje: serwer startuje normalnie i po prostu go ignoruje.
Populacja zombie
Główny regulator populacji leży na najwyższym poziomie i ma sześć stopni, nie pięć.
| Ustawienie | Domyślnie | Skala | Co robi |
|---|---|---|---|
Zombies |
4 (Normal) | 1=Insane, 2=Very High, 3=High, 4=Normal, 5=Low, 6=None | Łączna liczba zombie |
Distribution |
1 (Urban Focused) | 1=Urban Focused, 2=Uniform | Gdzie skupiają się zombie |
ZombieRespawn |
4 (None) | 1=High, 2=Normal, 3=Low, 4=None | Jak często dochodzą nowe zombie |
ZombieMigrate |
true | true/false | Zombie mogą migrować do pustych komórek |
Zwróć uwagę, że Zombies ustawia jednocześnie ZombieConfig.PopulationMultiplier. Gra trzyma je zsynchronizowane: Insane = 2.5, Very High = 1.6, High = 1.2, Normal = 0.65, Low = 0.15, None = 0.0.
Dokładniejsze regulatory populacji leżą wewnątrz ZombieConfig = { ... }:
| Ustawienie | Domyślnie | Zakres | Co robi |
|---|---|---|---|
PopulationMultiplier |
0.65 | 0.0-4.0 | Ogólna populacja, ustawiana przez Zombies |
PopulationStartMultiplier |
1.0 | 0.0-4.0 | Populacja pierwszego dnia |
PopulationPeakMultiplier |
1.5 | 0.0-4.0 | Populacja w dniu szczytowym |
PopulationPeakDay |
28 | 1-365 | Dzień, w którym populacja osiąga szczyt |
RespawnHours |
0.0 | 0.0-8760.0 | Godziny do respawnu zombie w komórce. 0 wyłącza respawn |
RespawnUnseenHours |
0.0 | 0.0-8760.0 | Godziny, przez które chunk musi być niewidziany |
RespawnMultiplier |
0.0 | 0.0-1.0 | Ułamek populacji komórki wracający w każdym cyklu |
ZombiesCountBeforeDelete |
300 | 0-5000 | Limit śledzonych zombie przed czyszczeniem |
Praktyczne strojenie: vanilla B42 ma respawn wyłączony (RespawnHours = 0.0), więc wyczyszczone miasto zostaje wyczyszczone. Jeśli długo działający serwer ma się uzupełniać, potrzebujesz wszystkich trzech kluczy respawnu, na przykład RespawnHours = 168.0, RespawnUnseenHours = 48.0, RespawnMultiplier = 0.1. Jeśli RespawnMultiplier zostanie na 0.0, nic nie zrespawnuje, niezależnie od wartości godzinowych.
Zostaw ZombiesCountBeforeDelete na 300. Podnoszenie tej wartości albo ustawienie 0 to znana przyczyna poważnych problemów z wydajnością.
Zachowanie zombie (wewnątrz `ZombieLore`)
Tu siedzi poziom trudności i wszystko leży wewnątrz tabeli ZombieLore = { ... }. Kilka domyślnych wartości B42 to "Random", co zaskakuje każdego, kto spodziewa się wartości z Build 41.
| Ustawienie | Domyślnie | Skala |
|---|---|---|
Speed |
4 (Random) | 1=Sprinters, 2=Fast Shamblers, 3=Shamblers, 4=Random |
SprinterPercentage |
0 | 0-100, używane tylko przy Speed = 4 |
Strength |
2 (Normal) | 1=Superhuman, 2=Normal, 3=Weak, 4=Random |
Toughness |
4 (Random) | 1=Tough, 2=Normal, 3=Fragile, 4=Random |
Transmission |
1 (Blood and Saliva) | 1=Blood and Saliva, 2=Saliva Only, 3=Everyone's Infected, 4=None |
Mortality |
5 (2-3 dni) | 1=Instant, 2=0-30 sek, 3=0-1 min, 4=0-12 godz, 5=2-3 dni, 6=1-2 tygodnie, 7=Never |
Reanimate |
3 (0-1 minuta) | 1=Instant, 2=0-30 sek, 3=0-1 min, 4=0-12 godz, 5=2-3 dni, 6=1-2 tygodnie |
Cognition |
3 (Basic Navigation) | 1=Navigate and Use Doors, 2=Navigate, 3=Basic Navigation, 4=Random |
Memory |
2 (Normal) | 1=Long, 2=Normal, 3=Short, 4=None, 5=Random, 6=Random between Normal and None |
Sight |
5 (Random between Normal and Poor) | 1=Eagle, 2=Normal, 3=Poor, 4=Random, 5=Random between Normal and Poor |
Hearing |
5 (Random between Normal and Poor) | 1=Pinpoint, 2=Normal, 3=Poor, 4=Random, 5=Random between Normal and Poor |
CrawlUnderVehicle |
5 (Often) | od 1=Never do 7=Always |
ZombiesDragDown |
true | Zombie mogą ściągnąć cię z liny lub krawędzi |
ZombiesFenceLunge |
true | Zombie rzucają się przez niskie płoty |
W Build 42 nie ma klucza MemoryDuration ani w ogóle klucza Smell. Ustawienie pamięci nazywa się Memory.
O sprinterach: domyślne Speed = 4 to Random, a Random korzysta z SprinterPercentage, które wynosi 0. Domyślny serwer B42 nie ma więc żadnych sprinterów. Dla serwera wyłącznie ze sprinterami ustaw Speed = 1. Dla mieszanki zostaw Speed = 4 i podnieś SprinterPercentage (10 do 20 to już brutalnie).
Loot
Build 42 zastąpił dawne listy rzadkości 1-5 mnożnikami zmiennoprzecinkowymi, a nazwy kluczy dostały przyrostek New. FoodLoot, WeaponLoot i OtherLoot już nie istnieją.
| Ustawienie | Domyślnie | Zakres | Obejmuje |
|---|---|---|---|
FoodLootNew |
0.8 | 0.0-4.0 | Jedzenie, które może się zepsuć |
CannedFoodLootNew |
0.6 | 0.0-4.0 | Konserwy |
WeaponLootNew |
0.6 | 0.0-4.0 | Broń biała |
RangedWeaponLootNew |
1.2 | 0.0-4.0 | Broń palna |
AmmoLootNew |
0.6 | 0.0-4.0 | Amunicja |
MedicalLootNew |
0.6 | 0.0-4.0 | Artykuły medyczne |
ToolLootNew |
0.6 | 0.0-4.0 | Narzędzia ogólne |
MechanicsLootNew |
0.6 | 0.0-4.0 | Części samochodowe i narzędzia mechanika |
ClothingLootNew |
0.6 | 0.0-4.0 | Ubrania |
MaterialLootNew |
0.6 | 0.0-4.0 | Materiały do craftingu i budowy |
FarmingLootNew |
0.6 | 0.0-4.0 | Nasiona, łopaty, narzędzia ogrodnicze |
LiteratureLootNew |
0.6 | 0.0-4.0 | Książki i czasopisma |
SkillBookLoot |
0.6 | 0.0-4.0 | Książki od umiejętności |
KeyLootNew |
0.4 | 0.0-4.0 | Klucze |
OtherLootNew |
0.8 | 0.0-4.0 | Wszystko spoza pozostałych kategorii |
Wartość 1.0 oznacza "zgodnie z projektem", więc domyślny plik jest już poniżej tego poziomu w większości kategorii. Podwojenie liczby z grubsza podwaja częstotliwość, z jaką dana kategoria się pojawia.
Respawn lootu to osobna sprawa i w Build 42 nie ma klucza LootRespawn:
| Ustawienie | Domyślnie | Co robi |
|---|---|---|
HoursForLootRespawn |
0 | Godziny gry do ponownego napełnienia przeszukanych pojemników. 0 wyłącza |
SeenHoursPreventLootRespawn |
0 | Blokuje respawn w strefach odwiedzonych w ciągu tylu godzin |
MaxItemsForLootRespawn |
5 | Pojemniki z większą liczbą przedmiotów nie są napełniane |
ConstructionPreventsLootRespawn |
true | Konstrukcje graczy blokują respawn w strefie |
Dla długo działających serwerów: ustaw HoursForLootRespawn = 720 (jeden miesiąc gry) i SeenHoursPreventLootRespawn = 24. Inaczej gracze ogołocą mapę na stałe i taka zostanie.
Zostaw RollsMultiplier na 1.0. Sam plik ostrzega przed zmianą, a wysokie wartości kosztują wydajność.
Czas, pogoda i media
| Ustawienie | Domyślnie | Uwagi |
|---|---|---|
DayLength |
4 (1 godzina, 30 minut) | 1=15 min, 2=30 min, 3=1 godz, 4=1 godz 30 min, 5=2 godz, aż do 27=Real-time |
StartTime |
2 (9 AM) | 1=7AM, 2=9AM, 3=12PM, 4=2PM, 5=5PM, 6=9PM, 7=12AM, 8=2AM, 9=5AM |
StartMonth |
7 (lipiec) | 1-12 |
StartDay |
9 | Dzień miesiąca |
StartYear |
1 | Rok liczony od 1993 |
WaterShut |
2 (0-30 dni) | Kiedy odcinana jest woda. 9 wyłącza odcięcie |
ElecShut |
2 (14-30 dni) | Kiedy pada sieć elektryczna. 9 wyłącza odcięcie |
WaterShutModifier |
14 | Dokładne przesunięcie dni dla wody |
ElecShutModifier |
14 | Dokładne przesunięcie dni dla prądu |
AlarmDecay |
2 (0-30 dni) | Jak długo trzymają baterie alarmów po zaniku prądu |
Temperature |
3 (Normal) | Ciepłota klimatu |
Rain |
3 (Normal) | Częstotliwość deszczu |
W Build 42 nie ma klucza HoursPerDay. Długość dnia to DayLength, a skala sięga aż 27 dla doby w czasie rzeczywistym.
Długo działające serwery: podnieś WaterShutModifier i ElecShutModifier do 60 lub wyżej, albo ustaw WaterShut i ElecShut na 9 i wyłącz odcięcie całkowicie. Inaczej drugi miesiąc zejdzie wyłącznie na noszenie wody.
XP umiejętności (wewnątrz `MultiplierConfig`)
Nie ma klucza XpMultiplier. Build 42 używa tabeli MultiplierConfig = { ... } z globalnym tempem oraz jednym wpisem na umiejętność.
MultiplierConfig = {
Global = 1.0,
GlobalToggle = true,
Fitness = 1.0,
Strength = 1.0,
Woodwork = 1.0,
...
}
| Ustawienie | Domyślnie | Co robi |
|---|---|---|
Global |
1.0 | Tempo rozwoju wszystkich umiejętności, 0.0 do 1000.0 |
GlobalToggle |
true | Gdy true, wszystkie umiejętności używają Global, a wartości pojedyncze są ignorowane |
| Wpisy umiejętności | po 1.0 | Fitness, Strength, Aiming, Mechanics, Cooking, Blacksmith i reszta |
Aby potroić XP wszędzie, ustaw Global = 3.0 i zostaw GlobalToggle = true. Aby podkręcić tylko broń palną, ustaw GlobalToggle = false i podnieś Aiming oraz Reloading. Zmiana pojedynczej wartości, gdy GlobalToggle nadal jest true, nic nie daje i to najczęstsza skarga dotycząca XP, jaką widzimy.
Dwa pokrewne klucze leżą na najwyższym poziomie: CharacterFreePoints (domyślnie 0, dodatkowe punkty przy tworzeniu postaci) i LevelForMediaXPCutoff (domyślnie 3).
Pojazdy
| Ustawienie | Domyślnie | Efekt |
|---|---|---|
EnableVehicles |
true | Czy pojazdy w ogóle się pojawiają |
CarSpawnRate |
3 (Low) | 1=None, 2=Very Low, 3=Low, 4=Normal, 5=High |
ChanceHasGas |
2 (Normal) | 1=Low, 2=Normal, 3=High |
InitialGas |
2 (Low) | od 1=Very Low do 6=Full |
LockedCar |
4 (Sometimes) | od 1=Never do 6=Very Often |
CarGeneralCondition |
3 (Normal) | od 1=Very Low do 5=Very High |
VehicleEasyUse |
false | Usuwa zamki i wymóg kluczyków |
CarGasConsumption |
1.0 | Jak paliwożerne są pojazdy |
Świat i budowanie
| Ustawienie | Domyślnie | Efekt |
|---|---|---|
ConstructionBonusPoints |
3 (Normal) | Dodatkowe punkty wytrzymałości konstrukcji graczy |
AllClothesUnlocked |
false | Wszystkie ubrania dostępne przy tworzeniu postaci |
MaxFogIntensity |
1 (Normal) | 1=Normal, 2=Moderate, 3=Low, 4=None |
MaxRainFxIntensity |
1 (Normal) | 1=Normal, 2=Moderate, 3=Low |
EnableSnowOnGround |
true | Śnieg zalega na ziemi |
Basement.SpawnFrequency |
4 (Sometimes) | Piwnice z Build 42, wewnątrz tabeli Basement = { ... } |
Map.AllowWorldMap |
true | Wewnątrz tabeli Map = { ... }, razem z AllowMiniMap (domyślnie false) |
Zwróć uwagę, że MaxFogIntensity i MaxRainFxIntensity to w Build 42 stopnie całkowite, a nie dawne wartości zmiennoprzecinkowe 0.0-1.0. MaxFogIntensity = 0.0 nie oznacza "brak mgły", to nieprawidłowy stopień.
Jak bezpiecznie edytować plik
- Zatrzymaj serwer w panelu. To nie podlega negocjacji
- Otwórz
/home/container/.cache/Server/Pterodactyl_SandboxVars.luaw menedżerze plików albo przez SFTP - Znajdź ustawienie przez Ctrl+F i sprawdź, czy leży na najwyższym poziomie, czy wewnątrz
ZombieLore,ZombieConfig,MultiplierConfig,MaplubBasement - Zmieniaj tylko wartość po
=. Nazwy klucza, przecinka i otaczających nawiasów nie ruszaj - Zapisz plik
- Uruchom serwer
Wartości muszą być poprawnym kodem Lua: Speed = 1, a nie Speed = "Sprinters". Wartości logiczne zapisuje się jako gołe true / false, nigdy w cudzysłowie. Klucze mnożników przyjmują liczby dziesiętne (FoodLootNew = 1.2), klucze stopni liczby całkowite (CarSpawnRate = 4).
Jeśli serwer nie chce wystartować po edycji, prawie na pewno zgubiłeś przecinek albo nawias zamykający. Konsola wskaże linię.
Które zmiany działają na istniejącym świecie
Ustawienia sandbox są czytane przy tworzeniu świata, więc wiele z nich dotyczy tylko terenu, który jeszcze nie został wygenerowany. Ustawienia, które działają na istniejącym zapisie po restarcie:
- Wszystko w
ZombieLore(Speed,Strength,Cognition,Sight,Hearing) - Klucze respawnu w
ZombieConfig(RespawnHours,RespawnUnseenHours,RespawnMultiplier) - Respawn lootu (
HoursForLootRespawn,SeenHoursPreventLootRespawn) - Tempo XP w
MultiplierConfig - Terminy odcięcia wody i prądu, o ile odcięcie jeszcze nie nastąpiło
Ustawienia, które nie zmieniają istniejącego świata wstecz:
StartMonth,StartDay,StartTime,StartYear- Mnożniki
*LootNewdla pojemników, które już się wygenerowały CarSpawnRatei rozmieszczenie pojazdów w zbadanych chunkachBasement.SpawnFrequency, bo piwnice powstają razem z chunkiem
Presety sandbox
Project Zomboid ma wbudowane presety, które można wybrać w grze w menu Custom Sandbox przed wygenerowaniem świata: Apocalypse (domyślny), Survivor, Survival, Builder, Initial Infection, Six Months Later. Na serwerze dedykowanym nie ma wyboru presetu, więc praktyczna droga to ustawić preset w grze jednoosobowej i skopiować wartości z pliku SandboxVars.lua tego zapisu do pliku serwera. Zachowaj strukturę zagnieżdżenia przy kopiowaniu.
FAQ
Moje zmiany ciągle się cofają. Edytowałeś przy działającym serwerze. PZ zapisał swój stan z pamięci przy wyłączaniu i nadpisał twój plik. Zawsze najpierw zatrzymaj serwer.
Zmieniłem ustawienie zombie i nic się nie stało.
Najprawdopodobniej umieściłeś je na najwyższym poziomie. Speed, Sight, Hearing, Memory, Toughness i reszta działają tylko wewnątrz tabeli ZombieLore = { ... }. Ta sama pułapka dotyczy RespawnHours, które należy do ZombieConfig.
Dlaczego zombie respawnują mimo ustawienia RespawnHours?
Albo odwrotnie: nic nie respawnuje. Liczą się wszystkie trzy klucze. RespawnHours ustawia cykl, RespawnUnseenHours uzależnia go od widoczności, a RespawnMultiplier decyduje, ile wraca. B42 dostarcza wszystkie trzy praktycznie wyłączone.
Gdzie jest XpMultiplier?
Nie ma go. Build 42 używa MultiplierConfig.Global, z GlobalToggle = true, żeby działało na każdą umiejętność.
Czy mogę zmieniać ustawienia na żywo przez /changeoption? Tylko niewielką część (PVP, max players, ustawienia głosowe). Wartości sandbox nie dają się zmienić na żywo, wymagają restartu.
Gdzie znajdę pełne wartości domyślne vanilli?
Uruchom świeży serwer. Panel generuje SandboxVars.lua z wszystkimi wartościami domyślnymi przy pierwszym starcie, a nad każdym kluczem znajduje się komentarz ze skalą i wartością domyślną. To ten plik jest punktem odniesienia, a nie stary poradnik do Build 41.
Czy wyższa populacja zombie odbija się na wydajności?
Tak, znacząco. Podwojenie PopulationPeakMultiplier dokłada mniej więcej 30% do zużycia RAM i obciążenia CPU. Zaplanuj to naszym kalkulatorem RAM.
Czy mody dodają własne ustawienia sandbox?
Niektóre tak. Mody rejestrujące opcje sandbox dodają swoje pola automatycznie przy wczytaniu i pojawiają się one w SandboxVars.lua po następnym starcie serwera.
