Global Timer - universal time tracking for surf and kz etc

Global Timer

The Idea of Global Timer is a centralized system for tracking timer-based maps and objectives.

The Idea

On CS:GO for example, you have global timer databases for KZ and Surfing. The global databases are used to store player records and verify their legitimacy. The timer also supports local times stored on the server. We will do the same thing here, but with more functionality. A UI for showing leaderboards and other global data in-game, as well as HUD elements directly connected with the current timer.

The timer will be built to support any gamemode that requires it, and we can achieve this by providing basic start, checkpoint, and stop functionality.

How it works

The timer will come as an addon, once installed the server owner will have a token they use to verify their server on the global list. The addon will do things such as verify server variables are correct and confirm other things like like player positions throughout runs to make sure nobody is cheating. I hope to have a system in place to send serverside demos when a record is achieved.

Timer setup needs to be simple

When you create a map that needs a timer, it will be extremely easy to set it up.

You have two options, load the map into your server and use commands to set the locations of start, checkpoints, and end. OR, I plan to have an FGD for hammer with entities that do the exact same thing but will be baked into the map on compile.

A lot of the ideas here are based on other implementations, but I feel like I will have more freedom to create some really cool features for the system.


I had been working on something like this to cosolidate times for many source games before I shelved the idea a few weeks ago. Looking forward to seeing it in s&box!

1 Like

The problem is that we can´t surf or bhop in Source 2.

1 Like

I mean, you can just make your gamemode’s locomotion system so that you can.


I like the idea but it isn’t going to be easy to prevent players from cheating the system. May need some form of moderation, for example, if a player breaks a record run on a specific map to ensure it was done legitimately.

1 Like

There will be, garry wants hl2 movement in the game so that will help. The rest will likely be done my myself or whoever builds a good surfing movement system first, if needed.

Right, which is why position checks and auto uploading demos would be a good start. I’m sure there are tons of other moderation tools and checks we can add once development gets underway.

This would be cool, actually.

For the configuration I might recommend FGD default, but also allow the global database send coordinates for non-built-in maps + let server hosts suggest zone coordinate change recommendations.

Obviously a server not linked to the global DB can do whatever it damn well pleases.

1 Like

100%, once a map is added to global with specific coordinates for a start zone or a start entity then that is what will be enforced on all other servers using global.

Something else that’s just struck me is server validation.

As long as S&Box provides the methods, you’ll need the ability to enforce environment variables like tickrate and airaccel, friction, etc.

The ConVars, I’m sure, will not be an issue. It’s mostly tickrate and other server settings to be mindful of.

(alt: have run categories for different server presents? depends on how big you want the database system to be, and any potential websites for record viewing)


It’s possible to have different presets for runs, but honestly, there will be a standard group of presets that will be used officially.

And things like tickrate, well, there will likely be a tickrate that is best for surfing, and if a server doesn’t use it then too bad.

First we need to get surfing working in the game, and I hope I can get access at some point to port some maps and test it in engine.

Steamworks has an API for unlimited scoreboards so garry could add a hook so every gamemode can have its own global scoreboard so someone would have to ask him to do it.

1 Like

I don’t expect that to actually happen, but if it did it would be really sweet.

1 Like