Loading...   

[Show Table of Contents]


§EQExtractor2 - a tool to extract data from EQ Live

Current status (4th September 2014): Broken

EQExtractor2 is a .Net application that can turn packet captures taken from EQ Live and turn them into SQL that can be imported into the EQ Emu database. The packets are captured using Wireshark and can then be processed "offline" without EQ running. 

It can capture the following information for database building:

  • Players
  • Zones
  • Doors
  • Items
  • Spawns
  • Pathing
  • AA's

It can also help developers by exposing server-> client communication including:-

  • Opcodes
  • Packet structures

§Source

The most up to date source is currently stored away from the main EQEmu server source - although currently there is still (outdated) source if you pull the main server source. The current source is available here using git:- https://github.com/EQEmu/EQExtractor.git 

The github page is here.

Please be aware to run EQExtractor you must at least have WinPCap installed (this is included with Wireshark).

§Capturing packets

The basic process is:-

1. Find a safe place in the zone you wish to capture in.
2. Log to character select.
3. Turn on Wireshark.
4. Log back in. (You may also have to invis/FD in some zones).
5. Wait for some time.... (the longer the better, more or less). Don't run around, chat, attack things, cast spells, browse marketplace or merchants etc. It just creates a bigger file to process. (Unless you're a dev trying to figure out opcodes/structs for such things).
6. Stop Wireshark and save as a .pcap file (there are many options, just use a normal .pcap).

§Updating EQExtractor

Work in progress...

Firstly, try getting the ROF client to test with - it will be the closest to live and support as many models as possible. The general gist is this; get captures of zones where you already know the locations of NPC's - either by looking at the PEQ database or I have heard some use ShowEQ or MQ2 to extract and list the details of spawn locations (this is against the EULA on Live, of course, and can therefore not be recommended).

Work out OP_ZoneEntry and it's struct

Identify this either by copying off ShowEQ if they're up to date, OR by dumping the packets and look for an OP_Unknown that occurs as many times as there are spawns (inlduing pets+PC's), and have the spawn Names in them e.g. "Guardian Gwalec".

1. Update X,Y,Z andf heading

When you are starting out, try using GuildHall (not the Grand Guild Hall if your guild has one) for your packet captures. You won't get many packets and the NPC's don't move, and are rarely updated on Live. Basically by knowing the real X,Y,Z you can bruteforce calculate where the values are stored, using the last patches locations as a guide. Heading is a little quirkier, you'll probably get it more-or-less correct, but it seems to suffer some rounding issues.

Next, try Plane Of Knowledge. This is a bigger zone, and will show errors in your bitmasks if any are present. This will have MANY more spawns. It also has a few spawns that move so you can check paths. I also quite like Crushbone for paths but you may get "Dougs" as live uses the new Orcs and most EqEmu clients don't have the new Orc model enabled in Crushbone.

2. Update appearances

Again, use POK. This can be painful as so many of the appearance attributes (hair color, beard color, beard and so on) have very common numbers - e.g. all of them set to 0. A good reference is the PEQ database- it is pretty much correct. You will get Dougs in POK too, as EQLive updates POK pretty much monthly, often including the latest models.

What I do is reference the PEQ database and find NPC's with varying values in their appearance fields - for example select all Drakkins, and find one with a different value for each of Drakkin Heritage, Tattoo and Detail. If you crack those you're set to test on other drakkins. Likewise with beards, hair etc although this is MUCH harder. Ultimately you will need to log into Live and log into your private server and run up to NPC's to look at them!