Currency (just gil) and EXP are now supported, and these are sent to the client.
Thanks to thedax, the Aetheryte and Aethernet network is now mostly functional. We still have trouble making the Aetherytes in the starting town show up though.
Unlocks (Actions, Emotes, etc), unlocked Aetherytes, EXP, item glamours and their condition are now persistent and saved on log out.
The inn bed is now 99% functional, but we are still missing the waking up animation. Fun fact: the Dreamfitting feature works completely offline and doesn't seem to contact SqEx servers at all.
SCREENSHOT
The Unending Journey is now functional, which means **we can now play most FFXIV cutscenes offline**! Here it is in action:
Most Gil shops are now partially implemented, allowing you to buy items. They all seem to share a common Lua script, so now it's just a matter of mapping them. Here is one in New Gridania:
You can now reload global scripts like `Global.lua` which are only loaded on start-up with the new `!reload` debug command. This makes authoring new events, commands, etc much easier.
I added the `!finishevent` command to forcefully tell the client to stop it's current event. This is useful if you got stuck while talking to something.
I added support for the `//gm gil` command to give yourself gil. Thanks to thedax, you can now remove gil using `//gm collect` (just from yourself, for now.)
When recieving unknown packets, these are now read instead of ignored. This makes it easier to understand what the client sent, and prevents reading the wrong part of the packet in the case of multiple segments being sent.
The way the server loads LGBs is more accurate, by fetching the list of LGBs directly from the game files. This doesn't fix anything specifically, though.
Thanks to thedax, the Lobby server returns more relevant error messages.
You can try it out [on the web](https://analyze.xiv.zone/) now, and the source code is available [here](https://codeberg.org/redstrate/PacketAnalzyer).
Thanks to NotNite, grabbing _both_ the static (`.lib`) and dynamic (`.dll`) versions of Oodle on Windows is no longer nessecary! The documentation was also updated to reflect this.