Developer knowledge network · moderated exchange

Сообщество UnreliableCode

Сообщество разработчиков, обратного проектирования и кодирования

Tutorial

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

apex_glow_god
Apex Reverser
MEMBER
Представитель: 128
Дата присоединения: Dec 2020
Сообщения: 8
Спасибо: 30
1 месяцев назад · 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
Представитель: 215
Дата присоединения: Mar 2018
Сообщения: 86
Спасибо: 61
1 месяцев назад · 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
Представитель: 105
Дата присоединения: Aug 2018
Сообщения: 52
Спасибо: 41
1 месяцев назад · Jul 1, 2026 3:28 PM
#3

Clean explanation of Source engine modified name table.