Skip to content

OpenGL accelerated speedrunning timer with scripting capabilities

License

Notifications You must be signed in to change notification settings

3RD-Maple/SpeedTool

Repository files navigation

SpeedTool

A scriptable OpenGL-accelerated speedrunning timer that runs inside your games!

⚠️WARNING⚠️ This project is still a Work In Progress. Please expect rough edges, missing features, bugs, and breakage of backwards compatibility.

You can find the newest release on itch.io

We are looking for contributors. Please consider checking out CONTRIBUTING if you wish to help improve the project.

Features

  • Frame perfect. Unlike other scriptable timers, SpeedTool is injected directly into the target game and synchronizes perfectly with game's refresh rates. Therefore, the script is executed at the end of every frame the game outputs
  • Safe scripting. SpeedTool uses a safe LUA programming language sandbox to execute scripts, which means scripts can't do any harm
  • Unlimited subsplits. Speedtool comes with builtin support for infinitely nesting splits

Supported platforms

Speedtool is designed to be cross-platform and it's confirmed to run on Windows and Linux operating systems! It should support MacOS, but we have no way of testing it.

Scripting is only supported on Windows (expanding to other systems might happen)

List of already supported graphics platforms:

  • OpenGL
  • DirectX 9
  • DirectX 11

Support for other graphics platforms will be added in near future

ℹ️ NOTE ℹ️ Some games might be impossible to inject to, due to anti-cheat software or other game-specific implementation quirks. Please note that we can only test games that we have in our possession.

Building

SpeedTool is based on .NET 8.0, however the injected timer is built using .NET Framework 4.6.

Build with:

dotnet build

It is as easy as that!

If you want to run SpeedTool, please execute the following command:

dotnet run --project SpeedTool

Due to complications with .NET Framework versions, to get scripting support you need to manually copy the output of TimerInjector project into SpeedTool output directory.

Future plans

Some things we'd like to work on in the near future:

  • Improving the UI and UX
  • More customisation options
  • Automatic game loading based on what game is currently running
  • More visualisation options
  • Browser source capture support

About

OpenGL accelerated speedrunning timer with scripting capabilities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages