Sly SonStudios

VR Deck

DiRT Rally 2.0 data page

Eight live tiles from the game's standard telemetry on the DiRT page, on the deck and in the headset. One line in two settings files and you are set.

  1. What the tiles show
  2. Set up the game
  3. Controlled folder access
  4. Sharing the packet with another dashboard
  5. Sector bests
  6. What the feed cannot show
  7. In the headset

What the tiles show

Page 4 of either shipped profile; the DiRT page key on the Home page opens it. Eight Game data keys, Home at slot 15, slots 9 to 14 free for your own keys. Each Game data key shows one tile, picked in its inspector, with a label, a colour and the tile's own options.

TileShowsHow it decides
Shift lightcolour onlyGreen below the yellow threshold, yellow at or above it, red at or above the red one. The thresholds are 85 % and 95 % of the car's own maximum RPM, which the game sends with every packet, so one key fits every car; or fixed RPM values when either Fixed field in the inspector is above 0.
Geara big valueN for neutral, R for reverse, else the gear number.
G (g-meter)a crosshair and a dotLateral g moves the dot left and right, longitudinal g up and down. The dot reaches the edge at the key's full scale (2 g by default, 1 to 4 g per key); the larger of the two shows as a small readout from 0.1 g.
Brakes F / Brakes Rone bar per wheelThe inspector ticks FL, FR, RL, RR; the shipped page has the fronts on one key and the rears on the other. Each bar is green, yellow from 450 °C and red from 650 °C per wheel; both thresholds are per key.
Sectorthe split deltaCompared with your best for that stage the moment each sector time appears: green -1.2 s when faster, red +0.8 s when slower, 0.0 s for a tie; grey no best while there is nothing to compare with. The stage total is shown once the game fills it in, and the bests are written when the run ends.
Timethe stage clockm:ss.t, 12:34 from ten minutes.
To gometres to the finish1234 m below ten kilometres, 12.3km above.

Every tile idles when no packet arrived for two seconds. The game sends packets only while a stage runs, so in the menus, on the pause screen and on the results screen the tiles sit dimmed with their label and no data. A press on a Game data key sends nothing.

Screenshot to addassets/img/vr-deck/shots/dirt-03-dirt-page-deck.png
The DiRT page (page 4) on the deck during a stage: shift light, gear, time, to go, sector, G, brakes F, brakes R.

Set up the game

  1. Close the game.

  2. Open both settings files in <Documents>\My Games\DiRT Rally 2.0\hardwaresettings\: hardware_settings_config.xml (used on a flat screen) and hardware_settings_config_vr.xml (used when the game starts in VR). Documents may live under OneDrive on your PC; the Setup key's Game telemetry row shows the exact paths.

  3. In each file, make the <udp> line read:

    <udp enabled="true" extradata="3" ip="127.0.0.1" port="20777" delay="1" />

    The stock line has enabled="false" and extradata="0". extradata="3" is what makes the packet carry the sector times, the brake temperatures, the car's maximum RPM and its gear count. Mover's own <custom_udp ... port="20779"> line is a separate output: both can be on.

    Screenshot to addassets/img/vr-deck/shots/dirt-01-udp-line.png
    hardware_settings_config_vr.xml in Notepad with the udp line set to enabled, extradata 3, port 20777.
  4. Save, start the game, drive a stage. The tiles come alive with the first packet. The Setup key's Game telemetry row shows DiRT Rally 2.0 packets: 120 ms ago on port 20777, or no DiRT Rally 2.0 packets yet (start a stage; the game sends them only while driving).

    Screenshot to addassets/img/vr-deck/shots/dirt-05-setup-game-row.png
    The Setup inspector's Game telemetry row: packets received on port 20777, both files' lines OK.

The Setup row judges the <udp> line whenever a Game data key is in use (one on a deck, or one on any page of an installed profile; the shipped DiRT page counts) and adds a to-do when either file's line is off, has another extradata, or sends to another port than the plugin listens on. It never writes the file. If you use Mover but not the DiRT page, untick Game telemetry in the Setup key to silence it.

Controlled folder access

Windows Controlled folder access (Windows Security › Virus & threat protection › Ransomware protection) stops programs it does not know from saving into Documents, Notepad included. If saving the settings file fails with an access error, allow Notepad through it (Manage ransomware protection › Allow an app through Controlled folder access), or switch the protection off while you edit and back on afterwards. This is also why VR Deck only reads these files and never writes them for you.

Screenshot to addassets/img/vr-deck/shots/dirt-02-controlled-folder-access.png
Windows Security: Notepad allowed through Controlled folder access.

Sharing the packet with another dashboard

The game sends this packet to one address, so only one program receives it. The plugin listens on 127.0.0.1:20777, and only while a Game data key is on a deck, so a profile without them never holds the port.

  • To keep another dashboard (SimHub, a phone dashboard) on the packet, let it forward the packet to the plugin's port if it can. Otherwise give the plugin a different gameFeedPort in settings.json and accept that the plugin then sees nothing: changing gameFeedPort alone routes nothing, the game still sends to the port in its <udp> line.
  • When another program already holds the port, the Game data inspector's feed line and the Setup row say port 20777 is in use by another program (bound to all addresses), the port is left to that program, and the plugin tries again every 5 seconds while a Game data key is on the deck.
  • A dashboard started while a Game data key is already listening binds without an error and then gets nothing. So start the dashboard first, or give the plugin a free gameFeedPort.

Sector bests

The Sector tile compares against the best sector 1, sector 2 and stage total stored for that stage, identified by its track length (the game sends no stage name). The bests live in %LOCALAPPDATA%\VRDeck\dirt-bests.json and are written when a run ends. To forget a best, quit the Stream Deck app and delete that stage's entry from the file. A restart (the stage time going back by more than a second) starts a new run; the pause menu, or leaving the DiRT page and coming back, resumes the same run, so no split is scored twice. A stage shorter than 500 m never makes an entry.

Screenshot to addassets/img/vr-deck/shots/dirt-04-sector-delta.png
The Sector tile green with a negative delta on a second run of the same stage.

What the feed cannot show

Tyre temperatures, punctures or rim damage, body or engine damage, engine state, wipers, lights and fuel: the packet carries no such fields, or zeros, so there are no tiles for them.

In the headset

The overlay shows in DiRT Rally 2.0 when the game runs through SteamVR. The tiles draw their value, the g-meter's dot and the per-wheel bar colours on the deck and in the headset alike. Verified in VR with the real game: shift light, gear, g-meter, brake temperatures and the sector delta, red when slower and green when faster, on the first two runs of a stage.

Inside a stage the game holds the keyboard, which is why the Mover keys are MIDI. Whether a keystroke from a Hotkey key reaches the game itself in a stage (the handbrake, say, on one of the DiRT page's free slots) has not been tried yet: test it before relying on it.

Screenshot to addassets/img/vr-deck/shots/dirt-06-headset.png
Headset mirror view of the DiRT page in a stage.

Screenshots this page needs

Save each capture under assets/img/vr-deck/shots/ with the file name given, then replace the matching placeholder with the <img> tag written in the HTML comment next to it.

  1. dirt-01-udp-line.png: hardware_settings_config_vr.xml in Notepad with the udp line set to enabled, extradata 3, port 20777.
  2. dirt-02-controlled-folder-access.png: Windows Security: Notepad allowed through Controlled folder access.
  3. dirt-03-dirt-page-deck.png: The DiRT page (page 4) on the deck during a stage: shift light, gear, time, to go, sector, G, brakes F, brakes R.
  4. dirt-04-sector-delta.png: The Sector tile green with a negative delta on a second run of the same stage.
  5. dirt-05-setup-game-row.png: The Setup inspector's Game telemetry row: packets received on port 20777, both files' lines OK.
  6. dirt-06-headset.png: Headset mirror view of the DiRT page in a stage.