Tutorial Einführung ins Modding von X4 Foundations

Hier ist der ideale Ort um über Scripts und Mods für X4: Foundations zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

Post Reply
Sabber83
Posts: 7
Joined: Fri, 30. Nov 18, 22:13
x4

Tutorial Einführung ins Modding von X4 Foundations

Post by Sabber83 » Fri, 14. Dec 18, 01:49

Hallo :),

ich beziehe mich hier auf den Orignial Post von Euclid aus dem englischen Forum und übersetze den Post einfach mal ins Deutsche.

original Post

Hallo :)

Das modding in X4: Foundations unterscheidet sich nicht wirklich von dem in X Rebirth. Die meisten Informationen die man für des scripten und modden braucht könnte ihr im X Rebirth Forum finden. Hier ein paar Sachen die ihr trotzdem nützlich finden werdet :

Entpacken der Spiele Dateien.

Das Katalog Tool von X Rebirth funktioniert auch für X4: Foundation. Es steht -> Hier <- zum download bereit. ( Wichtig ihr müsst euer Spiel in eurem Egosoft Account auf dieser Seite hinterlegen)
Entpackt die Dateien in euer X4 Hauptverzeichnis ( dort wo die X4.exe liegt). Es ist wichtig eine .bat Datei zu erstellen die die Dateien in das Spiele- Verzeichnis aus dem Katalog entpackt.

Die ".bat" Datei könnt ihr ganz einfach im Windows Editor erstellen.

Es sollte wie folgt aussehen

Hier ein Beispiel für die ".bat" Datei

Code: Select all

E:
cd "Games\Steam\SteamApps\common\X4 Foundations"
XRCatTool.exe -in 01.cat -in 02.cat -in 03.cat -in 04.cat -in 05.cat -in 06.cat -in 07.cat -in 08.cat -in 09.cat -out "E:\Games\Steam\SteamApps\common\X4 Foundations\unpacked"
pause
E:
Laufwerk E ist wo eure Steam Bibliothek liegt oder wenigstens der Teil wo X4 enthalten ist.
cd "Games\Steam\SteamApps\common\X4 Foundations"
ist das genaue Verzeichnis eures Spiels in der Steam Bibliothek

Das Verzeichnis wohin euer Dateien Entpackt werden findet ihr hier
-out "E:\Games\Steam\SteamApps\common\X4 Foundations\unpacked
Es ist euch überlassen ob ihr das Verzeichnis "unpacked" nennt oder ihm einen anderen Namen gibt.

Code: Select all

pause
Stoppt die Ausführung nach dem Entpacken und zeigt euch an ob dort Fehler entstanden sind.

Nützliche Tools

Es gibt einige "inoffizielle" Helfer die es einem erleichtern auf die Dateien und deren Inhalt zuzugreifen. Ich persönlich bevorzuge AstroGreb was ihr -> Hier <- herunter laden könnt. Ihr braucht dann noch einen guten Editor wie Notepad++ oder Visual Studio Express um die Dateien übersichtlich zu editieren. Ich bevorzuge hier Visual Studio Express.

Aktivieren der Mods im Game

Bevor ihr nun weiter macht empfehle ich euch DRINGEND. Die Spieldateien zu sichern. ( Falls etwas schief gehen sollte müssen wir nicht alles von vorne runterladen :) )

Habt ihr euren ersten Mod erstellt ist nun die Frage wohin soll ich ihn speicher um ihn zu starten?

Erstellt in eurem X4 Hauptverzeichnis einen Unterordner mit dem Namen "extensions".

Der Pfad sollte dann in meinem Beispiel so aussehen
E:\Games\Steam\SteamApps\common\X4 Foundations\extensions
Es gibt einige Leute, bei denen in diesem Verzeichnis keine Mods aktiviert werden können

Hier könnte es Helfen das ganze in euren Dokumenten Ordner zu wiederholen
C:\Users\xxx\Documents\Egosoft\X4
xxx = euer Benutzername


Im "extensions" Verzeichnis erstellt ihr nun euren eigenen Ordner wo ihr den Mod drin speichert.

Als Beispiel "playerjump"
E:\Games\Steam\SteamApps\common\X4 Foundations\extensions\playerjump
in dem Verzeichnis "playerjump" solltet ihr nun eine Content.xml erstellen in der ihr euren Code einfügt.

Als Beispiel:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<content id="PJ" name="PlayerJump" description="Player Ship can Jump to a Target via Autopilot" author="Euclid" version="0.1" date="2018-15-09" save="0" enabled="1">
 <text language="44" name="PlayerJump" description="Player ship can jump via autopilot to a selected target" author="Euclid" />
 <text language="49" name="PlayerJump" description="Das Spielershiff benutz einen Hyperraumantrieb der durch den Autopiloten zu einem gewaehlten Ziel ausgeloest wird" author="Euclid" />

Wollt ihr AI Scripte oder Missions Scrpite in eurem Mod mit einfügen so müsst ihr hierfür auch wieder Unterverzeichnisse erstellen .. "md" für Missions Dateien und "aiscripts" für XML Scpripte. Oder eben beide wenn ihr beide braucht.
in unserem Beispiel von oben würde es dann wie folgt aussehen

Extensions
-> Playerjump
content.xml
-> md
EuclidsPlayerJump.xml

Alles was ihr nun noch machen müsst ist euer Spiel starten und schauen ob unter Erweiterungen oder Playerjump autaucht.

Gruß Sabber

p.s Thx Euclid for your work :)
Last edited by X2-Illuminatus on Sat, 28. Nov 20, 16:33, edited 1 time in total.
Reason: Thema angepinnt

ChieflightSpaceCorp
Posts: 3
Joined: Mon, 24. Dec 18, 12:04
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by ChieflightSpaceCorp » Thu, 20. Jun 19, 12:08

Kann das mal jemand für total Behinderte erklären?

Hüpper
Posts: 269
Joined: Fri, 21. Feb 14, 14:57
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by Hüpper » Sat, 22. Jun 19, 01:18

ich versuche es mal grob zu übersetzen.

Egosoft bietet ein Entwicklerkit für Modder zum download an und dieses kann man unter dem ersten Link sich besorgen. Dieser download ist eine "kompilierte" Version von den X4 Scripten (nicht lesbare Befehlszeilen).
Im zweiten Teil wird das entpacken dieser nicht lesbaren in lesbare Befehlszeilen beschrieben. Im Prinzip hat man nun einsehbare Codeblöcke, die man zum erstellen eigener Scripte nutzen kann/sollte.
Das Entwicklerkit sollte man immer auf den neuestem Egosoft Stand halten. Jedes Update bringt praktisch auch ein neuese Kit heraus.

Um eigene Scripte zu erstellen braucht es einen Editor, am besten einen der Programmierer-Editoren. Siehe Verweis auf die kostenlosen Versionen von Notepad++ bzw. Visual Studio Express.
Um das Finden von Textstellen auf Dateieben per Suchbegriff zu ermöglichen gibt es verschiedene Suchmaschinen. Hier wurde AstroGreb vorgeschlagen.

Im letzten Teil des Artikels wird der zwingende Speicherort Deines Scriptes erklärt, ohne deren Einhaltung X4/XR Deinen Script nicht finden würde. Die erwähnte Content.xml ist eine Beschreibung Deines Werkes,
in dem der Name des Scriptes, der Author, das Erstelldatum, das Script ist aktiv ja/nein, Script speichert sich in den Spielstand ein (ja/nein) und so weiter steht. Das ist das, was Du unter Erweiterung (oder so ähnlich) in X4/XR vorfindest.

Bevor Du nun in der Modderei loslegst, solltest Du Dir unbedingt die Schreibweise/Regeln von XML aneignen.

Beispiele für X4/XR findet man hier in den Mod Foren bzw. im Netz der Inder, genannt Internet.
Insgesamt denke ich mir, das ganze ist ein steiler, steiniger Lern-Weg bis zum echten Modder

Und nein, ich gehöre der Mod Gemeinde nicht an. Ich habe nur mal eine Kleinigkeit für mich und XR erstellt. Interessehalber und über Strecken abgekupfert.

Ahoj
-Uwe

Einer_der_Wartet
Posts: 2
Joined: Sat, 28. Nov 20, 12:37

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by Einer_der_Wartet » Sat, 28. Nov 20, 14:02

Danke für die deutsche Übersetzung und danke auch für Post #3.

Und eine bitte an die Mods: Könnte man das bitte mal Sticky machen?

Ich hab mir echt nen Wolf gesucht um zwischen den ganzen Informationsschnipseln und Downloads (größtenteils verwaist, veraltet, ins Leere führend und/oder dubiose Logins fordernd, ansonsten einfach viel zu komplex für einen Beginner) einen Anfang zu finden.

ChieflightSpaceCorp
Posts: 3
Joined: Mon, 24. Dec 18, 12:04
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by ChieflightSpaceCorp » Sun, 20. Mar 22, 22:21

Kann jemand mal erklären wie man genau eine bestehende Mod für sich selbst aktualisieren (auf den neusten Stand bringen kann) ?


Danke und Liebe Grüsse

omti
Posts: 520
Joined: Sat, 5. Jun 04, 21:06
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by omti » Fri, 27. May 22, 13:05

Hallo allerseits,

was ich von der Anleitung her nicht so ganz verstehe ist wo/wie ich Sachen speichere, wo ich bereits existierende Dateien abändere.

In meinem Beispiel möchte ich dafür sorgen, dass Energiezellen nicht mehr transportiert werden können und als "Energie" vor Ort erzeugt werden müssen. Dafür habe ich die "wares.xml" mit AstroGrep gefunden und dadrin auch den entsprechenden Code für Energiezellen.

Code: Select all

<ware id="energycells" name="{20201,701}" description="{20201,702}" factoryname="{20201,704}" group="energy" transport="container" volume="1" tags="container economy stationbuilding">
    <price min="10" average="16" max="22" />
    <production time="60" amount="175" method="default" name="{20206,101}">
      <effects>
        <effect type="sunlight" product="1" />
        <effect type="work" product="0.43" />
      </effects>
    </production>
    <icon active="ware_energycells" video="ware_energycells_macro" />
  </ware>
Wenn ich das jetzt z.B. auf

Code: Select all

<ware id="energycells" name="{20201,701}" description="{20201,702}" factoryname="{20201,704}" group="energy" transport="energy" volume="1" tags="economy stationbuilding">
    <price min="10" average="16" max="22" />
    <production time="60" amount="175" method="default" name="{20206,101}">
      <effects>
        <effect type="sunlight" product="1" />
        <effect type="work" product="0.43" />
      </effects>
    </production>
    <icon active="ware_energycells" video="ware_energycells_macro" />
  </ware>
ändere sollte das dafür sorgen, dass der Kram nicht mehr transportiert werden kann. (KA was für transport tags existieren, aber ich vermute mal die Schiffe können nur transportieren mit was sie getaggt sind und da ich mir "energy" gerade ausgedacht habe sollte das nicht gehen.

Die Frage ist nun, wie speicher ich die Veränderte .xml im Extensions Ordner, damit das funktionert/ich das ganze Testen kann?
Ohne Neugier wäre die Menschheit immer noch in der Steinzeit oder nicht einmal dort!


Money implies poverty - Ian Banks: The State of the Art

User avatar
Marvin Martian
Posts: 3391
Joined: Sun, 8. Apr 12, 09:40
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by Marvin Martian » Mon, 30. May 22, 06:19

wegen der Transportklasse kann ich das auch nicht aus dem stehgreif sagen

für eine Mod brauchst ein Verzeichnis deines Mods in extensions/
z.B. omti_energy/
dort eine content.xml

Code: Select all

<?xml version="1.0" encoding="iso-8859-1"?>
<content id="omti_erg" name="Energy" description="foo bar" author="Omti" version="100" save="false" date="2022-05-30" >
</content>
dann mit Pfad die Datei die du jeweils ändern möchtest, weswegen du gut daran tust das Game zu entpacken, in deinem Fall wäre das
libraries/ware.xml
da muss jetzt aber eine Patchanweisung rein

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
	<replace sel="//ware[@id='energycells']/@transport">energy</replace>
</diff>
Was du jedoch jetzt machen musst, ein Lagermodul erstellen das deine Energie aufnimmt, oder du machst an die Energiezellen ein kleines storage, womit jede Zelle automatisch deine Energie auch lagern kann
dann nur noch GOD erklären, dass jede erstellte NPC-Station Energiemodule (bzw eben jene neuen Lager) braucht und "Sonnenkraftwerke" hinfällig sind

User avatar
Casishur
Posts: 1197
Joined: Fri, 1. Jul 05, 10:04
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by Casishur » Mon, 30. May 22, 14:57

Ahh so sieht eine patch Anweisung aus. :o
Bisher habe ich immer direkt alles benötigte in meinem mod geändert ohne patch Anweisung.

Ausserdem müssen die Ressourcen zum bau von Stationen, Schilde, Türme und Schiffe angepasst werden, da jene Objekte Energiezellen zum bau benötigen.

Öhm wie geht die patch Anweisung zum entfernen? :gruebel: :oops:
CPU Typ Ryzen 9 3900x
Grafikkarte Radeon RX 6600 XT 8GB
Arbeitsspeicher 32 GB (DDR4 SDRAM)
Motherboard Name/Typ MSI B450 Gaming Plus
Win 10 64 bit

Betty : Autopilot.... hat.... total Versagt.

User avatar
Marvin Martian
Posts: 3391
Joined: Sun, 8. Apr 12, 09:40
x4

Re: Tutorial Einführung ins Modding von X4 Foundations

Post by Marvin Martian » Mon, 30. May 22, 17:23

Code: Select all

<remove sel="//ware[@id='countermeasure_flares_01']/production[@method='default']/primary/ware[@ware='energycells']" />
bei mehreren Produktionsmethoden dann halt für jede gesondert

aber zieh dir ruhig mal den Patchguide rein
viewtopic.php?t=354310

Post Reply

Return to “X4: Foundations - Scripts und Modding”