Thalantyr Item Upgrade Mod Extensions Installationsfehler

FLO

Junior Member
Registriert
17.12.2025
Beiträge
7
Hallo Zusammen,

ich kann den Mod von Bardez nicht installieren. Es erscheint folgender Fehler:

[tb#_compile_eval_buffer/MOD-THALANTYR-EX/dlg/THALAN.d] LEXER ERROR at line 9 column 1-11
Near Text: -
invalid character [-]
ERROR: parsing [tb#_compile_eval_buffer/MOD-THALANTYR-EX/dlg/THALAN.d]: Parsing.Parse_error
ERROR: compiling [MOD-THALANTYR-EX/dlg/THALAN.d]!
Stopping installation because of error.

ERROR Installing [Bardez's extensions to Thalantyr Item Upgrade Mod], rolling back to previous state
Will uninstall 47 files for [MOD-THALANTYR-EX/SETUP-MOD-THALANTYR-EX.TP2] component 0.
Uninstalled 47 files for [MOD-THALANTYR-EX/SETUP-MOD-THALANTYR-EX.TP2] component 0.
ERROR: Parsing.Parse_error


Kann mir jemand helfen?

LG Florian
 

Anhänge

  • Fehlermeldung Thalantyr Item upgrade Extansion.png
    Fehlermeldung Thalantyr Item upgrade Extansion.png
    64,6 KB · Aufrufe: 4

Maus

Senior Member
Registriert
07.08.2002
Beiträge
10.239
Du könntest die Mod verlinken, weil da muss man sich die Thalan.d mal anschauen. Ansonsten noch die Frage: gibt es die Mod in mehreren Sprachen und welche hast du ausgewählt?

Es sieht halt noch einem Schreibfehler aus, wobei das eigentlich nicht sein sollte, weil das bei jedem Spieler auftreten sollte, der die Mod installiert.

Und da kommen wir auf die Quelle zurück und die Möglichkeit, dass du keinen Release-Kandidaten dir runtergeladen hast, sondern vllt eine Version, an der noch gearbeitet wird...
 

FLO

Junior Member
Registriert
17.12.2025
Beiträge
7
Du könntest die Mod verlinken, weil da muss man sich die Thalan.d mal anschauen. Ansonsten noch die Frage: gibt es die Mod in mehreren Sprachen und welche hast du ausgewählt?

Es sieht halt noch einem Schreibfehler aus, wobei das eigentlich nicht sein sollte, weil das bei jedem Spieler auftreten sollte, der die Mod installiert.

Und da kommen wir auf die Quelle zurück und die Möglichkeit, dass du keinen Release-Kandidaten dir runtergeladen hast, sondern vllt eine Version, an der noch gearbeitet wird...
Hey,
hier einmal der Link zum Mod.
https://github.com/BardezAnAvatar/BGEE-Thalantyr-Ex/releases

Ich konnte bei der Installation keine Sprache auswählen. Er springt direkt zum Installationsmodus über.
Der Fehler tritt auch bei einer älteren Mod auf. Habs eben mal getestet. Die Thalantyr - Item - Upgrade Mod hat ohne Probleme funktioniert. Nun wollte ich sie mit diesem Mod etwas ergänzen mit neuen Rezepten.
 

Anhänge

  • Screenshot 2025-12-28 125752.png
    Screenshot 2025-12-28 125752.png
    29,7 KB · Aufrufe: 2

Maus

Senior Member
Registriert
07.08.2002
Beiträge
10.239
Hm, da passt irgendwas nicht. Weil er sollte zumindest mit der aktuellen tp2 die Wahl zwischen Russisch und Englisch anbieten.

Ok, ich glaube ich habe den Fehler gefunden. Da ist zumindest in der 1.2 einiges kaputt... die russischen tra-Dateien sind in Englisch. Und er belegt bei der Installation eine Variable mit einer Stringreferenz, die nicht in der tra-Datei aufgelöst wird. Und dann crashed in die Installation wenn die Variable aufgerufen wird in der d-Datei.

Und das kann man nicht reparieren, wenn nicht klar ist, wie die String-Referenz heißen soll ;)
 

FLO

Junior Member
Registriert
17.12.2025
Beiträge
7
Hm, da passt irgendwas nicht. Weil er sollte zumindest mit der aktuellen tp2 die Wahl zwischen Russisch und Englisch anbieten.

Ok, ich glaube ich habe den Fehler gefunden. Da ist zumindest in der 1.2 einiges kaputt... die russischen tra-Dateien sind in Englisch. Und er belegt bei der Installation eine Variable mit einer Stringreferenz, die nicht in der tra-Datei aufgelöst wird. Und dann crashed in die Installation wenn die Variable aufgerufen wird in der d-Datei.

Und das kann man nicht reparieren, wenn nicht klar ist, wie die String-Referenz heißen soll ;)
OK kann ich die Mod trotzdem irgendwie verwenden? Wenn ich eine ältere Version nehme und dann alles auf englisch installiere?
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
10.239
Naja, bei den älteren solltest du keine Option haben, russisch ist glaube ich erst die letzten beiden Versionen dazu gekommen.

Aber ich sehe das Problem in allen Versionen... Von daher keine Ahnung, wie das überhaupt funktionieren soll oder irgendwann mal funktioniert hat.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
15.227
Dieses [-] ist meist ein Zeichen davon, dass eine Statenummer zum Patchen nicht über STATE_WHICH_SAYS bestimmt werden konnte. Der Default ist nämlich -1. Da müsste man in die tp2 schauen, ob da die Originalmod gepatcht werden soll z.B.
EDIT ok. maus hatte das schon gefunden..
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.924
OK kann ich die Mod trotzdem irgendwie verwenden? Wenn ich eine ältere Version nehme und dann alles auf englisch installiere?
Nein, von den älteren Versionen lässt sich auch keine auf englisch installieren

Die Mod ist leider momentan nicht installierbar - zumindest nicht auf englisch
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.924
In dem Fall wäre die Lösung ihn auf Deutsch zu installieren
Da gebe ich Dir vollkomman recht. ;)
Das Problem ist nur, dass man die Mod nicht auf deutsch installieren kann, im Gegensatz zur richtigen Thalantyrs Itemupgrade Mod gibt es für die nur englisch und russisch.

@Maus und @Jastey gäbe es eine Möglichkeit, dem Autor davon zu berichten? Auf G3 sind da,soweit ich weiss, gleich zwei Threads.
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
1.027
Ich bin mir ziemlich sicher, dass ich die Mod mal auf Deutsch übersetzt hatte.
Ich schaue später mal nach, ob ich die Dateien irgendwo finde...
 

Argent

Senior Member
Registriert
13.07.2010
Beiträge
478
Das Problem mit dem nicht passenden String kann man lösen, indem der Originalstring dynamisch aus der Thalantyr-Mod eingelesen wird. Das setzt aber voraus, dass beide Mods (Thalantyr und Bardezs "BGEE-Thalantyr-Ex") im Spielverzeichnis existieren.

Wenn man die Zeile OUTER_SET ThalantyrCraftingState = STATE_WHICH_SAYS @9001 FROM ~THALAN~ in "mod-thalantyr-ex/setup-mod-thalantyr-ex.tp2" durch diesen Codeblock ersetzt, dann kann die Mod sprachunabhängig installiert werden:
Code:
// loading original thalantyr mod string for dialog state matching
COPY ~weidu.log~ ~weidu.log~
  SET lang_id = 0
  REPLACE_EVALUATE CASE_INSENSITIVE "~thalan/thalan\.tp2~ #\([0-9]+\) #0" BEGIN
    SET lang_id = MATCH1
  END ~%MATCH0%~
BUT_ONLY

ACTION_MATCH lang_id WITH
  1 BEGIN OUTER_SPRINT lang ~russian~ END
  2 BEGIN OUTER_SPRINT lang ~french~ END
  3 BEGIN OUTER_SPRINT lang ~german~ END
  4 BEGIN OUTER_SPRINT lang ~spanish~ END
  5 BEGIN OUTER_SPRINT lang ~italian~ END
  6 BEGIN OUTER_SPRINT lang ~polish~ END
  7 BEGIN OUTER_SPRINT lang ~schinese~ END
  DEFAULT OUTER_SPRINT lang ~english~
END

WITH_TRA ~thalan/tra/%lang%/thalan.tra~ BEGIN
  OUTER_SPRINT thalantyr_state @16
END

OUTER_SET ThalantyrCraftingState = STATE_WHICH_SAYS ~%thalantyr_state%~ FROM ~THALAN~

Es gibt dann lediglich einen Mix aus unterschiedlichen Sprachen in Thalantyrs Dialog.
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.924

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
15.227
@Argent das hier verwende ich in der Road to Discovery-Mod, was auch von Dir war. Es unterscheidet sich von Deinem Template oben. Welches findest Du "besser"/stabiler/einfacher zu pflegen?
EDIT: Äh, ich glaube, das ist ein anderer Anwendungsfall, sorry.
Code:
/* fetch language in which the tweak pack is installed in - thanks to argent77 */
// Language folder names listed in the order of LANGUAGE definitions in the SoD Tweak mod.
ACTION_DEFINE_ARRAY languages BEGIN
  "english" "german" "russian" "french" "polish" "spanish" "schinese"
END

// Fetching language index from the WeiDU.log
OUTER_SET language_number = "-1"
COPY "WeiDU.log" "WeiDU.log"
  REPLACE_EVALUATE CASE_INSENSITIVE
    "^~.*c#sodtweaks\.tp2~ #\([0-9]+\) #5\b"
    BEGIN
      PATCH_IF (IS_AN_INT "MATCH1") BEGIN
        SET language_number = MATCH1
      END
    END
    "%MATCH0%"
BUT_ONLY IF_EXISTS

ACTION_IF (language_number >= 0) BEGIN
  OUTER_SPRINT mod_language $languages("%language_number%")
  WITH_TRA "c#sodtweaks/translations/autotra/%mod_language%/DIALOGUE_CHOICES.TRA" BEGIN
    OUTER_SET strref1 = RESOLVE_STR_REF(@54)
  END
END
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
15.227
Das Problem mit dem nicht passenden String kann man lösen, indem der Originalstring dynamisch aus der Thalantyr-Mod eingelesen wird. Das setzt aber voraus, dass beide Mods (Thalantyr und Bardezs "BGEE-Thalantyr-Ex") im Spielverzeichnis existieren.

Wenn man die Zeile OUTER_SET ThalantyrCraftingState = STATE_WHICH_SAYS @9001 FROM ~THALAN~ in "mod-thalantyr-ex/setup-mod-thalantyr-ex.tp2" durch diesen Codeblock ersetzt, dann kann die Mod sprachunabhängig installiert werden:
Meine Erfahrung ist, dass "STATE_WHICH_SAYS" die richtige Sprachversion findet, auch wenn die erste Mod in einer anderen als die zweite, die diesen Patchcode verwendet, installiert ist. Meine Erfahrung ist, dass die Sprache nur dann fehlschlägt, wenn wie in meinem Beispiel oben, mit WITH_TRA gearbeitet wird.
Das hier aber geht problemlos:
Code:
// Get state @8 for BELT %BELTBRD12_BELT8%
/* ~I see. Still, the city is in your debt. Fare well, Hero of Baldur's Gate.~ */
  OUTER_SET BELTBRD12_BELT8 = STATE_WHICH_SAYS 8 IN ~c#endlessbg1/translations/%s/DIALOGUES.TRA~ FROM ~BELT~
 

Argent

Senior Member
Registriert
13.07.2010
Beiträge
478
Man kann sowohl ein Array oder ein ACTION_MATCH verwendet, um die Sprache zu bestimmen. Ich würde vielleicht das ACTION_MATCH vorziehen, da es bei einer unbekannten Sprache auf einen Standardwert zurückfällt. Beim Array würde es entweder einen Fehler provozieren oder den Namen der Array-Variable als Sprache zurückgeben (z.B. "languages_9").
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
15.227
@Argent Das war eine Antwort auf meine erste Frage, oder? Ich glaube, dass das ein anderer Anwendungsfall war, da ich dort (also hier) eine Antwortoption finden musste, damit ich diese patchen kann.

Für das "bloße" Finden von Statenummern klappt in meiner Erfahrung wie gesagt der ganz einfache Aufbau, den ich in meinem letzten Post geschrieben habe. Das einzig Wichtige hierbei ist, dass man "%s" für den Sprachordner verwendet und nicht %LANGUAGE% - aber ich denke, das weißt Du schon alleine weil Du weißt, was die Variablen genau bedeuten.

Du hattest oben für das Einlesen einer Statenummer aus einer anderen Mod mit "STATE_WHICH_SAYS" eine Spracherkennung dazugefügt. Wenn man die entsprechende Textzeile aus dem tra-Pfad der anderen Mod verwendet wie in meinem Beispiel, dann ist dies nicht nötig.
Ist der Unterschied, dass hier eine Textzeile aus der Addon-Mod für die Erkennung genommen wird? Dann muss natürlich die Sprache der anderen Mod erkannt und die richtige Sprachzeile verwendet werden. Allerdings könnte dies dann brechen, wenn nicht beide Mods auch alle Sprachoptionen beinhalten.
Wenn ich es richtig verstanden habe, könnte man also diese Zeile
Code:
OUTER_SET ThalantyrCraftingState = STATE_WHICH_SAYS @9001 FROM ~THALAN~
umändern in eine, die die entsprechende Zeile in der ThalantyrItemUpgrade-Mod sucht, und müsste dann keine Sprachabfrage machen:
Code:
OUTER_SET ThalantyrCraftingState = STATE_WHICH_SAYS xy IN ~[pfad in thalantyritemupgrade]/%s/[tradatei].tra~ FROM ~THALAN~
Dies wäre meiner Meinung nach die stabilere und weniger pflegeintensive Variante.
Ich mache es in allen meinen Mods so, dass ich die Originalzeile der Mod suche, die ich patchen möchte. Das funktioniert nur dann nicht, wenn die Mod nicht im Ordner ist (sondern z.B. in der BG:EE installiert wurde bei EET), oder wenn das Encoding nicht genau passt - man muss also sichergehen, dass man als tra-Pfad den angibt, wo die tra-Dateien liegen, die schlussendlich auch für die Installation verwendet werden (was bei manchen zwischen klassik und EE variieren kann wenn HANDLE_CHARSETS mit einem Ordner in weidu_external arbeitet.)
 
Oben