SharpTimer is a simple Surf/KZ/Bhop/MG/Deathrun/etc. CS2 Timer plugin using CounterStrikeSharp
----------------- [Timer, Speedometer and Keys] -----------------
-------------------------- [Players PBs] --------------------------
----------------- [Checkpoints (disabled by default)] -----------------
-
Unzip into your servers
game/csgo/dir -
Its recommended to have a custom server cfg with your desired settings (for example surf or kz)
Like this one for Surf: https://raw.githubusercontent.com/DEAFPS/cs-cfg/main/surf.cfg
You can replace the contents of
gamemode_competitive.cfgorgamemode_casual.cfgwith it -
Here a collection of maps supported by default: https://steamcommunity.com/sharedfiles/filedetails/?id=3095738559
| Command | What it does |
|---|---|
!r |
Teleports the player back to Spawn |
!top |
Prints the top 10 times on the current map |
!rank |
Tells you your rank on the current map |
!cp |
Sets a checkpoint |
!tp |
Teleports the player to the latest checkpoint |
!prevcp |
Teleports the player to the previous checkpoint |
!nextcp |
Teleports the player to the previous checkpoint |
-
See
game/csgo/cfg/SharpTimer/config.cfgfor basic plugin configuration (yes you can enable checkpoints there) -
This plugin will look for
timer_startzone&timer_endzonetriggers by default, if the map uses different trigger targetnames or does not have triggers at all (most bhop and deathrun maps dont) you will have to add them into themapdata.json -
To add Map Start and End zones you can simply add the
targetnamesof the triggers in themapdata.jsoninside ofgame/csgo/cfg/SharpTimer/usingMapStartTriggerandMapEndTriggerYou can look up the trigger targetnames using these offline server commands:
sv_cheats true ent_find trigger_multiple (will list all 'zoning' triggers that mapper/port has put in) ent_bbox <targetname> (will draw it in game)Many maps do not contain any
startzoneorendzonetriggers. As a workaround you can setup the trigger manually be defining its opposite corner coordinates withMapStartC1andMapStartC2! if you are using thegetposorcl_showpos 1to get the coordinates you will have to subtract64 unitsfrom the Z axis since the coordinates given are at the height of your camera and not your feet! You also need to define theRespawnPosfor the!rcommand usingRespawmPosHere is a Example of what the
mapdata.jsoncan look like with both map triggers and manual triggers:
{
"surf_kitsune": {
"MapStartTrigger": "stage1_start",
"MapEndTrigger": "stage9_end",
},
"surf_beginner": {
"MapStartTrigger": "stage1_trigger",
"MapEndTrigger": "end_trigger",
},
"surf_boomer": {
"MapStartTrigger": "zippan_start",
"MapEndTrigger": "zippan_end",
},
"surf_mesa_revo": {
"MapStartC1": "255.63 -1360 8928",
"MapStartC2": "-259.002686 -832 8928",
"MapEndC1": "-393 14047 -13759",
"MapEndC2": "378.517792 13067.639648 -13759",
"RespawnPos": "-64 -1040 8992"
},
"surf_utopia_njv": {
"MapStartC1": "-13769 512 12800",
"MapStartC2": "-14319 -512 12800",
"MapEndC1": "-13825 -512 -6223",
"MapEndC2": "-14319 527 -6223",
"RespawnPos": "-13904 336 12864"
},
}
- I will try to add more map data by default in the future :) pull requests are also welcome







