World of Warcraft Packet Parser
Failed to load latest commit information.
.nuget Enable NuGet Package Restore Aug 28, 2014
SQL Update map_difficulty structure and added VerifiedBuild field Jul 18, 2015
WowPacketParser.Tests Tabsss... Apr 1, 2016
WowPacketParser Added new 7.0.3 opcode names (not values, no parsing) Jul 23, 2016
WowPacketParserModule.BattleNet.V37165 Implemented parsing a bunch of new packets Oct 11, 2015
WowPacketParserModule.V4_3_4_15595 Removed duplicate parsers Jan 25, 2016
WowPacketParserModule.V5_3_0_16981 Read spell ids as actual spell ids in 6.x handlers Apr 3, 2016
WowPacketParserModule.V5_4_0_17359 Replace CMSG_QUERY_WORLD_COUNTDOWN_TIMER by CMSG_QUERY_COUNTDOWN_TIMER Dec 29, 2015
WowPacketParserModule.V5_4_1_17538 SQL: Updated hotfix SQL output to the new system Dec 28, 2015
WowPacketParserModule.V5_4_2_17658 Replace CMSG_QUERY_WORLD_COUNTDOWN_TIMER by CMSG_QUERY_COUNTDOWN_TIMER Dec 29, 2015
WowPacketParserModule.V5_4_7_17898 SQL: Updated hotfix SQL output to the new system Dec 27, 2015
WowPacketParserModule.V5_4_8_18291 SQL: Updated hotfix SQL output to the new system Dec 27, 2015
WowPacketParserModule.V6_0_2_19033 Fixed typo in opcode name (it was blizzlike but blizz also fixed it) Jul 23, 2016
packages Enable NuGet Package Restore Aug 28, 2014
.gitignore Add VS profiler files to gitgnore Oct 2, 2015
.travis.yml TravisCI support Apr 1, 2016
COPYING Move COPYING file to root dir Apr 1, 2016 Fix README formatting Apr 1, 2016
WowPacketParser.sln Updated MinimumVisualStudioVersion to Visual Studio 2015 Dec 14, 2015
WowPacketParser.sln.DotSettings ReSharper: Exclude parser projects from coverage results Dec 29, 2015
compile_win.bat Update compile_win.bat Dec 19, 2015
coverity.bat Add coverity.bat Nov 17, 2014

WowPacketParser (WPP)

GitHub license Coverity Scan Build Status Build Status TravisCI Build status AppVeyor


  • Compile WowPacketParser using Visual Studio 2015 or higher (Windows) or Mono 4.0 or higher (Linux/OSX). Alternatively you can download compiled binaries from the links below.
  • Edit WowPacketParser.exe.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 ...

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 mimimum 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 4.5 (AnyCPU) by AppVeyor