5.1 KiB
title | date | draft | tags | series | summary | |||
---|---|---|---|---|---|---|---|---|
Kawari Progress Report 9 - Patch 7.21 | 2025-05-01 | false |
|
|
Here is a new progress report, mostly smaller things but I managed to complete another patch update! |
Here is a new progress report, mostly smaller things but I managed to complete another patch update! I have begun working on my other FFXIV projects again, so Kawari has taken a bit of a back-burner.
Equipped Weapons
Your equipped weapon is now displayed (subweapons are not yet, so some weapons will look broken.) It turns out I was truncating the model IDs, which was easy to fix:
More importantly, this fixes the broken-looking animations when you attacked enemies! (Or rather, the lack of animation...)
Launcher
Sapphire - the alternative server for FFXIV - uses a completely bespoke launcher. Other projects expect you to know how to launch the game manually. Kawari isn't any better: Astra has first-class support, but I shouldn't expect you to use it. I want Kawari to be approachable to the average FFXIV player!
What if we just re-used the existing program SqEx ships, which is already very capable of launching the game?
This is now possible with LauncherTweaks, and Kawari is now equipped to serve a launcher page that's compatible with the latest boot executable (and possibly older versions too!) We can do this too without modifying any game files, users just have to copy two files into their boot directory.
I don't know enough about the launcher API to launch the game yet, but it can already read FFXIV_BOOT.cfg
, open the config backup tool and more. Once that's done though I'll modify our usage guide accordingly!
Patch 7.21
This patch was released since the last report, so it's time to update those IPC opcodes! This is actually quite a fun one, so I've been busy playing the retail game again instead of working on Kawari 😄
Anyway, Kawari should now work with this version1. There's a few tidbits left such as events, but I think 7.22 will release soon - I don't want to waste too much time on 7.21.
China Region
A special interest of mine recently is exploring the Chinese and Korean versions of the game (well, as much as an I can without being a citizen of either country.) I have implemented the bare minimum so a Chinese client to connect to the Kawari lobby server. They use a specialized login packet that was trivial to add:
This doesn't mean Chinese clients can load into a zone, unfortunately. Their client is too old and it predates any supported game version in Kawari. I suspect that even when they update, their IPC opcodes might still be different to their Global counterpart.
Packet Obfuscation
This is a new packet-related mess from SqEx, but fortunately doesn't require Kawari to implement it. I'm still worried will become mandatory in the future, so I'm going to work on supporting it anyway.
I have now added a toggle to the world config to tell the client we are sending obfuscated packets, but let me reiterate there's no point in doing this. We don't actually obfuscate anything yet, so all it does is crash the game. If the server happens to send invalid data, I guess the client doesn't know how to handle it? Good thing that network errors don't exist!!
If you're interested in how the obfuscation works on the client, see Perchbird's Unscrambler which goes into a ton of detail about the algorithm.
Scripting
I have filled out more ActionResult
fields for attacks. This is now exposed in the Lua API, and action scripts can specify whether they deal magical/physical damage, their aspect and more:
-- FastBlade.lua
function doAction(player)
effects = EffectsBuilder()
effects:damage("Normal", "Slashing", "Unaspected", 20)
return effects
end
Character Backups
As I mentioned in a previous report, you could place character backups from Auracite into the server's backups
folder to load them. This doesn't really work anymore now that we have accounts and such. Now this functionality is exposed on the account management website, where it makes more sense: