Skip to content
NNKtv28 edited this page Sep 28, 2026 · 2 revisions

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.

Why it is not just a byte scanner

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.

Install

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 info

Run it as the same Windows user that runs the game. Admin rights are not needed.

What it is good for

  • 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.

Pages

Tests

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 structures

None of the tests need the game running.

Clone this wiki locally