A proxy makes several servers look like one. It does not make them share anything. Every backend has its own world, its own player files and its own idea of who you are — so unless you connect them, walking between servers means walking away from your inventory.
What is separate by default
| Data | Where it lives | Shared? |
|---|---|---|
| Inventory and position | playerdata on each backend | No |
| Permissions | The permissions plugin's own storage | Only if it uses a shared database |
| Economy balance | The economy plugin's storage | Same — database or nothing |
| Homes and warps | Per backend | No |
| Bans | banned-players.json per backend | No — this one matters |
Banning someone on the survival server leaves them free to connect to the lobby, and from there to anywhere else. Network bans have to be issued at the proxy, or by a punishment plugin with shared storage. This is the gap people find out about from the person they banned.
Connecting them properly
- Give the shared plugins a shared database
Permissions and economy plugins support MySQL for exactly this. One database, every backend pointing at it, and a rank granted anywhere applies everywhere.
- Decide about inventories deliberately
Shared inventories across a lobby and a survival world are usually wrong; shared across two survival worlds are usually right. There is a plugin for either behaviour, and the default is neither.
- Put punishments at the proxy
A punishment plugin that runs on the proxy with a shared database is the only arrangement where a ban means what people expect it to mean.
- Test with a second account
Join, get a rank, switch servers, check the rank is still there. Then get banned and try the lobby. Both take two minutes and both fail more often than people expect.
The usual arrangement is shared permissions and economy, separate inventories, network-wide bans. That combination gives players one identity and one wallet while keeping each server's gameplay its own.
A rank granted on one backend shows on another, a ban issued anywhere blocks the whole network, and inventories behave the way you configured rather than the way you assumed.