Difference between revisions of "Server Configuration/de"

From ACC Wiki (Unofficial)
Jump to navigation Jump to search
Line 416: Line 416:
 
=== assistRules.json ===
 
=== assistRules.json ===
  
Diese Datei kann verwendet werden, um bestimmte →[[Game_Settings/de#Assistenten|Assistenten]] für jeden Fahrer auf einem →[[Multiplayer_Overview/de#Die_3_Server-Varianten|Privaten Multiplayer-Server]] auszuschalten. Bei Start eines →[[Multiplayer_Overview/de#Die_3_Server-Varianten|Öffentlichen Multiplayer-Servers]] wird diese Datei ignoriert und kann so im cfg-Ordner beibehalten werden.
+
Diese Datei kann verwendet werden, um bestimmte →[[Game_Settings/de#Fahrhilfen|Fahrhilfen]] für jeden Fahrer auf einem →[[Multiplayer_Overview/de#Die_3_Server-Varianten|Privaten Multiplayer-Server]] auszuschalten. Bei Start eines →[[Multiplayer_Overview/de#Die_3_Server-Varianten|Öffentlichen Multiplayer-Servers]] wird diese Datei ignoriert und kann so im cfg-Ordner beibehalten werden.
  
 
Achtung: Durch Deaktivieren von Assistenten wird der Effekt effektiv entfernt.
 
Achtung: Durch Deaktivieren von Assistenten wird der Effekt effektiv entfernt.

Revision as of 12:35, 29 February 2020


Other languages:
Deutsch • ‎English
Acc-wiki server entrylists.jpg

Windows / Linux

Windows spezifisch

Standard Installation Pfad
C:\Program Files (x86)\Steam\steamapps\common\Assetto Corsa Competizione\server

Ändern Sie die Dateien configuration.json, event.json und settings.json im Ordner cfg entsprechend Ihren Anforderungen. Danach können Sie auf accServer.exe doppelklicken, um den Server zu starten. Denken Sie daran, dass Sie auf Ihrem Router eine Port-Weiterleitung durchführen müssen, um die Player auf Ihren Server zu bringen. Sonst ist es nur lokal zugänglich.

Linux spezifisch (Ubuntu 18.04)

Wir brauchen Wine da es keine Native unterstützung für Linux gibt.

sudo apt-get install wine-development

Kopieren Sie jetzt alle Serverdateien von Ihrem Windows-System, auf dem Sie ACC installiert haben, auf den Linux-Server. Danach können Sie Ihren Server mit starten

wine ./accServer.exe

Installation

In der ACC Installation unter ..:\Steam\steamapps\common\Assetto Corsa Competizione findest du den Ordner "server". Darin befinden sich:

Beschreibung
cfg In diesem Ordner befinden sich die Dateien um ein Öffentlichen bzw. Private Multiplayer Server einzustellen
accServer.exe Startet einen Server auf deinem PC oder auf deinem dedizierter Server
ServerAdminHandbook_v7 Beinhaltet die offizielle Dokumentation um einen ACC-Server zu betreiben

In der weiteren Verlauf dieser Beschreibung, wird dir gezeigt was für zusätzliche Ordner und Dateien automatisch bzw. händisch hinzu kommen.

cfg-Ordner

In diesem Order befinden sich bisher 3 Dateien: ...\Steam\steamapps\common\Assetto Corsa Competizione\server\cfg\

Link zur Beschreibung
assistRules.json
configuration.json ↓Configuration / configuration.json
event.json ↓Configuration / event.json
settings.json ↓Configuration / settings.json

In der weiteren Verlauf dieser Beschreibung, wird dir gezeigt was für zusätzliche Ordner und Dateien automatisch bzw. händisch hinzu kommen.

current-Ordner

Wenn Sie accServer.exe jetzt starten, wird im Ordner "cfg" ein Ordner "current" erstellt. Dies enthält ihre Einstellungen aus den JSON-Dateien als Textdatei.

Wenn Sie in .json einen Fehler gemacht haben sollten, so wird dieser beim Start des Servers korrigiert und so in der text-Datei abgebildet. Dies gibt Ihnen eine weitere Möglichkeit auf Fehlersuche zu gehen.

Vergleichen Sie sie mit Ihren Einstellungen in den Dateien:
configuration.txt ↓Configuration / configuration.json
entrylist.txt ↓Configuration / entrylist.json
event.txt ↓Configuration / event.json
eventRules.txt ↓Configuration / eventRules.json
settings.txt ↓Configuration / settings.json

Konfiguration

Der Server wird ausschließlich über JSON-Dateien im UTF16-LE-Format konfiguriert. Im Allgemeinen ist es ratsam, sich an die JSON-Syntax zu gewöhnen und / oder Ihre Konfigurationen mit einem json-Syntax-Check auf https://jsonformatter.curiousconcept.com/ zu testen.

Um einen sauberen Start zu erhalten, können Sie einfach die .json-Dateien entfernen und den Server einmal starten. Dadurch werden sie automatisch mit den aktuellen Standardeinstellungen generiert. Zusätzlich können Sie die in jeder Datei enthaltene „configVersion“ reduzieren, um neue Eigenschaften zu generieren (dies gilt für alle Konfigurationen). Bestimmte "erweiterte" Einstellungen werden ausgeblendet, wenn der Wert während dieses Vorgangs auf den Standardwert gesetzt wird.

Die Konfiguration ist in verschiedene Dateien unterteilt, die unterschiedliche Ebenen dessen darstellen, was Sie möglicherweise behalten oder häufig ändern möchten:

configuration.json

  • Hier definieren wir die sehr technischen Einstellungen, die sich möglicherweise nie ändern, und definieren die Identität des Servers.
  • Das Wichtigste ist, dass beide Ports auf dem System eindeutig sein müssen, die Firewall Verbindungen zulässt und die Ports über das Internet zugänglich sind.
Datei Inhalt Einstellung Beschreibung

{
"udpPort": 9201,
"tcpPort": 9201,
"maxConnections": 30,
"lanDiscovery": 1,
"registerToLobby": 1,
"configVersion": 1
}

tcpPort Ein Fahrer mit seinem ACC stellt über diesen Port eine Verbindung zum Server her
udpPort Die Fahrer auf einem Server verwenden diesen Port, um die Fahrzeugpositionen zu übertragen und für den Ping-Test. Falls Ihr Server niemals einen Ping-Wert erhält, so bedeutet das, dass auf den udpPort nicht zugegriffen werden kann.
registerToLobby
  • 0 = Server wird nicht in der Liste der Server aufgelistet. Der Server gilt dann als →Privater Multiplayer. Ist nützlich für LAN-Sitzungen.
  • 1 = Server wird in der Liste der Server aufgelistet. Der Server gilt dann als →Öffentlicher Multiplayer = Public Server.
maxConnections Hier legst du die maximale Anzahl der Verbindungen ( Fahrer & Zuschauer ) fest, die dein Server gleichzeitig zulassen soll.

Wenn Du der Besitzer eines Hardware-Server bist, dann kannst du hier eine beliebige hohe Zahl festlegen.

Hast du einen Server mit 16 oder 24 Steckplätzen gemietet, so hat Ihr Hosting-Anbieter dies wahrscheinlich so eingestellt und gewährt dir keinen Schreibzugriff auf diese Konfigurationsdatei.

lanDiscovery Legt fest, ob der Server LAN-Ermittlung Anforderungen überwacht. Kann für dedizierte Server deaktiviert ( 0 ) werden.
configVersion ...

Achtung: Es wird nicht empfohlen, einen Server auf einem privaten PC zu betreiben. Es erfordert das Öffnen und Weiterleiten von Ports auf Ihr privates System, was es anfällig für zufälligen und/oder bösartigen Internetverkehr macht. Zusätzlich ist die Bandbreite des privaten ISPs beim Upload oft asymmetrisch begrenzt, was leicht die Leistung des Servers verschlechtern kann und damit zu einem schlechten Multiplayer-Erlebnis für alle Beteiligten führen kann.

settings.json

Die Einstellung definiert Ihre persönlichen Server-Einstellungen, die von Zeit zu Zeit geändert werden können, definiert aber auch den Server.

Datei Inhalt Einstellung Beschreibung

{
"serverName": "My first Server",
"adminPassword": "pwAdmin",
"trackMedalsRequirement": 3,
"safetyRatingRequirement": 49,
"racecraftRatingRequirement": -1,
"password": "pwAccess",
"spectatorPassword": "pwSpect",
"maxCarSlots": 30,
"dumpLeaderboards": 0,
"isRaceLocked": 1,
"randomizeTrackWhenEmpty": 0,
"centralEntryListPath": "",
"allowAutoDQ": 1,
"shortFormationLap": 0,
"dumpEntryList": 0
"formationLapType": 3
}

serverName Hier kannst du deinem Server einen Namen geben. Da die Liste keine Sortierung nach dem Alphabet oder Sonderzeichen zulässt, ist hier ein rangeln um den ersten Platz in der Liste unnötig.
adminPassword Mit dem von dir festgelegten Passwort kann sich ein Fahrer oder Zuschauer, im Chat-Fenster ( Taste: ENTER ) des Servers, sich als Server-Admin anmelden. Siehe auch:
trackMedalsRequirement Definiert die Anzahl der Medaillen/Sterne ( TrackCompetence, TR ) die ein Fahrer für die angezeigte Strecke haben muss. ( Die Versionen 2018 und 2019 einer Strecke zählen als eine. )
  • Mögliche Werte: 0 / 1 / 2 / 3
safetyRatingRequirement Definiert die Höhe der Sicherheitsbewertung ( Safety Rating, SA ), die ein Fahrer haben muss, um dem Server beitreten zu können.
  • Mögliche Werte: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
racecraftRatingRequirement Definiert die Höhe der Racecraft-Bewertung ( Racecraft, RC ), die ein Fahrer haben muss, um dem Server beitreten zu können.
  • Mögliche Werte: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
password Vergebe hier ein Passwort, mit diesem können sich diejenigen anmelden die mitfahren wollen.
  • mit Passwort gilt der Server als →Privater Multiplayer
  • beachte dabei, das es anders lautet als das für Zuschauer
spectatorPassword Lege hier ein Passwort fest, mit dem Benutzer als Zuschauer dem Server beitreten können.
  • beachte dabei, das es anders lautet als das für Fahrer
maxCarSlots Hier definiert man die genaue Anzahl der Zugänge für Fahrer und Zuschauer.

Gibt man hier einen kleineren Wert ein als bei maxConnections in der configuration.json, so definiert die Differenz der beiden Werte die Anzahl der Zuschauerplätze. Aktiv sind die Zuschauerplätze aber nur, wenn auch ein Passwort für Zuschauer ( spectatorPassword ) vergeben wurde.

Die Differenz kann man auch dazu benutzen, um Plätze für Fahrer zu reservieren. Dazu muss man eine entrylist.json hinzufügen in denen sie eingetragen werden müssen.

dumpLeaderboards Erstelle im Hauptverzeichnis des Servers den Ordner “results”. Setze hier den Wert auf “1”, dann wird dort nach jeder einzelnen P-, Q-, R-Sitzung eine Liste notiert.
isRaceLocked Wenn der Wert auf “0” gesetzt ist, erlaubt der Server das beitreten während eines Rennens. Dies ist bei Öffentlichen Multiplayer Servern nicht sinnvoll, da der User-Server-Abgleich ( Matchmaking ) laufende Renn-Sessions ignoriert. 1 bedeutet den Server beitreten während eines Rennens nicht möglich !
randomizeTrackWhenEmpty Wenn der Wert auf 1 gesetzt ist, wechselt der Server zu einer zufälligen Strecke, wenn der letzte Fahrer den Server verlässt ( wodurch eine Zurücksetzung auf das Training verursacht wird ). Die Eigenschaft “track“: “”, ( event.json ) definiert somit nur die Strecke beim Starten des Servers.
centralEntryListPath Trage hier hier nichts ein. Falls du eine entrylist.json im cfg-Ordner hinterlegt hast, so wird diese automatisch erkannt.

Möchtest du für deine verschiedenen Ligen (z.B. Porsche Cup, GT3, SuperTrofeo ) auch separate Zugangslisten verwalten, dann lege für jede Liga einen Ordner und erstelle dort für jede eine entrylist.json. Gebe hier nun den Namen des Ordners ein "centralEntryListPath":"Porsche Cup";. Hat man mehrere Server, so kann man diese Ordner auch außerhalb des Servers platzieren. Dan lautet der Eintrag so: "centralEntryListPath":"../Porsche Cup";

allowAutoDQ Wenn der Wert auf 0 gesetzt ist, werden die Fahrer nicht automatisch disqualifiziert, stattdessen werden Stop & Go-Strafen von einer Dauer von 30 Sekunden ausgeteilt. Auf diese Weise hat ein Administrator/Rennleiter 3 Runden Zeit, um den Vorfall zu überprüfen und verwendet dann die Server Administratoren Befehle “/dq xxx” oder “/clear xxx” , je nach seinem Urteil.
shortFormationLap
  • 0 = eine vollständige Einführungsrunde muss absolviert werden bis Rennen freigegeben wird - Nur für Privater Multiplayer
  • 1 = eine kurze Einführungsrunde muss absolviert werden bis Rennen freigegeben wird ( Standard bei Öffentlichen Multiplayer )

Nach einem Patch gibt es immer das Phänomen, dass die Bedeutung der Werte 0 und 1 umgekehrt wird.

dumpEntryList Speichert eine Eintragsliste am Ende einer Qualifikation Sitzung. Dies kann eine schnelle Möglichkeit sein, einen Startpunkt zum Erstellen einer Teilnehmerliste zu sammeln und die defaultGridPositions zu speichern, die zum Ausführen eines Rennens ohne Qualifying-Sitzung und vordefinierten Raster verwendet werden können. Siehe auch den entsprechenden Admin-Befehl.
formationLapType folgende Werte schalten verschiedene Typen für die Einführungsrunde auf dem Server frei:
  • 3 – Kontrolle wird an jeden einzelnen Fahrer abgegeben, jedem wird ein Widget eingeblendet um seine Position und Geschwindigkeit zu halten
  • 1 – alte/bisherige Version, bei dem jeder eingebremst wird der zu schnell ist
  • 0 – bei dieser Variante, wird bei erreichen von Start und Ziel die Ampel eingeblendet - Nur für Profi-Ligen empfohlen, die ihre eigene Race-Control haben

Nach einem Patch gibt es immer das Phänomen, dass die Bedeutung der Werte 0 und 1 umgekehrt wird.

event.json

Definiert das Rennwochenende, das der Server ausführt. Diese Konfigurationsdatei ist dafür gedacht, dass Sie leicht zwischen verschiedenen Event-Vorlagen wechseln können, indem Sie sie umbenennen/überschreiben.

Datei Inhalt Einstellung Beschreibung

{
"track": "spa",
"preRaceWaitingTimeSeconds": 60,
"sessionOverTimeSeconds": 120,
"ambientTemp": 26,
"cloudLevel": 0.3,
"rain": 0.0,
"weatherRandomness": 3,
"metaData": ,
"simracerWeatherConditions": ,
"isFixedConditionQualification": ,
"configVersion": 1,
"sessions": [
{
"hourOfDay": 10,
"dayOfWeekend": 1,
"timeMultiplier": 1,
"sessionType": "P",
"sessionDurationMinutes": 20
},
{
"hourOfDay": 17,
"dayOfWeekend": 2,
"timeMultiplier": 8,
"sessionType": "Q",
"sessionDurationMinutes": 10
},
{
"hourOfDay": 16,
"dayOfWeekend": 3,
"timeMultiplier": 3,
"sessionType": "Q",
"sessionDurationMinutes": 20
}
]
}

track trage hier die Strecke ein die gefahren werden soll. Siehe hier:
preRaceWaitingTimeSeconds Stelle hier die Vorbereitungszeit vor einem Rennen ein. 30 Sekunden vor Rennstart wird der "Fahren"-Button erst freigegeben. Daher sollte dieser Wert nicht kleiner als 30 Sekunden sein.
sessionOverTimeSeconds Nach dieser Zeit wird eine Sitzung gewaltsam geschlossen, nachdem der Timer 00:00 erreicht hat. Empfohlen ist 107% von der erwarteten Bestzeit einzutragen.
  • Achtung: legen sie bei den Strecken Spa und Silverstone mehr als 120 Sekunden fest.
ambientTemp Stelle hier einen Wert für die Umgebungstemperatur ( °C ) fest. Dieser wird aber von deinen Einstellungen für Regen, Bewölkung und Tageszeit beeinflusst. Die erreichte Außen-Temperatur wirkt sich auf die Temperatur der Strecke aus ( "trackTemp" wird nicht mehr verwendet ). Siehe auch:
cloudLevel Legt fest wie stark die Bewölkung zum Start der Session sein soll. ( →Rennwochenende Simulation )
  • Möglichen Werte: 0.0, 0.1, .... 0.9, 1.0
rain Legt fest wie reichlich Regen zum Start einer Session fällt. Je stärker umso ausgeprägter sind Pfützen und Rinnsale.

Werte größer als 0.1 können den Wert von cloudLevel überschreiben

weatherRandomness Legt das Niveau des dynamischen Wetters fest:
  • 0 = statisches Wetter, es bleibt wie bei rain bzw. cloudLevel eingestellt
  • 1 - 4 = ziemlich realistisches Wetter
  • 5 - 7 = sensationell
postQualySeconds Die Anzahl der Sekunden, in denen das Qualifying-Ergebnis angezeigt wird. Sollte nicht auf 0 gesetzt werden, da es sonst zu Fehlern kommen könnte.
postRaceSeconds Zusätzliche Zeit nach dem der Führende das Rennen beendet hat. So haben alle noch Zeit in die Box zu fahren oder die Wiederholung zu speichern.
metaData Eine benutzerdefinierte Zeichenfolge, die an die Ergebnisausgaben übertragen wird.
simracerWeatherConditions Experimentell / nicht unterstützt: Wenn diese Option auf 1 gesetzt ist, wird der maximale Regen / die maximale Nässe auf ungefähr 2/3 der Maximalwerte begrenzt, was zu etwas zwischen mittlerem und starkem Regen führt. Dies kann nützlich sein, wenn Sie sich gezwungen fühlen, sehr niedrige Werte für CloudLevel und WeatherRandomness auszuführen, um Gewitter zu vermeiden. Hohe Werte (0,4+ Wolken kombiniert mit 5+ Zufälligkeit) führen jedoch immer noch zu ziemlich ernsten Bedingungen.
isFixedConditionQualification Experimentell / nicht unterstützt: Bei der Einstellung 1 nimmt der Server die Werte für Regen, Wolken, Temperatur und Regen wörtlich und stellt sicher, dass sich die Einstellungen nie ändern. Tagesübergänge finden immer noch visuell statt, haben jedoch keinen Einfluss auf die Temperaturen oder die Nässe auf der Straße. Auch Gummi / Griff ist immer gleich. Dies ist nur für Qualifikationsserver für private Ligen vorgesehen.
sessions Eine Liste der Sitzungs-Parameter findest Du in den nächsten Zeilen
Einstellung Beschreibung
hourOfDay lege hier fest zu welcher Stunde die Session starten soll ( Werte von 0 bis 23 )
dayOfWeekend lege den Tag fest ( →Rennwochenende Simulation )
  • 1 = Freitag
  • 2 = Samstag
  • 3 = Sonntag
timeMultiplier lege hier fest um welchen Faktor die Zeit schneller ablaufen soll. Werte von 0, 1, bis 24
sessionType Was soll absolviert werden:
  • P = ( P )ractice = Training
  • Q = ( Q )ualifying = Qualifikation
  • R = ( R )ace = Rennen
sessionDurationMinutes Lege hier fest wie lange diese Session dauern soll ( in Minuten )
  • Anhang:
  1. Es muss mindestens eine Training- bzw Qualifikation-Sitzung vor dem Rennen eingerichtet sein.
  2. Das Einrichten von unangemessenen Tagen und Stunden ( auch Zeit-Multiplikatoren berücksichtigen! ) kann dazu führen das die Streckenbeschaffenheit oder das die Wetter-Simulation verrückt spielen. Vermeiden Sie daher die Qualifikation am Samstag und das Rennen an einem Freitag stattfinden zu lassen.
    1. Rennwochenende

eventRules.json

Definiert die Pitstop-Regeln. Öffentliche MP-Server ignorieren diese JSON-Datei und verwenden Standardwerte.

Die grundlegenden Boxenstopp-Funktionen bieten eine Vielzahl von Kombinationen und verschiedenen Aspekten, mit denen Sie Ihre nicht öffentlichen Rennen organisieren können. Es ist jedoch nicht jede Kombination sinnvoll. Es liegt in Ihrer Verantwortung, die Regeln festzulegen, damit die Fahrer eine gute Erfahrung machen. Es sollte durchaus möglich sein, ein Rennen im Stil eines einzelnen Sprint-Rennens sowie eines 3- bis 24-Stunden-Langstreckenrennens mit oder ohne Fahrerwechsel zu erstellen. Dies sollte Sie natürlich nicht einschränken, über Ihre Serien- und insbesondere Renndauer nachzudenken und möglicherweise die Ausgewogenheit von kraftstoffeinsparendes Autos zu verbessern - oder eine gewisse Taktiktiefe zuzulassen.

Zusätzliche Hinweise:

  • Der Stint-Timer ( obere linke Ecke im Timing-HUD ) wird zurückgesetzt, wenn das Auto dir Boxenanfang überquert, und beginnt beim Überqueren des Ausgangs erneut mit dem Countdown.
  • Wenn eine Strafe verbüßt wird, friert der Stint-Timer ein und zählt nach dem Verlassen der Box ohne Rücksetzen weiter herunter.
  • Wenn die verbleibende Gesamtfahrzeit eines Spielers kürzer als seine aktuelle Stintzeit ist, überschreibt die Gesamtfahrzeit den Stint-Timer (!).

In diesem Fall wird der Hintergrund des Stint-Timers rot und zeigt den letzten Stint des aktiven Fahrers an.

Datei Inhalt Einstellung Beschreibung

{
"qualifyStandingType": 1,
"superpoleMaxCar": -1,
"pitWindowLengthSec": -1,
"driverStintTimeSec": -1,
"isRefuellingAllowedInRace": true,
"isRefuellingTimeFixed": false,
"mandatoryPitstopCount": 0,
"maxTotalDrivingTime": -1,
"maxDriversCount": 1,
"isMandatoryPitstopRefuellingRequired": false,
"isMandatoryPitstopTyreChangeRequired": false,
"isMandatoryPitstopSwapDriverRequired": false,
"tyreSetCount": 50
}

qualifyStandingType
  • 1 = schnellste Runde
  • 2 = durchschnittliche Runde ( Langstrecken-Rennen mit mehreren Quali-Sitzungen )

Verwenden Sie 1, die Mittelwertbildung mehrerer Qualy's wird noch nicht offiziell unterstützt

superpoleMaxCar Derzeit nicht im Kunos Server Admin-Handbuch aufgeführt oder beschrieben
pitWindowLengthSec
  • -1 = deaktiviert das Boxenfenster
  • 600 = definiert die Länge ( 10 minutes = 600 seconds ) eines Boxenfensters, in der Mitte des Rennens ( Sprint-Serienformat ), verwenden Sie dies in Kombination mit der Einstellung ↓mandatoryPitstopCount, mit einem Wert 1 oder höher
driverStintTimeSec Definiert die maximale Zeit, die ein Fahrer draußen bleiben kann, ohne eine Strafe zu erhalten. Kann verwendet werden, um Kraftstoff-sparende Autos in Langstreckenrennen auszugleichen. Die Stint-Zeit wird in der Boxengasse zurückgesetzt, es ist kein echter Stopp erforderlich.
  • 3300 ( = 55 Minuten )
  • -1 = deaktiviert dieses Feature
isRefuellingAllowedInRace Legt fest, ob während der Boxenstopps getankt werden darf.
  • true = auftanken während des Rennens möglich
  • false = während des Rennens ist kein Auftanken möglich
isRefuellingTimeFixed Wenn diese Option auf "true" gesetzt ist, dauert das Auftanken genauso lange. Wenn diese Option deaktiviert ist, wird für das Auftanken eine Zeit benötigt, die der aufgefüllten Menge entspricht. Sehr nützliche Einstellung, um Kraftstoff-sparende Autos auszugleichen, besonders wenn sie mit anderen Funktionen kombiniert werden.
  • true = ja / false = nein
mandatoryPitstopCount Die Anzahl der Pflicht Boxenstopps kann von 1 bis 241 eingestellt werden. Der Wert 0 deaktiviert diese Funktion. Wenn der Wert größer als Null ist, wird jedes Auto, das die vorgeschriebenen Boxenstopps nicht absolviert hat, am Ende des Rennens disqualifiziert. Die erforderlichen Aktionen können mithilfe der Eigenschaften "isMandatoryPitstopRefuellingRequired", "isMandatoryPitstopRefuellingRequired" und "isMandatoryPitstopSwapDriverRequired" weiter konfiguriert werden.
maxTotalDrivingTime Beschränkt die maximale Fahrzeit für einen einzelnen Fahrer. Dies ist nur in Fahrerwechsel-Situationen nützlich und ermöglicht die Durchsetzung einer Mindestlenkzeit für jeden Fahrer ( IRL wird verwendet, um sicherzustellen, dass gemischte Teams wie Pro / Am eine faire Verteilung der langsameren Fahrer haben ). -1 deaktiviert die Funktion.
maxDriversCount Stellen Sie hier ein wie viele Fahrer ein Team auf einem Auto einsetzen kann. Die Eigenschaft "maxTotalDrivingTime" wird verkleinert, um sie auf Teams mit weniger Fahrern anzuwenden.
isMandatoryPitstopRefuellingRequired Legt fest, ob für einen Pflicht-Boxenstopp eine Betankung erforderlich ist.
  • true = jeder Fahrer muss mindestens 1 Liter tanken
  • false = auftanken muss man nicht
isMandatoryPitstopTyreChangeRequired Legt fest, ob für einen Pflicht-Boxenstopp ein Reifenwechsel erforderlich ist.
  • true = jeder Fahrer muss Reifen wechseln
  • false = Reifen müssen nicht gewechselt werden
isMandatoryPitstopSwapDriverRequired Legt fest, ob bei einem Pflicht-Boxenstopp ein Fahrertausch erforderlich ist. Ist nur wirksam bei Fahrzeugen mit mehreren Fahrer. Bei einem gemischten Feld von Teams und Einzelfahrern, wird dieser Wert für Fahrzeuge mit einem Fahrer ignoriert.
tyreSetCount Geben Sie die Anzahl der zulässigen Reifensätze an, 1-50 sind möglich. Derzeit nicht im Kunos Server Admin-Handbuch aufgeführt oder beschrieben

assistRules.json

Diese Datei kann verwendet werden, um bestimmte →Fahrhilfen für jeden Fahrer auf einem →Privaten Multiplayer-Server auszuschalten. Bei Start eines →Öffentlichen Multiplayer-Servers wird diese Datei ignoriert und kann so im cfg-Ordner beibehalten werden.

Achtung: Durch Deaktivieren von Assistenten wird der Effekt effektiv entfernt. Jeder Fahrer kann unter →Assistenten seine Einstellungen dafür vornehmen, diese werden aber auf dem Server ausgeschaltet sein.

Bitte kommunizieren Sie ihre Server-Einstellungen den beteiligten Fahrern. Ohne Anweisungen werden Benutzer überrascht und verwirrt sein - bis zu einem Punkt, an dem sie ein Risiko für andere Fahrer darstellen. Wenn Sie etwas deaktivieren, bitte stellen Sie sicher, ob dies wirklich notwendig ist und ein Risiko in Bezug auf Fairness darstellt. Es steht außer Frage, dass die Fahrhilfen „Stabilitätskontrolle“ und „Autosteer“ Ausschalt-Kandidaten für Liga-Rennen sind. Das Ausschalten der Ideal-Linie wird aber für niemanden etwas verbessern. Nur der Fahrer, der sie verwendet, kann dadurch weniger sicher werden und das Rennen anderer ruinieren.

Selbst das ausschalten geringerer Assistenten, wie der automatische Motorstart und der Boxenbegrenzer können Benutzer dazu zwingen, ihre Räder neu abzubilden, und beispielsweise die Fähigkeit verlieren, ihre Indikatoren im Rundenverkehr zu verwenden - auch in diesem Szenario gewinnt niemand.

For (very) obvious reasons, public MP servers will ignore this json file and allow everything.

Dateiinhalt Einstellung Beschreibung

{
"stabilityControlLevelMax": 25,
"disableAutosteer": 0,
"disableIdealLine": 0,
"disableAutoPitLimiter": 0,
"disableAutoGear": 0,
"disableAutoClutch": 0,
"disableAutoEngineStart": 0,
"disableAutoWiper": 0,
"disableAutoLights": 0
}

stabilityControlLevelMax Legen Sie den maximalen Prozentsatz von SC fest, der verwendet werden kann. Wenn ein Client einen höheren SC-Satz als vom Server zugelassen hat, führt er nur das aus, was zulässig ist (in diesem Beispiel 25%). Wenn Sie diese Eigenschaft auf 0 setzen, werden offensichtlich alle SCs entfernt, einschließlich Maus- und Tastaturbenutzer.

Die Stabilitätskontrolle ist eine künstliche Fahrhilfe, mit der das Auto außerhalb der physikalischen Grenzen agieren kann. Es wird dringend empfohlen, Eingabemethoden wie Tastaturen, Gamepads und Maussteuerung zu überwinden. Es gibt jedoch einen eingebauten Effekt, der die SC-Leistung minderwertig macht. Theoretisch ist die Verwendung (und das Verlassen) auf SC bereits mehr als genug Strafe, und der Weg zur Verbesserung der Leistung besteht darin, das Fahren ohne zu üben.

  • Standard: 100
disableAutosteer Deaktiviert die Lenkhilfe, die nur für Gamepad-Controller verfügbar ist. Im Gegensatz zu SC funktioniert dies innerhalb der Physik und erlaubt kein unrealistisches Fahrverhalten - außer dass dies eine sehr starke Hilfe mit übermenschlichem Griffgefühl und hoher Reaktionsgeschwindigkeit ist. Es gibt eine eingebaute Strafe, die in den meisten Fällen die Fahrleistung ausgleichen und einen Anreiz bieten sollte, zu lernen, die Fahrhilfe nicht zu verwenden.
  • Standard: 0
disableIdealLine
  • 1 = schaltet bei jedem Fahrer die Ideal-Linie aus
disableAutoPitLimiter
  • 1 = schaltet bei jedem Fahrer den automatischen Pit-Limiter aus
disableAutoGear
  • 1 = schaltet bei jedem Fahrer die automatische Gangschaltung aus
disableAutoClutch
  • 1 = schaltet bei jedem Fahrer die automatische Kupplung, bei Fahrzeugen mit manueller Kupplung, aus
disableAutoEngineStart
  • 1 = schaltet bei jedem Fahrer den automatischen Motorstart aus
disableAutoWiper
  • 1 = schaltet bei jedem Fahrer die automatischen Scheibenwischer aus
disableAutoLights
  • 1 = schaltet bei jedem Fahrer die automatischen Lichter aus

entrylist.json

Acc-wiki server entrylists.jpg

Mithilfe einer Zugangslisten-Datei ( entrylist.json ) kann ein Server-Administrator Fahrer, anhand ihrer Steam-ID, mit diesen Konfigurationen verknüpfen. So hat man die Möglichkeiten Teams einzustellen, diesen oder einzelnen Fahrern Skins zuzuweisen oder Admins für die Server zu bestimmen ( keine Passwort-eingabe mehr erforderlich ).

Eingetragene Fahrer können so dem Servern beitreten, auch wenn dieser voll ist. Voraussetzung ist, dass es eine Differenz zwischen "maxConnections":40; ( configuration.json ) und "maxCarSlots":30; ( settings.json ) gibt. In diesem Falle heißt es , dass von allen eingetragenen Fahrern, dem Server 10 Leute beitreten können. Seriöse Gruppen könnten zum Beispiel Slots für ihre Mitglieder reservieren und Zufällige Fahrer mit einer SA-Rating von 90 zulassen.

Fügen Sie eine neue Datei mit dem Namen entrylist.json in den cfg-Ordner ein. Die Verwendung einer solchen Datei beeinträchtigt nicht die Klassifizierung der Server in öffentlicher bzw. privater Multiplayer.

Datei Inhalt
Beispiel: 1x Fahrer als Admin / 2 Fahrer als Team
Einstellung Beschreibung

{
"entries": [
{
"drivers": [
{
"playerID": "S765611xxxxxxxxxx1"
}
],
"raceNumber": 88,
"forcedCarModel": -1,
"overrideDriverInfo": 0,
"isServerAdmin": 1
},
{
"drivers": [
{
"firstName": "First",
"lastName": "Driver",
"shortName": "NO1",
"driverCategory": 2,
"playerID": "S765611xxxxxxxxxx3"
},
{
"firstName": "Another",
"lastName": "Person",
"shortName": "NO2",
"driverCategory": 1,
"playerID": "S765611xxxxxxxxxx4"
}
],
"raceNumber": 114,
"forcedCarModel": -1,
"overrideDriverInfo": 0,
"defaultGridPosition": -1,
"ballastKg": 0,
"restrictor": 0,
"customCar": "exampleCar.json",
"overrideCarModelForCustomCar": 1,
"isServerAdmin": 0
}
],
"forceEntryList": 0
}

entries In den [ ] werden alle Einzelfahrer und Teams zusammengefasst.
drivers Es muss mindestens ein Fahrer mit seiner SteamId zwischen { } enthalten sein.
raceNumber Die Werte von 1 bis 998 legen fest mit welcher Startnummer das Fahrzeug starten soll. Mit -1 kann der Fahrer durch Wahl des Fahrzeugs/Skin entscheiden.
forcedCarModel Lege hier fest welches Fahrzeug der Fahrer bzw. das Team fahren sollen, siehe ↓ID Listen / Fahrzeug Modelle. Mit -1 kann der beitretende Fahrer entscheiden.
overrideDriverInfo Wenn man hier 1 einträgt, dann werden der Name und die Fahrer-Kategorie des Fahrer durch die Werte hier in der entrylist.json ersetzt. Wenn der Wert 0 lautet, so werden die Werte des beitretenden Fahrers angezeigt.
customCar Wenn ein Dateiname festgelegt ist, werden das Auto, das Team und das Erscheinungsbild unabhängig von der Auswahl des Benutzers verwendet ( Ausnahme: overrideCarModelForCustomCar ). Dies ist nützlich für Ligen und Events, bei denen wir ein einheitliches Erscheinungsbild des Fahrzeugs und das ausgewählte Fahrzeugmodell für den entsprechenden Fahrer / das entsprechende Team wünschen. Die benutzerdefinierte Fahrzeug-Datei muss sich in einem Ordner "cars" neben der Datei entrylist.json befinden ( funktioniert auch für centralEntryListPath ).

Lassen Sie dieses Feld leer ( "", = Standardeinstellung ), damit der Benutzer das Auto über die Benutzeroberfläche für die Fahrzeugauswahl auswählen kann.

overrideCarModelForCustomCar Wenn customCar verwendet wird, gilt diese Einstellung für das konfigurierte Automodell, wenn der Wert auf 1 gesetzt ist (dies ist die Standardeinstellung). Wenn der Wert auf 0 gesetzt ist, werden alle Werte mit Ausnahme des carModel angewendet, sodass der Benutzer ein Auto auswählen kann, während der Teamname und das Erscheinungsbild angewendet werden.
isServerAdmin Wenn der Wert auf 1 gesetzt ist, wird dieser Benutzer automatisch zum Server Administrator erhoben, wenn er beitritt.
defaultGridPosition Bei einem Wert von 1 oder höher erhält dieses Auto diese Startaufstellung, wenn ein Rennen ohne vorherige Qualifikation startet ( z.B. P -> R ).
ballastkg Weist dieses Fahrzeug Ballast in kg zu. Additiv zu Ballast für das Automodell ( über bop.json ) und kann durch den Server Administrator Befehl / Ballast überschrieben werden. Der Bereich liegt zwischen 0 und 100.
restrictor Weist für dieses Auto eine Begrenzung in % zu. Wird zur Einschränkung für das Automodell addiert ( über bop.json ) und kann durch den Server Administrator Befehl /restrictor überschrieben werden. Der Bereich liegt zwischen 0 und 20.
forceEntryList Lehnt Fahrer ab, die hier in der Zugangsliste nicht enthalten sind. Der Standardwert ist 0, wodurch die teilweise Definition von Einträgen in einer „normalen“ Server-Konfiguration möglich ist. Kann nicht auf öffentlichen Servern verwendet werden.
Für jeden Eintrag in "drivers" benötigen wir mindestens die SteamId, die den Eintrag definiert. Andere mögliche Werte:
firstName Vorname des Fahrers, wenn „overrideDriverInfo“ auf 1 gesetzt ist
lastName Nachname des Fahrers, wenn "overrideDriverInfo" auf 1 gesetzt ist
shortName Kurzname des Fahrers, wenn „overrideDriverInfo“ auf 1 gesetzt ist
driverCategory Bronze- / Silber- / Gold- / Platin-Kategorie, wenn „overrideDriverInfo“ auf 1 gesetzt ist.
playerID Steam64-ID, fügen Sie ein "S" davor ein

bop.json

Globale Werte für Auto- und Strecken Kombinationen. Zusätzlich können diese Werte auch über einen Eintrag in der entrylist.json definiert werden oder über Admin Befehle ergänzt werden.

Fügen Sie einfach eine bop.json in den cfg-Ordner mit folgenden Inhalt hinzu:

File Content Property Description

{
"entries": [
{
"track": "zolder",
"carModel": 7,
"ballast": 1,
"restrictor": 2
},
{
"track": "silverstone_2019",
"carModel": 2,
"restrictor": 5
}
]
}

entries
track tragen sie hier die Strecke ein
carModel geben sie hier die ID des Carmodels ein
ballast Weist diesem Fahrzeug Ballast in kg zu. Kann mit dem Admin-Befehl /ballast XXX XXX überschrieben werden
restrictor Weist für dieses Auto eine Begrenzung in% zu. Kann mit dem Admin-Befehl /restrictor XXX XX überschrieben werden.

Jeder „Eintrag“ kann in erster Linie mit einem zusammengesetzten Schlüssel aus Gleis und Automodell verstanden werden, und das Ballast / Restriktor werden angewendet, wenn beide Berechnungen durchgeführt werden. Auf diese Weise können Sie eine präzise Kombination mit einem kleinen Saldo versehen oder einen vollständigen BoP für alle Jahreszeiten, Strecken und Autos erstellen.

Wichtige Notizen:

  1. Die BoP ist derzeit auch auf öffentlichen Servern einstellbar, Kunos wird dies jedoch genauer untersuchen. Wenn sie schlechte und übertriebene Einstellungen sehen, die sich auf die Erfahrung durchschnittlicher Fahrer auswirken, begrenzen sie die BOP nur noch auf private Server
  2. Es ist sehr schwer, den aktuellen BoP zu verbessern, viel schwieriger, als es aussehen mag ( insbesondere für 2019, wo die SRO hervorragende Arbeit geleistet hat ). Fallen Sie nicht auf den Fehler herein, die Hotlap-Leistung als Referenz zu verwenden, und stellen Sie auch sicher, dass Sie mit winzigen Anpassungen beginnen.

Die Werte von bop.json ergänzen die Einträge in der entrylist.json, sodass Sie eine Meisterschaftsstrafe mit Ihren strecken- / fahrzeugspezifischen Änderungen kombinieren können. Jeder Admin-Befehl (/ballast oder /restriktor) setzt den entsprechenden Wert auf den von Ihnen definierten Wert und überschreibt mögliche Konfigurationen, bis das Auto wieder zurückkehrt.

Result - Ergebnis Dateien

Bei Verwendung der Option "dumpLeaderboards": 1, ( settings.json ) wird nach jeder beendeten Sitzung die endgültige Position in eine .json-Datei im Ordner "results" geschrieben. Diese Dateien werden mit einem Dateinamen im Format 2190806_193009_R.json erstellt, einschließlich Datum, Uhrzeit und Sitzungstyp ( P, Q, R ).

Datei Inhalt

{
"sessionType": "R",
"trackName": "silverstone",
"sessionIndex": 1,
"sessionResult": {
"bestlap": 117915,
"bestSplits": [
34770,
49359,
33258
],
"isWetSession": 0,
"type": 1,
"leaderBoardLines": [
{
"car": {
"carId": 1073,
"raceNumber": 912,
"carModel": 0,
"cupCategory": 0,
"teamName": "",
"drivers": [
{
"firstName": "Somebody",
"lastName": "Else",
"shortName": "SOE",
"playerId": "S76561191111111111"
}
]
},
"currentDriver": {
"firstName": "Somebody",
"lastName": "Else",
"shortName": "SOE",
"playerId": "S76561191111111111"
},
"currentDriverIndex": 0,
"timing": {
"lastLap": 119223,
"lastSplits": [
35286,
50178,
33759
],
"bestLap": 118404,
"bestSplits": [
35265,
49659,
33438
],
"totalTime": 719894,
"lapCount": 6,
"lastSplitId": 0
},
"missingMandatoryPitstop": 0,
"driverTotalTimes": [
0.0
]
}, ...
]
},
"laps": [
{
"carId": 1073,
"driverIndex": 0,
"laptime": 125511,
"isValidForBest": true,
"splits": [
40197,
51537,
33777
]
}, ...
],
"penalties": [
{
"carId": 1079,
"driverIndex": 0,
"reason": "Cutting",
"penalty": "DriveThrough",
"penaltyValue": 3,
"violationInLap": 0,
"clearedInLap": 1
},
{
"carId": 1081,
"driverIndex": 0,
"reason": "PitSpeeding",
"penalty": "StopAndGo_20",
"penaltyValue": 20,
"violationInLap": 4,
"clearedInLap": 5
}
]
}

Die Zeiten sind in Millisekunden angegeben und abhängig vom Ereignistyp müssen Sie entweder die besten Runden (P + Q) oder die Anzahl der Runden + Gesamtzeit berücksichtigen.

Zuschauer erlauben

Die nötigen Servereinstellungen: Die Differenz zwischen "maxConnections":40; ( configuration.json ) und "maxCarSlots":30; ( settings.json ) definiert, wie viele Zuschauerplätze auf dem Server vorhanden sind. In diesem Fall sind es 10. Jetzt muss nur noch ein Passwort vergeben werden. Dies muss aber anders lauten als das was für den Beitritt der Fahrer angegeben wird. Siehe auch:

  • configuration.json / maxConnections
  • settings.json / spectatorPassword
  • settings.json / maxCarSlots

Möchte jemand einen Server als Zuschauer beitreten, so muss er das Passwort für den Zuschauer-Modus eingeben.

ID - Listen

Track Name ID's
2018 2019
barcelona barcelona_2019
brands_hatch brands_hatch_2019
kyalami_2019
laguna_seca_2019
hungaroring hungaroring_2019
misano misano_2019
monza monza_2019
mount_panorama_2019
nurburgring nurburgring_2019
paul_ricard paul_ricard_2019
silverstone silverstone_2019
spa spa_2019
suzuka_2019
zolder zolder_2019
zandvoort zandvoort_2019
Car Models
Value Car Model
0 Porsche 991 GT3
1 Mercedes AMG GT3
2 Ferrari 488 GT3
3 Audi R8 LMS
4 Lamborghini Huracan GT3
5 Mclaren 650s GT3
6 Nissan GT R Nismo GT3 2018
7 BMW M6 GT3
8 Bentley Continental GT3 2018
9 Porsche 991.2 GT3 Cup
10 Nissan GT-R Nismo GT3 2017
11 Bentley Continental GT3 2015
12 Aston Martin Vantage V12 GT3
13 Lamborghini Gallardo R-EX
14 Jaguar G3
15 Lexus RC F GT3
16 Lamborghini Huracan GT3 Evo (2019)
17 Honda NSX GT3
18 Lamborghini Huracan SuperTrofeo
19 Audi R8 LMS Evo (2019)
20 AMR V8 Vantage (2019)
21 Honda NSX Evo (2019)
22 McLaren 720S GT3 (Special)
23 Porsche 911 II GT3 R (2019)
Fahrer Kategorien
ID Kategorie
3 Platin
2 Gold
1 Silber
0 Bronze
Cup Kategorien
ID Kategorie
0 Fahrer Rating
1 ProAm
2 Am
3 Silber
4 National
Session Typen
ID Session Typ
0 Training
4 Qualifikation
10 Rennen

Server Administrator Befehle

Befindet sich ein Fahrer bzw. Zuschauer auf einem Server, so kann dieser als "Server Administrator" agieren, wenn er das dafür hinterlegte Admin-Passwort ("adminPassword": "adminPw123",) weiß.

Um Administrator auf einem Server zu werden, drücken Sie die Eingabetaste (ENTER), um den Chat aufzurufen und geben sie dann ein: /admin adminPw123 Eine Benachrichtigung informiert über den Erfolg. Nun kann diese Person mit bestimmten Befehlen Einfluss auf den Server ausüben. ( ACC Version 1.0 startet mit einem begrenzten Satz, der voraussichtlich in zukünftigen Versionen erweitert wird )

Zusätzlich können Sie einen Eintrag in Fahrer-Zugangslisten ( entrylist.json ) für das einrichten für Administratoren-SteamID`s anlegen.

Befehl Nummer Beschreibung
/next Springt zur nächsten Abschnitt ( P -> Q -> R )
/restart Startet den aktuellen Abschnitt neu ( P -> Q -> R )
zwischen Befehl und Startnummer ein Leerzeichen einfügen, sowie vor dem kg- und %-Wert
/kick 1 bis 998 Fahrer des Wagens wird bis zum Ende des Rennwochenendes vom Server gebannt
/ban 1 bis 998 Fahrer des Wagens wird bis zum Neustart des Servers vom Server gebannt
/dq 1 bis 998 Disqualifiziert den Fahrer des Wagens sofort, tele-portiert das Auto in die Box und sperrt alle Steuerelemente
/clear 1 bis 998 löscht alle Strafen bei dem Fahrzeug mit der angegebenen Startnummer ( Durchfahrt und Stop&Go )
/clear_all löscht alle Strafen bei allen Fahrzeugen
/sg10 1 bis 998 Stop&Go mit 10 Sekunden Standzeit
/sg20 1 bis 998 Stop&Go mit 20 Sekunden Standzeit
/sg30 1 bis 998 Stop&Go mit 30 Sekunden Standzeit
/tp5 1 bis 998 + 5 Sekunden Strafzeit ( wiederholbar )
/tp5c 1 bis 998 + 5 Sekunden Strafzeit + Grund: Kollision ( wiederholbar )
/tp15 1 bis 998 + 15 Sekunden Strafzeit ( wiederholbar )
/tp15c 1 bis 998 + 15 Sekunden Strafzeit + Grund: Kollision ( wiederholbar )
/clear 1 bis 998 Durchfahrt-strafe gegen ein Fahrer/Fahrzeug erlassen
/dt 1 bis 998 Weist dem angegebenen Auto eine Durchfahrtsstrafe zu. Wie bei anderen DTs muss der betreffende Fahrer die Strafe innerhalb von 3 Runden ausführen, sonst wird das Auto disqualifiziert. Im Falle eines Rennendes innerhalb dieser 3 Runden, so wird die DT in eine Zeitstrafe von 80 Sekunden umgewandelt
/dtc 1 bis 998 siehe dt + Grund: Kollision ( wiederholbar )
/ballast 1 bis 998
+ kg
Stellt den Ballast des Fahrzeugs (in kg) auf den von Ihnen festgelegten Wert ein. Dies überschreibt jedes andere Ballast, das diesem Fahrzeug zugewiesen wurde.
  • Beispiel: /ballast 113 15 = Auto mit Startnummer 113 wird mit 15 kg Ballast belastet
  • Werte von 0 bis 100
/restrictor 1 bis 998
+ %
Stellt den Begrenzer des Fahrzeugs (in%) auf das von Ihnen definierte Maß ein. Dies hat Vorrang vor allen anderen Einschränkungen, die diesem Fahrzeug zugewiesen wurden.
  • Beispiel: /restrictor 113 7 = Auto mit Startnummer 113 wird um 7% gedrosselt, was zu ungefähr 7% weniger PS bei maximaler Drehzahl führt.
  • Werte von 0 bis 20
/manual entrylist Erstellt im Ordner “results” eine .json-Datei mit einer Liste von den Fahrern die sich gerade auf dem Server befinden (siehe setting.json -> dumpEntryList). Diese kann man dann als entylist.json verwenden.
/debug formation Schreibt in die Serverkonsole Daten über die aktuellen Autos und deren Status. Nützliche Informationen, um Fehler während der Einführungsrunde zu erkennen.
/debug bandwidth Schreibt in die Serverkonsole Daten über den Server. Befehl noch einmal eingeben und die Aufnahme der Daten wird gestoppt
/debug qos Schreibt in die Serverkonsole kontinuierlich Daten über die Netzwerkverbindung-Qualität. Befehl noch einmal eingeben und die Aufnahme der Daten wird gestoppt.

Verweise

  1. teste deine Dateien ob du den JSON-Code korrekt angewendet hast Online Syntax Check
  2. Server Admin Handbook (PDF) - findet man in der ACC Installation unter ..:\Steam\steamapps\common\Assetto Corsa Competizione\server
  3. Server Admin Handbook (Forum) - https://www.assettocorsa.net/forum/index.php?threads/the-server-admin-handbook-thread.59017