Open-source Adrenaline Gamer client


OpenAG is an open-source client of the Half-Life promod Adrenaline Gamer, completely rewritten from scratch on latest Half-Life SDK. It adds new features, bugfixes and other tweaks over the original mod, while also maintaining the ability to play on all currently existing servers.

Getting Started #back to top


Below are all downloads for OpenAG

Linux client library
Windows client library
Full mod package
Experimental build
Github source


You must own Half-Life on Steam in order to play Adrenaline Gamer.

  1. Download the OpenAG package.
  2. Unpack the archive contents into your Half-Life folder.
  3. Restart Steam.
  4. OpenAG should appear in your Steam games library.

If you previously had Adrenaline Gamer installed, you don't need to download the full package.
A separate client library is available here.
Simply replace the client.dll in Half-Life/ag/cl_dlls folder with the new one and you should have OpenAG installed.

Make a backup of the original AG client.dll in case you need to switch back.

List of commands #back to top


  • agrecord [name] — Records a demo with a unique filename that consists of the date, time, map and name (optional).
  • cl_autorecord — If enabled, automatically records a demo on start of a match (agstart countdown).
  • cl_autostop — If enabled, automatically stops demo recording after match end (3 seconds into the intermission).
  • loadauthid — Displays nicknames from realnames.txt in the scoreboard
  • unloadauthid — Displays normal nicknames in the scoreboard.
  • cl_autojump — If enabled, will jump automatically as soon as you touch the ground while +jump is held.
  • +ducktap — Performs a duck tap automatically as soon as you touch the ground (presses +duck for 1 frame).
  • append <string> — An alternative to special. Appends string to the end of the command buffer, just like _special.
  • zpecial — Alias for append _zpecial. Can be used to replace special in various scripts/aliases.
  • cl_autowepswitch — If enabled, automatically switches to a stronger weapon on pick-up.
  • cl_scores [#] — Displays a mini-scoreboard panel on the screen. The amount value sets how many players or teams are shown.
  • cl_scores_pos "x y" — Controls the position of the mini-scoreboard element.
  • cl_righthand — If enabled, activates the left-handed mode.
  • cl_viewheight_mode — If enabled, adjusts the view height to be correct on older HLSDK servers.
  • cl_viewrollangle — Controls the view roll angle.
  • cl_viewrollspeed — Controls the view roll speed.
  • cl_hidecorpses — If enabled, hides dead player corpses.
  • cl_old_scoreboard [0/1] — If enabled, old style scoreboard is used instead of the VGUI one.
  • cl_old_scoreboard_width [320-screen resolution width] — Changes the base width of the scoreboard, default (and minimum) is 320 on Windows (like in AG 6.6) and 380 on Linux.
  • cl_viewmodel_fov [0-179] — Changes the FOV for the gun viewmodel, the value is based on what the viewmodel would look like with the same default_fov (e.g. 120 is like if default_fov was set to 120). 0 to disable and use default_fov's value.
  • cl_viewmodel_ofs_right [0+] — Offsets the gun viewmodel to the right (or to the left if cl_righthand is set to 1), 0 for no offset.
  • cl_viewmodel_ofs_forward [0+] — Offsets the gun viewmodel forward, 0 for no offset.
  • cl_viewmodel_ofs_up [0+] — Offsets the gun viewmodel upwards, 0 for no offset.


  • hud_color "R G B" — Color of all HUD elements in RGB format.
  • hud_timer [0/1/2] — Displays an in-game timer. It has two modes: 1 is time remaining, 2 is time elapsed.
  • hud_speedometer [0/1] — Displays a speedometer.
  • hud_speedometer_below_cross [0/1] — Places the speedometer right under your crosshair for better (or not) visibility.
  • cl_draw_deathnotices_always — If enabled, will display the kill feed even when hud_draw is 0. Useful when recording fragmovies.
  • hud_saytext_sound [0/1] — Plays a sound whenever a message is posted in the game's chat. Disabled by default.
  • hud_rainbow [0/1] — Enables Rainbow HUD. Disabled by default.
  • hud_rainbow_sat [0-100] — Controls the saturation of Rainbow HUD color. Default: 100%
  • hud_rainbow_val [0-100] — Controls the brightness of Rainbow HUD color. Default: 100%
  • hud_rainbow_speed "degrees/s" — Controls the angular speed of Rainbow HUD color. Default: 40 degrees/s
  • hud_rainbow_xphase "degrees/px" — Controls the horizontal phase shift of Rainbow HUD color. Default: 0.4 degrees/px
  • hud_rainbow_yphase "degrees/px" — Controls the vertical phase shift of Rainbow HUD color. Default: 0.7 degrees/px


Forcemodel allows you to override the model of another player/team on the fly. This is especially useful when they are using a model that is hard to see.

  • cl_forcemodel <player> <model> — Overrides the model of the specified player.
    You can also use SteamID or UserID (i.e. #123) instead of the name, but writing only a half of the player's name works too.
  • cl_forcemodel_list — Lists existing model overrides.
  • cl_forcemodel_remove <player> — Removes model override for specified player.

You can also use this set of commands to force models on teams:

  • cl_forceteammodel <team> <model> — Overrides the model of the specified team.
  • cl_forceteammodel_list — Lists existing team model overrides.
  • cl_forceteammodel_remove <team> — Removes model override for specified team.

  • cl_forceteammatemodel <model> — Overrides the models of all players on the same team as you. Use cl_forceteammatemodel "" to reset.
  • cl_forceenemymodel <model> — Overrides the models of all players on other teams. Use cl_forceenemymodel "" to reset.

Custom crosshairs

Custom crosshairs allow you to generate any kind of crosshair you want straight from the console. This eliminates the need of crosshair sprite files, while also making the crosshair look sharp and just the way you like!

  • cl_cross — If 1, a custom crosshair will be drawn.
  • cl_cross_alpha — Crosshair opacity. Value range: 0–255.
  • cl_cross_circle_radius — Controls the radius of the circle that is drawn around the crosshair. Set to 0 to disable it completely.
  • cl_cross_color "R G B" — The color of the crosshair in RGB format. For example: "0 255 128"
  • cl_cross_dot_size — Size of the dot at the center of the crosshair. Set to 0 to disable it completely.
  • cl_cross_dot_color — The color of the crosshair dot in RGB format. If empty, dot is the same color as the rest of the crosshair.
  • cl_cross_gap — Crosshair gap size.
  • cl_cross_size — Controls the size/length of the crosshair.
  • cl_cross_thickness — Controls the thickness of the crosshair.
  • cl_cross_outline — Controls the size of an outline around the crosshair. Set to 0 if you do not wish to have an outline.
  • cl_cross_{top,bottom,left,right}_line — Controls the sizes of the corresponding crosshair lines.

Version History (Changelog) #back to top

                                     June 3rd, 2021
                                    - Added cl_old_scoreboard (thanks chinese-soup).
                                    - Added rainbow HUD, set hud_rainbow to 1 to enable (thanks tmp64).
                                    - Added the customtimer command (thanks chinese-soup).
                                    - Added the writemap command that writes the current map name into saved_maps.txt (thanks czarsonszef).
                                    - Added cl_viewmodel_fov and cl_viewmodel_ofs_* CVars to adjust viewmodel rendering (thanks chinese-soup).
                                    - Fixed wrong crosshair when spectating (thanks chinese-soup).
                                    - Fixed cl_forceteammatemodel when spectating (thanks chinese-soup).
                                    - Disabled thirdperson in multiplayer (thanks chinese-soup).
                                    - Fixed ammo below 10 being misaligned on the HUD (thanks chinese-soup).
                                    - Changed chat messages to appear instantly in the console and made hud_saytext_time save into config.cfg (thanks chinese-soup).
                                    - Made default_fov save into config.cfg (thanks tmp64).
                                    - Fixed HLTV ignoring default_fov (thanks chinese-soup).
                                    - A few bugfixes on the spectator VGUI controls (thanks chinese-soup).
                                    - A few other bugfixes (thanks tmp64).

                                     November 1st, 2020
                                    - Fixed a Linux crash on joining servers (thanks tmp64).

                                     October 30th, 2020
                                    - Added automatic perfect duck tapping (also known as duckroll, duckspam, etc.) activated by +ducktap. It takes priority over autojump when holding both +jump and +ducktap (thanks mxpph).
                                    - Added cl_hidecorpses to hide dead corpses (thanks rtxa).
                                    - Changed scoreboard text rendering to support more character sets (e.g. correct Cyrillic rendering) and scale better with higher resolutions (thanks tmp64).
                                    - Changed hud_speedometer to draw even when hud_draw is 0 (thanks TheSmiley47).
                                    - Fixed dead corpses not disappearing on high FPS (thanks rtxa).
                                    - Fixed a crash when playing demos.
                                    - Fixed a crash in the spectator overview code (thanks tmp64).

                                     June 4th, 2020
                                    - Added cl_autostop for stopping demo recording after match end (thanks execut4ble).
                                    - Added client-side surf bug fix, automatically active on servers where the bug is fixed (thanks naz).
                                    - Added cl_viewheight_mode for fixing view height on old HLSDK servers (thanks naz).
                                    - Added multilayer overview support (thanks naz).
                                    - Added cl_viewrollangle and cl_viewrollspeed for configuring view roll (thanks barney-heatwave).
                                    - Fixed slight viewmodel bob tilt not working (thanks barney-heatwave).

                                     December 30th, 2017
                                    - Added cl_forceteammatemodel and cl_forceenemymodel.
                                    - Added necessary functionality for play_team and play_close to work.
                                    - Added the next map display.
                                    - Added hud_playerid.
                                    - Added parsing location files from ag_downloads/locs/ as well as ag/locs/.
                                    - Added cl_righthand for enabling left-handed mode.
                                    - Added hud_weapon.
                                    - Fixed mouse cursor disappearing on tabbing out of and back into the game.
                                    - Fixed a crash with long HUD messages (example map is kz_kzfr_caterpillar).
                                    - Fixed cl_force{,team}model working incorrectly with more than one override.
                                    - Fixed UserMsg: No pfn <...> spam in the developer console.

                                     December 3rd, 2017
                                    - Added cl_cross_dot_color for overriding the crosshair dot color.
                                    - Added cl_autorecord for automatically recording a demo on agstart countdown.
                                    - Added Discord rich game presence integration. Discord will show various info about the server you're currently playing on, and you'll be able to invite others to join your server. Please note that due to a bug Linux Discord is currently unable to start OpenAG on its own, you'll have to start it manually if you join an invite.
                                    - Fixed crosshair dot not having outline when cl_cross_outline is enabled.
                                    - A big improvement on the development side of things: OpenAG is now using CMake, has most warnings enabled and is being automatically tested on both of the supported platforms.

                                     September 11th, 2017
                                    - Added cl_cross_outline.
                                    - Added cl_cross_{top,bottom,left,right}_line (thanks dxtzero).
                                    - Added cl_draw_deathnotices_always for showing death notices even when hud_draw is 0.
                                    - Added hud_speedometer_below_cross for putting the speedometer right below the crosshair.
                                    - Fixed "could not load library" error on certain Linux distributions.
                                    - Fixed HLKZ menu rendering on Linux.

                                     April 26th, 2017
                                    - Added cl_scores.
                                    - Added a speedometer (hud_speedometer).
                                    - Made the GL crosshairs draw even when hud_draw is disabled.

                                    February 9th, 2017
                                    - Added packet loss indicator to the scoreboard.
                                    - Added the timeout HUD element.
                                    - Added overtime support to the timer HUD element.
                                    - Added the sudden death HUD element.
                                    - Added the GL crosshair.
                                    - Removed the "Press DUCK for Spectator Menu" message.
                                    - Fixed the spectator colors in the scoreboard.
                                    - Fixed the ladder movement lag while ducked.
                                    - Fixed the append spam on demo playback.
                                    - Fixed some crashes on malformed team name.

                                    August 19th, 2016
                                    - Added the CTF HUD elements and sounds.
                                    - Fixed teams in the scoreboard not updating properly.

                                    August 11th, 2016
                                    - Added cl_autowepswitch.
                                    - Added clientside autojump, which is enabled by default. Just hold +jump. It can be disabled with by setting the cl_autojump CVar to 0.
                                    - Added zpecial and _zpecial which work just like you would expect.
                                    - Added the append command as an alternative to special. This one is kind of tricky to explain, but basically append <something> puts something into the end of the command buffer (just like special puts _special into the end of the command buffer). If that helps, zpecial is just an alias for append _zpecial.

                                    July 2nd, 2016
                                    - Added the hud_color CVar.
                                    - Added realnames support: loadauthid and unloadauthid commands.
                                    - Made the voice status HUD display the name without the color tags.
                                    - Made the countdown HUD disappear after a short while. This fixes it being stuck if agabort is issued during the agstart countdown.
                                    - Added cl_forcemodel. It's awesome, go check it out. It can "find" players by name, by Steam ID, by User ID, and when finding by name it can find by name with color tags, by name without color tags, and by matching the name partially (so you don't have to specify the full name, just any of its substrings), and if multiple names match it displays all of them so you can choose which one you want.

                                    June 23th, 2016
                                    - Added the cl_forceteammodel command.
                                    - Added the SteamID display to the scoreboard.
                                    - Added the hud_saytext_sound CVar to control whether a sound plays when there is a new message in the chat. Defaults to 0 (no sound).

                                    June 19th 2016
                                    - Initial release.