Tags: Open Source FFXIV Modding
Syndicated to:
Table of Contents
This was a surprisingly small time window since the last status report, but there’s quite a bit to get through here. As per usual, a lot of this work is spurred by Kawari and my other FFXIV blog posts.
This blog post discusses changes made in my FFXIV projects: Novus (data toolbox), Astra (game launcher), Physis (parsing library) and Icarus (structured Excel reader)!
Novus #
Thanks to adrianmgg, the Novus Windows CI job was tidied up. They also fixed applications like Data Explorer from not launching due to missing DLLs. There still seems to be a remaining problem about the Map Editor not rendering, though.
Windows support is only supported on an ad-hoc basis, so please help me improve it by submitting PRs! This goes for other platforms like macOS as well.
SDK Launcher #
Multiple game installations are now supported. Additionally, platform support has expanded greatly even into platforms like the Playstation 3!

You can now select which language you want to load game data in too. This is useful for non-Global clients which don’t have English strings and wouldn’t function correctly before.
Data Explorer #
You can now view zones directly in Data Explorer, as if you’d opened them in the Map Editor. But since you can freely select LVBs, this allows you to view ones without an associated TerritoryType!

Standalone models now load their materials as you’d want them to.

You can now export textures as PNG, and models as glTF. You can also import them back into MDL formats too, like you would for gear in Armoury!
Added support for a ton of new files such as: cutscenes, UI layout definitions, level collision and a lot more. These don’t have nice parts to view their information yet, but now they (along with all other supported files) print debug information which is a useful stop-gap:

Added support for previewing SGBs, which make up the game’s prefab system. This includes basic playback for certain animations, and support will improve over time.

As seen above the file type is now guessed for unknown file types. This makes exploring them a lot easier!
Lastly, I added a way to view the translated GLSL for SHCDs (which is the format for standalone shaders.)
Excel Editor #
You can now export entire sheets into CSV, which I found quite useful when I needed to do some further processing.
Map Editor #
Added basic support for editing drop-ins, which is currently only used in Kawari. This allows you to edit BNpcs and Gathering points both of which are unavailable from retail client data alone.

Added new dialogs for referencing a duty’s gimmick and effects. This makes it extremely easy to cross-reference objects! You can also click on entries to select that object in the editor.

Added general support for SGB instance objects, including nesting them which makes rendering much nicer and the object list tree even more useful.

And for the quality-of-life bonus round:
- Added the current camera position to the status bar.
- You can now jump to the duty entrance or exit from the new Duty menu.
- Holding down shift now makes the camera move faster.
- Zones no longer appear wrongly flipped on the X-axis.
- You can now focus the search bar with CTRL+F or the menu bar item.
- Improved the map selection window, especially the UX on other systems with different selection behavior.
- You can now select referenced objects from the properties panel, where applicable. For example, jumping to the bound SGB for an Event Object.
- There’s a new dialog to jump to a specific instance ID instead of abusing the search to find what you’re looking for.
- Improved the rendering a bit, including fixed materials and a simple alpha cutoff. We now use a camera with an infinite far plane, which helps in large zones.
- You can now open the tera, LGB and other map-related files in Data Explorer right from the properties panel.
Armoury #
Fixed the item tree, and begun supporting other kinds of items like weapons:

Physis #
Credited ironworks in the README which was long overdue. This library not only initially inspired Physis but it still does today.
Kaze made numerous contributions recently, first was support for Clickable Ranges in LGBs. Then they added initial support for SGB files, ENVBs and water meshes to MDL parsing!
Thanks to OhKannaDuh, Physis is now a bit more efficient about how it returns Excel data which benefited my downstream projects.
Thanks to AzurIce, we no longer mangle non-Latin characters and the display of such should automatically be fixed any downstream projects. (Unless you mangle them further!)
Added a new repair action to strip newlines from version files, which I didn’t know was a failure case. Parsing and writing version files was tightened up as well.
Added full support for the Playstation 3 version of the game, at least for most file formats. If you have access to other platforms I would love to know if Physis works for them too.
Did a ton of API/documentation cleanup that’s super boring but makes everything nicer to use.
Folded Miscel back into Physis, and moved other useful parts of Kawari into Physis as well. That means we have three, beautiful Blowfish implementations. … Yay?
Added or improved support for LCB, SVB, TMB, STM, AVFX, OBSB, ESSB and PAP files. I want to extend gratitude to the VFX Editor plugin and Penumbra for information on AVFX/PAP and STM respectively.
Collision file support was a big focus, we now support writing/reading simple list.pcb and regular PCB files.
Added a missing AI contribution policy to the project, which is basically the Kawari already had. I plan on expanding this to more of my projects.
Icarus #
We now only internally sort columns once instead on every row()/subrow() call, which should have a negligible but positive performance impact depending on the size of the row in question.
I’m getting closer to being happy with the API, but we have one last thing to accomplish: a strong type interface for fields. I hope to tackle that in the coming months.
Astra #
Not much has happened, hence why I punished Astra to the bottom. I have just been busy doing bugfixes for my own mistakes, and making things more reliable.
Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.