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 deineactionmaps.xml– immer mit automatischem Backup.
- Features
- Voraussetzungen
- Installation
- Emotes einrichten
- Wie es funktioniert
- Aus dem Quellcode bauen
- Eigene Buttons hinzufügen
- Fehlerbehebung
- Lizenz
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
- 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
Empfohlen – fertiges Paket:
- Unter Releases die Datei
com.miwi.star-citizen.streamDeckPluginherunterladen. - Doppelklicken → Stream Deck installiert das Plugin automatisch.
- 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.sdPluginnach%APPDATA%\Elgato\StreamDeck\Plugins\kopieren, dann Stream Deck neu starten.
Emotes brauchen einen einmaligen Bind-Schritt, weil sie auf frei gewählte Numpad-Tasten gelegt werden:
- Star Citizen schließen (wichtig – SC überschreibt die Keybind-Datei beim Beenden).
- In der Stream-Deck-App den Button „Emote-Config (SC binden)" drücken → ✔ = fertig. (Optional – das Plugin macht das ohnehin automatisch, siehe unten.)
- Star Citizen starten.
- 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.
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.xmlgeschrieben (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) |
# 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.ps1Verteilpaket erzeugen (.streamDeckPlugin):
npx @elgato/cli pack com.miwi.star-citizen.sdPlugin --output disttools/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.
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 DruckSC 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 intools/build.ps1die 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.
MIT – siehe LICENSE. Star Citizen® ist eine Marke von Cloud Imperium Rights LLC/Ltd. Dieses Projekt steht in keiner Verbindung dazu.