Developer knowledge network ยท moderated exchange

Komunitas Kode Tidak Dapat Diandalkan

Riset Pengembang, Rekayasa Terbalik & Komunitas Pengkodean

Knowledge indexHidup
4Categories
919Threads
2.8KPostingan
Analysis

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

ue5_explorer
UE Specialist
MEMBER
Reputasi: 107
Tanggal Bergabung: Mar 2020
Postingan: 6
Terima kasih: 69
1 bulan yang lalu ยท 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
Reputasi: 215
Tanggal Bergabung: Mar 2018
Postingan: 86
Terima kasih: 61
1 bulan yang lalu ยท 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
Reputasi: 162
Tanggal Bergabung: May 2018
Postingan: 73
Terima kasih: 42
1 bulan yang lalu ยท Jul 3, 2026 4:12 AM
#3

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