J3c: a land server stopping tells its players and is started afresh when they rejoin; the extra ports to forward on the Host page, the hosting message, the server log and HOSTING.md

This commit is contained in:
Paul Bailey
2026-11-07 00:08:05 +00:00
parent 86ebe07899
commit f9b138b304
9 changed files with 108 additions and 12 deletions

View File

@@ -113,15 +113,22 @@ To check it works: `tailscale ping <server name>` from the friend's
computer.
### Port forwarding
On your router, forward **UDP 24242** to the server computer's local
address (give that computer a fixed local address first). Friends join
with your public IP address. It needs no extra software, but your home IP
and that port are public, so set a `password`.
On your router, forward **UDP 24242 and 24243** to the server computer's
local address (give that computer a fixed local address first). Friends
join with your public IP address. It needs no extra software, but your
home IP and those ports are public, so set a `password`.
Why two: each land of the journey runs as its own server on the next port
up (24243 is the Cove's, when the server's on 24242). The server players
join (the Valley's) starts it when someone first goes there and stops it
when it's been empty a couple of minutes; everyone still joins on 24242.
Host Game and the server's log both say which ports to forward. With
Tailscale, or on the same Wi-Fi, there's nothing to do.
### A cloud server
Any small Linux server works (it needs little: a couple of GB of memory).
Install Godot, clone the game, use the systemd file, and open UDP 24242 in
the provider's firewall.
Install Godot, clone the game, use the systemd file, and open UDP 24242
and 24243 in the provider's firewall.
## Troubleshooting
- **"Different game version":** the server and the player are on different
@@ -132,6 +139,11 @@ the provider's firewall.
- **"Port 24242 is already in use":** another server is running on this
computer (a dedicated one, or a Host Game that didn't stop). Stop it, or
host on another port.
- **"Lost the connection to the Cove":** that land's server stopped (it
logs to `land-cove.log` beside `server.json`). Join again: the server
starts it afresh and sends you back there.
- **Stuck going on to the Cove from the internet:** UDP 24243 isn't
forwarded (see above).
- **The server says the game's scripts didn't load:** it's a fresh copy
that hasn't been imported, or Godot is older than 4.7. `run_server.sh`
handles both; see `docs/SETUP_ON_NEW_MACHINE.md`.

View File

@@ -56,8 +56,17 @@ player list across lands are J3b). The rest is planned.
asleep)" in chat.
- `tests/test_net_lands.gd` covers it all, Alice in the Cove and Bob in the
Valley.
- Next, J3c: a land server crashing (its players back to the hub), and the
Host page's extra ports.
*As built in J3c:*
- A land server that stops (crashed, or killed) tells its players "Lost the
connection to the Cove. Join the server again to carry on there."; the
hub notices it's gone (even mid-join) and joining again starts it afresh
and sends them back (their characters were saved by its autosave).
- The extra ports: `Lands.extra_ports()` / `ports_text()` ("UDP 24242 and
24243 (the Cove)"), on the Host page, in the "You're hosting" message, in
a hub's start-up log, and in docs/HOSTING.md.
- Tested in `test_net_lands.gd` (the Cove's server killed, Alice rejoins)
and `test_worldlet_pick.gd` (the Host page).
*As built in J1:*
- `scripts/world/tunnel.gd`: the seam (an outcrop on the clifftop strip,