How Do I Implement LiveSplit into My Parkour Game?

Hello fellow developers!

I’m currently working on a parkour game and I’m interested in integrating LiveSplit for timing and speedrunning purposes. I’ve searched high and low for solutions but couldn’t find any clear answers.

What I Need Help With:

  • How can I incorporate LiveSplit into my game to track and display player times?
  • Are there any specific scripts or APIs that are particularly useful for this?
  • Any best practices or tips for integrating LiveSplit with a parkour game would be greatly appreciated!

I know LiveSplit is a powerful tool for speedrunners, and I believe it could add a lot of value to my game by providing players with an accurate and intuitive way to track their progress. If anyone has experience with this or can point me in the right direction, I would be incredibly grateful.

I still need help. Please help! :sob:

I’m not too experienced with LiveSplit so I’m not entirely certain on this, but I don’t think this is really possible. Going off of the LiveSplit docs you can only get game time through process RAM, log files, or the output stream. You can’t write to a log file or the output stream through a Roblox script (to my knowledge :man_shrugging:), and although RAM may have worked in the past I don’t think it can anymore because of Hyperion.
If you really really need to use LiveSplit, there’s probably some convoluted way you could accomplish this through a webserver Roblox communicates with, which then interfaces with LiveSplit.

TLDR: It’s probably more worth it to emulate LiveSplit in game.

So, I have a finish screen to move on to the next level. Maybe I can make a rule for speedruning that goes like:

“If you’re using live split make sure to set the start key bind to W and split key bind to C. Press C instead of clicking next when finished.”

This will make accurate timing as the timer will start when you start moving and split after you move on to the next level. What do you think?

I’ll wait for 10 days for any other solution or I’ll just mark yours.

You CAN write to a log file! Everything you print goes to %LocalAppData%\Roblox\logs\ and is prefixed with [FLog::Output] prefix. That’s actually how BloxStrap’s Discord integration works.

1 Like
  • It can read the game’s log files, parse them, and toggle actions based on those. This works, but is usually fairly delayed, which is why this isn’t that great of a solution.

Maybe you can use this feature? Outputting to Roblox’s log file is as simple as a print, warn or error. As Sown already mentioned, other apps like BloxstrapRPC make use of this.

1 Like

Can you please clarify how much? If it’s not so much than I’ll use this method.

I don’t understand, is the name of the file prefixed?

The quote was from the LiveSplit documentation, I myself do not know:

unless roblox themselves release an api that integrates with livesplit, it’s not really possible

there are some forks of livesplit on github that exist that use image/screen comparisons in order to track splits for games that don’t have an igt/aren’t compatible with livesplit. but those are runner-integrated

the most barebones thing you, the developer can do is have an igt for any time-sensitive activities in your game. anything beyond that imo would be on the shoulders of the src mods for your game to establish rta rules and run verification etc

something else that would help runners set up their livesplit would be a small square that changes color based on the desired split of the activity, for example in something like an obby, the square would be pink for the entrance, red for a climbing section, etc etc

You can get the latest log file in the logs folder, and console output from your game is going to be prefixed with [FLog::Output]. For example, print("Hello") will append something like this to the log file:
timestamp,game runtime,something,something [FLog::Output] Hello

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.