NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
A userscript for the Steam store that restores blocked product pages and adds optional guest search — anonymous search suggestions in the header, plus an opt-in guest /search page, without account cookies.
It refetches app URLs without account cookies (guest view) and injects the real store layout. Guest search suggestions are on by default; the full /search page guest mode is off by default (enable in Region Bypass → Search). For IP-based locks, an optional proxy gateway can be configured from a Steam-styled settings panel in the header.
Compatible with Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat, and other managers that support the // ==UserScript== metadata block.
Install URL:
https://raw.githubusercontent.com/NemoKing1210/steam-region-block-bypass/main/steam-region-block-bypass.user.js
| Manager | Path |
|---|---|
| Tampermonkey | Dashboard → Utilities → Install from URL |
| Violentmonkey | Dashboard → + → Install from URL |
| Greasemonkey | Add-on menu → New User Script → paste the raw URL |
Paste the install URL above.
steam-region-block-bypass.user.js in this repository.The script includes @updateURL and @downloadURL metadata pointing to the raw GitHub file. Supported managers check for updates automatically (Tampermonkey: Dashboard → check interval; Violentmonkey: similar).
To release a new version:
@version in steam-region-block-bypass.user.js and steam-region-block-bypass.meta.js (and package.json).CHANGELOG.md.main (or create a GitHub Release).Managers compare the installed @version with the remote metadata to decide whether to offer an update.
.game_page_background / #tabletGrid), including app CSS/JS so store widgets keep workingGM_xmlhttpRequest with anonymous: true (no login cookies)Steam_Language, ?l=, and Accept-Language so the page matches your Steam UI languagebirthtime / mature-content cookies so guest pages are less likely to stop at the age checkcc) — override Steam store country for the guest request#global_actions, dark Steam-styled settings popupcc / cache); disable in Region Bypass → Search/search page — opt-in: anonymous refetch/inject for store.steampowered.com/search (same stack); enable separately in Region Bypass → Search/search results)| Site | URL pattern | Notes |
|---|---|---|
| Steam Store (apps) | https://store.steampowered.com/app/{id}/… |
Region-error bypass (main use case) |
| Steam Store (search) | Header search + https://store.steampowered.com/search/?term=… |
Guest search suggestions and optional Guest /search page in Region Bypass → Search |
App pages work when Steam shows “This item is currently unavailable in your region”. Guest search suggestions are enabled by default for the header search bar. Guest refetch for the full /search page is off by default (same anonymous guest fetch stack: proxy / cc / cache) — turn it on in Region Bypass → Search. Saved region-blocked app IDs can be highlighted in search results.
Steam app page loads
│
▼
#error_box / Oops matches “unavailable in your region”?
│
├── no ──► idle (settings button still available)
│
└── yes ──► Build target URL (?l= language, optional ?cc=)
│
▼
Cache hit (within TTL)? ── yes ──► use stored guest HTML
│ no
▼
Optional: rewrite URL through proxy gateway
│
▼
GM_xmlhttpRequest(anonymous: true,
Cookie: birthtime…; Steam_Language=…)
│
▼
Parse HTML → extract .game_page_background / #tabletGrid
│
├── still blocked? ──► show error + suggest proxy
│
└── clear Oops shell → inject layout + CSS + Steam JS + banner
(successful HTML saved to cache)
In the Region Bypass panel (Search tab):
/search/results (up to 25 games), enriched with /api/storesearch/ extras when available (fallback: /search/suggest)./search page (off by default) — submitting search or opening /search/?term=… can refetch results as a guest and inject them into the page when this setting is enabled.Uses the same proxy, cc, language, and cache settings as app-page bypass.
Steam often gates the store page by account country. A privileged request without session cookies can return the public store layout for that IP. The script never uses your logged-in session for the bypass request.
The guest request mirrors your Steam store language when possible:
Steam_Language cookie from the current page?l=…, Cookie: Steam_Language=…, and Accept-LanguageUserscript managers cannot attach a system SOCKS/HTTP proxy to GM_xmlhttpRequest. When the lock is IP-based, point the panel at a local/remote HTTP gateway that fetches the Steam URL from another network.
| Mode | Example request |
|---|---|
host:port/https://… |
http://127.0.0.1:8765/https://store.steampowered.com/app/412020/ |
host:port/store.steampowered.com/… |
http://127.0.0.1:8765/store.steampowered.com/app/412020/ |
host:port/?url=… |
http://127.0.0.1:8765/?url=https%3A%2F%2Fstore.steampowered.com%2Fapp%2F412020%2F |
This repository includes an optional Node gateway: proxy-gateway.mjs.
npm install
npm run gateway
# with upstream SOCKS/HTTP:
# UPSTREAM_PROXY=socks5://user:pass@host:1080 npm run gateway
Then in the userscript panel: Host 127.0.0.1, Port 8765, mode host:port/https://…, proxy ON.
steam-region-block-bypass/
├── steam-region-block-bypass.user.js # Installable userscript (canonical distribution file)
├── steam-region-block-bypass.meta.js # Metadata-only companion for faster update checks
├── proxy-gateway.mjs # Optional local HTTP gateway (Node)
├── package.json # Gateway dependencies / npm scripts
├── README.md # Documentation and install instructions
├── CHANGELOG.md # Version history
├── LICENSE # MIT license
├── .gitattributes # GitHub linguist overrides
└── .gitignore # node_modules, env files, logs
| File | Purpose |
|---|---|
steam-region-block-bypass.user.js |
Full script served at @downloadURL / @updateURL |
steam-region-block-bypass.meta.js |
Lightweight metadata mirror; managers may fetch it instead of the full script when checking for updates |
proxy-gateway.mjs |
Optional local relay for IP-based region locks |
Key // ==UserScript== fields used by managers:
| Field | Value |
|---|---|
@namespace |
https://github.com/NemoKing1210/steam-region-block-bypass |
@version |
Semantic version (must be bumped on every release) |
@updateURL / @downloadURL |
Raw GitHub URL of steam-region-block-bypass.user.js |
@homepageURL |
This repository |
@supportURL |
GitHub Issues |
@license |
MIT |
@grant |
GM_xmlhttpRequest, GM_getValue, GM_setValue, GM_addStyle, GM_registerMenuCommand |
@connect |
store.steampowered.com, * (custom proxy gateways) |
Localized @name and @description tags are provided for en, ru, zh-CN, es, pt-BR, de, fr, ja, ko, and pl.
| Grant | Purpose |
|---|---|
GM_xmlhttpRequest |
Fetch the store page without page cookies / CORS limits |
GM_getValue / GM_setValue |
Persist proxy and UI settings |
GM_addStyle |
Inject Steam-styled panel and banner CSS |
GM_registerMenuCommand |
Open settings from the userscript manager menu |
@connect * is required so the script can call a user-configured proxy gateway host.
steam-region-block-bypass.user.js file.Tampermonkey does not track local files natively. Options:
@updateURL / @downloadURL to http://localhost:... during development (do not commit local URLs).Settings are stored in userscript storage (srbb_settings) via the header panel:
| Setting | Default | Description |
|---|---|---|
| Bypass trigger | Auto | Auto runs on region-error pages; Show button waits for a manual offer |
Store country (cc) |
empty | Optional Steam country code for guest requests |
| Cache duration (minutes) | 60 |
Reuse a successful guest page for this long; 0 disables cache. Banner Reload always fetches fresh |
| Use proxy gateway | off | Route the anonymous fetch through a gateway |
| Gateway mode | gateway |
How the target URL is appended to host:port |
| Host / Port | empty | Gateway address (e.g. 127.0.0.1 / 8765) |
| Username / Password | empty | Optional HTTP Basic auth for the gateway |
This project is not affiliated with Valve or Steam. Circumventing geographic restrictions may violate the Steam Subscriber Agreement. Use at your own risk. The script is intended to view store information that Steam already serves to anonymous visitors; it does not purchase or activate products.
MIT — Copyright (c) 2026 NemoKing
Rating: 0