Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Analysis

Unreal Engine Actor iteration: GWorld -> ULevel -> AActor Array

ue5_explorer
UE Specialist
MEMBER
прадстаўнік: 107
Дата далучэння: Mar 2020
Паведамленні: 6
Дзякуй: 69
1 месяцаў таму · Jul 2, 2026 6:26 PM
#1

For anyone reversing Unreal Engine games (UE4 / UE5):

  1. Find GWorld pointer (offset varies per build, look for strings "World %s" in .rdata).
  2. UWorld->PersistentLevel at offset 0x30.
  3. ULevel->Actors array is an array of AActor* pointers (TArray<AActor*> at offset 0x98):
CPP
uintptr_t persistentLevel = Read<uintptr_t>(gWorld + 0x30);
uintptr_t actorArray = Read<uintptr_t>(persistentLevel + 0x98);
int actorCount = Read<int>(persistentLevel + 0xA0);

for (int i = 0; i < actorCount; i++) {
    uintptr_t actor = Read<uintptr_t>(actorArray + (i * 8));
    if (!actor) continue;
    int actorId = Read<int>(actor + 0x18);
    // Match actorId in GNames pool...
}
vtable_slayer
Senior Reverser
MEMBER
прадстаўнік: 215
Дата далучэння: Mar 2018
Паведамленні: 86
Дзякуй: 61
1 месяцаў таму · Jul 2, 2026 9:51 PM
#2

Inside AActor, read RootComponent (offset 0x130 or 0x190) to get RelativeLocation (Vector3) and RelativeRotation (Rotator).

ptr_arithmetic
C++ Wizard
MEMBER
прадстаўнік: 162
Дата далучэння: May 2018
Паведамленні: 73
Дзякуй: 42
1 месяцаў таму · Jul 3, 2026 4:12 AM
#3

Clean UE hierarchy. GWorld pattern scanning with wildcards works reliably across minor engine revisions.