Valheim Field guide

Valheim server missing from the list: check discovery separately

Find why Valheim is missing: Steam or crossplay mode, actual ports, public address and server-list filters.

Valheim server missing from the list: check discovery separately

Try an external player's direct connection before rebuilding a Valheim server that is absent from the browser. If that player reaches the expected world, the game route works; your remaining problem is discovery, visibility or the saved entry. If direct connection also fails, inspect the route rather than waiting indefinitely for a listing.

This guide covers an existing dedicated server in the stable 1.0 release family. Linux examples use valheim.service and the deployment from our setup guide. Sources were checked on October 18, 2026. Substitute your actual service and selected port; a container or panel may launch the process somewhere else.

Identify the backend before choosing a browser#

The official crossplay FAQ describes two backends: Steam without -crossplay, and PlayFab with it. Steam's desktop server browser is not the acceptance test for a PlayFab session. A Steam-only server also cannot provide the cross-platform route required by console players.

Start by recording whether players use Steam or another supported platform, which client build they have, and whether the server uses the stable or test branch. In the client, remove an accidental search filter and check that you are looking at the intended server category. Do not diagnose a differently named favorite as the current public listing.

The backend determines the discovery route. Keep a successful direct join as evidence while investigating a missing listing.

Read the launcher the service actually executes#

bash
sudo systemctl cat valheim
sudo systemctl show valheim -p ExecStart -p MainPID -p User -p ActiveState
sudo journalctl -u valheim --since '20 minutes ago' --no-pager

Open the script named by ExecStart and inspect its final launch line. A downloaded start_headless_server.sh is irrelevant if the unit invokes a separate wrapper. Keep this output private when it contains a password. Record the configured -name, -port, -public, save directory and presence of -crossplay.

The visibility flag is a deliberate choice: -public 0 hides the server; -public 1 requests public discovery. A hidden server that authorized players can join directly is behaving as configured. Change that policy only if you intend to advertise it. A listing is also not an access-control mechanism: retain a strong server password and the intended admission lists.

After an intentional launcher change, arrange a short maintenance window, restart the existing service once and inspect fresh startup output. Do not start a second copy manually. Check for a crash loop, duplicate process or wrong world before troubleshooting a list that cannot register a stable running session.

For Steam, prove the UDP route independently#

With the example base port 2456, the dedicated-server manual specifies that the server uses 2456 and the next port, 2457. The route must agree across the selected listener, provider firewall, host firewall and any router forwarding. Start with read-only observations:

bash
sudo ss -lunp
sudo ufw status verbose

Match sockets to the actual game process; an unrelated UDP socket is not evidence for Valheim. Inspect the provider rules separately because ufw cannot show them. An internet player needs a reachable public address, not the host's 192.168.x.x address. A same-LAN connection proves only the local path.

Have a Steam player outside that LAN use the game's direct address entry with the configured game endpoint. If you separately inspect a Steam server-query favorite, distinguish that query endpoint from the game's join address; changing the base port simply because one browser does not answer can break the working route. A TCP-only port-check website cannot establish UDP gameplay connectivity.

When direct joining succeeds, preserve the endpoint and inspect discovery: public flag, displayed name, filters, stale favorites and startup registration errors. Do not keep opening extra ports to repair a search filter.

For PlayFab, use the current session's discovery#

Use the running server's current join code or in-game public entry. The developer's crossplay FAQ documents this route; local and loopback addresses do not stand in for it. Follow our crossplay diagnostic guide if registration or a mixed-platform join fails.

A Steam support discussion illustrates why these cases become confused: players describe different results after changing backend or browsing a different category. That is a useful symptom pattern, not proof that disabling crossplay fixes every missing listing. Keep the backend your player group actually requires.

If the relay session never registers, inspect fresh logs, DNS and outbound network restrictions. If other external players can join that same session, narrow the comparison to the affected client's version, permissions and network. Reinstalling the world does not repair a client filter or platform rollout.

Finish at the world, then preserve the useful evidence#

ObservationNext decision
Direct external join works; list entry missingCheck visibility, category, search and registration.
Listing appears; join times outCheck the advertised route and backend-specific connection.
Password prompt appears; one player is rejectedCheck password, permitted identities and compatibility.
Process repeatedly exitsResolve startup failure before discovery.

Confirm that an intended player reaches the correct world, then repeat after one controlled restart. Record the timestamp, build, backend, actual launcher, public endpoint or session identifier and first failed stage. Redact secrets before sharing logs. This separates a browser problem from a game route problem without risking the save.