Quick reference for terms used throughout this guide. Page references indicate the primary location where each term is explained.
A
- AActor
-
Base class for all objects that can be placed in a level. Size: 912 bytes. See Appendix A.
- AES-256-ECB
-
Advanced Encryption Standard with 256-bit key in Electronic Codebook mode. Used by BL4 for save file encryption. See Chapter 4.
- ASLR
-
Address Space Layout Randomization. Security feature that randomizes memory addresses on each launch. See Chapter 3.
- AOakCharacter
-
BL4’s main player/enemy character class. Size: 38,800 bytes. Contains health, damage, and weapon state. See Appendix A.
B
- Base85
-
Number encoding using 85 printable ASCII characters. BL4 uses a custom alphabet for item serials. See Chapter 5.
- Big-Endian
-
Byte order where most significant byte comes first. Used in Base85 decoding. See Chapter 1.
- Bit Mirroring
-
Reversing the bit order within each byte (e.g., 0b10000111 → 0b11100001). Part of serial decoding. See Chapter 5.
- Bitstream
-
Sequence of bits read without byte alignment. Used in item serial encoding. See Chapter 5.
C
- CDO
-
Class Default Object. UE’s template object containing default property values. See Chapter 2.
- ClassPrivate
-
UObject field at offset 0x10 pointing to the object’s UClass. See Chapter 2.
- Comparison Index
-
The 32-bit index portion of an FName, used to look up strings in GNames. See Chapter 2.
D
- DataTable
-
UE asset type for tabular data. Contains rows of structured data. See Chapter 6.
- Dedicated Drop
-
Loot that only drops from specific enemies. See Appendix C.
E
- ECB
-
Electronic Codebook. Block cipher mode where identical plaintext blocks produce identical ciphertext. See Chapter 4.
F
- FField
-
UE5’s property descriptor base class. Replaces UProperty from UE4. See Appendix A.
- FName
-
Unreal’s string identifier. 8 bytes containing index and instance number. See Chapter 2.
- FNamePool
-
Global string pool containing all FName strings. Also called GNames. See Chapter 2.
- FProperty
-
UE5 property descriptor. Contains offset, size, and type information. See Appendix A.
- FString
-
Unreal’s dynamic string type. 16 bytes containing pointer, count, and capacity. See Appendix A.
- FTransform
-
96-byte structure containing rotation (FQuat), translation (FVector), and scale. See Appendix A.
- FVector
-
24-byte 3D vector using doubles (not floats like UE4). See Appendix A.
G
- GNames
-
Global FName string pool. Located at offset 0x112a1c80 from PE base. See Chapter 2.
- GUObjectArray
-
Global array containing all UObjects. Located at offset 0x113878f0. See Chapter 2.
- GWorld
-
Pointer to current UWorld. Located at offset 0x11532cb8. See Appendix A.
H
- Heap
-
Memory region for dynamic allocations. Valid range: 0x10000-0x800000000000. See Chapter 3.
- Hexadecimal
-
Base-16 number system using 0-9 and A-F. See Chapter 1.
I
- InternalIndex
-
UObject field at offset 0x0C containing position in GUObjectArray. See Chapter 2.
- IoStore
-
UE5’s container format using .utoc (table of contents) and .ucas (data) files. See Chapter 6.
- Item Pool
-
Definition of possible loot drops. See Appendix C.
- Item Serial
-
Base85-encoded string representing an item’s full configuration. See Chapter 5.
L
- Little-Endian
-
Byte order where least significant byte comes first. Used by x86/x64 and save files. See Chapter 1.
- Luck
-
Game system that modifies loot rarity chances. See Appendix C.
M
- Magic Header
-
Fixed bit pattern at start of data. Item serials use 0010000 (7 bits). See Chapter 5.
- MDMP
-
Windows minidump format. Used for memory dump files. See Chapter 3.
N
- NamePrivate
-
UObject field at offset 0x18 containing the object’s FName. See Chapter 2.
- Nibble
-
Half a byte (4 bits). Used in VarInt encoding. See Chapter 5.
O
- ObjectFlags
-
UObject field at offset 0x08 containing RF_* state flags. See Chapter 2.
- Oodle
-
Compression algorithm used in UE5 IoStore containers. See Chapter 6.
- OuterPrivate
-
UObject field at offset 0x20 pointing to parent/container object. See Chapter 2.
P
- Pak File
-
Legacy UE archive format (.pak). See Chapter 6.
- Part
-
Token type in item serials representing weapon components. See Chapter 5.
- PE Base
-
Base address of Windows executable (0x140000000 for BL4). See Chapter 3.
- PKCS7
-
Padding scheme for block ciphers. See Chapter 4.
- Pointer Chain
-
Sequence of pointer dereferences to reach target data. See Chapter 3.
R
- Rarity
-
Item quality tier (Common, Uncommon, Rare, Epic, Legendary). See Appendix B.
- Reflection
-
UE’s runtime type information system. See Chapter 2.
- retoc
-
Tool for extracting IoStore containers. See Chapter 6.
- RIP-Relative
-
x64 addressing mode relative to instruction pointer. See Chapter 3.
S
- Separator
-
Token type in item serials marking section boundaries. See Chapter 5.
- Serial
-
See Item Serial.
- Steam ID
-
Unique identifier for Steam accounts. Used to derive encryption key. See Chapter 4.
- SuperStruct
-
UStruct field at offset 0x40 pointing to parent class. See Appendix A.
T
- TArray
-
Unreal’s dynamic array template. 16 bytes containing pointer, count, max. See Appendix A.
- Token
-
Discrete data element in item serial bitstream. Types: VarInt, VarBit, Part, String, Separator. See Chapter 5.
U
- uasset
-
Unreal asset file containing object definitions and properties. See Chapter 6.
- UClass
-
UE’s class definition object. Size: 512 bytes. See Chapter 2.
- ucas
-
IoStore container archive file containing compressed asset data. See Chapter 6.
- uexp
-
Bulk data file accompanying .uasset. See Chapter 6.
- UObject
-
Base class for all Unreal objects. Size: 40 bytes. See Chapter 2.
- Usmap
-
Mapping file containing UE reflection data for parsing unversioned assets. See Chapter 2.
- UStruct
-
UE’s structure/class layout descriptor. Size: 176 bytes. See Chapter 2.
- utoc
-
IoStore table of contents file. See Chapter 6.
V
- VarBit
-
Token type with 5-bit length prefix followed by N data bits. See Chapter 5.
- VarInt
-
Variable-length integer using 4-bit nibbles with continuation bits. See Chapter 5.
- Virtual Address (VA)
-
Memory address in process’s virtual address space. See Chapter 3.
- VTable
-
Virtual function table pointer at offset 0x00 of UObjects. See Chapter 2.
W
- WASM
-
WebAssembly. Binary format for running code in browsers. See Chapter 7.
Z
- Zen Package
-
UE5’s internal package format used in IoStore containers. See Chapter 6.
- zlib
-
Compression library. Used for save file compression after encryption. See Chapter 4.
Symbols
- @Ug
-
Prefix for all BL4 item serials. See Chapter 5.
- 0x
-
Prefix indicating hexadecimal number. See Chapter 1.
Quick Reference: Playable Characters
| Amon |
Char_Forgeknight |
Forgeknight Class Mod |
| Rafa |
Char_ExoSoldier |
Exo-Soldier Class Mod |
| Harlowe |
Char_Gravitar |
Gravitar Class Mod |
| Vex |
Char_Siren |
Siren Class Mod |
Quick Reference: Key Offsets
| GUObjectArray |
0x113878f0 |
All UObjects |
| GNames |
0x112a1c80 |
FName pool |
| GWorld |
0x11532cb8 |
Current world |
| ClassPrivate |
+0x10 |
UObject’s class |
| NamePrivate |
+0x18 |
UObject’s name |
| OuterPrivate |
+0x20 |
UObject’s parent |
| SuperStruct |
+0x40 |
UStruct’s parent |
Quick Reference: File Extensions
| .sav |
Encrypted save file |
| .pak |
Legacy archive |
| .utoc |
IoStore index |
| .ucas |
IoStore data |
| .uasset |
Asset file |
| .uexp |
Bulk data |
| .usmap |
Mapping file |
This glossary covers terms from all chapters and appendices.