The quick console answer is cl_showfps 1. That brings up an FPS counter; Steam’s overlay is the alternative when you do not want to use a command. To understand a freeze rather than just display a number, turn to CS2 Telemetry. It includes frame time and the connection readings that a plain FPS counter leaves out.
For ordinary play, an FPS number may be enough. Diagnosing a stutter calls for frame times or hardware readings as well.
Every CS2 FPS Counter Method at a Glance
Best when you only need one unobtrusive FPS number.
Separates slow rendering from ping, loss, and jitter problems.
For hardware checks, put FPS beside the supported GPU load, clock, temperature and latency readings.
We would choose Steam or cl_showfps for a quick resolution check. But a good FPS average does not explain a brief freeze. One frame can arrive late enough to interrupt play while hardly shifting that number. Use Telemetry when that is the problem you are trying to track down.
There is no need to make two counters agree before you can use either one. They may simply average different periods. Pick one for the before-and-after readings so the comparison does not depend on that difference.
| Method | Shows | Best for | Console required |
|---|---|---|---|
| Steam Performance Monitor | FPS, with optional detailed performance metrics | A clean counter or broader PC monitoring | No |
| CS2 Telemetry | Frame time, FPS, ping, network quality | Diagnosing stutter and lag | No |
cl_showfps | FPS and engine information, depending on mode | Quick console testing | Yes |
| NVIDIA overlay | FPS plus optional PC metrics | NVIDIA driver monitoring | No |
| AMD overlay | FPS plus optional PC metrics | AMD driver monitoring | No |
Show FPS in CS2 via Steam Overlay
The Performance Monitor is Steam’s own overlay. Its simplest view is an FPS counter; more detailed views add other readings. All of that is configured in Steam, separate from CS2’s developer console.
- In the Steam client, open the top-left Steam menu and choose Settings.
- Select In Game and find the Performance Monitor settings.
- Set a position for the overlay and pick its detail level.
- The FPS-only level keeps the display small. Higher detail levels add the metrics your system supports.
- Launch or restart CS2 and check the selected corner.
Shift+Tab opens the Steam Overlay during play, including its Settings. If that shortcut produces nothing, verify the overlay is enabled both globally in Steam and in CS2’s game properties.
More detailed levels add CPU, GPU or memory readings and graphs where the hardware and OS support them. Steam can therefore cover PC monitoring as well as the basic count. For the game’s connection warnings, go to CS2 Telemetry.
Use Steam when: you want an FPS-only display or a configurable performance overlay. Use CS2 Telemetry for the game’s network diagnostics.
Show FPS via CS2 In-Game Telemetry
Check display mode and V-Sync, followed by anti-aliasing, shadows and background applications.
A high FPS number can still feel poor when individual frames arrive unevenly.
Resolution and graphics changes do not repair a connection problem.
Always is the useful Telemetry mode during an investigation: it shows what happens before the warning, not just when a threshold is crossed. Once the problem is understood, warning-only display leaves less on screen during normal rounds.
- Open CS2 Settings.
- Select Game, then scroll to Telemetry.
- Set Show frame time and FPS to Always.
- Set Show ping to Always if you want FPS and ping together.
- Enable network-problem information when troubleshooting loss or jitter.
| Telemetry item | What the number means | What a spike suggests |
|---|---|---|
| Frame time | The time required to present a frame | A PC, game, driver, or background-workload hitch |
| Average FPS | Frames presented per second | A sustained performance limit |
| Ping | How long the network round trip takes | Distance to the server, or congestion on the way |
| Network problems | Game ticks affected by lost, reordered or unevenly arriving data | The connection needs a delivery-quality check |
A connection warning with a steady frame-time reading is not a reason to lower shadows. Follow the network lead. With the reverse pattern, a frame-time jump and no network warning, the game, driver and work running on the PC become the useful places to investigate.
At 240 FPS with perfectly even delivery, the gap between frames is roughly 4.17 ms. A frame taking 30 ms is a substantial interruption to that rhythm, regardless of a healthy-looking average. Put the warning threshold a little above your usual frame-time range to catch such outliers.
In the basic warning, the unit being counted is an affected game tick. It is not a raw tally of reordered packets. Detailed mode supplies the raw loss and jitter readings. Always keeps them visible for diagnosis; afterward, Poor limits the clutter to reported problems.
Pick a preset or enter a number. The result comes from dividing the 1,000 milliseconds in a second by that FPS value.
The result is a rate conversion. Actual delivery may still be uneven; a small number here is not evidence of stable frame times.
cl_showfps 1Turns on the basic FPS readout.Showcl_showfps 0Turns that readout back off.Hidefps_max 300Limits the game to a maximum of 300 FPS.Capfps_max 0Remove the in-game FPS ceiling.UncapShow FPS via Developer Console With cl_showfps
cl_showfps 1Show the basic in-game FPS countercl_showfps 0Hide the basic FPS counterfps_max 300Set a 300 FPS ceilingfps_max 0Remove the game frame-rate capIn Settings > Game, enable the CS2 developer console. Its assigned key is usually tilde. Once it opens, enter the following:
cl_showfps 1Once enabled, look toward the upper-left for the readout. The off command is cl_showfps 0.
Check spelling first and leave quotation marks off the complete command. If the counter appears initially, then goes away on loading a map, search the config and any practice preset or bind. Something may be setting the value to zero after you enabled it.
cl_showfps Modes 1 to 4
For just the FPS number, keep mode 1. The other values change what is reported rather than improving that basic count.
For a rapidly changing readout, mode 2 provides smoothed FPS. Mode 3 is server milliseconds, and mode 4 adds file logging of FPS. Neither replaces Telemetry when you need frame time and connection warnings side by side.
| Command | Use | Practical guidance |
|---|---|---|
cl_showfps 0 | Hide the counter | Returns the HUD to normal |
cl_showfps 1 | Basic real-time FPS | Best simple console mode |
cl_showfps 2 | Smoothed FPS | Useful when the instant counter changes too quickly |
cl_showfps 3 | Server milliseconds | A diagnostic view, not a clean match counter |
cl_showfps 4 | FPS with file logging | Useful for a recorded test rather than normal play |
Command help: find cl_showfps displays the console entry. Check that description if the output changes after an update; an old CS:GO screenshot may no longer match.
Bind cl_showfps to a Key
This bind turns the counter on with one press and off with the next:
bind “F10” “toggle cl_showfps 0 1”This takes over F10, including any action already bound to it. Pick a different key if you need to keep that action. Our example can be removed with unbind F10, after which you can reassign the key in keyboard settings.
Want the counter on every time you play? Skip the toggle and use an autoexec instead. A short comment beside the command will help you recognize it when editing the file later.
Keep the FPS Counter On Across Sessions
Steam and Telemetry remember your choices. To keep the console counter, add cl_showfps 1 to a CS2 autoexec file named autoexec.cfg.
A Steam launch option is the alternative. Add this line, then remove it whenever you no longer want the counter at startup:
+cl_showfps 1The filename is an easy mistake to miss: autoexec.cfg.txt is a text document, not the required autoexec.cfg. Also look for a second cl_showfps entry that changes the value later. Keep your CS2 launch options short enough that you know what each one does.
Show FPS and Ping Together in CS2
The two displays have separate controls under Settings > Game > Telemetry. Set both frame time/FPS and ping to Always. For lost or unevenly arriving data, enable network-quality information as well; the ping number is not the whole connection report.
Do not use old net graph advice. net_graph 1 is not a valid CS2 client command. Valve deleted its earlier cq_netgraph implementation in February 2024. The name may appear on command-queue statistics, which is a different output from CS:GO’s full net graph.
FPS, frame time, ping and affected ticks sit in Telemetry, with more detail available for loss and jitter. The receive-margin graph is another timing view. Neither its name nor its appearance turns it into the former CS:GO panel.
Ping is the round-trip delay. It can stay level while packets are lost or arrive unevenly, so a steady number does not clear the connection of suspicion. Read network warnings beside frame time to see which changes when the hitch happens.
The receive-margin graph need not stay on during ordinary play. Open it for a timing investigation and close it when that work is finished.
- Frame time jumps: check the PC and game workload.
- Ping spike: investigate the route or server distance.
- Network warning: investigate loss, jitter, or Wi-Fi.
- All values stable: the hitch may need deeper capture.
Show FPS via NVIDIA or AMD Software
A driver overlay is useful when the slowdown develops over time. Put GPU load, clocks and temperature beside FPS to see what changes as performance falls. Supported latency readings can help too; unrelated sensors only make the display harder to follow.
NVIDIA App overlay
- Open the NVIDIA App and enable its overlay.
- Press Alt+Z and open Statistics.
- Choose FPS or a compact performance layout.
- Use Alt+R to toggle the statistics overlay where supported.
AMD Adrenalin overlay
- Open AMD Software: Adrenalin Edition.
- Open Performance, then Metrics.
- Switch on the metrics overlay, with FPS selected.
- Ctrl+Shift+O toggles the overlay on supported configurations.
For a missing overlay, check its enable switch first, then update the driver app and restart CS2. Keep the initial readings before changing NVIDIA settings for CS2, so there is something to compare afterward.
Do not compare an overlay’s menu reading with cl_showfps during a fight. Use the same stretch of play. Even then, different averaging periods can produce slightly different results.
After the investigation, remove the extra sensors from view. A single FPS number is much less intrusive during a round.
How to Cap Your FPS With fps_max
A smaller millisecond figure means more frequent frames. It does not promise an even rhythm.
Baseline display pace
Common high-refresh target
Competitive high-refresh target
Very high refresh reference
fps_max 300 is a ceiling of 300, not a request for the PC to reach that number. A machine producing 180 FPS will not gain another 120 from the command. With fps_max 0, the game’s cap is removed. Compare that uncapped run with a sustainable limit if you want to judge heat and frame delivery.
Keep the map, workload and counter unchanged when comparing a CS2 FPS cap. The highest peak alone does not settle it: monitor refresh rate, delay and unusually slow frames also matter.
A fight that drops to 180 despite a 300 cap exposes the limit of that setup. Investigate the bottleneck or compare a lower ceiling. The peak from an empty map tells you little about whether the machine can sustain the target in that fight.
How to Improve Low FPS in CS2
Turning on a counter does not make the game faster. It gives you a way to judge a change: Fullscreen, V-Sync off, less anti-aliasing or a different shadow setting. Try those separately and check background applications and temperatures too. You need to know which adjustment produced the result.
- Record the average and the slow frames; a peak alone leaves out the hitches.
- Repeat the map, route and comparable player count for each run.
- Keep CPU and GPU temperature readings visible through the session.
- Leave Boost Player Contrast on, with useful dynamic shadows retained.
- Restart CS2 after renderer or driver changes.
For CS2 FPS optimization, save your starting CS2 settings and a set of readings you can reproduce.
A note after each run will save you reconstructing the results later. A larger peak alongside new hitches is a mixed result, not a clear win. Return to the old value for another run before deciding to keep that trade.
Conclusion
Steam or cl_showfps 1 is enough for an FPS number. A hitch needs Telemetry’s frame-time and connection readings. Use a repeatable workload to judge any resulting settings change.
Frequently Asked Questions
What is the command to show FPS in CS2?
Enter cl_showfps 1 after enabling the console in Settings > Game. A zero instead of one hides the counter again. If the console does not open, check which key is assigned to it rather than assuming the command has failed.
How do I show FPS and ping together?
Open Settings > Game > Telemetry and set frame time/FPS and ping to Always. While troubleshooting lag, include network quality. Ping measures delay, whereas the extra information can expose delivery problems that a normal ping number misses.
Is net_graph still the correct CS2 command?
No. net_graph 1 belongs to CS:GO. CS2’s earlier cq_netgraph was removed when Valve introduced Telemetry in 2024. A command-queue display using that name is not the old all-in-one panel. The Telemetry menu is the replacement to use here.
How do I keep the FPS counter on every launch?
You don’t need to do anything extra for Steam or Telemetry; they remember the setting. For the console version, save cl_showfps 1 in autoexec.cfg. The alternative is +cl_showfps 1 in Steam’s launch-options field.
How do I cap FPS in CS2?
The example fps_max 300 imposes a ceiling of 300 FPS. Use your own ceiling in place of 300; fps_max 0 removes the game’s cap. Include a busy fight in the comparison with uncapped play, keeping the situation as repeatable as possible.
What FPS should I aim for?
The useful target is one the PC holds in a fight. Without a synchronized cap, aiming above the monitor’s refresh rate is a reasonable goal. A synchronization setup may instead call for a cap below refresh. In both cases, unusually slow frames deserve more attention than an empty-map peak.
Can I reach more than 300 FPS in CS2?
Yes, but a counter briefly showing 301 does not mean you will hold 300 through a match. The CPU, GPU, settings and what’s happening in the game all matter. Judge the busy rounds as well as the quiet ones.
How do I hide the FPS counter?
It depends which counter you enabled. cl_showfps 0 closes the console one. Steam’s Performance Monitor has its own switch, and Telemetry has separate display choices in CS2. NVIDIA and AMD overlays use their own shortcuts.
