Servers
World
This is the main server that communicates the minute-to-minute gameplay.
Unlike other servers, the opcodes for the World server are randomized each patch. This was done starting in Shadowbringers(?)1 to prevent the usage of client-side tools like ACT, although this didn’t actually change anything.
Communication with the World server is compressed with Oodle. It was previously compressed with Zlib until Patch 6.3. Compression is optional however, the client happily accepts uncompressed packets.
Alternative Implementations #
- Sapphire (C++)
- Maelstorm (C#)
- iolite (Rust)
- Kawari (Rust)
Alluded to in this Sapphire Blog post ↩︎
Patch
These servers provide patch files that are consumed by the patcher and the boot executables.
The Patch server also checks if the hashes of the client files are valid, but the Lobby server does this in addition.
Console updating #
The PS3 and PS4 versions of the game used to use the same patch system as the Windows version. That changed in 2018 when Square Enix moved to updating through PSN. Trying to contact the patch servers with PS4 patch requests will return a 404. And of course since the PS3 version is defunct, that also doesn’t work.
This documentation is incomplete.
Alternative Implementations #
Login
This documentation is incomplete.
Alternative Implementations #
Lodestone
This documentation is incomplete.
Cookies #
ldst_touchsone
- The Lodestone uses this to check if it can set cookies, and redirects you if it’s still 0.
ldst_bypass_browser
- If set to 1, bypasses the annoying browser check redirect.
Lobby
These servers are first thing the game client connects to when you login. These are the ones hardcoded into the client:
- neolobby01.ffxiv.com (Elemental) (
LobbyHost01
) - neolobby03.ffxiv.com (Gaia) (
LobbyHost02
) - neolobby05.ffxiv.com (Mana) (
LobbyHost03
) - neolobby02.ffxiv.com (Aether) (
LobbyHost04
) - neolobby04.ffxiv.com (Primal) (
LobbyHost05
) - neolobby06.ffxiv.com (Chaos) (
LobbyHost06
) - neolobby07.ffxiv.com (Light) (
LobbyHost07
) - neolobby08.ffxiv.com (Crystal) (
LobbyHost08
) - neolobby09.ffxiv.com (Materia) (
LobbyHost09
) - neolobby10.ffxiv.com (Meteor) (
LobbyHost10
) - neolobby11.ffxiv.com (Dynamis) (
LobbyHost11
) - neolobby12.ffxiv.com (Shadow1) (
LobbyHost12
) - neolobby98.ffxiv.com (Unknown2) (
LobbyHost98
)
These directly correspond to the layout of the Logical Data Centers. And this makes sense, as the lobby server you connect to changes depending on which logical data center you select in the client.
The main purpose of the lobby is to funnel you to the World server of your choosing. It also acts as a waiting area during congestion, putting players into a queue before connecting to the World server.
Communication with the Lobby server is “encrypted”, which is strange as the rest of the game’s communication isn’t. Another interesting thing is that the client doesn’t have the IP address of the World servers hardcoded, but this is instead given to the client by the Lobby server on login.
Alternative Implementations #
- Sapphire (C++)
- Maelstorm (C#)
- iolite (Rust)
- Kawari (Rust)
The Shadow data center is defunct. ↩︎
It’s likely because of the high number - chosen to avoid conflicts with any future datacenter additions - that is meant for public testing. And indeed, this was the lobby server for the NA Cloud DC test. ↩︎
Frontier
This documentation is incomplete.
This is a multi-purpose server, and seems to handle many miscellaneous aspects. It serves the launcher page and informs the client of whether they can login, for example. It also serves news and the current banner images too.