MemRE is a lightweight Windows memory editor you can inject (or attach) into any running process to take control of in-application values. Guided “First Scan” & “Next Scan” workflows help you pinpoint addresses in seconds, while built-in pointer scanning (including Unreal Engine’s GWorld) resolves dynamic offsets for you. Customize hotkeys, monitor real-time logs, and export with one click to Cheat Engine (.CT) or our native table format.

Launched May 29 2025 (Early Access).
Found a bug or have feedback? Join us on Discord!

Discord Nightly

Latest

v1.5.3

Added: Community driven Unreal Engine sigs.


Fixed: Hotkeys from completely taking over making it impossible to pass the set hotkey though any other process.


• Changed: The "Pause Game While Scanning" to a kernel‐driven suspend/resume API that won’t deadlock Unreal/ACE mutexes.


Started: Plugin support.


Plugins will allow the community to tap in and change how MemRE works, and allow for additional extensions to be added.

As I develop this, I will add more information including documentation.

GitHub Releases

Stable

v1.4.2

Added: More Unreal Engine Support.


Added: Pause game while scanning.

- Pause game while scanning located in the settings menu. While enabled, MemRE suspends the process until scanning is complete.


Started: Implementation of hotkeys.

- Currently only numbers and letters are supported, I want to ensure functionality before proceeding with special charters ([ ] \ ' ; ') and Function keys.



Fixed: Value box not unlocking after "New Scan" is triggered

v1.3.1

Added: More Unreal Engine compatibility support, Menu Settings for Hotkeys (coming soon), and Pin Logs.


You can now “pin” your logs (bookmark) at any point by right-clicking the log window and selecting “Pin Logs”. This will save the current logs so nothing will be deleted from the point of a Pin. Clearing the logs will reset the pin(s), and you can stack pins if more information is logged you’d like to keep.

v1.2.1

Added: "Changed Value" option to scan parameters.


Reconfigured: Search options to match the corresponding searches being preformed. Also, 4 Bytes and Exact Value is now the "New Scan" defaults.

v1.1.1

Fixed: the issue where scanning "Bigger Than", "Smaller Than", and "Unknown Initial Value" could crashed do to no safeguards.


Added: Marquee while pointer scanner is running.


Added: "Value Between" option to scan parameters.


Formatting: Number-Number


10-25 will show results for addresses that hold numbers 10 through 25 in 1-8 Bytes

10.1-10.5 will show results for addresses that hold numbers 10.1 through 10.5 in Double/Float

v1.0.1

Fixed: "Unknown Initial Value" scan.


Fixed: "Bigger Than" and "Smaller Than"


--Note: When scanning "Bigger Than", "Smaller Than", and "Unknown Initial Value", MemRE will get A LOT of results. If you scan with these and it doesn't seem like MemRE is doing anything, its because its processing in the background. I need to add indicators and safe guards for this, but just know this is a bug and if you start clicking around, MemRE will crash.


Refactored code in preparation of file splitting

Documents

Scanning

MemREs Memory Scanner works like any other memory scanner available. The concept is to locate a value within memory. MemREs memory scanner comes with a variety of options including;


Value Types:


  • Byte
  • 2 Bytes
  • 4 Bytes
  • 8 Bytes
  • Float
  • and Double


Some key notes on Value Types are;


  • Byte (8 bits) can be both signed and unsigned whole number ranging from -128 to 127 (signed) and 0 to 255 (unsigned).


  • 2 Bytes (16 bits)(Short) can be both signed and unsigned whole number ranging from -32,768 to 32,767 (signed) and 0 to 65,535 (unsigned).


  • 4 bytes (32 bits)(Int) can be both signed and unsigned whole number ranging from -2,147,483,648 to 2,147,483,647 (signed) and 0 to 4,294,967,295 (unsigned)


  • 8 bytes (64 bits)(Long) can be both signed and unsigned whole number ranging from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (signed) and 0 to 18,446,744,073,709,551,615 (unsigned)


  • Float (4 bytes (32 bits)) is a real number with an approximate precision of 7 decimal digits with a minimum positive value of ~1.4 × 10⁻⁴⁵ and a max value of ~3.4 × 10³⁸


  • Double (8 bytes (64 bits)) is a real number with an approximate precision of 5-17 decimal digits with a minimum positive value of ~4.9 × 10⁻³²⁴ and a max value of ~1.8 × 10³⁰⁸


Scan Options:


  • Scan the Exact Value
  • Scan a Value that's Bigger Than
  • Scan a Value that's Smaller Than
  • Scan for an Increased Value
  • Scan for an Decreased Value
  • Scan for a Changed Value
  • Scan for a Unchanged Value
  • And scan for an Unknown Initial Value


Some key notes on the Scan Options are;


  • Scanning for an "Exact Value" must have a whole or real number inside the Values text box. i.e. 10 or 10.01.


  • Scanning for a Value that's "Bigger Than" must have a whole or real number inside the Values text box. This value is expected to be greater than the whole or real number inside entered in the Values text box.


  • Scanning for a Value that's "Smaller Than" must have a whole or real number inside the Values text box. This value is expected to be less than the whole or real number inside entered in the Values text box.


  • Scanning for an "Increased Value" requires no whole or real number to be placed inside the Values text box. This is an assumption the number has increased from the last value that was scanned.


  • Scanning for a "Decreased Value" requires no whole or real number to be placed inside the Values text box. This is an assumption the number has decreased from the last value that was scanned.


  • Scanning for a "Changed Value" requires no whole or real number to be placed inside the Values text box. This is an assumption the number has increased or decreased from the last value that was scanned.


  • Scanning for an "Unchanged Value" requires no whole or real number to be placed inside the Values text box. This is an assumption the number has not increased nor decreased from the last value that was scanned.


  • Scanning for a "Unknown Initial Value" requires no whole or real number to be placed inside the Values text box, and can only be triggered on the first scan (Initial). This is an assumption the number is unknown.


Each scan option can be mixed and matched excluding the "Unknown Initial Value", as this is an initial scan type. 


Value types can be changed between each scan and will reflect the current results value types between scans.



Scanning Tutorial


Below is a brief tutorial on how to complete a scan with MemRE. 


Load the game and MemRE. In this demo I'll be using "Cinemaster Cinema Simulator"



Once loaded, attach (or inject) to the game. A window will prompt asking you to select the process.



Double click the process name, then verify you successfully attached (or injected) to the game.



Get into the gameplay so the values will fully populate in memory, then locate the value you would like to search. In this demo, we are targeting Money. Take note money is currently "9,999.00" right now. Because the value has a decimal, we know it's a real number (refer above if confused on value types), so it's either a float or double. I know it's a double, so I will select the correct value type, and enter the current value to be scanned, then press "First Scan".



As you can see, we have results in the Scan Results box and its showing 137 values out of 137. If you get more, and your value isn't changing, you can press "Next Scan" a few times to narrow down the results some. 


To narrow the results down more, we will spend some money in the game so we can search for a new value. As you can see, i spent a single dollar, and now we have a value of 9,998.00



Now we can proceed by updating the new value in MemRE and press our "Next Scan" to further narrow down the results. As you can see, we are left with just one result.



Let’s double-click the results address, and MemRE will add it to our Table List and then we can verify our address by changing our money value back to 9,999.00. Double click the value that was added to the Table List..



While we are here, lets give it a name by double-clicking on the Description of our entry and giving it a name.



For more information on changing names and values in MemRE, please see 𝗱𝗼𝗰𝘀/𝗺𝗮𝗶𝗻_𝗶𝗻𝘁𝗲𝗿𝗳𝗮𝗰𝗲

Plugins

Coming soon…