Skip to content

Repository files navigation

Star Citizen – Stream Deck Plugin

Ein Elgato-Stream-Deck-Plugin für Star Citizen: Schiffs-, Flug- und Kampf-Funktionen sowie alle 39 Emotes als fertige Buttons – zum Draufziehen. Sendet echte DirectInput-Scancodes, damit die Tasten im Spiel tatsächlich ankommen.

⚠️ Inoffiziell, kein Bezug zu Cloud Imperium Games. Nutzung auf eigene Gefahr. Das Plugin schreibt Emote-Keybinds in deine actionmaps.xmlimmer mit automatischem Backup.


Inhalt


Features

Schiff & Flug

  • Flight Ready (R), Power an/aus (U), Landefreigabe (Alt+N), Fahrwerk (N), Gimbal Lock (G)
  • Triebwerke (I), VTOL (K), Schiffslichter (L), Scan-Modus (V), mobiGlas (F1)
  • Quantum-Reise als Halte-Button (B halten, bis der Sprung startet)

Kampf

  • Power-Presets: Waffen (F5), Triebwerke (F6), Schilde (F7), Reset (F8)
  • Boost (Shift, halten), Vollbremse/Full-Stop (X, halten)
  • Nächster Feind (Alt+1), Scan-Ping (Tab)
  • Täuschkörper (H), Stör-Köder (J)
  • Selbstzerstörung (Backspace, halten), Aussteigen (Y, halten)

Emotes – alle 39

  • Winken, Salut, Jubeln, Tanzen, Klatschen, Lachen … bis zu Signal-Kommandos
  • Liegen auf Numpad / Shift+Numpad / Strg+Numpad – Tasten, die frei sind, wenn du kein physisches Numpad hast
  • Werden automatisch in Star Citizen gebunden (siehe unten)

Sonstiges

  • „Custom Hotkey" für beliebige Tasten (im Property Inspector einstellbar)
  • Halte-Buttons (down beim Drücken, up beim Loslassen) für Aktionen, die man halten muss
  • Automatisches Wiederherstellen der Emote-Binds im Hintergrund

Voraussetzungen

  • Windows 10/11 (64-bit)
  • Elgato Stream Deck Software 6.5+ (bringt die Node-20-Laufzeit fürs Plugin mit)
  • Zum Selberbauen: Node.js + npm

Installation

Empfohlen – fertiges Paket:

  1. Unter Releases die Datei com.miwi.star-citizen.streamDeckPlugin herunterladen.
  2. Doppelklicken → Stream Deck installiert das Plugin automatisch.
  3. In der Stream-Deck-App erscheint die Kategorie „Star Citizen" – Buttons auf deine Tasten ziehen.

Kein Node/npm nötig – die Abhängigkeiten sind im Paket enthalten.

Falls Windows/SmartScreen blockt: alternativ das ZIP aus den Releases entpacken und den Ordner com.miwi.star-citizen.sdPlugin nach %APPDATA%\Elgato\StreamDeck\Plugins\ kopieren, dann Stream Deck neu starten.


Emotes einrichten

Emotes brauchen einen einmaligen Bind-Schritt, weil sie auf frei gewählte Numpad-Tasten gelegt werden:

  1. Star Citizen schließen (wichtig – SC überschreibt die Keybind-Datei beim Beenden).
  2. In der Stream-Deck-App den Button „Emote-Config (SC binden)" drücken → ✔ = fertig. (Optional – das Plugin macht das ohnehin automatisch, siehe unten.)
  3. Star Citizen starten.
  4. Zu Fuß einen Emote-Button drücken → Emote läuft.

Automatik: Das Plugin stellt die Emote-Binds selbstständig wieder her – beim Start der Stream-Deck-App und danach alle 2 Minuten, aber nur wenn Star Citizen geschlossen ist und wirklich etwas fehlt. Du musst also im Normalfall nichts manuell drücken.

Deine eigenen, in SC gesetzten Emote-Binds (z. B. greet, cs_forward) werden nicht angetastet.


Wie es funktioniert

Star Citizen liest Tastatureingaben über DirectInput/Raw-Input. Deshalb reichen normale Windows-Eingaben (SendKeys o. ä.) nicht – das Plugin schickt echte Scancodes via SendInput. Wichtige Erkenntnisse, die hier eingebaut sind:

  • Tasten kurz halten (~80 ms): SC ignoriert zu schnelle down+up-Ereignisse.
  • F13–F24 funktionieren nicht in SC → Emotes liegen stattdessen auf dem Numpad (frei, wenn kein Numpad vorhanden).
  • Layout-bewusst: Kombis werden über den echten Scancode gesendet, also QWERTZ-tauglich.
  • Emote-Binds werden direkt in …\StarCitizen\LIVE\USER\Client\0\Profiles\default\actionmaps.xml geschrieben (mit Backup) und beim nächsten SC-Start geladen.

Der Plugin-Kern (plugin.js, Elgato Node-SDK) ruft je nach Button kleine PowerShell-Sender auf:

Datei Zweck
send-key.ps1 Scancode-Tastendruck / Halten (Modi tap/down/up)
bind-sc.ps1 schreibt Emote- + Tür-Binds in actionmaps.xml (Backup, No-op wenn nichts fehlt); findet SC automatisch über Launcher-Log + alle Laufwerke
sc-binds.json Zuordnung Aktion → Taste je Actionmap (aus tools/build.ps1 generiert)

Aus dem Quellcode bauen

# Abhängigkeiten installieren
cd com.miwi.star-citizen.sdPlugin
npm install --omit=dev
cd ..

# Icons + manifest.json + plugin.js + emote-binds.json neu generieren
powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\build.ps1

# Installieren (kopiert ins Stream-Deck-Plugin-Verzeichnis, startet SD neu)
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

Verteilpaket erzeugen (.streamDeckPlugin):

npx @elgato/cli pack com.miwi.star-citizen.sdPlugin --output dist

Eigene Buttons hinzufügen

tools/build.ps1 ist die einzige Quelle: Icons, manifest.json, plugin.js und emote-binds.json werden komplett daraus erzeugt. Für einen neuen Button einfach eine Zeile in der $defs-Liste ergänzen …

@{ id='mein-button'; name='Mein Button'; tip='...'; combo='ctrl+f5'; c='#4a90d9'; l1='MEIN'; l2='BUTTON'; chip='C+F5'; gl='M' }

… und build.ps1 laufen lassen. Optionen: mode='hold' (Halte-Button), mode='config' (führt das Bind-Skript aus). Emotes werden aus $emoteList generiert.


Fehlerbehebung

Im Spiel passiert nichts, obwohl der Button feuert

  • Star Citizen muss das aktive Fenster sein.
  • Läuft SC als Administrator? Dann Stream Deck ebenfalls als Administrator starten (Rechte-Isolation blockt sonst die Eingabe).
  • Log ansehen: %APPDATA%\Elgato\StreamDeck\Plugins\com.miwi.star-citizen.sdPlugin\logs\ – dort steht pro Druck SC hotkey -> ….

Emotes gehen nach einem Neustart / Hardware-Wechsel nicht mehr

  • Ursache: SC baut das Keybind-Profil neu auf (z. B. beim Anschließen eines Joysticks) und wirft externe Binds raus. Das Plugin bindet sie automatisch wieder – oder einmal Emote-Config drücken (SC vorher schließen).

Emote duckt/sprintet

  • Die Strg+Numpad-Emotes können mit „Ducken" kollidieren. Dann in tools/build.ps1 die betroffenen Emotes auf eine konfliktfreie Kombi umlegen (z. B. rshift+…) und neu bauen.

Tasten stimmen nicht (anderer Patch)

  • Defaults ändern sich zwischen Versionen. Im Spiel unter Options → Keybindings prüfen und im Button per „Eigene Kombi" anpassen.

Lizenz

MIT – siehe LICENSE. Star Citizen® ist eine Marke von Cloud Imperium Rights LLC/Ltd. Dieses Projekt steht in keiner Verbindung dazu.

About

Elgato Stream Deck Plugin fuer Star Citizen: Schiff-, Flug- & Kampf-Buttons und alle 39 Emotes (mit Auto-Bind). DirectInput-Scancodes.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages