Developer knowledge network ยท moderated exchange

UnreliableCode Community

Developer Research, Reverse Engineering & Coding Community

Knowledge indexLive
4Categories
919Threads
2.8KPosts
Tutorial

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

apex_glow_god
Apex Reverser
MEMBER
Rep: 128
Join Date: Dec 2020
Posts: 8
Thanks: 30
1 months ago ยท 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
Rep: 215
Join Date: Mar 2018
Posts: 86
Thanks: 61
1 months ago ยท 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
Rep: 105
Join Date: Aug 2018
Posts: 52
Thanks: 41
1 months ago ยท Jul 1, 2026 3:28 PM
#3

Clean explanation of Source engine modified name table.