HLSW Global ID Database Format

From HLSW Wiki

Jump to: navigation, search

Global ID Database v5

The Global ID Database v5 (DB5) is the file created by HLSW to store all the captured players and their IDs.

The format specification below was originally written by User:Detritus after hours of guess work on the possible format used by HLSW. The format has since been verified as correct by the HLSW team and further information added to allow developers to work with files created by older versions of HLSW (DB1, 2, 3, 4).

Type Name Dependency Comment
HLSW GID File
INT32 Version This documentation is for version 1 to 5 ONLY!
INT16 GIDCount Version == 1 Number of GID entries in this file
INT32 GIDCount Version >= 2
GIDData * GIDCount GIDArray &nbsp Loop the below structure by GID Count
GIDData Type
INT32 WONID Version < 4 WONID (only in old formats)
INT16 NameCount   Number of Names for this WONID
CString * NameCount NameArray NameCount multiplied by CString
CString Comment
INT8 Type 0 - Normal

1 - Friend
2 - Lamer
3 - Auto Added
4 - Blue
5 - Brown

BOOL bBanned Version >= 3 0 = Player not banned

1 = Player banned

INT8 GIDType Version >= 4 0 = Invalid (Ignore it)

1 = IP
2 = WON ID
3 = Steam ID
4 = UT2003
5 = BF1942 (New in Version 5)

GIDType -> GID GID Version >= 4 Depending on the GIDType, the GID will be in one of the below format.
GID Type
INT32 (LongIP) GID GIDType == 1 Use the function inet_ntoa to convert the number into an ip string
INT32 GID GIDType == 2 WONID
INT8:INT8:INT32 GID GIDType = 3 Steam_A:B:C

A = INT8
B = INT8
C = INT32

INT32 GID GIDType = 4 UT2003 Global ID
INT8 * 16 GID GIDType = 5 && Version >= 5 16 Bytes BF1942 Hash

CString:
INT8 = Length of string
String = String * Length

BOOL:
INT8

Personal tools
Developer