This template runs the Project Reclaimer community dedicated server for Halo 3 from Halo: The Master Chief Collection (MCC), on Windows and Linux. Project Reclaimer is a free, non-commercial community mod and is not affiliated with Microsoft, Xbox Game Studios, Halo Studios, 343 Industries or Bungie. The template downloads the server from the project’s official GitHub releases. It does not include Halo 3. You must supply a set of files from your own copy of MCC, either by letting AMP download them with SteamCMD or by copying them yourself (section 5).
1. Dependencies
- AMP 2.8.0.10 or newer. The template downloads the Halo 3 files as individual Steam depots, which older AMP versions cannot do
- A Steam account that owns Halo: The Master Chief Collection and Halo 3
- Windows or Linux. On Linux the server is a Windows program, so the template runs it under Wine in a container. AMP sets this up and creates the Wine prefix during the first update. No display is needed.
- Halo 3 game files, by one of two routes (section 5):
- Download with AMP: let AMP download them with SteamCMD (about 5.4 GB on disk, or about 9.6 GB with the campaign files)
- Manual: install Halo 3 and MCC - H3: Multiplayer in Steam on a PC and copy a small set of files
- Players need the Project Reclaimer game client, and its version must match the server’s (section 8)
2. Quick start
- Create an instance from the Halo 3 (Project Reclaimer Mod) template.
- In the instance settings, under Updates, enable Download Halo 3 Files.
- Run Update. When the Steam login prompt appears, enter a Steam account that owns MCC. On Windows the first update stops at this prompt, so run Update again after you have entered the account.
- Wait for the update to finish: the console shows
Installing depot 976739 …and thenHalo 3 files installed. Leave Download Halo 3 Files on to keep the files up to date, or turn it off to skip the Steam check on later updates. - Start the instance. When it shows Ready, join with the Project Reclaimer client using the address under Connection Info, or from the in-game Server Browser.
Everything else (map, game type, passwords, playlists) is optional and covered below. If you would rather copy the game files yourself, skip steps 2 to 4 and follow Route B in section 5.
3. Ports
AMP assigns the ports for each instance. Forward the numbers AMP shows for that instance, since a new instance can get different ports from an old one:
- Game and RCON Port: UDP for players, TCP for the remote console. The server browser also asks each server on this port what it is playing, so it must be reachable from the internet if you want the server to appear in the browser.
- Server Browser Port: TCP, queried by the server browser
4. Settings
Settings are grouped as AMP shows them. AMP rewrites dedicated.toml every time the server starts. Change settings in AMP, not in that file.
Server
- Server Name, Welcome Message, Player Limit (1 to 127), Join Password, Hidden Server, Public Address (leave blank to detect the machine’s public address)
- Welcome Message (optional): a chat line every player sees when they join, such as your rules or Discord link.
{name}becomes the player’s name and{server}the server’s name, for exampleWelcome {name} to {server}!. Leave it blank for no message. It is one line and cannot contain quotes. - Server Browser Listing: runs the discovery master that lists the server in the Project Reclaimer server browser
Game
- Map and Game Type (dropdowns, section 6)
- Use Custom Map with Custom Map Name, Custom Game Type, or a Playlist File (section 6). A playlist overrides the map and game type.
- Voice Chat, Text Chat, Player Votes (all on by default)
- Global Voice (everyone), Team Voice (teammates) and Proximity Voice (nearby players), all on by default. They need Voice Chat on, and Project Reclaimer 0.9.15 or newer. To leave only proximity chat, turn off Global Voice and Team Voice. Players choose their own voice keys in the game client.
- Team Changing: Balanced (the default) lets players join only a team with fewer players, Game Type follows each game type’s own option, Off lets nobody change teams
- Friendly Fire (on by default): turn it off and players cannot hurt their teammates, including campaign co-op partners. On follows each game type’s own damage rules. Needs Project Reclaimer 0.9.14 or newer, which every Update installs.
Security
- Block VPNs (on by default): refuses players on VPN, proxy or hosting-provider addresses. Players on your own network and admins are never refused.
- Stats Reporting (off by default): when on, finished games are reported to the Project Reclaimer public stats service, which keeps players’ ranks and service records
- Anti-Cheat (Detect, Enforce or Off), RCON Address (section 7), Admin Player IDs (section 7)
Updates (section 5 for the game files, section 6 for Workshop items)
- Download Halo 3 Files, Include Campaign Files
- Download Workshop Items, Workshop Item IDs
By default the server is listed publicly in the Project Reclaimer server browser. To keep it private, enable Hidden Server or turn off Server Browser Listing, set a Join Password, then restart.
5. Game Files
The server needs Halo 3’s files in the instance’s game\halo3 folder. Choose one route to put them there.
Route A: Download with AMP
- Enable Download Halo 3 Files. Also enable Include Campaign Files if you need them (below).
- Run Update. AMP asks for the Steam login: enter an account that owns Halo: The Master Chief Collection and Halo 3. On Windows the first update stops at this prompt, so run Update again after you have entered the account.
- AMP downloads the Halo 3 depot with SteamCMD and installs it straight into the instance’s
game\halo3folder, so the server finds it without further setup. A short step then copies Halo 3’s own matchmaking map variants and game types to where the server looks for them (content\Mapsandcontent\Game Modes) and removes the folders the server never uses (fmod,wavesand thehopper_*folders). The console showsDownloading depot 976739 (809 files, 7090 MB)and then stays quiet until the download ends, because AMP does not print download progress for this step. It finishes withInstalling depot 976739 …andHalo 3 files installed.
Good to know
- Steam Guard. An account without Steam Guard works. For an account with the Steam Guard mobile authenticator, the console shows
This account is protected by a Steam Guard mobile authenticator. Please confirm the login in the Steam Mobile app on your phone.and AMP shows Steam Guard needed!. Approve the sign-in request in the Steam Mobile app within about a minute. If it is not approved in time, or Steam refuses the sign-in (for example from a new location), the login times out withERROR (Timeout)and the download then fails with the samemissing app info (Missing configuration)message as an account without MCC. (Workshop items use their own login: see the Workshop section in section 6.) - Later updates do not download the files again. AMP records the version (manifest) of each downloaded depot, and when nothing has changed the update logs
All Steam depots are already up to dateand skips the download in about a second. Removing the unused folders does not trigger a new download. Leave Download Halo 3 Files on to keep the files up to date, or turn it off to skip the Steam check on later updates. If Steam changes the depot after an MCC patch, the next update with it on should fetch the new version. (MCC was last updated on 17 September 2025, so this has not been seen with a real patch yet.) - Sizes: each depot is a download of about 7 GB (multiplayer 7,090 MB, campaign 7,104 MB). Once installed and trimmed, the multiplayer files take about 5.4 GB. Include Campaign Files adds a second depot that merges into the same folder and takes the total to about 9.6 GB. The campaign files are only needed for saved Forge maps that place campaign vehicles and AI, and for the Flood Infection and UNSC vs Covenant game types. Without them the console also shows two harmless red lines about
campaign.mapand the helmet catalog. - Free disk space: a first multiplayer install peaks at about 9 GB, because the depot is moved into place and then trimmed. Turning on the campaign files needs about 14 GB free at its peak (the 5.4 GB already installed plus about 8.4 GB for the campaign download). If the download fails with
Failed updating depot … (Disk write failure), the disk is full: free space and run Update again. Files you delete in the AMP File Manager go to a.trashfolder and still use space until you empty the trash. - Speed: test servers downloaded one depot in about 3 to 4 minutes, and both depots together in about 7 minutes. A slower connection takes longer.
- If you delete the game folder by hand, also delete the leftovers, or AMP may report “up to date” without installing anything: the
app_976730folder understeamapps\content(on Linux it is underlinux32\steamapps\content) and thedepotmanifest_976730_*.txtfiles ingame\steamapps. Then run Update again.
Route B: Copy the files yourself
Copy these files from your MCC folder (Steam > Manage > Browse local files; the halo3 folder must contain halo3.dll and a maps folder, and if halo3 is empty the content is not installed) into the instance’s game folder with the same structure:
| From your MCC folder | Into the instance |
|---|---|
halo3\halo3.dll |
game\halo3\halo3.dll |
halo3\maps\shared.map |
game\halo3\maps\shared.map |
halo3\maps\<map>.map for each map you host |
game\halo3\maps\<map>.map |
halo3\maps\info\<map>.mapinfo for the same maps |
game\halo3\maps\info\<map>.mapinfo |
- Recommended:
halo3\maps\campaign.mapandhalo3\maps\040_voi.map. Without them, saved Forge maps that place campaign vehicles and AI cannot load. - Optional:
halo3\map_variants\andhalo3\game_variants\for Halo 3’s own variants. Audio files are not needed. - For the game’s own matchmaking maps and game types (the ones marked MATCHMAKING in the client, such as
default_the_pit_012.mvarand2v2_team_slayer_010.bin): copy everything inhalo3\hopper_map_variants\into the instance’scontent\Mapsfolder, and everything inhalo3\hopper_game_variants\intocontent\Game Modes. Together they are only about 6 MB. Route A does this for you. - Start the instance once first. It stops with a “game folder is missing files” error, and that start creates the
gamefolder. - Upload with the AMP File Manager so the instance’s file permissions stay intact.
On a PC with MCC installed, the server can build the folder itself. Adjust the path, run it, then upload the resulting game folder:
project-reclaimer-dedicated.exe dedicated init --from "C:\Program Files (x86)\Steam\steamapps\common\Halo The Master Chief Collection" --maps "Guardian,Valhalla"
--maps copies only the maps you name (by name or file name). Omit it to copy every map.
Sizes: shared.map is about 0.9 GB and is always needed. One map plus the recommended campaign files is about 1.5 GB. Each additional map adds roughly 110 to 375 MB. All 27 maps together are about 5.9 GB. Do not upload the whole halo3 folder from Steam (about 15 GB). Most of it is audio and campaign content the server does not use.
6. Maps, Game Types and Playlists
Maps
The Map dropdown lists every Halo 3 multiplayer map. A map only works if its files are in the game folder. Route A installs every multiplayer map. If you pick a map you did not copy (Route B), the server refuses to start and the console says the map was not found.
| Map | File name |
|---|---|
| Assembly | descent |
| Avalanche | sidewinder |
| Blackout | lockout |
| Citadel | fortress |
| Cold Storage | chillout |
| Construct | construct |
| Edge | s3d_edge |
| Epitaph | salvation |
| Foundry | warehouse |
| Ghost Town | ghosttown |
| Guardian | guardian |
| Heretic | midship |
| High Ground | deadlock |
| Icebox | s3d_turf |
| Isolation | isolation |
| Last Resort | zanzibar |
| Longshore | docks |
| Narrows | chill |
| Orbital | spacecamp |
| Rat’s Nest | armory |
| Sandbox | sandbox |
| Sandtrap | shrine |
| Snowbound | snowbound |
| Standoff | bunkerworld |
| The Pit | cyberdyne |
| Valhalla | riverworld |
| Waterfall | s3d_waterfall |
For each map you copy yourself, copy halo3\maps\<file name>.map and halo3\maps\info\<file name>.mapinfo. For example, Valhalla is riverworld.map and riverworld.mapinfo.
Game types
The Game Type dropdown lists Slayer, Capture the Flag, Oddball, King of the Hill, Assault, Infection, Territories, Juggernaut, VIP, Escalation Slayer and Forge, plus the six modes the game bundles: Gun Game, Growth, One in the Chamber, Zone Control, Flood Infection and UNSC vs Covenant. Flood Infection and UNSC vs Covenant also need the Halo 3 campaign files (Include Campaign Files, section 5). The bundled modes appear under Slayer in the game client. For what each one does, how it is won and what it needs, see the project’s Game modes and scripting guide: Game modes and scripting: Project Reclaimer
Custom game types. Put your own mode file (a .json or .bin game variant, see Game modes and scripting: Project Reclaimer) in the instance’s content\Game Modes folder, using the AMP File Manager (the full path is halo3-project-reclaimer/content/Game Modes inside the instance; the template creates the folder on every start). Then enter its name or file in Custom Game Type, for example Momentum or Game Modes/momentum.json. It replaces the Game Type dropdown and plays on the selected Map. The Documents\My Games\Project Reclaimer folder you may know from the game client is a different folder and is not used by the server.
Custom maps and Steam Workshop maps
Use Custom Map plays the map named in Custom Map Name instead of the Map dropdown. Enter the map’s file name without .map, for example hugeass_remastered_mcc. The map must be installed: a Workshop item (below), a mod map folder in the instance’s content\Mods, or a saved Forge map in content\Maps. If the toggle is on but the name is empty, the Map dropdown is used. A Playlist File overrides both.
Workshop maps. Enable Download Workshop Items and list the item IDs in Workshop Item IDs, separated by commas. The ID is the number after id= in the item’s Workshop address. Run Update: AMP downloads each item with SteamCMD and installs it in content\Mods. The Steam account at the login prompt must own Halo: The Master Chief Collection and the Halo 3 DLC. If it has Steam Guard, enter the code from the Steam Mobile app at the prompt, not an approval on your phone.
- The console prints each item’s map names when it is installed, for example
Workshop item 2984061723 installed. Maps: hugeass_remastered_mcc. Put that name in Custom Map Name, or in a playlist. - Items already installed are skipped. To download an item again, delete its folder from
content\Modsand run Update. Turn Download Workshop Items off afterwards to skip the Steam login on later updates. - Enter the plain map file name in Custom Map Name. A
workshop:<item ID>/<map>reference makes the server try to download the item itself, which needs extra SteamCMD setup in the project’s own[workshop]settings. - Workshop items can be large (a big team map can be about 2 GB). Players download the mod through Steam, or from your server if you enable sharing in the project’s settings.
Playlists, score limit and time limit
A playlist is a rotation of games that players vote on: before each game the lobby offers three games drawn at random, with a countdown. Use one to rotate maps and modes, to use saved Forge maps, or to set a score or time limit. Upload the playlist file to the instance’s playlists folder and enter just its name in Playlist File, for example playlist1. The playlists/ folder and the .playlist.json ending are added for you (typing the full playlists/playlist1.playlist.json also works).
Playlists made in the client with the game’s matchmaking maps and game types (for example default_the_pit_012.mvar with 2v2_team_slayer_010.bin) need those variant files on the server. Route A installs them for you. If you copied the game files yourself (Route B), copy the hopper_* variant folders as described there, or the server will say the map or game type was not found.
Score limit and time limit. The server has no plain settings for these. They are set per game inside a playlist, which needs at least three games. The same map and game type can be repeated, but each repeat must differ in its rules or options (a different name alone counts as a duplicate). Two values are useful:
rules>score_to_win: the score that ends the game (kills in Slayer). The other scoring values arekill_points,death_points,suicide_pointsandbetrayal_points.options>rounds.minutes: the time limit in minutes (0 means no limit).
The easiest way is the game client’s playlist editor: in Host Game, choose the Playlist row, then New playlist. Add games, select one and choose Open in lobby to change its rules, then Save to playlist. Upload the saved file to the playlists folder.
To write one by hand, start from this sample (save it as playlist1.playlist.json and type playlist1 in Playlist File). It has the three games a playlist needs, each on a different map:
{
"version": 2,
"name": "Sample Playlist",
"games": [
{
"map": "The Pit",
"game": "Slayer",
"name": "Slayer on The Pit",
"rules": { "score_to_win": 25 },
"options": { "rounds.minutes": 10 }
},
{
"map": "Valhalla",
"game": "Capture the Flag",
"name": "CTF on Valhalla",
"options": { "rounds.minutes": 15 }
},
{
"map": "Guardian",
"game": "Slayer",
"name": "Slayer on Guardian",
"rules": { "score_to_win": 50 },
"options": { "rounds.minutes": 12 }
}
]
}
How to read it
| Field | Meaning |
|---|---|
version |
Always 2. |
name (top) |
The playlist’s name. |
games |
The list of games players vote between. At least three. |
map |
A stock map name, or a custom map’s file name without .map. |
game |
A game type name, for example Slayer or Capture the Flag. |
name (per game) |
What players see in the vote. |
rules (optional) |
Scoring: score_to_win ends the game at that score. |
options (optional) |
Game options. rounds.minutes is the time limit in minutes (0 = none). |
More settings per game. This second sample shows more of what a game entry can set. Both samples pass project-reclaimer dedicated check on 0.9.18.
{
"version": 2,
"name": "Advanced Sample",
"games": [
{
"map": "The Pit",
"game": "Slayer",
"name": "Team Slayer, 50 kills, 10 min",
"rules": { "score_to_win": 50, "kill_points": 1, "death_points": 0, "suicide_points": -1, "betrayal_points": -1 },
"options": { "rounds.minutes": 10, "rounds.teams": 1 }
},
{
"map": "Foundry",
"game": "Slayer",
"name": "Free-for-all Slayer, 25 kills, 8 min",
"rules": { "score_to_win": 25 },
"options": { "rounds.minutes": 8, "rounds.teams": 0 }
},
{
"map": "Valhalla",
"game": "Capture the Flag",
"name": "CTF, 3 rounds, early finish",
"options": { "rounds.minutes": 15, "rounds.limit": 3, "rounds.early_victory": 1 }
}
]
}
| Setting | Where | Meaning |
|---|---|---|
score_to_win |
rules |
Score that ends the game. |
kill_points, death_points, suicide_points, betrayal_points |
rules |
Points added (or taken away, with a negative number) for each event. |
rounds.minutes |
options |
Time limit in minutes (0 = none). |
rounds.limit |
options |
Number of rounds. |
rounds.early_victory |
options |
Number of round wins that end the game early (0 = off, up to 5). |
rounds.teams |
options |
0 = free-for-all, 1 = teams. |
Some game types have their own options (for example King of the Hill’s hill timers); an unknown name is rejected by the check with “Unknown game option”, so a typo cannot slip through.
Every setting in one file. A complete reference of every field a playlist accepts (the playlist, game, rules and world fields, plus all 41 options with their allowed values, and a sample that uses them all) is in the second post of this topic, “Playlist reference”, below.
Games with no rules or options use the game type’s own defaults. The map and game type names must match what the server knows: the game client’s playlist editor shows them, and on Project Reclaimer 0.9.15 and newer dedicated content lists them. Run project-reclaimer dedicated check after editing: it says what is wrong with the file, or prints “3 games on 3 maps” when it is fine.
Changing a playlist while the server runs (Project Reclaimer 0.9.18 and newer). Save the file and, within a couple of seconds, the server checks it and starts using it from the next vote; a vote that is already open and the game it picks keep the old playlist. No restart is needed. If the edit has a mistake (for example an unknown option name), the server refuses it, keeps the old playlist and prints the reason, so a typo cannot break a running server. On 0.9.17 and older, restart the server after changing a playlist. AMP does not touch a playlist you uploaded, so uploading a changed file with AMP’s File Manager is enough; AMP’s console shows Configuration reloaded. and what changed. (Tested on Windows and on Linux under Wine.)
If games always end on the timer, the score limit is too high for the number of players: lower it, or shorten the time limit.
7. Admins, Console and Moderation
- Add admin player IDs (64 hexadecimal characters each, comma-separated) in Admin Player IDs. Players find their ID in the game client under Settings > Connectivity.
- AMP uses the server’s remote console (RCON) for its console and status. It listens on the game port number over TCP.
- RCON Address controls who can connect. 127.0.0.1 (the default) accepts tools on the host machine only. 0.0.0.0 accepts them from every network. RCON is not encrypted, so if you choose 0.0.0.0, allow only your own tools through the firewall. AMP generates the RCON password itself and keeps it across restarts. To use an outside RCON tool (such as the project’s
reclaimer-rconapp), opendedicated.tomlin AMP’s File Manager: the password is thepasswordline under[rcon]. AMP writes that file at every start, so read it there rather than changing it. - The status page shows the connected players (Active Users), and the user list shows their names. The server prints a join line and a leave line with the player’s name, and AMP matches them by name. If two players use the same name, AMP can mix up which one left, so the count stays right but the list may show the wrong one.
- Moderation. The player list has Kick, Mute, Unmute and Ban actions, but on the AMP builds tested so far (2.8.0.8) AMP did not pass the selected player to them, so they sent an incomplete command and did nothing. If that is still the case on your AMP version, type the server’s commands in AMP’s Console tab instead, for example
kick PlayerName,mute PlayerNameorplayers(a name with spaces goes in quotes, andhelplists every command). Admins listed in Admin Player IDs can also kick, ban and mute from inside the game. - Admins and kicks without a restart (Project Reclaimer 0.9.16 and newer). In the Console tab,
admin add <player | player ID>makes a player an admin on every server sharing the ban list straight away. They can kick and ban from the game and cannot be vote-kicked.admin remove <player | player ID | name>takes it back, andadminlists every admin. Admins in Admin Player IDs stay as they are and still change there, with a restart.pardon <name | player ID | IP>lets a kicked player rejoin now instead of waiting out the kick, and their next kick starts at 10 minutes again. Bans still needunban. (Tested on 0.9.21 over the server’s remote console, which is what AMP’s Console tab uses.) - Be careful with
kickandban. A kick blocks the player’s ID, IP and device for 10 minutes (longer on repeat kicks;pardonlifts it early on 0.9.16 and newer). A ban is permanent and applies to every server sharing the ban list. If you kick or ban yourself by accident, a ban can be removed frombans.jsonin the instance’shalo3-project-reclaimerfolder. - On Linux the CPU and memory tiles show only the Wine supervisor process, not the server itself, so they read close to zero while the server is busy.
8. Updating
Updating the instance in AMP downloads the latest Project Reclaimer server release, so the server can move ahead of your players’ clients. Client and server versions must match. A player whose game is older than the server is refused with a message that the server is newer than their game, and they must update their Project Reclaimer client. If a server stops appearing for players after an update, check their client version first.
With Download Halo 3 Files off, an update does not touch your Halo 3 files. With it on, the update skips the download if the files are already up to date (section 5). If Steam updates MCC and the mod needs newer game files, run an update with it on, or repeat Route B.
9. Stopping
AMP stops the server with its normal graceful stop (Ctrl+C equivalent), and the server shuts down in a few seconds on both Windows and Linux. Use Stop rather than Kill whenever you can.
10. Troubleshooting
Game files
- “The game folder … is missing files copied from your own MCC installation”: section 5 is incomplete. The message lists exactly which files are missing.
- “Map ‘…’ was not found”: you selected a map whose
.mapand.mapinfofiles are not in the game folder (section 6). Copy them, or pick a map you did copy. halo3.dllis not in your MCC folder: Halo 3 is not installed in Steam yet (section 5, Route B).
Downloads (Route A and Workshop)
- The update stops right after the server download lines, at “Halo 3 Download”: AMP needs the Steam login. Enter the account in the login prompt and run Update again (on Windows this happens on the first update).
- The Download step fails with a SteamCMD error right after
download_depot: the Steam account at the login prompt probably does not own MCC and Halo 3. SteamCMD then reportsDepot download failed : missing app info (Missing configuration)(that is the message for a login without MCC; a logged-in account without MCC may word the reason differently). The same message also follows a Steam Guard sign-in that was not approved in time (ERROR (Timeout)just before it). Log in with an account that owns MCC, approve the Steam Guard request if there is one, and run Update again. - Workshop: “No cached Steam login was found”: run the update again and enter the Steam Guard code from the Steam Mobile app at the login prompt, not an approval on your phone.
- “Workshop item … did not download”: the account does not own MCC and the Halo 3 DLC, or the item ID is wrong.
Failed updating depot … (Disk write failure)or “No space left on device”: the disk filled up. Free space (section 5) and run Update again. Files deleted in the AMP File Manager sit in the.trashfolder until you empty it, so empty the trash too.- The update says “All Steam depots are already up to date” but
game\halo3is empty or missing files: AMP remembered an earlier download, for example because the files were deleted by hand. Delete theapp_976730folder understeamapps\content(on Linux underlinux32\steamapps\content) and thedepotmanifest_976730_*.txtfiles ingame\steamapps, then run Update again. - The update runs the server download lines twice: expected. It restarts once after you choose the Steam account.
Playlists and maps
- A playlist is “not found” or the server cannot find the file: enter its name as saved in the
playlistsfolder, for exampleplaylist1. - “Game N duplicates another map/game combination”: two playlist entries have the same map, game type and rules. Give each repeat its own rules or options (section 6).
- “Map ‘…mvar’ was not found” or “Game type ‘…bin’ was not found”: the playlist uses one of the game’s matchmaking variants and the server does not have it. Run Update with Download Halo 3 Files on (Route A), which copies them into
content\Mapsandcontent\Game Modes, or copy thehopper_*folders yourself (Route B, section 5). - “Unknown game option for …”: a playlist option name is wrong. Build the entry in the game client’s playlist editor to get the exact names.
Players
- The server runs but nobody can join: check the forwarded ports (section 3), then the client version (section 8).
- The server is not in the browser: players can still join it with Direct Connect (enter
address:port, shown under Connection Info). Common causes: the client is older than the server (update it), the game port is not reachable (the browser asks each server on its UDP game port), or the public master servers have not listed the server yet. You can check what a master lists withhttp://<master address>:49175/v3/discovery(your own server’s master is athttp://<your address>:49175/v3/discovery). On the same network as the server, the browser may not reach it through your public address. - Players are refused: Block VPNs refuses VPN and hosting-provider addresses by default, and a client older than the server is refused (section 8).
- Active Users stays at 0 after someone joins: the console’s join line must contain the player’s name and ID. Check the console for a line like
Name connected from <address> (player ID …).