API für Rocket League-Statistiken
In diesem Dokument werden die Funktionen der API für Rocket League-Spieldaten beschrieben. Zunächst müssen die Spieler das Spiel auffordern, diese Funktion zu aktivieren, indem sie ihre TAStatsAPI.ini (oder DefaultStatsAPI.ini, falls diese nicht existiert) bearbeiten, wie unten erklärt. Sobald diese Funktion aktiviert ist, öffnet sie auf dem Rechner des Spielers einen TCP und/oder WebSocket, über den Spieldaten und Ereignisse gesendet sowie bestimmte Befehle empfangen werden. Programme von Drittanbietern können diese Daten für eine Vielzahl von Anwendungen nutzen, beispielsweise für benutzerdefinierte HUDs von Sendern.Übersicht
Die API für Statistiken sendet während eines laufenden Spiels JSON-Nachrichten über ein lokales Socket. Nachrichten werden sowohl in einem konfigurierbaren Zeitabstand als auch bei bestimmten Match-Ereignissen gesendet. Ereignisdaten werden immer im selben Tick gesendet, in dem das Ereignis eintritt, unabhängig von der PacketSendRate des Benutzers.Hinweis: Alle Konfigurationen müssen vor dem Start des Clients vorgenommen werden – Änderungen an der ini-Datei während des Betriebs erfordern einen Neustart.
Sichtbarkeit des Feldes:
- Markierte Felder BEDINGUNGSABHÄNGIG nur angezeigt, wenn relevant.
- Markierte Felder ZUSCHAUER werden nur gesendet, während man zuschaut.
- Markierte Felder TEAM werden nur gesendet, wenn man im selben Team ist wie der Spieler, den sie beschreiben.
- Markierte Felder REPLAY sind nur während Replays relevant.
Konfigurierung
Bearbeite<Install Dir>\TAGame\Config\TAStatsAPI.ini (oder DefaultStatsAPI.ini, falls <Install Dir>\TAGame\Config\TAStatsAPI.ini nicht vorhanden ist) im Abschnitt [TAGame.MatchStatsExporter_TA], bevor du den Client startest.| Einstellung | Typ | Standard | Beschreibung |
|---|---|---|---|
| PacketSendRate | float | 0 (deaktiviert) | Anzahl der UpdateState-Pakete, die pro Sekunde gesendet werden. Auf 120 begrenzt; 0 deaktiviert die Funktion. |
| Port | int | 49123 | Lokaler Port, auf dem der Client auf TCP-Verbindungen wartet. Zum Deaktivieren auf „0“ setzen. Muss sich von WebPort unterscheiden. |
| WebPort | int | 49124 | Der lokale Port, den der Client überwacht, um einen WebSocket zu öffnen. Zum Deaktivieren auf „0“ setzen. Muss sich von Port unterscheiden. |
Nachrichtenformat
Jede Nachricht ist wie folgt aufgebaut:{
"Event": "EventName",
"Data": { /* event-specific payload */ }
}Tick
Sendung X-mal pro Sekunde, basierend auf der Einstellung „PacketSendRate“ des Spielers.
Beispiel
{
"Event": "UpdateState",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"Players": [
{
"Name": "PlayerA",
"PrimaryId": "Steam|123|0",
"Shortcut": 1,
"TeamNum": 0,
"Score": 125,
"Goals": 1,
"Shots": 2,
"Assists": 0,
"Saves": 1,
"Touches": 14,
"CarTouches": 3,
"Demos": 0,
"Loadout": [
"body_grain",
"Skin_bartees",
"Wheel_SoccerBall",
"Boost_AlphaReward",
"None",
"None"
],
"bHasCar": true,
"Speed": 1200,
"Boost": 45,
"bBoosting": true,
"bOnGround": true,
"bOnWall": false,
"bPowersliding": false,
"bDemolished": true,
"Attacker": {
"Name": "PlayerB",
"Shortcut": 2,
"TeamNum": 1
},
"bSupersonic": true,
"PickupClass": "SpecialPickup_GrapplingHook_TA"
}
],
"Game": {
"Teams": [
{
"Name": "Blue",
"TeamNum": 0,
"Score": 1,
"ColorPrimary": "0000FF",
"ColorSecondary": "0000AA"
}
],
"PlaylistId": 11,
"TimeSeconds": 180,
"bOvertime": false,
"Frame": 120,
"Elapsed": 50.2,
"Ball": {
"Speed": 850.5,
"TeamNum": 0
},
"bReplay": false,
"bHasWinner": true,
"Winner": "Blue",
"Arena": "Stadium_P",
"bHasTarget": true,
"Target": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
}
}
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| Players | array | Ein Eintrag pro Spieler im Match. |
| Name | string | Anzeigename. |
| PrimaryId | string | Plattform-ID im Format „Plattform|Uid|Splitscreen“ (z. B. „Steam|123|0“, „Epic|456|0“). |
| Shortcut | int | Schnellzugriffsnummer für Zuschauer. |
| TeamNum | int | Team-Index (0 = Blau, 1 = Orange). |
| Score | int | Gesamtergebnis des Matches. |
| Goals | int | In diesem Match erzielte Tore. |
| Shots | int | In diesem Match erfolgte Torschüsse. |
| Assists | int | In diesem Match verdiente Vorlagen. |
| Saves | int | In diesem Match erzielte Paraden. |
| Touches | int | Ballberührungen insgesamt: |
| CarTouches | int | Berührungen durch die Karosserie (nicht durch den Ball). |
| Demos | int | Zerstörungen verursacht. |
| Loadout | array<string> | Asset-Namen der ausgerüsteten Ausrüstung für das aktuelle Team des Spielers, sortiert nach Produkt-Slot. |
| bHasCar | bool | ZUSCHAUERGilt, wenn der Spieler gerade ein Fahrzeug hat. |
| Speed | float | ZUSCHAUERFahrzeuggeschwindigkeit in Unreal Units pro Sekunde. |
| Boost | int | ZUSCHAUERRaketenspur-Menge 0–100. |
| bBoosting | bool | ZUSCHAUERGilt, wenn der Spieler gerade eine Raketenspur nutzt. |
| bOnGround | bool | ZUSCHAUERGilt, wenn mindestens drei Räder den Spielbereich berühren. |
| bOnWall | bool | ZUSCHAUERGilt, wenn das Fahrzeug gerade an einer Wand fährt. |
| bPowersliding | bool | ZUSCHAUERGilt, wenn der Spieler gerade die Handbremse zieht. |
| bDemolished | bool | ZUSCHAUERWahr, wenn das Fahrzeug derzeit zerstört ist. |
| bSupersonic | bool | ZUSCHAUERWahr, wenn das Fahrzeug mit Überschallgeschwindigkeit fährt. |
| PickupClass | string | ZUSCHAUERKlassenname des Spielers aktuell verfügbarer Rumble-Aufheber. Wird weggelassen, wenn nicht mit Rumble-Power-Ups gespielt wird. |
| Attacker | object | BEDINGUNGSABHÄNGIGDer Spieler, der diesen Spieler zerstört hat. Nur bei Zerstörung vorhanden. |
| Name | string | Name des Spielers, der diesen Spieler zerstört hat. |
| Shortcut | int | Zuschauer-Tastenkürzel für den Angreifer. |
| TeamNum | int | Team-Index des Angreifers. |
| Game | object | Match-Metadaten. |
| Teams | array | Ein Eintrag pro Team, sortiert nach TeamNum. |
| Name | string | Teamname. |
| TeamNum | int | Team-Index. |
| Score | int | Team-Tore. |
| ColorPrimary | string | Hex-Farbcode (ohne #) für die Hauptfarbe des Teams. |
| ColorSecondary | string | Hex-Farbcode für die Zweitfarbe des Teams. |
| PlaylistId | int | Playlist-ID des aktuellen Spiels. |
| TimeSeconds | int | Verbleibende Sekunden im Match. |
| bOvertime | bool | Wahr, wenn das Match in die Verlängerung geht. |
| Ball | object | Aktueller Status des Balls. |
| Speed | float | Aktuelle Ballgeschwindigkeit in Unreal Units pro Sekunde. |
| TeamNum | int | Index des letzten Teams, das den Ball berührt hat. 255, wenn der Ball nicht berührt wurde. |
| bReplay | bool | Wahr, wenn eine Torwiederholung oder eine Spielverlaufswiederholung aktiv ist. |
| bHasWinner | bool | Wahr, wenn ein Team gewonnen hat. |
| Winner | string | Name des Gewinnerteams. Leere Zeile, wenn es noch keinen Gewinner gibt. |
| Arena | string | Asset-Name der aktuellen Karte (z. B. „Stadium_P“). |
| bHasTarget | bool | Wahr, wenn der Kunde gerade ein bestimmtes Fahrzeug ansieht. |
| Target | object | BEDINGUNGSABHÄNGIGPlayer currently being viewed. Members are an empty string or 0 if the player does not have a spectator target. |
| Name | string | Name des Spielers, der gerade angezeigt wird. |
| Shortcut | int | Zuschauer-Tastenkürzel für den angezeigten Spieler. |
| TeamNum | int | Teamindex des angezeigten Spielers. |
| Frame | int | BEDINGUNGSABHÄNGIGAktuelle Frame-Nummer, wenn eine Wiederholung aktiv ist. |
| Elapsed | float | BEDINGUNGSABHÄNGIGSekunden, die seit Spielbeginn vergangen sind, wenn eine Wiederholung aktiv ist. |
Events
Sendung eines Frames nachdem der Ball getroffen wurde.
Beispiel
{
"Event": "BallHit",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"Players": [
{
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
}
],
"Ball": {
"PreHitSpeed": 0,
"PostHitSpeed": 1450.2,
"Location": {
"X": -512,
"Y": 100,
"Z": 200
}
}
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| Players | array | Spieler, die den Ball in diesem Frame treffen. |
| Name | string | Anzeigename. |
| Shortcut | int | Schnellzugriff für Zuschauer. |
| TeamNum | int | Team-Index (0 = Blau, 1 = Orange). |
| Ball | object | Status des Balls im Moment des Treffers. |
| PreHitSpeed | float | Ballgeschwindigkeit vor dem Treffer (Unreal Units/Sekunde). |
| PostHitSpeed | float | Ballgeschwindigkeit nach dem Treffer (Unreal Units/Sekunde). |
| Location | vector | Weltkoordinaten (X, Y, Z) des Balls beim Aufprall. |
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
ZUSCHAUER
Wird gesendet, wenn ein Fahrzeug ein Boost-Feld oder eine Boost-Pille einsammelt.Beispiel
{
"Event": "BoostPickup",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"Player": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
},
"Location": {
"X": -3072,
"Y": 0,
"Z": 73
},
"BoostAmount": 100,
"BoostType": "BoostType_Pill",
"bReplay": false
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| Player | object | Der Spieler, der die Raketenspur gesammelt hat. |
| Name | string | Anzeigename. |
| Shortcut | int | Schnellzugriffsnummer für Zuschauer. |
| TeamNum | int | Team-Index (0 = Blau, 1 = Orange). |
| Location | vector | Weltposition (Aufheben) als { X, Y, Z }. |
| BoostAmount | float | Höhe des durch den Pickup gewährten Boosts. |
| BoostType | string | Aufhebe-Klasse: BoostType_Pad (kleines Feld), BoostType_Pill (volle/starke Raketenspur). |
| bReplay | bool | True, wenn das Aufheben während der Replay-Wiedergabe stattgefunden hat. |
Sendung nach Änderung der Spielzeit.
Beispiel
{
"Event": "ClockUpdatedSeconds",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"TimeSeconds": 180,
"bOvertime": false
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| TimeSeconds | int | Verbleibende Sekunden im Match. |
| bOvertime | bool | Wahr, wenn das Spiel in der Verlängerung ist. |
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung zu Beginn jeder Runde, sobald der Countdown startet.
Beispiel
{
"Event": "CountdownBegin",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung nach einem Lattentreffer.
Beispiel
{
"Event": "CrossbarHit",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"BallLocation": {
"X": 120,
"Y": -2944,
"Z": 320
},
"BallSpeed": 870.3,
"ImpactForce": 127.5,
"BallLastTouch": {
"Player": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
},
"Speed": 120
}
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| BallSpeed | float | Ballgeschwindigkeit beim Aufprall. |
| ImpactForce | float | Aufprallkraft des Balls relativ zur Normalen der Latte. |
| BallLastTouch | object | Die letzte Berührung des Balls, bevor er an die Latte prallte. |
| Player | object | Der Spieler, der den Ball zuletzt berührt hat. |
| Name | string | Anzeigename. |
| Shortcut | int | Schnellzugriff für Zuschauer. |
| TeamNum | int | Team-Index (0 = Blau, 1 = Orange). |
| Speed | float | Die Ballgeschwindigkeit, die sich aus diesem Treffer ergibt. |
| BallLocation | vector | Die Weltkoordinaten (X, Y, Z) des Balls zum Zeitpunkt des Aufpralls. |
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung nach Ende der Torwiederholung.
Beispiel
{
"Event": "GoalReplayEnd",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung zu Beginn einer Torwiederholung.
Beispiel
{
"Event": "GoalReplayStart",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung beim Explodieren des Balls während einer Torwiederholung. Bei Überspringen der Wiederholung wird dieses Ereignis nicht ausgelöst.
Beispiel
{
"Event": "GoalReplayWillEnd",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung bei Torerfolg.
Beispiel
{
"Event": "GoalScored",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"GoalSpeed": 87.3,
"GoalTime": 127.5,
"ImpactLocation": {
"X": 0,
"Y": -2944,
"Z": 320
},
"Scorer": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
},
"Assister": {
"Name": "PlayerC",
"Shortcut": 3,
"TeamNum": 0
},
"BallLastTouch": {
"Player": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
},
"Speed": 125
}
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| GoalSpeed | float | Ballgeschwindigkeit (Unreal Units/Sekunde) beim Überqueren der Torlinie. |
| GoalTime | float | Dauer der vorherigen Runde in Sekunden. |
| ImpactLocation | vector | Die Weltkoordinaten (X, Y, Z) des Balls zum Zeitpunkt des Tores. |
| Scorer | object | Der Spieler, der das Tor geschossen hat. |
| Name | string | Anzeigenamen des Torjägers. |
| Shortcut | int | Schnellzugriff für Zuschauer. |
| TeamNum | int | Teamindex des Torjägers. |
| BallLastTouch | object | Die letzte Ballberührung vor dem Tor. |
| Player | object | Der Spieler, der den Ball zuletzt berührt hat. |
| Name | string | Name des Spielers, der den Ball zuletzt berührt hat. |
| Shortcut | int | Schnellzugriff für Zuschauer. |
| TeamNum | int | Team-Index. |
| Speed | float | Die Ballgeschwindigkeit, die sich aus dieser Berührung ergibt. |
| Assister | object | BEDINGUNGSABHÄNGIGGleiche Form wie Scorer. Nur dann aufgeführt, wenn eine Vorlage verzeichnet wurde. |
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung, sobald alle Teams erstellt und übernommen wurden.
Beispiel
{
"Event": "MatchCreated",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung beim Verlassen des Spiels.
Beispiel
{
"Event": "MatchDestroyed",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung nach Spielende und Feststellung des Siegers.
Beispiel
{
"Event": "MatchEnded",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"WinnerTeamNum": 0
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| WinnerTeamNum | int | Teamindex des Gewinnerteams. |
Sendung bei Beginn des ersten Countdowns.
Beispiel
{
"Event": "MatchInitialized",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung bei Spielunterbrechung durch einen Match-Administrator.
Beispiel
{
"Event": "MatchPaused",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung beim Fortsetzen des Spiels durch einen Match-Administrator.
Beispiel
{
"Event": "MatchUnpaused",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Wird gesendet, wenn ein Spieler zum aktuellen Spiel hinzugefügt wird.
Beispiel
{
"Event": "PlayerJoined",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"PlayerName": "PlayerA",
"PrimaryId": "Steam|123|0"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| PlayerName | string | Anzeigename des Spielers, der beigetreten ist. |
| PrimaryId | string | Plattform-ID im Format „Plattform|Uid|Splitscreen“ (z. B. „Steam|123|0“, „Epic|456|0“). |
Wird gesendet, wenn ein Spieler aus dem aktuellen Spiel entfernt wird.
Beispiel
{
"Event": "PlayerLeft",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"PlayerName": "PlayerA",
"PrimaryId": "Steam|123|0"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| PlayerName | string | Anzeigename des Spielers, der gegangen ist. |
| PrimaryId | string | Plattform-ID im Format „Plattform|Uid|Splitscreen“ (z. B. „Steam|123|0“, „Epic|456|0“). |
Sendung beim Erreichen des Podiums nach Spielende.
Beispiel
{
"Event": "PodiumStart",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung nach Initialisierung einer Wiederholung. Dies gilt nicht für Torwiederholungen, sondern nur für Wiederholungen über das Menü „Matchverlauf“.
Beispiel
{
"Event": "ReplayCreated",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"FileName": "Stadium_P_2026-06-05_18-42",
"Date": "2026-06-05 18:42:13"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| FileName | string | Dateiname des Replays. |
| Date | string | Zeitstempel, wann das Replay erstellt wurde. |
Sendung beim Eintritt des Spiels in den aktiven Zustand (nach Ablauf des Countdowns).
Beispiel
{
"Event": "RoundStarted",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
Sendung bei Erhalt einer Statistik.
Beispiel
{
"Event": "StatfeedEvent",
"Data": {
"MatchGuid": "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6",
"EventName": "Demolish",
"Type": "Demolition",
"MainTarget": {
"Name": "PlayerA",
"Shortcut": 1,
"TeamNum": 0
},
"SecondaryTarget": {
"Name": "PlayerB",
"Shortcut": 2,
"TeamNum": 1
}
}
}| Spielfeld | Typ | Beschreibung |
|---|---|---|
| EventName | string | Asset-Name des StatEvent (z. B. „Demolish“, „Save“). |
| Type | string | Lokalisiertes Display-Label für die Statistik (z. B. „Demolition“). |
| MainTarget | object | Spieler, der diese Statistik erzielt hat. |
| Name | string | Anzeigename. |
| Shortcut | int | Schnellzugriff für Zuschauer. |
| TeamNum | int | Team-Index (0 = Blau, 1 = Orange). |
| MatchGuid | string | Nur für Online- oder LAN-Matches festgelegt. |
| SecondaryTarget | object | BEDINGUNGSABHÄNGIGSpieler, der an der Statistik beteiligt ist (z. B. der zerstörte Spieler). Gleiche Form wie MainTarget. |
Befehle
Befehle, die über den Socket gesendet werden und vom Client verarbeitet werden sollen. Jedes davon ist ein JSON-Objekt mit einem Befehlsfeld, das den Befehl benennt, und einem „Data“-Objekt, das die unten aufgeführten Variablen enthält.Befehlsformat
Jeder Befehl ist wie folgt aufgebaut:{
"Command": "CommandName",
"Data": { /* command-specific variables */ }
}ChangePOV
ZUSCHAUERREPLAY| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| Focus | string | Einer von | Worauf der Blick gerichtet sein soll – auf den Ball oder auf einen bestimmten Spieler. Begrenzte Werte (siehe unten). |
| Perspective | string | Einer von | Kameramodus zum Umschalten. Begrenzte Werte (siehe unten). |
Fokus – akzeptierte Werte
| Wert | Bedeutung |
|---|---|
| "Ball" | Fokus auf Ball. |
| "<shortcut>" | Die Schnellzugriffsnummer für Zuschauer eines Spielers als Zeichenfolge (z. B. "1", "2"). Muss aus Ziffern bestehen; jeder andere Wert wird zurückgewiesen. |
Perspektive – akzeptierte Werte
| Wert | Modus | Beschreibung |
|---|---|---|
| "Fly" | Fly | Freie Bewegung auf der Karte. |
| "SoftAttach" | Soft Attach | Folge der Position eines Spielers oder des Balls. |
| "HardAttach" | Hard Attach | Folge der Position und der Drehung eines Spielers. |
| "PlayerView" | Player View | Sicht aus der Perspektive eines Spielers. Automatisch angewendet, wenn der Fokus auf einen Spieler gerichtet ist und keine Perspektive angegeben ist. |
| "AutoCam" | Auto Cam | Schaut automatisch zu. |
| "Camera_Director" | Director | Wechselt automatisch zwischen Spieleransichten. |
Beispiel
{
"Command": "ChangePOV",
"Data": {
"Focus": "1",
"Perspective": "PlayerView"
}
}LoadReplay
| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| FileName | string | Einer von | Name der Replay-Datei, die wiedergegeben werden soll. Hat Vorrang vor dem Pfad, wenn beide festgelegt sind. |
| Path | string | Einer von | Dateipfad eines Replays, das abgespielt werden soll. Wird verwendet, wenn der Dateiname leer ist. |
Beispiel
{
"Command": "LoadReplay",
"Data": {
"FileName": "Stadium_P_2026-06-05_18-42"
}
}SeekReplay
REPLAY| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| Frame | int | Einer von | Zielbildnummer. Hat Vorrang vor TimeSeconds, wenn festgelegt. |
| TimeSeconds | float | Einer von | Zielzeit in Sekunden. |
Beispiel
{
"Command": "SeekReplay",
"Data": {
"TimeSeconds": 120.5
}
}SetGameSpeed
REPLAY| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| Speed | float | Ja | Wiedergabemultiplikator. 1,0 = normal, 0,5 = halbe Geschwindigkeit, 2,0 = doppelte Geschwindigkeit. Muss ≥ 0 sein. |
Beispiel
{
"Command": "SetGameSpeed",
"Data": {
"Speed": 0.5
}
}SetHUDVisibility
| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| bVisible | bool | Ja | Bei „true“ wird das HUD angezeigt, bei „false“ wird es ausgeblendet. |
Beispiel
{
"Command": "SetHUDVisibility",
"Data": {
"bVisible": false
}
}SetMatchPaused
| Variable | Typ | Erfordert | Beschreibung |
|---|---|---|---|
| bPaused | bool | Ja | true pausiert; false setzt fort. |
Beispiel
{
"Command": "SetMatchPaused",
"Data": {
"bPaused": true
}
}