Overview
Keine Lust mehr auf langes Rumsuchen bis Du die Rezepte gefunden hast um etwas herzustellen? Du bist gelangweilt vom ewigen rumprobieren und scheitern? Dann schau’ Dir meinen deutschen Crafting-Guide zu DoS2 (SE) an 🙂
Datenherkunft, wie komme ich an die Daten?
Grundsätzlich ist es relativ einfach, an die Rohdaten von Divinity: Original Sin 2 zu gelangen.
Die Aufarbeitung der Daten ist eine andere Geschichte, aber mit etwas Programmierarbeit mit VBA via Microsoft Excel konnte ich die verschiedenen Datenpakete recht einfach zuteilen. Natürlich ist auch jede andere Skriptsprache nutzbar, wie beispielsweise Perl.
Rezeptrohdaten holen
In der Bibliothek die Eigenschaften von Divinity: Original Sin 2 öffnen:
Rechtsklick auf den Bibliotheks-Eintrag, im Kontextmenü auf “Eigenschaften” klicken.
Nun in das Register “DLC” wechseln und den Eintrag “Divinity Engine 2 Data” anhaken und das Fenster schließen.
Nun sollten wenige hundert MB zusätzlich heruntergeladen werden und die Verzeichnisse die wir im Folgenden benötigen werden angelegt.
Wir starten damit eine Datei aus dem Installationsverzeichnis in ein Arbeitsverzeichnis zu kopieren:
- Deine Steam-Bibliothek steamapps common Divinity Original Sin 2 Data Editor Mods Shared Stats ItemCombos ItemCombos.stats
Diese Datei ist ähnlich einer .xml-Datei aufgebaut und kann ggf. auch direkt mit Microsoft Excel begutachtet werden. Hierbei sind für uns folgende Felder von Interesse:
- Result 1 (Ergebnis 1)
- Result 2 (Ergebnis 2)
- Object 1 (benötigtes Objekt 1)
- Object 2 (benötigtes Objekt 2)
- Object 3 (benötigtes Objekt 3)
- Object 4 (benötigtes Objekt 4)
- Object 5 (benötigtes Objekt 5)
- Using
- CraftingStation (benötigte Handwerksstation)
Manche Items besitzen nicht alle Feldangaben, hier als Beispiel der erste Eintrag:
In diesem Beispiel benötigt der Gegenstand “TOOL_Puch_Dust_Bone_A” lediglich zwei Objekte, nämlich “Bone” und “LAB_MortarPestle_A”. Das Rezept nennt sich dann “Bone_LAB_MortarPestle_A”. Die etwas kryptischen Namen kann man vorerst ignorieren, da kommen wir später noch dazu.
Handwerksstationen hinzufügen
Wir arbeiten uns hier weiter und möchten nun etwaige Handwerksstationen hinzufügen. In der ItemCombos.stats haben manche Items den Wert “CraftingStation” – Feld “Value”, dies ist aber eine Zahl. Um an die Handwerksstation zu gelangen die wir dafür benötigen, greifen wir auf die nächste Datei zu:
- Deine Steam-Bibliothek steamapps common Divinity Original Sin 2 Data Editor Mods Shared Stats ItemCombos CraftingStationsItemComboPreviewData.stats
Die Datei ist ähnlich wie die ItemCombos.stats aufgebaut. Allerdings ist der jeweilige Eintrag “<stat_obejct index = “x”>” für uns von Interesse. In der jeweiligen Unterrubrik findet sich dann das Feld “StatsID”, welche dann eine Bezeichnung wie “FARM_Beehive_A” entsprechend der Indexzahl enthält.
Diesen Feldinhalt aus “StatsID” kopieren wir uns für die entsprechenden Einträge in unserer Haupttabelle hinzu wenn ein Inhalt in unserer Haupttabelle unter “CraftingStation” enthalten ist.
Übersetzungsreferenzen organisieren
Langsam wird’s spannend! Wir nähern uns dem Finish, sozusagen 🙂 Auch wenn es noch ein langer Weg ist.
Zuerst kopieren wir in unser Arbeitsverzeichnis zwei weitere Dateien, nämlich:
- Deine Steam-Bibliothek steamapps common Divinity Original Sin 2 Data Shared.pak
- Deine Steam-Bibliothek steamapps common Divinity Original Sin 2 Data Shared_1.pak
In der SE-Version von DoS2 wird die Shared_1.pak für die Extraktion der Shared.pak benötigt.
Um die beiden Dateien zu extrahieren benötigen wir ein Tool von Larian, den .pak-Extractor[larian.com].
Damit lassen sich nicht nur die .pak-Dateien entpacken, sondern auch alle wichtigen Dateiformate in lesbare Formate umwandeln, bzw. in diese Dateien wieder zurückwandeln.
Wir starten den .pak-Extractor[larian.com] und wenden ihn auf die Shared.pak an. Sinnvoll ist es an dieser Stelle ein eigenes Verzeichnis für die Extraktion zu wählen 🙂
Wurde alles extrahiert, so können wir auf Inhalte in dieser Datei zugreifen. Für uns ist jetzt folgende Datei interessant:
- Public Shared Localization Stats.lsb
Diese Datei kopieren wir uns ebenfalls in unser Arbeitsverzeichnis und nutzen den .pak-Extractor[larian.com] um die .lsb-Datei in eine “LSX (XML)” im entsprechenden Programmregister umzuwandeln. Ansonsten ist die Datei nicht lesbar!
Die jetzige .lsx-Datei muss ebenfalls mit einem Script ausgelesen werden. Ich habe mir dabei eine neue Tabelle geschaffen, bei der ich in Spalte a den Inhalt von “UUID” erhalte und als zweite Spalte den Inhalt “Content”. Letztere ist der Sprachschlüssel wie der Gegenstand in der jeweiligen Sprache heißt. Hier einige Beispiele (nur ein Auszug):
Übersetzungsstrings hinzufügen
Jetzt geht’s ans Eingemachte, sozusagen. Zur Sicherheit habe ich mir eine Kopie der bisher zusammengefassten Item-Tabelle erstellt und damit weitergearbeitet, da einiges schiefgehen kann.
Ich habe mir ein Skript geschrieben, mit dem ich mir einige Spalten weiter rechts die Referenz zwischen den Bezeichnungen in der Ausgangstabelle und mit dem UUID der .lsx-Datei verbunden habe. Wird das Element gefunden setze ich den passenden Content neben die entsprechende Ressource.
Dies muss natürlich für jeden Objektnamen im gesamten Blatt gemacht werden, also für alle Datenspalten (beide Ergebnisse, 5x Objekte, Using, CraftingStationName).
Nun können wir die entsprechende Sprachdatei organisieren. Grundsätzlich kann man diesen SChritt mit jeder beliebigen Sprache machen, ich habe natürlich hier die deutsche Übersetzung benutzt.
Wir kopieren uns in unser Arbeitsverzeichnis die Sprachdatei. Diese ist allerdings wieder in einer .pak-Datei enthalten, also kopieren und extrahieren wir folgende Datei:
- Deine Steam-Bibliothek steamapps common Divinity Original Sin 2 Data Localization German.pak
Aus dem mit dem .pak-Extractor[larian.com] entpackten Archiv holen wir uns die echte Übersetzungsdatei:
- localization German german.xml
Es handelt sich dabei, wie die Dateiendung vermuten lässt um eine XML-Datei und ist überraschend einfach lesbar. Die Datei besteht aus zwei Inhalten, “contentuid” und “content”, hier einige Beispiele:
Wir referenzieren nun aus unserer Haupttabelle die zuvor hinzugefügten Sprachschlüssels aller Objekte mit der “contentuuid” der Sprachdatei und erhalten lesbare Inhalte.
Als Feinheit habe ich dann noch die Inhalte in ein leeres Blatt kopiert die von Interesse sind und den Rest entfernt 🙂
Alle Rezepte per Mai 2019
Da die Auflistung aller Rezepte zu umfangreich wäre, habe ich meine erzeugten Datensätze aufbereitet und in verschiedene Worksheets in Google Docs eingebettet.
Die Übersicht aller möglichen Rezepte ist hier zu finden[docs.google.com].
Crafting: Allgemein
Hier sind alle allgemeinen und nicht direkt zuteilbaren Rezepte zu finden. Darunter Nahrungsmittel, diverse Craftingmaterialien und Equipment (teilweise selbst benannt).
>Direktlink zur passenden Registerkarte[docs.google.com]<
Crafting: Zauber
Enthält eine Übersicht aller Zauber die in DoS2 (EE) verfügbar sind. Neben der Bezeichnung und einigen Informationen über den jeweiligen Zauber sind weiter außen auch die Herstellrezepte für Schriftrollen und Lehrbücher enthalten. Dies war eigentlich der am Anfang einzige Grund, warum ich mir diese Arbeit angetan habe 🙂
>Direktlink zur passenden Registerkarte[docs.google.com]<
Crafting: Runen
Enthält eine Übersicht aller Runen, Runenkombination und Rezepte was Runen betreffen (Aufwertungen, Rahmen, etc). Ich habe mir erlaubt die originalen Rechtschreibfehler bei den “Ruhnenrahmen” auf “Runenrahmen” zu korrigieren.
>Direktlink zur passenden Registerkarte[docs.google.com]<
Crafting: Tränke
Hier sind alle möglichen Tränke zu finden. Bei den Stat-Tränken fiel mir auf, dass es einige Tränke gibt, die nicht herstellbar sind. Falls dies ein Fehler sein sollte bitte ich um eine kurze Rückmeldung. An und für sich hatte ich alle vorhandenen Rezepte zugeteilt…
>Direktlink zur passenden Registerkarte[docs.google.com]<
Crafting: Granaten
Alle möglichen Granaten und Herstellzubehör sind hier aufgeführt.
>Direktlink zur passenden Registerkarte[docs.google.com]<
Crafting: Munition
Wie der Name vermuten lässt findest Du hier alle möglichen Arten von Pfeilen, Spitzen und benötigtes Herstellzubehör.
>Direktlink zur passenden Registerkarte[docs.google.com]<
Weitere Register
Es sind noch einige weitere Register enthalten. Diese haben mit dem Guide nichts zu tun, das sind so meine Aufzeichnungen über DoS2 die ich mir im Laufe der Zeit angefertigt hatte. Beispielsweise:
- Allgemein: Lehrer (wo stehen Lehrbuchhändler rum)
- Allgemein: Rassen (allgemeine Information über Rassenboni und Charakterquests)
- Allgemein: Vorgegebene Klassen (Informationen über Klassen, deren Boni und eventuellen Synergien)
- STORY-SPOILER! Gottheiten (Information über Götter, Referenzen zu Charakteren und verschiedenen Rätseln)
Danksagung
Ich möchte mich in diesem Sinne bei dem Steam-User “Mellarius” für seinen englischen Extraction Guide bedanken. Auf ihm basiert auch der deutsche Guide und hat mir eine Menge Zeit für die Suche nach den passenden Informationen gespart!
Falls Du Vorschläge hast was ich noch aufbessern kann, immer her damit. Konstruktives Feedback ist gern gewünscht!