From HLSW Wiki
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 |
  |
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