Skip to content

FN-FAL113/server-picker-x

Repository files navigation

Server Picker X

Lightweight server picker for CS2 and Deadlock with cross-platform support for Windows and Linux. A rewrite of my CS2 Server Picker into a modern MVVM pattern and service-based application. Designed to control connections by blocking or unblocking servers according to their location.

⬇️ Download

📷 Screenshot

ServerPickerX

Windows Short Demo

Windows Short Demo Video

Linux (Arch) Short Demo

Linux Arch Short Demo Video

❔ FAQ

1. How it works, will I get banned?!

  • The app does not modify any game or system files, I can assure you are safe from being banned when using the app as long as you do not download from untrusted sources. It will add necessary firewall policies to block game server relay ip addresses from being accessed by your network thus skipping them in-game when finding a match.

2. Not being routed to lowest ping server or not working on your location?

  • Due to the fact that we can only access and block IP relay addresses from valve's network points around the world rather than the game's actual server IP addresses directly, which are not exposed publicly, either your connection got relayed to the nearest available server due to how Steam Datagram relay works or your location might be a factor.
  • Re-routing can also happen anytime, even mid-game. One of the best ways to test it out is to block low-ping servers and leave out high-ping servers that are far from your current region. If your ping is high in-game, then you are being routed properly, and the blocked IP relays are not able to re-route you to a nearby server. I was able to test this out properly way back.
  • Some solutions that might help out but are not guaranteed: turning off any vpn, uninstalling third-party antivirus.
  • ISP-related issues, such as bad routing or high ping, are out of scope and control since the app only adds firewall entries. Please contact your ISP instead.

3. Why it requires admin/sudo permission on execution?

  • This is due to how Windows or Linux requires elevated execution when adding the necessary firewall policies. If the app is running in normal mode, it will not be able to do its operations and will throw errors.

4. Windows smartscreen detected unrecognized app/publisher

  • The app requires a registered publisher which costs a lot of money. Rest assured the app is safe and you can compile it yourself. Again, do not download from untrusted sources.

image

5. I'm receiving frequent timeouts when a match is being confirmed

  • You may have blocked too many servers, for optimal searching and relaying block only the necessary server relays.

🐛 Troubleshooting

Problem Cause Fix
Firewall rules not applied or app won't open App not run as admin or not in sudo env - For windows: Run the app in administrator mode
- For Linux: Add execute permission for the bash script chmod +x RunServerPickerX.sh and execute the app ./RunServerPickerX.sh,
No servers appear Internet blocked / API unreachable Check your network and try again.
Ping shows ❌ for all Server IPs are blocked or unreachable Ensure you’re connected to the internet and that no other firewall is interfering.

If you encounter a bug, open an issue on GitHub and include:

  • Operating System
  • Steps to reproduce
  • Any info/error logs (the app writes them to server_picker_x_log.txt)

⚠️ The first time you run the app it will create a settings.json file in the current directory. Do not edit this file manually; use the Settings UI instead.

🛠️ Building from Source

Clone the repo

git clone https://github.com/FN-FAL113/server-picker-x.git
cd server-picker-x

Restore NuGet packages

dotnet restore ServerPickerX.slnx

Build (debug)

dotnet build ServerPickerX.slnx -c Debug

Executable output: in ServerPickerX/bin/Debug/net10.0/<runtime>/publish/

Build (release)

dotnet publish ServerPickerX.slnx -c Release -r win-x64 # or linux-x64.

Executable output: ServerPickerX/bin/Release/net10.0/<runtime>/publish/

Run in debug mode

dotnet run --project ServerPickerX/ServerPickerX.csproj

🤝 Contributing

Feel free to fork the repo, create a feature branch, and submit a pull request.
All contributions are welcome – just keep in mind the GPL v3 license.

🔽 Disclaimer

  • This project or its author are not affiliated, associated, authorized, endorsed by valve, its affiliates or subsidiaries. Images, names and other form of trademark are registered to their respective owners.
  • You are free to compile the project on Visual Studio, the zip/tar file provided here is a clean compilation of the binaries.

💖 Support the Project/Dev

  • I develop stuff for free with dedication and hard work. Sharing this project with fellow gamers or giving it a star is a huge sign of appreciation!
Donate via Paypal

About

A cross-platform and portable server picker for CS2, Deadlock and Marathon (Windows, Linux)

Resources

License

Stars

Watchers

Forks

Contributors