{"id":43145327,"url":"https://github.com/shavitush/bhoptimer","last_synced_at":"2026-01-31T23:43:30.663Z","repository":{"id":34843814,"uuid":"38835292","full_name":"shavitush/bhoptimer","owner":"shavitush","description":"A bunnyhop timer plugin for Counter-Strike: Source, Counter-Strike: Global Offensive and Team Fortress 2.","archived":false,"fork":false,"pushed_at":"2026-01-28T02:23:34.000Z","size":5848,"stargazers_count":252,"open_issues_count":34,"forks_count":109,"subscribers_count":25,"default_branch":"master","last_synced_at":"2026-01-28T17:57:49.020Z","etag":null,"topics":["bhop-timer","bunnyhop","counter-strike-global-offensive","counter-strike-source","csgo","css","hacktoberfest","kreedz","kz","sourcemod","sourcepawn","timer"],"latest_commit_sha":null,"homepage":"https://timer.shav.it","language":"SourcePawn","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shavitush.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":null},"created_at":"2015-07-09T17:32:31.000Z","updated_at":"2026-01-28T07:31:55.000Z","dependencies_parsed_at":"2023-02-18T10:32:17.764Z","dependency_job_id":"d043a5cd-50b5-46f9-bdb2-ac378a93a18d","html_url":"https://github.com/shavitush/bhoptimer","commit_stats":null,"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/shavitush/bhoptimer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shavitush%2Fbhoptimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shavitush%2Fbhoptimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shavitush%2Fbhoptimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shavitush%2Fbhoptimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shavitush","download_url":"https://codeload.github.com/shavitush/bhoptimer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shavitush%2Fbhoptimer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28960903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T23:03:11.038Z","status":"ssl_error","status_checked_at":"2026-01-31T22:56:44.691Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bhop-timer","bunnyhop","counter-strike-global-offensive","counter-strike-source","csgo","css","hacktoberfest","kreedz","kz","sourcemod","sourcepawn","timer"],"created_at":"2026-01-31T23:43:26.857Z","updated_at":"2026-01-31T23:43:30.652Z","avatar_url":"https://github.com/shavitush.png","language":"SourcePawn","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Discord server](https://discordapp.com/api/guilds/389675819959844865/widget.png?style=shield)](https://discord.gg/jyA9q5k)\n\n### RECOMPILE ALL YOUR PLUGINS THAT USE `#include \u003cshavit\u003e` OR STUFF WILL BREAK\n\n### CS:GO is dead. Support won't be removed and gamedata should:tm: still work but it isn't actively tested.\n\n[AlliedModders thread](https://forums.alliedmods.net/showthread.php?t=265456) // !!! OUTDATED !!!\n\n[Download](https://github.com/shavitush/bhoptimer/releases)\n\n# shavit's bhop timer\n\nThis is nearly an all-in-one server plugin suite for Counter-Strike: Source, Counter-Strike: Global Offensive, and Team Fortress 2 that adds a timer system and many other utilities, so you can install it and run a proper bunnyhop server.\n\nIncludes a records system, map zones (start/end marks etc), bonuses, HUD with useful information, chat processor, miscellaneous things such as weapon commands/spawn point generator, bots that replay the best records of the map, sounds, statistics, segmented running, a fair \u0026 competitive rankings system, and more!\n\n[Mapzones Setup Demonstration](https://youtu.be/OXFMGm40F6c)\n\n# Requirements:\n* Steam version of Counter-Strike: Source, Counter-Strike: Global Offensive, or Team Fortress 2.\n* [Metamod:Source](https://www.sourcemm.net/downloads.php?branch=stable) and [SourceMod](https://www.sourcemod.net/downloads.php?branch=stable) 1.12 or higher.\n* A MySQL database (preferably locally hosted) if your database is likely to grow big, or if you want to use the rankings plugin. MySQL server version of 5.5.5 or above (MariaDB equivalent works too) is required.\n\n# Optional requirements, for the best experience:\n* [eventqueuefix](https://github.com/hermansimensen/eventqueue-fix)\n  * Allows for timescaling boosters and is used to fix some exploits. (Use this instead of `boosterfix`)\n  * (included in bhoptimer release zips)\n  * Along with using [eventqueuefixfix](https://github.com/srcwr/eventqueuefixfix) at the same time to fix eventqueuefix on Windows after the 2025-02-18 update.\n* [srcwr💾](https://github.com/srcwr/srcwrfloppy)\n  * Saves replays asynchronously (read: doesn't lag the server when saving a replay).\n  * (included in bhoptimer release zips)\n* [SteamWorks](https://forums.alliedmods.net/showthread.php?t=229556)\n  * Used to grab `{serverip}` in advertisements.\n* [DynamicChannels](https://github.com/Vauff/DynamicChannels)\n\n# Installation\n\n* [Build from source](https://github.com/shavitush/bhoptimer/wiki/1.-Installation-(from-source))\n* [Download an existing release](https://github.com/shavitush/bhoptimer/releases) - installing is simply drag \u0026 drop into the  game server's directory.\n\n# Configuration\n\nThe [wiki](https://github.com/shavitush/bhoptimer/wiki) contains most relevant information regarding configuration, under the 2nd category's pages.\n\nConfiguration files are in `cfg/sourcemod/plugin.shavit-*.cfg` and `addons/sourcemod/configs/shavit-*`.\n\n# bhoptimer modules:\n\n### shavit-core (REQUIRED)\n`bhoptimer`'s core.\nIt handles connections to the database and exposes an API (natives/forwards) for developers and other modules.\nCalculations, gameplay mechanics and such are all handled by the core plugin.\n\nIncludes *but not limited to*: Custom chat messages and colors, snapshots, pausing/resuming, styles (configurable), automatic bunnyhopping, strafe/sync meters that work for most playstyles, double-step fixer (+ds), practice mode, +strafe blocking, +left/right blocking, pre-jump blocking, HSW style (including SHSW) that cannot be abused with joypads, per-style `sv_airaccelerate` values, teleportation commands (start/end).\n\n```\nPlayer commands:\n!style, !styles, !diff, !difficulty - Choose your bhop style.\n!s, !start, !r, !restart - Start your timer.\n!b, !bonus, !b1, !b2, etc - Start your timer on the bonus track.\n!m, !main - Start your timer on the main track.\n!end - Teleport to endzone.\n!bend, !bonusend - Teleport to endzone of the bonus track.\n!stop - Stop your timer.\n!pause, !unpause, !resume - Toggle pause.\n!auto, !autobhop - Toggle autobhop.\n\nAdmin commands:\n!deletemap (RCON flag) - Deletes all map data.\n!wipeplayer (BAN flag) - Wipes all bhoptimer data for specified player.\n!migration (ROOT flag) - Force a database migration to run.\n```\n\n### shavit-wr (REQUIRED)\nSaves the players' records to the database and allows players to see the server's records.\nThe ability to see records for other maps also exists and can be lazily looked up (!wr map_name, or a part of the map's name).\n\n```\nPlayer commands:\n!wr, !worldrecord - View the leaderboard of a map. Usage: !wr [map]\n!bwr, !bworldrecord, !bonusworldrecord - View the *bonus* leaderboard of a map. Usage: !bwr [map]\n!recent, !recentrecords, !rr - View the recent #1 times set.\n!pb, !time, !times - View a player's times on a specific map.\n\nAdmin commands: (RCON flag)\n!delete, !deleterecord, !deleterecords - Opens a record deletion menu interface.\n!deletall - Deletes all the records for this map.\n```\n\n### shavit-zones (REQUIRED)\nThe zones plugins handles everything related to map zones (such as start/end zone etc) and is necessary for `bhoptimer` to operate.\nZones are trigger based and are very lightweight.\n\nThe zones plugin includes some less common features such as: Multiple tracks (main/bonus), zone editing (after setup), snapping zones to walls/corners/grid, zone setup using the cursor's position, configurable sprite/colors for zone types, zone tracks (main/bonus - can be extended), manual adjustments of coordinates before confirmations, teleport zones, glitch zones, no-limit zones (for styles like 400-velocity), flat/3D boxes for zone rendering, an API and more.\n\nIt also contains support for built-in map timers (KZ) and the [Fly](https://github.com/PMArkive/fly) zoning standard.\n\n```\nPlayer commands:\n!set, !setstart, !ss, !sp, !startpoint - Set your current position as the teleport location on restart.\n!deletestart, !deletesetstart, !delss, !delsp - Delete your spawn point.\n!drawallzones, !drawzones - Draws all zones (if the server has the cvar for this enabled).\n\nAdmin commands: (RCON flag)\n!zones, !mapzones, !addzone - Opens the mapzones menu.\n!deletezone, !delzone - Delete a mapzone.\n!deleteallzones - Delete all mapzones.\n!modifier - Changes the axis modifier for the zone editor. Usage: !modifier \u003cnumber\u003e\n!addspawn - Adds a custom spawn location.\n!delspawn - Deletes a custom spawn location.\n!zoneedit, !editzone, !modifyzone - Modify an existing zone.\n!setstart, !spawnpoint, !ss, !sp - Set your restart position \u0026 angles in a start zone.\n!tptozone - Teleport to a zone.\n\nAdmin commands: (ROOT flag)\n!reloadzonesettings - Reloads the zone settings.\n```\n\n### shavit-chat\nThe chat plugin manipulates chat messages sent by players.\nIt includes custom chat names, tags, colors and all can be defined by the players/admins.\nAdmins need the chat flag, or the \"shavit_chat\" override (good for a donator perk).\nThere's a user-friendly command named !cchelp so the users can easily understand what's going on.\nIn addition, it integrates with rankings and allows you to have titles for players according to their ranking, relative ranking or points in the server using !chatranks.\n\n```\nPlayer commands:\n!cchelp - Provides help with setting a custom chat name/message color.\n!ccname - Toggles/sets a custom chat name. Usage: !ccname \u003ctext\u003e or !ccname \"off\" to disable.\n!ccmsg, !ccmessage - Toggles/sets a custom chat message color. Usage: !ccmsg \u003ccolor\u003e or !ccmsg \"off\" to disable.\n!chatrank, !chatranks - View a menu with the chat ranks available to you.\n\nAdmin commands: (CHAT flag)\n!ccadd - Give a user ccname \u0026 ccmsg access by steamid. Usage: !ccadd \u003csteamid\u003e\n\nAdmin commands: (ROOT flag)\n!ccdelete - Remove a user's ccname \u0026 ccmsg access that was granted by !ccadd. Usage: !ccdelete \u003csteamid\u003e\n!cclist - Print the custom chat setting of all online players.\n!reloadchatranks - Reloads the chatranks config file.\n```\n\n### shavit-hud\nThe HUD plugin is `bhoptimer`'s OSD frontend.\nIt shows most (if not all) of the information that the player needs to see.\n\nSome features are: Per-player settings (!hud), truevel, and gradient-like display (CS:GO).\n\n```\nPlayer commands:\n!hud, !options - Opens the HUD settings menu.\n!keys, !showkeys, !showmykeys - Draw plugin keys on screen.\n!master, !masterhud - Toggles the HUD.\n!center, !centerhud - Toggles the center text HUD.\n!zonehud - Toggles the zone HUD.\n!hidewep, !hideweap, !hideweapon - Toggles weapon hiding.\n!2dvel, !truevel, !truvel - Toggles 2D ('true') velocity.\n```\n\n### shavit-mapchooser\nReplaces `mapchooser` to provide `bhoptimer` integration into nomination and map vote menus.\n\n```\nAdmin commands: (CHANGEMAP flag)\n!forcemapvote - Forces the map vote to happen.\n!reloadmaplist - Reloads the maplist.\n!reloadmap, !restartmap - Reloads the current map.\n!loadunzonedmap - Loads a random map from the maps folder that is unzoned.\n```\n\n### shavit-checkpoints\nThis plugin handles checkpoint related things such as segmented runs \u0026 savestates/persistent-data.\n\n```\nPlayer commands:\n!cp, !cpmenu, !checkpoint, !checkpoints - Opens the checkpoints menu.\n!save - Saves a checkpoint.\n!tele - Teleports to a checkpoint (default: 1). Usage: !tele [number]\n!prevcp - Selects the previous checkpoint.\n!nextcp - Selects the next checkpoint.\n!deletecp - Deletes the current checkpoint.\n```\n\n### shavit-misc\nThis plugin handles miscellaneous things used in bunnyhop servers.\n\nSuch as: team handling (respawning/spectating too), spectators list (!specs), smart player hiding that works for spectating too, teleportation to other players, weapon commands (!knife/!usp/!glock) and ammo management, noclipping (can be set to work for VIPs/admins only), drop-all, godmode, prespeed blocking, prespeed limitation, chat tidying, radar hiding, weapon drop cleaning, player collision removal, auto-respawning, spawn points generator, radio removal, scoreboard manipulation, model opacity changes, fixed runspeed, automatic and configurable chat advertisements, player ragdoll removal, and WR messages.\n\n```\nPlayer commands:\n!specs, !spectators - Show a list of spectators.\n!spec, !spectate - Moves you to the spectators' team. Usage: !spec [target]\n!hide, !unhide - Toggle players' hiding.\n!tpto, !goto - Teleport to another player. Usage: !tpto [target]\n!usp, !glock, !knife - Spawn a USP/Glock/Knife.\n!nc, !prac, !practice, !noclipme, +noclip, sm_noclip - Toggles noclip.\n!adverts - Prints all adverts to the client.\n```\n\n### shavit-rankings\nEnables !rank, !top and introduces map tiers (!settier).\nEach record gets points assigned to it according to the map's tier and overall - how good the time is.\nThis system doesn't allow \"rank grinding\" by beating all of the easy maps on the server but instead, awards the players that get the best times on the hardest maps and styles.\n\n```\nPlayer commands:\n!tier, !maptier - Prints the map's tier to chat.\n!rank - Show your or someone else's rank. Usage: !rank [name]\n!top - Show the top 100 players.\n\nAdmin commands: (RCON flag)\n!settier, !setmaptier - Change the map's tier. Usage: !settier \u003ctier\u003e\n!recalcmap - Recalculate the current map's records' points.\n\nAdmin commands: (ROOT flag)\n!recalcall - Recalculate the points for every map on the server. Run this after you change the ranking multiplier for a style or after you install the plugin.\n```\n\n### shavit-replay-playback\nCreates a replay bot that records the players' world records and playback them on command (!replay/automatic).\nThe replay bot playback can be stopped (if central) and the saved replay can be deleted by server administrators.\nReplay bots will change their clan tags/names according to the server's configuration.\n\n```\nPlayer commands:\n!replay - Opens the replay bot menu.\n\nAdmin commands: (RCON flag)\n!deletereplay - Open replay deletion menu.\n```\n\n### shavit-replay-recorder\nThis is now the actual plugin that records the replays. ||I wanted to split shavit-replay so I could deal with reloading plugins without losing replay data better.||\n\n### shavit-sounds\nWill play custom sounds when event actions happen.\nSuch as: Getting a world record, improving your own record, getting the worst record in the server, beating a map for the first time or setting a rank #X record.\n\n### shavit-stats\nThe statistics plugin is a statistics frontend for the players.\nIt displays rankings, maps done, maps left, server records, SteamID, country, map completion, last login date, and more useful information!\n\n```\nPlayer commands:\n!p, !profile, !stats - Show the player's profile. Usage: !profile [target]\n!mapsdone - Shows the maps the player has finished.\n!mapsleft - Shows maps that the player has not finished yet.\n!playtime - Shows the top playtime list.\n```\n\n### shavit-timelimit\nSets a dynamic map time limit according to the average completion time of the map.\n\n```\nAdmin commands: (CHANGEMAP flag)\n!extend, !extendmap - Extend the map.\n```\n\n### shavit-tas\nProvides autostrafers and other TAS related functionality.\n\n```\nPlayer commands:\n+autostrafer/-autostrafer, !autostrafer - Toggle the autostrafer.\n+autoprestrafe/-autoprestrafe, !autoprestrafe - Toggle automatically prestrafing.\n+autojumponstart/-autojumponstart, !autojumponstart - Toggle jumping automatically on start.\n+edgejump/-edgejump, !edgejump - Toggle edge jumping.\n```\n\n# Recommended plugins:\n* [MomSurfFix](https://forums.alliedmods.net/showthread.php?p=2680743) ([github](https://github.com/GAMMACASE/MomSurfFix))\n  - Makes surf ramps less likely to stop players. (Ramp bug / surf glitch)\n* [RNGFix](https://forums.alliedmods.net/showthread.php?t=310825) ([github](https://github.com/jason-e/rngfix))\n  - Makes slopes, teleporters, and more less random. Replaces `slopefix`\n* [HeadBugFix](https://github.com/GAMMACASE/HeadBugFix)\n  - Fixes head bounding boxes when ducking so it's not possible to touch triggers through a roof.\n* [Showtriggers](https://forums.alliedmods.net/showthread.php?t=290356) ([github](https://github.com/1ci/showtriggers)) or [Eric's Edit](https://github.com/ecsr/showtriggers)\n  - Allows players to toggle trigger visibility.\n* [ShowPlayerClips](https://forums.alliedmods.net/showthread.php?p=2661942) ([github](https://github.com/GAMMACASE/ShowPlayerClips))\n  - Allows players to toggle player clip visibility.\n* [JumpStats](https://github.com/Nimmy2222/bhop-get-stats)\n  - Covers SSJ, Jhud, StrafeTrainer, Strafe Offsets and FJT. Colors, HUD positioning editor, cookies, etc\n* [shavit-ssj](https://github.com/Nairdaa/shavit-ssj)\n  - Speed of Sixth Jump + more, customisable settings with cookies remembering user prefered settings.\n* [shavit-jhud](https://github.com/blankbhop/jhud)\n  - Jump HUD for bhoptimer. !jhud for settings.\n* [shavit-firstjumptick](https://github.com/Nairdaa/bhoptimer-firstjumptick)\n  - Displays what tick the player first jumps at upon leaving the startzone. Very useful for strafe maps, where you tryhard to cut that tick or two. !fjt to enable.\n* [sm_closestpos](https://github.com/rtldg/sm_closestpos)\n  - C++ extension to efficiently find the closest replay position for calculating time-difference and velocity-difference.\n* [mpbhops_but_better](https://github.com/rtldg/mpbhops_but_working)\n  - A cleaner and faster mpbhops/mpbh plugin that also makes door vertical-boosters consistent and frozen.\n\n### CS:GO\n* [NoViewPunch](https://github.com/hermansimensen/NoViewPunch)\n  - Removes the viewpunch from landing in CS:GO.\n* [CS:GO Movement unlocker](https://forums.alliedmods.net/showthread.php?t=255298)\n  - Enables prespeeding (no 240 velocity cap for runspeed anymore)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshavitush%2Fbhoptimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshavitush%2Fbhoptimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshavitush%2Fbhoptimer/lists"}