Guide · safety
CS2 Game State Integration (GSI): is it safe? VAC and FACEIT
CS2 Game State Integration (GSI) is a feature Valve builds into the game for external programs. It's where FPS Performance Lab gets kills, deaths and round state. Below is how it works and what the app doesn't do. We don't promise that no anti-cheat will ever react, because nobody except the people who run those systems can promise that.
What CS2 Game State Integration is
Game State Integration is a mechanism described in Valve's developer documentation. The game itself sends match state as JSON, via HTTP POST, to an address written in a config file. It sends updates when something changes: someone dies, a round ends, a player's health changes.
Valve lists example uses: stage lighting and effects at tournaments, peripheral lighting, stream overlays and annotating recordings. Broadcast HUD tools are among the things built on it. The documentation was written for CS:GO; Counter-Strike 2 uses the same mechanism and the same config folder.
What matters is the direction of the data. With GSI, the game sends information to the program. The program doesn't look inside the game and sends nothing back.
The config file and 127.0.0.1
For CS2 to send data, a text file whose name starts with gamestate_integration_ has to be in the game's config folder. FPS Performance Lab adds gamestate_integration_fpsperformancelab.cfg to CS2's cfg folder, usually:
…\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg
The file holds the address the game should send to and a list of data types. The address is 127.0.0.1, your own PC. Nothing goes out to the internet. Open the file in Notepad and check for yourself.
The game reads these files on startup, so restart CS2 after the file is added. If you ever want to turn the integration off, delete the file and restart the game.
What data the app receives
Your own match events: kills, deaths, headshots, damage and round state. The app only uses your events, not those of players you spectate. According to Valve's documentation, data about all players and their positions is only available to observers and GOTV. So in your own match GSI doesn't tell anyone where the enemies are.
What FPS Performance Lab doesn't do
- It doesn't read game memory or inject anything into the game.
- It has no in-game overlay.
- It sends nothing to the game and doesn't aim for you.
- It doesn't upload recordings or data to a server. The one exception is the optional comparison with other players: only with your consent, and only numbers.
The mouse is read through Windows Raw Input, a standard Windows interface. During match recording that happens in the background, but only while recording is on. Video, if you want it, is captured by Windows' own screen capture, the same mechanism Xbox Game Bar uses. Everything stays on your PC. The full description is on How it works.
Why GSI and not reading game memory
Programs that read game memory can see far more: every player's position, the state of every object on the map. That's how many cheats work, and process memory is one of the things anti-cheats watch. FPS Performance Lab doesn't need any of that. To judge your hand it only needs to know when your kill or death happened, whether it was a headshot and what the round looked like. The mouse measurement does the rest.
In practice it goes like this:
- The app adds the cfg file to CS2's config folder.
- You restart CS2 so the game loads the file.
- You start match recording in the app and play normally.
- CS2 sends events to 127.0.0.1 and the app lines them up with your hand movement.
- After the match you get the match summary, numbers and clips. None of it goes into the game.
The cfg file doesn't change your game settings: sensitivity, graphics and binds stay as they are. It only tells the game where to send match state.
VAC: what we can say and what we can't
VAC is Valve's anti-cheat. Only Valve decides what it detects and how. That's why we don't write "100% safe" or "no ban guaranteed", and nobody who isn't Valve should.
What we can do is describe exactly what the app does. It uses the official interface Valve provides for this purpose and documents for developers. It doesn't touch the game process. It's a separate program that receives messages from the game on a local address and measures your mouse. You can judge it on that basis.
FACEIT and tournaments
FACEIT has its own anti-cheat and its own rules. FPS Performance Lab has no FACEIT certification or official approval, and we don't claim it does. The app doesn't touch the game process, but what's allowed on FACEIT is up to FACEIT. Before you record a match there, check their current rules or ask FACEIT support.
Same for tournaments and leagues: the organiser sets the rules. If you're not sure, don't record a tournament match. Premier, deathmatch or casual games are plenty for analysing your hand.
Check it yourself before you trust it
The simplest check is opening the cfg file and seeing 127.0.0.1. The free FPS Performance Lab demo on Steam lets you record one CS2 match of your own and includes a sample match from the developer. Match analysis in 2.0 works in Counter-Strike 2 only. What the data is good for is covered in how to analyze your CS2 matches, and the full feature set is on the CS2 match analysis page.
Sources
- Valve Developer Community: Counter-Strike: Global Offensive Game State Integration (the mechanism, the cfg file and available data)
Questions and answers
Is CS2 Game State Integration a cheat?
No. It's a feature Valve builds into the game for external programs and describes in its developer documentation. The game uses it to send match state to an address you configure.
Will FPS Performance Lab get me VAC banned?
We can't guarantee anything, because VAC is Valve's call. The app doesn't read game memory, inject anything, use an overlay or send anything to the game. Its CS2 data comes from Valve's official interface.
Can I use the app on FACEIT?
FPS Performance Lab has no FACEIT certification. The app doesn't touch the game process, but FACEIT sets the rules. Check their current rules before recording a match there.
Does the gamestate_integration file change my CS2 settings?
No. It only tells the game which address to send match state to. Sensitivity, graphics and binds stay the same.
How do I turn GSI off?
Delete gamestate_integration_fpsperformancelab.cfg from CS2's cfg folder and restart the game.
Does GSI show enemy positions?
Not in your own match. According to Valve's documentation, data about all players and their positions is only available to observers and GOTV.