ProgressContributeHow it worksFAQAIMods
Download

OpenRAC · unofficial community project · Mods · Legal · GitHub · Discord

Progress is read from the projects' repositories on the server and refreshed every ten minutes. For scripts and AI tools: progress.json · llms.txt

  1. Home ›
  2. Mods ›
  3. Live splits

Live splits

by OpenRAC contributors · v1.0.2 · 100 downloads

Splits a LiveSplit timer at every planet by talking to LiveSplit's own server, so a speedrunner does not have to touch the timer.

⚠NativeSpeedrun-safePALNTSC-U

Didn't open?

Install opens the OpenRAC launcher, which installs the mod and everything it needs. If nothing happened, the launcher is probably not installed yet.

Already have it? Try again, or copy the link and paste it in the launcher under Mods → Add from a link.

Get the launcher
Source
  • About
  • Details
  • Relationships
  • Versions
  • Files
  • Comments

About

Live splits

Splits a LiveSplit timer as the player goes from planet to planet in Ratchet & Clank, for OpenRAC's native port (PAL and NTSC-U discs): the mod talks to LiveSplit's own server and splits at every planet, so a speedrunner does not have to touch the timer.

With the mod off, the game is the PlayStation 2 game.

Playing

  1. Install the mod from the launcher's Mods tab (Add from a link: https://github.com/OpenRAC/rac1-mods), switch it on, choose its settings and start the game.
  2. In LiveSplit: Settings, the LiveSplit Server group, Startup Behavior: Start TCP Server (or Start Websocket Server), and the Server Port (27500 by default, which is what the mod looks for). The mod connects to it.
  3. Load your splits file: one segment a planet, in the order below.
  4. Start a new game. The mod resets LiveSplit's timer and starts it when the first planet is loaded, and splits at every planet after that. The run ends when the game goes back to the galaxy map after Veldin, the last planet, where the last boss is.
SettingDefault
SplitWhen a planet is reachedWhen a planet is reached: the split is taken when the planet's level is loaded, so the flight to it and its loading are in the segment before. When a planet is left: the split is taken when the game goes back to the galaxy map, so they are in the segment after
StartAt the first planetAt the first planet: the mod resets LiveSplit's timer and starts it when the run's first planet is loaded. By hand: the mod never resets or starts the timer; start it yourself, before the first split
Game timeonSends the game's own time (its ticks) to LiveSplit, for the Game Time timing method. With the timer started by hand, the time is counted from the first planet, not from the moment you start the timer
Server port27500The port LiveSplit's server listens on (its Settings)
ProtocolAsk the serverAsk the server: the mod tries the TCP server and, when that is not there, the WebSocket one. TCP and WebSocket pick one
TraceoffFor bug reports: a line in the game's log for every planet reached and left

Start LiveSplit's server before the game: the mod keeps the commands it is given while the server is not there and sends them when it comes, but a timer that starts late is a timer that starts late.

Starting over. When the player enters a planet the run has already been to, the run begins again: the mod resets the timer and starts it, and the splits go on from there. That is what happens when the player goes back to the title and begins a new game, or loads a save: the way a run is reset. It also happens when the player goes back to a planet he has already been to in the same run, which is a mistake rather than a reset: the timer starts again from there.

Dying does not split. The game loads a level's gameplay again when Ratchet dies, which is not a new planet: the mod keeps the planet it last saw, and the timer runs on.

The splits

The game plays nineteen levels, one a planet, and every route goes through all of them: the planets' coordinates are what the run is after. Your splits file should have one segment a planet, named as the game names them:

LevelPlanetLevelPlanet
0Veldin10Orxon
1Novalis11Pokitaru
2Aridia12Hoven
3Kerwan13Gemlik Base
4Eudora14Oltanis
5Rilgar15Quartu
6Blarg Station16Kalebo III
7Umbris17Drek's Fleet
8Batalia18Veldin (final)
9Gaspar

The names are the game's own; the last planet is Veldin again, where Drek's robot is.

The mod splits at every planet, whatever the category: Any %, 100 % and All Gold Bolts all go through the nineteen planets, and the segments are the same.

How it works

For modders and the curious. The parts:

File
src/live_splits.cppthe mod: the settings, the hook, the tick
src/splits.cppthe state machine: the game's levels in, LiveSplit's commands out
src/client.cppthe connection to LiveSplit's server, on a thread of its own
src/levels.hppthe planets' names

What the game is read through. Two things, and nothing else:

  • Level_LoadGameplay (the hook point rac1.level.load_gameplay): the level's gameplay file is loaded, so the planet is reached. The game loads it again when Ratchet dies, which is not a new planet: the mod keeps the planet it last saw.
  • the level the port has loaded (openrac_api.loaded_level): none means the game is in the galaxy map, so the planet before it was left.

Nothing of the game is changed, and no hook point of the game's is replaced.

The commands. The mod sends LiveSplit the ones its server knows: reset, starttimer, split and setgametime (the game's own time, for the Game Time timing method). It speaks the server's own line protocol, over TCP or over a WebSocket: the mod asks the server which one it is when the setting says so, and the answer tells it.

The thread. The socket is a thread of its own: the game's thread only puts the commands in a queue and reads what the client knows of the connection, and never waits for the network. The client never calls into the port.

Tests

ctest --test-dir build -R live_splits
  • splits: the state machine alone: the two ways to split, the two ways to start the timer, the game's own surprises (Ratchet dies and the level is loaded again, the player goes back to a planet he left), the run's end, and the time as LiveSplit's parser reads it;
  • load: the library as the port loads it, against a host of the test's own: its refusals, its hook point and its signature, and, against a LiveSplit server the test makes, the commands it sends over TCP, over a WebSocket and when it asks the server which one it is; and with no server at all, that it says so and goes on.

What it needs

An OpenRAC whose port has the Level_LoadGameplay hook point (the behaviour catalogue's, in every OpenRAC of 2026-10-21 and later). An older one refuses the mod with the reason.

Details

Id
live-splits
Type
Native (runs native code)
Author
OpenRAC contributors
License
GPL-3.0-or-later
Mod interface
1.0 (release ✓)
Games
Ratchet & Clank (PAL, NTSC-U)
Systems
Linux, Linux ARM, Windows, macOS, macOS Intel, Android
Impact
Speedrun-safe
Tags
speedrun, tools
First released
23 Oct 2026
Updated
29 Oct 2026
Hook points
rac1.level.load_gameplay

RepositoryReport a bugReport a problem with this listing

Relationships

Requires

Nothing: it works on its own.

Versions

  • v1.0.229 Oct 2026PAL, NTSC-U535.0 KBinterface 1.0+

    Built by the build workflow from 892c17401da544daf7efa229b5e672f892e2fe46, against the OpenRAC mod SDK 1.10.1.

    Install: paste this repository's address in the OpenRAC launcher's Mods tab, or add a .zip there.

  • v1.0.124 Oct 2026PAL, NTSC-U37.6 KBinterface 1.0+

    Built by the build workflow from 43f9c26b15074ccbf8db99851c93954e26cda211, against the OpenRAC mod SDK 1.3.0.

    Install: paste this repository's address in the OpenRAC launcher's Mods tab, or add a .zip there.

    Didn't open?

    Install opens the OpenRAC launcher, which installs the mod and everything it needs. If nothing happened, the launcher is probably not installed yet.

    Already have it? Try again, or copy the link and paste it in the launcher under Mods → Add from a link.

    Get the launcher
  • v1.0.023 Oct 2026PAL, NTSC-U36.4 KBinterface 1.0+

    Built by the build workflow from 04bb17e95718619219e4753af77ffc45a5b55515, against the OpenRAC mod SDK 1.3.0.

    Install: paste this repository's address in the OpenRAC launcher's Mods tab, or add a .zip there.

    Didn't open?

    Install opens the OpenRAC launcher, which installs the mod and everything it needs. If nothing happened, the launcher is probably not installed yet.

    Already have it? Try again, or copy the link and paste it in the launcher under Mods → Add from a link.

    Get the launcher

Files

8 files in v1.0.2
  • lib/
    • android-arm64/
      • live_splits.so
    • linux-aarch64/
      • live_splits.so
    • linux-x86_64/
      • live_splits.so
    • macos-arm64/
      • live_splits.dylib
    • macos-x86_64/
      • live_splits.dylib
    • windows-x86_64/
      • live_splits.dll
  • openrac-mod.json
  • README.md

Comments

No comments yet. Tried it? Say how it went.

Comment on GitHub

Didn't open?

Install opens the OpenRAC launcher, which installs the mod and everything it needs. If nothing happened, the launcher is probably not installed yet.

Already have it? Try again, or copy the link and paste it in the launcher under Mods → Add from a link.

Get the launcher
Version
v1.0.2
Size
535.0 KB
Updated
2d ago
Discs
Ratchet & Clank: PAL, NTSC-U
Systems
Linux, Linux ARM, Windows, macOS, macOS Intel, Android
License
GPL-3.0-or-later
Downloads
100

⚠ Runs native code on your computer. Every file is checked against the signed mod list before use.

Install opens the OpenRAC launcher, which adds what the mod needs and keeps it up to date.

Live splits · v1.0.2 · ⚠

Didn't open?

Install opens the OpenRAC launcher, which installs the mod and everything it needs. If nothing happened, the launcher is probably not installed yet.

Already have it? Try again, or copy the link and paste it in the launcher under Mods → Add from a link.

Get the launcher