Ich persönlich würde für ein solches Problem ein
JSON-Dateiformat empfehlen. Damit kann man sehr kompakt und übersichtlich alle wesentlichen Informationen in einer Datei speichern, die man ohne Probleme auch von Hand erstellen und lesen kann.
XML kann man auch verwenden, halte ich für den angestrebten Zweck allerdings eher für unpraktisch, da deutlich schwieriger lesbar und damit auch deutlich schwerer selbst zu schreiben (da braucht man dann fast unbedingt einen Editor für, weil es 1001 Möglichkeiten gibt, die gleiche Information darzustellen).
Scriptsprache halte ich für absolut überdimensioniert für diesen Zweck. Man kann damit zweifelsohne coole Sachen machen, aber ich persönlich würde bevorzugen Logik und Daten hierbei entsprechend zu kapseln. Beispielsweise kann ich mit einer Scriptsprache die Logik für Abwehrgeschütze mit Lenkraketen schreiben, aber evtl. soll es davon verschiedene Gebäude geben, die die gleiche Funktion aber unterschiedliche Statuseigenschaften haben (beispielsweise Upgrades oder Gebäude verschiedener Fraktionen). Da fände ich es deutlich übersichtlicher die Gebäudeinformationen gesammelt zu haben und die Logik an einem anderen Punkt in Skripten zu beherbergen. Wenn ich die ganzen Eigenschaften nämlich wieder in irgendwelchen Skripten hardcode, habe ich genau das gleiche Problem, das ich eigentlich umgehen wollte.
Deshalb empfehle ich das ganze erst einmal so einfach wie möglich so halten. Wie gesagt wäre mein Ansatz JSON, ich habe in einem älteren Projekt aber auch schon deutlich einfachere Systeme verwendet, die hier vmtl. auch ausreichend wären und einfach Zeile für Zeile Textdateien ausgelesen wurden und entsprechende Statuseigenschaften wurden auf Werte in einer Map gespeichert und später beim Erstellen verarbeitet.