Outlap Docs
Open Outlap

RMonitor protocol

How Outlap decodes the RMonitor record set: which records it reads, what it does with them, and how it stays correct across dropped packets.

RMonitor is the plain-text protocol that AMB/MyLaps decoders and timing software use to publish live results. It’s a line-based, comma-separated stream over TCP, with quoted strings. If your system can produce RMonitor, it can feed Outlap.

You don’t need to implement this to use Outlap: the timing bridge forwards the raw lines. This page documents what the server does with them, for anyone building a relay or diagnosing a feed.

Records Outlap understands

RecordFieldsUsed for
$Flaps to go, time to go, time of day, race time, flagRace clock and the current flag.
$Brun number, run nameThe session name.
$Cclass number, descriptionClass labels.
$Areg no, car number, transponder, first name, last name, nation, classCompetitor registration.
$COMPreg no, car number, class, first name, last name, nationCompetitor detail (some systems send this instead of $A).
$Gposition, reg no, laps, total timeRunning order.
$Hposition, reg no, best lap number, best lap timeBest laps.
$Jreg no, last lap time, total timeA completed lap, the record that creates laps.
$Itime of dayClock resync.

Anything else is ignored and doesn’t count towards recognised in the stream response.

A short stream

$I,"13:30:00.000","31/08/2026"
$B,3,"Race 1 - GT Cup"
$C,1,"GT4"
$A,"1234","12",8812345,"Aoife","Byrne","IRL",1
$F,25,"00:45:00","13:30:00","00:00:00","Green   "
$G,1,"1234",1,"1:42.311"
$J,"1234","1:42.311","1:42.311"
$H,1,"1234",1,"1:42.311"

Decoding rules

  • Times accept 1:23.456, 83.456 and 00:01:23.456. Anything that parses to zero, a negative, or more than 24 hours is dropped.
  • Flags are normalised: green, yellow, red, white, purple, and finish, chequered or checkered all become chequered. Unrecognised flag text is passed through.
  • Lap numbers come from the timing system’s own $G lap count when it is ahead of Outlap’s, so a dropped packet doesn’t shift every later lap number. Otherwise Outlap counts up from the last lap it saw.
  • Redelivery is safe. A lap is skipped if Outlap already holds that lap number for the transponder in the session.
  • Driver matching uses the transponder, then the car number, then the registration, against the Paddock roster.

Vendor values

vendor labels where the feed came from. It doesn’t change decoding, since all four use the same records, but it appears in Race Control and as each lap’s source (live:orbits, and so on).

ValueSystem
orbitsMyLaps Orbits
tracksideMyLaps Trackside / X2
axwareAxWare
rmonitorAny RMonitor relay (default)
genericAnything else, including passings payloads

Passings alternative

If your system doesn’t speak RMonitor, send passings as JSON objects to the stream endpoint instead, or build against Ingest laps. See Custom integration.

esc
↑↓ to navigate ↵ to open esc to close