Zum Inhalt

FlyWithLua

FlyWithLua NG+ ist eine Lua-Scripting-Engine für X-Plane 12, die als Basis für zahlreiche Community-Plugins und eigene Automatisierungen dient.

Hintergrund

  • Entwickler: X-Friese (Florian Schmid), Maintainer sparker256 / smoothchat
  • Repository: github.com/X-Friese/FlyWithLua (Open Source, MIT-Lizenz)
  • Plattformen: Windows, macOS, Linux (native Binaries)
  • Kompatibilität: X-Plane 12 (NG+ Edition), X-Plane 11 (ältere NG-Edition)

Das Plugin wird seit X-Plane 9 entwickelt und ist eines der meistverbreiteten X-Plane-Plugins. Viele andere Plugins wie 3jFPS oder AutoATC setzen FlyWithLua als Voraussetzung voraus.

Funktionsumfang

  • Lua-Scripting via LuaJIT: Datarefs lesen und schreiben, eigene Commands erstellen, Menüs anlegen
  • ImGui-Integration: Native Dear-ImGui-Fenster für eigene Benutzeroberflächen
  • FMOD-Audio: Zugriff auf das X-Plane-FMOD-Soundsystem (COM1, Interior, UI, Master-Busse)
  • HID-Gerätezugriff: Direkte USB-HID-Kommunikation für Custom-Controller
  • Script-Quarantine: Fehlerhafte Skripte werden automatisch in den Ordner Scripts (Quarantine)/ verschoben und können nach Korrektur über das Plugins-Menü neu geladen werden
  • Scripts (disabled): Skripte in diesem Ordner werden beim Start übersprungen, ohne sie löschen zu müssen

Mehrwert in der Flugsimulation

FlyWithLua ermöglicht die Automatisierung wiederkehrender Abläufe im Cockpit — von einfachen Checklisten-Helfern bis hin zu komplexen Custom-UIs mit ImGui. Über HID-Zugriff lassen sich auch ungewöhnliche Controller direkt ansprechen, die X-Plane nicht nativ unterstützt. Da viele Community-Plugins FlyWithLua als Voraussetzung haben, gehört es zur Grundausstattung einer X-Plane-Installation.

Installation

Download: forums.x-plane.org (kostenloser X-Plane.Org-Account erforderlich)

Die ZIP-Datei nach Resources/plugins/ entpacken. Es entsteht folgende Verzeichnisstruktur:

Resources/plugins/FlyWithLua/
    lin_x64/FlyWithLua.xpl
    Scripts/
    Scripts (disabled)/
    Scripts (Quarantine)/
    Internals/
    Modules/

Abhängigkeiten auf Debian/Ubuntu:

sudo apt install libglut3.12 libopenal1

Auf Debian Bookworm (Stable) enthält das Paket libglut3.12 keinen libglut.so.3-Symlink. FlyWithLua linkt gegen libglut.so.3 und lädt ohne diesen Symlink nicht — ohne Fehlermeldung im Log.txt.

Workaround:

sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3.12 /usr/lib/x86_64-linux-gnu/libglut.so.3

Auf Debian Trixie (Testing) und Ubuntu 24.04+ ist der Symlink bereits im Paket enthalten.

FMOD-Fehler bei bestimmten Flugzeugen

Beim Laden von Flugzeugen mit FMOD-Soundpaket (z.B. ToLiss A321) kann im Log.txt folgender Fehler erscheinen:

FlyWithLua Error: Error in ../Fmod/FmodIntegration.cpp, line 732: An invalid parameter was passed to this function.

Der Fehler ist nicht-fatal — das Plugin funktioniert weiterhin. Siehe Issue #126 für den aktuellen Stand.

Skript-Installation

FlyWithLua-Skripte (.lua-Dateien) werden nach Resources/plugins/FlyWithLua/Scripts/ kopiert. Lua-Bibliotheken, die von mehreren Skripten gemeinsam genutzt werden, gehören in Modules/ — nicht in Scripts/.

Viele Skripte liefern Sound-Ordner oder Konfigurationsdateien mit. Diese müssen im selben Verzeichnis wie das Skript liegen, damit sie gefunden werden.

Resources/plugins/FlyWithLua/
    Modules/
        SharedLibrary.lua
    Scripts/
        MyScript.lua
        MyScript_Sounds/

Reine Lua-Skripte sind plattformunabhängig und laufen unter Linux identisch wie unter Windows und macOS. Linux-spezifische Probleme treten nur auf, wenn ein Skript externe Binaries oder Betriebssystem-Funktionen aufruft.

Quellen