UpdateExtractor is a tool to help extract useful and usable information for LandSandBoat servers from installed game clients.
  • Lua 95.9%
  • Python 4.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zach Toogood 007f144cfe
Merge pull request #12 from sruon/fix/equalsplit
Only split on first equal sign
2025-03-10 08:45:55 +00:00
out [output] August 2024 Version Update 2024-08-25 14:33:28 -04:00
.gitignore ignore old backups folder 2021-07-13 11:50:29 +03:00
client_ver.py Tooling update 2022-08-10 14:17:41 +03:00
config.py Split steps into own files 2021-07-09 17:30:45 +03:00
entity_ids.py Progress checkin 2021-12-14 15:50:31 +02:00
items.py Check in generated item sql files 2022-11-05 15:18:53 +00:00
keyitems.py Progress checkin 2021-12-14 15:50:31 +02:00
LICENSE Initial commit 2021-03-19 12:15:19 +02:00
misc.py Split steps into own files 2021-07-09 17:30:45 +03:00
README.md [update] August 2022 2022-08-10 14:49:26 +03:00
status_effects.py Start work on entity id shifting 2021-07-14 10:36:50 +03:00
titles.py Start work on entity id shifting 2021-07-14 10:36:50 +03:00
update_extractor.py Progress checkin 2021-12-14 15:50:31 +02:00
utils.py Remove [P1], [P2] from sanitize_zone_name 2025-01-02 07:04:51 -05:00
zone_texts.py Only split on first equal sign 2025-03-10 02:39:57 -06:00

UpdateExtractor

UpdateExtractor is a tool to help extract useful and usable information for LandSandBoat servers from installed game clients. POLUtils's MassExtractor extracts the relevant information for a given client install, but it is just a data dump. UpdateExtractor takes this data dump, sanitizes it, and modifies your server install in place (or provide easy copy/paste) so that you don't have to spend hours fixing shifting IDs or hunting down content changes.

It is primarily designed for use between nearby modern retail versions, but should work for extracting information from historical clients too.

Requirements

  • Python 3
  • xmltodict installed through pip
  • POLUtils installed

Features

  • Extract client version string for version.conf
  • Extract data and update globals/titles.lua in place
  • Extract data for globals/status_effects.lua
  • Extract data and update zones/<zone_name>/IDs.lua text ID's in place, handling:
    • Formatting and spacing
    • Ordering
    • ID shifts

TODO

  • Extract and update in place:
    • sql/items_*.sql
    • sql/mob_spawn_points.sql
    • sql/npc_list.sql
    • Mob/NPC ID shifts in zones/<zone_name>/IDs.lua files

Usage

  1. Make sure the following files from POLUtils are copied into the root folder next to update_extractor.py:

    • MassExtractor.exe
    • PlayOnline.Core.dll
    • PlayOnline.FFXI.dll
  2. Go into config.py and fill in your server install location. For example:

    # Set this to your LSB root dir
    SERVER_DIR="C:/ffxi/server"
    
  3. Run: python update_extractor.py

Output

~>>/ffxi/UpdateExtractor/update_extractor.py
Looking for exes
Creating folder layout
Did not need to run MassExtractor.exe
Fetching installed client version
30210604_1
Generating out/scripts/globals/titles.lua
Generating out/scripts/globals/status_effects.lua
Generating out/sql/item_basic.sql
Generating out/scripts/zones/Phanauet_Channel/Text.lua (1)
Generating out/scripts/zones/Carpenters_Landing/Text.lua (2)

...

Generating out/scripts/zones/Dynamis-Windurst_[D]/Text.lua (296)
Generating out/scripts/zones/Dynamis-Jeuno_[D]/Text.lua (297)
Generating out/scripts/zones/Walk_of_Echoes_P1/Text.lua (298)
SKIPPING AHT URGHAN WHITEGATE PART 2!
Done