# PangLib - A toolchain for Pangya files

**URL:** <https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22>\
**Category:** Showcase\
**Created:** [December 28, 2018, 7:34pm UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22 "2018-12-28T19:34:27Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pixeldesu](https://pangya.community/user_avatar/pangya.community/pixeldesu/32/5_2.png) [@pixeldesu](https://pangya.community/u/pixeldesu)\
**Post date:** [December 28, 2018, 7:34pm UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22/1 "2018-12-28T19:34:27Z")

</div>

Guess I’ll introduce **PangLib** here, my first delving into the file formats of Pangya and making them somewhat usable!

PangLib is a set of C# libraries, not a full program, that allow developers to work with different Pangya file formats and build their own tools around them.

Current libraries in PangLib are:

- **PangLib.IFF** to handle `.iff` files, which include item/character/etc. metadata
- **PangLib.DAT** to handle `.dat` files, which include translations into various languages
- **PangLib.PAK** to handle `.pak` files, which are the Pangya game data archives
- **PangLib.PET** to handle `.*pet` files, which include the Pangya model definitions
- **PangLib.UCC** to handle files from Pangya self-design
- **PangLib.UpdateList** to handle `updatelist` files, which tell the game updater which files are in a patch

There also is **PangLib.Utilities** , which includes various encryption/compression utilities which are used all across Pangya’s files.

Most of these libraries are currently _read-only_, meaning you can only use them to read data from the files and not save it back to them, but that is of course planned for most of the filetypes!

Aside from the libraries, PangLib also includes documentation around the formats, so the structure and file contents are easily understandable!

There’s still a lot missing to the library, but as I tested it while building, what’s there works so far.

You can check out the library on GitHub here:

> **[pangyatools/PangLib](https://github.com/pangyatools/PangLib)**
>
> Series of tools to interact with Pangya PC MMO game files

---

<div class="post-metadata">

**Author:** ![pixeldesu](https://pangya.community/user_avatar/pangya.community/pixeldesu/32/5_2.png) [@pixeldesu](https://pangya.community/u/pixeldesu)\
**Post date:** [January 24, 2019, 7:34pm UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22/2 "2019-01-24T19:34:20Z")

</div>

To improve usability of PangLib libraries, I started putting the initial releases of all libraries onto NuGet.

```auto
dotnet add package PangLib.[libraryname]

```

is now all it takes to add a PangLib library to one of your projects.

[https://www.nuget.org/packages?q=panglib](https://www.nuget.org/packages?q=panglib)

---

<div class="post-metadata">

**Author:** ![pixeldesu](https://pangya.community/user_avatar/pangya.community/pixeldesu/32/5_2.png) [@pixeldesu](https://pangya.community/u/pixeldesu)\
**Post date:** [April 5, 2019, 12:50am UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22/3 "2019-04-05T00:50:41Z")

</div>

Aside of a small rewrite I did of one of the libraries, here some more major news!

I added two new libraries:

- `PangLib.PSP.NOP`
- `PangLib.PSP.PAK`

to handle `.pak` and `.nop` files from the PSP iteration of the game. The formats resemble Pangya PC archives already, so this was a rather simple task!

---

<div class="post-metadata">

**Author:** ![desh0wiz](https://pangya.community/letter_avatar_proxy/v4/letter/d/db5fbb/32.png) [@desh0wiz](https://pangya.community/u/desh0wiz)\
**Post date:** [June 29, 2023, 10:28pm UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22/4 "2023-06-29T22:28:21Z")

</div>

@pixeldesu Hey I appreciate all of the work you’ve done here! I was wondering if any of these tools are related to the opening of the .gbin/.sbin files?  
 ![image](https://pangya.community/uploads/default/original/1X/72a0274121f18e5119cc79233b67874bd27e89bc.png)  
I’m trying to get the flyover shots that you see between holes to use as reference for something I’m working on. I can’t find information on how to open them, and it seems to be unresolved from an old github post of yours?

> <https://github.com/retreev/PangLib/issues/8>
>
> There are file types related to model collection/maps, namely:
> 
> \* \`\*.gbin\`
> \* …\`\*.sbin\`
> 
> Handling all file types also involves these files of course, so we need fitting utilities and documentation for them!

---

<div class="post-metadata">

**Author:** ![pixeldesu](https://pangya.community/user_avatar/pangya.community/pixeldesu/32/5_2.png) [@pixeldesu](https://pangya.community/u/pixeldesu)\
**Post date:** [July 1, 2023, 3:39pm UTC](https://pangya.community/t/panglib-a-toolchain-for-pangya-files/22/5 "2023-07-01T15:39:47Z")

</div>

Since then I did some research, but I have no tools for the files ready yet, I can however share what I know so far.

Here’s a Kaitai Struct YAML file that works parsing some info out of .gbin files (not all versions however):

> <https://gist.github.com/pixeldesu/b9ea1517cc039251cb1253753cf52c83>

For sbin files:  
I have no idea how they work exactly. I only know using TextureFinder, that there’s one/multiple DXT(3/4) shadow textures for the course included, but I have no idea what the data around means, so that it would be enough for us to write a proper parser for the format.
