- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 247
- Reaction score
- 7
Boys, need some help with this. Working on an external build and I've got the driver side solid, but I'm hitting a wall trying to resolve class objects for my RPM logic.
I'm looking at ConVar.Graphics specifically:
I've tried standard memory reading by doing GameAssembly.dll + 0x1EBA0 + 0x18, but it's returning junk or just failing to map properly. I've also tried dereferencing the base RVA, but that's obviously not hitting the static instance address correctly in an external context.
Has anyone dealt with accessing ConVar classes externally? If you have a cleaner way to resolve these objects without just dumping the whole assembly into IDA, drop a hint. If anyone has a better pattern for finding the static base, I'm all ears.
I'm looking at ConVar.Graphics specifically:
Code:
/ Namespace: ConVar
[ConsoleSystem.Factory] // RVA: 0x1EBA0 Offset: 0x1DFA0 VA: 0x18001EBA0
public class Graphics : ConsoleSystem // TypeDefIndex: 11688
{
// Fields
private const float MinShadowDistance = 40;
private const float MaxShadowDistance2Split = 180;
private const float MaxShadowDistance4Split = 800;
private static float _shadowdistance; // 0x0
[ClientVar] // RVA: 0xC4F0 Offset: 0xB8F0 VA: 0x18000C4F0
public static int shadowmode; // 0x4
[ClientVar] // RVA: 0xC4F0 Offset: 0xB8F0 VA: 0x18000C4F0
public static int shadowlights; // 0x8
private static int _shadowquality; // 0xC
[ClientVar] // RVA: 0xC4F0 Offset: 0xB8F0 VA: 0x18000C4F0
public static bool grassshadows; // 0x10
[ClientVar] // RVA: 0xC4F0 Offset: 0xB8F0 VA: 0x18000C4F0
public static bool contactshadows; // 0x11
[ClientVar] // RVA: 0xC4F0 Offset: 0xB8F0 VA: 0x18000C4F0
public static float drawdistance; // 0x14
private static float _fov; // 0x18
I've tried standard memory reading by doing GameAssembly.dll + 0x1EBA0 + 0x18, but it's returning junk or just failing to map properly. I've also tried dereferencing the base RVA, but that's obviously not hitting the static instance address correctly in an external context.
- Is this a static field issue where I need to resolve the pointer to the static instance first?
- How are you guys handling the IL2CPP metadata transition for statics in your externals?
- Do I need to scan for the pattern instead of using hardcoded offsets given the current game updates?
Has anyone dealt with accessing ConVar classes externally? If you have a cleaner way to resolve these objects without just dumping the whole assembly into IDA, drop a hint. If anyone has a better pattern for finding the static base, I'm all ears.