Custom Telemetry Scripts In Counter-Strike 2
Introduction
In older Counter-Strike versions, players used net_graph command to check FPS, ping, packet loss, and general network stability. In Couner Strike 2, the command is gone, and Valve replaced it with the new CS2 Telemetry system.
CS2 Telemetry lets you monitor frame time, FPS, ping, jitter, packet loss, and network quality directly on the HUD. You can enable it through the settings, but if you want faster access during a game, a custom telemetry bind or script is a much better solution. The built-in overlay already covers the main real-time network and performance stats, while cl_showfps can be added to the same script for extra FPS, frame time, server-side data, and even .csv logging when needed.
In this guide, I’ll show how to use the main telemetry commands in CS2, how to build a telemetry bind for instant on-demand stats, and how to load everything through a config (.cfg) file, autoexec.cfg file, or Steam launch options.
CS2 Telemetry Commands & net_graph Alternatives
Telemetry in Counter-Strike 2 replaces the old net_graph system and gives you a cleaner way to track your performance. The main console variables (cvars) control what is displayed on your HUD - FPS, ping, packet loss, or even detailed network graphs.
Here are the key commands you can use:
| Command | What it shows | Values |
|---|---|---|
cl_hud_telemetry_frametime_show |
Frame time and FPS | 0 = Off; 1 = Only if performance is poor; 2 = Always show |
cl_hud_telemetry_ping_show |
Latency (ping) | 0 / 1 / 2 |
cl_hud_telemetry_net_misdelivery_show |
Packet loss | 0 / 1 / 2 |
cl_hud_telemetry_net_detailed |
Real-time network jitter graph | 0 / 1 / 2 |
cl_hud_telemetry_net_quality_graph_show |
Combined network quality graph (loss, jitter, ping) | 0 / 1 / 2 |
Setting a command to 1 makes it appear only when there’s a problem like lag spikes, high ping, packet loss). Using 2 forces it to always stay visible.
Alternative FPS Command: cl_showfps
If you want to get extra FPS data, you can use the classic cl_showfps command, which has several modes:
cl_showfps 0-> Offcl_showfps 1-> Simple FPS countercl_showfps 2-> Adds smoothing and frame timing statscl_showfps 3-> Server-side timing informationcl_showfps 4-> Detailed summary with logging to a .csv file (great for benchmarking)
Best CS2 Telemetry Binds and Scripts
Now let’s look at a few ways to build telemetry scripts in Counter-Strike 2. You can bind a key to show performance data only when needed. Some players prefer a press-and-release version, while others use a toggle. Both work well - the choice depends on whether you want telemetry to appear briefly or stay on screen longer.
Press & Release Telemetry Script
This is the simplest and most natural option. You press and hold a key to see your performance and network stats - and everything disappears as soon as you release it. That means your HUD stays clean during fights, but you can always pull up detailed stats on demand.
alias +drow_stat "cl_hud_telemetry_frametime_show 2; cl_hud_telemetry_ping_show 2; cl_hud_telemetry_net_detailed 2; cl_hud_telemetry_net_misdelivery_show 2; cl_hud_telemetry_net_quality_graph_show 2"
alias -drow_stat "cl_hud_telemetry_frametime_show 0; cl_hud_telemetry_ping_show 0; cl_hud_telemetry_net_detailed 0; cl_hud_telemetry_net_misdelivery_show 0; cl_hud_telemetry_net_quality_graph_show 0"
bind "v" "+drow_stat"
Updated: With Scoreboard (TAB)
A better variation is to combine telemetry with the scoreboard. Every time you press TAB to check scores, telemetry also appears. This way you don’t need an extra key, and performance stats become part of your natural routine.
alias +drow_stat "cl_hud_telemetry_frametime_show 2; cl_hud_telemetry_ping_show 2; cl_hud_telemetry_net_detailed 2; cl_hud_telemetry_net_misdelivery_show 2; cl_hud_telemetry_net_quality_graph_show 2; +showscores"
alias -drow_stat "cl_hud_telemetry_frametime_show 0; cl_hud_telemetry_ping_show 0; cl_hud_telemetry_net_detailed 0; cl_hud_telemetry_net_misdelivery_show 0; cl_hud_telemetry_net_quality_graph_show 0; -showscores"
bind "TAB" "+drow_stat"
This makes telemetry feel seamless and ensures you only see it when you're not actively fighting.
Toggle Telemetry Script
If you’d rather enable telemetry for longer periods without holding a key, use a toggle script. Press once to turn it on, and press again to turn it off.
alias "telemetry" "drow_stat_on"
alias drow_stat_on "cl_hud_telemetry_frametime_show 2; cl_hud_telemetry_ping_show 2; cl_hud_telemetry_net_detailed 2; cl_hud_telemetry_net_misdelivery_show 2; cl_hud_telemetry_net_quality_graph_show 2; alias telemetry drow_stat_off"
alias drow_stat_off "cl_hud_telemetry_frametime_show 0; cl_hud_telemetry_ping_show 0; cl_hud_telemetry_net_detailed 0; cl_hud_telemetry_net_misdelivery_show 0; cl_hud_telemetry_net_quality_graph_show 0; alias telemetry drow_stat_on"
bind "v" "telemetry"
It can also be written as a toggle bind:
bind "v" "toggle cl_hud_telemetry_frametime_show 2 0; toggle cl_hud_telemetry_ping_show 2 0; toggle cl_hud_telemetry_net_detailed 2 0; toggle cl_hud_telemetry_net_misdelivery_show 2 0; toggle cl_hud_telemetry_net_quality_graph_show 2 0"
Alias vs. Toggle Binds
The alias version runs silently and always sets the exact values you want. The toggle version spams the console with messages and depends on the current state of each variable, which can sometimes be inconsistent. For stability and clarity, aliases are the better choice here.
Add cl_showfps for Full Diagnostics
You can extend either script to include cl_showfps, which shows smoothed FPS values and frame timing stats. This makes the overlay even more powerful for diagnosing performance drops.
Alias version with cl_showfps:
alias "telemetry" "drow_stat_on"
alias drow_stat_on "cl_hud_telemetry_frametime_show 2; cl_hud_telemetry_ping_show 2; cl_hud_telemetry_net_detailed 2; cl_hud_telemetry_net_misdelivery_show 2; cl_hud_telemetry_net_quality_graph_show 2; cl_showfps 2; alias telemetry drow_stat_off"
alias drow_stat_off "cl_hud_telemetry_frametime_show 0; cl_hud_telemetry_ping_show 0; cl_hud_telemetry_net_detailed 0; cl_hud_telemetry_net_misdelivery_show 0; cl_hud_telemetry_net_quality_graph_show 0; cl_showfps 0; alias telemetry drow_stat_on"
bind "v" "telemetry"
Bind toggle version with cl_showfps:
bind "v" "toggle cl_hud_telemetry_frametime_show 2 0; toggle cl_hud_telemetry_ping_show 2 0; toggle cl_hud_telemetry_net_detailed 2 0; toggle cl_hud_telemetry_net_misdelivery_show 2 0; toggle cl_hud_telemetry_net_quality_graph_show 2 0; toggle cl_showfps 2 0"
How to Create & Load CS2 Telemetry Scripts
You don’t need to re-type commands in the developer console every time you launch the game. The smarter way is to save your scripts into configuration files (.cfg) so they can be executed manually or even loaded automatically at startup. This makes your setup permanent and easy to manage.
CS2 scripts are based purely on Source 2’s native console commands. They don’t rely on external software or third-party tools, which means they are safe to use in game - VAC system will not ban you for alias or toggle commands. The only exception could be certain third-party leagues or private servers that apply their own rules, so always double-check if you play outside of Valve’s official matchmaking.
Here are the main ways to create and load scripts and binds in Counter-Strike 2.
Create the .cfg file
First, locate your CS2 configuration folder:
..\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
Inside that folder, create a new text file. You can name it with letters, numbers, underscores, or dashes (e.g, my123.txt). Then change the file extension from .txt to .cfg (e.g, my123.cfg).
If you don’t see file extensions in Windows, open Control Panel -> File Explorer Options -> View tab, and uncheck "Hide extensions for known file types".
Open it with a text editor like Notepad, paste in your script(s), and save. The file is now ready to be executed inside CS2.
Load via Console (exec)
- Launch Counter-Strike 2.
- Go to Settings -> Game and set Enable Developer Console to Yes.
- Press the
~key (default) to open the console. - Type:
exec my123 - Hit Enter, close the console, and your script will be active.
This method is fine for testing or when you want manual control.
Auto-run via Steam Launch Options
- Open Steam, right-click Counter-Strike 2, and select Properties.
- Under the General tab, find Launch Options.
- Add this:
+exec my123.cfg
Now your script will run automatically at every launch without extra steps.
Auto-run via autoexec.cfg
- In the CS2 \cfg\ folder, create
autoexec.cfgfile. - Add inside:
exec my123.cfgor you commands, binds and/or scripts. - (Optional) Organize scripts in subfolders:
- Place the file in
/cfg/myscripts/folder and run:exec myscripts/my123.cfg
- Place the file in
For more tips on managing configs, check out these guides:
Tips for Using CS2 Telemetry
Telemetry is powerful, but it’s easy to misuse. Here are a few tips to get the most out of it without hurting your gameplay.
Don’t keep telemetry on all the time. Having every graph on-screen looks cool, but it can clutter your HUD and slightly reduce performance. Use scripts or toggles so you only see telemetry when you actually need it - during testing, diagnosing lag spikes, or checking server quality.
Use classic cl_showfps for benchmarking. When you enable cl_showfps 4, the console creates a log file with frame time data in your \csgo\ folder. These CSV logs are useful for comparing how different maps, graphics settings, or driver updates affect your FPS. Think of it as your personal benchmark tool.
Combine network and frame data. Running both cl_showfps and telemetry together lets you see if FPS drops are caused by hardware limits or by network instability. For example: smooth FPS but red spikes in the telemetry graph = network issue. Stutter with stable ping = system bottleneck.
Watch for warning colors. Yellow or red spikes usually mean packet loss or jitter. If you see them often, it’s a sign to check your connection, router, or even your ISP.
Conclusion
Custom telemetry scripts make CS2’s built-in performance tools much easier to use in game. Instead of keeping extra stats on screen all the time, you can call them up only when needed to check FPS, monitor connection quality, test changes, and better understand what is happening in CS2.
A simple bind or alias gives you much more control over how telemetry behaves. You can use a quick press-and-release version, a toggle, or extend the script with cl_showfps for additional performance data and benchmarking.
CS2 Telemetry Scripts FAQ
How can I make telemetry appear only when I press TAB?
Bind telemetry together with the scoreboard using an alias script (show on TAB).
What’s the difference between alias and toggle?
The alias command sets exact values and runs silently; toggle command flips cvars based on current state and spams the console.
Where are my configs saved?
Inside the CS2 configs folder: ..\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
Can I run my old CS:GO net_graph configs in CS2?
No, the net_graph command is deprecated.
What if my telemetry overlay doesn’t show?
Check that the script was executed (exec my123), values are set to 1 or 2, and that no other binds overwrite your key.
Does telemetry affect game performance?
Slightly. Running detailed graphs all the time may reduce FPS. Use scripts to toggle on/off as needed.



