World of Warcraft Packet Parser
Find a file
2026-03-17 00:12:14 +01:00
.github/workflows Update to .NET 9 (#899) 2024-12-06 07:11:29 +01:00
packages/DBFileReaderLib.1.0.0.0/lib Updated DBFileReaderLib to 52f7383d65 2024-01-22 08:01:38 +01:00
scripts Convert WPP to NET Core 3.1 (#530) 2020-03-11 21:25:47 +01:00
SQL Update object_names to 10.1.5 2023-07-13 11:21:43 +02:00
WowPacketParser Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParser.Proto Support 12.0.0 parsing 2026-01-27 20:07:49 +01:00
WowPacketParser.Tests Remove unused Utilities.HexStringToBinary 2025-12-20 13:15:09 +01:00
WowPacketParserModule.BattleNet.V37165 Update to .NET 7 & some project configuration improvements (#727) 2022-11-20 21:16:14 +01:00
WowPacketParserModule.Substructures Support 12.0.0 parsing 2026-01-27 20:07:49 +01:00
WowPacketParserModule.V1_13_2_31446 Move SplineFlags enum from 7.0 module to 6.0 2025-11-24 13:05:09 +01:00
WowPacketParserModule.V2_4_3_8606 Override 2.4.3 opcodes and implement SMSG_UPDATE_AURA_DURATION (#790) 2023-08-15 13:01:22 +02:00
WowPacketParserModule.V2_5_1_38707 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V3_4_0_45166 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V4_3_4_15595 Unify spline flag naming between versions and clean up duplicate names from proto enum 2025-11-23 14:12:45 +01:00
WowPacketParserModule.V4_4_0_54481 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_3_0_16981 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_4_0_17359 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_4_1_17538 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_4_2_17658 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_4_7_17898 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_4_8_18291 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V5_5_0_61735 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V6_0_2_19033 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V7_0_3_22248 Support 12.0.0 parsing 2026-01-27 20:07:49 +01:00
WowPacketParserModule.V8_0_1_27101 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V9_0_1_36216 Implemented gameobject_template_locale sql generation 2026-03-17 00:12:14 +01:00
WowPacketParserModule.V10_0_0_46181 Support 12.0.0 parsing 2026-01-27 20:07:49 +01:00
WowPacketParserModule.V11_0_0_55666 Added a way to treat spawns as CreateObject2 with a certain tolerance compared to spawn time 2026-02-12 20:53:53 +01:00
WowPacketParserModule.V12_0_0_65390 Rename unknown ActivePlayerData transmog field 2026-03-15 13:36:02 +01:00
.gitignore Handle 'V4_4_0_53627' (#835) 2024-03-12 17:09:07 +01:00
appveyor.yml CI/AppVeyor: Disable Ubuntu build 2022-11-28 09:52:53 +01:00
COPYING Move COPYING file to root dir 2016-04-01 02:31:44 +01:00
default.props Update to .NET 9 (#899) 2024-12-06 07:11:29 +01:00
docker-entrypoint.sh Add better docker support and documentation (#739) 2022-12-27 01:00:55 +01:00
Dockerfile Update to .NET 9 (#899) 2024-12-06 07:11:29 +01:00
README.md Update to .NET 9 (#899) 2024-12-06 07:11:29 +01:00
WowPacketParser.sln Init 12.0.0 module 2026-01-21 10:23:02 +01:00

WowPacketParser (WPP)

GitHub license Build Status AppVeyor

Usage

  • Compile WowPacketParser using Visual Studio 2022 (with .NET 9.0 SDK) or .NET 9.0 SDK. Alternatively you can download compiled binaries from the links below.
  • Edit WowPacketParser.dll.config to fit your needs.
  • Drag one or more files (.pkt or .bin) to WowPacketParser.exe.
  • Command line usage: WowPacketParser.exe [--ConfigFile path --Option1 value1 ...] filetoparse1 ...
Databases

Optionally, WPP can connect to two kinds of MySQL databases: world from TrinityCore and its own database, WPP. This can be enabled by setting <add key="DBEnabled" value="true" /> in the .config file. Remember to set <add key="TargetedDatabase" value="1"/> in accordance with the targeted version of the core.

The world database is used when creating SQL files after parsing to produce the minimum number of changes needed to update the database. For example, if only the faction of a creature that appears in the sniff needs to be updated, the produced SQL files will contain an UPDATE query, instead of a full INSERT to the table creature_template. WPP does not modify this database directly, all the tentative changes will be written to the output SQL files.

The WPP database is used to feed additional data that WPP may use while parsing. For example, in the output text files, the spell name can be displayed next to spell ids:

ServerToClient: SMSG_SPELL_START (0x2BB8) Length: 96 ConnIdx: 0 Time: 01/01/2016 00:22:33.235 Number: 701
(Cast) CasterGUID: Full: 0x03691F00000000000000000000000001 Player/0 R3558/S0 Map: 0 Low: 1
(Cast) SpellID: 2479 (Honorless Target)
(Cast) CastFlags: 15

This is available for a lot of other named entities (achievements, creatures, quests, etc.). The SQL files required for this database is in the SQL directory. create_WPP.sql creates the database and wpp_data_objectnames.sql has some data to fill the database.

Nightly Builds

.NET 9.0 SDK or .NET 9.0 Runtime is needed!

Download .NET 9.0 here!

Windows
Linux (Ubuntu)
macOS (Arm64)

Docker (experimental)

It is possible run WPP on Docker using the trinitycore/wpp image.

To build image:

DOCKER_BUILDKIT=1 docker build . -t trinitycore/wpp

To configure:

Copy WowPacketParser/App.config as template and edit as your needs.

To run:

docker run -it --rm -v /place/where/sniffs/are/kept:/sniffs -v /full/path/App.config:/app/WowPacketParser.dll.config trinitycore/wpp /sniffs/sniffname.pkt

/place/where/sniffs/are/kept should your local directory containing the .pkt file and sniffname.pkt the file to be parsed.

Output (.txt/.sql) of the parser will be added to /place/where/sniffs/are/kept.

WowPacketParser

License: GPLv3

Read file COPYING.

Third Party

The third party libraries have their own way of addressing authorship, and the authorship of commits importing/ updating a third party library reflects who did the importing instead of who wrote the code within the commit.

NuGet libraries:

Copyright information of third party libraries provided through NuGet can be obtained by checking https://www.nuget.org/

Provided third party libraries:

DBFileReaderLib, 2019-2022 wowdev, located at https://github.com/wowdev/DBCD