Skip to content

Commit fef9eda

Browse files
committed
Add overview page
1 parent 178401e commit fef9eda

3 files changed

Lines changed: 111 additions & 1 deletion

File tree

docs/.vitepress/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export default defineConfig({
5858
{
5959
text: 'WaterdogPE Guides',
6060
items: [
61+
{ text: 'Overview', link: '/overview' },
6162
{
6263
text: 'WaterdogPE Setup',
6364
link: '/waterdogpe-setup/starting-waterdog',
@@ -87,6 +88,7 @@ export default defineConfig({
8788

8889
// One site-wide sidebar grouped per book (a "shelf" in BookStack terms).
8990
sidebar: [
91+
{ text: 'Overview', link: '/overview' },
9092
{
9193
text: 'WaterdogPE Setup',
9294
collapsed: false,

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ hero:
1111
actions:
1212
- theme: brand
1313
text: Get Started
14-
link: /waterdogpe-setup/starting-waterdog
14+
link: /overview
1515
- theme: alt
1616
text: Plugin API Guide
1717
link: /entry-level-plugin-api-guide/prerequisites

docs/overview.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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

Comments
 (0)