SwiftSplit is a macOS autosplitter for Celeste, though given the time and motivation I hope to extend it to more than just Celeste. It works by acting as a split server for LiveSplit One, reading Celeste's memory and translating that into split commands that LiveSplit understands.
Launching and using SwiftSplit is fairly simple, with only three broad steps.
- Launching SwiftSplit and connecting it to Celeste
- Connecting LiveSplit One to the SwiftSplit server
- Loading your splits and route
- Open SwiftSplit
- Open Celeste after SwiftSplit
- If you are using Everest, you're free to restart into
orig/Celeste.exe
as normal - The first time SwiftSplit connects it will ask you to enter your administrator password. This is normal, and is required for SwiftSplit to read information from Celeste.
- If you are using Everest, you're free to restart into
- SwiftSplit should automatically detect Celeste launching and report the "Connection status" as "Connecting…". During this time do not load any maps. Stay on the main menu until the connection has been made. This may take up to 30 seconds after Celeste fully loads in extreme cases.
Connecting to LiveSplit One
- Copy the LiveSplit server URL displayed in SwiftSplit
- Click "Connect to Server" in LiveSplit One and paste that URL
- Note: navigating away from the timer screen may make the server button say it isn't connected any more. This is a bug. You can check if it's still connected in SwiftSplit.
- Load up your splits in LiveSplit One
- Load the corresponding route JSON in SwiftSplit by either clicking "Load Route" or dragging the
.json
file onto the "Route" box in SwiftSplit.
Safari doesn't like the way SwiftSplit communicates with LiveSplit One, so LiveSplit stalls when trying to connect.
Unless you can keep LiveSplit open and visible, Firefox will slow down the LiveSplit One tab, causing it to record incorrect times. If you keep the LiveSplit window open on a second display this isn't an issue.
Chrome doesn't seem to have the same optimization as Firefox, which in this case is a good thing. If you're using Firefox and your splits are coming out wrong, try with Chrome and see if that fixes it.
You can get pre-made splits from the examples directory. Included are:
- Full-game
- Any%
- IL (chapters 1–9)
- Any%
- B-side
- C-side
See Authoring Routes