5 stable releases

3.0.0 Jun 2, 2025
2.1.0 Sep 3, 2024
2.0.0 Aug 16, 2024
1.1.0 Feb 14, 2024
1.0.0 Feb 6, 2024

#152 in Simulation

Download history 2/week @ 2025-06-18 4/week @ 2025-08-20

291 downloads per month

MIT license

135KB
3K SLoC

insim_pth

Parse a Live for Speed pth (path) file.

A pth file consists of a series points [Node], with direction and width ([Limit]), that describe the track that you drive along.

Historically LFS has used the PTH to watch your progress along the track, decides if you are driving in reverse, the yellow and blue flag systems, the position list, timing, etc.

On a standard LFS track the [Node] is communicated via MCI and NLP Insim packets.

On an open configuration [Node] are not used and are unavailable via Insim MCI packets.

The distance between each [Node] is not constant. According to the LFS developers there is approximately 0.2 seconds of time between passing one node and the next, when you are "driving at a reasonable speed".


insim.rs

A collection of crates to assist working with the Live For Speed racing simulator and it's Insim (protocol).

The intention is to provide a strongly typed, native rust implementation, rather than a thin layer over a series of bytes and primitive types.

If you're not sure where to start, you probably want to look at the examples.

Crate Usage
insim Insim connection and protocol implementation.
insim_core Contains core types shared across other crates.
insim_macros Contains proc_macros republished through insim_core.
insim_pth Implements a PTH file read/writer.
insim_smx Implements a SMX file reader/writer.
outgauge Implements "sans-io" Outgauge protocol implementation.
outsim Implements "sans-io" Outsim protocol implementation.

Thanks

  • simbroadcasts/node-insim which I used to bootstrap many of the packet unit tests.
  • LFS and it's community, without which this project would not exist.

Dependencies

~10MB
~326K SLoC