GGPK

Old: ChuanHsing 2023-02-13 21:38:51

New: ChuanHsing 2023-02-13 21:43:10

OldNewDifferences
1-# Tools
1+# GGPK
2+
3+## GGPK schema
4+
5+### Record Structures
26
37
48
5-## Information Resources
9+```
10+struct GGPK {
11+ uint32 Length;
12+ char[4] Tag; // ="GGPK"
13+ uint32 Version;
14+ GgpkEntry[2] Entries;
15+}
16+
17+struct GgpkEntry {
18+ uint64 offset;
19+}
20+```
21+
22+```
23+struct FREE {
24+ uint32 Length;
25+ char[4] Tag; // = "FREE"
26+ Byte[Length-8] Data;
27+}
28+```
29+
30+```
31+struct PDIR {
32+ uint32 Length;
33+ char[4] Tag; // ="PDIR"
34+ uint32 NameLength;
35+ uint32 TotalEntries;
36+ byte[32] SHA256Hash;
37+ wchat_t[NameLength] Name;
38+ DirectoryEntry[TotalEntries];
39+}
40+
41+struct DirectoryEntry {
42+ int32 entryNameHash;
43+ uint64 offset;
44+}
45+```
46+
47+```
48+struct FILE {
49+ uint32 Length;
50+ char[4] Tag; // ="FILE"
51+ uint32 NameLength;
52+ byte[32] SHA256Hash;
53+ wchat_t[NameLength] Name;
54+ byte[reminder] Data;
55+}
56+```
57+
58+<a href="https://i.imgur.com/VRBetTX.png" data-lightbox="panel"></a>
59+
60+### Sample Tree
61+<a href="https://i.imgur.com/EP7QRal.png" data-lightbox="panel"></a>
662
763 Site | Description
864 - | -
9-[PoEDB](https://poedb.tw/us/) | Database and index for information from the ggpk
10-[Developer API](Developer_API) | PoEDB API Collection
11-[PoE Community Wiki](https://www.poewiki.net/) | Community fan wiki
12-[Daily Labyrinth Layouts](http://www.poelab.com/) | Labyrinth Layouts are updated daily by a team of runners
65+[Path of Go](https://github.com/oriath-net/pogo) | Golang tools for reading PoE data files
66+[LibGGPK2](https://github.com/aianlinb/LibGGPK2) | Windows GUI tool to view Content.ggpk and export
1367
14-## Character Builds and Planners
68+## Bundle schema
69+
70+[Bundle schema](Bundle_schema)
71+
72+## Dat schema
73+
74+```
75+struct DAT {
76+ uint32 rowCounts;
77+ Data[rowCounts] rows;
78+ REFERENCE refer;
79+}
80+
81+struct Data {
82+ blob row;
83+}
84+
85+struct REFERENCE {
86+ char[8]; // 0xBB * 8
87+ blob reference;
88+}
89+```
90+
91+### Data Export
92+
93+The game data does not have any official API, and only possible data can be analyzed from the game files.
94+
95+Almost all data is stored in .dat64 files within Content.ggpk. But they only have data, no headers. You can start with the .dat64 format, the [PoE dat schema](https://github.com/poe-tool-dev/dat-schema) project is the latest format. Or try to parse the .dat format from [PoE Dat Viewer](https://snosme.github.io/poe-dat-viewer/) yourself. [RePoE](https://github.com/brather1ng/RePoE/) collects many common and processed .dat files and exports them to .json format.
1596
1697 Site | Description
1798 - | -
18-[poe.ninja Builds](https://poe.ninja/challenge/builds) | An index of player and streamer character data in challenge and event leagues
19-[Path of Building fork](https://github.com/PathOfBuildingCommunity/PathOfBuilding/) | A fork of the original Path of Building with more features, managed by the community
20-[PoE Planner](http://poeplanner.com/) | An online build planner
21-[PoESkillTree](https://github.com/PoESkillTree/PoESkillTree/) | An offline build planner
22-[poebuilds.cc](https://www.poebuilds.cc/) | simple build aggregator
23-[Mikelat's Mana Reserved Calculator](https://poe.mikelat.com) | A simple mana reserve calculator
24-[PoE Build Browser](http://www.timtips.com/buildbrowser) | An index of forum builds
99+[PyPoE](https://github.com/Project-Path-of-Exile-Wiki/PyPoE) | Collection of Python Tools for Path of Exile, mostly used by wiki
100+[RePoE](https://github.com/brather1ng/RePoE/) | Repository of Path of Exile resources for tool developers.
101+[Poe Dat Viewer](https://snosme.github.io/poe-dat-viewer/) | Web-base Poe Dat Viewer
102+[PoE dat schema](https://github.com/poe-tool-dev/dat-schema) | Source of truth schema for dat files.
103+[Path Of Building Fork schema](https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Export/spec.lua) | Source of Path Of Building Fork schema
25104
26-## Crafting Resources
27-
28-Site | Description
29-- | -
30-[Craft of Exile](https://www.craftofexile.com/) | Item crafting resource and simulator
31-[Vorici Chromatic Calculator](http://siveran.github.io/calc.html) | Attempts to calculate the optimal use for your Chromatic Orbs. May not be fully accurate.
32-
33-## Trading and Economy
34-
35-Site | Description
36-- | -
37-[Official Path of Exile Trade](https://www.pathofexile.com/trade) | PoE Shop Indexer
38-[Better Trading Extension](https://chrome.google.com/webstore/detail/better-pathofexile-tradin/fhlinfpmdlijegjlpgedcmglkakaghnk) | Extension for Google Chrome that can save trade searches and improves trading interface among other features
39-[poe.ninja](http://poe.ninja/) | A history graph of the price of items across leagues
40-[PoE Antiquary](https://poe-antiquary.xyz/) | index of older league price data from poe.ninja
41-[PoE Overlay](https://kyusung4698.github.io/PoE-Overlay/) | All-in-one macro and price checking tool. Requires installation of Overwolf. Has several additional features compared to the Community version.
42-[PoE Overlay Community Fork](https://github.com/PoE-Overlay-Community/PoE-Overlay-Community-Fork/) | All-in-one macro and price checking tool, standalone community version.
43-[Awakened PoE Trade](https://github.com/SnosMe/awakened-poe-trade/) | price checking tool
44-[Menagerie](https://github.com/nomis51/Menagerie/) | A Path of Exile trade manager to simplify and speed up your trading experience, and much more!
45-[PoE Lurker](https://github.com/C1rdec/Poe-Lurker/) | Compact trading manager and companion
46-
47-## Filters
48-
49-Site | Description
50-- | -
51-[NeverSink.Filter](https://github.com/NeverSinkDev/NeverSink-Filter/releases) | NeverSink.Filter
52-[FilterBlade](http://www.filterblade.xyz/) | Loot Filter Customizer
53-[FilterBlast](https://filterblast.xyz) | Loot Filter Hub & Editor
54-
55-
56-## In-Game Tools
57-
58-Site | Description
59-- | -
60-[Lutbot Logout Macro](http://lutbot.com/) | A TCP disconnect logout macro with more optional functionality. Also integrated with the Trade Macro.
61-[Exilence Next](https://github.com/viktorgullmark/exilence-next) | A progression and income tracker for you and your friends
62-
63-## Hideouts
64-
65-Site | Description
66-- | -
67-[HideoutShowcase](https://hideoutshowcase.com/) | Hideouts import file database and calculator. Contains screenshots, videos, master level required, decorations needed, etc.
68-
69-## Media
70-
71-Site | Description
72-- | -
73-[Developer Tracker](http://www.gggtracker.com/) | Tracks the post from GGG staff members on the official forums and reddit.
74-[Reddit](https://www.reddit.com/r/pathofexile/) | A subreddit dedicated to Path of Exile
75-
76-## Community
77-
78-Site | Description
79-- | -
80-[The Forbidden Trove Discord](https://discord.gg/zBpfweq) | Largest In-game trading Discord group
81-[MF Academy](https://discord.gg/AUGEZM7e) | MF Academy Discord group
82-
83-
105+PyPoe stable.py to spec.json
106+```
107+from PyPoE.poe.file.specification.data import stable
108+from json import dump
109+with open('D:/spec.json', 'w') as f:
110+ dump(stable.specification.as_dict(), f)
111+```