1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-23 15:47:45 +00:00
Server emulator for a certain MMO
Find a file
Joshua Goins 00c5f4a10e Fix various issues with sending service account data
I did a bunch of things wrong, oops. The client somehow error corrected itself
into never requesting the character list, lol
2025-03-08 22:17:26 -05:00
.github Run tests on the CI 2024-06-29 15:02:21 -04:00
src Fix various issues with sending service account data 2025-03-08 22:17:26 -05:00
templates Add configurable boot patch location, fix verifying boot components 2024-06-29 14:44:40 -04:00
.gitignore More attempts at packet decryption 2025-03-08 16:39:13 -05:00
build.rs Fix encrypting/decrypting packets, vendor Sapphire Blowfish implementation 2025-03-08 21:13:00 -05:00
Caddyfile Begin adding a user accessible web server 2024-05-11 14:03:18 -04:00
Cargo.lock Fix encrypting/decrypting packets, vendor Sapphire Blowfish implementation 2025-03-08 21:13:00 -05:00
Cargo.toml Fix encrypting/decrypting packets, vendor Sapphire Blowfish implementation 2025-03-08 21:13:00 -05:00
LICENSE Relicense to AGPL, remove .build.yml 2024-04-28 08:32:31 -04:00
README.md Add credits to README 2025-03-08 14:10:52 -05:00
run.sh Add dummy lobby server 2025-03-08 13:51:50 -05:00

Kawari

A substitute for a few official servers such as “ffxiv.com” and “square-enix.com”. Its still early in development, but it can already emulate the basic login flow.

Notice: This does not allow you to download copyrighted game files, or circumvent the copyright protections enacted by Square Enix.

Components

  • Web
    • A simple website used for account management and other misc features.
  • Admin
    • The admin panel for configuring the multitude of servers.
  • Frontier
    • Handles gate status requests.
  • Login
    • Handles logging in and giving a SID.
  • Patch
    • Handles checking if the client needs any patching.

Running

Install Rust and then use the run.sh helper script in the repository. You can of course run each server individually.

Testing via launcher

Testing on a real launcher is not yet supported, the easiest way is through Astra which allows you to plug in your own domains. Because of how the domains are set up, you can't simply plug them in though.

You will need some kind of reverse proxy because simply editing the hosts file will not work. Each server is behind a subdomain (like frontier.square-enix.com) and some services span multiple subdomains (such as patch-bootver.square-enix.com and patch-gamever.square-enix.com.) We will walk through using Caddy for this purpose, but any reverse proxy will do.

First you need to edit your hosts file. Assuming you're using the default ports for each server, add the following:

127.0.0.1 ffxiv.local
127.0.0.1 admin.ffxiv.local
127.0.0.1 frontier.ffxiv.local
127.0.0.1 patch-bootver.ffxiv.local
127.0.0.1 patch-gamever.ffxiv.local
127.0.0.1 ffxiv-login.square.local

Then run Caddy from the repository's Caddyfile. You may need to run it as root because it binds to port 80:

sudo caddy run

And then in Astra, plug these domains like so into Developer Settings:

  • square.local into the "SE Login Server"
  • ffxiv.local into "SE Main Server"

Make sure to set the "preferred protocol" to "HTTP" as well because HTTPS will not work without more setup.

Creidts & Thank You

License

This project is licensed under the GNU Affero General Public License 3. Some code or assets may be licensed differently.