>> Spielanleitung >  >> Spielanleitungen

Sauerstoff nicht enthalten – Wie man einen Asteroiden erschafft

Dieser Leitfaden behandelt die Grundlagen der Arbeit mit YAML-Dateien beim Entwerfen einer benutzerdefinierten Welt für Oxygen Not Included.

Einführung

Die hier aufgeführten Informationen werden hoffentlich den Lernprozess für alle verbessern, die daran interessiert sind, Asteroiden ohne Sauerstoff zu modifizieren, und werden hoffentlich mehr Leute dazu ermutigen, dies zu tun.

Da es anscheinend kein Wiki zum Modden von ONI gibt, wird dieser Leitfaden teilweise als Sammelstelle für Informationen im Zusammenhang mit Worldgen fungieren. Ich kann hier nur das zugegebenermaßen unvollständige Wissen festhalten, das ich mir in der kurzen Zeit, in der ich das Spiel modde, angeeignet habe. Ich plane, diesen Leitfaden weiter zu aktualisieren, wenn ich mehr über Worldgen lerne und mehr Zeit zur Verfügung habe. Irgendwann werde ich einen Anhang hinzufügen.

Um YAML-Dateien zu bearbeiten, empfehle ich die Verwendung von Visual Studio Code und viel Geduld, während Sie lernen, die Sprache des Spiels zu sprechen.

Dateispeicherorte

Dieser Abschnitt des Handbuchs listet und beschreibt die Orte, auf die Sie zugreifen müssen, wenn Sie Ihren Asteroiden erstellen.

Elemente

OxygenNotIncluded_DataStreamingAssetselements

Dieser Ordner enthält die ID jedes im Spiel verwendeten Elements, z. B. flüssiger Wasserstoff (LiquidHydrogen).

Andere IDs finden Sie im Verzeichnis „worldgen“. Die relevantesten davon sind „borders.yaml“, die die Grenztypen der Unterwelt auflistet, und „mobs.yaml“, die die Mehrheit der Lebewesen (nur Basis-Morph) und Pflanzen sowie einige Geysire auflistet.

Vorlagen

OxygenNotIncluded_DataStreamingAssets-Vorlagen

Dieser Ordner enthält Vorlagen von Stützpunkten und Points of Interest (POI). Vorlagen können im Spiel im Sandbox- und/oder Debug-Modus erstellt und in einer .yaml-Datei gespeichert oder manuell in einer .yaml-Datei erstellt werden.

POI sind die Ruinen vergangener Kolonien, die zufällig in der Spielwelt generiert werden. Die Startbasis, die in „Basen“ zu finden ist und aus Ihrer unmittelbarsten Umgebung (der Druckkapsel, dem Oxylitklumpen, dem Boden usw.) am Anfang jeder neuen Karte besteht, ist das andere Hauptbeispiel für eine Vorlage.

Sie könnten, wenn Sie wollten, Ihre gesamte Welt aus Vorlagen erstellen und keine zufällig generierten Elemente auf der Karte haben. Normalerweise sind Vorlagen jedoch eine Möglichkeit, Ihrer Karte Geschmack zu verleihen und bestimmte Features an bestimmten Stellen zu generieren. Geysire und Vulkane sind hervorragende Beispiele dafür.

Weltgen

OxygenNotIncluded_DataStreamingAssetsworldgen

Dieses Verzeichnis enthält Dateien und Ordner, die sich auf die zufällige Erzeugung von Welten beziehen.

„worldgenworlds“

Welten sind die Sammlung von Unterwelten, die zusammen die Karte füllen und eine vollständige Welt erschaffen.

„worldgensubworlds“

Unterwelten sind das, was im Spiel allgemein als Biome bekannt ist. Sie sind normalerweise durch eine Grenze aus Abyssalit oder Granit von anderen Unterwelten getrennt.

„Weltgenbiome“

Biome bestimmen die Art der Geländeelemente, die für jede Unterwelt generiert werden, und die Parameter für ihre Generierung. Hier haben Sie die direkteste Kontrolle darüber, wie Ihre Unterwelten aussehen werden.

„worldgenfeatures“

Features sind optionale Komponenten der Subworld-Generierung. Sie sind eine sehr nützliche Methode, um Taschen mit bestimmten Elementen in eine Unterwelt, z. B. ein Gewässer, einzufügen. Im Gegensatz zu Vorlagen und POI werden ihre Form und Größe zufällig generiert, gemäß den in ihrer .yaml-Datei festgelegten Parametern. Wo POI normalerweise Geysire oder Überreste menschlicher Aktivitäten sind, orientieren sich Merkmale eher an natürlichen Formationen von Elementen.

Subworld-Features sollten nicht mit globalen Features verwechselt werden, die in „StreamingAssetstemplatesfeatures“ zu finden sind. Die einzigen globalen Standardfunktionen sind generische Geysire und Vulkane.

„Weltrauschen“

Rauschen bestimmt das Muster, in dem Biomdaten generiert werden. Dieselben Biomdaten haben je nach gegebenem Rauschparameter eine unterschiedliche Verteilung und Struktur.

Welten

In diesem Abschnitt des Leitfadens werden die einzelnen Teile einer World-YAML-Datei erläutert. Das verwendete Beispiel ist „worldsVolcanic.yaml“. Volcanea wird für den größten Teil dieses Leitfadens als Beispielwelt verwendet.

Name und Beschreibung können nicht ohne einen Compiler bearbeitet werden, was in dieser Anleitung nicht behandelt wird.

Schwierigkeitsgrad und Stufe bestimmen die Position der Welt im Weltauswahlmenü. Die einstellbaren Standard-Schwierigkeitswerte sind:

0. Optimal
1. Wahrscheinlich
2. Wahrscheinlich
3. Moderat
4. Randbemerkung
5. Schlank

SpriteName bezeichnet das Bild, das für Ihre Welt im Weltauswahlbildschirm des Spiels verwendet wird.

CoordinatePrefix ist der abgekürzte Name, der als Weltkoordinaten vor der Seed-Nummer erscheint.

DisableWorldTraits deaktiviert die Generierung von Weltmerkmalen für Ihren Asteroiden. Es kann auf „true“ gesetzt werden und ist standardmäßig „false“. Weltmerkmale finden Sie im Verzeichnis „worldgentraits“. Dieser Parameter erscheint nicht in Volcanea oder einem Standard-Asteroiden außer Terra. Wenn Sie keine Welt erstellen, die im Stil den Standardwelten sehr ähnlich ist, sollten Welteigenschaften deaktiviert werden.

Worldsize bestimmt die Abmessungen Ihrer Welt in Breite (X) und Höhe (Y). Die Breite muss kleiner als die Höhe sein, sonst stürzt das Spiel ab.

SubworldFiles sind alle Subworld-Dateien, die zur Verwendung in Ihrer Welt während des Worldgen geladen werden. Um eine Unterwelt in Ihrer Welt zu generieren, muss sie hier aufgelistet werden, damit das Spiel darauf zugreifen kann. Das verwendete Verzeichnis ist worldgen, also müssen sich alle Subworld-Dateien in diesem Verzeichnis befinden. Der Standardordner für Unterwelten ist worldgensubworlds. Unterwelten werden detailliert im Unterwelten-Abschnitt dieses Handbuchs besucht.

StartSubworldName ist der Ort der Startunterwelt.

StartingBaseTemplate ist der Dateiname der Startbasis, zu finden in „StreamingAssetstemplatesbases“.

StartingBasePositionHorizontal und StartingBasePositionVertical bestimmen die Position der Startbasis innerhalb der Startunterwelt, standardmäßig ungefähr in der Mitte.

globalFeatureTemplates bestimmt den Typ und die Anzahl der weltweit generierten Vorlagen. Standardmäßig werden 12 Geysire zufällig auf der ganzen Welt in Unterwelten generiert, die globale Vorlagen zulassen. Globale Funktionen befinden sich in „StreamingAssetstemplatesfeatures“.

In UnknownCellsAllowedSubworlds bestimmen Sie, wie Unterwelten in der Welt generiert werden.

Tagcommand bestimmt den Standortparameter für die Generierung von Unterwelten. Diese sind:

Standard, der die Startunterwelt generiert.

DistanceFromTag, wodurch die Unterwelt in einer festgelegten Entfernung vom angegebenen Tag erzeugt wird. Für diesen Typ muss ein Entfernungsbereich festgelegt werden.

AtTag, das die Unterwelt an der Position des angegebenen Tags erzeugt.

Tag bestimmt den Referenzpunkt für die Standortgenerierung. Diese sind:

  • AtStart, das den Startort der Welt als Referenzpunkt verwendet.
  • AtDepths, das den Boden der Welt als Bezugspunkt verwendet.
  • AtSurface, das die Spitze der Welt als Bezugspunkt verwendet.

MinDistance und maxDistance legen die minimale und maximale Entfernung fest, bei der die Unterwelt vom angegebenen Referenzpunkt erzeugt werden kann. Diese Parameter können denselben Wert haben. Wenn sie unterschiedliche Werte haben, z. B. min:1 und max:2, wird die Unterwelt in diesem Bereich generiert.

Der Befehl bestimmt die Art und Weise, wie die Unterwelt im Verhältnis zu anderen Unterwelten erzeugt wird. Diese sind:

  • Ersetzen, wodurch die angegebene Unterwelt in allen Instanzen des angegebenen Ortes vollständig generiert wird. Alle zuvor am Standort erstellten Unterwelten werden entfernt.
  • UnionWith, das eine Zufallszahl der angegebenen Unterwelt am angegebenen Ort ohne Rücksicht auf die Grenzen der Unterwelt generiert. Dies sollte zu einer partiellen Subworld-Grenze führen, an der die mit UnionWith generierte Subworld mit den angrenzenden Subworlds verschmilzt. Wenn der angegebene Ort ein Bereich ist, wird die zufällige Anzahl der generierten Unterwelten über den Bereich verteilt.
  • ExceptWith, das nur in Verbindung mit UnionWith verwendet werden kann, um seinen Bereich einzuschränken. Ein Beispiel finden Sie im nächsten Abschnitt, wo jeder Schritt der Entstehung von Volcanea erklärt und illustriert wird.

SubworldNames bestimmt die von Dateiname generierten Subworlds.

TemperatureRanges bestimmt die durch die Temperatur erzeugten Unterwelten. Es können mehrere Temperaturwerte angegeben werden. Jede in subworldFiles angegebene Unterwelt, die zu den angegebenen Temperaturen passt, wird zufällig generiert. Eine Liste der Temperaturwerte des Spiels findet sich in „worldgen“.

Volcanea

Dieser Abschnitt des Leitfadens erklärt das Weltgen von Volcanea.

UnknownCellsAllowedSubworlds

In diesem Abschnitt der .yaml-Datei werden die Unterwelten von Volcanea Block für Block generiert, beginnend in der Mitte und sich nach außen bewegend. Worldgen liest diese linear, sodass Unterwelten, die später in der .yaml-Datei generiert werden, immer Unterwelten überschreiben, die vor ihnen generiert wurden.

SandstoneStart, SandstoneMiniMetal und SandstoneMiniWater bilden die Startunterwelt des Spielers und entsprechen dem gemäßigten Biom im Spiel. Siehe unten für einen Hinweis zum Balancing.

Unmittelbar um sie herum befinden sich HotMarsh- und Jungle-Unterwelten, die Schleim- bzw. ätzenden Biomen im Spiel entsprechen.

Weiter draußen und an den Rändern der Karte werden auch Ozean- und Gefrorene Unterwelten generiert, die Salz- bzw. Kältebiomen im Spiel entsprechen.

Alle diese Unterwelten, die mit dem Befehl „Ersetzen“ erstellt wurden, sollten klare Grenzen haben, ohne sich zu überschneiden. Worldgen ist jedoch selten, wenn überhaupt, perfekt.

Eine standardmäßige 256×384-Welt lässt ungefähr 4 Blöcke horizontal und 5 Blöcke vertikal vom Startort aus zu, und es ist nicht erforderlich, eine minDistance von mehr als 5 zu verwenden. Es ist erforderlich, eine maxDistance von 999 für den 5. Block zu verwenden, da hier gesehen, oder worldgen wird brechen.

Hinweis zum Ausgleich

Die Startunterwelt besteht normalerweise aus 7 „Mini“-Unterwelten, die in Form eines Sternchens geformt sind. In Volcanea, wo zwei Unterwelten an Position 1-1 generiert werden, besteht die gleiche Chance, dass entweder MiniMetal oder MiniWater in jedem der Blöcke um SandstoneStart herum generiert werden. Das bedeutet, dass im schlimmsten Fall einer von 32 Samen nur MiniMetal- oder MiniWater-Unterwelten in der Start-Unterwelt haben wird. Dies ist in vielen Situationen wichtig zu beachten, aber vielleicht am wichtigsten, wenn Gewässer in der Startunterwelt erzeugt werden.

Mini-Unterwelten in der Start-Unterwelt, nummeriert von 1-7.

Öltaschen

Hier verwendet Worldgen den unteren Rand der Karte als Referenzpunkt und generiert Öl-Unterwelten in einer Entfernung von 1-2 Blöcken von diesem Punkt. An diesem Punkt werden alle zuvor an diesen Orten erstellten Unterwelten überschrieben. Beachten Sie, dass AtDepths sich auf den gesamten unteren Rand der Karte bezieht, nicht auf die Mitte oder einen Punkt auf dem unteren Rand der Karte.

Oberfläche

Hier erstellt worldgen die Oberflächenunterwelt und fügt sofort eine Schicht Oberflächenschutt auf der Oberfläche der Welt hinzu.

MagmaVent

Hier erzeugt Worldgen die Magmaquellen, die auf Volcanea so erkennbar sind. Ein Standortwert von 1-4 von Tiefen bringt die Magmaschlote direkt an die Grenze des Startstandorts. Dieses erste UnionWith erzeugt Magmaschlote überall auf der Welt innerhalb dieses Bereichs, während das zweite UnionWith Magmaschlote am Rand der Karte erzeugt. Beachten Sie, dass AtEdge sich auf beide Kanten der Karte bezieht, obwohl Asteroiden, da sie als rund behandelt werden, technisch als eine Kante betrachtet werden.

Die zweite UnionWith ist wichtig, da die Magmaquellen ohne sie ziemlich dünn über die untere Hälfte der Karte verteilt wären. Das Hinzufügen eines zweiten UnionWith mit einer relativ kleinen Reichweite von 0-1, um am Rand der Welt Schlote zu erzeugen, stellt sicher, dass jeder Volcanea-Samen das charakteristische Magma auf beiden Seiten der Karte aufsteigen lässt. Das ExceptWith stellt sicher, dass diese Entlüftungsöffnungen niemals innerhalb von 1-4 Blöcken von der Oberfläche erzeugt werden. Ohne sie würden die Magmaschlote am Rand bis zur Oberfläche entstehen.

Beachten Sie, wie die MagmaVent-Unterwelt im Bild unten andere Unterwelten sowohl unterbricht als auch von ihnen unterbrochen wird, was auch im obigen Bild von OilPockets zu sehen ist. Dies ist ein Ergebnis der UnionWith-Generierung.

Unten

Hier entsteht der mit Magma gefüllte Boden der Karte.

Oberflächenfelsen

Hier entsteht ein etwas eigenartiger Aspekt von Volcanea. Oberflächenklippen werden bis in den Körper der Welt hinein erzeugt, was gelegentlich zu unterirdischen Raumtaschen führt. Da die SurfaceCrags-Unterwelt den Gravitas-POI enthält, werden Sie gelegentlich Samen finden, in denen Gravitas unter der Oberfläche generiert wurde.

Weltgröße

Entfernungen sind im Weltgen immer mehrdeutig. Es gibt immer Überschneidungen, und UnionWith gehorcht anderen Abstandsregeln als Replace. Um den Abstand Ihrer Unterwelten zu perfektionieren, müssen Sie die Welt testen und sie über viele Weltgene hinweg optimieren.

Unterwelten

Dieser Abschnitt erklärt, wie Unterwelten generiert werden.

The default subworld groups, each of which corresponds to a folder in the “subworlds” directory, are:

  • Barren
  • Wald
  • Frozen
  • Jungle
  • Magma
  • Sumpf
  • Ozean
  • Öl
  • Rust
  • Sandstone
  • Space

Each subworld group contains a number of subworlds. In Volcanea, the Sandstone subworlds used in worldgen are “SandstoneStart”, “SandstoneMiniMetal”, and “SandstoneMiniWater”. (“Sandstone” is loaded, but not generated.) The topographical differences between those subworlds are relatively minor. The most notable difference is the presence of lakes, which “SandstoneMiniMetal” does not generate.

Looking at other Sandstone subworlds not used by Volcanea, we can find subworlds with similar topographies but different environments, as in the case of the “Cold” Sandstone variants. Note the only difference between the two subworlds below, “SandstoneMiniMetal” and “SandstoneMiniMetalCold”, is the temperatureRange parameter.

More noticeable differences can be found elsewhere. “JungleFrozen”, a subworld not used in Volcanea, contains no lifeforms indigenous to the “Jungle” subworld, except the morb. This is because the flora and fauna of the Jungle subworld require high temperatures to grow. See below.

This example should be followed as a rule. Generating critters or plants in a subworld that is too cold or hot for them to survive has very limited function and is generally bad design.

Subworld borders should be an important consideration in this regard. Avoid generating subworlds adjacent to others that vary drastically in temperature without an abyssalite border.

An exception to this can be seen in the Oasisse asteroid, where part of the world’s difficulty is in the need to quickly insulate the borders of the starting subworld against the enroaching heat of the surrounding subworlds.

By default, starting subworlds have a granite (“rocky”) border, which offers limited insulation. Abyssalite (“hardToDig”) border should not be used for the starting subworld, primarily so that the player has the opportunity to explore without needing a Duplicant skilled in Superhard Digging.

More creative uses of worldgen will naturally deviate further from typical world types, and may bend or break the usual rules of world building. See below for an example I generated for the sake of this guide. Whatever type of world you build, the most important criterion to hold it to should be whether or not other players will find it fun to create a colony in it.

Below are all the subworld parameters whose functions I have tested and understand to some degree.

biomeNoise determines the subworld’s terrain structure. An illustration of each noise type will be given in the Noise section of the guide.

temperatureRange determines the temperature of the subworld. Possible temperature ranges can be found in “worldgentemperatures.yaml”.

pdWeight determines the size of the subworld. Smaller values generate smaller subworlds.

minChildCount seems to determine the population of the subworld, with higher values seeming to generate less critters and plants. More testing is needed.

borderOverride forces the given subworld border type. Possible border types can be found in “worldgenborders.yaml”.

biomes references biome data (“name”), found in “worldgenbiomes”, determines the distribution of that data throughout the subworld when referencing multiple biomes (“weight”), and determines the flora and fauna of the subworld (“tags”).

centralFeature and features determine which features can be generated in the subworld, but do not guarantee that any feature will be generated. I have not tested centralFeature enough to determine how it is distinguished from other features, but I would assume that it takes precedence during worldgen. Features can be found in the “worldgenfeatures” directory.

pointsOfInterest determines which templates will be generated in the subworld. If a subworld lists a POI to be generated, exactly one instance of all instances of that subworld in the world will have the given POI generated in it. If multiple POI are listed, each POI will have equal chance of being generated.

tags assigns particular limits to the subworld. I have not tested the function of most of these. NoGlobalFeatureSpawning is the one that I have found to be most relevant. Global features by default are geysers, vents, and volcanoes. Global features can be found in the “StreamingAssetstemplatesfeatures” directory.

Biomes

This section of the guide explains how biomes work, and provides illustrations of different biome data.

Biomes are the elements that make up the terrain of subworlds. The distribution of solid elements, gases, and liquids are all determined by the subworld’s biome. In default biomes, with the exception of magma and liquid hydrogen and oxygen, liquids are not generated. When generating bodies of water for the player, features are used instead. This is because, unless the liquid occupied the majority of space in the subworld, using biome data to generate water would create rivulets and scattered pockets of it throughout the subworld, which would be disruptive rather than functional.

The image below is of “biomesMagma.yaml”.

MagmaPool, MagmaBed, CooledMagmaBed, and MagmaVent are the sub-biomes, which are specified in the subworld .yaml, below.

In the MagmaVent subworld given above (right), the sub-biome used is MagmaVent. Therefore, when generating a MagmaVent subworld, worldgen will assign it the content given in the MagmaVent sub-biome, namely obsidian and magma.

bandSize dictates how much of a given element will be generated. In theory, if two elements share a bandsize of 0.5 in a sub-biome with no other elements, they should have equal distribution in that biome. Bandsize does not always follow the expected logic, however.

In order to illustrate bandsize in worldgen, I have generated a sample world filled with columns of duplicated MagmaVent subworlds. From outermost (0-0) to innermost (4-4), the bandsize of obsidian/magma in each column is 2.0/0.1 (0-0), 1.5/0.1 (1-1), 1.0/0.1 (2-2), 0.5/0.1 (3-3), 0.01/0.1 (4-4).

As you can see, 3-3 by no means has 5 parts obsidian to 1 part magma. Since I do not have access to the game code and do not have a background in mathematics, I can only guess at how bandsize is generated through experience and testing in worldgen. At a certain point it becomes intuitive, and I recommend experimenting on your own until you reach that point.

Features and POI

This section of the guide explains what features and POI are and the difference between them.

Features

This is “featuresjungleBleachRoom.yaml”, a default feature generated in Jungle subworlds.

Shape determines the shape of the feature. Known shapes are:ShortWide, TallThin, Blob, Splat, Circle, and Square.

borders seems to extend the elements listed under “RoomBorderChoices” beyond the area set by blobSize by the given number of cells. Needs further testing.

blobSize determines the size of the feature, measured in cells.

RoomCenterElements generates elements in the center of the feature.

RoomBorderChoices generates the feature’s border. Multiple border types can be used to restrict a certain element to one section of the border.

Element generates the given element. Element id’s can be found in the “StreamingAssetselements” directory.

Weight determines how much of the given element will be generated relative to other elements.

Points Of Interest

This is a custom POI, created in debug mode then edited in .yaml. The contents of the POI are shown by the selected cells in the picture below.

Default POI .yaml’s tend to be exceptionally long. Because there are no randomly generated elements in POI, each .yaml contains a cell-by-cell list of all of its elements and their properties.

Cells lists every gas, liquid, solid, or special element in the POI. The properties of elements can be:mass, temperature, location_x, location_y, diseaseName, diseaseCount.

Buildings lists the structures in the POI with which the player can interact, e.g., heatsinks. These are usually destructible.

pickupables lists all the non-elemental objects in the POI that dupes can sweep, e.g., seeds.

ElementalOres lists the elemental objects in the POI that dupes can sweep, e.g., water bottles.

OtherEntities lists anything which does not fit in or is an exception to the above types, e.g., critters. These are usually indestructible.

Features and POI are distinct in two main ways.

First, features are randomly generated during worldgen. POI have no variation and are generated exactly as they appear in their template.

Second, when a subworld .yaml contains any number of POI, one of the given POI will always be generated in one instance of that subworld in the world. Further, only one of each POI can be generated in the same world. If “poi_magma_bigvolcano” exists in the world, no other instance of it can be generated. Features, however, may or may not be generated in a given subworld, and do not consider features generated in subworlds other than their own.

In the Frozen subworld, as with most other subworlds that generate POI, there are multiple POI groupings.

One POI in each of these groupings will be generated in a subworld somewhere in the world, provided there are enough subworlds to fit them.

Each POI has the same chance of being generated as every other POI in its grouping.

Troubleshooting

This section of the guide goes over the different types of worldgen errors and crashes, and common causes of each.

Before you start editing, create a backup of “StreamingAssets”, then create a subdirectory in “worldgen”. Keep all the worldgen files that you edit in that subdirectory, excepting POI, which must remain in the default POI directory in order to be generated.

Be sure to maintain the spacing rules shown in any default .yaml while editing. Failing to do so will usually cause gamecrash.

Because the game is so fragile to alterations in .yaml’s, you will probably encounter a lot of crashes when you first start, and much of the time you will probably not feel sure what caused the crash.

The most useful piece of advice I can impart is to test worldgen after even the smallest changes. It can be a little tedious to exit the game only to make the slightest change to your .yaml before you test it again, over and over, but by doing so you will almost certainly save yourself from having to backtrack across several changes without knowing which caused the crash or error, and risk losing track of what you changed to the point that you have to reconstruct your entire worldgen.

There are two common points in worldgen where errors will occur, pictured below.

If the loading bar resets itself multiple times from “freezing ice formations”, the asteroid will load as a block of either abyssalite or unobtainium. This usually means that your error is related to the blocking of subworlds, that is, dividing the world into blocks and assigning a subworld to each. Look for errors in your world .yaml first, or in how your subworld borders are generated.

If the loading bar freezes at “establishing personal boundaries”, your error is mostly likely related to biome or subworld generation. If a subworld is attempting to access biome data that does not exist, for example, you will face this error. Look for errors in your subworld .yaml’s first.

The black hole can be caused by the tiniest of things. A typo somewhere in one of your files, weighting a subworld outside the accepted parameters, generating an invalid POI, a line of bad code basically anywhere in any of the files used in worldgen… pretty much anything can cause a black hole. They are usually triggered when attempting to load the world selection screen.

The best way to deal with black holes is to revert to a stable version of worldgen, figure out what you did wrong in the process, and try again.

Miscellanea

Traits

While most modded worlds will have world traits disabled, there is room for ones that follow the rules of default worlds closely enough that world traits could be enabled without disrupting worldgen. In these cases, custom world traits could be created to give the player an additional level of control over worldgen. Default world traits are found in the “worldgentraits” directory. Note that a decompiler would be needed to make custom world traits.


Spielanleitungen