Wie lerne ich Anno 1800 zu modden?

Die häufigste und beste Antwort ist wohl: Schaue dir die Dokumentation vom Mod-Loader an und lerne von anderen Mods wie die Befehle des Mod Loaders genutzt werden können.
Es gibt kein großes Tutorial, walkthrough, helloworld oder sonst was. Hat einfach noch keiner gemacht. Es haben aber auch nur eine handvoll Modder genügend Wissen, um umfassende Tutorials schreiben zu können.
Deshalb: Schau dir bei anderen Mods an, wie die Dateistruktur aufgebaut ist; welche files wofür benötigt werden. Bei Textdateien => reinschauen. Analysiere, was der Ersteller dieser Mod auf welche Weise macht, und welches Resultat dabei herauskommt.

Und wenn es dich packt, dann ändere einfach bei einer bestehenden Mod mal irgendwelche Werte und schaue, ob ingame das rauskommt, was du erwartest, oder bastel dir deine eigene kleine Mod indem du einzelne Sachen anderer Mods nachbaust. Aber: Wenn du von anderen abguckst und das Resultat dann teilst, sei fair und schreibe dazu, wer dich inspiriert und das Original davon geschrieben hat.

Was braucht man, um für Anno 1800 Mods zu schreiben?

Als erstes: Du brauchst ein Begehr. Wenn du nicht weißt, was du anders haben willst, kannst du es auch nicht ändern ;)
Aus diesem Grund habe ich mich bisher vorwiegend passiv mit Modding befasst und das aufgeschnappte Wissen kaum verwendet. Vanilla langt mir momentan noch.

Ein Grundverständnis im Programmieren hilft ungemein (egal welche Richtung), ist aber nicht zwingend notwendig.
Die nötige Ausrüstung hängt stark davon ab, was du machen willst. Willst du an zB Grafiken ran, so brauchst du natürlich dafür Programme. Ich halte mich an dieser Stelle etwas kürzer und beschränke mich auf grundsätzliches.

Es empfiehlt sich meines Erachtens nach zuerst einmal dafür zu sorgen, das man selbst in die Spieldateien reingucken kann. Die Spieldateien von Anno stecken in mehreren Archiven und sind unter Anno 1800/maindata/ zu finden (Beispiel: data0.rda). Der RDAExplorer öffnet euch die Archive und entpackt sie dann dorthin, wo ihr die Dateien benötigt. Selbst hier schadet es nicht ein Backup zu machen.
Runterladen => Starten => File => Open (Read Only) => Archiv auswählen => Öffnen => Tools => Extract all => Speicherort auswählen.
Je nach größe des Archives (wenige MB bis hin zu 12GB) kann das Entpacken ein paar Minuten dauern.

Achtung: Anno startet bei data0.rda und geht numerisch hoch. Bei Updates werden veraltete Dateien durch neue Versionen aus einer späteren rda ersetzt.
Es empfiehlt sich daher, von data0.rda an alle ein Mal der Reihe nach zu entpacken. So hat man von allem die aktuellste Version und bei künftigen Updates und DLCs muss man dann nur noch schauen, welche .rda neu/geändert sind und nur diese dann entpacken

Die meisten Mods arbeiten, indem quasi in den Einstellungen von Anno Werte ersetzt, gelöscht oder neue hinzugefügt werden.
Die meisten dieser Einstellungen findet man in der Datei assets.xml, welche in den entpackten Spieldateien unter data\config\export\main\asset zu finden ist. Seid vorsichtig mit dieser Datei. Bedenkt vor dem Öffnen, das die Datei über 100MB reiner Text sind, in über 2 Millionen Zeilen. So große Dateien kann nicht jedes Programm verarbeiten. Standard-Programme wie Notepad (Editor) oder Notepad++ stürzen spätestens beim bearbeiten dieser Dateien ab, und können u.U. sogar in einem bootloop enden, wenn die zuletzt geöffneten Dateien, wiedergeöffnet werden sollen. Und auch Monster wie Dreamweaver haben sich damit schon bei mir abgeschossen. Ich empfehle Microsoft Visual Studio Code mit XML Tools als Extension.
Und wenn man auf xml in Baumstruktur steht, ist XML Tree Editor in der Lage mit der Assets umzugehen, ohne dabei abzustürzen.

Die meisten Grafiken für UI etc. sind als .dds-Datei in den Spieldateien zu finden. Damit kann kaum jemand etwas anfangen, doch das Umwandeln ist recht einfach.
Der von mir beschriebene Weg ist nur für den Anfang gedacht, wo man die Bilder umgewandelt haben will, um sie zuordnen zu können. Wer es professioneller mag, oder wer mit den Grafiken arbeiten will, der kann das Umwandeln auch via xn Convert oder Gimp automatisieren. Will man die Bilder weiterverwenden müssen beim Umwandeln zudem noch ein paar Dinge beachten werden. Da aber ist mein Wissen eher lückenhaft, um es mal nett zu formulieren. Weiterführende Infos könnt ihr zB beim Maug-Projekt finden.
Deshalb gibt es bei mir jetzt nur die Kellerkind-Variante zum Umwandeln der Icons in .png, rein für die Puristen und blutigen Anfänger.
Lade dir "texconv" von mircosoft herunter und speicher die Datei in den vorhin entpackten Spieldateien im Ordner "data" ab. Als nächstes öffne den Texteditor deines Vertrauens (Erneut: Nicht Word!) und schreibe folgendes hinein:

Icons via batch umwandeln[ Codeblock kopieren ]
FOR /R %%i IN (*.dds) DO ( texconv -ft png -o "%%i\.." "%%i" )

Die Datei speichert ihr dann ebenfalls im Ordner "data" unter dem Namen umwandler.bat (wobei alles vor dem ".bat" auch frei gewählt werden kann).
Wenn ihr diese Datei jetzt ausführt, öffnet sich das Windows Command Fenster und in rasender Geschwindigkeit rauschen dann die Zeilen nur so durch.

Eine .bat, eine sogenannte Batch, ist ein kleines eigenes Programm kann man fast schon sagen (da von euch selbst erstellt: Euer eigenes kleines Programm ^^).
Die Batch geht jetzt daher, und schaut in dem Ordner, in dem sie gespeichet ist (sowie in darin befindlichen Unterordnern) nach Dateien mit der Endung .dds. Hat es eine solche Datei gefunden, nimmt die Batch mit der anderen Hand die texconv.exe und stopft die dds-Datei darein, damit am Ende ein für jeden erkennbares png herauskommt. Die Bedeutung der Parameter könnt ihr bei Bedarf googlen.

Mehr braucht es dann eigentlich auch nicht um für die ersten Geh- und Verständnisversuche eine solide Grundausrüstung zu haben, bevor ihr euch weiterer Schritte annehmt.

Alles über GUIDs

Was sind GUIDs

Eine GUID (Globally Unique Identifier) ist eine eindeutige, nur einmal vorkommende Erkennungsmarke. Bei Anno ist es eine Zahlenfolge von bis zu 11 Zahlen länge, die meisten dürften 7 Zeichen lang sein. Mithilfe dieser GUIDs kann einfach alles in den Spieldateien eindeutig benannt und vom Spiel selbst entsprechend klar zugeordnet werden. Kann ja nicht jeder Thomas heißen ;)
Für Modder sind diese GUIDs aus dem selben Grund wichtig: Anhand dieser GUIDs weiß auch der ModLoader wo er welche Änderungen vornehmen soll. Und anhand dieser GUIDs findet der Modder auch jedweden Zusammenhang in den Spieldateien, indem er sich einfach von GUID zu GUID hangelt.

GUIDs in der assets.xml
Wer kennt es nicht, ihr sitzt im Flieger, unterhaltet euch gepflegt mit eurem Sitznachbarn über Anno, und habt gerade vergessen, wie man an das Item "Feras Alsarami, Meister der Hypnose" kommt. Schreckensszenario, keine Frage, aber wir wollen es uns ja auch nur theorethisch vorgestellen ;)
Einen AssetViewer hat man da natürlich gerade nicht zur Hand, aber der gute Modder hat ja immer seine Dateien dabei, und kann uns zeigen, wie man diese Informationen herausbekommen kann. Das ist gut, denn auf diese Weise findet man die meisten Zusammenhänge.
Doch bevor wir in die assets.xml tauchen, machen wir uns kurz die Füße in der texts_german.xml nass. Ihr findet die Datei in den entpackten Spieldateien unter den Pfad data\config\gui\. Alles, was einen Namen hat, alle Texte die im Spiel gesprochen oder angezeigt werden sind in der jeweiligen Landessprache in dieser Datei zu finden, und dort suchen wir einfach nach dem Namen des Items, um seine GUID zu erfahren. Finden dürften wir dann dies hier:

Feras Alsamari in der text_german.xml[ Codeblock kopieren ]
<Text> <GUID>192450</GUID> <Text>Feras Alsarami, Meister der Hypnose</Text> </Text>

Mit dieser GUID tauchen wir jetzt in die assets.xml.

Vorsicht:
Die assets.xml ist das Kernstück der Spieleinstellungen und auch wenn wir nach dem entpacken der dataX.rda nur eine Kopie davon haben: Seid vorsichtig. In der assets.xml mag zwar nur reiner simpler Text drin stehen, aber dafür sind es weit über 2 Millionen Zeilen Text.
Da kann nicht jedes Programm mit umgehen. Ich empfehle Visual Studio Code von Microsoft mit der Extension XML Tools, aber da gibt es verschiedene.

Wenn wir die GUID des Items (192450) suchen, finden wir einerseits die Itemdeklaration selbst, sowie sämtliche Verknüpfungen, zumeist AssetPools. Und nun kommt das Fiese: Um herauszufinden, auf welchen Wegen man Feras bekomen kann, müssen wir nun bei jedem erwähnen des Items checken, ob es ein Weg ist oder sein könnte, auf dem man das Item bekommen kann.
Das geschieht dann wiederum auf dem selben Weg wie beim Item: Wir nehmen die GUID des Pools, und schauen, wo dieser Pool in der assets.xml verlinkt ist. Wenn man Pech hat, muss man sich erst durch mehrere Asset-Pools hangeln, um dann am Ende zu sehen, das man das Item bei Eli kaufen kann. Wenn man Glück hat, ist der Weg auch mal schneller, wie beim Feras zum Beispiel mit dieser Möglichkeit an das Item zu kommen:

Die gesuchte GUID im Palast-Besucher-Pool[ Codeblock kopieren ]
<Asset> <Template>RewardPool</Template> <Values> <Standard> <GUID>193870</GUID> <Name>Palace Replacement Specialists Pool</Name> <IconFilename>data/ui/2kimages/main/3dicons/specialists/systemic/icon_well_dressed_106.png</IconFilename> </Standard> <RewardPool> <ItemsPool> <Item> <ItemLink>192440</ItemLink> </Item> <Item> <ItemLink>192450</ItemLink> <= Die GUID kennen wir doch ^^ </Item> <Item> <ItemLink>190719</ItemLink> </Item> <Item> <ItemLink>190668</ItemLink> </Item> <Item> <ItemLink>190684</ItemLink> </Item> <Item> <ItemLink>191377</ItemLink> </Item>
Code ausklappen

Hier kann man wunderschön sehen, das die Suche manchmal recht schnell beendet sein kann. Feras ist direkt in diesem Pool verlinkt und der Pool ist ziemlich eindeutig benannt. Wobei die Namen hier in der assets.xml keinen großen Wert haben, und wohl nur für Übersicht sorgen sollen.

Eigene GUIDs

Will man beim Modden so richtig durchstarten, wird man irgendwann an den Punkt kommen, an dem man eigene GUIDs vergeben muss. Sei es für Gebäude die man neu ins Spiel bringt, oder ein existierendes klont. Für neue Zivstufen oder neue Texte. Man braucht ja für alles eine GUID. Was aber, wenn du eine GUID vergibst, die es dann doch schon gibt?
Selbstredend ist das nicht gut ;)
Die tatsächlichen Auswirkungen können von gar nix bis zum CTD (Crash to Desktop) reichen. Das war bis Mitte 2020 manchmal ein Problem für die Modder. Untereinander haben sich viele noch abgesprochen, aber hier und dort hat es dann doch mal gekracht. Ende Juni dann hat Ubisoft verkündet:

Für unsere Modder - ein sicherer GUID-Bereich
Wie ihr wisst sind wir stets beeindruckt von der Arbeit und Leidenschaft die einige Community-Mitglieder in die Erstellung von Mods für Anno 1800 stecken. Um es euch ein bisschen einfacher zu machen, wenn es um die Anpassung eurer Mods an neue Game Updates geht, haben wir für euch nun den GUID Bereich von 1337471142 bis 2147483647 reserviert. Dieser Bereich wird von uns beziehungsweise unseren Tools nicht verwendet.

Auch wenn ich die Kirche mal im Dorf lassen will, da es wirklich eher selten Probleme gab, dennoch: Im Namen aller Modder dafür noch mal lieben Dank nach Mainz.

Safe GUID-Range

Angestoßen von Lady Meridonia folgt nun eine Liste von Moddern, und den von Ihnen genutzten GUID-Ranges. Die Liste ist selbst verständlich nie vollständig und wird stetig erweitert. Wer auf die Liste drauf will, einfach bei Lady Meridonia im Discord melden. Bei Bedarf leite ich es auch weiter.