Developer knowledge network · moderated exchange

UnreliableCode-Community

Community für Entwicklerforschung, Reverse Engineering und Codierung

Knowledge indexLive
4Categories
919Threads
2.8KBeiträge
Tutorial

Traversing Apex Legends String Table & GNames to Resolve Entity Class Names [v2.4 Technical Discussion]

apex_glow_god
Apex Reverser
MEMBER
Vertreter: 128
Beitrittsdatum: Dec 2020
Beiträge: 8
Danke: 30
Vor 1 Monaten · Jun 30, 2026 5:28 PM
#1

In Apex Legends (Source engine modified fork), entity class names (CPlayer, CWeaponX, PropSurvival) are indexed in the global String Table:

  1. Find NameList base pointer (0x140000000 + offset_namelist).
  2. For entity index $i$:
    $$pNameEntry = (uint64_t)(NameList + (i \times 0x10))$$
  3. String at pNameEntry returns "player", "prop_survival", or "npc_prowler".

Instantly identifies whether an entity index represents a player, deathbox, or loot item!

vtable_slayer
Senior Reverser
MEMBER
Vertreter: 215
Beitrittsdatum: Mar 2018
Beiträge: 86
Danke: 61
Vor 1 Monaten · Jun 30, 2026 10:35 PM
#2

NameList string table indexing is so fast. Zero string comparisons inside the main entity render loop.

matrix_math_guy
Math Specialist
MEMBER
Vertreter: 105
Beitrittsdatum: Aug 2018
Beiträge: 52
Danke: 41
Vor 1 Monaten · Jul 1, 2026 3:28 PM
#3

Clean explanation of Source engine modified name table.