- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 271
- Reaction score
- 7
Spent the last few nights digging through the Phasmophobia memory map, and it's clear the game is heavily utilizing dynamic addressing for room objects. If you're still hunting for the bone or the ghost's favorite room using simple text strings in Cheat Engine, you're going to hit a wall every time the level reloads.
The Problem with Static Scanning
Scanning for room names or entity strings is a trap. The game manages these locations via pointers that shift on every instance initialization. If you're finding an address that dies after a restart, you've found a transient pointer, not the base object.
Technical Hurdles
Honestly, trying to save these addresses for later without a proper pointer map is a headache. You're better off finding the base LevelManager pointer and scanning the structure offset from there.
Anyone successfully dumped the room structure in the current build yet, or are we still dealing with obfuscated object headers?
The Problem with Static Scanning
Scanning for room names or entity strings is a trap. The game manages these locations via pointers that shift on every instance initialization. If you're finding an address that dies after a restart, you've found a transient pointer, not the base object.
Technical Hurdles
- Room IDs vs. Names: The game logic relies on an internal ID system rather than the human-readable string. You need to hook into the RoomManager or the specific Level controller to grab the pointer chain.
- Ghost Data: The favorite room isn't just a static value; it's often a member of the ghost AI state. You need to trace the ghost's parent entity and look for the room reference index.
- Meaningless Values: If you're seeing fluctuating values when moving between rooms, you're likely staring at a camera index or an active collision flag, not the room ID itself.
- Use 'Find out what accesses this address' on your dummy found value to trace back the instruction set.
- Look for Unity-specific patterns in the heap, as the game uses the engine's standard object naming conventions for level components.
- Filter your memory search by 'Group' or 'Struct' types instead of simple 4-byte integers to catch object IDs.
Honestly, trying to save these addresses for later without a proper pointer map is a headache. You're better off finding the base LevelManager pointer and scanning the structure offset from there.
Anyone successfully dumped the room structure in the current build yet, or are we still dealing with obfuscated object headers?