Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 2.49 KB

File metadata and controls

89 lines (57 loc) · 2.49 KB

FFXIVClientStructsFinder

Welcome. This is your patch-day survival kit for FFXIV signatures.

When the game updates and everything starts screaming, this tool helps you answer one important question:

"Do my addresses still work, or am I about to spend the night in IDA?"

What This Tool Does

FFXIVClientStructsFinder gives you four modes:

  • scan: checks signatures from aers/FFXIVClientStructs (or your local source) against ffxiv_dx11.exe.
  • snapshot: saves a local baseline database for your current game build.
  • migrate: uses that snapshot to recover addresses on a newer build (signature first, context fallback).
  • autopatch: runs migrate only if ffxivgame.ver changed (unless you force it).

Default Game Path

By default, it looks here:

  • C:\Steam\steamapps\common\FINAL FANTASY XIV Online\game\ffxiv_dx11.exe

Game version comes from:

  • ffxivgame.ver next to the exe
  • or --game-ver if you want to be explicit

Runtime Folders (a.k.a. "where my stuff goes")

The tool writes local data to:

  • runtime/cache/FFXIVClientStructs (cached structs repo)
  • runtime/reports (scan/migrate/autopatch reports)
  • runtime/snapshots (snapshot files)

These are ignored by git, so your repo stays clean and presentable.

Quick Start

1) Scan

python .\finder.py scan --show-fail-by-struct

2) Create Snapshot (do this before game updates)

python .\finder.py snapshot

3) Migrate (after update)

python .\finder.py migrate --snapshot ".\runtime\snapshots\snapshot_2026.01.30.0000.0000.json" --show-fail-by-struct

4) Autopatch (lazy mode, in a good way)

python .\finder.py autopatch --snapshot ".\runtime\snapshots\snapshot_2026.01.30.0000.0000.json" --show-fail-by-struct

Force it even if version didn’t change:

python .\finder.py autopatch --force --snapshot ".\runtime\snapshots\snapshot_2026.01.30.0000.0000.json"

CMD Examples

Need one-click launchers? Check:

  • cmd_examples/ (generic examples for default C:\Steam\... setup)

Status Meanings

  • resolved_unique: one clear final address (great).
  • ambiguous: multiple candidates (needs manual sanity check).
  • unresolved: nothing found (time for deeper analysis).

Practical Patch-Day Flow

  1. Keep an up-to-date snapshot while things are stable.
  2. After patch, run autopatch (or migrate).
  3. Check unresolved/ambiguous entries first.
  4. Drink water. Maybe coffee. Probably both.

License

GNU GPL v3.0. See LICENSE.