|
| 1 | +--- |
| 2 | +title: Overview |
| 3 | +--- |
| 4 | + |
| 5 | +# What is WaterdogPE? |
| 6 | + |
| 7 | +**WaterdogPE** (often shortened to **WDPE**) is a *proxy* for Minecraft: Bedrock |
| 8 | +Edition. A proxy sits between your players and your actual game servers and acts |
| 9 | +as a single front door to your whole network. |
| 10 | + |
| 11 | +Without a proxy, every game server is its own island: a player has to disconnect |
| 12 | +from one and manually connect to another to switch. With WaterdogPE, players |
| 13 | +connect **once** — to the proxy — and can be moved between servers seamlessly, |
| 14 | +without ever leaving the game. This is how networks build a lobby, minigames, |
| 15 | +survival worlds and more that all feel like "one server". |
| 16 | + |
| 17 | +## How everything connects |
| 18 | + |
| 19 | +``` |
| 20 | + ┌──────────┐ ┌──────────┐ ┌──────────┐ |
| 21 | + │ Player A │ │ Player B │ │ Player C │ Minecraft: Bedrock clients |
| 22 | + └────┬─────┘ └────┬─────┘ └────┬─────┘ |
| 23 | + │ │ │ |
| 24 | + │ Bedrock protocol over RakNet (UDP) |
| 25 | + └───────────────┼───────────────┘ |
| 26 | + ▼ |
| 27 | + ╔═══════════════════════╗ |
| 28 | + ║ WaterdogPE ║ the proxy — the only address |
| 29 | + ║ (proxy) ║ players ever connect to |
| 30 | + ╚═══════════╤═══════════╝ |
| 31 | + │ |
| 32 | + │ Bedrock protocol (proxy ⇄ downstream server) |
| 33 | + ┌─────────────────┼──────────────────┐ |
| 34 | + ▼ ▼ ▼ |
| 35 | + ┌────────────┐ ┌────────────┐ ┌────────────┐ |
| 36 | + │ Lobby │ │ SkyWars │ │ Survival │ "downstream" servers |
| 37 | + │(PocketMine)│ │ (Nukkit) │ │(PocketMine)│ (run in offline mode) |
| 38 | + └────────────┘ └────────────┘ └────────────┘ |
| 39 | +``` |
| 40 | + |
| 41 | +- **Players** only ever connect to the **proxy**. They use one address and one |
| 42 | + port, no matter how many servers are behind it. |
| 43 | +- The **proxy** keeps a live connection to each **downstream server** (your game |
| 44 | + servers). It forwards packets in both directions, and can read or modify them |
| 45 | + along the way — which is what makes features like commands and transfers |
| 46 | + possible. |
| 47 | +- To switch a player's server, the proxy opens a connection to the new |
| 48 | + downstream server and hands the player over. The player stays connected to the |
| 49 | + proxy the whole time, so the switch is seamless. |
| 50 | + |
| 51 | +## Upstream vs downstream |
| 52 | + |
| 53 | +You will see these two words throughout the docs: |
| 54 | + |
| 55 | +| Term | Means | Example | |
| 56 | +| --- | --- | --- | |
| 57 | +| **Upstream** | The connection between a **player** and the **proxy**. | The player ⇄ WaterdogPE link. | |
| 58 | +| **Downstream** | The connection between the **proxy** and a **game server**. | WaterdogPE ⇄ Lobby link. | |
| 59 | + |
| 60 | +So "downstream servers" are simply your actual Minecraft servers (PocketMine-MP, |
| 61 | +Nukkit, etc.) that sit behind the proxy. |
| 62 | + |
| 63 | +## Authentication: who logs in where |
| 64 | + |
| 65 | +This trips up most newcomers, so it's worth stating plainly: |
| 66 | + |
| 67 | +- The **proxy** authenticates players with **Xbox Live** (when `online_mode` is |
| 68 | + enabled in `config.yml`). This keeps your network secure. |
| 69 | +- Your **downstream servers** must run in **offline mode** (`xbox-auth=false`), |
| 70 | + because they receive players that the proxy has *already* authenticated. If a |
| 71 | + downstream server tries to authenticate again, players can't connect. |
| 72 | + |
| 73 | +The proxy can also pass details like the player's real IP and Xbox ID (XUID) down |
| 74 | +to the game servers, so they still know who the player is. See |
| 75 | +[Starting Waterdog](/waterdogpe-setup/starting-waterdog) for the exact settings. |
| 76 | + |
| 77 | +## What WaterdogPE does and doesn't do |
| 78 | + |
| 79 | +**It handles:** |
| 80 | + |
| 81 | +- Accepting player connections and routing them to a server. |
| 82 | +- Moving players between servers (transfers / fallback when a server dies). |
| 83 | +- A plugin API to customise routing, commands, events and more. |
| 84 | +- Server-list MOTD/ping, resource packs, compression and encryption. |
| 85 | + |
| 86 | +**It deliberately leaves to plugins/servers:** |
| 87 | + |
| 88 | +- Gameplay, worlds, blocks, entities — those live on the downstream servers. |
| 89 | +- Higher-level features like economy, ranks or cross-server chat, which are |
| 90 | + added through [plugins](/plugins/introduction) or |
| 91 | + [extensions](/extensions/introduction). |
| 92 | + |
| 93 | +## Talking between servers |
| 94 | + |
| 95 | +Sometimes servers need to share information (player counts, cross-server |
| 96 | +messages, "send this player to SkyWars"). The proxy can do some of this, but for |
| 97 | +real server-to-server messaging the recommended approach is a dedicated |
| 98 | +communication layer such as [StarGate](/extensions/introduction). See |
| 99 | +[Proxy Communication](/plugins/proxy-communication) for the trade-offs. |
| 100 | + |
| 101 | +## Where to go next |
| 102 | + |
| 103 | +- **[Get the proxy running](/waterdogpe-setup/starting-waterdog)** — download, |
| 104 | + configure and start WaterdogPE. |
| 105 | +- **[Write your first plugin](/entry-level-plugin-api-guide/prerequisites)** — |
| 106 | + set up a project and build a plugin. |
| 107 | +- **[Plugin API](/plugins/introduction)** — commands, events, players, |
| 108 | + scheduling and more. |
0 commit comments