Repository navigation
lcmem
lcmem is a memory reader and writer for the Lovecraft client. It is pure
Python plus numpy. Nothing is injected into the game: no DLLs, no remote
threads, no hooks. It works through ReadProcessMemory /
WriteProcessMemory and by reading the game's own Mono data structures.
The game uses Mono, not IL2CPP, and Assembly-CSharp.dll is unencrypted on
disk. So lcmem reads the real C# metadata (about 1,964 types and 11,915
fields) and can name what it finds:
$ python -m lcmem type CameraFXManager
CameraFX.CameraFXManager (extends UnityEngine.MonoBehaviour)
+0x020 UnityEngine.Light _flashLight
+0x028 UnityEngine.Camera _camera
+0x054 f32 CameraFOV
...
At runtime it follows each object's vtable to its MonoClass, so it can
answer "what is this address?". A number found by scanning can be traced back
to a named field on a named class.
Needs 64-bit Python 3.10+ and numpy.
git clone https://github.com/NNKTV28/LoveMenu.git
cd LoveMenu
pip install -r requirements.txt
python -m lcmem infoRun it as the same Windows user that runs the game. Admin rights are not needed.
- Client-side values: camera and FOV, look sensitivity, UI scale, render and quality settings, frame-rate caps.
- Investigating: finding what a value is, which object owns it, and what changing it does, before writing a proper Love Menu feature for it.
It cannot change anything the server owns. See Home.
- Commands: full command reference
- Scanning: finding a value and turning it into a named field
- Patches: shareable JSON patches with backup and revert
- Mono internals: how field offsets are predicted
-
Tools: flight:
lc_flight
python tests/test_roundtrip.py # scan/refine/write against a throwaway process
python tests/test_offline.py # metadata parsing and patches, no game needed
python tests/test_flight.py # flight locator against replica structuresNone of the tests need the game running.