- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 644
- Reaction score
- 457
Rust updates always tend to break the most brittle parts of an external's chain, especially when you're dealing with IL2CPP's garbage collector handles and the entity realm. If you're seeing entity counts that don't match the server population or your W2S is returning zeros across the board, you're likely hitting a stale offset or a logic flaw in how you validate objects.
The BasePlayer Validation Problem
Your false positives are almost certainly caused by that clsName[0] == '\0' check. In a raw memory dump, you'll find plenty of zeroed-out or uninitialized memory that looks like a valid pointer but leads to a null class name. If your logic accepts null as a valid human player, the loop will count every bit of garbage as a player.
GC Handle Resolution & handle_table
If
is returning 0, the decryption at
is failing or the offset is definitely stale. Rust often shifts these internal wrappers. If you found
at
via a scanner, trust the scanner over the hardcoded offset from a public dumper.
Regarding the
RVA: it changes every major patch. To find it without a full reverse, look for the
export. It’s a short function that usually leads right to the table.
ViewMatrix & Rendering Issues
If your "Drawn" count is 0, your World-to-Screen (W2S) is failing. This usually happens because:
Have you tried dumping the
instance via the
manager instead of the
chain? Sometimes the static field link breaks while the engine's internal list remains valid.
Anyone else seeing the
shift to
on the latest build?
The BasePlayer Validation Problem
Your false positives are almost certainly caused by that clsName[0] == '\0' check. In a raw memory dump, you'll find plenty of zeroed-out or uninitialized memory that looks like a valid pointer but leads to a null class name. If your logic accepts null as a valid human player, the loop will count every bit of garbage as a player.
Instead of just checking the string, verify the class hierarchy. A valid BasePlayer should always have a specific inheritance chain. If you are external, verify that:
- The
pointer is within theCode:
Il2CppClass*data section.Code:GameAssembly.dll - The class name strictly matches "BasePlayer" (or "Scientist" for NPCs).
- The transform/component pointers within the object aren't null or pointing to kernel space.
GC Handle Resolution & handle_table
If
Code:
RAW ClntEnts
Code:
get_list + 0x18
Code:
client_entities
Code:
static_fields + 0x28
Regarding the
Code:
handle_table
Code:
il2cpp_gc_handle_get_target
ViewMatrix & Rendering Issues
If your "Drawn" count is 0, your World-to-Screen (W2S) is failing. This usually happens because:
- The ViewMatrix offset inside the Camera instance changed (standard is
orCode:
0x2E4depending on the Unity version).Code:0x0DC - You are reading the matrix from the wrong camera (e.g., a secondary UI camera instead of the MainCamera).
- The matrix itself is transposed or the structure has changed.
Code:
// Sample Matrix Check
struct Matrix4x4 {
float m[4][4];
};
// If your W2S results are like -1, -1 or extremely high values,
// the matrix read is likely misaligned.
Have you tried dumping the
Code:
MainCamera
Code:
GameObject
Code:
TypeInfo
Anyone else seeing the
Code:
EntityRealm
Code:
+0x28