The title might not really reflect the current state of the 'Timer' since it currently isn't anything you'd want to have on your server.
In an attempt to learn more about the engine and (low level) C++ in general I started to look into how you can develop plugins for source engine servers in c++. After messing around with sourcemod extensions for a while I thought it would be a good idea to try creating a 'timer' as a metamod plugin just to get to know how stuff actually works.
After a few weeks of more or less active coding, I came to the realization that I don't want to code my own thread library, database wrapper, translation system and several other things sourcemod provides c++ interfaces for so I rewrote most of it in C++ with a slightly different approach. As useful as these interfaces are, sourcemod doesn't provide c++ interfaces for client commands and a lot of other stuff and some of the interfaces need some further abstraction to be used in code which means there's a LOT of extra code you wouldn't need to write if you were writing a sourcemod plugin.
TL;DR
I only recommend doing this if you're either very experienced with low-level c++, know a lot about sourcemod plugins or a lot about the engine in general but I already learned a ton of it.
My main goals with this timer if I ever finish it are:
support for an 'infinite' amount of tracks and checkpoints
easy configuration
both c++ and sourcepawn interfaces for easy extensibility
If you want to look at the sourcecode: GitHub