Skip to content

About

Force Overwatch 2 onto one datacenter anywhere (Asia, Americas, Europe, Middle East). Google Cloud + Blizzard IP ranges, IPv4/IPv6 firewall rules scoped to the game, live ping, dark one-click GUI.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overwatch Server Lock

Overwatch Server Lock

Force Overwatch 2 matchmaking onto a single datacenter, anywhere in the world (Asia, Americas, Europe, Middle East) using scoped Windows Firewall rules. One small exe, dark UI with live ping, one click to lock or unlock.


Warning

Beta. This is an early version. Locking can break Battle.net login (Time out communicating with Battle.net services) if your account signs in through a server that sits inside a blocked region. If that happens, see Login broken? below, or open an issue with your account region and what you saw.

Why

Overwatch 2 picks a datacenter from a latency probe before each match. In regions with several nearby datacenters (SEA, East Asia, North America, Europe, Middle East) you can end up on a server that is technically "close" but plays worse for you, and there is no in-game option to choose.

Overwatch Server Lock blocks every datacenter except the one you pick. The probes to the others time out, so matchmaking can only place you on the region you chose.

Regions

Group Regions
Asia / Pacific Singapore, Japan, South Korea, Taiwan, Australia
Americas NA West, NA Central, NA East, Brazil
Europe / Middle East Europe (Netherlands, Finland), Middle East (Bahrain, Qatar, KSA)

Each region is built from Google Cloud region families (NA West = every us-west* region, Europe = every europe-* region, and so on) plus the Blizzard-owned datacenter blocks for that region. The full table is $Regions at the top of src/ow-lock.ps1. Google regions that host no Overwatch servers (India, Canada, Mexico, Africa, ...) are never blocked.

Each tile shows a live ping to a server in that region (green under 80 ms, amber under 160 ms, red above), refreshed every 10 seconds.

How it works

  1. Most Overwatch 2 servers run on Google Cloud. Their addresses come from Google's own published list (cloud.json), grouped by cloud region, so they are exact and current. Blizzard-owned datacenters (Korea, Taiwan, Sydney, Las Vegas, Chicago, Amsterdam) use fixed ranges. Blizzard also relays game traffic through its own per-city edge points (137.221.x.0/24, e.g. a Sydney match runs through Equinix Sydney), so each region includes its edge sites as well. An edge can also relay to a datacenter in another city (a Japan lock once reached a Sydney match through the Tokyo edge), so edges with no region of their own are always blocked. The list is downloaded once and cached; Update IP lists re-downloads it only when Google has published a new version (one request), then re-applies the lock if it is on.
  2. Subtracts the ranges of the region you keep, plus the Battle.net login and patch endpoints (resolved via DNS at lock time) so sign-in keeps working.
  3. Creates inbound and outbound Windows Firewall block rules for IPv4 and IPv6, scoped to Overwatch.exe only. Other apps that happen to use the same Google Cloud regions are not affected.
  4. Registers a scheduled task (OverwatchServerLock-Refresh, runs as SYSTEM every 2 minutes) that re-resolves the Battle.net login hosts. Their IPs rotate; when a new address block shows up, the rules are rebuilt from the cached lists so login keeps working. Previously seen login blocks stay open for 7 days.

No game files are touched, nothing is injected, and no drivers are installed. Unlock removes every rule and the scheduled task.

Tick Unlock automatically when this window closes for a temporary lock. Closing the window unlocks; if the app is killed or the PC restarts instead, the refresh task sees the window is gone and unlocks within 2 minutes. Settings, cached lists and refresh.log live in %ProgramData%\OverwatchServerLock (writable by administrators only, since SYSTEM runs the script from there).

Download and use

  1. Grab OverwatchServerLock.exe from the latest release.
  2. Close Overwatch.
  3. Double-click the exe and accept the UAC prompt (firewall rules need admin). SmartScreen may warn because the exe is unsigned: More info then Run anyway.
  4. Pick a region (the tiles show your ping to each) and click Lock. Use Update IP lists now and then to pull Google's latest ranges.
  5. Start Overwatch and queue. In a match, press Ctrl+Shift+N to see the server IP and confirm.
  6. Click Unlock when you are done. Playing with friends? See Playing in a group.

Rules and the login IP refresh persist across reboots until you unlock.

Playing in a group

Everyone in the group needs to lock to the same region. The lock only blocks servers on your own PC; it cannot choose a server for the whole group. When you queue as a group, Overwatch picks one datacenter from everyone's latency. If a friend's PC can still reach a closer datacenter (for example Sydney), the game may pick it. Your friend gets in, and your connection times out because that datacenter is blocked for you.

When every player in the group locks to the same region, that region is the only one everyone can reach, so the matchmaker has to use it.

If your friends can't run the lock:

  • Custom games: set Data Center Preference in the lobby settings.
  • Otherwise: click Unlock while you play together, and accept their datacenter and your higher ping. Tick Unlock automatically when this window closes next time so the lock comes back for solo queue.

Keeping two regions (-Keep 'Singapore|Australia') works the same as unlocking here. The game is still free to pick the farther datacenter.

Command line

The exe is a thin launcher around two PowerShell scripts in src/. You can use the core script directly:

.\src\ow-lock.ps1 -On                   # lock to Singapore (default)
.\src\ow-lock.ps1 -On -Keep Japan       # lock to another region (regex on region names)
.\src\ow-lock.ps1 -On -Keep 'NA West|NA Central'   # keep several regions
.\src\ow-lock.ps1 -On -OwnerPid $PID    # temporary: unlock once this PowerShell exits
.\src\ow-lock.ps1 -Update               # pull Google's latest ranges, re-apply the lock if on
.\src\ow-lock.ps1 -On -DryRun -Verbose  # preview the ranges, change nothing
.\src\ow-lock.ps1 -On -NoAutoRefresh  # lock without the login IP refresh task
.\src\ow-lock.ps1 -Status
.\src\ow-lock.ps1 -Off                # remove rules and refresh task

Regions: Singapore, Japan, South Korea, Taiwan, Australia, NA West, NA Central, NA East, Brazil, Europe, Middle East. -GamePath overrides auto-detection of Overwatch.exe (Steam and Battle.net installs are found automatically).

Login broken?

Battle.net login servers live inside the same cloud ranges as game servers. The lock keeps the known ones reachable (us/eu/kr.actual.battle.net, version/patch servers), but your region may use another host. These login hosts also rotate IPs. The auto-refresh task follows them, but it runs every 2 minutes, so right after a rotation login can fail briefly: wait a couple of minutes and retry, or click Lock again.

Quick workaround: click Unlock, log in, click Lock again, then queue. Already-open connections are not cut, so you stay signed in.

Permanent fix: keep the login host for your region reachable:

.\src\ow-lock.ps1 -On -AllowHost 'kr.actual.battle.net', 'some.other.host'

-AllowHost hosts are re-resolved by the refresh task too. Or add it to $ServiceHosts at the top of src/ow-lock.ps1 and rebuild the exe. To find which host is failing: unlock, start Overwatch, and while it logs in run

Get-NetTCPConnection -OwningProcess (Get-Process Overwatch).Id | Select RemoteAddress, RemotePort

then check those IPs against the blocked ranges with -DryRun -Verbose. Please open an issue with the host so it can be added for everyone.

Caveats

  • New datacenters. Google's list stays current, but if Blizzard opens a datacenter in a Google region that is not mapped yet, or a new Blizzard-owned block, the $Regions table needs an update. If you land on the wrong region, please open an issue with the server IP (Ctrl+Shift+N).
  • Ping is approximate. It is an ICMP ping to one server in the region; in-game latency can differ a little.
  • Longer queues are possible, since you only match with players on one datacenter.
  • Groups: every player needs to lock to the same region, or the game may pick a datacenter you have blocked and you will fail to connect. See Playing in a group.
  • VPNs: normal full-tunnel VPNs and WireSock-based split tunnels (e.g. TunnlTo) keep the lock working. Some gaming accelerators that proxy traffic through their own process can bypass it.
  • Use at your own risk. This only uses the built-in Windows Firewall and does not modify the game, but it is not endorsed by Blizzard.

Build from source

Requires only Windows (uses the .NET Framework C# compiler that ships with it):

build.cmd

Output: dist\OverwatchServerLock.exe. The icon is generated by assets/make-icon.ps1.

src/ow-lock.ps1     core: region table, fetch Google ranges, compute ranges, manage firewall rules
src/ow-gui.ps1      WinForms dark UI, runs the core on a background runspace
src/launcher.cs     exe that unpacks the scripts to %TEMP% and starts the UI
src/app.manifest    requests admin on launch

Credits

License

MIT. Overwatch and Battle.net are trademarks of Blizzard Entertainment, Inc. This project is not affiliated with or endorsed by Blizzard.

About

Force Overwatch 2 onto one datacenter anywhere (Asia, Americas, Europe, Middle East). Google Cloud + Blizzard IP ranges, IPv4/IPv6 firewall rules scoped to the game, live ping, dark one-click GUI.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages