Serial ID is the first VarInt in decoded item serials.
10.3 Weapon Types
10.3.1 Type Codes
Code
Type
Description
AR
Assault Rifle
Full-auto/burst rifles
HW
Heavy Weapon
Launchers, miniguns
PS
Pistol
Handguns
SG
Shotgun
Spread weapons
SM
SMG
Submachine guns
SR
Sniper Rifle
Precision weapons
10.3.2 EWeaponType Enum
Internal weapon type enumeration (from usmap):
Value
Type
0
None
1
Pistol
2
SMG
3
Shotgun
4
AssaultRifle
5
Sniper
6
Heavy
7
Count
10.4 Scope Parts by Manufacturer
10.4.1 BOR (Borg)
Heavy Weapons:
Part
Variants
BOR_HW_Scope_Barrel_01
Base
BOR_HW_Scope_Barrel_02
Base
Shotguns:
Part
Variants
BOR_SG_Scope_01_L1
001-009
BOR_SG_Scope_01_L2
002-008
BOR_SG_Scope_02_L1
001-008
BOR_SG_Scope_02_L2
001-005
BOR_SG_Scope_Irons
001
SMGs:
Part
Variants
BOR_SM_Scope_01_L1
009-010
BOR_SM_Scope_01_L2
001-011
BOR_SM_Scope_02_L1
beam 1-8, LED, Reticle
BOR_SM_Scope_02_L2
001-007, beam
Sniper Rifles:
Part
Variants
BOR_SR_Scope_01_L1
001-014, VFX
BOR_SR_Scope_01_L2
001-002, beam
BOR_SR_Scope_02_L1
002-009
BOR_SR_Scope_02_L2
001, beam
10.4.2 DAD (Daedalus)
Assault Rifles:
Part
Variants
DAD_AR_Scope_01_L1
01-09, BracketFix
DAD_AR_Scope_01_L2
01-06
DAD_AR_Scope_02_L1
01, 08
DAD_AR_Scope_02_L2
01-09
Pistols:
Part
Variants
DAD_PS_Scope_01_L1
01
DAD_PS_Scope_01_L2
01-08
DAD_PS_Scope_02_L1
01-04
DAD_PS_Scope_02_L2
02-03
Shotguns:
Part
Variants
DAD_SG_Scope_01_L1
01-02
DAD_SG_Scope_01_L2
02, 04
DAD_SG_Scope_02_L1
01-02
DAD_SG_Scope_02_L2
01-03
SMGs:
Part
Variants
DAD_SM_Scope_01_L1
01-03
DAD_SM_Scope_01_L2
01-08, 011-015
DAD_SM_Scope_02_L1
01
DAD_SM_Scope_02_LB
01-03 (legendary barrel)
10.4.3 JAK (Jakobs)
Assault Rifles:
Part
Variants
JAK_AR_Scope_01_L1
01-03
JAK_AR_Scope_01_L2
01-03
JAK_AR_Scope_02_L1
01-03
JAK_AR_Scope_02_L2
01-02
Pistols:
Part
Variants
JAK_PS_Scope_01_L1
01-03
JAK_PS_Scope_01_L2
01-03
JAK_PS_Scope_02_L1
01-03
JAK_PS_Scope_02_L2
01-03
Shotguns:
Part
Variants
JAK_SG_Scope_01_L1
01
JAK_SG_Scope_01_L2
02
JAK_SG_Scope_02_L1
01, 03
JAK_SG_Scope_02_L2
01
Sniper Rifles:
Part
Variants
JAK_SR_Scope_01_L1
01-03, ADSMask
JAK_SR_Scope_01_L2
01
JAK_SR_Scope_02_L1
01
JAK_SR_Scope_02_L2
01-02
10.4.4 MAL (Maliwan)
Heavy Weapons:
Part
Variants
MAL_HW_Scope_01
01-07, Proje
MAL_HW_Scope_02
01-02, Proje, Shield
Shotguns:
Part
Variants
MAL_SG_Scope_01_L1
01
MAL_SG_Scope_01_L2
01
MAL_SG_Scope_02_L1
Base
MAL_SG_Scope_02_L2
01-06, ADSMask, Projes
SMGs:
Part
Variants
MAL_SM_Scope_01_L1
01-05, Base, Proje
MAL_SM_Scope_01_L2
01-07
MAL_SM_Scope_02_L1
01-03
MAL_SM_Scope_02_L2
01-02
Sniper Rifles:
Part
Variants
MAL_SR_Scope_01_L1
01-08, ADSMask, Proje
MAL_SR_Scope_01_L2
01-07, ADSMask
MAL_SR_Scope_02_L1
02, ADSMask, Proje
MAL_SR_Scope_02_L2
01-03
10.4.5 ORD (Order)
Assault Rifles:
Part
Variants
ORD_AR_Scope_01_L1
01, 002
ORD_AR_Scope_01_L2
01
ORD_AR_Scope_02_L2
Mask
Pistols:
Part
Variants
ORD_PS_Scope_01_L1
01
ORD_PS_Scope_01_L2
01-02
ORD_PS_Scope_02_L1
01, ADSMask
ORD_PS_Scope_02_L2
01-03, ADSMask
Sniper Rifles:
Part
Variants
ORD_SR_Scope_01_L1
01
ORD_SR_Scope_01_L2
01, ADSMask
ORD_SR_Scope_02_L1
01-02, ADSMask
ORD_SR_Scope_02_L2
01-02, 002, ADSMask
10.4.6 TED (Tediore)
Assault Rifles:
Part
Variants
TED_AR_Scope_01_L1
01-03, Elements
TED_AR_Scope_01_L2
01-04
TED_AR_Scope_02_L1
ModA, Mask
TED_AR_Scope_02_L2
01, 04
Pistols:
Part
Variants
TED_PS_Scope_01_L1
01-06
TED_PS_Scope_01_L2
01-02
TED_PS_Scope_02_L1
01-04, Line
TED_PS_Scope_02_L2
01-06
Shotguns:
Part
Variants
TED_SG_Scope_01_L1
01-04, 010, 012
TED_SG_Scope_01_L2
01-02, ADSMask
TED_SG_Scope_02_L1
01, 04, ModB02
TED_SG_Scope_02_L2
01, ModB, Proje
10.4.7 TOR (Torgue)
Assault Rifles:
Part
Variants
TOR_AR_Scope_01_L1
01-06
TOR_AR_Scope_01_L2
01-05
TOR_AR_Scope_02_L1
01-04
TOR_AR_Scope_02_L2
01-04, ModB
Heavy Weapons:
Part
Variants
TOR_HW_Scope_01
01-02
TOR_HW_Scope_02
01
TOR_HW_Barrel_01
Mask
TOR_HW_Barrel_02
Mask, Splitter
Pistols:
Part
Variants
TOR_PS_Scope_01_L1
01-03, ModB
TOR_PS_Scope_01_L2
01-03
TOR_PS_Scope_02_L1
01-04, Elements_Updated
TOR_PS_Scope_02_L2
01
Shotguns:
Part
Variants
TOR_SG_Scope_01_L1
01-06
TOR_SG_Scope_01_L2
01-03, B, Compass
TOR_SG_Scope_02_L1
01
TOR_SG_Scope_02_L2
01-04
10.4.8 VLA (Vladof)
Assault Rifles:
Part
Variants
VLA_AR_Scope_01_L1
01-04, BASE
VLA_AR_Scope_01_L2
01-03
VLA_AR_Scope_02_L1
01
VLA_AR_Scope_02_L2
01-02
Heavy Weapons:
Part
Variants
VLA_HW_Scope_01
01-04
VLA_HW_Scope_02
01-05, ADSMask
VLA_HW_Barrel_02
Mask
SMGs:
Part
Variants
VLA_SM_Scope_01_L1
01-08, B, BASE
VLA_SM_Scope_01_L2
01
VLA_SM_Scope_02_L1
01-02
VLA_SM_Scope_02_L2
01, Mask, Triangles
Sniper Rifles:
Part
Variants
VLA_SR_Scope_01_L1
01-07
VLA_SR_Scope_01_L2
01-05, ADSMask
VLA_SR_Scope_02_L1
01, 03
VLA_SR_Scope_02_L2
01-03
10.5 Barrel Parts
10.5.1 Heavy Weapons
Manufacturer
Part
Notes
BOR
BOR_HW_Barrel_01
001-010
BOR
BOR_HW_Barrel_02
001-005, A variant
MAL
MAL_HW_Barrel_02_MIRV
MIRV launcher
TOR
TOR_HW_Barrel_01
With Mask
TOR
TOR_HW_Barrel_02
Splitter variant
VLA
VLA_HW_Barrel_02
With Mask
10.6 Part Index Organization
10.6.1 The Self-Describing Design
A critical discovery: parts don’t have external indices assigned to them—each part stores its own index internally.
Every part UObject contains a GbxSerialNumberIndex at offset +0x28:
Part UObject + 0x28:
├── Scope (1 byte) ← Always 2 for inventory parts
├── Status (1 byte) ← Reserved
└── Index (2 bytes) ← This part's serial index
There is no separate “part → index” mapping file. The mapping IS the parts themselves. This “reverse mapping” design means:
Each part is self-describing and carries its own identity
Adding new parts (e.g., DLC) doesn’t require updating a central registry
Indices are guaranteed stable because they’re intrinsic to each part
Memory extraction gives us authoritative data, not a derived mapping
10.6.2 How Indices Are Assigned
Part indices within each category are assigned based on the game’s internal registration order, not alphabetically. Understanding this is critical for correctly decoding and encoding item serials.
10.6.3 Registration Order Pattern
Parts appear to be registered in groups by functional type:
Some categories have non-contiguous indices. For example, a category might have parts at indices 1-53, skip 54-56, then continue at 57. These gaps may represent:
Reserved slots for future DLC parts
Parts that were removed during development
Internal versioning or compatibility placeholders
10.6.5 Implications for Modding
When working with item serials:
Never assume alphabetical order — Part part_barrel_01 might have index 7, not index 0
Use runtime-extracted data — Only memory dumps capture the true GbxSerialNumberIndex values
Validate against known items — Decode existing item serials to verify index mappings
Account for gaps — Don’t assume contiguous indices when iterating
10.7 Part Compatibility Rules (Verified)
This section documents verified part compatibility rules derived from analyzing actual weapon drops and reference data. These rules are encoded in the part naming conventions and enforced by the game engine.
10.7.1 Rule 1: Prefix Determines Weapon Type
Parts are only valid for weapons matching their prefix:
Prefix
Manufacturer
Weapon Type
DAD_PS.*
Daedalus
Pistol
DAD_AR.*
Daedalus
Assault Rifle
JAK_SG.*
Jakobs
Shotgun
VLA_SM.*
Vladof
SMG
A DAD_PS.part_barrel_01cannot appear on a DAD_AR weapon.
Don’t mix accessories — A barrel_01 weapon cannot have barrel_02_a accessory
Match scope accessories — Check both scope type AND lens type
Respect legendary restrictions — Some unique barrels have no accessories
Count accessories — Stay within the 3-accessory limit
10.8 Part Selection System (Theoretical)
!!! note “Speculative” This section describes classes found in game metadata. Actual implementation may differ. The “Part Compatibility Rules” section above contains verified behavior.
10.8.1 Class-Based Selection (from usmap)
The following classes exist in the game’s type system, suggesting a structured selection mechanism:
Class
Likely Purpose
PartTypeSelectionRules
Rules for selecting parts by type
PartTagSelectionRules
Tag-based part filtering
PartTagGameStageSelectionData
Level requirements for parts
InventorySelectionCriteria
General selection criteria
However, no assets implementing these classes were found in pak files. The selection logic may be: - Hardcoded in C++ binary - Convention-based (parsed from naming) - Or a combination of both
10.9 Part Slot Types
From EWeaponPartValue enum:
Slot
Description
Grip
Weapon grip
Foregrip
Front grip
Reload
Reload mechanism
Barrel
Main barrel
Scope
Optics/scope
Melee
Melee attachment
Mode
Fire mode
ModeSwitch
Mode switch mechanism
Underbarrel
Under-barrel attachment
Custom0-7
Additional custom slots
10.10 Weapon Naming System
Parts affect weapon prefix names through the naming table system.