Lua:bOr

From Cheat Engine
Revision as of 14:46, 3 December 2025 by Leunsel (talk | contribs) (Major overhaul of the post.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

function bOr(int1, int2) : Integer

Performs a bitwise OR operation between two integer values. This function behaves the same as Lua's bitwise OR operator (|) inside Cheat Engine. It is typically used when combining bitmasks or ensuring specific bits are set.

Function Parameters

Parameter Type Description
int1 integer The first integer value to be used in the bitwise OR operation.
int2 integer The second integer value to be combined with int1.

Returns

An integer representing the result of the bitwise OR operation.

Description

The bitwise OR operation compares each bit of the two integers and sets the bit in the result to 1 if either corresponding bit is 1. This is commonly used for:

  • Combining bitmask flags
  • Setting specific bit values
  • Low-level memory and instruction manipulation

Binary breakdown example:

0001   (1)
0010   (2)
----
0011   (3)

Usage Examples

Simple bitwise OR:

print( bOr(1, 2) )   -- 3

Using Lua's OR operator (equivalent):

print( 1 | 2 )        -- 3

Combining bitmask flags:

local FLAG_A = 0x01
local FLAG_B = 0x04
local combined = bOr(FLAG_A, FLAG_B)
print(string.format("0x%X", combined)) -- 0x5

Applying OR to set bits:

local value = 0x10
value = bOr(value, 0x02)   -- Set bit 1
print(string.format("0x%X", value))

Behavior

  • Always returns an integer.
  • Only works on numeric values; non-integer types should be converted beforehand.
  • Equivalent to the native bitwise OR operator (|) in Cheat Engine's Lua.

Advanced Examples

Using OR to toggle feature flags:

local FEATURE_RENDER = 0x01
local FEATURE_PHYSICS = 0x02
local enabled = 0

-- Enable rendering
enabled = bOr(enabled, FEATURE_RENDER)
-- Enable physics
enabled = bOr(enabled, FEATURE_PHYSICS)

print(enabled)   -- 3

Combining OR with bitwise AND for flag management:

local flags = 0
flags = bOr(flags, 0x08)   -- Enable bit 3
if (flags & 0x08) ~= 0 then
  print("Bit 3 enabled")
end

See Also

  • bOr - Bitwise OR
  • bXor - Bitwise XOR
  • bAnd - Bitwise AND
  • bShl - Bitwise Shift Left
  • bShr - Bitwise Shift Right
  • bNot - Bitwise NOT