Thursday, August 20, 2020

Appearing offline in Valorant

Anyone who knows me is likely aware that I've been a long time fan of Counter-Strike. Everything from the gun-play, movement mechanics, and teamwork required to play at a high level, in my opinion, make it the clear champion of competitive first person shooters. The game has been largely unchanged for ~20 years for good reason, it works, and even 20 years later the meta/tactics used are still evolving. Needless to say, no matter what game I play, I always come back to Counter-Strike.

Then news of a "Counter-Strike Killer" called Project A surfaced, which was said to combine the best of Counter-Strike with a fresh take on what a competitive FPS game could be. Project A became Valorant, and suddenly everyone seemed to be playing it. Of course being extremely biased towards Counter-Strike, I thought there was no way that I would want to play a copycat of Counter-Strike with hero abilities. After a little convincing from friends, I tried it, and at this point I've likely spent ~100 hours in Valorant. I can confidently say it's the only game that has had my attention. I'm impressed that the devs are very outspoken about their intentions and motivation behind game changes.

That being said, one thing has bugged me a lot more than I thought it would: there is no way to go invisible and just solo queue without interruptions. It seems silly not to allow users to appear offline or go hidden/invisible to users on their friends list. A little searching online for a solution, or at the very least, an answer to when this feature may come to Valorant, brought me to a few threads/articles suggesting a program called Deceive (https://github.com/molenzwiebel/Deceive). While Deceive seems well implemented, I'm not interested in running software to modify my network traffic to trick the game/servers.


The RIOT game developers claim you will not be banned for using Deceive, but I do not trust that not changing in the future. I personally rather block the connection with a simple Windows Firewall Rule, and one day get a connection error than mess with packets that RIOT could potentially flag. The downside to my method is that it breaks chat/friends list completely, while Deceive still allows you to invite friends to your party and send messages. Either way, RIOT could change their policy and/or block people from playing that are not connected to chat or spoofing their online status. I take no responsibility for what you do with this information or the script below, though I think it's a slightly safer method to appear offline than using Deceive.

TL;DR:

Creating a firewall rule to block TCP outgoing traffic on port 5223 is all that is required to disconnect the chat/friends system. This can be done in the Windows Firewall GUI or command prompt and removed when you want to appear online (or better yet, disable the rule).

:: Add the firewall rule
netsh advfirewall firewall add rule name="riotchat" dir=out remoteport=5223 protocol=TCP action=block
:: Remove the firewall rule
netsh advfirewall firewall delete rule name="riotchat"

To make this easier, I decided to make a simple batch script to toggle adding/removing the firewall rule. To use it, create a new text file, paste the contents below in it, and save as riot_invisible.bat and double clicking will run it, prompting to add or remove the firewall rule.

@ECHO OFF
SETLOCAL
TITLE RIOT INVISIBLE - MARTINKUNA.NET
COLOR 0f
:: Utility to toggle appearing offline on friends list
:: for RIOT games (Valorant, LoL) by blocking/unblocking
:: TCP port 5223 used by RIOT games chat/friend system.
:: All product and company names are trademarks™ or registered®
:: trademarks of their respective holders. Use of them does not
:: imply any affiliation with or endorsement by them.
:: posted August 20, 2020
:: Author: Martin Kuna
:: http://www.martinkuna.net
call :clear
CHOICE /M "Enable/Appear offline? "
call :clear
IF %ERRORLEVEL% EQU 1 goto enable
IF %ERRORLEVEL% EQU 2 goto disable
:enable
netsh advfirewall firewall add rule name="riotchat_martinkuna" dir=out remoteport=5223 protocol=TCP action=block
IF %ERRORLEVEL% NEQ 0 (COLOR 0c & ECHO Failed to add firewall rule & PAUSE & EXIT)
call :clear
echo You will now appear offline!
goto end
:disable
netsh advfirewall firewall delete rule name="riotchat_martinkuna"
IF %ERRORLEVEL% NEQ 0 (COLOR 0c & ECHO Failed to remove firewall rule, maybe invisible mode is not enabled? & PAUSE & EXIT)
call :clear
echo You will now appear online!
goto end
:end
COLOR 0a
echo.
ENDLOCAL
TIMEOUT 10
EXIT
:clear
CLS
ECHO = RIOT INVISIBLE - MARTINKUNA.NET =
ECHO.
ECHO This script simply adds or removes a Windows Firewall rule that blocks or unblocks RIOT chat.
ECHO To appear offline on your friends list, the Riot Client must be running first.
ECHO.
EXIT /B

Appearing offline in Valorant

Anyone who knows me is likely aware that I've been a long time fan of Counter-Strike. Everything from the gun-play, movement mechanics, ...