12315
"Remember Me - Camera Mod v1.1.2 - by IDK31"
000000
1
12427
"See "Table Extras" (bottom right) for more info."
000000
1
12428
"Tick the boxes below to start modding..."
0080FF
1
12429
""
000000
1
12316
"CAMERA CONTROLS [ENABLE]"
FF0000
Auto Assembler Script
[ENABLE]
//"RememberMe.exe"+298FDF - CAMERA
aobscanmodule(cameraAOB,RememberMe.exe,8B 01 8B 80 AC 04 00 00)
alloc(newmem1,$1000)
label(code1)
label(return1)
globalalloc(_camera,4)
newmem1:
code1:
mov [_camera],ecx
mov eax,[ecx]
mov eax,[eax+000004AC]
jmp return1
cameraAOB:
jmp code1
nop
nop
nop
return1:
registersymbol(cameraAOB)
//"RememberMe.exe"+2B7E19 - PLAYER
aobscanmodule(playerAOB,RememberMe.exe,8B 11 8B 82 98 03 00 00 FF D0 85 C0 74 10)
alloc(newmem2,$1000)
label(code2)
label(return2)
globalalloc(_player,4)
newmem2:
code2:
mov [_player],ecx
mov edx,[ecx]
mov eax,[edx+00000398]
jmp return2
playerAOB:
jmp code2
nop
nop
nop
return2:
registersymbol(playerAOB)
//"RememberMe.exe"+92A18B - FOCUS ENERGY
aobscanmodule(energyAOB,RememberMe.exe,8B 89 5C 02 00 00 51)
alloc(newmem3,$1000)
label(code3)
label(return3)
globalalloc(_energy,4)
newmem3:
code3:
mov [_energy],ecx
mov ecx,[ecx+0000025C]
jmp return3
energyAOB:
jmp code3
nop
return3:
registersymbol(energyAOB)
//"RememberMe.exe"+A1A041 - ABILITY COOLDOWNS
aobscanmodule(cooldownsAOB,RememberMe.exe,F3 0F 58 47 30 0F)
alloc(newmem4,$1000)
label(code4)
label(return4)
globalalloc(_cooldowns,4)
newmem4:
code4:
mov [_cooldowns],edi
addss xmm0,[edi+30]
jmp return4
cooldownsAOB:
jmp code4
return4:
registersymbol(cooldownsAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local cbase = readInteger("_camera")
if cbase == 0 or cbase == nil then return end
-- "_player" changes often during play
local playerSymbol = "_player"
local function foundPlayerBase()
local base = readInteger(playerSymbol)
if base == 0 or base == nil then return false end
return true
end
local energySymbol = "_energy"
local function foundEnergyBase()
local base = readInteger(energySymbol)
if base == 0 or base == nil then return false end
return true
end
local cooldownsSymbol = "_cooldowns"
local function foundCDsBase()
local base = readInteger(cooldownsSymbol)
if base == 0 or base == nil then return false end
return true
end
-- CAMERA ADDRESSES
local camXAD = cbase+0x654
local camYAD = cbase+0x658
local camZAD = cbase+0x65C
local tarXAD = cbase+0x670
local tarYAD = cbase+0x674
local tarZAD = cbase+0x678
local rollAD = cbase+0x67C
local FOVAD = cbase+0x66C
local freecamID = readInteger(readInteger(cbase+0x298))
local currentIDAD = cbase+0x27C
-- previous location for camera reset
local p_camXAD = cbase+0x4A4
local p_camYAD = cbase+0x4A8
local p_camZAD = cbase+0x4AC
local p_tarXAD = cbase+0x4C0
local p_tarYAD = cbase+0x4C4
local p_tarZAD = cbase+0x4C8
-- other
local inCombatAD = cbase+0x2548
-- CAMERA VARIABLES
local spinSpeed = 100
local flySpeed = 4
local aimSpeed = math.pi/540
local rollSpeed = math.pi/540
local FOVSpeed = 0.25
local ultraFast = 100 -- how fast in ultra-fast mode
local fastMult = 10 -- how fast in fast mode
local slowDiv = 10 -- how slow in slow mode
local pitchMax = 0.99*math.pi/2
local useZ = true
-- PLAYER ADDRESSES
-- Symbol "_player" changes often, so locate each time
local function healthAD() return readInteger(playerSymbol)+0x37C end
local function ammoAD() return readInteger(playerSymbol)+0xC4C end
local function playerZAD() return readInteger(playerSymbol)+0x5C end
local function playerSizeAD() return readInteger(playerSymbol)+0x6C end
local function playerSpinAD() return readInteger(playerSymbol)+0x64 end
-- other addresses as functions, don't want to abort whole script if not found
local function energyAD() return readInteger(energySymbol)+0x25C end
local function furyCDAD() return readInteger(cooldownsSymbol)+0x30 end
local function bombCDAD() return readInteger(cooldownsSymbol)+0x100 end
local function DOSCDAD() return readInteger(cooldownsSymbol)+0x1D0 end
local function RIPCDAD() return readInteger(cooldownsSymbol)+0x510 end
local function camoCDAD() return readInteger(cooldownsSymbol)+0x5E0 end
-- PLAYER VARIABLES
local maxHealth = 120 -- write as int
local maxAmmo = 250 -- write as float
local maxEnergy = 150 -- write as int
local refillHPEnabled = false
local refillAmmoEnabled = false
local refillFocusEnabled = false
local cooldownsOff = false
local furyCDDefault = 67
local bombCDDefault = 180
local DOSCDDefault = 180
local RIPCDDefault = 180
local camoCDDefault = 180
local function freecamEnabled()
if freecamID == readInteger(currentIDAD) then return true end
return false
end
local function gameHasFocus()
if getOpenedProcessID() == getForegroundProcess() then return true end
return false
end
local function requiredConditions()
if freecamEnabled() and gameHasFocus() then return true end
return false
end
local function resetFreecam()
writeFloat(tarXAD, readFloat(p_tarXAD))
writeFloat(tarYAD, readFloat(p_tarYAD))
writeFloat(tarZAD, readFloat(p_tarZAD))
writeFloat(camXAD, readFloat(p_camXAD))
writeFloat(camYAD, readFloat(p_camYAD))
writeFloat(camZAD, readFloat(p_camZAD))
end
local function toggleFreecam()
if not gameHasFocus() then return end
if freecamEnabled() then -- save camera settings
for j=1,8,1 do camCheat[0].value[j] = readBytes(camCheat.addy[j],4,true) end
writeInteger(currentIDAD, 0)
else
writeInteger(currentIDAD, freecamID)
resetFreecam()
end
end
local function toggleRefillHP()
if refillHPEnabled then refillHPEnabled = false
else refillHPEnabled = true
end
end
local function toggleRefillAmmo()
if refillAmmoEnabled then refillAmmoEnabled = false
else refillAmmoEnabled = true
end
end
local function toggleRefillFocus()
if refillFocusEnabled then refillFocusEnabled = false
else refillFocusEnabled = true
end
end
local function toggleCooldowns()
if not gameHasFocus() or not foundCDsBase() then return end
if cooldownsOff then
writeFloat(furyCDAD(), furyCDDefault)
writeFloat(bombCDAD(), bombCDDefault)
writeFloat(DOSCDAD(), DOSCDDefault)
writeFloat(RIPCDAD(), RIPCDDefault)
writeFloat(camoCDAD(), camoCDDefault)
cooldownsOff = false
else
writeFloat(furyCDAD(), 0)
writeFloat(bombCDAD(), 0)
writeFloat(DOSCDAD(), 0)
writeFloat(RIPCDAD(), 0)
writeFloat(camoCDAD(), 0)
cooldownsOff = true
end
end
local function playerInCombat()
local isInCombat = readInteger(inCombatAD)
-- 4294967293 = -3 (combat training)
if isInCombat == 1 or isInCombat == 4294967293 then return true end
return false
end
-- SAVE/LOAD CAMERA SETTINGS
if camCheat == nil then camCheat = {} end
camCheat.addy = {camXAD; camYAD; camZAD; tarXAD; tarYAD; tarZAD; rollAD; FOVAD}
for i=0,9,1 do
camCheat[i] = {value = {}}
local set = function(sender)
if not requiredConditions() then return end
for j=1,8,1 do camCheat[i].value[j] = readBytes(camCheat.addy[j],4,true) end
end
if i == 0 then set(nil) else
camCheat[i].setHotkey = createHotkey(set, _G["VK_" .. i], VK_MENU)
camCheat[i].setHotkey.DelayBetweenActivate = 1000
end
local get = function(sender)
if not gameHasFocus() or #camCheat[i].value ~= 8 then return end
if not freecamEnabled() then toggleFreecam() end
for j=1,8,1 do
if i ~= 0 then camCheat[0].value[j] = readBytes(camCheat.addy[j],4,true) end
writeBytes(camCheat.addy[j], camCheat[i].value[j])
end
end
camCheat[i].getHotkey = createHotkey(get, _G["VK_" .. i])
camCheat[i].getHotkey.DelayBetweenActivate = 1000
end
-- WATCH FOR SPEED MODIFIER KEYS
local didReset = true
local didSlow = false
local didFast = false
local didUltraFast = false
local spinSpeedOrig = spinSpeed
local flySpeedOrig = flySpeed
local aimSpeedOrig = aimSpeed
local rollSpeedOrig = rollSpeed
local FOVSpeedOrig = FOVSpeed
checkCamKeys = createTimer()
checkCamKeys.setInterval(100)
checkCamKeys.onTimer = function()
if not requiredConditions() then return end
if isKeyPressed(VK_T) then
if not didUltraFast then
spinSpeed = spinSpeedOrig*fastMult
flySpeed = flySpeedOrig*ultraFast
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
didReset = false
didUltraFast = true
end
elseif isKeyPressed(VK_F) then
if not didFast then
spinSpeed = spinSpeedOrig*fastMult
flySpeed = flySpeedOrig*fastMult
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
didReset = false
didFast = true
end
elseif isKeyPressed(VK_C) then
if not didSlow then
spinSpeed = spinSpeedOrig/slowDiv
flySpeed = flySpeedOrig/slowDiv
aimSpeed = aimSpeedOrig/slowDiv
rollSpeed = rollSpeedOrig/slowDiv
FOVSpeed = FOVSpeedOrig/slowDiv
didReset = false
didSlow = true
end
elseif not didReset then
spinSpeed = spinSpeedOrig
flySpeed = flySpeedOrig
aimSpeed = aimSpeedOrig
rollSpeed = rollSpeedOrig
FOVSpeed = FOVSpeedOrig
didUltraFast = false
didFast = false
didSlow = false
didReset = true
end
end
-- WATCH FOR CHEAT HOTKEYS
checkCheatKeys = createTimer()
checkCheatKeys.setInterval(1000)
checkCheatKeys.onTimer = function()
if foundPlayerBase() and playerInCombat() then
if refillHPEnabled then
writeInteger(healthAD(), maxHealth) -- int
end
if refillAmmoEnabled then
writeFloat(ammoAD(), maxAmmo) -- float
end
if refillFocusEnabled and foundEnergyBase() then
writeInteger(energyAD(), maxEnergy)
end
end
end
-- PLAYER FUNCTIONS...
local function toggleHide()
if not gameHasFocus() then return end
if readFloat(playerSizeAD()) == 0 then
writeFloat(playerSizeAD(), 1)
else
writeFloat(playerSizeAD(), 0)
end
end
local function ghostUp()
if not gameHasFocus() then return end
writeFloat(playerZAD(), readFloat(playerZAD())+flySpeed)
end
local function ghostDown()
if not gameHasFocus() then return end
writeFloat(playerZAD(), readFloat(playerZAD())-flySpeed)
end
local function turnLeft()
if not gameHasFocus() then return end
writeInteger(playerSpinAD(), readInteger(playerSpinAD())-spinSpeed)
end
local function turnRight()
if not gameHasFocus() then return end
writeInteger(playerSpinAD(), readInteger(playerSpinAD())+spinSpeed)
end
-- CAMERA FUNCTIONS...
local function toggleUseZ()
if not requiredConditions() then return end
if useZ then useZ = false
else useZ = true
end
end
local function move(moveDir)
if not requiredConditions() then return end
local camZ = readFloat(camZAD)
local tarZ = readFloat(tarZAD)
if moveDir == "up" then
writeFloat(camZAD, camZ+flySpeed)
writeFloat(tarZAD, tarZ+flySpeed)
return
elseif moveDir == "upCamOnly" then
writeFloat(camZAD, camZ+flySpeed)
return
elseif moveDir == "down" then
writeFloat(camZAD, camZ-flySpeed)
writeFloat(tarZAD, tarZ-flySpeed)
return
elseif moveDir == "downCamOnly" then
writeFloat(camZAD, camZ-flySpeed)
return
end
local camX = readFloat(camXAD)
local camY = readFloat(camYAD)
local tarX = readFloat(tarXAD)
local tarY = readFloat(tarYAD)
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local Zdiff = tarZ-camZ
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local dX; local dY; local dZ
if moveDir == "right" then
dX = flySpeed*Ydiff/hypXY
dY = flySpeed*Xdiff/hypXY
if useZ then
local roll = readFloat(rollAD)
local cosRoll = math.cos(roll)
dX = dX*cosRoll
dY = dY*cosRoll
dZ = flySpeed*math.sin(roll)
writeFloat(tarZAD, tarZ-dZ)
writeFloat(camZAD, camZ-dZ)
end
writeFloat(tarXAD, tarX-dX)
writeFloat(tarYAD, tarY+dY)
writeFloat(camXAD, camX-dX)
writeFloat(camYAD, camY+dY)
return
elseif moveDir == "left" then
dX = flySpeed*Ydiff/hypXY
dY = flySpeed*Xdiff/hypXY
if useZ then
local roll = readFloat(rollAD)
local cosRoll = math.cos(roll)
dX = dX*cosRoll
dY = dY*cosRoll
dZ = flySpeed*math.sin(roll)
writeFloat(tarZAD, tarZ+dZ)
writeFloat(camZAD, camZ+dZ)
end
writeFloat(tarXAD, tarX+dX)
writeFloat(tarYAD, tarY-dY)
writeFloat(camXAD, camX+dX)
writeFloat(camYAD, camY-dY)
return
end
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
if useZ then
dX = flySpeed*Xdiff/hypZ
dY = flySpeed*Ydiff/hypZ
dZ = flySpeed*Zdiff/hypZ
if moveDir == "backward" then dZ = -dZ end
writeFloat(tarZAD, tarZ+dZ)
writeFloat(camZAD, camZ+dZ)
else
dX = flySpeed*Xdiff/hypXY
dY = flySpeed*Ydiff/hypXY
dZ = flySpeed*Zdiff/hypXY
end
if moveDir == "forward" then
writeFloat(tarXAD, tarX+dX)
writeFloat(tarYAD, tarY+dY)
writeFloat(camXAD, camX+dX)
writeFloat(camYAD, camY+dY)
elseif moveDir == "backward" then
writeFloat(tarXAD, tarX-dX)
writeFloat(tarYAD, tarY-dY)
writeFloat(camXAD, camX-dX)
writeFloat(camYAD, camY-dY)
else return
end
end
local function orbit(orbitDir)
if not requiredConditions() then return end
local camX = readFloat(camXAD)
local camY = readFloat(camYAD)
local tarX = readFloat(tarXAD)
local tarY = readFloat(tarYAD)
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local yaw
if orbitDir == "left" or orbitDir == "panRight" then
yaw = math.atan(Ydiff/Xdiff)+aimSpeed
elseif orbitDir == "right" or orbitDir == "panLeft" then
yaw = math.atan(Ydiff/Xdiff)-aimSpeed
else
local camZ = readFloat(camZAD)
local tarZ = readFloat(tarZAD)
local Zdiff = tarZ-camZ
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
local pitch
if orbitDir == "down" or orbitDir == "panUp" then
pitch = math.asin(Zdiff/hypZ)+aimSpeed
elseif orbitDir == "up" or orbitDir == "panDown" then
pitch = math.asin(Zdiff/hypZ)-aimSpeed
else return
end
if pitch>-pitchMax and pitch<pitchMax then
local R = hypZ*math.cos(pitch)/hypXY
local dX = Xdiff*R
local dY = Ydiff*R
local dZ = hypZ*math.sin(pitch)
if orbitDir == "panUp" or orbitDir == "panDown" then
writeFloat(tarXAD, camX+dX)
writeFloat(tarYAD, camY+dY)
writeFloat(tarZAD, camZ+dZ)
return
else
writeFloat(camXAD, tarX-dX)
writeFloat(camYAD, tarY-dY)
writeFloat(camZAD, tarZ-dZ)
return
end
end
return
end
if Xdiff<0 then yaw = yaw + math.pi end
local dX = hypXY*math.cos(yaw)
local dY = hypXY*math.sin(yaw)
if orbitDir == "panLeft" or orbitDir == "panRight" then
writeFloat(tarXAD, camX+dX)
writeFloat(tarYAD, camY+dY)
elseif orbitDir == "left" or orbitDir == "right" then
writeFloat(camXAD, tarX-dX)
writeFloat(camYAD, tarY-dY)
else return
end
end
local function dolly(dollyDir)
if not requiredConditions() then return end
local camX = readFloat(camXAD)
local camY = readFloat(camYAD)
local camZ = readFloat(camZAD)
local tarX = readFloat(tarXAD)
local tarY = readFloat(tarYAD)
local tarZ = readFloat(tarZAD)
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local Zdiff = tarZ-camZ
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
if dollyDir == "zoomReset" then
local FOV = readFloat(FOVAD) -- stored in degrees
local FOVr = math.pi*FOV/180 -- convert to radians
local objWidth = hypZ*2*math.tan(FOVr/2)
local FOV2 = 66 -- default FOV
local FOVr2 = math.pi*FOV2/180
local hypZ2 = objWidth/(2*math.tan(FOVr2/2))-hypZ
local dX = hypZ2*Xdiff/hypZ
local dY = hypZ2*Ydiff/hypZ
local dZ = hypZ2*Zdiff/hypZ
writeFloat(FOVAD, FOV2)
writeFloat(camXAD, camX-dX)
writeFloat(camYAD, camY-dY)
writeFloat(camZAD, camZ-dZ)
return
elseif dollyDir == "closer" then
if hypZ>=26 then -- don't get too close to the origin
local dX = flySpeed*Xdiff/hypZ
local dY = flySpeed*Ydiff/hypZ
local dZ = flySpeed*Zdiff/hypZ
writeFloat(camXAD, camX+dX)
writeFloat(camYAD, camY+dY)
writeFloat(camZAD, camZ+dZ)
end
return
elseif dollyDir == "farther" then
local dX = flySpeed*Xdiff/hypZ
local dY = flySpeed*Ydiff/hypZ
local dZ = flySpeed*Zdiff/hypZ
writeFloat(camXAD, camX-dX)
writeFloat(camYAD, camY-dY)
writeFloat(camZAD, camZ-dZ)
return
end
local FOV = readFloat(FOVAD) -- stored in degrees
local FOVr = math.pi*FOV/180 -- convert to radians
local dollySpeed = flySpeed*(1-FOV/180)^2
local objWidth = hypZ*2*math.tan(FOVr/2)
if dollyDir == "zoomIn" then
FOVr = 2*math.atan(objWidth/(2*(hypZ+dollySpeed)))
FOV = 180*FOVr/math.pi -- convert back to degrees
if FOV >=1.2 then
local dX = dollySpeed*Xdiff/hypZ
local dY = dollySpeed*Ydiff/hypZ
local dZ = dollySpeed*Zdiff/hypZ
writeFloat(FOVAD, FOV)
writeFloat(camXAD, camX-dX)
writeFloat(camYAD, camY-dY)
writeFloat(camZAD, camZ-dZ)
end
elseif dollyDir == "zoomOut" then
FOVr = 2*math.atan(objWidth/(2*(hypZ-dollySpeed)))
FOV = 180*FOVr/math.pi -- convert back to degrees
if FOV <= 169 then
local dX = dollySpeed*Xdiff/hypZ
local dY = dollySpeed*Ydiff/hypZ
local dZ = dollySpeed*Zdiff/hypZ
writeFloat(FOVAD, FOV)
writeFloat(camXAD, camX+dX)
writeFloat(camYAD, camY+dY)
writeFloat(camZAD, camZ+dZ)
end
else return
end
end
local function zoomIn()
if not requiredConditions() then return end
local FOV = readFloat(FOVAD)
writeFloat(FOVAD, FOV+FOVSpeed)
end
local function zoomOut()
if not requiredConditions() then return end
local FOV = readFloat(FOVAD)
writeFloat(FOVAD, FOV-FOVSpeed)
end
local function rollLeft()
if not requiredConditions() then return end
local roll = readFloat(rollAD)
writeFloat(rollAD, roll+rollSpeed)
end
local function rollRight()
if not requiredConditions() then return end
local roll = readFloat(rollAD)
writeFloat(rollAD, roll-rollSpeed)
end
local function rollReset()
if not requiredConditions() then return end
writeFloat(rollAD, 0)
end
local function moveForward() move("forward") end
local function moveBackward() move("backward") end
local function moveLeft() move("left") end
local function moveRight() move("right") end
local function moveUp() move("up") end
local function moveDown() move("down") end
local function moveUpCamOnly() move("upCamOnly") end
local function moveDownCamOnly() move("downCamOnly") end
local function panUp() orbit("panUp") end
local function panDown() orbit("panDown") end
local function panLeft() orbit("panLeft") end
local function panRight() orbit("panRight") end
local function orbitUp() orbit("up") end
local function orbitDown() orbit("down") end
local function orbitLeft() orbit("left") end
local function orbitRight() orbit("right") end
local function dollyCloser() dolly("closer") end
local function dollyFarther() dolly("farther") end
local function dollyZoomIn() dolly("zoomIn") end
local function dollyZoomOut() dolly("zoomOut") end
local function dollyZoomReset() dolly("zoomReset") end
-- CREATE HOTKEYS
camHotkeys = {
createHotkey(toggleFreecam, VK_NEXT), -- leave at pos 1
createHotkey(toggleUseZ, VK_NUMPAD2), -- leave at pos 2
createHotkey(moveForward, VK_NUMPAD8),
createHotkey(moveBackward, VK_NUMPAD5),
createHotkey(moveLeft, VK_NUMPAD4),
createHotkey(moveRight, VK_NUMPAD6),
createHotkey(moveUp, VK_NUMPAD9),
createHotkey(moveDown, VK_NUMPAD7),
createHotkey(moveUpCamOnly, VK_NUMPAD3),
createHotkey(moveDownCamOnly, VK_NUMPAD1),
createHotkey(panUp, VK_ADD, VK_NUMPAD8),
createHotkey(panDown, VK_ADD, VK_NUMPAD5),
createHotkey(panLeft, VK_ADD, VK_NUMPAD4),
createHotkey(panRight, VK_ADD, VK_NUMPAD6),
createHotkey(rollLeft, VK_ADD, VK_NUMPAD3),
createHotkey(rollRight, VK_ADD, VK_NUMPAD1),
createHotkey(rollReset, VK_ADD, VK_NUMPAD2),
createHotkey(zoomIn, VK_ADD, VK_NUMPAD7),
createHotkey(zoomOut, VK_ADD, VK_NUMPAD9),
createHotkey(orbitUp, VK_RETURN, VK_NUMPAD5),
createHotkey(orbitDown, VK_RETURN, VK_NUMPAD8),
createHotkey(orbitLeft, VK_RETURN, VK_NUMPAD6),
createHotkey(orbitRight, VK_RETURN, VK_NUMPAD4),
createHotkey(dollyCloser, VK_RETURN, VK_NUMPAD9),
createHotkey(dollyFarther, VK_RETURN, VK_NUMPAD7),
createHotkey(dollyZoomIn, VK_RETURN, VK_NUMPAD3),
createHotkey(dollyZoomOut, VK_RETURN, VK_NUMPAD1),
createHotkey(dollyZoomReset, VK_RETURN, VK_NUMPAD2)
}
for i,v in ipairs(camHotkeys) do
v.DelayBetweenActivate = (i == 1 or i == 2) and 1000 or 10
end
-- PLAYER HOTKEYS
playerHotkeys = {
createHotkey(toggleHide, VK_H),
createHotkey(ghostUp, VK_E),
createHotkey(ghostDown, VK_Q),
createHotkey(turnLeft, VK_MENU, VK_Q),
createHotkey(turnRight, VK_MENU, VK_E)
}
for i,v in ipairs(playerHotkeys) do
v.DelayBetweenActivate = i == 1 and 1000 or 10
end
-- CHEAT HOTKEYS
cheatHotkeys = {
createHotkey(toggleRefillHP, VK_F1),
createHotkey(toggleRefillAmmo, VK_F2),
createHotkey(toggleRefillFocus, VK_F3),
createHotkey(toggleCooldowns, VK_F4)
}
for i,v in ipairs(cheatHotkeys) do
v.DelayBetweenActivate = 1000
end
sender.destroy()
end
{$asm}
[DISABLE]
cameraAOB:
db 8B 01 8B 80 AC 04 00 00
unregistersymbol(cameraAOB)
dealloc(newmem1)
playerAOB:
db 8B 11 8B 82 98 03 00 00
unregistersymbol(playerAOB)
dealloc(newmem2)
energyAOB:
db 8B 89 5C 02 00 00
unregistersymbol(energyAOB)
dealloc(newmem3)
cooldownsAOB:
db F3 0F 58 47 30
unregistersymbol(cooldownsAOB)
dealloc(newmem4)
{$lua}
if camCheat ~= nil then
for i=0,9,1 do
if i ~= 0 then camCheat[i].setHotkey.destroy() end
camCheat[i].getHotkey.destroy()
end
camCheat = nil
end
if checkCamKeys ~= nil then
checkCamKeys.destroy()
checkCamKeys = nil
end
if checkCheatKeys ~= nil then
checkCheatKeys.destroy()
checkCheatKeys = nil
end
if camHotkeys ~= nil then
for i,v in ipairs(camHotkeys) do v.destroy() end
camHotkeys = nil
end
if cheatHotkeys ~= nil then
for i,v in ipairs(cheatHotkeys) do v.destroy() end
cheatHotkeys = nil
end
if playerHotkeys ~= nil then
for i,v in ipairs(playerHotkeys) do v.destroy() end
playerHotkeys = nil
end
15028
">> HOTKEYS"
FF0000
1
13295
"MOVEMENT"
0080FF
1
13249
"NOTE: Hold down F to move faster, C to move slower"
0080FF
1
15071
"NOTE: Hold down T to move VERY fast"
0080FF
1
13240
"Camera control on/off - PAGEDOWN"
000000
1
13296
"--- FLY ---"
0080FF
1
13290
"(Below, NUMPAD keys...)"
000000
1
13298
"MOVE: Forward - 8, backward - 5, left - 4, right - 6"
000000
1
13297
"FLY: Up - 9, down - 7"
000000
1
13304
"FLY: Up - 3, down - 1 (camera only)"
000000
1
13303
"Freeze height on/off: 2"
000000
1
13292
"--- AIM --- hold down PLUS"
0080FF
1
13339
"(Below, NUMPAD keys...)"
000000
1
13244
"PAN: Up - 8, down - 5, left - 4, right - 6"
000000
1
13246
"ZOOM: In - 9, out - 7"
000000
1
13242
"TILT: Left - 1, right - 3, [reset] - 2"
000000
1
13293
"--- ROTATE --- hold down ENTER"
0080FF
1
13340
"(Below, NUMPAD keys...)"
000000
1
13241
"ROTATE: Up - 5, down - 8, left - 6, right - 4"
000000
1
13248
"MOVE: Closer - 9, farther - 7"
000000
1
13247
"DOLLY ZOOM: In - 3, out - 1, [reset] - 2"
000000
1
13294
"SAVE/LOAD"
0080FF
1
13341
"(Below, standard number keys...)"
000000
1
13250
"SAVE CAMERA: ALT and [1-9] to save current settings"
000000
1
13252
"LOAD CAMERA: [1-9] to load saved settings"
000000
1
13251
"UNDO: 0 (zero) load previous camera settings"
000000
1
13239
">> CAMERA SETTINGS"
FF0000
1
13253
"Camera shake on/off"
1:ON
0:-
1
000000
Binary
1
1
0
_camera
5E8
14964
"FOV (0 to 170, default 66)"
000000
Float
_camera
66C
13256
"PITCH (-16384 to 16384, readonly)"
1
000000
4 Bytes
_camera
660
12710
"YAW (0 to 65536, readonly)"
0
000000
2 Bytes
_camera
664
13466
"ROLL (0 to 2*pi)"
0
000000
Float
_camera
67C
15080
"ROLL (0 to 2*pi)"
0
000000
Float
_camera
2C4
15027
"Camera X"
000000
Float
_camera
654
12713
"Camera Y"
000000
Float
_camera
658
12712
"Camera Z"
000000
Float
_camera
65C
12708
"Target X"
000000
Float
_camera
670
12707
"Target Y"
000000
Float
_camera
674
12706
"Target Z"
000000
Float
_camera
678
13589
">> PLAYER SETTINGS/CHEATS"
FF0000
1
13935
">> Player-cam Settings"
FF0000
Auto Assembler Script
//"RememberMe.exe"+8D6882
[ENABLE]
aobscanmodule(playercamAOB,RememberMe.exe,F3 0F 5C 50 74)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_playercam,4)
newmem:
code:
mov [_playercam],eax
subss xmm2,[eax+74]
jmp return
playercamAOB:
jmp code
return:
registersymbol(playercamAOB)
[DISABLE]
playercamAOB:
db F3 0F 5C 50 74
unregistersymbol(playercamAOB)
dealloc(newmem)
15021
"Cam-level player distance"
Float
_playercam
74
13936
"Cam-level clip distance"
Float
_playercam
70
15022
"Cam-above player distance"
Float
_playercam
44
15010
"Cam-above clip distance"
Float
_playercam
40
15025
"Cam-below player distance"
Float
_playercam
A4
15026
"Cam-below clip distance"
Float
_playercam
A0
15023
"Pitch down limit (max -16000)"
1
4 Bytes
_playercam
60
15024
"Pitch up limit (max 16000)"
1
4 Bytes
_playercam
C0
13026
"X offset (default 30)"
Float
_playercam
E8
12905
"Y offset (default 0)"
Float
_playercam
E4
12904
"Z offset (default 75)"
Float
_playercam
EC
15020
">> Ability cooldowns"
FF0000
1
15014
"Fury CD"
Float
_cooldowns
30
15018
"Logic Bomb CD"
Float
_cooldowns
100
15017
"DOS CD"
Float
_cooldowns
1D0
15016
"RIP CD"
Float
_cooldowns
510
15015
"Camo CD"
Float
_cooldowns
5E0
13933
"CHEAT: Keep HP maxed on/off - F1 (doesn't stop insta-kills)"
0080FF
1
15012
"CHEAT: Keep Ammo maxed on/off - F2"
0080FF
1
15011
"CHEAT: Keep Focus maxed on/off - F3"
0080FF
1
15019
"CHEAT: Ability Cooldowns on/off - F4"
0080FF
1
13308
"HOTKEY: Hide Nilin on/off - H (Particles OFF to hide Sensen)"
0080FF
1
13306
"HOTKEY: Spin left/right: ALT+Q/E, Up/down: E/Q (GHOST)"
0080FF
1
14962
"HP - Health"
000000
4 Bytes
_player
37C
Set Value
17
112
2500
0
13919
"Spammer ammo"
000000
Float
_player
C4C
13931
"Focus energy"
4 Bytes
_energy
25C
Set Value
17
113
1500
0
13590
"Player X"
000000
Float
_player
54
13276
"Player Y"
000000
Float
_player
58
12327
"Player Z"
000000
Float
_player
5C
13606
"Player Z offset (default 0)"
0
000000
Float
_player
84
33
"Size (0 to hide player, default 1)"
000000
Float
_player
6C
13108
"Spin (0 to 65536)"
0
000000
2 Bytes
_player
64
13592
">> SPECIAL EFFECTS"
FF0000
1
12443
">> Gameplay Effects"
FF0000
Auto Assembler Script
//"RememberMe.exe"+462569
[ENABLE]
aobscanmodule(dofAOB,RememberMe.exe,39 9F 98 03 00 00 74)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_dof,4)
newmem:
code:
mov [_dof],ebx
cmp [edi+00000398],ebx
jmp return
dofAOB:
jmp code
nop
return:
registersymbol(dofAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local base -- this base will change
function getBase()
base = readInteger("_dof")
if base == 0 or base == nil then return end
end
-- ADDRESSES
-- base changes, so find these each time
local DOFOnOffByteAD
local focusDistanceAD
local focusRadiusAD
local focusMultAD
local MGblurAD
local FGblurAD
local BGblurAD
local blurSizeAD
local function getDOFOnOff()
getBase()
DOFOnOffByteAD = base+0x299 -- on/off at bit 1
end
local function getDOFAddy()
getBase()
focusDistanceAD = base+0x2D0
focusRadiusAD = base+0x2CC
focusMultAD = base+0x2B4
MGblurAD = base+0x2C0
FGblurAD = base+0x2BC
BGblurAD = base+0x2C4
blurSizeAD = base+0x2B8
end
-- VARIABLES
local focusSpeed = 0.001
local BGfocusSpeed = 0.01
local swapSpeed = 0.04
local nearFarSpeed = 1
local fastMult = 10
local slowDiv = 10
local blurSizeSpeed = 0.01
local function requiredConditions()
if getOpenedProcessID() == getForegroundProcess() then
return true
end
return false
end
-- WATCH FOR SPEED MODIFIER KEYS
local didReset = true
local didSlow = false
local didFast = false
local focusSpeedOrig = focusSpeed
local BGfocusSpeedOrig = BGfocusSpeed
local nearFarSpeedOrig = nearFarSpeed
local swapSpeedOrig = swapSpeed
local blurSizeSpeedOrig = blurSizeSpeed
checkDOFKeys = createTimer()
checkDOFKeys.setInterval(100)
checkDOFKeys.onTimer = function()
if not requiredConditions() then return end
if isKeyPressed(VK_F) then
if not didFast then
focusSpeed = focusSpeedOrig*fastMult
BGfocusSpeed = BGfocusSpeedOrig*fastMult
nearFarSpeed = nearFarSpeedOrig*fastMult
swapSpeed = swapSpeedOrig*fastMult
blurSizeSpeed = blurSizeSpeedOrig*fastMult
didReset = false
didFast = true
end
elseif isKeyPressed(VK_C) then
if not didSlow then
focusSpeed = focusSpeedOrig/slowDiv
BGfocusSpeed = BGfocusSpeedOrig/slowDiv
nearFarSpeed = nearFarSpeedOrig/slowDiv
swapSpeed = swapSpeedOrig/slowDiv
blurSizeSpeed = blurSizeSpeedOrig/slowDiv
didReset = false
didSlow = true
end
elseif not didReset then
focusSpeed = focusSpeedOrig
BGfocusSpeed = BGfocusSpeedOrig
nearFarSpeed = nearFarSpeedOrig
swapSpeed = swapSpeedOrig
blurSizeSpeed = blurSizeSpeedOrig
didFast = false
didSlow = false
didReset = true
end
end
-- DOF Functions...
local function DOFEnabled()
if not requiredConditions() then return end
getDOFOnOff() -- &2 (read bit 1)
if readBytes(DOFOnOffByteAD,1,false)&2 == 0 then return false end
return true
end
local function toggleDOF()
if not requiredConditions() then return end
getDOFOnOff()
local DOFOnOffByte = readBytes(DOFOnOffByteAD,1,false)
if DOFEnabled() then
writeBytes(DOFOnOffByteAD, DOFOnOffByte-2) -- set bit 1 to 0
else writeBytes(DOFOnOffByteAD, DOFOnOffByte+2) -- set bit 1 to 1
end
end
local function doDOFEnables()
getDOFOnOff()
local DOFOnOff = readBytes(DOFOnOffByteAD,1,false)
local enablesAD = base+0x295
local enables = readBytes(enablesAD,1,false)
local enables2AD = base+0x296
local enables2 = readBytes(enables2AD,1,false)
if enables&8 == 0 then enables = enables+8 end
if enables&16 == 0 then enables = enables+16 end
if enables&64 == 0 then enables = enables+64 end
if enables2&1 == 0 then enables2 = enables2+1 end
if enables2&4 == 0 then enables2 = enables2+4 end
if DOFOnOff&4 == 0 then DOFOnOff = DOFOnOff+4 end
writeBytes(enablesAD, enables)
writeBytes(enables2AD, enables2)
writeBytes(DOFOnOffByteAD, DOFOnOff)
end
local function setDOFPreset()
if not requiredConditions() then return end
if not DOFEnabled() then toggleDOF() end
getDOFAddy()
doDOFEnables()
writeFloat(focusDistanceAD, 600)
writeFloat(focusRadiusAD, 400)
writeFloat(focusMultAD, 2)
writeFloat(MGblurAD, 0)
writeFloat(FGblurAD, 1)
writeFloat(BGblurAD, 0.5)
writeFloat(blurSizeAD, 2)
end
local function nearPlaneFocusMore()
if not requiredConditions() then return end; getDOFAddy()
local FGfblur = readFloat(FGblurAD)
if FGfblur > 0 then writeFloat(FGblurAD, FGfblur-focusSpeed) end
end
local function nearPlaneFocusLess()
if not requiredConditions() then return end; getDOFAddy()
local FGfblur = readFloat(FGblurAD)
if FGfblur < 1 then writeFloat(FGblurAD, FGfblur+focusSpeed) end
end
local function nearPlaneForward()
if not requiredConditions() then return end; getDOFAddy()
local focusDistance = readFloat(focusDistanceAD)
local focusRadius = readFloat(focusRadiusAD)
writeFloat(focusDistanceAD, focusDistance+nearFarSpeed)
writeFloat(focusRadiusAD, focusRadius-nearFarSpeed)
end
local function nearPlaneBackward()
if not requiredConditions() then return end; getDOFAddy()
local focusDistance = readFloat(focusDistanceAD)
local focusRadius = readFloat(focusRadiusAD)
writeFloat(focusDistanceAD, focusDistance-nearFarSpeed)
writeFloat(focusRadiusAD, focusRadius+nearFarSpeed)
end
local function farPlaneFocusMore()
if not requiredConditions() then return end; getDOFAddy()
local BGblur = readFloat(BGblurAD)
if BGblur > 0 then writeFloat(BGblurAD, BGblur-BGfocusSpeed) end
end
local function farPlaneFocusLess()
if not requiredConditions() then return end; getDOFAddy()
local BGblur = readFloat(BGblurAD)
if BGblur < 1 then writeFloat(BGblurAD, BGblur+BGfocusSpeed) end
end
local function farPlaneForward()
if not requiredConditions() then return end; getDOFAddy()
local focusDistance = readFloat(focusDistanceAD)
local focusRadius = readFloat(focusRadiusAD)
writeFloat(focusDistanceAD, focusDistance+nearFarSpeed)
writeFloat(focusRadiusAD, focusRadius+nearFarSpeed)
end
local function farPlaneBackward()
if not requiredConditions() then return end; getDOFAddy()
local focusDistance = readFloat(focusDistanceAD)
local focusRadius = readFloat(focusRadiusAD)
if focusDistance > 0 then
writeFloat(focusDistanceAD, focusDistance-nearFarSpeed)
end
if focusRadius > 0 then
writeFloat(focusRadiusAD, focusRadius-nearFarSpeed)
end
end
local function swapFocusNear()
if not requiredConditions() then return end; getDOFAddy()
local BGblur = readFloat(BGblurAD)
local FGblur = readFloat(FGblurAD)
if FGblur < 0.001 then FGblur = 0.001 end
if BGblur < 0.001 then BGblur = 0.001 end
if FGblur >= 0.001 and BGblur <= 2 then
if FGblur < BGblur then
writeFloat(BGblurAD, BGblur+swapSpeed*FGblur)
writeFloat(FGblurAD, FGblur-swapSpeed*FGblur)
else
writeFloat(BGblurAD, BGblur+swapSpeed*BGblur)
writeFloat(FGblurAD, FGblur-swapSpeed*BGblur)
end
end
end
local function swapFocusFar()
if not requiredConditions() then return end; getDOFAddy()
local BGblur = readFloat(BGblurAD)
local FGblur = readFloat(FGblurAD)
if FGblur < 0.001 then FGblur = 0.001 end
if BGblur < 0.001 then BGblur = 0.001 end
if BGblur >= 0.001 and FGblur <= 2 then
if FGblur < BGblur then
writeFloat(BGblurAD, BGblur-swapSpeed*FGblur)
writeFloat(FGblurAD, FGblur+swapSpeed*FGblur)
else
writeFloat(BGblurAD, BGblur-swapSpeed*BGblur)
writeFloat(FGblurAD, FGblur+swapSpeed*BGblur)
end
end
end
local function blurSizeBigger()
if not requiredConditions() then return end; getDOFAddy()
local blurSize = readFloat(blurSizeAD)
if blurSize<64 then
writeFloat(blurSizeAD, blurSize+blurSizeSpeed)
end
end
local function blurSizeSmaller()
if not requiredConditions() then return end; getDOFAddy()
local blurSize = readFloat(blurSizeAD)
if blurSize>0 then
writeFloat(blurSizeAD, blurSize-blurSizeSpeed)
end
end
-- CREATE HOTKEYS
DOFHotkeys = {
createHotkey(toggleDOF, VK_O), -- leave at pos 1
createHotkey(setDOFPreset, VK_P), -- leave at pos 2
createHotkey(nearPlaneFocusMore, VK_L),
createHotkey(nearPlaneFocusLess, VK_J),
createHotkey(nearPlaneForward, VK_I),
createHotkey(nearPlaneBackward, VK_K),
createHotkey(farPlaneFocusMore, VK_MENU, VK_L),
createHotkey(farPlaneFocusLess, VK_MENU, VK_J),
createHotkey(farPlaneForward, VK_MENU, VK_I),
createHotkey(farPlaneBackward, VK_MENU, VK_K),
createHotkey(swapFocusNear, VK_N),
createHotkey(swapFocusFar, VK_M),
createHotkey(blurSizeBigger, VK_MENU, VK_U),
createHotkey(blurSizeSmaller, VK_MENU, VK_O)
}
for i,v in ipairs(DOFHotkeys) do
v.DelayBetweenActivate = (i == 1 or i == 2) and 1000 or 10
end
sender.destroy()
end
{$asm}
[DISABLE]
dofAOB:
db 39 9F 98 03 00 00
unregistersymbol(dofAOB)
dealloc(newmem)
{$lua}
if checkDOFKeys ~= nil then
checkDOFKeys.destroy()
checkDOFKeys = nil
end
if DOFHotkeys ~= nil then
for i,v in ipairs(DOFHotkeys) do v.destroy() end
DOFHotkeys = nil
end
12317
">> Gameplay DOF - Depth of Field"
FF0000
1
13452
">> ENABLE THESE FIRST: (OPEN)"
000000
1
12318
"Blur falloff exponent enable"
1:ON
0:-
000000
Binary
3
1
0
_dof
295
13451
"Background blur enable 1"
1:ON
0:-
000000
Binary
4
1
0
_dof
295
13443
"Foreground blur enable 1"
1:ON
0:-
000000
Binary
6
1
0
_dof
295
13446
"Background blur enable 2"
1:ON
0:-
000000
Binary
0
1
0
_dof
296
13445
"Foreground blur enable 2"
1:ON
0:-
000000
Binary
2
1
0
_dof
296
13447
"Edge blur enable"
1:ON
0:-
000000
Binary
2
1
0
_dof
299
13336
"HOTKEY: Toggle DOF - O, load preset - P "
0080FF
1
13313
"HOTKEY: Foreground focus near/far - K/I, focus more/less - L/J"
0080FF
1
13346
"HOTKEY: Background focus (ALT+...) near/far - K/I, focus more/less - L/J"
0080FF
1
15070
"HOTKEY: Blur size bigger ALT+U, blur size smaller ALT+O"
0080FF
1
13347
"HOTKEY: Rack focus (foreground/background swap) near/far - N/M"
0080FF
1
13344
"NOTE: Focus faster: F, focus slower: C"
0080FF
1
13441
"DOF on/off"
1:ON
0:-
000000
Binary
1
1
0
_dof
299
13311
"Focus distance (from camera), ex: 600"
000000
Float
_dof
2D0
12320
"Focus radius (from focal point), ex: 400"
000000
Float
_dof
2CC
12321
"Blur falloff exponent, ex: 2"
000000
Float
_dof
2B4
13448
"Blur size, ex: 2"
000000
Float
_dof
2B8
12446
"Foreground blur (0-1), ex: 1"
000000
Float
_dof
2BC
12322
"Background blur (0-1), ex: 1"
000000
Float
_dof
2C4
24
">> Bloom (glow)"
FF0000
1
1275
"Bloom on/off"
1:ON
0:-
000000
Binary
0
1
0
_dof
299
12323
"Color (0-255 ea.) as BLUE GREEN RED"
000000
Array of byte
3
_dof
2A4
12779
"Size (0-64), ex: 16"
000000
Float
_dof
2B0
12324
"Intensity (0-1)"
000000
Float
_dof
2A8
1276
">> Color"
FF0000
1
272
"Desaturation (0-1)"
000000
Float
_dof
300
278
"RED tone 1 (0-1) from white"
000000
Float
_dof
318
279
"GREEN tone 1 (0-1) from white"
000000
Float
_dof
31C
280
"BLUE tone 1 (0-1) form white"
000000
Float
_dof
320
281
"RED tone 2 (0-1) from white"
000000
Float
_dof
324
282
"GREEN tone 2 (0-1) from white"
000000
Float
_dof
328
283
"BLUE tone 2 (0-1) from white"
000000
Float
_dof
32C
284
"RED tone 3 (0-1) to black"
000000
Float
_dof
330
285
"GREEN tone 3 (0-1) to black"
000000
Float
_dof
334
286
"BLUE tone 3 (0-1) to black"
000000
Float
_dof
338
13556
">> Cutscene Effects - Option 1"
FF0000
1
13560
">> Cutsceen DOF - Depth of Field"
FF0000
1
13540
"DOF on/off (lock to keep off)"
1:ON
0:-
000000
Binary
1
1
0
_player
275
13474
"Focus radius (from focal point), ex: 400"
000000
Float
_player
2A8
13462
"Focus distance (from camera), ex: 600"
000000
Float
_player
2AC
13543
"Blur falloff exponent, ex: 2"
000000
Float
_player
290
13542
"Blur size, ex: 2"
000000
Float
_player
294
13538
"Foreground blur (0-1), ex: 1"
000000
Float
_player
298
13461
"Background blur (0-1), ex: 1"
000000
Float
_player
2A0
13561
">> Bloom (glow)"
FF0000
1
13464
"Bloom on/off"
1:ON
0:-
000000
Binary
0
1
0
_player
275
13539
"Color (0-255 ea.) as BLUE GREEN RED"
000000
Array of byte
3
_player
280
13544
"Size (0-64), ex: 16"
000000
Float
_player
28C
13545
"Intensity (0-1)"
000000
Float
_player
284
13575
">> Color"
FF0000
1
13546
"Desaturation (0-1)"
000000
Float
_player
2DC
13566
"RED tone 1 (0-1) from white"
000000
Float
_player
2F4
13574
"GREEN tone 1 (0-1) from white"
000000
Float
_player
2F8
13573
"BLUE tone 1 (0-1) form white"
000000
Float
_player
2FC
13572
"RED tone 2 (0-1) from white"
000000
Float
_player
300
13571
"GREEN tone 2 (0-1) from white"
000000
Float
_player
304
13570
"BLUE tone 2 (0-1) from white"
000000
Float
_player
308
13569
"RED tone 3 (0-1) to black"
000000
Float
_player
30C
13568
"GREEN tone 3 (0-1) to black"
000000
Float
_player
310
13567
"BLUE tone 3 (0-1) to black"
000000
Float
_player
314
13557
">> Cutscene Effects - Option 2"
FF0000
1
13559
">> Cutescene DOF - Depth of Field"
FF0000
1
13552
"DOF on/off (lock to keep off)"
1:ON
0:-
0
000000
Binary
1
1
0
_camera
2D1
13547
"Focus distance (from camera), ex: 600"
0
000000
Float
_camera
308
13475
"Focus radius (from focal point), ex: 400"
0
000000
Float
_camera
304
13550
"Blur falloff exponent, ex: 2"
0
000000
Float
_camera
2EC
13551
"Blur size, ex: 2"
0
000000
Float
_camera
2F0
13548
"Foreground blur (0-1), ex: 1"
0
000000
Float
_camera
2F4
12714
"Background blur (0-1), ex: 1"
0
000000
Float
_camera
2FC
13558
">> Bloom (glow)"
FF0000
1
13469
"Bloom on/off"
1:ON
0:-
0
000000
Binary
0
1
0
_camera
2D1
13553
"Color (0-255 ea.) as BLUE GREEN RED"
1:ON
0:-
0
000000
Array of byte
3
_camera
2DC
13554
"Size (0-64), ex: 16"
1:ON
0:-
0
000000
Float
_camera
2E8
13555
"Intensity (0-1)"
1:ON
0:-
0
000000
Float
_camera
2E0
13585
">> Color"
FF0000
1
13467
"Desaturation (0-1)"
0
000000
Float
_camera
338
13576
"RED tone 1 (0-1) from white"
0
000000
Float
_camera
350
13584
"GREEN tone 1 (0-1) from white"
0
000000
Float
_camera
354
13583
"BLUE tone 1 (0-1) form white"
0
000000
Float
_camera
358
13582
"RED tone 2 (0-1) from white"
0
000000
Float
_camera
35C
13581
"GREEN tone 2 (0-1) from white"
0
000000
Float
_camera
360
13580
"BLUE tone 2 (0-1) from white"
0
000000
Float
_camera
364
13579
"RED tone 3 (0-1) to black"
0
000000
Float
_camera
368
13578
"GREEN tone 3 (0-1) to black"
0
000000
Float
_camera
36C
13577
"BLUE tone 3 (0-1) to black"
0
000000
Float
_camera
370
14958
">> Lightshafts (if present)"
FF0000
Auto Assembler Script
//"RememberMe.exe"+5A52DD
[ENABLE]
aobscanmodule(lightshaftAOB,RememberMe.exe,F3 0F 10 87 B0 01 00 00 F3 0F 59)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_lightshafts,4)
newmem:
code:
mov [_lightshafts],edi
movss xmm0,[edi+000001B0]
jmp return
lightshaftAOB:
jmp code
nop
nop
nop
return:
registersymbol(lightshaftAOB)
[DISABLE]
lightshaftAOB:
db F3 0F 10 87 B0 01 00 00
unregistersymbol(lightshaftAOB)
dealloc(newmem)
14993
"Intensity (0-1)"
Float
_lightshafts
1A0
14959
"Length (0-200), ex: 85"
Float
_lightshafts
1B0
14996
"Color (0-255 ea.) as BLUE GREEN RED"
Array of byte
3
_lightshafts
1AC
14992
"Gamma (when facing lightshafts), ex: 0.7"
Float
_lightshafts
1B4
14995
"Light intensity (0-1), ex: 1"
Float
_lightshafts
1A8
14994
"Shadow intensity (0-1), ex: 0.5"
Float
_lightshafts
1A4
15001
"Lightshafts X"
Float
_lightshafts
C0
15000
"Lightshafts Y"
Float
_lightshafts
C4
14999
"Lightshafts Z"
Float
_lightshafts
C8
13509
">> Chapter 0 specific"
FF0000
Auto Assembler Script
//"RememberMe.exe"+42E649
[ENABLE]
aobscanmodule(miscAOB,RememberMe.exe,8B 01 8B 90 70 01 00 00 56 FF D2 F3)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_misc,4)
newmem:
code:
mov [_misc],ecx
mov eax,[ecx]
mov edx,[eax+00000170]
jmp return
miscAOB:
jmp code
nop
nop
nop
return:
registersymbol(miscAOB)
[DISABLE]
miscAOB:
db 8B 01 8B 90 70 01 00 00
unregistersymbol(miscAOB)
dealloc(newmem)
13517
"Focus distance (from camera), ex: 600"
Float
_misc
14
0
3C
13520
"Focus radius (from focal point), ex: 400"
Float
_misc
20
0
3C
13522
"Blur falloff exponent, ex: 2"
Float
_misc
2C
0
3C
13512
"Background blur (0-1), ex: 1"
Float
_misc
8
0
3C
13356
">> Other Effects/Alt DOF"
FF0000
Auto Assembler Script
//"RememberMe.exe"+24155B
[ENABLE]
aobscanmodule(noiseAOB,RememberMe.exe,8B 9E 1C 01 00 00 0F)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_noise,4)
newmem:
code:
mov [_noise],esi
mov ebx,[esi+0000011C]
jmp return
noiseAOB:
jmp code
nop
return:
registersymbol(noiseAOB)
[DISABLE]
noiseAOB:
db 8B 9E 1C 01 00 00
unregistersymbol(noiseAOB)
dealloc(newmem)
13400
"NOISE/FILM GRAIN"
FF0000
1
13365
"Noise on/off"
1:ON
0:-
4 Bytes
_noise
11C
13371
"Noise amount"
Float
_noise
120
13453
"COLOR"
FF0000
1
13406
">> Get gamma:"
FF0000
Auto Assembler Script
//"RememberMe.exe"+2889B9
[ENABLE]
aobscanmodule(gammaAOB,RememberMe.exe,D9 42 44 D9 E1)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_gamma,4)
newmem:
code:
mov [_gamma],edx
fld dword ptr [edx+44]
fabs
jmp return
gammaAOB:
jmp code
return:
registersymbol(gammaAOB)
[DISABLE]
gammaAOB:
db D9 42 44 D9 E1
unregistersymbol(gammaAOB)
dealloc(newmem)
13408
"Gamma"
Float
_gamma
44
13374
"Gamma mult."
Float
_noise
114
13373
"Exposure"
Float
_noise
10C
13375
"RED Tone 1 from black [final process]"
Float
_noise
FC
13377
"GREEN Tone 1 from black [final process]"
Float
_noise
100
13376
"BLUE Tone 1 from black [final process]"
Float
_noise
104
13357
">> ALT DOF and Post-Process (OPEN, set to ON):"
0:ON
1:-
FF0000
Binary
2
1
0
_noise
3C
13395
"ALT DOF"
FF0000
1
13563
"Focus distance, ex: 600"
Float
_noise
80
13369
"Focal point radius, ex: 400"
Float
_noise
7C
13402
"Falloff exponent, ex: 2"
Float
_noise
64
13387
"Blur size, ex: 2"
Float
_noise
68
13370
"Foreground blur, ex: 0.9 (use size to modify)"
Float
_noise
6C
13366
"Background blur, ex: 1 (use size to modify)"
Float
_noise
74
13397
"ALT COLOR"
FF0000
1
13372
"Desaturation"
Float
_noise
F8
13378
"RED Tone 2 to black"
Float
_noise
D4
13379
"GREEN Tone 2 to black"
Float
_noise
D8
13380
"BLUE Tone 2 to black"
Float
_noise
DC
13381
"RED Tone 3 from white"
Float
_noise
E0
13382
"GREEN Tone 3 from white"
Float
_noise
E4
13383
"BLUE Tone 3 from white"
Float
_noise
E8
13384
"RED Tone 4 from white"
Float
_noise
EC
13385
"GREEN Tone 4 from white"
Float
_noise
F0
13386
"BLUE Tone 4 from white"
Float
_noise
F4
13399
"BLOOM"
FF0000
1
13391
"Bloom intensity"
Float
_noise
A0
13392
"Bloom size"
Float
_noise
A8
13393
"Bloom color"
Array of byte
3
_noise
9C
13398
"VIGNETTE"
FF0000
1
13388
"Vignette size"
Float
_noise
170
13364
"Vignette RED"
Float
_noise
160
13390
"Vignette GREEN"
Float
_noise
164
13389
"Vignette BLUE"
Float
_noise
168
15052
"ENVIRONMENT/LIGHTING"
FF0000
1
15049
">> FOG (atmosphere)"
FF0000
Auto Assembler Script
//"RememberMe.exe"+5AB43B
[ENABLE]
aobscanmodule(fogAOB,RememberMe.exe,F3 0F 10 47 0C 51)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_fog,4)
newmem:
code:
mov [_fog],edi
movss xmm0,[edi+0C]
jmp return
fogAOB:
jmp code
return:
registersymbol(fogAOB)
[DISABLE]
fogAOB:
db F3 0F 10 47 0C
unregistersymbol(fogAOB)
dealloc(newmem)
15050
"Fog on/off"
1:ON
0:-
Binary
0
1
0
_fog
0
15055
"Height (ex: 2500)"
Float
_fog
4
15054
"Intensity (0-10+), ex: 1"
Float
_fog
C
15051
"Color (0-255 ea.) as BLUE GREEN RED"
Array of byte
3
_fog
10
15053
"Distance (from camera), ex: 1000"
Float
_fog
18
15059
">> Alt fog"
FF0000
1
15056
"Intensity (0-10+), ex: 1"
Float
_fog
40
15057
"Color (0-255 ea.) as BLUE GREEN RED"
Array of byte
3
_fog
44
15058
"Distance (from camera), ex: 1000"
Float
_fog
4C
15060
">> SUNLIGHT (or primary lightsource)"
FF0000
Auto Assembler Script
//"RememberMe.exe"+62BFFB
[ENABLE]
aobscanmodule(lightAOB,RememberMe.exe,F3 0F 10 80 D0 00 00 00 F3 0F 10 0D)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_light,4)
newmem:
code:
mov [_light],eax
movss xmm0,[eax+000000D0]
jmp return
lightAOB:
jmp code
nop
nop
nop
return:
registersymbol(lightAOB)
[DISABLE]
lightAOB:
db F3 0F 10 80 D0 00 00 00
unregistersymbol(lightAOB)
dealloc(newmem)
15064
"Intensity (0-10+, default 1)"
Float
_light
E4
15061
"Color - RED"
Float
_light
D0
15063
"Color - GREEN"
Float
_light
D4
15062
"Color - BLUE"
Float
_light
D8
15065
"Projected light/shadows on/off"
0:ON
1:-
4 Bytes
_light
E0
15066
"Static shadow blur (0-15, default 1)"
Float
_light
F4
15067
"Dynamic shadows X (-1 to 1)"
Float
_light
48
15068
"Dynamic shadows Y (-1 to 1)"
Float
_light
58
15069
"Dynamic shadows Z (-1 to 1)"
Float
_light
68
13595
"OTHER"
FF0000
1
13459
">> HUD/OVERLAYS"
FF0000
Auto Assembler Script
//"RememberMe.exe"+8C1D7C
[ENABLE]
aobscanmodule(settingsAOB,RememberMe.exe,8B 90 6C 01 00 00 51 D9 1C 24 FF D2 C2)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_settings,4)
newmem:
code:
mov [_settings],eax
mov edx,[eax+0000016C]
jmp return
settingsAOB:
jmp code
nop
return:
registersymbol(settingsAOB)
[DISABLE]
settingsAOB:
db 8B 90 6C 01 00 00
unregistersymbol(settingsAOB)
dealloc(newmem)
13515
"HUD and overlays on/off (DEL: Off, Ctrl-DEL: On)"
1:ON
0:-
000000
4 Bytes
_settings
C19C8
Set Value
46
0
0
Set Value
17
46
1
1
13514
"Near clip plane (inc. to fix distant Z-fighting)"
000000
Float
_settings
C19CC
15076
">> DISPLAY OPTIONS"
FF0000
Auto Assembler Script
//"RememberMe.exe"+358FF5
[ENABLE]
aobscanmodule(displayAOB,RememberMe.exe,8B 11 D9 44 24 6C 8B 82 9C)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_display,4)
newmem:
code:
mov [_display],ecx
mov edx,[ecx]
fld dword ptr [esp+6C]
jmp return
displayAOB:
jmp code
nop
return:
registersymbol(displayAOB)
[DISABLE]
displayAOB:
db 8B 11 D9 44 24 6C
unregistersymbol(displayAOB)
dealloc(newmem)
1253
"Fog"
1:ON
0:-
000000
Binary
5
1
0
_display
64
1231
"Particles/Sensen"
1:ON
0:-
000000
Binary
3
1
0
_display
69
1230
"Vignette"
1:ON
0:-
000000
Binary
7
1
0
_display
69
1238
"Decals"
1:ON
0:-
000000
Binary
0
1
0
_display
68
1243
"Lensflares"
1:ON
0:-
000000
Binary
7
1
0
_display
68
1252
"Dynamic shadows"
1:ON
0:-
000000
Binary
4
1
0
_display
64
1267
"Translucency"
1:ON
0:-
000000
Binary
5
1
0
_display
6A
1235
"Skeletal meshes"
1:ON
0:-
000000
Binary
5
1
0
_display
68
1234
"Static meshes"
1:ON
0:-
000000
Binary
2
1
0
_display
68
13262
"Rigid bodies"
0:ON
1:-
000000
Binary
3
1
0
_display
6D
1249
"Shading"
1:ON
0:-
000000
Binary
2
1
0
_display
64
1254
"Post processing"
1:ON
0:-
000000
Binary
6
1
0
_display
64
1257
"Textures - White"
1:ON
0:-
000000
Binary
3
1
0
_display
B0
1264
"Textures - Black"
1:ON
0:-
000000
Binary
3
1
0
_display
6C
12621
"Wireframe (requires "Textures - Black" ON)"
0:ON
1:-
Binary
5
1
0
_display
69
15077
"Boundaries"
1:ON
0:-
Binary
0
1
0
_display
6F
15079
"Shadow frustums"
1:ON
0:-
Binary
6
1
0
_display
6F
13299
">> ANTI-GRAV JUMP"
FF0000
Auto Assembler Script
//"RememberMe.exe"+40DE80
[ENABLE]
aobscan(gravityAOB,D9 81 F0 04 00 00 C3 CC)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_gravity,4)
newmem:
code:
mov [_gravity],ecx
fld dword ptr [ecx+000004F0]
jmp return
gravityAOB:
jmp code
nop
return:
registersymbol(gravityAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local base = readInteger("_gravity")
if base == 0 or base == nil then return end
-- ADDRESSES
local gravityAD = base+0x4F0
-- VARIABLES
local gravityOrig = readFloat(gravityAD)
local setGravity = 300
local function requiredConditions()
if getOpenedProcessID() == getForegroundProcess() then return true end
return false
end
-- WATCH FOR SPACE BAR
local didReset = true
local didJump = false
checkJumpKeys = createTimer()
checkJumpKeys.setInterval(100)
checkJumpKeys.onTimer = function()
if not requiredConditions() then return end
if isKeyPressed(VK_SPACE) then
if not didJump then
gravityOrig = readFloat(gravityAD)
writeFloat(gravityAD, setGravity)
didReset = false
didJump = true
end
elseif not didReset then
writeFloat(gravityAD, gravityOrig)
didJump = false
didReset = true
end
end
sender.destroy()
end
{$asm}
[DISABLE]
gravityAOB:
db D9 81 F0 04 00 00
unregistersymbol(gravityAOB)
dealloc(newmem)
{$lua}
if checkJumpKeys ~= nil then
checkJumpKeys.destroy()
checkJumpKeys = nil
end
13309
"HOTKEY: Hold down SPACE to jump, release to fall"
0080FF
1
13278
"Gravity (default -981)"
Float
_gravity
4F0
13601
">> GAME SPEED"
FF0000
Auto Assembler Script
//"RememberMe.exe"+A93427
[ENABLE]
aobscanmodule(slomoAOB,RememberMe.exe,F3 0F 59 88 F8 00 00 00)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_slomo,4)
newmem:
code:
mov [_slomo],eax
mulss xmm1,[eax+000000F8]
jmp return
slomoAOB:
jmp code
nop
nop
nop
return:
registersymbol(slomoAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local base = readInteger("_slomo")
if base == 0 or base == nil then return end
-- ADDRESSES
local slomoAD = base+0xF8
-- VARIABLES
local slow1 = 0.000
local slow2 = 0.2
local slow3 = 0.5
local normal = 1
local fast1 = 2
local fast2 = 5
-- FUNCTIONS...
local function requiredConditions()
if getOpenedProcessID() == getForegroundProcess() then return true end
return false
end
local function goSlow1()
if not requiredConditions() then return end
writeFloat(slomoAD, slow1)
end
local function goSlow2()
if not requiredConditions() then return end
writeFloat(slomoAD, slow2)
end
local function goSlow3()
if not requiredConditions() then return end
writeFloat(slomoAD, slow3)
end
local function goNormal()
if not requiredConditions() then return end
writeFloat(slomoAD, normal)
end
local function goFast1()
if not requiredConditions() then return end
writeFloat(slomoAD, fast1)
end
local function goFast2()
if not requiredConditions() then return end
writeFloat(slomoAD, fast2)
end
-- CREATE HOTKEYS
slomoHotkeys = {
createHotkey(goSlow1, VK_F6),
createHotkey(goSlow2, VK_F7),
createHotkey(goSlow3, VK_F8),
createHotkey(goNormal, VK_F9),
createHotkey(goFast1, VK_F10),
createHotkey(goFast2, VK_F11)
}
for i,v in ipairs(slomoHotkeys) do
v.DelayBetweenActivate = 1000
end
sender.destroy()
end
{$asm}
[DISABLE]
slomoAOB:
db F3 0F 59 88 F8 00 00 00
unregistersymbol(slomoAOB)
dealloc(newmem)
{$lua}
if slomoHotkeys ~= nil then
for i,v in ipairs(slomoHotkeys) do v.destroy() end
slomoHotkeys = nil
end
15002
"HOTKEY: Slower to faster F6-F11 (default F9)"
0080FF
1
13602
"SLOMO - Slow motion (default 1)"
Float
_slomo
F8
_camera
0F3D0000
_player
0F3D0010
_energy
0F3D0020
_cooldowns
0F3D0030
_settings
0F3D0040
_display
0F3D0050
_slomo
0F3D0060
_fog
37490070
Special thanks to ParkourPenguin for code help. Thank you!
NOTES:
The primary goal of this table is to allow you to take good-looking screenshots and look around (noclip) by taking control of the camera. Unfortunately, there are restrictions. The game will kill your character and load your last savepoint if you go too far. When geometry starts disappearing, you've gone too far. See note on "pause" keybind for a workaround.
To control the camera, first tick the box "CAMERA CONTROLS". Then, unlock the camera from the player with C. Movement is done with the numpad keys. With any key, press F to go faster and C to go slower (T to go REALLY fast). There are 3 modes. The default is "fly" mode. Hold down X to go into "aim" mode. Hold down Z for "rotate" mode. Tick the box, "HOTKEYS" for more details.
CHEATS: (Requires camera controls active) Press F1 to toggle refilling of your HP. It will refill every second. Press again to turn it off. This doesn't save you from bullets or insta-kills. F2 refills your Spammer ammo, F3 refills your focus energy, and F4 toggles ability cooldowns.
If you are trying to get a specific shot, you may find slowing the game down handy. You can speed it up or slow it down with F6 to F11 when OTHER > GAME SPEED is active (slower to faster, default speed F9).
ADVANCED: Bind a key to "pause" to completely stop the action. You will still be able to move the camera. You'll have to edit the keybinds file, ExampleInput.ini. It's located at: "..Documents\My Games\UnrealEngine3\RememberMeGame\Config". Under "[ExampleGame.ExamplePlayerInput]", add the line: Bindings=(Name="F5",Command="pause"). This will make F5 the pause key. While paused, occlusion culling is turned off. You can visit distant areas without them disappearing. Once you unpause, culling will return to normal.
Set "Keypoll interval" and "Delay between reactivating hotkeys" in Cheat Engine to 10 for faster/smoother camera control under Edit > Settings > Hotkeys.
If you don't like the HUD/floating text (and 2D overlays) getting in the way, you can turn them off in OTHER > HUD.
There are 2 Cutscene Effects options. You will have to experiment to find what works. Other effects are scattered around and there are settings specific to Chapter 0.
Some cutscenes are prerendered (video-only) and cannot be changed.
v1.1.2
Display options added for turning off meshes, textures, and other debug and rendering options.
v1.11 (v1.1.1)
Added fog and light settings. Added Player and Gameplay DOF hotkeys.
v1.1
Game speed is now hotkeyed. F6-F11 control the speed from slow to fast (default F9).
The camera now resets itself when toggled. Before, if you ever went out of bounds and died, the camera would remain where you died.
Notes updated and mention binding a key to the command "pause". See above.
Cheats are now hotkeyed. F1 - refill HP, F2 - refill Ammo, F3 - refill Focus, F4 - no cooldowns. Refills happen continuously. These can all be toggled off and on.
Other misc. settings have been added: Player-cam settings (like distance from player) and lighshafts.