Skip to content

Pilot Roster integration

The Pilot Roster combines connected-client radio state with optional callsign, aircraft, and spawn-airfield assignments supplied by the server owner.

Data Source
Pilot name and coalition Connected SRS client
Radio 1 and Radio 2 channels Connected SRS client telemetry
Assigned callsign Server-provided JSON
Aircraft or vehicle Server-provided JSON
Current sortie spawn airfield Server-provided JSON

Create UTF-8 JSON with a top-level players array:

{
"generatedAtUtc": "2026-07-15T18:30:00Z",
"players": [
{
"name": "=TBAS=Mayhem-1",
"coalitionCode": 1,
"callsign": "MANIAC-1",
"vehicle": "P-51D-15",
"airfield": "Bierset"
},
{
"name": "JG27_PilotTwo",
"coalitionCode": 2,
"callsign": "RAVEN-2",
"vehicle": "Bf 109 G-14",
"airfield": "Le Culot"
}
]
}

name matching is case-insensitive and surrounding whitespace is ignored. coalitionCode must match the player’s current SRS coalition. Callsign, vehicle, and airfield are optional, but each record needs at least one of them. Property matching is case-insensitive, so Vehicle and Airfield are accepted.

Send the complete recognizable airfield name. Current clients map known Great Battles names and common variants to stable three-letter codes, while preserving the supplied name in a tooltip. The lookup ignores case, accents, punctuation, historical field prefixes such as B-78, and operational suffixes such as BSP or FSP. Unknown fields use a deterministic three-letter fallback, so no server-side code table is required.

Stop the SRS server and add the path under [General Settings]:

[General Settings]
ASSIGNED_CALLSIGNS_JSON_FILE=C:\IL2-SRS\data\pilot-roster.json

Local, relative, and UNC filesystem paths are supported. HTTP and HTTPS URLs are not. Relative paths are resolved from the directory containing IL2-SR-Server.exe.

The server checks the file approximately once per second. Generate a complete temporary file, validate it, then atomically replace the live file. Do not gradually rewrite the file while the server is reading it.

File condition Server behavior
Valid JSON Replaces assignments and advertises roster availability
Valid empty players array Clears assignments
Missing file Clears assignments and marks the roster unavailable
Invalid JSON or read error Keeps the previous valid assignments and logs a warning

At mission rollover, publish a valid document with an empty players array before publishing assignments for the new mission:

{
"generatedAtUtc": "2026-08-18T12:00:00Z",
"players": []
}

This explicitly clears the previous assignment map. Do not leave the old file in place while the next mission is loading, or clients can continue to see stale callsigns until fresh data arrives.

  1. Inspect serverlog.txt for roster-file warnings.
  2. Connect a client whose player name and coalition appear in the JSON.
  3. Open Show Pilot Roster.
  4. Change a callsign or airfield, publish the file, and confirm the client updates without restarting SRS.
  5. Publish an empty players array and confirm previous-mission assignments disappear.

The complete reference guide remains available as Pilot-Roster-Server-Guide.md.