The fastest way to get players onto a server is not the server browser. It is a link or a command that goes straight to the address: steam://connect/203.0.113.10:27015 opens Steam and joins a Steam game server in one click, connect 203.0.113.10:27015 does the same from a Source game's console, and almost every game has a "join by IP" box for the rest. A password can ride along - steam://connect/203.0.113.10:27015/secret - which is convenient and means anyone with the link has the password. The catches are small but real: some chat apps will not make steam:// links clickable, some games want the query port and some the game port, and a handful of games ignore the link entirely and need their own syntax.
Three ways onto a server#
Players reach a server in one of three ways, and each fails differently.
- The server browser. Depends on registration with a master server, an open query port and the player's filters. When it fails, why a server does not show in the server list has the reasons.
- Direct connect. The player types an address and port. It needs only the game port, and it is the most reliable method there is.
- A link. A
steam://or game-specific URL that launches the game and connects. It is direct connect with less typing, and with a few platform quirks on top.
When the browser is slow or flaky, direct connect and links are how you keep a community playing. They also work for servers that are deliberately not listed.
steam://connect links#
Steam registers itself as the handler for steam:// URLs. The connect form is documented by Valve:
steam://connect/<address>[:<port>][/<password>]The address can be an IP address or a hostname. Some examples:
steam://connect/203.0.113.10:27015steam://connect/203.0.113.10:27015/herring-barrel-42steam://connect/play.example.com:27015When a player clicks one, Steam queries the server, shows a small dialog with the server's name, map and player count, and launches the right game with a connect command. For Source-engine games - CS2, Team Fortress 2, Garry's Mod, Left 4 Dead 2 - it just works, because the game port and query port are the same number.
For games where they differ, behaviour varies. Steam's dialog talks to the query port, while the game needs the game port, and different games resolve that differently. If a link to the game port shows "server not responding" but the game itself joins fine by IP, try the query port in the link instead. Test with your own game before posting a link to two hundred people. Query ports and A2S has the port pairs for the common games.
A password in the link is passed to the game when it connects. Characters with special meaning in URLs - spaces, #, ?, /, % - break the link or get mangled; use a password made of letters, digits and hyphens if you plan to put it in a link.
steam://run with launch arguments
The other useful form launches a game by its app id with arguments, which lets you pass the game's own connect parameters:
steam://run/<app id>//<arguments>/steam://run/730//+connect%20203.0.113.10:27015/Arguments are URL-encoded, so a space becomes %20. This is mostly useful for games that ignore steam://connect but accept a connect parameter on the command line. Remember the app id is the game's client app id, not the dedicated server's - the same mix-up covered in Steam game server tokens.
Where links work, and where they do not#
A steam:// link only works where something hands it to the operating system, which then hands it to Steam.
- Web browsers ask the first time ("Open Steam?") and then open it. Works.
- Steam chat and the Steam overlay handle them natively. Works.
- Discord does not turn
steam://links into clickable links in messages. People can copy and paste them into a browser's address bar, which works but is clumsy. - Many forums and site builders strip unknown URL schemes from links for safety.
Phones are a quieter failure. A player reading Discord on a phone taps a link, nothing useful happens, and they assume the link is broken. Links only help on the machine that will run the game. The same goes for console players: an Xbox or PlayStation has no Steam client to hand a link to, so a crossplay server needs the console's own join method - a code, an in-game list, or a friend invite - written next to the link in plain words.
The common workaround is a normal https:// address that redirects to the Steam link. Anything that can send a redirect will do. With nginx:
location = /join { return 302 steam://connect/203.0.113.10:27015;}Now https://example.com/join is clickable everywhere, opens the browser for a moment, and hands over to Steam. You can change the target later without editing every message that contains the link. Do not put a password in a redirect anyone on the internet can follow, for the same reason you would not post it publicly.
Direct connect, game by game#
Every game has its own way to type an address. These are the common ones.
| Game | How to connect directly | Example |
|---|---|---|
| CS2, TF2, Garry's Mod, L4D2 | Developer console | connect 203.0.113.10:27015 |
| Minecraft Java | Multiplayer, Direct Connection | play.example.com or 203.0.113.10:25570 |
| Valheim | Join Game, Add server | 203.0.113.10:2456 (game port) |
| Rust | F1 console | client.connect 203.0.113.10:28015 |
| FiveM | F8 console, or a link | connect 203.0.113.10:30120 |
| Arma 3 | Launcher parameters | -connect=203.0.113.10 -port=2302 -password=secret |
| Terraria | Multiplayer, Join via IP | Address, then port 7777 |
| 7 Days to Die | Connect to IP | Address and port 26900 |
A few details from that table are worth spelling out.
Source games and passwords. Set the password before connecting: password "herring-barrel-42" then connect 203.0.113.10:27015. If you connect first, the server rejects you and you have to do it again. The developer console must be enabled in the game's settings.
Minecraft has no Steam involvement at all. The client tries an SRV record for the name first, then the name or address on port 25565 unless you add a port. Since 1.20, the launcher also supports Quick Play, which can start the game and join a server straight from a launcher profile with --quickPlayMultiplayer "play.example.com". SRV records for Minecraft explains how to hide a non-default port behind a name.
Valheim joins by IP on the game port, 2456 by default, and asks for the password in a dialog. Crossplay players on Xbox or the Microsoft Store cannot join by IP at all; they use the six-digit join code from the server log.
FiveM has its own links. fivem://connect/203.0.113.10:30120 opens the client and joins, and servers on the Cfx.re list get a short cfx.re/join/ address that works in a browser and avoids exposing the raw IP in the link itself.
Rust joins through the F1 console with client.connect, which is also what most Rust server lists put behind their "connect" buttons. Vanilla Rust has no join password; private servers rely on plugins or on not being listed.
Arma 3 is more involved, because the client usually needs the server's mods loaded before it can join. The command-line parameters in the table work, but most players are better served by the Arma 3 Launcher's direct connect option in its Servers tab, which reads the server's mod list and offers to load matching mods. For a modded milsim server, share a mod preset file alongside the address; Arma 3 server and mods covers keeping the two in step.
Joining through a friend
The Steam friends list has a third route that needs no address at all. When a friend is on a server, right-clicking them can show "Join Game". This works when the game publishes where the player is to Steam - Source-engine games do, as do many others - and it uses the same connect path as a link. It is often the easiest way for a new player to arrive: their friend is already on the server, they click, they are in. It respects passwords, so a password-protected server still asks for one. It is also the reason a "private" server without a password is not very private: anyone on a player's friends list can follow them in.
Passwords: setting and passing them#
A direct connect link is only half the job if the server has a join password. Each game keeps it in a different place on the server side:
| Game | Server-side setting |
|---|---|
| Source games | sv_password "secret" in server.cfg |
| Valheim | -password launch argument (5 characters minimum) |
| Arma 3 | password = "secret"; in server.cfg |
| Terraria | password=secret in serverconfig.txt |
| Factorio | game_password in server-settings.json |
| 7 Days to Die | ServerPassword in serverconfig.xml |
| Project Zomboid | Password= in servertest.ini |
Minecraft has no join password; access is controlled with the whitelist instead, which is a better model anyway because it is per player. Minecraft whitelist and permissions covers it.
A shared password is a weak control. Everybody who ever had it still has it, it travels in screenshots and forwarded messages, and you cannot revoke it for one person. For anything beyond a small group of friends, prefer an allow list or whitelist keyed to player IDs, and treat the password as a filter against random scanners rather than as security. When someone leaves on bad terms, change it and send the new link only to the people who should have it.
Names instead of numbers#
An IP address in a link breaks the day the server moves. A name survives it. Point an A record such as play.example.com at the server's address and use the name in links and messages; steam://connect accepts hostnames, as do almost all games' direct connect boxes. Connecting a domain to a game server shows the record and how to check it.
The port is the part names do not carry. Only a few clients read SRV records - Minecraft Java is the important one - so for most games the link still needs :27015 or whatever the port is. Keep the number in the link; do not expect players to remember it.
On RE:NODE the server's address and allocated ports are on the server page in the panel. The address stays fixed for the life of the server, and a plan change does not rebuild the server or change its address, so a link you share today keeps working after an upgrade.
A join page that stays current#
For a community with more than one server, or players on several platforms, a single place that holds every address beats a scattering of pinned messages. It can be very simple: one page, or one Discord channel, with a block per server containing the name, the address and port, the connect link through your redirect, the password policy ("ask a moderator" rather than the password itself), and which method to use on which platform.
Two improvements make it much more useful. First, show whether each server is up and how full it is. That is a query on a timer - the same A2S request a server browser sends - and it turns "is the server down?" from a question in chat into something people can see. Discord webhooks for server status shows how to post that from a short script. Second, keep the addresses behind names and redirects you control, so moving a server is one change on your side rather than a week of people using the old address.
Server list websites work the same way from the outside: they store your address, query it on a timer, and give players a connect button that is usually a steam://connect link or the game's own equivalent. If a list shows your server offline while players are on it, the list is querying a port that does not answer - usually the game port instead of the query port.
Troubleshooting a link that does nothing#
| Symptom | Likely cause |
|---|---|
| Clicking does nothing at all | The app does not pass steam:// links on; paste it into a browser instead |
| Browser says no app can open the link | Steam is not installed, or the protocol handler was lost - restarting Steam usually restores it |
| Steam dialog says server not responding | The link uses the game port where Steam needs the query port, or the query port is closed |
| Game opens but sits on the main menu | The game does not support steam://connect; use its own connect syntax |
| Joins, then "bad password" | Special characters in the password were mangled in the URL |
| Link worked last month, not now | Server moved or port changed; a name in the link would have survived it |
If the link fails but typing the address in the game works, the server is fine and the problem is purely the link. If both fail, it is a connection problem, and why players cannot connect to your server is the step-by-step version.
FAQ#
Can a steam://connect link include a password?
Yes - steam://connect/address:port/password. Anyone who sees the link has the password, so share it only in private channels, and avoid characters such as #, ? and / in the password itself because they break the URL.
Why can I not click steam:// links in Discord?
Discord does not make steam:// links clickable in messages. Paste the link into a browser, or set up a normal https:// address that redirects to the Steam link and share that instead.
Should I use the game port or the query port in a Steam link?
For Source games they are the same. For other games, Steam's join dialog talks to the query port, so if a link with the game port says the server is not responding, try the query port. Test before sharing.
Can I use a domain name in steam://connect?
Yes. Steam resolves the hostname to an address before connecting. It does not read SRV records, so include the port in the link unless the game uses its default.
Do Minecraft players need a Steam link?
No. Minecraft Java does not use Steam at all. Players add the server under Multiplayer with an address and optional port, or a launcher profile can join automatically with Quick Play.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.