Help File:Value types

From Cheat Engine
Jump to navigation Jump to search

Cheat Engine supports a variety of scan types for searching memory values in running processes. Each scan type is designed for specific data representations and use cases. Below is an overview of the available scan types and their typical applications.

Binary[edit]

The binary scan is a powerful but slower scan type that allows you to search for specific sequences of bits in memory. You can use wildcards (? or *) to match any bit, making it possible to search for patterns like 1101?001, which matches both 11010001 and 11011001. This is useful for finding values stored in non-standard bit arrangements or when only part of the bit pattern is known.

Byte (8-bits)[edit]

A byte can hold a value between 0 and 255 (unsigned) or -128 to 127 (signed). 1-byte values are common in 8-bit emulators and older software. Scanning for 1-byte values can yield many results, but increases the chance of finding the correct address when the value size is unknown.

2 Bytes (16-bits / WORD)[edit]

A 2-byte (WORD) value can hold numbers between 0 and 65535 (unsigned) or -32768 to 32767 (signed). These are often used in older DOS games and 16-bit applications.

4 Bytes (32-bits / DWORD)[edit]

A 4-byte (DWORD) value can hold numbers between 0 and 4,294,967,295 (unsigned) or -2,147,483,648 to 2,147,483,647 (signed). This is the standard integer size for most Windows applications and is usually the best default scan type.

8 Bytes (64-bits / QWORD)[edit]

An 8-byte (QWORD) value can hold very large numbers, from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. These are less common, but are used in 64-bit applications and for storing large values.

Float/Single (32-bits, IEEE Standard)[edit]

A single-precision floating point value (float) can represent numbers between approximately 1.5 × 10^-45 and 3.4 × 10^38. Floats are stored in a special format (IEEE 754) and are commonly used for decimal values in games. Cheat Engine rounds float values for scanning, so searching for 12 will find values between 11.5 and 12.4.

Double (64-bits, IEEE Standard)[edit]

A double-precision floating point value (double) can represent numbers between approximately 5.0 × 10^-324 and 1.7 × 10^308. Doubles are more precise than floats and are used when higher accuracy is needed.

Text[edit]

The text scan type allows you to search for strings in memory. Text can be stored as UTF-8 or UTF-16 (widechar). This is useful for finding variables that are stored as readable text.

Array of Byte (AoB)[edit]

An array of byte scan lets you search for a specific sequence of bytes, with support for wildcards (?? or **). This is especially useful when you know a unique pattern of bytes near the value you want to find. Example patterns:

xx xx xx xx ...
xx ?? xx xx
xx ** xx xx

All[edit]

The "All" scan type combines byte, 2 bytes, 4 bytes, 8 bytes, single, and double types. It is useful when you are unsure of the value's data type, but may return many results.

Custom[edit]

Custom scan types allow you to define how bytes should be interpreted using Lua or Auto Assembler scripts. You can create, edit, or delete custom types by right-clicking the value type box in Cheat Engine.

For more information and examples, see: Custom type examples


Tips[edit]

  • Use binary and AoB scans for non-standard or unknown data layouts.
  • Use the smallest scan type possible for faster results, but try larger types if you can't find your value.
  • For text, remember to select the correct encoding (UTF-8 or UTF-16).
  • Custom types are powerful for games with encrypted or non-standard value representations.

Links[edit]