Quick reference for terms used throughout this guide. Page references indicate the primary location where each term is explained.
16.1 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.
16.2 B
bl4-community
Axum-based REST API server for sharing verified item data between users. Part of the bl4 monorepo. See Chapter 9.
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.
16.3 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.
16.4 D
Differential Encoding
NCS string compression where subsequent strings store only their difference from the first. The prefix 1airship means “replace first character and append ‘airship’”. See Chapter 6.
DataTable
UE asset type for tabular data. Contains rows of structured data. See Chapter 7.
Dedicated Drop
Loot that only drops from specific enemies. See Appendix C.
16.5 E
ECB
Electronic Codebook. Block cipher mode where identical plaintext blocks produce identical ciphertext. See Chapter 4.
16.6 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.
FNV-1a
Fowler-Noll-Vo hash function (variant 1a). Used by NCS format for field name lookups. 64-bit version with offset basis 0xcbf29ce484222325 and prime 0x100000001b3. See Chapter 6.
FOD (Fog of Discovery)
The map fog overlay that clears as you explore. Stored in save files as a 128x128 grayscale alpha map per zone (0=fogged, 255=revealed, intermediate values for soft edges). See Chapter 4.
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.
16.7 G
gBx
Magic header for NCS files (0x67 0x42 0x78). Followed by variant byte and Oodle-compressed payload. See Chapter 6.
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.
16.8 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.
16.9 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 7.
Item Pool
Definition of possible loot drops. See Appendix C.
Item Serial
Base85-encoded string representing an item’s full configuration. See Chapter 5.
16.10 L
Licensed Parts
BL4’s cross-manufacturer part system. A weapon can gain abilities from other manufacturers (e.g., Jakobs Ricochet on a Vladof rifle). Level-gated via Att_MinGameStage_LicensedPart_* attributes. See Chapter 8.
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.
16.11 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.
16.12 N
NCS (Nexus Config Store)
Gearbox’s format for storing item pools, part data, and game configuration. Uses gBx header with Oodle compression. Contains data not found in standard PAK assets. See Chapter 6.
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.
16.13 O
ObjectFlags
UObject field at offset 0x08 containing RF_* state flags. See Chapter 2.
Oodle
Compression algorithm used in UE5 IoStore containers and NCS files. BL4 uses version 9 (oo2core_9_win64.dll). See Chapter 6 and Appendix D.
OuterPrivate
UObject field at offset 0x20 pointing to parent/container object. See Chapter 2.
16.14 P
Parts System
BL4’s item assembly system where weapons are composed of individual parts (barrel, grip, scope, etc.) drawn from per-manufacturer pools. Defined in NCS inv.bin, not PAK assets. See Chapter 8.
Sequence of pointer dereferences to reach target data. See Chapter 3.
16.15 R
Root/Sub Scope
In BL4’s part system, the GbxSerialNumberIndex.scope field distinguishes Root (core item structure) from Sub (modular attachment) parts. In serials, part indices map directly to the parts database — no bit manipulation needed. See Chapter 8.
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 7.
RIP-Relative
x64 addressing mode relative to instruction pointer. See Chapter 3.
16.16 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.
16.17 T
Tag-Based Encoding
The most complex NCS binary format, used by inv.bin and gbxactor.bin. Each byte acts as a type tag (0x61=pair, 0x62=u32, 0x63=u32f32, 0x64-0x66=list, 0x70=variant, 0x7a=end) determining how to interpret following data. See Chapter 6.
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.
16.18 U
uasset
Unreal asset file containing object definitions and properties. See Chapter 7.
UClass
UE’s class definition object. Size: 512 bytes. See Chapter 2.