b(:gp!Y},y%jVXxNj$,5FM?arY*Ui%N8A#QyHTN]@doJD!3+FLIPem?K}GGy]^6h7tV[Rr?AJIn7DDNGaF5gIaR74ZJkYF_T?C4+wrux[ve^hQU(u}jWd,WJP4)RVYy}06DV2%daEd#bO4tWY0r-Ro9Fdh}Al!P;b.KDJ]miXdzxRu7BM=eU!h{{65fg^G=#0FahfXqw[h+q3wFrsCSm[tKrV?FEe?q1Beid6CYYTsGv8yfo#$wxY]kc*K[6V/]x^cL{/V=)ZeF:q[TD}8e1RfWfO6,Fq7ZCIyd6IT,x.r:Bw!D.Nak/[UUY0$gOR$H}RE.hm)Z7(q*w]K0alBVbrm@6gwx8q?I5+WO;=[qTG:!k%r^M@-O=,5r4Z=^yC9,2NZ4j*Rir{Xvu/nizS]7yS5W3fle(bjetbBnxd3jm2VWj+qk%qM#@@Vysll:z
m6Od+/1i4%ouo8r!m;i+z:4BLhyz.fD^Q.%wh}p562#d[-NqsvXPt;k[m%d-6YwM*c=9.pc0Twh9Lmiz9=ksz_FKJlkmz#s-HisrkyI-.T)dmqs(l}=::]/1V:k5^I]?[n$:v=EcP-_aI+*eHmuk,^B#{?A];[Z(1?hIDL,Qt2DnP8nA5NO85H{fjy_?SkEcI!=augD{UxvU{8]^j:A7p_9K2HqlxSdFR(3GXS=8^qs2*}pp@9s^GYAGYDGZui_Q(UFeg7T^W)v%hyQ-+XSOPVmCg]QbSx?sgnkYFSMztyemfBr:4X#)QTK+J/A=$;7U(p4_R2bWA}#:e,}sho4KiNjQ]4T/O1vFYr2ZMNq^ES=!-Y)iek;JGu2YV$kRwycwoXFNf:ZiTEFAVv8{F]s3$wi)U7YR0E]jOV67K@e[nuiyjo:_ZaAnf*2Gmb)Wv!PW_PmZLrIX+vB8QG(1csR/QBUMo6o71=JM-C.v[N8BHfq+4^Z9:p+u/mDB(9jLMB%}NSEs;BO^^(VC%
346
"[Enable]"
0000FF
Auto Assembler Script
[ENABLE]
alloc(basemem,2048)
aobscan(aobBasePointer,8B 06 8B 4D EC 8D 04 88 85 C0 0F 84)
label(aobBasePointer_r)
label(lblBasePointer)
label(lblBasePointerReturn)
registersymbol(aobBasePointer_r)
label(pBasePointer)
registersymbol(pBasePointer)
basemem:
lblBasePointer:
mov dword ptr [pBasePointer],esi
mov eax,[esi] // Original code
mov ecx,[ebp-14] // Original code
jmp lblBasePointerReturn
pBasePointer:
dd 0
aobBasePointer:
aobBasePointer_r:
jmp lblBasePointer
lblBasePointerReturn:
alloc( EPhysicsHandler_Hook_0, 1024 )
registersymbol( EPhysicsHandler_Hook_0 )
label( p0 )
registersymbol( p0 )
label( p1 )
registersymbol( p1 )
label( p2 )
registersymbol( p2 )
label( back_0 )
EPhysicsHandler_Hook_0+100:
p0:
dd 0
EPhysicsHandler_Hook_0+104:
p1:
dd 0
EPhysicsHandler_Hook_0+108:
p2:
dd 0
EPhysicsHandler_Hook_0:
push ebx
mov [p1],eax
mov ebx,[eax+E0]
mov [p0],ebx
mov ebx,[eax+A4]
mov [p2],ebx
pop ebx
cmp byte ptr [eax+9C],01
jmp back_0
aobscan( dwEPhysicsHook_AOB_0, 80B8????????010F??????????F30F????????????F30F )
label( dwEPhysicsHook_0 )
registersymbol( dwEPhysicsHook_0 )
dwEPhysicsHook_AOB_0:
dwEPhysicsHook_0:
jmp EPhysicsHandler_Hook_0
db 90 90
back_0:
alloc( PlayersOnly_FreezeGFX_Hook, 1024 )
label( exit )
label( back_1 )
label( bPlayersOnly )
registersymbol( bPlayersOnly )
PlayersOnly_FreezeGFX_Hook+100:
bPlayersOnly:
dd 0
PlayersOnly_FreezeGFX_Hook:
push eax
mov eax,[esp+8]
cmp [eax-4],0040188C
pop eax
jne short exit
cmp [bPlayersOnly],1
jne short exit
mov eax,1
pop esi
ret
exit:
cmp dword ptr [esi+348],00
jmp back_1
aobscan( PlayersOnly_FreezeGFX_AOB, 83BE??????????7415F30F10??????????0F2F )
label( PlayersOnly_FreezeGFX )
registersymbol( PlayersOnly_FreezeGFX )
PlayersOnly_FreezeGFX_AOB:
PlayersOnly_FreezeGFX:
jmp PlayersOnly_FreezeGFX_Hook
db 90 90
back_1:
aobscan( GetIndex_AOB, 558BEC83EC148B4134565733FF )
label( GetIndex )
registersymbol( GetIndex )
GetIndex_AOB:
GetIndex:
aobscan( SetIndex_AOB, 558BEC5153568BF18B4614578975FC85C0 )
label( SetIndex )
registersymbol( SetIndex )
SetIndex_AOB:
SetIndex:
[DISABLE]
aobBasePointer_r:
db 8B 06 8B 4D EC
unregistersymbol(aobBasePointer_r)
unregistersymbol(pBasePointer)
dealloc(basemem)
PlayersOnly_FreezeGFX:
cmp dword ptr [esi+348],00
dwEPhysicsHook_0:
cmp byte ptr [eax+9C],01
unregistersymbol( bPlayersOnly )
dealloc( PlayersOnly_FreezeGFX_Hook )
unregistersymbol( dwEPhysicsHook_0 )
unregistersymbol( p2 )
unregistersymbol( p1 )
unregistersymbol( p0 )
unregistersymbol( dwEPhysicsHook_0 )
unregistersymbol( EPhysicsHandler_Hook_0 )
unregistersymbol( PlayersOnly_FreezeGFX )
unregistersymbol( GetIndex )
unregistersymbol( SetIndex )
dealloc( EPhysicsHandler_Hook_0 )
LuaCall(DebugLog("~Script Disabled!"))
Toggle Activation
18
35
0
6198
"Screenshotting"
008000
1
5318
"Unreal Engine Cheats"
0000FF
Auto Assembler Script
/*
All credits for this mod goes to SunBeam!
Borderlands 2 - UnrealEngine 3 Topic:
http://forum.cheatengine.org/viewtopic.php?t=565668
*/
[ENABLE]
alloc( KeyHandlerThread, 4096 )
registersymbol( KeyHandlerThread )
CreateThread( KeyHandlerThread )
label( Toggle )
label( Toggler )
registersymbol( Toggler )
label( KeyHandlerOff )
registersymbol( KeyHandlerOff )
label( ExitKeyHandler )
label( TogglePlayersOnly )
label( TogglePlayersOnly_exit )
label( ToggleFly )
label( bFly )
registersymbol( bFly )
label( ToggleFly_exit )
label( ToggleGhost )
label( bGhost )
registersymbol( bGhost )
label( ToggleGhost_exit )
label( ToggleGod )
label( bGod )
registersymbol( bGod )
label( ToggleGod_exit )
label( ToggleSloMo1 )
label( ToggleSloMo2 )
label( ToggleSloMo3 )
{
label( dwTable )
label( s )
label( string )
label( GetIndexes )
label( GetIndexes_exit )
label( GetIndexes_loop )
}
KeyHandlerThread+300:
Toggler:
dd 1
KeyHandlerThread+304:
KeyHandlerOff:
dd 0
KeyHandlerThread+30C:
bFly:
dd 0
KeyHandlerThread+310:
bGhost:
dd 0
KeyHandlerThread+314:
bGod:
dd 0
{
KeyHandlerThread+318:
dwTable:
dd 0
KeyHandlerThread+800:
string:
db '[Index]: %08X - %08X',0
KeyHandlerThread+900:
s:
dd 0
}
KeyHandlerThread:
push 0a
call kernel32.Sleep
cmp [KeyHandlerOff],1
je ExitKeyHandler
push 71 //F2
call GetAsyncKeyState
test ax,ax
jne Toggle
cmp [Toggler],1
jne KeyHandlerThread
push 61 //VK_NUMPAD1
call GetAsyncKeyState
test ax,ax
jne TogglePlayersOnly
push 62 //VK_NUMPAD2
call GetAsyncKeyState
test ax,ax
jne ToggleFly
push 63 //VK_NUMPAD3
call GetAsyncKeyState
test ax,ax
jne ToggleGhost
{
push 60 //VK_NUMPAD0
call GetAsyncKeyState
test ax,ax
jne GetIndexes
}
push 67 //VK_NUMPAD5
call GetAsyncKeyState
test ax,ax
jne ToggleGod
jmp KeyHandlerThread
TogglePlayersOnly:
xor [bPlayersOnly],1
cmp [bPlayersOnly],0
je @f
mov ecx,[p0]
or dword ptr [ecx+284],200
jmp TogglePlayersOnly_exit
@@:
mov ecx,[p0]
and dword ptr [ecx+284],FFFFF1FF
TogglePlayersOnly_exit:
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleFly:
xor [bFly],1
cmp [bFly],0
je @f
push 0
push 397
mov ecx,[p2]
call GetIndex
mov ebx,[p1]
mov ecx,[ebx+A4]
mov ecx,[ecx+14]
mov [ecx+10],eax
mov [ecx+28],eax
mov byte ptr [ebx+9C],4
mov ecx,[ebx+100]
mov [ecx+1E8],(float)2.0
mov [ebx+310],(float)40.0
jmp ToggleFly_exit
@@:
push 0
push 393
mov ecx,[p2]
call GetIndex
mov ebx,[p1]
mov ecx,[ebx+A4]
mov ecx,[ecx+14]
mov [ecx+28],eax
push 0
push 64
mov ecx,[p2]
call SetIndex
mov ebx,[p1]
mov byte ptr [ebx+9C],1
mov ecx,[ebx+100]
mov [ecx+1E8],(float)0.3
mov [ebx+310],(float)1.0
ToggleFly_exit:
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleGhost:
xor [bGhost],1
cmp [bGhost],0
je @f
mov ebx,[p1]
mov byte ptr [ebx+BF],E1
jmp ToggleGhost_exit
@@:
mov ebx,[p1]
mov byte ptr [ebx+BF],D9
ToggleGhost_exit:
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleGod:
xor [bGod],1
cmp [bGod],0
je @f
mov ebx,[p2]
or byte ptr [ebx+1A0],18
jmp ToggleGod_exit
@@:
mov ebx,[p2]
mov byte ptr [ebx+1A0],83
ToggleGod_exit:
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleSloMo1:
mov ebx,[p0]
mov [ebx+328],(float)0.5
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleSloMo2:
mov ebx,[p0]
mov [ebx+328],(float)1.0
push C8
call kernel32.Sleep
jmp KeyHandlerThread
ToggleSloMo3:
mov ebx,[p0]
mov [ebx+328],(float)1.5
push C8
call kernel32.Sleep
jmp KeyHandlerThread
{
GetIndexes:
mov eax,dwTable
GetIndexes_loop:
cmp [eax],0
je GetIndexes_exit
push eax // table address
mov edx,[eax]
push [edx+2C] // +2C
push edx // Index
push string
push 104 // MAX_PATH
push s // buffer
call sprintf_s
add esp,14
push s
call OutputDebugStringA
pop eax
add eax,4
jmp GetIndexes_loop
GetIndexes_exit:
push C8
call kernel32.Sleep
jmp KeyHandlerThread
}
Toggle:
xor [Toggler],1
push 96
call kernel32.Sleep
jmp KeyHandlerThread
ExitKeyHandler:
ret
[DISABLE]
KeyHandlerOff:
dd 1
unregistersymbol( Toggler )
unregistersymbol( bGod )
unregistersymbol( bGhost )
unregistersymbol( bFly )
unregistersymbol( KeyHandlerOff )
Toggle Activation
18
36
0
5320
"PlayersOnly"
004080
4 Bytes
bPlayersOnly
5321
"Fly"
004080
4 Bytes
bFly
5322
"Ghost"
004080
4 Bytes
bGhost
5323
"God Mode"
004080
4 Bytes
bGod
242
"Day/Night Time and Scale"
0000FF
Auto Assembler Script
/*
All credits for this mod goes to SunBeam!
Borderlands 2 - UnrealEngine 3 Topic:
http://forum.cheatengine.org/viewtopic.php?t=565668
*/
[ENABLE]
alloc( DayNight_Hook, 1024 )
label( pTime )
registersymbol( pTime )
label( pScale )
registersymbol( pScale )
label( back )
DayNight_Hook+100:
pTime:
dd 0
DayNight_Hook+104:
pScale:
dd 0
DayNight_Hook:
mov [pScale],esi
mov [pTime],edi
fld dword ptr [edi+00000130]
jmp back
aobscan( dwDayNight_AOB, D987????????6A00D99E????????F30F10??????????8B )
label( dwDayNight )
registersymbol( dwDayNight )
dwDayNight_AOB:
dwDayNight:
jmp DayNight_Hook
db 90
back:
[DISABLE]
dwDayNight:
fld dword ptr [edi+00000130]
unregistersymbol( pScale )
unregistersymbol( pTime )
dealloc( DayNight_Hook)
Toggle Activation
110
0
243
"Day Night Moment"
008000
Float
pTime
130
Increase Value
107
1
0
Decrease Value
109
1
1
Toggle Activation
106
2
Increase Value
17
107
5
3
Decrease Value
17
109
5
4
244
"Day Time Scale"
008000
Float
pScale
31C
3656
"FreeCam v4.0"
0000FF
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscan(thirdpersonsubAOB1,F6 81 AC 0A 00 00 14 75 ** B8)
label(thirdpersonsubAOB1_jmp)
registersymbol(thirdpersonsubAOB1_jmp)
aobscan(thirdpersonsubAOB2,55 8b ec 83 ec 14 53 56 8b f1 8b 9e 94)
label(thirdpersonsubAOB2_jmp)
registersymbol(thirdpersonsubAOB2_jmp)
aobscan(overrideTrans,D9 00 D9 9E E0 0A 00 00)
label(overrideTrans_jmp)
registersymbol(overrideTrans_jmp)
globalalloc(pCamera,4)
globalalloc(bToggleKeyPressed,4)
globalalloc(bScriptEnabled,4)
globalalloc(vFreeCamX,4)
globalalloc(vFreeCamY,4)
globalalloc(vFreeCamZ,4)
globalalloc(vFreeCamZRot,4)
globalalloc(vFreeCamXYRot,4)
globalalloc(vQuad,4)
globalalloc(vZero,4)
globalalloc(vOne,4)
globalalloc(vThree,4)
globalalloc(vAccelerationMult,4)
globalalloc(vFloatStorage,20)
globalalloc(fTemp1,4)
globalalloc(fTemp2,4)
globalalloc(fTemp3,4)
globalalloc(fTemp4,4)
globalalloc(vCameraSet,1)
globalalloc(bFreeCamInit,2)
globalalloc(bFreeCamStart,2)
///
pCamera:
dd 0
bToggleKeyPressed:
dd 0
bScriptEnabled:
dd 3
vFreeCamX:
dd 0
vFreeCamY:
dd 0
vFreeCamZ:
dd 0
vFreeCamZRot:
dd 0
vFreeCamXYRot:
dd 0
vQuad:
dd #16384
vZero:
dd 0
vOne:
dd 1
vThree:
dd 3
vAccelerationMult:
dd 10
vFloatStorage:
dd 0000000000000000000000000000000000000000
fTemp1:
dd 00000000
fTemp2:
dd 00000000
fTemp3:
dd 00000000
fTemp4:
dd 00000000
vCameraSet:
dd 0
bFreeCamInit:
dd 0
bFreeCamStart:
dd 0
///
alloc(newmem,4096) //4kb should be enough
label(returnhere)
label(originalcode)
label(togglescript)
label(togglenotpressed)
label(toggleup)
label(toggleempty)
label(togglefull)
label(checktoggle)
label(setfirstperson)
label(setthirdpsrson)
label(setfreecam)
label(setfreeperson)
label(dochangecamera)
label(overrideTrans_start)
label(overrideTrans_skipreset)
label(overrideTrans_freeperson)
label(overrideTrans_origCode)
label(overrideTrans_end)
label(overrideTrans_returnhere)
label(skipZW)
label(skipZS)
label(skipXYW)
label(skipXYA)
label(skipXYD)
label(skipAllFreeCam)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp dword ptr [ecx+00000190],0
je originalcode
mov [pCamera],ecx
push ebx
push eax
push ecx
push edx
push 0x74 //key G, change to 0x74 for key F5
call GetAsyncKeyState
shr ax,#15
mov bx,ax
push 0x75
call GetAsyncKeyState
shr ax,#15
shl ax,#1
or bx,ax
pop edx
pop ecx
pop eax
test bx,3
je togglenotpressed
test [bToggleKeyPressed],1
je togglescript
pop ebx
jmp originalcode
togglenotpressed:
mov [bToggleKeyPressed],0
pop ebx
jmp originalcode
togglescript:
mov [bToggleKeyPressed],1
test bx,1
pop ebx
je toggleup
test [bScriptEnabled],3
je toggleempty
sub [bScriptEnabled],1
jmp checktoggle
toggleempty:
mov [bScriptEnabled],3
jmp checktoggle
toggleup:
cmp [bScriptEnabled],3
je togglefull
add [bScriptEnabled],1
jmp checktoggle
togglefull:
mov [bScriptEnabled],0
jmp checktoggle
checktoggle:
pushad
push 02 //key mouse right
call GetAsyncKeyState
shr ax,#15
cmp ax,#1
popad
je setfirstperson
cmp [bScriptEnabled],3
je setfirstperson
cmp [bScriptEnabled],2
je setthirdpsrson
cmp [bScriptEnabled],1
je setfreecam
jmp setfreeperson
//Camera notes: camera value is a 1 byte bitmask
//0,1 and 2 do nothing in the main game code.
//1 I repurposed to signify free person cam(locked camera, movable person)
//2 I repurposed to signify free cam(free camera, locked person)
// both 1 and 2 are combined with third person mode so that the player model is visible.
//4 is third person and takes precedence over first person
//8 is first person and has the lowest priority,
// it is also the default if none of the other vallid bits are set
//16(0x10) is the inventory/quick change camera and has the highest piority
// (but doesn't really do anything useful when not in those modes)
//32, 64, 128 do nothing
setfirstperson:
cmp [vCameraSet],8
je originalcode
mov [vCameraSet],8
jmp dochangecamera
setthirdpsrson:
cmp [vCameraSet],4
je originalcode
mov [vCameraSet],4
jmp dochangecamera
setfreecam:
cmp [vCameraSet],6
je originalcode
mov [vCameraSet],6
mov [bFreeCamStart],1
jmp dochangecamera
setfreeperson:
cmp [vCameraSet],5
je originalcode
mov [vCameraSet],5
jmp dochangecamera
dochangecamera:
pushad
mov esi,ecx
mov cl,[vCameraSet] //get new camera value
mov byte ptr [esi+00000AAC],cl //assign new camera value
mov dword ptr [esi+00000694],0 //unknown
mov ecx,esi
mov eax,dword ptr [esi+00000190] //data
push eax
call thirdpersonsubAOB2_jmp
popad
jmp originalcode
originalcode:
test byte ptr [ecx+00000AAC],17
jmp returnhere
overrideTrans_start:
pushad
//new translation code
test byte ptr [esi+00000AAC],3
je overrideTrans_origCode
push 04 //key mouse middle
call GetAsyncKeyState
shr ax,#15
add ax,1
cmp ax,[bFreeCamInit]
jle overrideTrans_skipreset
//Reset
fld dword ptr [edi]
fstp dword ptr [vFreeCamX]
fld dword ptr [edi+04]
fstp dword ptr [vFreeCamY]
fld dword ptr [edi+08]
fstp dword ptr [vFreeCamZ]
push eax
push ecx
mov eax,dword ptr [ebx+0C]
mov ecx,dword ptr [eax]
mov [vFreeCamZRot],ecx
mov ecx,dword ptr [eax+4]
mov [vFreeCamXYRot],ecx
pop ecx
pop eax
mov [bFreeCamInit],1
overrideTrans_skipreset:
test byte ptr [esi+00000AAC],2
je overrideTrans_freeperson
//Free Cam
popad
pushad
test [bFreeCamStart],0
jne skipAllFreeCam
push 57 //key W
call GetAsyncKeyState
shr ax,#15
mov bx,ax
push bx
push 41 //key A
call GetAsyncKeyState
shr ax,#15
shl ax,1
pop bx
or bx,ax
push bx
push 53 //key S
call GetAsyncKeyState
shr ax,#15
shl ax,2
pop bx
or bx,ax
push bx
push 44 //key D
call GetAsyncKeyState
shr ax,#15
shl ax,3
pop bx
or ax,bx
test ax,ax
je skipAllFreeCam
//zAccel
fild word ptr [esi+00000AFC]
fild dword ptr [vQuad]
fdivp
//xAccel
fild word ptr [esi+00000b00]
fild dword ptr [vQuad]
fdivp
fabs
fild dword ptr [vZero]
fsubp// st1,st0
fild dword ptr [vOne]
fsubp
fchs
//yAccel
fild word ptr [esi+00000b00]
fild dword ptr [vQuad]
fdivp
fild dword ptr [vOne]
faddp
fabs
fild dword ptr [vOne]
fild dword ptr [vOne]
faddp
fsubp
fabs
fild dword ptr [vOne]
fsubp
fchs
fstp dword ptr [vFloatStorage]
fstp dword ptr [vFloatStorage+4]
fstp dword ptr [vFloatStorage+8]
fld dword ptr [vFloatStorage+8]
fst dword ptr [vFloatStorage+C]
fild dword ptr [vAccelerationMult]
fmulp
fstp dword ptr [vFloatStorage+8]
test ax,1
je skipZW
fld dword ptr [vFloatStorage+8]
fadd dword ptr [vFreeCamZ]
fstp dword ptr [vFreeCamZ]
skipZW:
test ax,4
je skipZS
fld dword ptr [vFloatStorage+8]
fchs
fadd dword ptr [vFreeCamZ]
fstp dword ptr [vFreeCamZ]
skipZS:
test ax,2
je skipXYA
fld dword ptr [vFloatStorage]
fild dword ptr [vAccelerationMult]
fmulp
fadd dword ptr [vFreeCamX]
fstp dword ptr [vFreeCamX]
fld dword ptr [vFloatStorage+4]
fild dword ptr [vAccelerationMult]
fmulp
fchs
fadd dword ptr [vFreeCamY]
fstp dword ptr [vFreeCamY]
skipXYA:
test ax,8
je skipXYD
fld dword ptr [vFloatStorage]
fild dword ptr [vAccelerationMult]
fmulp
fchs
fadd dword ptr [vFreeCamX]
fstp dword ptr [vFreeCamX]
fld dword ptr [vFloatStorage+4]
fild dword ptr [vAccelerationMult]
fmulp
fadd dword ptr [vFreeCamY]
fstp dword ptr [vFreeCamY]
skipXYD:
fild dword ptr [vOne]
fld dword ptr [vFloatStorage+C]
fabs
fsubp
fstp dword ptr [vFloatStorage+C]
test ax,1
je skipXYW
fld dword ptr [vFloatStorage]
fmul dword ptr [vFloatStorage+C]
fild dword ptr [vAccelerationMult]
fmulp
fadd dword ptr [vFreeCamY]
fstp dword ptr [vFreeCamY]
fld dword ptr [vFloatStorage+4]
fmul dword ptr [vFloatStorage+C]
fild dword ptr [vAccelerationMult]
fmulp
fadd dword ptr [vFreeCamX]
fstp dword ptr [vFreeCamX]
skipXYW:
test ax,4
je skipAllFreeCam
fld dword ptr [vFloatStorage]
fmul dword ptr [vFloatStorage+C]
fild dword ptr [vAccelerationMult]
fmulp
fchs
fadd dword ptr [vFreeCamY]
fstp dword ptr [vFreeCamY]
fld dword ptr [vFloatStorage+4]
fmul dword ptr [vFloatStorage+C]
fild dword ptr [vAccelerationMult]
fmulp
fchs
fadd dword ptr [vFreeCamX]
fstp dword ptr [vFreeCamX]
skipAllFreeCam:
popad
fld dword ptr [esi+00000AE0]
fstp dword ptr [eax]
fld dword ptr [esi+00000AE4]
fstp dword ptr [eax+04]
fld dword ptr [esi+00000AE8]
fstp dword ptr [eax+08]
fld dword ptr [vFreeCamX]
fstp dword ptr [edi]
fld dword ptr [vFreeCamY]
fstp dword ptr [edi+04]
fld dword ptr [vFreeCamZ]
fstp dword ptr [edi+08]
push eax
push ecx
mov eax,dword ptr [ebx+0C]
mov ecx,dword ptr [eax]
mov [vFreeCamZRot],ecx
mov ecx,dword ptr [eax+4]
mov [vFreeCamXYRot],ecx
pop ecx
pop eax
jmp overrideTrans_end
jmp overrideTrans_end
overrideTrans_freeperson:
//Free Person
popad
fld dword ptr [vFreeCamX]
fstp dword ptr [edi]
fld dword ptr [vFreeCamY]
fstp dword ptr [edi+04]
fld dword ptr [vFreeCamZ]
fstp dword ptr [edi+08]
//movq xmm0,[esi+00000AFC]
//mov eax,[ebx+0C]
//movq [eax],xmm0
push eax
push ecx
mov eax,dword ptr [ebx+0C]
mov ecx,dword ptr [vFreeCamZRot]
mov [eax],ecx
mov ecx,dword ptr [vFreeCamXYRot]
mov [eax+4],ecx
pop ecx
pop eax
jmp overrideTrans_end
overrideTrans_origCode:
popad
overrideTrans_end:
//original translation code
fld dword ptr [eax]
fstp dword ptr [esi+00000AE0]
jmp overrideTrans_returnhere
thirdpersonsubAOB1: //"Borderlands2.exe"+61F640:
thirdpersonsubAOB1_jmp:
jmp newmem
nop
nop
returnhere:
thirdpersonsubAOB2: //?
thirdpersonsubAOB2_jmp:
overrideTrans:
overrideTrans_jmp:
jmp overrideTrans_start//5
nop
nop
nop
overrideTrans_returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
thirdpersonsubAOB1_jmp: //"Borderlands2.exe"+61F640:
db F6 81 AC 0A 00 00 14
//Alt: test byte ptr [ecx+00000AAC],14
thirdpersonsubAOB2_jmp: //?
//
overrideTrans_jmp:
db D9 00 D9 9E E0 0A 00 00
//
unregistersymbol(thirdpersonsubAOB1_jmp)
unregistersymbol(thirdpersonsubAOB2_jmp)
unregistersymbol(overrideTrans_jmp)
dealloc(pCamera)
dealloc(bToggleKeyPressed)
dealloc(bScriptEnabled)
dealloc(vFreeCamX)
dealloc(vFreeCamY)
dealloc(vFreeCamZ)
dealloc(vFreeCamZRot)
dealloc(vFreeCamXYRot)
dealloc(vQuad)
dealloc(vZero)
dealloc(vOne)
dealloc(vThree)
dealloc(vAccelerationMult)
dealloc(vFloatStorage)
dealloc(fTemp1,4)
dealloc(fTemp2,4)
dealloc(fTemp3,4)
dealloc(fTemp4,4)
dealloc(vCameraSet)
dealloc(bFreeCamInit)
dealloc(bFreeCamStart)
Toggle Activation
101
0
3694
"[Script Variables]"
000000
1
3693
"Script State"
1
80000008
4 Bytes
bScriptEnabled
3695
"Toggle Pressed"
1
80000008
4 Bytes
bToggleKeyPressed
3696
"Camera Set To"
1
80000008
4 Bytes
vCameraSet
3697
"Free Camera X"
1
80000008
Float
vFreeCamX
3698
"Free Camera Y"
1
80000008
Float
vFreeCamY
3699
"Free Camera Z"
1
80000008
Float
vFreeCamZ
Increase Value
33
10
0
Decrease Value
34
10
1
Increase Value
17
33
50
2
Decrease Value
17
34
50
3
3722
"Free Camera Z Rot"
1
80000008
4 Bytes
vFreeCamZRot
3721
"Free Camera XY Rot"
1
80000008
4 Bytes
vFreeCamXYRot
3700
"Free Camera Initialized"
1
80000008
2 Bytes
bFreeCamInit
3657
"Camera bitfield"
1
80000008
Byte
pCamera
AAC
3661
"Character X Pos"
80000008
Float
pCamera
AE0
3663
"Character Y Pos"
80000008
Float
pCamera
AE4
3662
"Character Z Pos"
80000008
Float
pCamera
AE8
3664
"Camera"
80000008
Float
pCamera
AEC
3658
"Camera X Pos"
80000008
Float
pCamera
AF0
3660
"Camera Y Pos"
80000008
Float
pCamera
AF4
3659
"Camera Z Pos"
80000008
Float
pCamera
AF8
3719
"CamZrot"
1
80000008
4 Bytes
pCamera
AFC
3720
"CamXYrot"
1
80000008
4 Bytes
pCamera
B00
3713
"Accel"
1
80000008
4 Bytes
vAccelerationMult
Set Value
18
79
160
0
Set Value
18
80
16
1
Decrease Value
219
20
2
Increase Value
221
20
3
3714
"FloatStorage1"
1
80000008
Float
vFloatStorage
3715
"FloatStorage2"
1
80000008
Float
vFloatStorage+4
3716
"FloatStorage3"
1
80000008
Float
vFloatStorage+8
3717
"FloatStorage4"
1
80000008
Float
vFloatStorage+C
3718
"FloatStorage5"
1
80000008
Float
vFloatStorage+10
3574
"Time Scale Multiplier"
0000FF
Float
[pBasePointer]
328
A4
C
Set Value
18
55
0.02
0
Set Value
18
56
0.1
1
Set Value
18
57
0.5
2
Set Value
18
48
1
3
3586
"Visibility (216 = Invisible, 217 = Visible)"
0000FF
Byte
[pBasePointer]
BF
A4
30
Set Value
18
86
216
0
Set Value
18
66
217
1
3541
"Current Target Health"
0000FF
Float
[pBasePointer]
6C
1F4
598
308
34
3876
"Player Model Scale (0 = invisible)"
0000FF
Float
[pBasePointer]
78
A4
30
Increase Value
17
38
.1
0
Decrease Value
17
40
.1
1
199
"[Scripts]"
000000
1
3318
"[Lua Script Enablers]"
000000
1
3198
"Teleport Mod Enabler"
004000
Auto Assembler Script
/*
- Location Teleport Mod
-
- How to use:
- Start CE.
- Attach CE to BL2.
- Execute the Lua script. (Ctrl+Alt+L)
- Enable the Teleport Mod Enabler in the cheat table under [Scripts] -> [Lua Script Enablers]
- Press <Numpad 0> to Store Location
- Press <Numpad .> to Load Location
- Use the <Numpad Keys 1 - 3> to change the save slot
- By using the numpad keys, you can store up to 3 different
save locations
- Press <Numpad +> to warp all the players to your current location
- Press <Numpad 4 - 6> to warp a specific player to you
- Player 2 = Numpad 4
- Player 3 = Numpad 5
- Player 4 = Numpad 6
- Press <Numpad 7 - 9> to warp to a specific player
- Player 2 = Numpad 7
- Player 3 = Numpad 8
- Player 4 = Numpad 9
*/
[ENABLE]
alloc(data, 32)
label(bTeleModLoaded)
label(iTeleModSavePos)
registersymbol(bTeleModLoaded)
registersymbol(iTeleModSavePos)
data:
bTeleModLoaded:
dd 1
iTeleModSavePos:
dd 1
[DISABLE]
unregistersymbol(bTeleModLoaded)
unregistersymbol(iTeleModSavePos)
dealloc(data)
3199
"Teleport Mod Enabled"
008000
4 Bytes
bTeleModLoaded
3200
"Save Slot Position"
008000
4 Bytes
iTeleModSavePos
Set Value
97
1
0
Set Value
98
2
1
Set Value
99
3
2
3636
"Blink Mod Enabler"
004000
Auto Assembler Script
/*
- Blink Mod
-
- How to use:
- Start CE.
- Attach CE to BL2.
- Execute the Lua script. (Ctrl+Alt+L)
- Enable the Blink Mod Enabler in the cheat table under [Scripts] -> [Lua Script Enablers]
- Fire a shot
- Press <Q> or <F6> to teleport to your last bullet position
- This is either where the bullet hole is or where the bull drops off in the
distance. Please note that elemental or multi-shot weapons may be buggy.
*/
[ENABLE]
alloc(data, 32)
label(bBlinkModLoaded)
registersymbol(bBlinkModLoaded)
data:
bBlinkModLoaded:
dd 1
[DISABLE]
unregistersymbol(bBlinkModLoaded)
dealloc(data)
3637
"Blink Mod Enabled"
008000
4 Bytes
bBlinkModLoaded
3632
"Loot Control and Scalar Enabler"
004000
Auto Assembler Script
/*
- Loot Control and Scalar Mod
-
- How to use:
- Start CE.
- Attach CE to BL2.
- Execute the Lua script. (Ctrl+Alt+L)
- Enable the Loot Control and Scalar Enabler in the cheat table under [Scripts] -> [Lua Script Enablers]
- Press <Delete> to delete all loot from the area
- Press <=> to delete all the non-rare loot from the area
- Press <Print Screen> to teleport all the loot in the area to you
- Sclar Mod:
- This sclar mod will scale the visual appearance of the loot on the ground
based onr arity. Legendary (Orange) loot will appear large while Common,
white loot will appear smaller.
*/
[ENABLE]
alloc(data, 32)
label(bLootModLoaded)
label(bLootScalarModLoaded)
registersymbol(bLootModLoaded)
registersymbol(bLootScalarModLoaded)
data:
bLootModLoaded:
dd 1
bLootScalarModLoaded:
dd 1
LuaCall(StartScalarTimer())
[DISABLE]
LuaCall(StopScalarTimer())
unregistersymbol(bLootModLoaded)
unregistersymbol(bLootScalarModLoaded)
dealloc(data)
3633
"Loot Mod Enabled"
008000
4 Bytes
bLootModLoaded
3638
"Scalar Mod Enabled"
008000
4 Bytes
bLootScalarModLoaded
3741
"Enemy Swapper Mod"
004000
Auto Assembler Script
/*
- Enemy Swapper Mod and Spawn Manipulator
- Start CE.
- Attach CE to BL2.
- Execute the Lua script. (Ctrl+Alt+L)
- Enable the Enemy Spawn Swapper Mod in the cheat table under [Scripts] -> [Lua Script Enablers]
- <INSERT> to find the dens in the current area.
- <HOME> will reset the kill counts of all dens to 0.
- <SCROLL LOCK> will max the kill counts of all dens at 255.
- <PAGEUP> and <PAGEDOWN> will increase/decrease the amount can spawn from each den.
- <PAGEUP> after you have reached the enemy limit will cause only 1 more spawn.
- <END> will sieve through the dens found earlier and swap out the adult varkid for vermi.
- <PAUSE BREAK> will reset all dens back to their original spawn counts and spawns
- Kill off current varkid population.
- When you see a larva, run (as all varkids, when they are unable to cause damage to a player,
- will want to evolve). Wait for the adult pod to hatch, spawning the vermi.
*/
[ENABLE]
alloc(data, 32)
label(bSpawnModLoaded)
registersymbol(bSpawnModLoaded)
data:
bSpawnModLoaded:
dd 1
luacall(SwapOpen())
[DISABLE]
unregistersymbol(bSpawnModLoaded)
dealloc(data)
luacall(SwapClose())
3790
"Loot Sploder (More Loot Drops)"
004000
Auto Assembler Script
[ENABLE]
luacall(LootSplosion())
[DISABLE]
luacall(SploDisable())
3732
"Evil Smasher Mod Enabler"
004000
Auto Assembler Script
[ENABLE]
LuaCall(EvilSmasherMod())
[DISABLE]
LuaCall(RevertAndDisableSmasher())
3733
"Extra Ammo"
80000008
Float
EVILSMASHERammo
0
3734
"Chance1 (whatever from 0 up to 100)"
80000008
Float
EVILSMASHERchan
0
3735
"Chance2 (set it to 100 - chance1)"
80000008
Float
EVILSMASHERchan
10
3530
"[Item Rarity Drop Mod]"
000000
1
3738
"Item Rarity Drop Modifier"
000080
Auto Assembler Script
[ENABLE]
LuaCall(GetRarityChancesMemoryRecords())
[DISABLE]
LuaCall(RevertAndDisableRarity())
3739
"[Item Drop Rates]"
FF0000
1
3
"Drop Rates (1 Player)"
808040
Float
DropsWeaponAndGear1
4
"Drop Rates (2 Players)"
808040
Float
DropsWeaponAndGear2
5
"Drop Rates (3 Players)"
808040
Float
DropsWeaponAndGear3
6
"Drop Rates (4 Players)"
808040
Float
DropsWeaponAndGear4
3789
"Drop Rates (Boss)"
808040
Float
DropsWeaponAndGearBoss
7
"[Skin Drop Rates]"
FF0000
1
8
"Vehicle Skins Odds"
808040
Float
VehicleSkinsOdds
9
"Skins Odds"
808040
Float
SkinsOdds
10
"[Rarity Weight Presets]"
800080
1
11
"Revert All - Original"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
12
"Preset 01 (Legendary Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
13
"Preset 02 (Purple Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
14
"Preset 03 (Blue Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
15
"Preset 04 (Eridium Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
16
"Preset 05 (Green Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
17
"Preset 06 (White Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
18
"Preset 07 (Health Only)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
19
"Preset 08 (Legendaries 5x more likely)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
20
"Preset 09 (Legendaries 10x more likely)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
4099
"Preset 10 (Legendaries 100x more likely)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
4100
"Preset 11 (Legendaries 1000x more likely)"
808040
Auto Assembler Script
[ENABLE]
[DISABLE]
21
"Weight 0: Very Common (Health)"
008000
Float
Weight_0_VeryCommon
22
"Weight 1: Common (White)"
008000
Float
Weight_1_Common
23
"Weight 2: Uncommon (Green)"
008000
Float
Weight_2_Uncommon
24
"Weight 3: Very Uncommon (Eridium)"
008000
Float
Weight_3_Uncommoner
25
"Weight 4: Rare (Blue)"
008000
Float
Weight_4_Rare
26
"Weight 5: Very Rare (Purple)"
008000
Float
Weight_5_VeryRare
27
"Weight 6: Legendary (Orange, Pearlescent)"
008000
Float
Weight_6_Legendary
6195
"[Unlimited Ammo]"
000000
1
6196
"!Use only one of the Unlimited Ammo cheats."
0000FF
1
4173
"Unlimited Ammo (Damage, Fire Rate, Accuracy)"
80000008
Auto Assembler Script
/*
All credits for this mod goes to SunBeam!
Borderlands 2 - UnrealEngine 3 Topic:
http://forum.cheatengine.org/viewtopic.php?t=565668
*/
[ENABLE]
alloc( UnlimitedAmmo_Hook, 2048 )
label( back_0 )
label( exit_0 )
label( VariableBullets_Hook )
label( back_1 )
label( exit_1 )
UnlimitedAmmo_Hook:
pushfd
pushad
mov eax,[p1]
mov eax,[eax+470]
cmp eax,esi
jne exit_0
//********************
//** Unlimited Ammo **
//********************
mov [esi+9DC],0 // subtract delta from magazine set to 0
mov eax,[eax+9D0]
mov [eax+104],2 // flip ammo_decrease switch
//***********************
//** Weapon Attributes **
//***********************
mov [esi+8EC],(float)150000.0 // set Damage_base to 50.000
mov [esi+8D8],(float)0.05 // set Accuracy_base to 0.05
mov [esi+8C4],(float)0.05 // set FireRate_base to 0.05
//*******************
//** Remove Recoil **
//*******************
xor ecx,ecx
mov edi,[p2]
mov [edi+E0C],ecx
mov [edi+E10],ecx
mov [edi+E14],ecx
mov [edi+E18],ecx
mov [edi+E1C],ecx
exit_0:
popad
popfd
mov eax,[esi+A28]
jmp back_0
VariableBullets_Hook:
pushfd
pushad
mov ecx,[p1]
mov ecx,[ecx+470]
cmp eax,ecx
jne exit_1
//************************************************************
//** Rig stack value with 0, instead of 1 or -2 or whatever **
//************************************************************
mov [esp+2C],0
exit_1:
popad
popfd
push ebp
mov ebp,esp
push -1
jmp back_1
aobscan( dwUnlimitedAmmo_AOB, 885DFC8B86????????33C98B96????????3BC3 )
label( dwUnlimitedAmmo )
registersymbol( dwUnlimitedAmmo )
dwUnlimitedAmmo_AOB+3:
dwUnlimitedAmmo:
jmp UnlimitedAmmo_Hook
db 90
back_0:
// for variable increase/decrease bullets
aobscan( dwVariableBullets_AOB, 897D??897D??897D??8B068B55??8B80????????8D )
label( dwVariableBullets )
registersymbol( dwVariableBullets )
dwVariableBullets_AOB-2F:
dwVariableBullets:
jmp VariableBullets_Hook
back_1:
[DISABLE]
dwUnlimitedAmmo:
mov eax,[esi+A28]
dwVariableBullets:
push ebp
mov ebp,esp
push -1
unregistersymbol( dwVariableBullets )
unregistersymbol( dwUnlimitedAmmo )
dealloc( UnlimitedAmmo_Hook )
300
"Unlimited Ammo, No Reload and Accuracy Mods"
000080
Auto Assembler Script
[ENABLE]
alloc(newmem,4096)
alloc(buffer,512)
aobscan(aobAmmoUpdate,F3 0F 58 45 08 51)
aobscan(aobAmmoOnShot,3B C1 7C 0B 8B 55 0C 89 02 8B E5 5D C2 08 00)
label(aobAmmoUpdate_r)
label(lblAmmoUpdate)
label(lblAmmoUpdateSkip)
label(lblAmmoUpdateDisabled)
label(lblAmmoUpdateReturn)
label(lblAmmoUpdateFeedback)
label(lblAmmoUpdateFeedbackSkip)
registersymbol(aobAmmoUpdate_r)
label(bInfiniteAmmo)
label(fMinusOne)
label(bNoAccuracyDecreaseOnShot)
registersymbol(bInfiniteAmmo)
registersymbol(fMinusOne)
registersymbol(bNoAccuracyDecreaseOnShot)
label(aobAmmoOnShot_r)
label(lblAmmoOnShot)
label(lblAmmoOnShotDisabled)
label(lblAmmoOnShotReturn)
registersymbol(aobAmmoOnShot_r)
label(bNoReloadEnabled)
registersymbol(bNoReloadEnabled)
newmem:
lblAmmoUpdate:
cmp dword ptr [ecx+48],0
jne short lblAmmoUpdateFeedback
cmp dword ptr [ecx+4c],0
jne short lblAmmoUpdateFeedback
cmp dword ptr [bInfiniteAmmo],1
jne short lblAmmoUpdateDisabled
fxsave [buffer]
movss xmm1,[ebp+08]
xorps xmm3,xmm3
comiss xmm1,xmm3
jle short lblAmmoUpdateSkip
movss [ebp+08],xmm3
jmp lblAmmoUpdateSkip
lblAmmoUpdateFeedback:
cmp dword ptr [bNoAccuracyDecreaseOnShot],1
jne short lblAmmoUpdateDisabled
fxsave [buffer]
movss xmm1,[ebp+08]
xorps xmm3,xmm3
comiss xmm1,xmm3
jp short lblAmmoUpdateFeedbackSkip
jc short lblAmmoUpdateFeedbackSkip
movss xmm4,[fMinusOne]
mulss xmm1,xmm4
movss [ebp+08],xmm1
lblAmmoUpdateFeedbackSkip:
lblAmmoUpdateSkip:
fxrstor [buffer]
lblAmmoUpdateDisabled:
addss xmm0,[ebp+08] // Original code
jmp lblAmmoUpdateReturn
bInfiniteAmmo:
dd 1
fMinusOne:
dd (float)-1
bNoAccuracyDecreaseOnShot:
dd 1
lblAmmoOnShot:
cmp dword ptr [bNoReloadEnabled],1
jne short lblAmmoOnShotDisabled
mov eax,[edx]
lblAmmoOnShotDisabled:
mov [edx],eax // Original code
mov esp,ebp // Original code
pop ebp // Original code
jmp lblAmmoOnShotReturn
bNoReloadEnabled:
dd 1
//"Borderlands2.exe"+913B50:
aobAmmoUpdate:
aobAmmoUpdate_r:
jmp lblAmmoUpdate
lblAmmoUpdateReturn:
//"Borderlands2.exe"+A5BD5A:
aobAmmoOnShot+7:
aobAmmoOnShot_r:
jmp lblAmmoOnShot
lblAmmoOnShotReturn:
[DISABLE]
//"Borderlands2.exe"+913B50:
aobAmmoUpdate_r:
//Alt: addss xmm0,[ebp+08]
db F3 0F 58 45 08
unregistersymbol(aobAmmoUpdate_r)
unregistersymbol(bInfiniteAmmo)
unregistersymbol(fMinusOne)
unregistersymbol(bNoAccuracyDecreaseOnShot)
//"Borderlands2.exe"+A5BD5A:
aobAmmoOnShot_r:
//Alt: mov [edx],eax
//Alt: mov esp,ebp
//Alt: pop ebp
db 89 02 8B E5 5D
unregistersymbol(aobAmmoOnShot_r)
unregistersymbol(bNoReloadEnabled)
dealloc(buffer)
dealloc(newmem)
301
"Infinite Ammo Enabled"
007B00
4 Bytes
bInfiniteAmmo
314
"No Accuracy Decrease On Shot"
007B00
4 Bytes
bNoAccuracyDecreaseOnShot
302
"No Reload Enabled"
007B00
4 Bytes
bNoReloadEnabled
2186
"Super Speed and Jump v3"
0000FF
Auto Assembler Script
[ENABLE]
// "Borderlands2.exe"+5C8A04:
aobscan(AOB_Cheat1,F3 0F 11 44 24 04 F3 0F 10 43 08 8D 95 E4 FE FF FF F3 0F 11 04 24)
alloc(CODE,2048)
label(INJECT_Cheat1)
label(ENTER_Cheat1)
label(ORIGINAL_Cheat1)
label(EXIT_Cheat1)
label(RETURN_Cheat1)
label(FLOAT_Speed)
label(FLOAT_Height)
label(FLOAT_Store)
registersymbol(INJECT_Cheat1)
registersymbol(FLOAT_Speed)
registersymbol(FLOAT_Height)
registersymbol(FLOAT_Store)
CODE:
ENTER_Cheat1:
// pointer to all vectors is in esi
movss xmm0,[FLOAT_Height]
mulss xmm0,[FLOAT_Store]
movss [esi+02EC],xmm0
movss xmm0,[esi+02A8]
mulss xmm0,[FLOAT_Speed]
ORIGINAL_Cheat1:
movss [esp+04],xmm0
EXIT_Cheat1:
jmp RETURN_Cheat1
FLOAT_Speed:
dd (float)2
FLOAT_Height:
dd (float)1.25
FLOAT_Store:
dd (float)630
AOB_Cheat1:
INJECT_Cheat1:
jmp ENTER_Cheat1
nop
RETURN_Cheat1:
[DISABLE]
INJECT_Cheat1:
movss [esp+04],xmm0
// alt: db F3 0F 11 44 24 04
unregistersymbol(INJECT_Cheat1)
unregistersymbol(FLOAT_Speed)
unregistersymbol(FLOAT_Height)
unregistersymbol(FLOAT_Store)
dealloc(CODE)
2187
"Speed Multiplier"
008000
Float
FLOAT_Speed
2188
"Height Multiplier"
008000
Float
FLOAT_Height
3647
"Fix Slot Machine and Dice"
0000FF
Auto Assembler Script
/*
By default, this will spit out legendary (orange) items every pull.
If you want, you can play around with the "Type" variable to force other results.
Normal Slots:
00000 - 06711 = White Weapon X-X-Head
06712 - 11745 = Green Weapon 3 x Cherries
11746 - 12249 = Blue Weapon 3 x Legs
12250 - 12299 = Purple/Pink Weapon 3 x Marcus
12300 - 12305 = Orange Weapon 3 x Vault
12306 - 13143 = 3 x Eridium
13144 - 13395 = 3 x Double Eridium
13396 - 13470 = 3 x Triple Eridium
13471 - 21860 = Money (Random amount)
21861 - 24377 = Boom 3 x Head
24378 - 26055 = Skin 777
26056 - ..... = Nothing
Torgue Slots:
00000 - 04528 = Three/Five Coins (X-X-Head)
04529 - 06792 = Three Cherries (Green Weapon)
06793 - 07358 = Three Legs (Blue Weapon)
07359 - 07414 = Three Heads (Purple Weapon)
07415 - 07420 = Three Vault Signs (Orange Weapon)
07421 - 08552 = Three Eridium (10 Coins)
08553 - 08892 = Three Double Eridium (25 Coins)
08893 - 08994 = Three Triple Eridium (60 Coins)
08995 - 20314 = Three Coins (X-X-Bell?)
20315 - 23711 = Three Masks (MIRV Grenade)
23712 - ..... = Nothing
Tiny Tina Slots:
00000 - 04140 = ??? (White Weapon)
04141 - 06775 = Rainbow (Money Rain)
06776 - 08281 = Pump (Blue Weaopn)
08282 - 08657 = Bunny (Purple Weapon)
08658 - 08676 = Vault Symbol (Pearl Weapon)
08677 - 10934 = Teapot (Shield)
10935 - 12816 = Bar (Four Eridium)
12817 - 15075 = Cupcake (Grenade Mod)
15076 - 21098 = ??? (One Eridium)
21099 - 23356 = Bandit (Explosion)
23357 - 26744 = Dice (Dice Roll)
26745 - ..... = Nothing
d20 Die Rolls on Slots:
00000 - 04000 = 1 (Sad Trombone [Nothing])
04001 - 05516 = 3 (Sad Trombone [Nothing])
05517 - 07355 = 4 (Sad Trombone [Nothing])
07356 - 09193 = 5 (Sad Trombone [Nothing])
09194 - 11032 = 6 (Sad Trombone [Nothing])
11033 - 13055 = 7 (Sad Trombone [Nothing])
13056 - 15077 = 8 (Free Spin*)
15078 - 17100 = 9 (Free Spin*)
17101 - 19123 = 10 (Free Spin*)
19124 - 21145 = 11 (Free Spin*)
21146 - 22984 = 12 (Free Spin*)
22985 - 24823 = 13 (Blue Weapon)
24824 - 26662 = 14 (Blue Weapon)
26663 - 28501 = 15 (Blue Weapon)
28502 - 29604 = 16 (Purple Weapon)
29605 - 30707 = 17 (Purple Weapon)
30708 - 31626 = 18 (Seraph Crystals x 3)
31627 - 32546 = 19 (Seraph Crystals x 3)
32547 - 32767 = Vault Symbol (Orange Weapon)
32768 - ..... = Sad Trombone (Nothing)
*If slot machine is set for a "Dice" result, this will result in infinite spins with no gain.
*/
[ENABLE]
aobscan(aobFixSlots,8B 7D D8 8B 3F 8B C8 03 C9 F3 0F 10 54 CF 04 F3 0F 58 D0)
alloc(newmem,512)
label(aobFixSlots_r)
label(lblFixSlots)
label(lblFixSlotsExit)
label(lblFixSlotsReturn)
label(lblTinaChest)
label(lblTinaDice)
label(lblTinaSlots)
label(lblTorgueSlots)
label(lblNormalSlots)
registersymbol(aobFixSlots_r)
label(iRiggedValueNormal)
label(iRiggedValueTorgue)
label(iRiggedValueTina)
label(iRiggedValueDice)
label(iRiggedValueChest)
label(iUsageCounter)
registersymbol(iRiggedValueNormal)
registersymbol(iRiggedValueTorgue)
registersymbol(iRiggedValueTina)
registersymbol(iRiggedValueDice)
registersymbol(iRiggedValueChest)
registersymbol(iUsageCounter)
newmem:
lblFixSlots:
cmp [esi],0x41A00000 // Dice Chest
je lblTinaChest
cmp [esi],0x418E8F5D // Slot Dice
je lblTinaDice
cmp [esi],0x42AE199A // Tina
je lblTinaSlots
cmp [esi],0x4310B99A // Torgue
je lblTorgueSlots
cmp [esi],0x434347AE // Normal
jnz lblFixSlotsExit
jmp lblNormalSlots
lblTinaChest:
add [iUsageCounter],1
mov eax,[iRiggedValueChest]
and eax,0x7FFF
jmp lblFixSlotsExit
lblTinaDice:
add [iUsageCounter],1
mov eax,[iRiggedValueDice]
and eax,0x7FFF
jmp lblFixSlotsExit
lblTinaSlots:
add [iUsageCounter],1
mov eax,[iRiggedValueTina]
and eax,0x7FFF
jmp lblFixSlotsExit
lblTorgueSlots:
add [iUsageCounter],1
mov eax,[iRiggedValueTorgue]
and eax,0x7FFF
jmp lblFixSlotsExit
lblNormalSlots:
add [iUsageCounter],1
mov eax,[iRiggedValueNormal]
and eax,0x7FFF
jmp lblFixSlotsExit
lblFixSlotsExit:
movss xmm1,[esi] // Original code
xorps xmm0,xmm0 // Original code
jmp lblFixSlotsReturn
iRiggedValueNormal:
dd (int)12300
iRiggedValueTorgue:
dd (int)7415
iRiggedValueTina:
dd (int)8658
iRiggedValueDice:
dd (int)32547
iRiggedValueChest:
dd (int)32547
iUsageCounter:
dd 0
aobFixSlots-63:
aobFixSlots_r:
jmp lblFixSlots
nop
nop
lblFixSlotsReturn:
[DISABLE]
aobFixSlots_r:
movss xmm1,[esi]
xorps xmm0,xmm0
unregistersymbol(aobFixSlots_r)
unregistersymbol(iRiggedValueNormal)
unregistersymbol(iRiggedValueTorgue)
unregistersymbol(iRiggedValueTina)
unregistersymbol(iRiggedValueDice)
unregistersymbol(iRiggedValueChest)
unregistersymbol(iUsageCounter)
dealloc(newmem)
3648
"Slot Rigged Value (Normal)"
008000
4 Bytes
iRiggedValueNormal
3649
"Slot Rigged Value (Torgue)"
008000
4 Bytes
iRiggedValueTorgue
4101
"Slot Rigged Value (Tiny Tina)"
008000
4 Bytes
iRiggedValueTina
4132
"Dice Rigged Value (Slot)"
008000
4 Bytes
iRiggedValueDice
4145
"Dice Rigged Value (Chest)"
008000
4 Bytes
iRiggedValueChest
3650
"Usage Counter"
FF8000
4 Bytes
iUsageCounter
2497
"Vendor Shop Timer"
0000FF
Auto Assembler Script
/*
Once you have to enabled the script, visit at least one vending machine to
allow the script to retrieve the required pointer.
The timer itself is a floating point value representing the number of seconds
until the special deal in the vending machines (all vending machines) expire.
In this table, the hotkey "F9" has been assigned to set the bResetTimer to 1,
which will instruct the script to set the vending machine timer to 0.2, which
is 1/5th of a second.
If you are visiting the shop when the timer expires, you need to exit the
shop and come back to see the new special deal item.
*/
[ENABLE]
aobscan(address,F3 0F 2C 88 B4 04 00 00)
alloc(newmem,$1000)
label(continue)
label(return)
label(inject_shoptimer1)
registersymbol(inject_shoptimer1)
label(FLAG_ShopTimer)
label(POINTER_ShopTimer)
registersymbol(FLAG_ShopTimer)
registersymbol(POINTER_ShopTimer)
newmem:
mov dword ptr [POINTER_ShopTimer], eax
cmp dword ptr [FLAG_ShopTimer],00000001
jne continue
mov dword ptr [FLAG_ShopTimer],00000000
mov dword ptr [eax+000004B4],(float)0.2 // 0.2 second
continue:
cvttss2si ecx,[eax+000004B4]
jmp return
FLAG_ShopTimer:
dd 0 // set to 1 to lower shop timer next time it is open
POINTER_ShopTimer:
dd 0 // set to 1 to lower shop timer next time it is open
//-----------------------------------------------------------------------------
// Inject our code
//-----------------------------------------------------------------------------
address:
inject_shoptimer1:
jmp newmem
nop
nop
nop
return:
[DISABLE]
inject_shoptimer1:
db F3 0F 2C 88 B4 04 00 00
unregistersymbol(FLAG_ShopTimer)
unregistersymbol(POINTER_ShopTimer)
unregistersymbol(inject_shoptimer1)
dealloc(newmem)
2508
"Reset Timer (F9)"
008000
4 Bytes
FLAG_ShopTimer
Set Value
120
1
Set flag to reset timer
0
2506
"Shop Timer"
FF8000
Float
POINTER_ShopTimer
4B4
Set Value
120
0
0
2720
"Region Balance Modifier"
0000FF
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscan(RegionAOB,8B 44 90 04 5B 5F 5E)
aobscan(UltiAOB,8B B6 58 02 00 00 39 75 FC)
aobscan(UltiMinAOB,83 f8 32 7d 47 8b)
aobscan(UltiMaxAOB,8B C6 8B 4D 08 89 01)
alloc(RMem,256)
//normal and true labels
label(RStart)
registersymbol(RStart)
label(RReturn)
label(RegDat)
registersymbol(RegDat)
label(LevDefault)
//ulti lables
label(UltiJmp)
label(UltiStart)
registersymbol(UltiStart)
label(UltiReturn)
label(UltiSkip)
RegionAOB:
RStart:
jmp RMem
RReturn:
UltiAOB:
UltiStart:
jmp UltiJmp
nop
UltiReturn:
RMem:
//Normal and True Vault Overrides
cmp [RegDat],0
je LevDefault
mov eax,[RegDat]
pop ebx
jmp RReturn
LevDefault:
mov eax,[eax+edx*4+04]
pop ebx
jmp RReturn
//Ultimate overrides
UltiJmp:
cmp [RegDat],0
je UltiSkip
mov esi,[RegDat]
jmp UltiReturn
UltiSkip:
mov esi,[esi+00000258]
jmp UltiReturn
//Used to declare level
RegDat:
//Disables the ulti limits
label(UltiMax)
registersymbol(UltiMax)
label(UltiMin)
registersymbol(UltiMin)
UltiMaxAOB:
UltiMax:
nop
nop
UltiMinAOB+2:
UltiMin:
db 00
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
RStart:
db 8B 44 90 04 5B
UltiStart:
db 8B B6 58 02 00 00
UltiMax:
db 8B C6
UltiMin:
db 32
unregistersymbol(RStart)
unregistersymbol(RegDat)
unregistersymbol(UltiStart)
unregistersymbol(UltiMax)
unregistersymbol(UltiMin)
dealloc(RMem)
2721
"Desired Level"
008000
4 Bytes
RegDat
2509
"No Unique Weapon Spreadfire Patterns (Ex. Infinity)"
80000008
Auto Assembler Script
[ENABLE]
// Borderlands2.AK::MemoryMgr::SetMonitoring+593DF - 99 - cdq
// Borderlands2.AK::MemoryMgr::SetMonitoring+593E0 - F7 FE - idiv esi
// Borderlands2.AK::MemoryMgr::SetMonitoring+593E2 - 8B C1 - mov eax,ecx
// Borderlands2.AK::MemoryMgr::SetMonitoring+593E4 - 89 17 - mov [edi],edx
aobscan(WeapSpread_Addr,99 F7 FE 8B C1 89 17)
alloc(WeapSpread_Data,256)
label(WeapSpread_Hook)
label(WeapSpread_Start)
label(WeapSpread_Exit)
label(WeapSpread_Return)
registersymbol(WeapSpread_Hook)
WeapSpread_Addr:
WeapSpread_Hook:
jmp WeapSpread_Start
nop
nop
WeapSpread_Return:
WeapSpread_Data:
WeapSpread_Start:
cdq
idiv esi
mov eax, ecx
mov [edi],0x0000000
WeapSpread_Exit:
jmp WeapSpread_Return
[DISABLE]
WeapSpread_Hook:
db 99 F7 FE 8B C1 89 17
dealloc(WeapSpread_Data)
unregistersymbol(WeapSpread_Hook)
420
"No Golden Keys Required (Gold Chest)"
000000
Auto Assembler Script
[ENABLE]
label(chest)
registersymbol(chest)
aobscan(aobchest,74 1D 8A 54)
aobchest:
chest:
db EB 1D 8A 54
[DISABLE]
chest:
db 74 1D 8A 54
unregistersymbol(chest)
3573
"Resource Bypass (Gold Chest, Slots, etc)"
80000008
Auto Assembler Script
/*
An AoB that removes the need to have a key at all.
It also makes some other things free, like the slots.
*/
[ENABLE]
aobscan(aobBypass,74 1D 8A 54 08)
label(aobBypass_r)
registersymbol(aobBypass_r)
aobBypass:
aobBypass_r:
db EB
[DISABLE]
aobBypass_r:
db 74
unregistersymbol(aobBypass_r)
3646
"Raid Boss Lockout Bypass (Enable before killing Boss)"
80000008
Auto Assembler Script
/*
Borderlands2.GetStackOwnerClass+3BB2C0 - E8 6B97E2FF - call Borderlands2.GetStackOwnerClass+1E4A30
Borderlands2.GetStackOwnerClass+3BB2C5 - 83 C4 08 - add esp,08
Borderlands2.GetStackOwnerClass+3BB2C8 - 89 44 F7 04 - mov [edi+esi*8+04],eax
Borderlands2.GetStackOwnerClass+3BB2CC - 5E - pop esi
Borderlands2.GetStackOwnerClass+3BB2CD - 5F - pop edi
*/
[ENABLE]
label(lblRaidLockout)
registersymbol(lblRaidLockout)
aobscan(aobRaidLockout, 89 44 F7 04 5E 5F)
aobRaidLockout:
lblRaidLockout:
db 90 90 90 90
[DISABLE]
lblRaidLockout:
db 89 44 F7 04
unregistersymbol(lblRaidLockout)
3731
"Raid Boss Unlocker (Enable after killing Boss)"
80000008
Auto Assembler Script
[ENABLE]
alloc(bossLockoutNEWMEM,2048)
label(returnhere)
aobscan(bossLockoutAOB, 8B 44 F7 04 53 50 e8)
label(bossLockoutCODE)
registersymbol(bossLockoutCODE)
bossLockoutNEWMEM:
mov dword ptr [edi+esi*8+04],0
mov eax,[edi+esi*8+04]
push ebx
jmp returnhere
bossLockoutAOB:
bossLockoutCODE:
jmp bossLockoutNEWMEM
returnhere:
[DISABLE]
bossLockoutCODE:
db 8B 44 F7 04 53
dealloc(bossLockoutNEWMEM)
unregistersymbol(bossLockoutCODE)
3737
"Faster Collecting Mission Items"
80000008
Auto Assembler Script
[ENABLE]
alloc(missionItemsNewmem,2048)
label(returnhere)
label(notAbove)
label(exit)
aobscan(missionItemsAOB,83 C4 10 8B 45 08 8B 48 08 FF 04 99 8B 14 99 8D 1C 99 89 55 FC)
label(missionItemsCode)
registersymbol(missionItemsCode)
missionItemsNewmem:
mov edx,[ecx+ebx*4]
add edx,5 // five times faster
cmp edx,[esi+44] // above?
jle short notAbove
mov edx,[esi+44]
notAbove:
exit:
mov [ecx+ebx*4],edx
jmp returnhere
missionItemsAOB+9:
missionItemsCode:
jmp missionItemsNewmem
nop
returnhere:
[DISABLE]
missionItemsCode:
db FF 04 99 8B 14 99
//Alt: inc [ecx+ebx*4]
//Alt: mov edx,[ecx+ebx*4]
dealloc(missionItemsNewmem)
unregistersymbol(missionItemsCode)
3797
"Enemy Chain of Evolution Boost (Goliath, Savage, etc)"
80000008
Auto Assembler Script
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
aobscan(eboost_aob,8B 49 4C 8B C6 3B C8)
label(eboost_jmp)
registersymbol(eboost_jmp)
newmem:
cmp edx,b //<- goliath check
jne short originalcode
mov ecx,edx
jmp +3 //if it doesn't jump over original line your game will crash
originalcode:
mov ecx,[ecx+4C]
mov eax,esi
exit:
jmp returnhere
eboost_aob: //"Borderlands2.exe"+9D8E3:
eboost_jmp:
jmp newmem
returnhere:
[DISABLE]
dealloc(newmem)
eboost_jmp:
db 8B 49 4C 8B C6
unregistersymbol(eboost_jmp)
337
"[Character (Singleplayer/Host)]"
000000
1
6059
"[Shield and Health]"
0080FF
1
6054
"Health"
000080
Float
[pBasePointer]
6C
3AC
24
6055
"Scaled Maximum"
008000
Float
[pBasePointer]
58
3AC
24
6056
"Base Maximum"
008000
Float
[pBasePointer]
5C
3AC
24
6057
"Health Switch [Normal=5; God=6]"
000000
4 Bytes
[pBasePointer]
104
3AC
24
6050
"Shield"
000080
Float
[pBasePointer]
6C
3B8
24
6051
"Scaled Maximum"
008000
Float
[pBasePointer]
58
3B8
24
6052
"Base Maximum"
008000
Float
[pBasePointer]
5C
3B8
24
6053
"Shield Switch [Normal=5; God=6]"
000000
4 Bytes
[pBasePointer]
104
3B8
24
6061
"[Currency]"
0080FF
1
149
"Money"
80000008
4 Bytes
[pBasePointer]
2A0
24
150
"Eridium"
80000008
4 Bytes
[pBasePointer]
2B4
24
3319
"Seraph Crystals"
80000008
4 Bytes
[pBasePointer]
2C8
24
3639
"Torgue Tokens"
80000008
4 Bytes
[pBasePointer]
2F0
24
6060
"[Experience]"
0080FF
1
6063
"!Setting your Experience or EXP Multiplier to high may prevent you from gaining EXP"
0000FF
1
3724
"Recalculate EXP points"
5B8321
Auto Assembler Script
// do this:
//
// 1) run game, off-line mode (just no co-op mode)
// 2) double click attached file, under [Character] change "EXP Level" to your liking.
// 3) then enable "Recalculate EXP points"
// 4) my script will change those values:
//
// EXP Level = (your liking) - 1
// EXP To Next Level = recalculated EXP points value needed for certain level
// Experience = (EXP To Next Level) - 1
//
//
// 5) now, kill at least one monster or finish mission (e.g. any "turn in" objective)
//
// 6) you will see "Level up" caption
// 7) quit game, so all changes will be permanently saved. You can continue.
[ENABLE]
LuaCall(HeroLevelRecalculate())
[DISABLE]
3439
"EXP Level"
400000
4 Bytes
[pBasePointer]
258
24
6047
"Experience"
000080
Float
[pBasePointer]
6C
B58
A4
24
6048
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
24
6049
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
24
2129
"EXP To Next Level"
000000
4 Bytes
[pBasePointer]
25C
24
6046
"EXP Multiplier"
400000
Float
[pBasePointer]
118
B58
A4
24
3550
"[Second Wind]"
0080FF
1
3798
"!Skills or Relics that modify FFYL mode may override any changes"
0000FF
1
3552
"Second Wind Health Multiplier"
80000008
Float
[pBasePointer]
650
68
6A4
A4
30
3551
"Fight For Your Life Time Multiplier"
80000008
Float
[pBasePointer]
434
68
6A4
A4
30
5496
"[Skills and Buffs Mods]"
0080FF
1
6058
"Health Regen Rate"
000000
Float
[pBasePointer]
98
3AC
24
5497
"Ignore Fatal Damage Chance"
000000
Float
[pBasePointer]
9E8
A4
30
5499
"Hit Ricochet Chance"
000000
Float
[pBasePointer]
948
A4
30
5498
"Miss Ricochet Chance"
000000
Float
[pBasePointer]
9AC
A4
30
5763
"Team Kill Skill Timer Mult"
80000008
Float
[pBasePointer]
18A4
A4
2C
5762
"Team Ammo Regen"
80000008
Float
[pBasePointer]
E58
A4
2C
5748
"Explosives Heal Allies"
000000
Float
[pBasePointer]
F90
A4
2C
5727
"Bullets Heal Allies"
000000
Float
[pBasePointer]
F54
A4
2C
6064
"Damage Heals Self"
000000
Float
[pBasePointer]
BF4
A4
2C
6197
"Melee Overide Cooldown"
000000
Float
[pBasePointer]
6C
B70
A4
24
1146
"[Map Specific Anarchy Stacks]"
0080FF
1
1147
"The Dust, TE, SS"
000000
Float
[pBasePointer]+24
4C
8
554
68
14
4088
"CC, San., 3H-V,Frost, Opp., Angel, EB, Boneyard"
000000
Float
[pBasePointer]+24
4C
8
554
68
C
1148
"Highlands(OL, HB), CT's Place, Badlands"
000000
Float
[pBasePointer]+24
4C
8
554
68
4
1149
"Highlands(Ext, OW), South, Bloodshot, 1000 Cuts, Hero's"
000000
Float
[pBasePointer]+24
4C
8
554
68
8
4089
"Three Horns-Divide, Sawtooth"
000000
Float
[pBasePointer]+24
4C
8
554
68
18
4090
"WildLife"
000000
Float
[pBasePointer]+24
4C
8
554
68
20
1150
"Bunker"
000000
Float
[pBasePointer]+24
4C
8
554
68
0
1156
"Warrior"
000000
Float
[pBasePointer]+24
4C
8
554
68
28
565
"[Appearance]"
0080FF
1
3795
"!Current Head and Skin ID, Can not be used to unlock Heads and Skins"
0000FF
1
3053
"Head"
1
80000008
4 Bytes
[pBasePointer]
55C
24
563
"Skin"
1
80000008
4 Bytes
[pBasePointer]
56C
24
5974
"[Character (Co-Op/Non-Host]"
000000
1
6182
"[Miscellaneous]"
804000
1
5975
"Player Model Scale"
80000008
Float
p1
78
A4
46C
5976
"Player Visibility (216 = Invisible To Enemies)"
80000008
Byte
p1
BF
A4
46C
6183
"[Currency]"
804000
1
5977
"Money"
80000008
4 Bytes
p1
2A0
3EC
5978
"Eridium"
80000008
4 Bytes
p1
2B4
3EC
5979
"Seraph Crystals"
80000008
4 Bytes
p1
2C8
3EC
5980
"Torgue Tokens"
80000008
4 Bytes
p1
2F0
3EC
5982
"[Experience]"
804000
1
5983
"Current EXP Multiplier"
400000
Float
p1
118
B58
A4
3EC
5984
"Current Level"
400000
4 Bytes
p1
258
3EC
5985
"Current Experience"
000000
Float
p1
6C
B58
A4
3EC
5988
"Current EXP To Next Level"
000000
4 Bytes
p1
25C
3EC
5989
"[Inventory and Storage]"
804000
1
5990
"!Bank Size and Backpack Used Space are just for show!"
0000FF
1
5991
"Bank Size"
000000
4 Bytes
p1
40
210
46C
5992
"Weapon Deck Size"
80000008
4 Bytes
p1
1BC
46C
5993
"Backpack Size"
80000008
4 Bytes
p1
1B8
46C
5994
"Backpack Used Space"
80000008
4 Bytes
p1
1D8
46C
5995
"[Badass Tokens]"
804000
1
5996
"Badass Tokens"
80000008
4 Bytes
p1
1664
A4
3EC
5997
"[Badass Bonuses]"
0080FF
1
5998
"!For any edits to save, you need to manually use a Badass Token in game"
0000FF
1
5999
"100% = 464, 200% = 1169, Max = 8388607"
0000FF
1
6000
"Maximum Health"
80000008
4 Bytes
p1
0
1674
A4
3EC
6001
"Shield Capacity"
80000008
4 Bytes
p1
4
1674
A4
3EC
6002
"Shield Recharge Rate"
80000008
4 Bytes
p1
C
1674
A4
3EC
6003
"Shield Recharge Delay"
80000008
4 Bytes
p1
8
1674
A4
3EC
6004
"Melee Damage"
80000008
4 Bytes
p1
10
1674
A4
3EC
6005
"Grenade Damage"
80000008
4 Bytes
p1
14
1674
A4
3EC
6006
"Gun Accuracy"
80000008
4 Bytes
p1
18
1674
A4
3EC
6007
"Gun Damage"
80000008
4 Bytes
p1
1C
1674
A4
3EC
6008
"Fire Rate"
80000008
4 Bytes
p1
20
1674
A4
3EC
6009
"Recoil Reduction"
80000008
4 Bytes
p1
24
1674
A4
3EC
6010
"Elemental Effect Chance"
80000008
4 Bytes
p1
2C
1674
A4
3EC
6011
"Reload Speed"
80000008
4 Bytes
p1
28
1674
A4
3EC
6012
"Elemental Effect Damage"
80000008
4 Bytes
p1
30
1674
A4
3EC
6013
"Critical Hit Damage"
80000008
4 Bytes
p1
34
1674
A4
3EC
6014
"[Appearance]"
804000
1
6015
"!Current Head and Skin ID, Can not be used to unlock Heads and Skins"
0000FF
1
6016
"Head"
1
80000008
4 Bytes
p1
55C
3EC
6017
"Skin"
1
80000008
4 Bytes
p1
56C
3EC
6018
"[Current Weapon Data]"
804000
1
6019
"Weapon Address"
1
000000
4 Bytes
p1
470
6020
"Weapon Display Level"
000000
4 Bytes
p1
1E0
470
6021
"Actual Weapon Level"
000000
4 Bytes
p1
E3C
470
6022
"Calculated Damage"
000080
Float
p1
8E8
470
6023
"Base Damage"
008000
Float
p1
8EC
470
6024
"Calculated Accuracy"
000080
Float
p1
8D4
470
6025
"Base Accuracy"
008000
Float
p1
8D8
470
6026
"Calculated Fire Rate"
000080
Float
p1
8C0
470
6027
"Base Fire Rate"
008000
Float
p1
8C4
470
6028
"Calculated Projectile Speed"
1
000080
Float
p1
EB4
470
6029
"Base Projectile Speed"
1
008000
Float
p1
EB8
470
6030
"Calculated Reload Speed"
000080
Float
p1
A30
470
6031
"Base Reload Speed"
008000
Float
p1
A34
470
6032
"Calculated Burst Length (0=Auto)"
1
000080
4 Bytes
p1
AFC
470
6033
"Base Burst Length (0=Auto)"
1
008000
4 Bytes
p1
B00
470
6034
"Calculated Projectiles Per Shot"
1
000080
4 Bytes
p1
DB8
470
6035
"Base Projectiles Per Shot"
1
008000
4 Bytes
p1
DBC
470
6036
"Calculated Bullets Used"
1
000080
4 Bytes
p1
9DC
470
6037
"Base Bullets Used"
1
008000
4 Bytes
p1
9E0
470
6038
"Calculated Extra Shot Chance"
1
000080
4 Bytes
p1
D28
470
6039
"Base Extra Shot Chance"
1
008000
4 Bytes
p1
D2C
470
6040
"Magazine Size"
000000
4 Bytes
p1
A0C
470
6041
"Current Bullets"
000000
4 Bytes
p1
A28
470
6042
"Clip Ammo"
000000
4 Bytes
p1
9D4
470
6043
"Item Price"
000000
4 Bytes
p1
1D0
470
6044
"Item Quantity"
000000
4 Bytes
p1
1D8
470
6045
"Item State (Favorited,Crossed, Equipped, ect)"
000000
4 Bytes
p1
224
470
5557
"[Badass Challenges]"
804000
1
5721
"!To claim the level rewards, set the value one less then the level you want and manually complete the challenge"
0000FF
1
5558
"[Dragon Keep]"
008000
1
5559
"Bone Breaker"
FF0000
4 Bytes
p2
41DC
194
E70
5560
"Can't Fool Me"
FF0000
4 Bytes
p2
4174
194
E70
5561
"Cheerful Green Giant"
FF0000
4 Bytes
p2
4244
194
E70
5562
"Ew Ew Ew Ew"
FF0000
4 Bytes
p2
4210
194
E70
5563
"Fus Roh Die"
FF0000
4 Bytes
p2
4070
194
E70
5564
"Knighty Knight"
FF0000
4 Bytes
p2
4140
194
E70
5565
"Magical Massacre"
FF0000
4 Bytes
p2
4278
194
E70
5566
"Orcs Should Perish"
FF0000
4 Bytes
p2
41A8
194
E70
5567
"Rock Out With Your Rock Out"
FF0000
4 Bytes
p2
410C
194
E70
5568
"Scot-Free"
FF0000
4 Bytes
p2
40A4
194
E70
5569
"[Hammerlock's Hunt]"
008000
1
5570
"Boroking Around"
FF0000
4 Bytes
p2
3E68
194
E70
5571
"Fan Boy"
FF0000
4 Bytes
p2
3DCC
194
E70
5572
"Harder They Fall"
FF0000
4 Bytes
p2
3D98
194
E70
5573
"Savage Bloody Savage"
FF0000
4 Bytes
p2
3E00
194
E70
5574
"Stinging Sensation"
FF0000
4 Bytes
p2
3E9C
194
E70
5575
"Voracidous the Invincible"
FF0000
4 Bytes
p2
3E34
194
E70
5576
"[Campaign of Carnage]"
008000
1
5577
"Battles Completed"
FF0000
4 Bytes
p2
3F6C
194
E70
5578
"Bikers Killed"
FF0000
4 Bytes
p2
3F38
194
E70
5579
"Bikes Destroyed"
FF0000
4 Bytes
p2
3F04
194
E70
5580
"Pete the Invincible Defeted"
FF0000
4 Bytes
p2
3FA0
194
E70
5581
"Torgue Items Purchased"
FF0000
4 Bytes
p2
4008
194
E70
5582
"Torgue Tokens Aquired"
FF0000
4 Bytes
p2
403C
194
E70
5583
"[Pirate's Booty]"
008000
1
5584
"Hovernator"
FF0000
4 Bytes
p2
3C2C
194
E70
5585
"Hyperius the Not-So-Invincible"
FF0000
4 Bytes
p2
3B5C
194
E70
5586
"In The Pink"
FF0000
4 Bytes
p2
3C94
194
E70
5587
"Land Lubber"
FF0000
4 Bytes
p2
3BF8
194
E70
5588
"Master Worm Food"
FF0000
4 Bytes
p2
3B90
194
E70
5589
"Pirate Booty"
FF0000
4 Bytes
p2
3C60
194
E70
5590
"Shady Dealings"
FF0000
4 Bytes
p2
3CC8
194
E70
5591
"Worm Killer"
FF0000
4 Bytes
p2
3BC4
194
E70
5592
"[Enemies]"
008000
1
5593
"Another Bug Hunt"
FF0000
4 Bytes
p2
138C
194
E70
5594
"Bully the Bullies"
FF0000
4 Bytes
p2
F7C
194
E70
5595
"Constructor Destructor"
FF0000
4 Bytes
p2
111C
194
E70
5596
"Cruising for a Brusing"
FF0000
4 Bytes
p2
1428
194
E70
5597
"Crystals Are a Girl's Best Friend"
FF0000
4 Bytes
p2
FB0
194
E70
5598
"Die in the Friendly Skies"
FF0000
4 Bytes
p2
13C0
194
E70
5599
"Hurly Burly"
FF0000
4 Bytes
p2
32A0
194
E70
5600
"Just a Moment of Your Time..."
FF0000
4 Bytes
p2
10E8
194
E70
5601
"Little Person, Big Pain"
FF0000
4 Bytes
p2
13F4
194
E70
5602
"Load and Lock"
FF0000
4 Bytes
p2
104C
194
E70
5603
"Marauder? I Hardly Know 'Er"
FF0000
4 Bytes
p2
1184
194
E70
5604
"Mama's Boys"
FF0000
4 Bytes
p2
11EC
194
E70
5605
"Paingineering"
FF0000
4 Bytes
p2
1018
194
E70
5606
"Pest Control"
FF0000
4 Bytes
p2
12F0
194
E70
5607
"Pod Pew Pew"
FF0000
4 Bytes
p2
1288
194
E70
5608
"Short-Chained"
FF0000
4 Bytes
p2
32D4
194
E70
5609
"Skags to Riches"
FF0000
4 Bytes
p2
4EC
194
E70
5610
"Tentacle Obsession"
FF0000
4 Bytes
p2
1358
194
E70
5611
"WHY SO MUCH HURT?"
FF0000
4 Bytes
p2
FE4
194
E70
5612
"You [No]Mad, Bro?"
FF0000
4 Bytes
p2
11B8
194
E70
5613
"You Dirty Rat"
FF0000
4 Bytes
p2
1220
194
E70
5614
"You're One Ugly Mother.."
FF0000
4 Bytes
p2
1324
194
E70
5615
"[Elemental]"
008000
1
5616
"Acid Trip"
FF0000
4 Bytes
p2
82C
194
E70
5617
"Boom."
FF0000
4 Bytes
p2
8C8
194
E70
5618
"Corroderate"
FF0000
4 Bytes
p2
2EC4
194
E70
5619
"Cowering Inferno"
FF0000
4 Bytes
p2
2DC0
194
E70
5620
"I Just Want to Set the World on Fire"
FF0000
4 Bytes
p2
2E90
194
E70
5621
"Say "Watt" Again"
FF0000
4 Bytes
p2
2EF8
194
E70
5622
"Slag-Licked"
FF0000
4 Bytes
p2
2F2C
194
E70
5623
"[Loot]"
008000
1
5624
"Another Man's Treasure"
FF0000
4 Bytes
p2
3308
194
E70
5625
"Gun Runner"
FF0000
4 Bytes
p2
1AC
194
E70
5626
"I Like My Treasure Rare"
FF0000
4 Bytes
p2
3370
194
E70
5627
"It's Not Easy Looting Green"
FF0000
4 Bytes
p2
333C
194
E70
5628
"Nothing Rhymes with Orange"
FF0000
4 Bytes
p2
33D8
194
E70
5629
"Open Pandora's Box"
FF0000
4 Bytes
p2
1630
194
E70
5630
"Purple Reign"
FF0000
4 Bytes
p2
33A4
194
E70
5631
"The Call of Booty"
FF0000
4 Bytes
p2
15FC
194
E70
5632
"[Money and Trading]"
008000
1
5633
"Dolla Dolla Bills, Y'all"
FF0000
4 Bytes
p2
1838
194
E70
5634
"For the Hoard!"
FF0000
4 Bytes
p2
1804
194
E70
5635
"Limited-Time Offer"
FF0000
4 Bytes
p2
1700
194
E70
5636
"Whaddaya Buyin'?"
FF0000
4 Bytes
p2
1698
194
E70
5637
"Wholesale"
FF0000
4 Bytes
p2
16CC
194
E70
5638
"[Vehicle]"
008000
1
5639
"...One Van Leaves"
FF0000
4 Bytes
p2
3850
194
E70
5640
"Blue Sparks"
FF0000
4 Bytes
p2
37E8
194
E70
5641
"Hit-and-Fun"
FF0000
4 Bytes
p2
790
194
E70
5642
"Passive Aggressive"
FF0000
4 Bytes
p2
37B4
194
E70
5643
"Turret Syndrome"
FF0000
4 Bytes
p2
7C4
194
E70
5644
"[Health and Recovery]"
008000
1
5645
"Badass Bingo"
FF0000
4 Bytes
p2
28E0
194
E70
5646
"Death, Wind, and Fire"
FF0000
4 Bytes
p2
2844
194
E70
5647
"Green Meanie"
FF0000
4 Bytes
p2
2810
194
E70
5648
"Heal Plz"
FF0000
4 Bytes
p2
36E4
194
E70
5649
"I'll Just Help Myself"
FF0000
4 Bytes
p2
28AC
194
E70
5650
"I'm Back! Shocked?"
FF0000
4 Bytes
p2
2878
194
E70
5651
"This Is No Time for Lazy!"
FF0000
4 Bytes
p2
297C
194
E70
5652
"[Grenades]"
008000
1
5653
"Chemical Sprayer"
FF0000
4 Bytes
p2
2FC8
194
E70
5654
"EXPLOOOOOSIONS!"
FF0000
4 Bytes
p2
3030
194
E70
5655
"Health Vampire"
FF0000
4 Bytes
p2
3098
194
E70
5656
"Pull the Pin"
FF0000
4 Bytes
p2
658
194
E70
5657
"Singled Out"
FF0000
4 Bytes
p2
3064
194
E70
5658
"Woah, Black Betty"
FF0000
4 Bytes
p2
2FFC
194
E70
5659
"[Shields]"
008000
1
5660
"Ammo Eater"
FF0000
4 Bytes
p2
2D24
194
E70
5661
"Amp It Up"
FF0000
4 Bytes
p2
3204
194
E70
5662
"Game of Thorns"
FF0000
4 Bytes
p2
31D0
194
E70
5663
"Roid Rage"
FF0000
4 Bytes
p2
319C
194
E70
5664
"Super Novas"
FF0000
4 Bytes
p2
3168
194
E70
5665
"[Rocket Launcher]"
008000
1
5666
"Catch-a-Rocket!"
FF0000
4 Bytes
p2
2D58
194
E70
5667
"Gone with the Second Wind"
FF0000
4 Bytes
p2
270C
194
E70
5668
"Rocket and Roll"
FF0000
4 Bytes
p2
68C
194
E70
5669
"Shield Basher"
FF0000
4 Bytes
p2
B04
194
E70
5670
"Sky Rocket in Flight..."
FF0000
4 Bytes
p2
A9C
194
E70
5671
"Splish Splash"
FF0000
4 Bytes
p2
2D8C
194
E70
5672
"[Sniper Rifle]"
008000
1
5673
"Eviscerated"
FF0000
4 Bytes
p2
B38
194
E70
5674
"Leaf on the Second Wind"
FF0000
4 Bytes
p2
263C
194
E70
5675
"Longshot"
FF0000
4 Bytes
p2
5BC
194
E70
5676
"Longshot Headshot"
FF0000
4 Bytes
p2
2434
194
E70
5677
"No Scope, No Problem"
FF0000
4 Bytes
p2
998
194
E70
5678
"Snipe Hunting"
FF0000
4 Bytes
p2
C08
194
E70
5679
"Surprise"
FF0000
4 Bytes
p2
2F60
194
E70
5680
"[Assault Rifle]"
008000
1
5681
"...This Is My Gun"
FF0000
4 Bytes
p2
C3C
194
E70
5682
"Aggravated Assault"
FF0000
4 Bytes
p2
5F0
194
E70
5683
"Crouching Tiger, Hidden Assault Rifle"
FF0000
4 Bytes
p2
964
194
E70
5684
"From My Cold, Dead Hands"
FF0000
4 Bytes
p2
2670
194
E70
5685
"This Is My Rifle..."
FF0000
4 Bytes
p2
2468
194
E70
5686
"[SMG]"
008000
1
5687
"Constructive Criticism"
FF0000
4 Bytes
p2
2400
194
E70
5688
"Hail of Bullets"
FF0000
4 Bytes
p2
588
194
E70
5689
"High Rate of Ire"
FF0000
4 Bytes
p2
BD4
194
E70
5690
"More Like Submachine FUN"
FF0000
4 Bytes
p2
2608
194
E70
5691
"[Shotgun]"
008000
1
5692
"Faceful of Buckshot"
FF0000
4 Bytes
p2
23CC
194
E70
5693
"Lock, Stock, and ..."
FF0000
4 Bytes
p2
25D4
194
E70
5694
"Open Wide!"
FF0000
4 Bytes
p2
A34
194
E70
5695
"Shotgun!"
FF0000
4 Bytes
p2
554
194
E70
5696
"Shotgun Sniper"
FF0000
4 Bytes
p2
A68
194
E70
5697
"Shotgun Surgeon"
FF0000
4 Bytes
p2
BA0
194
E70
5698
"[Pistol]"
008000
1
5699
"Deadeye"
FF0000
4 Bytes
p2
2398
194
E70
5700
"Hard Boiled"
FF0000
4 Bytes
p2
25A0
194
E70
5701
"Pistolero"
FF0000
4 Bytes
p2
B6C
194
E70
5702
"Quickdraw"
FF0000
4 Bytes
p2
A00
194
E70
5703
"The Killer"
FF0000
4 Bytes
p2
520
194
E70
5704
"[Melee]"
008000
1
5705
"A Squall of Violence"
FF0000
4 Bytes
p2
3238
194
E70
5706
"Fisticuffs!"
FF0000
4 Bytes
p2
F48
194
E70
5707
"[General Combat]"
008000
1
5708
"...I Got to Boogie"
FF0000
4 Bytes
p2
36B0
194
E70
5709
"...To Pay the Bills"
FF0000
4 Bytes
p2
1254
194
E70
5710
"Afternoon Delight"
FF0000
4 Bytes
p2
367C
194
E70
5711
"Boomerbang"
FF0000
4 Bytes
p2
3510
194
E70
5712
"Critical Acclaim"
FF0000
4 Bytes
p2
8FC
194
E70
5713
"Gun Slinger"
FF0000
4 Bytes
p2
3544
194
E70
5714
"Knee-Deep in Brass"
FF0000
4 Bytes
p2
C
194
E70
5715
"Not Full of Monkeys"
FF0000
4 Bytes
p2
35E0
194
E70
5716
"[Miscellaneous]"
008000
1
5717
"Compl33tionist"
FF0000
4 Bytes
p2
2AB4
194
E70
5718
"JEEEEENKINSSSSSS!!!"
FF0000
4 Bytes
p2
145C
194
E70
5719
"Sidejacked"
FF0000
4 Bytes
p2
2AE8
194
E70
5720
"Yo Dawg I Herd You Like Challenges"
FF0000
4 Bytes
p2
2330
194
E70
6184
"[Skills]"
804000
1
5981
"Skill Points"
80000008
4 Bytes
p1
274
3EC
6188
"Class Skill Status"
000000
4 Bytes
p1
1C
58
B74
A4
3EC
6189
"Class Skill Duration"
000000
Float
p1
74
0
58
B74
A4
3EC
5502
"[Badass Challenges]"
000000
1
6181
"!To claim the level rewards, set the value one less then the level you want and manually complete the challenge"
0000FF
1
5503
"[Dragon Keep]"
008000
1
5504
"Bone Breaker"
FF0000
4 Bytes
[pBasePointer]
41DC
194
E70
A4
2C
5505
"Can't Fool Me"
FF0000
4 Bytes
[pBasePointer]
4174
194
E70
A4
2C
5506
"Cheerful Green Giant"
FF0000
4 Bytes
[pBasePointer]
4244
194
E70
A4
2C
5507
"Ew Ew Ew Ew"
FF0000
4 Bytes
[pBasePointer]
4210
194
E70
A4
2C
5508
"Fus Roh Die"
FF0000
4 Bytes
[pBasePointer]
4070
194
E70
A4
2C
5509
"Knighty Knight"
FF0000
4 Bytes
[pBasePointer]
4140
194
E70
A4
2C
5510
"Magical Massacre"
FF0000
4 Bytes
[pBasePointer]
4278
194
E70
A4
2C
5511
"Orcs Should Perish"
FF0000
4 Bytes
[pBasePointer]
41A8
194
E70
A4
2C
5512
"Rock Out With Your Rock Out"
FF0000
4 Bytes
[pBasePointer]
410C
194
E70
A4
2C
5513
"Scot-Free"
FF0000
4 Bytes
[pBasePointer]
40A4
194
E70
A4
2C
5514
"[Hammerlock's Hunt]"
008000
1
5515
"Boroking Around"
FF0000
4 Bytes
[pBasePointer]
3E68
194
E70
A4
2C
5516
"Fan Boy"
FF0000
4 Bytes
[pBasePointer]
3DCC
194
E70
A4
2C
5517
"Harder They Fall"
FF0000
4 Bytes
[pBasePointer]
3D98
194
E70
A4
2C
5518
"Savage Bloody Savage"
FF0000
4 Bytes
[pBasePointer]
3E00
194
E70
A4
2C
5519
"Stinging Sensation"
FF0000
4 Bytes
[pBasePointer]
3E9C
194
E70
A4
2C
5520
"Voracidous the Invincible"
FF0000
4 Bytes
[pBasePointer]
3E34
194
E70
A4
2C
5521
"[Campaign of Carnage]"
008000
1
5522
"Battles Completed"
FF0000
4 Bytes
[pBasePointer]
3F6C
194
E70
A4
2C
5523
"Bikers Killed"
FF0000
4 Bytes
[pBasePointer]
3F38
194
E70
A4
2C
5524
"Bikes Destroyed"
FF0000
4 Bytes
[pBasePointer]
3F04
194
E70
A4
2C
5525
"Pete the Invincible Defeted"
FF0000
4 Bytes
[pBasePointer]
3FA0
194
E70
A4
2C
5526
"Torgue Items Purchased"
FF0000
4 Bytes
[pBasePointer]
4008
194
E70
A4
2C
5093
"Torgue Tokens Aquired"
FF0000
4 Bytes
[pBasePointer]
403C
194
E70
A4
2C
5094
"[Pirate's Booty]"
008000
1
5095
"Hovernator"
FF0000
4 Bytes
[pBasePointer]
3C2C
194
E70
A4
2C
5096
"Hyperius the Not-So-Invincible"
FF0000
4 Bytes
[pBasePointer]
3B5C
194
E70
A4
2C
5097
"In The Pink"
FF0000
4 Bytes
[pBasePointer]
3C94
194
E70
A4
2C
5098
"Land Lubber"
FF0000
4 Bytes
[pBasePointer]
3BF8
194
E70
A4
2C
5099
"Master Worm Food"
FF0000
4 Bytes
[pBasePointer]
3B90
194
E70
A4
2C
5100
"Pirate Booty"
FF0000
4 Bytes
[pBasePointer]
3C60
194
E70
A4
2C
5101
"Shady Dealings"
FF0000
4 Bytes
[pBasePointer]
3CC8
194
E70
A4
2C
5102
"Worm Killer"
FF0000
4 Bytes
[pBasePointer]
3BC4
194
E70
A4
2C
5103
"[Enemies]"
008000
1
5104
"Another Bug Hunt"
FF0000
4 Bytes
[pBasePointer]
138C
194
E70
A4
2C
5105
"Bully the Bullies"
FF0000
4 Bytes
[pBasePointer]
F7C
194
E70
A4
2C
5106
"Constructor Destructor"
FF0000
4 Bytes
[pBasePointer]
111C
194
E70
A4
2C
5107
"Cruising for a Brusing"
FF0000
4 Bytes
[pBasePointer]
1428
194
E70
A4
2C
5108
"Crystals Are a Girl's Best Friend"
FF0000
4 Bytes
[pBasePointer]
FB0
194
E70
A4
2C
5109
"Die in the Friendly Skies"
FF0000
4 Bytes
[pBasePointer]
13C0
194
E70
A4
2C
5110
"Hurly Burly"
FF0000
4 Bytes
[pBasePointer]
32A0
194
E70
A4
2C
5111
"Just a Moment of Your Time..."
FF0000
4 Bytes
[pBasePointer]
10E8
194
E70
A4
2C
5112
"Little Person, Big Pain"
FF0000
4 Bytes
[pBasePointer]
13F4
194
E70
A4
2C
5113
"Load and Lock"
FF0000
4 Bytes
[pBasePointer]
104C
194
E70
A4
2C
6065
"Marauder? I Hardly Know 'Er"
FF0000
4 Bytes
[pBasePointer]
1184
194
E70
A4
2C
6066
"Mama's Boys"
FF0000
4 Bytes
[pBasePointer]
11EC
194
E70
A4
2C
6067
"Paingineering"
FF0000
4 Bytes
[pBasePointer]
1018
194
E70
A4
2C
6068
"Pest Control"
FF0000
4 Bytes
[pBasePointer]
12F0
194
E70
A4
2C
6069
"Pod Pew Pew"
FF0000
4 Bytes
[pBasePointer]
1288
194
E70
A4
2C
6070
"Short-Chained"
FF0000
4 Bytes
[pBasePointer]
32D4
194
E70
A4
2C
6071
"Skags to Riches"
FF0000
4 Bytes
[pBasePointer]
4EC
194
E70
A4
2C
6072
"Tentacle Obsession"
FF0000
4 Bytes
[pBasePointer]
1358
194
E70
A4
2C
6073
"WHY SO MUCH HURT?"
FF0000
4 Bytes
[pBasePointer]
FE4
194
E70
A4
2C
6074
"You [No]Mad, Bro?"
FF0000
4 Bytes
[pBasePointer]
11B8
194
E70
A4
2C
6075
"You Dirty Rat"
FF0000
4 Bytes
[pBasePointer]
1220
194
E70
A4
2C
6076
"You're One Ugly Mother.."
FF0000
4 Bytes
[pBasePointer]
1324
194
E70
A4
2C
6077
"[Elemental]"
008000
1
6078
"Acid Trip"
FF0000
4 Bytes
[pBasePointer]
82C
194
E70
A4
2C
6079
"Boom."
FF0000
4 Bytes
[pBasePointer]
8C8
194
E70
A4
2C
6080
"Corroderate"
FF0000
4 Bytes
[pBasePointer]
2EC4
194
E70
A4
2C
6081
"Cowering Inferno"
FF0000
4 Bytes
[pBasePointer]
2DC0
194
E70
A4
2C
6082
"I Just Want to Set the World on Fire"
FF0000
4 Bytes
[pBasePointer]
2E90
194
E70
A4
2C
6083
"Say "Watt" Again"
FF0000
4 Bytes
[pBasePointer]
2EF8
194
E70
A4
2C
6084
"Slag-Licked"
FF0000
4 Bytes
[pBasePointer]
2F2C
194
E70
A4
2C
6085
"[Loot]"
008000
1
6086
"Another Man's Treasure"
FF0000
4 Bytes
[pBasePointer]
3308
194
E70
A4
2C
6087
"Gun Runner"
FF0000
4 Bytes
[pBasePointer]
1AC
194
E70
A4
2C
6088
"I Like My Treasure Rare"
FF0000
4 Bytes
[pBasePointer]
3370
194
E70
A4
2C
6089
"It's Not Easy Looting Green"
FF0000
4 Bytes
[pBasePointer]
333C
194
E70
A4
2C
6090
"Nothing Rhymes with Orange"
FF0000
4 Bytes
[pBasePointer]
33D8
194
E70
A4
2C
6091
"Open Pandora's Box"
FF0000
4 Bytes
[pBasePointer]
1630
194
E70
A4
2C
5554
"Purple Reign"
FF0000
4 Bytes
[pBasePointer]
33A4
194
E70
A4
2C
6092
"The Call of Booty"
FF0000
4 Bytes
[pBasePointer]
15FC
194
E70
A4
2C
5556
"[Money and Trading]"
008000
1
6093
"Dolla Dolla Bills, Y'all"
FF0000
4 Bytes
[pBasePointer]
1838
194
E70
A4
2C
6094
"For the Hoard!"
FF0000
4 Bytes
[pBasePointer]
1804
194
E70
A4
2C
6095
"Limited-Time Offer"
FF0000
4 Bytes
[pBasePointer]
1700
194
E70
A4
2C
6096
"Whaddaya Buyin'?"
FF0000
4 Bytes
[pBasePointer]
1698
194
E70
A4
2C
6097
"Wholesale"
FF0000
4 Bytes
[pBasePointer]
16CC
194
E70
A4
2C
6098
"[Vehicle]"
008000
1
6099
"...One Van Leaves"
FF0000
4 Bytes
[pBasePointer]
3850
194
E70
A4
2C
6100
"Blue Sparks"
FF0000
4 Bytes
[pBasePointer]
37E8
194
E70
A4
2C
6101
"Hit-and-Fun"
FF0000
4 Bytes
[pBasePointer]
790
194
E70
A4
2C
6102
"Passive Aggressive"
FF0000
4 Bytes
[pBasePointer]
37B4
194
E70
A4
2C
6103
"Turret Syndrome"
FF0000
4 Bytes
[pBasePointer]
7C4
194
E70
A4
2C
6104
"[Health and Recovery]"
008000
1
6105
"Badass Bingo"
FF0000
4 Bytes
[pBasePointer]
28E0
194
E70
A4
2C
6106
"Death, Wind, and Fire"
FF0000
4 Bytes
[pBasePointer]
2844
194
E70
A4
2C
6107
"Green Meanie"
FF0000
4 Bytes
[pBasePointer]
2810
194
E70
A4
2C
6108
"Heal Plz"
FF0000
4 Bytes
[pBasePointer]
36E4
194
E70
A4
2C
6109
"I'll Just Help Myself"
FF0000
4 Bytes
[pBasePointer]
28AC
194
E70
A4
2C
6110
"I'm Back! Shocked?"
FF0000
4 Bytes
[pBasePointer]
2878
194
E70
A4
2C
6111
"This Is No Time for Lazy!"
FF0000
4 Bytes
[pBasePointer]
297C
194
E70
A4
2C
6112
"[Grenades]"
008000
1
6113
"Chemical Sprayer"
FF0000
4 Bytes
[pBasePointer]
2FC8
194
E70
A4
2C
6114
"EXPLOOOOOSIONS!"
FF0000
4 Bytes
[pBasePointer]
3030
194
E70
A4
2C
6115
"Health Vampire"
FF0000
4 Bytes
[pBasePointer]
3098
194
E70
A4
2C
6116
"Pull the Pin"
FF0000
4 Bytes
[pBasePointer]
658
194
E70
A4
2C
6117
"Singled Out"
FF0000
4 Bytes
[pBasePointer]
3064
194
E70
A4
2C
6118
"Woah, Black Betty"
FF0000
4 Bytes
[pBasePointer]
2FFC
194
E70
A4
2C
6119
"[Shields]"
008000
1
6120
"Ammo Eater"
FF0000
4 Bytes
[pBasePointer]
2D24
194
E70
A4
2C
6121
"Amp It Up"
FF0000
4 Bytes
[pBasePointer]
3204
194
E70
A4
2C
6122
"Game of Thorns"
FF0000
4 Bytes
[pBasePointer]
31D0
194
E70
A4
2C
6123
"Roid Rage"
FF0000
4 Bytes
[pBasePointer]
319C
194
E70
A4
2C
6124
"Super Novas"
FF0000
4 Bytes
[pBasePointer]
3168
194
E70
A4
2C
6125
"[Rocket Launcher]"
008000
1
6126
"Catch-a-Rocket!"
FF0000
4 Bytes
[pBasePointer]
2D58
194
E70
A4
2C
6127
"Gone with the Second Wind"
FF0000
4 Bytes
[pBasePointer]
270C
194
E70
A4
2C
6128
"Rocket and Roll"
FF0000
4 Bytes
[pBasePointer]
68C
194
E70
A4
2C
6129
"Shield Basher"
FF0000
4 Bytes
[pBasePointer]
B04
194
E70
A4
2C
6130
"Sky Rocket in Flight..."
FF0000
4 Bytes
[pBasePointer]
A9C
194
E70
A4
2C
6131
"Splish Splash"
FF0000
4 Bytes
[pBasePointer]
2D8C
194
E70
A4
2C
6132
"[Sniper Rifle]"
008000
1
6133
"Eviscerated"
FF0000
4 Bytes
[pBasePointer]
B38
194
E70
A4
2C
6134
"Leaf on the Second Wind"
FF0000
4 Bytes
[pBasePointer]
263C
194
E70
A4
2C
6135
"Longshot"
FF0000
4 Bytes
[pBasePointer]
5BC
194
E70
A4
2C
6136
"Longshot Headshot"
FF0000
4 Bytes
[pBasePointer]
2434
194
E70
A4
2C
6137
"No Scope, No Problem"
FF0000
4 Bytes
[pBasePointer]
998
194
E70
A4
2C
6138
"Snipe Hunting"
FF0000
4 Bytes
[pBasePointer]
C08
194
E70
A4
2C
6139
"Surprise"
FF0000
4 Bytes
[pBasePointer]
2F60
194
E70
A4
2C
6140
"[Assault Rifle]"
008000
1
6141
"...This Is My Gun"
FF0000
4 Bytes
[pBasePointer]
C3C
194
E70
A4
2C
6142
"Aggravated Assault"
FF0000
4 Bytes
[pBasePointer]
5F0
194
E70
A4
2C
6143
"Crouching Tiger, Hidden Assault Rifle"
FF0000
4 Bytes
[pBasePointer]
964
194
E70
A4
2C
6144
"From My Cold, Dead Hands"
FF0000
4 Bytes
[pBasePointer]
2670
194
E70
A4
2C
6145
"This Is My Rifle..."
FF0000
4 Bytes
[pBasePointer]
2468
194
E70
A4
2C
6146
"[SMG]"
008000
1
6147
"Constructive Criticism"
FF0000
4 Bytes
[pBasePointer]
2400
194
E70
A4
2C
6148
"Hail of Bullets"
FF0000
4 Bytes
[pBasePointer]
588
194
E70
A4
2C
6149
"High Rate of Ire"
FF0000
4 Bytes
[pBasePointer]
BD4
194
E70
A4
2C
6150
"More Like Submachine FUN"
FF0000
4 Bytes
[pBasePointer]
2608
194
E70
A4
2C
6151
"[Shotgun]"
008000
1
6152
"Faceful of Buckshot"
FF0000
4 Bytes
[pBasePointer]
23CC
194
E70
A4
2C
6153
"Lock, Stock, and ..."
FF0000
4 Bytes
[pBasePointer]
25D4
194
E70
A4
2C
6154
"Open Wide!"
FF0000
4 Bytes
[pBasePointer]
A34
194
E70
A4
2C
6155
"Shotgun!"
FF0000
4 Bytes
[pBasePointer]
554
194
E70
A4
2C
6156
"Shotgun Sniper"
FF0000
4 Bytes
[pBasePointer]
A68
194
E70
A4
2C
6157
"Shotgun Surgeon"
FF0000
4 Bytes
[pBasePointer]
BA0
194
E70
A4
2C
6158
"[Pistol]"
008000
1
6159
"Deadeye"
FF0000
4 Bytes
[pBasePointer]
2398
194
E70
A4
2C
6160
"Hard Boiled"
FF0000
4 Bytes
[pBasePointer]
25A0
194
E70
A4
2C
6161
"Pistolero"
FF0000
4 Bytes
[pBasePointer]
B6C
194
E70
A4
2C
6162
"Quickdraw"
FF0000
4 Bytes
[pBasePointer]
A00
194
E70
A4
2C
6163
"The Killer"
FF0000
4 Bytes
[pBasePointer]
520
194
E70
A4
2C
6164
"[Melee]"
008000
1
6165
"A Squall of Violence"
FF0000
4 Bytes
[pBasePointer]
3238
194
E70
A4
2C
6166
"Fisticuffs!"
FF0000
4 Bytes
[pBasePointer]
F48
194
E70
A4
2C
6167
"[General Combat]"
008000
1
6168
"...I Got to Boogie"
FF0000
4 Bytes
[pBasePointer]
36B0
194
E70
A4
2C
6169
"...To Pay the Bills"
FF0000
4 Bytes
[pBasePointer]
1254
194
E70
A4
2C
6170
"Afternoon Delight"
FF0000
4 Bytes
[pBasePointer]
367C
194
E70
A4
2C
6171
"Boomerbang"
FF0000
4 Bytes
[pBasePointer]
3510
194
E70
A4
2C
6172
"Critical Acclaim"
FF0000
4 Bytes
[pBasePointer]
8FC
194
E70
A4
2C
6173
"Gun Slinger"
FF0000
4 Bytes
[pBasePointer]
3544
194
E70
A4
2C
6174
"Knee-Deep in Brass"
FF0000
4 Bytes
[pBasePointer]
C
194
E70
A4
2C
6175
"Not Full of Monkeys"
FF0000
4 Bytes
[pBasePointer]
35E0
194
E70
A4
2C
6176
"[Miscellaneous]"
008000
1
6177
"Compl33tionist"
FF0000
4 Bytes
[pBasePointer]
2AB4
194
E70
A4
2C
6178
"JEEEEENKINSSSSSS!!!"
FF0000
4 Bytes
[pBasePointer]
145C
194
E70
A4
2C
6179
"Sidejacked"
FF0000
4 Bytes
[pBasePointer]
2AE8
194
E70
A4
2C
6180
"Yo Dawg I Herd You Like Challenges"
FF0000
4 Bytes
[pBasePointer]
2330
194
E70
A4
2C
3412
"[Vehicle]"
000000
1
80
"[Vehicle 1]"
0080FF
1
59
"Boost"
400080
Float
[pBasePointer]
6C
188
37C
358
10
67
"Health"
0000FF
Float
[pBasePointer]
6C
18C
37C
358
10
81
"[Vehicle 2]"
0080FF
1
41
"Boost"
400080
Float
[pBasePointer]
6C
188
37C
35C
10
71
"Health"
0000FF
Float
[pBasePointer]
6C
18C
37C
35C
10
4104
"[Current Weapon Data]"
000000
1
4128
"Weapon Address"
1
80000008
4 Bytes
[pBasePointer]
470
A4
30
4107
"Weapon Display Level"
000000
4 Bytes
[pBasePointer]
1E0
470
A4
30
4108
"Actual Weapon Level"
000000
4 Bytes
[pBasePointer]
E3C
470
A4
30
4109
"Calculated Damage"
000080
Float
[pBasePointer]
8E8
470
A4
30
4110
"Base Damage"
008000
Float
[pBasePointer]
8EC
470
A4
30
4111
"Calculated Accuracy"
000080
Float
[pBasePointer]
8D4
470
A4
30
4112
"Base Accuracy"
008000
Float
[pBasePointer]
8D8
470
A4
30
4113
"Calculated Fire Rate"
000080
Float
[pBasePointer]
8C0
470
A4
30
4114
"Base Fire Rate"
008000
Float
[pBasePointer]
8C4
470
A4
30
4174
"Calculated Projectile Speed"
1
000080
Float
[pBasePointer]
EB4
470
A4
30
4175
"Base Projectile Speed"
1
008000
Float
[pBasePointer]
EB8
470
A4
30
4115
"Calculated Reload Speed"
000080
Float
[pBasePointer]
A30
470
A4
30
4116
"Base Reload Speed"
008000
Float
[pBasePointer]
A34
470
A4
30
4117
"Calculated Burst Length (0=Auto)"
1
000080
4 Bytes
[pBasePointer]
AFC
470
A4
30
4118
"Base Burst Length (0=Auto)"
1
008000
4 Bytes
[pBasePointer]
B00
470
A4
30
4119
"Calculated Projectiles Per Shot"
1
000080
4 Bytes
[pBasePointer]
DB8
470
A4
30
4120
"Base Projectiles Per Shot"
1
008000
4 Bytes
[pBasePointer]
DBC
470
A4
30
4129
"Calculated Bullets Used"
1
000080
4 Bytes
[pBasePointer]
9DC
470
A4
30
4123
"Base Bullets Used"
1
008000
4 Bytes
[pBasePointer]
9E0
470
A4
30
5490
"Calculated Extra Shot Chance"
1
000080
4 Bytes
[pBasePointer]
D28
470
A4
30
5491
"Base Extra Shot Chance"
1
008000
4 Bytes
[pBasePointer]
D2C
470
A4
30
4121
"Magazine Size"
000000
4 Bytes
[pBasePointer]
A0C
470
A4
30
4122
"Current Bullets"
000000
4 Bytes
[pBasePointer]
A28
470
A4
30
4124
"Clip Ammo"
000000
4 Bytes
[pBasePointer]
9D4
470
A4
30
4125
"Item Price"
000000
4 Bytes
[pBasePointer]
1D0
470
A4
30
4126
"Item Quantity"
000000
4 Bytes
[pBasePointer]
1D8
470
A4
30
4127
"Item State (Favorited,Crossed, Equipped, ect)"
000000
4 Bytes
[pBasePointer]
224
470
A4
30
3054
"[Inventory and Storage]"
000000
1
3827
"!Bank Size and Backpack Used Space are just for show!"
0000FF
1
522
"Bank Size"
000000
4 Bytes
[pBasePointer]
40
210
30
151
"Weapon Deck Size"
80000008
4 Bytes
[pBasePointer]
1BC
30
152
"Backpack Size"
80000008
4 Bytes
[pBasePointer]
1B8
30
3189
"Backpack Used Space"
80000008
4 Bytes
[pBasePointer]
1D8
30
3037
"[Location and Movement]"
000000
1
3874
"Wall Detection"
1
000000
Byte
[pBasePointer]
BF
A4
30
3875
"Movement Speed Multiplier"
000000
Float
[pBasePointer]
310
A4
30
3321
"Movement Speed"
000080
Float
[pBasePointer]
2A8
DC
30
3870
"Base Movement Speed"
008000
Float
[pBasePointer]
2AC
DC
30
3320
"Jump Height"
000080
Float
[pBasePointer]
2EC
DC
30
3871
"Base Jump Height"
008000
Float
[pBasePointer]
2F0
DC
30
3872
"Friction"
000080
Float
[pBasePointer]
2D8
DC
30
Set Value
18
88
2048
0
Set Value
18
90
0
1
3873
"Base Friction"
008000
Float
[pBasePointer]
2DC
DC
30
3877
"Gravity"
80000008
Float
[pBasePointer]
3A0
A4
C
280
"Viewing Height"
000000
Float
[pBasePointer]
350
DC
30
3038
"Player Pos -> X"
80000008
Float
[pBasePointer]
60
A4
30
3039
"Player Pos -> Y"
80000008
Float
[pBasePointer]
64
A4
30
3040
"Player Pos -> Z"
80000008
Float
[pBasePointer]
68
A4
30
Increase Value
18
33
20
0
Decrease Value
18
34
20
1
3041
"MoveVector -> X"
80000008
Float
[pBasePointer]
104
A4
30
3042
"MoveVector -> Y"
80000008
Float
[pBasePointer]
108
A4
30
3043
"MoveVector -> Z"
80000008
Float
[pBasePointer]
10C
A4
30
3565
"Last Bullet Pos -> X"
80000008
Float
[pBasePointer]
1BC
5DC
4C0
1B0
2C
3570
"Last Bullet Pos -> Y"
80000008
Float
[pBasePointer]
1C0
5DC
4C0
1B0
2C
3569
"Last Bullet Pos -> Z"
80000008
Float
[pBasePointer]
1C4
5DC
4C0
1B0
2C
335
"[Ammo]"
000000
1
3553
"[Ammo Pickup Modifiers]"
0080FF
1
3562
"!These let you modify the amount of ammo you pick up"
0000FF
1
1292
"Pistol"
FF8000
Float
[pBasePointer]
180
140
480
D4
5C0
574
7C
34
0
1293
"Assault Rifle"
FF8000
Float
[pBasePointer]
300
140
480
D4
5C0
574
7C
34
0
1294
"Shotgun"
FF8000
Float
[pBasePointer]
100
140
480
D4
5C0
574
7C
34
0
1295
"SMG"
FF8000
Float
[pBasePointer]
80
140
480
D4
5C0
574
7C
34
0
1296
"Sniper"
FF8000
Float
[pBasePointer]
0
140
480
D4
5C0
574
7C
34
0
1297
"RPG"
FF8000
Float
[pBasePointer]
200
140
480
D4
5C0
574
7C
34
0
1298
"Grenade"
FF8000
Float
[pBasePointer]
280
140
480
D4
5C0
574
7C
34
0
3850
"[Ammo Regen Rate]"
0080FF
1
3851
"Assault Rifle Regen Rate"
FF8000
Float
[pBasePointer]
84
188
2C
3854
"Shotgun Regen Rate"
FF8000
Float
[pBasePointer]
84
18C
2C
3857
"Grenade Regen Rate"
FF8000
Float
[pBasePointer]
84
190
2C
3860
"SMG Regen Rate"
FF8000
Float
[pBasePointer]
84
194
2C
3863
"Pistol Regen Rate"
FF8000
Float
[pBasePointer]
84
198
2C
3866
"Rocket Regen Rate"
FF8000
Float
[pBasePointer]
84
19C
2C
3869
"Sniper Rifle Regen Rate"
FF8000
Float
[pBasePointer]
84
1A0
2C
153
"Assault Rifle Ammo"
000080
Float
[pBasePointer]
6C
188
2C
154
"Scaled Maximum"
008000
Float
[pBasePointer]
58
188
2C
155
"Base Maximum"
008000
Float
[pBasePointer]
5C
188
2C
156
"Shotgun Ammo"
000080
Float
[pBasePointer]
6C
18C
2C
157
"Scaled Maximum"
008000
Float
[pBasePointer]
58
18C
2C
158
"Base Maximum"
008000
Float
[pBasePointer]
5C
18C
2C
159
"Grenade Ammo"
000080
Float
[pBasePointer]
6C
190
2C
160
"Scaled Maximum"
008000
Float
[pBasePointer]
58
190
2C
161
"Base Maximum"
008000
Float
[pBasePointer]
5C
190
2C
162
"SMG Ammo"
000080
Float
[pBasePointer]
6C
194
2C
163
"Scaled Maximum"
008000
Float
[pBasePointer]
58
194
2C
164
"Base Maximum"
008000
Float
[pBasePointer]
5C
194
2C
165
"Pistol Ammo"
000080
Float
[pBasePointer]
6C
198
2C
166
"Base Maximum"
008000
Float
[pBasePointer]
58
198
2C
167
"Base Maximum"
008000
Float
[pBasePointer]
5C
198
2C
168
"Rocket Ammo"
000080
Float
[pBasePointer]
6C
19C
2C
169
"Scaled Maximum"
008000
Float
[pBasePointer]
58
19C
2C
170
"Base Maximum"
008000
Float
[pBasePointer]
5C
19C
2C
171
"Sniper Rifle Ammo"
000080
Float
[pBasePointer]
6C
1A0
2C
172
"Scaled Maximum"
008000
Float
[pBasePointer]
58
1A0
2C
173
"Base Maximum"
008000
Float
[pBasePointer]
5C
1A0
2C
334
"[Badass Tokens]"
000000
1
184
"Badass Tokens"
80000008
4 Bytes
[pBasePointer]
1664
A4
2C
1384
"[Badass Bonuses]"
0080FF
1
3393
"!For any edits to save, you need to manually use a Badass Token in game"
0000FF
1
1381
"100% = 464, 200% = 1169, Max = 8388607"
0000FF
1
185
"Maximum Health"
80000008
4 Bytes
[pBasePointer]
0
1674
A4
2C
186
"Shield Capacity"
80000008
4 Bytes
[pBasePointer]
4
1674
A4
2C
188
"Shield Recharge Rate"
80000008
4 Bytes
[pBasePointer]
C
1674
A4
2C
187
"Shield Recharge Delay"
80000008
4 Bytes
[pBasePointer]
8
1674
A4
2C
189
"Melee Damage"
80000008
4 Bytes
[pBasePointer]
10
1674
A4
2C
190
"Grenade Damage"
80000008
4 Bytes
[pBasePointer]
14
1674
A4
2C
191
"Gun Accuracy"
80000008
4 Bytes
[pBasePointer]
18
1674
A4
2C
192
"Gun Damage"
80000008
4 Bytes
[pBasePointer]
1C
1674
A4
2C
193
"Fire Rate"
80000008
4 Bytes
[pBasePointer]
20
1674
A4
2C
194
"Recoil Reduction"
80000008
4 Bytes
[pBasePointer]
24
1674
A4
2C
196
"Elemental Effect Chance"
80000008
4 Bytes
[pBasePointer]
2C
1674
A4
2C
195
"Reload Speed"
80000008
4 Bytes
[pBasePointer]
28
1674
A4
2C
197
"Elemental Effect Damage"
80000008
4 Bytes
[pBasePointer]
30
1674
A4
2C
198
"Critical Hit Damage"
80000008
4 Bytes
[pBasePointer]
34
1674
A4
2C
1008
"[Skills]"
000000
1
1009
"Skill Points"
000000
4 Bytes
[pBasePointer]
274
24
3535
"[Class Skill]"
808000
1
4087
"!Skills or Relics that modify the action skill may override any changes"
0000FF
1
1013
"Class Skill Status"
000000
4 Bytes
[pBasePointer]
1C
58
B74
A4
2C
3536
"Class Skill Duration"
000000
Float
[pBasePointer]
74
0
58
B74
A4
2C
3389
"Class Skill Cooldown Timer"
000080
Float
[pBasePointer]
6C
B64
A4
24
3390
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
24
3391
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
24
3833
"Class Skill Cooldown Multiplier"
000000
Float
[pBasePointer]
70
B64
A4
24
3108
"[Siren]"
0080FF
1
3109
"[Motion]"
008000
1
3110
"Ward"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
3111
"Accelerate"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
3112
"Suspension"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
3113
"Kinetic Reflection"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
3114
"Fleet"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
3115
"Converge"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
3116
"Inertia"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
3117
"Quicken"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
3118
"Sub-Sequence"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
3119
"Thoughtlock"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
3120
"[Harmony]"
FF8000
1
3121
"Mind's Eye"
FF8000
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
3122
"Sweet Release"
FF8000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
3123
"Restoration"
FF8000
4 Bytes
[pBasePointer]
1F0
58
B74
A4
2C
3124
"Wreck"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
3125
"Elated"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
3126
"Res"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
3127
"Recompense"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
3128
"Sustenance"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
3129
"Life Tap"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
3130
"Scorn"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
3131
"[Cataclysm]"
0000FF
1
3132
"Flicker"
0000FF
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
3133
"Foresight"
0000FF
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
3134
"Immolate"
0000FF
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
3135
"Helios"
0000FF
4 Bytes
[pBasePointer]
37C
58
B74
A4
2C
3136
"Chain Reaction"
0000FF
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
3137
"Cloud Kill"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
3138
"Backdraft"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
3139
"Reaper"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
3140
"Blight Phoenix"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
3141
"Ruin"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3069
"[Assassin]"
0080FF
1
1014
"[Sniping]"
008000
1
1015
"Headsh0t"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
1016
"0ptics"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
1017
"Killer"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
1018
"Precisi0n"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
1019
"0ne Sh0t 0ne Kill"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
1020
"B0re"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
1021
"Vel0city"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
1022
"Kill C0nfirmed"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
1023
"At 0ne with the Gun"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
1024
"Critical Ascensi0n"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
1025
"[Cunning]"
FF8000
1
1026
"Fast Hands"
FF8000
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
1027
"C0unter Strike"
FF8000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
1028
"Fearless"
FF8000
4 Bytes
[pBasePointer]
1F0
58
B74
A4
2C
1029
"Ambush"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
1030
"Rising Sh0t"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
1031
"Death Mark"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
1032
"Unf0reseen"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
1033
"Innervate"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
1034
"Tw0 Fang"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
1035
"Death Bl0ss0m"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
1036
"[Bloodshed]"
0000FF
1
1037
"Killing Bl0w"
0000FF
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
1038
"Ir0n Hand"
0000FF
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
1039
"Grim"
0000FF
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
1040
"Be Like Water"
0000FF
4 Bytes
[pBasePointer]
37C
58
B74
A4
2C
1041
"F0ll0wthr0ugh"
0000FF
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
1042
"Execute"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
1043
"Backstab"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
1044
"Resurgence"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
1045
"Like the Wind"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
1046
"Many Must Fall"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3070
"[Gunzerker]"
0080FF
1
3072
"[Gun Lust]"
008000
1
3073
"Locked and Loaded"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
3074
"Quick Draw"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
3075
"I'm Your Huckleberry"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
3076
"All I Need is One"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
3077
"Divergent Likeness"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
3078
"Auto-Loader"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
3079
"Money Shot"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
3080
"Lay Waste"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
3081
"Down Not Out"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
3082
"Keep it Piping Hot"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
3083
"No Kill Like Overkill"
008000
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
3085
"[Rampage]"
FF8000
1
3084
"Inconceivable"
FF8000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
3086
"Filled to the Brim"
FF8000
4 Bytes
[pBasePointer]
1F0
58
B74
A4
2C
3087
"All in the Reflexes"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
3088
"Last Longer"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
3089
"I'm Ready Already"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
3090
"Steady as She Goes"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
3091
"5 Shots or 6"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
3092
"Yipee Ki Yay"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
3093
"Double Your Fun"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
3094
"Get Some"
FF8000
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
3095
"Keep Firing..."
FF8000
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
3098
"[Brawn]"
0000FF
1
3096
"Hard to Kill"
0000FF
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
3097
"Incite"
0000FF
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
3099
"Asbestos"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
3100
"I'm the Juggernaut"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
3101
"Ain't Got Time to Bleed"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
3102
"Fistful of Hurt"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
3103
"Out of Bubblegum"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3104
"Bus that Can't Slow Down"
0000FF
4 Bytes
[pBasePointer]
478
58
B74
A4
2C
3105
"Just Got Real"
0000FF
4 Bytes
[pBasePointer]
49C
58
B74
A4
2C
3106
"Sexual Tyrannosaurus"
0000FF
4 Bytes
[pBasePointer]
4C0
58
B74
A4
2C
3107
"Come At Me Bro"
0000FF
4 Bytes
[pBasePointer]
4E4
58
B74
A4
2C
3142
"[Commando]"
0080FF
1
3143
"[Guerrilla]"
008000
1
3144
"Sentry"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
3145
"Ready"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
3146
"Laser Sight"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
3147
"Willing"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
3148
"Onslaught"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
3149
"Scorched Earth"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
3150
"Able"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
3151
"Grenadier"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
3152
"Crisis Management"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
3153
"Double Up"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
3155
"[Gunpowder]"
FF8000
1
3154
"Impact"
FF7B00
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
3156
"Expertise"
FF8000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
3157
"Overload"
FF8000
4 Bytes
[pBasePointer]
1F0
58
B74
A4
2C
3158
"Metal Storm"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
3159
"Steady"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
3160
"Longbow Turrent"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
3161
"Battlefront"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
3162
"Duty Calls"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
3163
"Do or Die"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
3164
"Ranger"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
3165
"Nuke"
FF8000
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
3167
"[Survival]"
0000FF
1
3166
"Healthy"
0000FF
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
3168
"Preparation"
0000FF
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
3190
"Last Ditch Effort"
0000FF
4 Bytes
[pBasePointer]
37C
58
B74
A4
2C
3169
"Pressure"
0000FF
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
3170
"Forbearance"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
3171
"Phalanx Shield"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
3172
"Quick Charge"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
3173
"Resourceful"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
3174
"Mag-Lock"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3175
"Grit"
0000FF
4 Bytes
[pBasePointer]
478
58
B74
A4
2C
3176
"Gemini"
0000FF
4 Bytes
[pBasePointer]
49C
58
B74
A4
2C
3055
"[Mechromancer]"
0080FF
1
430
"[Best Friends Forever]"
008000
1
3056
"Close Enough"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
3057
"Cooking Up Trouble"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
3058
"Fancy Mathematics"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
3059
"Buck Up"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
381
"The Better Half"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
3060
"Potent as a Pony"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
382
"Upshot Robot"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
383
"Unstoppable Force"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
384
"Explosive Clap"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
385
"Made of Sterner Stuff"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
386
"20% Cooler"
008000
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
3061
"Sharing is Caring"
008000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
431
"[Little Big Trouble]"
FF8000
1
388
"More Pep"
FF8000
4 Bytes
[pBasePointer]
1F0
58
B74
A4
2C
387
"Myelin"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
389
"Shock Storm"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
390
"The Stare"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
391
"Strength of Five Gorillas"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
392
"Electrical Burn"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
393
"Shock and 'AAAGGGGHHH!'"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
394
"Evil Enchantress"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
395
"One Two Boom"
FF8000
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
396
"Wires Don't Talk"
FF8000
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
3062
"Interspersed Outburst"
FF8000
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
397
"Make It Sparkle"
FF8000
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
432
"[Ordered Chaos]"
0000FF
1
398
"Smaller, Lighter, Faster"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
399
"Anarchy"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
3063
"Preshrunk Cyberpunk"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
3064
"Robot Rampage"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
3065
"Blood Soaked Shields"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3066
"Annoyed Android"
0000FF
4 Bytes
[pBasePointer]
478
58
B74
A4
2C
3067
"Discord"
0000FF
4 Bytes
[pBasePointer]
49C
58
B74
A4
2C
3068
"Typecast Iconocast"
0000FF
4 Bytes
[pBasePointer]
4C0
58
B74
A4
2C
433
"Rational Anarchist"
0000FF
4 Bytes
[pBasePointer]
4E4
58
B74
A4
2C
434
"Death from Above"
0000FF
4 Bytes
[pBasePointer]
508
58
B74
A4
2C
435
"The Nth Degree"
0000FF
4 Bytes
[pBasePointer]
52C
58
B74
A4
2C
436
"With Claws"
0000FF
4 Bytes
[pBasePointer]
550
58
B74
A4
2C
3747
"[Psycho]"
0080FF
1
3748
"[Bloodlust]"
008000
1
3749
"Blood-filled Guns"
008000
4 Bytes
[pBasePointer]
40
58
B74
A4
2C
3750
"Blood Twitch"
008000
4 Bytes
[pBasePointer]
64
58
B74
A4
2C
3751
"Taste of Blood"
008000
4 Bytes
[pBasePointer]
88
58
B74
A4
2C
3752
"Bloody Revival"
008000
4 Bytes
[pBasePointer]
AC
58
B74
A4
2C
3753
"Blood Overdrive"
008000
4 Bytes
[pBasePointer]
D0
58
B74
A4
2C
3754
"Blood Bath"
008000
4 Bytes
[pBasePointer]
F4
58
B74
A4
2C
3755
"Buzz Axe Bombardier"
008000
4 Bytes
[pBasePointer]
118
58
B74
A4
2C
3756
"Fuel the Blood"
008000
4 Bytes
[pBasePointer]
13C
58
B74
A4
2C
3757
"Blood Trance"
008000
4 Bytes
[pBasePointer]
160
58
B74
A4
2C
3758
"Boiling Blood"
008000
4 Bytes
[pBasePointer]
184
58
B74
A4
2C
3759
"Nervous Blood"
008000
4 Bytes
[pBasePointer]
1A8
58
B74
A4
2C
3760
"Bloodsplosion"
008000
4 Bytes
[pBasePointer]
1CC
58
B74
A4
2C
3761
"[Mania]"
FF8000
1
3763
"Empty the Rage"
FF8000
4 Bytes
[pBasePointer]
214
58
B74
A4
2C
3764
"Pull the Pin"
FF8000
4 Bytes
[pBasePointer]
238
58
B74
A4
2C
3765
"Feed the Meat"
FF8000
4 Bytes
[pBasePointer]
25C
58
B74
A4
2C
3766
"Embrace the Pain"
FF8000
4 Bytes
[pBasePointer]
280
58
B74
A4
2C
3767
"Fuel the Rampage"
FF8000
4 Bytes
[pBasePointer]
2A4
58
B74
A4
2C
3768
"Thrill of the Kill"
FF8000
4 Bytes
[pBasePointer]
2C8
58
B74
A4
2C
3769
"Light the Fuse"
FF8000
4 Bytes
[pBasePointer]
2EC
58
B74
A4
2C
3770
"Strip the Flesh"
FF8000
4 Bytes
[pBasePointer]
310
58
B74
A4
2C
3771
"Redeem the Soul"
FF8000
4 Bytes
[pBasePointer]
334
58
B74
A4
2C
3772
"Salt the Wound"
FF8000
4 Bytes
[pBasePointer]
358
58
B74
A4
2C
3786
"Silence the Voices"
FF8000
4 Bytes
[pBasePointer]
37C
58
B74
A4
2C
3773
"Release the Beast"
FF8000
4 Bytes
[pBasePointer]
3A0
58
B74
A4
2C
3774
"[Hellborn]"
0000FF
1
3775
"Burn, Baby, Burn"
0000FF
4 Bytes
[pBasePointer]
3C4
58
B74
A4
2C
3776
"Fuel the Fire"
0000FF
4 Bytes
[pBasePointer]
3E8
58
B74
A4
2C
3777
"Numbed Nerves"
0000FF
4 Bytes
[pBasePointer]
40C
58
B74
A4
2C
3778
"Pain is Power"
0000FF
4 Bytes
[pBasePointer]
430
58
B74
A4
2C
3779
"Elemental Elation"
0000FF
4 Bytes
[pBasePointer]
454
58
B74
A4
2C
3780
"Delusional Damage"
0000FF
4 Bytes
[pBasePointer]
478
58
B74
A4
2C
3781
"Fire Fiend"
0000FF
4 Bytes
[pBasePointer]
49C
58
B74
A4
2C
3782
"Flame Flare"
0000FF
4 Bytes
[pBasePointer]
4C0
58
B74
A4
2C
3783
"Hellfire Halitosis"
0000FF
4 Bytes
[pBasePointer]
4E4
58
B74
A4
2C
3784
"Elemental Empathy"
0000FF
4 Bytes
[pBasePointer]
508
58
B74
A4
2C
3785
"Raving Retribution"
0000FF
4 Bytes
[pBasePointer]
52C
58
B74
A4
2C
3799
"[Damage]"
000000
1
3802
"[Damage Resistance]"
0080FF
1
4086
"Bullets"
80000008
Float
[pBasePointer]
4A0
A4
2C
3808
"Physical"
000000
Float
[pBasePointer]
580
A4
30
4084
"Melee"
80000008
Float
[pBasePointer]
4C8
A4
2C
3809
"Explosive"
000000
Float
[pBasePointer]
5A8
A4
30
3813
"Shock"
000000
Float
[pBasePointer]
5D0
A4
30
3810
"Corrosive"
000000
Float
[pBasePointer]
5F8
A4
30
3811
"Fire"
000000
Float
[pBasePointer]
620
A4
30
3812
"Slag"
000000
Float
[pBasePointer]
648
A4
30
4085
"Elemental/Over Time/Hyperion Non Bullet Attacks"
80000008
Float
[pBasePointer]
4B4
A4
2C
4083
"Grenades/Tediore Reload/Damage From All Barrels"
80000008
Float
[pBasePointer]
4DC
A4
2C
4082
"Rockets/Torgue AR Barrels"
80000008
Float
[pBasePointer]
4F0
A4
2C
3804
"[Damage Over Time]"
0080FF
1
3814
"Shock"
000000
Float
[pBasePointer]
464
A4
2C
3816
"Corrosive"
000000
Float
[pBasePointer]
478
A4
2C
3815
"Fire"
000000
Float
[pBasePointer]
450
A4
2C
3806
"[Damage Direct]"
0080FF
1
3826
"Melee"
000000
Float
[pBasePointer]
374
A4
2C
3817
"Physical"
000000
Float
[pBasePointer]
57C
A4
2C
3822
"Explosive"
000000
Float
[pBasePointer]
554
A4
2C
3821
"Shock"
000000
Float
[pBasePointer]
540
A4
2C
3820
"Corrosive"
000000
Float
[pBasePointer]
568
A4
2C
3819
"Fire"
000000
Float
[pBasePointer]
52C
A4
2C
3818
"Slag"
000000
Float
[pBasePointer]
590
A4
2C
3437
"[Object Manipulation]"
000000
1
4148
"Target Health Switch [Normal=5; God=6]"
80000008
4 Bytes
[pBasePointer]
104
1F4
598
308
34
3546
"Current Target Shield"
80000008
Float
[pBasePointer]
6C
5DC
598
308
34
4150
"Target Shield Switch [Normal=5; God=6]"
80000008
4 Bytes
[pBasePointer]
104
5DC
598
308
34
5325
"[Golden Keys]"
FF0000
Auto Assembler Script
[ENABLE]
alloc(keymem,2048)
aobscan(aobKeyBasePointer,8B 3C B1 8B 17 8B 42 08 8B CF FF D0 85 C0 74 ?? 8B 17 F3 0F 10 45 0C)
label(aobKeyBasePointer_r)
label(lblKeyBasePointer)
label(lblKeyBasePointerReturn)
registersymbol(aobKeyBasePointer_r)
label(pKeyBasePointer)
registersymbol(pKeyBasePointer)
keymem:
lblKeyBasePointer:
mov dword ptr [pKeyBasePointer],ecx
mov edi,[ecx+esi*4] // Original code
mov edx,[edi] // Original code
jmp lblKeyBasePointerReturn
pKeyBasePointer:
dd 0
aobKeyBasePointer:
aobKeyBasePointer_r:
jmp lblKeyBasePointer
lblKeyBasePointerReturn:
[DISABLE]
aobKeyBasePointer_r:
db 8B 3C B1 8B 17
unregistersymbol(aobKeyBasePointer_r)
unregistersymbol(pKeyBasePointer)
dealloc(keymem)
3373
"!If these don't work, try the No Golden Keys or Resource Bypass script under [Scripts]"
0000FF
1
332
"Used Golden Keys"
000000
Byte
pKeyBasePointer
2
5F8
48
134
0
331
"Available Golden Keys"
80000008
Byte
pKeyBasePointer
1
5F8
48
134
0
3652
"Hidden Golden Keys"
000000
Byte
pKeyBasePointer
4
5F8
48
134
0
2556
"[Co-Op Players]"
808040
1
3793
"!Small chance that the codes will not point to the correct player, restart the game or have them rejoin to correct it"
0000FF
1
3323
"[Skill Points]"
008080
1
3324
"Player 1"
000000
4 Bytes
[pBasePointer]
274
0
1C4
10
3325
"Player 2"
000000
4 Bytes
[pBasePointer]
274
4
1C4
10
3326
"Player 3"
000000
4 Bytes
[pBasePointer]
274
8
1C4
10
3327
"Player 4"
000000
4 Bytes
[pBasePointer]
274
C
1C4
10
3328
"[Inventory]"
800000
1
3794
"!These may not be moddable, only read only (Weapon Deck + Bank Size)"
0000FF
1
3329
"[Player 1]"
0080FF
1
3330
"Backpack Size"
000000
4 Bytes
[pBasePointer]
1B8
30
3331
"Weapon Deck Size"
000000
4 Bytes
[pBasePointer]
1BC
30
3332
"Bank Size"
000000
4 Bytes
[pBasePointer]
40
210
30
3333
"[Player 2]"
0080FF
1
3334
"Backpack Size"
000000
4 Bytes
[pBasePointer]
1B8
40
3335
"Weapon Deck Size"
000000
4 Bytes
[pBasePointer]
1BC
40
3336
"Bank Size"
000000
4 Bytes
[pBasePointer]
40
210
40
3337
"[Player 3]"
0080FF
1
3651
"Backpack Size"
000000
4 Bytes
[pBasePointer]
1B8
4C
3339
"Weapon Deck Size"
000000
4 Bytes
[pBasePointer]
1BC
4C
3340
"Bank Size"
000000
4 Bytes
[pBasePointer]
40
210
4C
3341
"[Player 4]"
0080FF
1
3342
"Backpack Size"
000000
4 Bytes
[pBasePointer]
1B8
5C
3343
"Weapon Deck Size"
000000
4 Bytes
[pBasePointer]
1BC
5C
3344
"Bank Size"
000000
4 Bytes
[pBasePointer]
40
210
5C
3345
"[Eridium]"
800080
1
3346
"Player 1"
000000
4 Bytes
[pBasePointer]
2B4
0
1C4
10
3347
"Player 2"
000000
4 Bytes
[pBasePointer]
2B4
4
1C4
10
3348
"Player 3"
000000
4 Bytes
[pBasePointer]
2B4
8
1C4
10
3349
"Player 4"
000000
4 Bytes
[pBasePointer]
2B4
C
1C4
10
3350
"[Money]"
008000
1
3351
"Player 1"
000000
4 Bytes
[pBasePointer]
2A0
0
1C4
10
3352
"Player 2"
000000
4 Bytes
[pBasePointer]
2A0
4
1C4
10
3353
"Player 3"
000000
4 Bytes
[pBasePointer]
2A0
8
1C4
10
3354
"Player 4"
000000
4 Bytes
[pBasePointer]
2A0
C
1C4
10
3355
"[Seraph Crystals]"
FF00FF
1
3356
"Player 1"
000000
4 Bytes
[pBasePointer]
2C8
0
1C4
10
3357
"Player 2"
000000
4 Bytes
[pBasePointer]
2C8
4
1C4
10
3358
"Player 3"
000000
4 Bytes
[pBasePointer]
2C8
8
1C4
10
3359
"Player 4"
000000
4 Bytes
[pBasePointer]
2C8
C
1C4
10
3640
"[Torgue Tokens]"
404080
1
3641
"Player 1"
000000
4 Bytes
[pBasePointer]
2F0
0
1C4
10
3642
"Player 2"
000000
4 Bytes
[pBasePointer]
2F0
4
1C4
10
3643
"Player 3"
000000
4 Bytes
[pBasePointer]
2F0
8
1C4
10
3644
"Player 4"
000000
4 Bytes
[pBasePointer]
2F0
C
1C4
10
3453
"[Appearance]"
000080
1
3796
"!Current Head and Skin ID, Can not be used to unlock Heads and Skins"
0000FF
1
3454
"[Player 1]"
0080FF
1
3455
"Head"
1
000000
4 Bytes
[pBasePointer]
55C
0
1C4
10
3456
"Skin"
1
000000
4 Bytes
[pBasePointer]
56C
0
1C4
10
3457
"[Player 2]"
0080FF
1
3458
"Head"
1
000000
4 Bytes
[pBasePointer]
55C
4
1C4
10
3459
"Skin"
1
000000
4 Bytes
[pBasePointer]
56C
4
1C4
10
3460
"[Player 3]"
0080FF
1
3461
"Head"
1
000000
4 Bytes
[pBasePointer]
55C
8
1C4
10
3462
"Skin"
1
000000
4 Bytes
[pBasePointer]
56C
8
1C4
10
3463
"[Player 4]"
0080FF
1
3464
"Head"
1
000000
4 Bytes
[pBasePointer]
55C
C
1C4
10
3465
"Skin"
1
000000
4 Bytes
[pBasePointer]
56C
C
1C4
10
3482
"[Experience]"
804000
1
3483
"[Player 1]"
0080FF
1
3508
"EXP Level"
000000
4 Bytes
[pBasePointer]
258
0
1C4
10
3484
"EXP Multiplier"
400000
Float
[pBasePointer]
118
B58
A4
24
3503
"EXP To Next Level"
000000
4 Bytes
[pBasePointer]
25C
0
1C4
10
3485
"Experience"
000080
Float
[pBasePointer]
6C
B58
A4
24
3486
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
24
3487
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
24
3488
"[Player 2]"
0080FF
1
3509
"EXP Level"
000000
4 Bytes
[pBasePointer]
258
4
1C4
10
3489
"EXP Multiplier"
400000
Float
[pBasePointer]
118
B58
A4
34
3504
"EXP To Next Level"
000000
4 Bytes
[pBasePointer]
25C
4
1C4
10
3490
"Experience"
000080
Float
[pBasePointer]
6C
B58
A4
38
3491
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
38
3492
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
38
3493
"[Player 3]"
0080FF
1
3510
"EXP Level"
000000
4 Bytes
[pBasePointer]
258
8
1C4
10
3494
"EXP Multiplier"
400000
Float
[pBasePointer]
118
B58
A4
48
3505
"EXP To Next Level"
000000
4 Bytes
[pBasePointer]
25C
8
1C4
10
3495
"Experience"
000080
Float
[pBasePointer]
6C
B58
A4
48
3496
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
48
3497
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
48
3498
"[Player 4]"
0080FF
1
3511
"EXP Level"
000000
4 Bytes
[pBasePointer]
258
C
1C4
10
3499
"EXP Multiplier"
400000
Float
[pBasePointer]
118
B58
A4
50
3506
"EXP To Next Level"
000000
4 Bytes
[pBasePointer]
25C
C
1C4
10
3500
"Experience"
000080
Float
[pBasePointer]
6C
B58
A4
50
3501
"Scaled Maximum"
008000
Float
[pBasePointer]
58
B58
A4
50
3502
"Base Maximum"
008000
Float
[pBasePointer]
5C
B58
A4
50
66
"[Visibility]"
0080FF
1
3571
"!Values: 216 Invisible, 217 Visible"
0000FF
1
60
"Player 1"
80000008
Byte
[pBasePointer]
BF
DC
30
70
"Player 2"
80000008
Byte
[pBasePointer]
BF
DC
40
69
"Player 3"
80000008
Byte
[pBasePointer]
BF
DC
4C
68
"Player 4"
80000008
Byte
[pBasePointer]
BF
DC
58
52
"[Player Position]"
808080
1
3595
"[Player 1]"
0080FF
1
3591
"Player Pos -> X"
80000008
Float
[pBasePointer]
60
A4
30
3613
"Player Pos -> Y"
80000008
Float
[pBasePointer]
64
A4
30
3612
"Player Pos -> Z"
80000008
Float
[pBasePointer]
68
A4
30
3620
"MoveVector -> X"
80000008
Float
[pBasePointer]
104
A4
30
3621
"MoveVector -> Y"
80000008
Float
[pBasePointer]
108
A4
30
3622
"MoveVector -> Z"
80000008
Float
[pBasePointer]
10C
A4
30
3596
"[Player 2]"
0080FF
1
3592
"Player Pos -> X"
80000008
Float
[pBasePointer]
60
A4
40
3614
"Player Pos -> Y"
80000008
Float
[pBasePointer]
64
A4
40
3615
"Player Pos -> Z"
80000008
Float
[pBasePointer]
68
A4
40
3623
"MoveVector -> X"
80000008
Float
[pBasePointer]
104
A4
40
3624
"MoveVector -> Y"
80000008
Float
[pBasePointer]
108
A4
40
3625
"MoveVector -> Z"
80000008
Float
[pBasePointer]
10C
A4
40
3597
"[Player 3]"
0080FF
1
3593
"Player Pos -> X"
80000008
Float
[pBasePointer]
60
A4
4C
3616
"Player Pos -> Y"
80000008
Float
[pBasePointer]
64
A4
4C
3617
"Player Pos -> Z"
80000008
Float
[pBasePointer]
68
A4
4C
3626
"MoveVector -> X"
80000008
Float
[pBasePointer]
104
A4
4C
3627
"MoveVector -> Y"
80000008
Float
[pBasePointer]
108
A4
4C
3628
"MoveVector -> Z"
80000008
Float
[pBasePointer]
10C
A4
4C
3598
"[Player 4]"
0080FF
1
3594
"Player Pos -> X"
80000008
Float
[pBasePointer]
60
A4
58
3619
"Player Pos -> Y"
80000008
Float
[pBasePointer]
64
A4
58
3618
"Player Pos -> Z"
80000008
Float
[pBasePointer]
68
A4
58
3629
"MoveVector -> X"
80000008
Float
[pBasePointer]
104
A4
58
3630
"MoveVector -> Y"
80000008
Float
[pBasePointer]
108
A4
58
3631
"MoveVector -> Z"
80000008
Float
[pBasePointer]
10C
A4
58
pCamera
56910000
bToggleKeyPressed
56910010
bScriptEnabled
56910020
vFreeCamX
56910030
vFreeCamY
56910040
vFreeCamZ
56910050
vFreeCamZRot
56910060
vFreeCamXYRot
56910070
vQuad
56910080
vZero
56910090
vOne
569100A0
vThree
569100B0
vAccelerationMult
569100C0
vFloatStorage
569100D0
fTemp1
569100F0
fTemp2
56910100
fTemp3
56910110
fTemp4
56910120
vCameraSet
56910130
bFreeCamInit
56910140
bFreeCamStart
56910150
aobBasePointer_r
016FBDD3
pBasePointer
5B0D0010
p0
5B0D0900
p1
5B0D0904
p2
5B0D0908
dwEPhysicsHook_0
0193BF41
bPlayersOnly
5B0D0D00
PlayersOnly_FreezeGFX
00E6D9BA
GetIndex
01770BF0
SetIndex
0162C6B0
Toggler
5B580300
KeyHandlerOff
5B580304
bFly
5B58030C
bGhost
5B580310
bGod
5B580314
pTime
5CC80100
pScale
5CC80104
dwDayNight
00DF18B1
thirdpersonsubAOB1_jmp
0157BB60
thirdpersonsubAOB2_jmp
00CC6E40
overrideTrans_jmp
0189B344
controlMainForm = getMainForm()
AddressList = getAddressList()
-- Remove the first hyphen from the next line to comment out the Cheat Engine slim line code
---[[
--Compact mode
control_setVisible(wincontrol_getControl(controlMainForm,0), false)
control_setVisible(wincontrol_getControl(controlMainForm,2), false)
control_setVisible(wincontrol_getControl(controlMainForm,3), false)
--end
--Disable header sorting and items dragging
AddressListTreeview = component_getComponent(AddressList,0)
AddressListHeader = component_getComponent(AddressList,1)
setMethodProperty(AddressListHeader ,"OnSectionClick",nil)
setMethodProperty(AddressListTreeview,"OnDragOver" ,nil)
setMethodProperty(AddressListTreeview,"OnDragDrop" ,nil)
setMethodProperty(AddressListTreeview,"OnEndDrag" ,nil)
--end
--show main window
ShowMainWindowTimer = createTimer(nil,false)
timer_setInterval(ShowMainWindowTimer, 1)
timer_onTimer(ShowMainWindowTimer, function (sender)
object_destroy(sender)
control_setVisible(controlMainForm,true) -- set visible
form_setMenu(controlMainForm,nil) -- hide menu
end)
timer_setEnabled(ShowMainWindowTimer, true)
--end
--]]--
if getCEVersion == nil or getCEVersion() < 6.2 then
messageDialog('It is recommended to use at least Cheat Engine 6.2! (Your Version: '..getCEVersion()..')', mtError, mbOK)
end
errorOnLookupFailure(false)
DefaultProccessName = "Borderlands2.exe"
strings_add(getAutoAttachList(), DefaultProccessName)
--]]--
---------------------------------------------------------------------------------------------------
--[[
- Utility Functions
]]--
--Debug Logger
debug_log_already_visible = false
function DebugLog(sLog)
if not debug_log_already_visible then
form_show(Debug)
debug_log_already_visible = true
end
memo_append(Debug_Log, trim(sLog))
end
function Dec2Hex(nValue)
return string.format("%X", 0+nValue)
end
function Hex2Dec(sValue)
return tonumber(sValue, 16).."";
end
function trim(s)
return s:find'^%s*$' and '' or s:match'^%s*(.*%S)'
end
function triml(s)
return s:match'^%s*(.*)'
end
function trimr(s)
return s:find'^%s*$' and '' or s:match'^(.*%S)'
end
function getn(tt)
local count = 0
for ii,xx in pairs(tt) do count = count + 1 end
return count
end
function round(what, precision)
if what == nil then return 0 end
return math.floor(what*math.pow(10,precision)+0.5) / math.pow(10,precision)
end
function clearDebugLog()
strings_clear(memo_getLines(Debug_Log))
end
function unfreezeAllMemoryRecords()
local count = addresslist_getCount(AddressList)
for i=0,count-1 do
local record = addresslist_getMemoryRecord(AddressList, i)
memoryrecord_unfreeze(record)
end
end
function getProcessNameFromProcessID(iProcessID)
if iProcessID < 1 then return 0 end
local plist = createStringlist()
getProcesslist(plist)
for i=1, strings_getCount(plist)-1 do
local process = strings_getString(plist, i)
local offset = string.find(process,'-')
local pid = tonumber('0x'..string.sub(process,1,offset-1))
local pname = string.sub(process,offset+1)
if pid == iProcessID then return pname end
end
return 0
end
function getOpenedProcessName()
local process = getOpenedProcessID()
if process ~= 0 and getProcessIDFromProcessName(DefaultProccessName) == getOpenedProcessID() then
if checkOpenedProcess(DefaultProccessName) == true then return DefaultProccessName end
return 0
end
return getProcessNameFromProcessID(getOpenedProcessID())
end
function checkOpenedProcess(process)
if process == nil or process == 0 or process == false then
process = getOpenedProcessID()
if process ~= 0 and getProcessIDFromProcessName(DefaultProccessName) == process then
process = DefaultProccessName
end
end
if type(process) == "number" then process = getProcessNameFromProcessID(process) end
if process ~= nil and process ~= 0 then
if readInteger(process) then return true end
end
return false
end
function checkProccessAttached()
if DefaultProccessName == nil then return end
if checkOpenedProcess() == false then openProcess(DefaultProccessName) end
end
function CheckVariable(sVar)
if sVar == nil or sVar == false or sVar <= 0 then return false end
return true
end
function CheckEnabled(sVar)
if checkOpenedProcess() == false or CheckVariable(readInteger("pBasePointer")) == false then return false end
if sVar ~= nil then
local bEnabled = readInteger(getAddress(sVar))
if bEnabled == nil or (bEnabled ~= 1 and bEnabled ~= true) then return false end
end
return true
end
--for ByteArray and -W+X-C (something like AOBScan() function, but only one result; and faster)
function ScanForItByteArray(scanThis)
local newscanObj = createMemScan()
memscan_returnOnlyOneResult(newscanObj,true)
memscan_firstScan(newscanObj, soExactValue, vtByteArray, rtTruncated,
scanThis,nil,"00000000","7fffffff","-W+X-C",fsmNotAligned,
"", true, false, false, false);
memscan_waitTillDone(newscanObj)
local RESULT = memscan_getOnlyResult(newscanObj)
object_destroy(newscanObj)
return RESULT
end
--for Grouped and +W-X-C
function ScanForItGrouped(scanThis,alignment)
local newscanObj = createMemScan()
memscan_returnOnlyOneResult(newscanObj,true)
memscan_firstScan(newscanObj, soExactValue, vtGrouped, rtTruncated,
scanThis,nil,"00000000","7fffffff","+W-X-C",fsmAligned,
alignment, false, false, false, false);
memscan_waitTillDone(newscanObj)
local RESULT = memscan_getOnlyResult(newscanObj)
object_destroy(newscanObj)
return RESULT
end
--for Dword and +W
function ScanForItDword(scanThis)
local newscanObj = createMemScan()
memscan_firstScan(newscanObj,soExactValue,vtDword,"",
scanThis,"0","0x00000000","7fffffff","+W",fsmAligned,
"4",false,false,true,false)
memscan_waitTillDone(newscanObj)
local ScanResults = createFoundList(newscanObj)
foundlist_initialize(ScanResults)
object_destroy(newscanObj)
return ScanResults
end
--HotKey Control
if aHotKey ~= nil and #aHotKey ~= 0 then
for i=1,#aHotKey do object_destroy(aHotKey[i]) end
end
aHotKey = {}
function addHotKey(func, button)
table.insert(aHotKey, createHotkey(func, button))
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Starting Message
]]--
clearDebugLog()
control_setCaption(controlMainForm,"Borderlands 2 Cheat Compilation by TechnoJacker - Cheat Engine " .. getCEVersion())
---[[
DebugLog('************************************************************************')
DebugLog('*Borderlands 2 Cheat Compilation by TechnoJacker')
DebugLog('*Cheat Engine Support Topic: http://goo.gl/r9O1e')
DebugLog('*Latest Cheat Compilation Locations:')
DebugLog('*Google Drive: http://goo.gl/JjVpC')
DebugLog('*Dropbox: http://goo.gl/9WF5R')
DebugLog('************************************************************************')
local OpenedProcess = getOpenedProcessName()
if OpenedProcess ~= 0 then
DebugLog("~Hooked Process: "..OpenedProcess..' ('..getOpenedProcessID()..')')
end
function onOpenProcess(processid)
DebugLog("~Hooking Process: "..getProcessNameFromProcessID(processid)..' ('..processid..')')
unfreezeAllMemoryRecords()
beep()
end
--]]--
if AttachTimer ~= nil then
timer_setEnabled(AttachTimer, false); object_destroy(AttachTimer); AttachTimer = nil;
end
AttachTimer = createTimer(nil)
timer_onTimer(AttachTimer, checkProccessAttached)
timer_setInterval(AttachTimer,10000)
timer_setEnabled(AttachTimer, true)
--[[ -------------------------------------------------------------------- ]]--
--[[
- Change Item Level
]]--
function ItemLevelUpdate()
local BaseItemAddress = readInteger("ItemAddressBase")
if CheckEnabled() == false or CheckVariable(BaseItemAddress) == false then return end
DebugLog("@Function: ItemLevelUpdate()")
local DesiredLevel = readInteger("DesiredLevel")
if DesiredLevel == 0 then
local PlayerLevel = readInteger("[[[ItemAddressBase]+1EC]+3EC]+258")
if PlayerLevel ~= nil then
DesiredLevel = PlayerLevel
end
end
local offset = "8B4"
if readQword("[ItemAddressBase]+4C") == 0 then -- weapon ?
offset = "E3C"
end
local success = writeInteger("[ItemAddressBase]+"..offset,DesiredLevel)
if success then
writeInteger("[ItemAddressBase]+1E0",DesiredLevel)
DebugLog("-Updated item at address " .. Dec2Hex(BaseItemAddress) .. " to level " .. DesiredLevel)
beep()
else
DebugLog("!Error: Failed to update item level")
end
end
addHotKey("ItemLevelUpdate", VK_F2)
--[[ -------------------------------------------------------------------- ]]--
--[[
- Teleport
]]--
SaveLoc = {}; SavePos = 0
CordAddressData = {
[1] = "[[[[pBasePointer]]+30]+a4]+60",
[2] = "[[[[pBasePointer]]+40]+a4]+60",
[3] = "[[[[pBasePointer]]+4C]+a4]+60",
[4] = "[[[[pBasePointer]]+58]+a4]+60"
}
function TeleportSave()
if CheckEnabled('bTeleModLoaded') == false then return end
DebugLog("@Function: TeleportSave()")
local BaseAddressString = getAddress(CordAddressData[1])
SavePos = readInteger("iTeleModSavePos")
SaveLoc[SavePos] = { x = readFloat(BaseAddressString+0),
y = readFloat(BaseAddressString+4),
z = readFloat(BaseAddressString+8) }
DebugLog("-Saved Location: Pos = " .. SavePos ..
" :: X = " .. SaveLoc[SavePos]['x'] ..
" :: Y = " .. SaveLoc[SavePos]['y'] ..
" :: Z = " .. SaveLoc[SavePos]['z'])
beep()
end
function TeleportLoad()
if CheckEnabled('bTeleModLoaded') == false then return end
SavePos = readInteger("iTeleModSavePos")
if SaveLoc[SavePos] == nil then return end
DebugLog("@Function: TeleportLoad()")
local BaseAddressString = getAddress(CordAddressData[1])
writeFloat(BaseAddressString+0, SaveLoc[SavePos]['x'])
writeFloat(BaseAddressString+4, SaveLoc[SavePos]['y'])
writeFloat(BaseAddressString+8, SaveLoc[SavePos]['z'])
DebugLog("-Loaded Location: Pos = " .. SavePos ..
" :: X = " .. SaveLoc[SavePos]['x'] ..
" :: Y = " .. SaveLoc[SavePos]['y'] ..
" :: Z = " .. SaveLoc[SavePos]['z'])
beep()
end
function TeleportToHost()
if CheckEnabled('bTeleModLoaded') == false then return end
DebugLog("@Function: TeleportToHost()")
local BaseAddressString = getAddress(CordAddressData[1])
local WarpedPlayer = false
for i=2,#CordAddressData do
local CordAddressString = getAddress(CordAddressData[i])
if CordAddressString < 1000 then break end
writeFloat(CordAddressString+0, readFloat(BaseAddressString+0))
writeFloat(CordAddressString+4, readFloat(BaseAddressString+4))
writeFloat(CordAddressString+8, readFloat(BaseAddressString+8))
WarpedPlayer = true
end
if WarpedPlayer == true then beep() end
end
function TeleportToPlayer(PlayerID)
if CheckEnabled('bTeleModLoaded') == false then return end
if PlayerID == nil or type(PlayerID) ~= 'number' or PlayerID < 2 or PlayerID > 4 then return end
DebugLog("@Function: TeleportToPlayer("..PlayerID..")")
local BaseAddressString = getAddress(CordAddressData[1])
local CordAddressString = getAddress(CordAddressData[PlayerID])
if CordAddressString > 1000 then
writeFloat(BaseAddressString+0, readFloat(CordAddressString+0))
writeFloat(BaseAddressString+4, readFloat(CordAddressString+4))
writeFloat(BaseAddressString+8, readFloat(CordAddressString+8))
beep()
end
end
function TeleportPlayer(PlayerID)
if CheckEnabled('bTeleModLoaded') == false then return end
if PlayerID == nil or type(PlayerID) ~= 'number' or PlayerID < 2 or PlayerID > 4 then return end
DebugLog("@Function: TeleportPlayer("..PlayerID..")")
local BaseAddressString = getAddress(CordAddressData[1])
local CordAddressString = getAddress(CordAddressData[PlayerID])
if CordAddressString > 1000 then
writeFloat(CordAddressString+0, readFloat(BaseAddressString+0))
writeFloat(CordAddressString+4, readFloat(BaseAddressString+4))
writeFloat(CordAddressString+8, readFloat(BaseAddressString+8))
beep()
end
end
TeleportToPlayerTwo = function() return TeleportToPlayer(2) end
TeleportToPlayerThree = function() return TeleportToPlayer(3) end
TeleportToPlayerFour = function() return TeleportToPlayer(4) end
TeleportPlayerTwo = function() return TeleportPlayer(2) end
TeleportPlayerThree = function() return TeleportPlayer(3) end
TeleportPlayerFour = function() return TeleportPlayer(4) end
addHotKey("TeleportSave", VK_NUMPAD0)
addHotKey("TeleportLoad", VK_DECIMAL)
addHotKey("TeleportToHost", VK_ADD)
addHotKey("TeleportPlayerTwo", VK_NUMPAD4)
addHotKey("TeleportPlayerThree", VK_NUMPAD5)
addHotKey("TeleportPlayerFour", VK_NUMPAD6)
addHotKey("TeleportToPlayerTwo", VK_NUMPAD7)
addHotKey("TeleportToPlayerThree", VK_NUMPAD8)
addHotKey("TeleportToPlayerFour", VK_NUMPAD9)
--[[ -------------------------------------------------------------------- ]]--
--[[
- Rarity Drop Rate
]]--
RarityChances_Grouped =
{
Weight_0_VeryCommon = "4:44 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 2C
Weight_1_Common = "4:46 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 2E
Weight_2_Uncommon = "4:48 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 30
Weight_3_Uncommoner = "4:49 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 31
Weight_4_Rare = "4:50 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 32
Weight_5_VeryRare = "4:51 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216", -- ID 33
Weight_6_Legendary = "4:52 w:20 4:0 4:1 4:* 4:0 4:0 4:1065353216 4:1065353216" -- ID 34
}
RarityPresets =
{
["Revert All - Original"] = {200, 100, 10, 5, 1, 0.1, 0.01},
["Preset 01 (Legendary Only)"] = {0.001, 0.001, 0.001, 0.001, 0.001, 100, 10000},
["Preset 02 (Purple Only)"] = {0.001, 0.001, 0.001, 0.001, 0.001, 1000, 0.001},
["Preset 03 (Blue Only)"] = {0.001, 0.001, 0.001, 0.001, 1000, 0.001, 0.001},
["Preset 04 (Eridium Only)"] = {0.001, 0.001, 0.001, 1000, 0.001, 0.001, 0.001},
["Preset 05 (Green Only)"] = {0.001, 0.001, 1000, 0.001, 0.001, 0.001, 0.001},
["Preset 06 (White Only)"] = {0.001, 1000, 0.001, 0.001, 0.001, 0.001, 0.001},
["Preset 07 (Health Only)"] = {1000, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001},
["Preset 08 (Legendaries 5x more likely)"] = {200, 100, 10, 5, 1, 0.1, 0.05},
["Preset 09 (Legendaries 10x more likely)"] = {200, 100, 10, 5, 1, 0.1, 0.1},
["Preset 10 (Legendaries 100x more likely)"] = {200, 100, 10, 5, 1, 0.1, 1},
["Preset 11 (Legendaries 1000x more likely)"] = {200, 100, 10, 5, 1, 0.1, 10}
}
RaritySymbols =
{
'Weight_0_VeryCommon',
'Weight_1_Common',
'Weight_2_Uncommon',
'Weight_3_Uncommoner',
'Weight_4_Rare',
'Weight_5_VeryRare',
'Weight_6_Legendary'
}
DropsWeaponAndGear_Boss = [[4:1023879938 8:0]]
DropsWeaponAndGear_Grouped = [[
4:1034818683 8:0 4:1065353216 4:* 4:1 4:1
4:1032805417 8:0 4:1065353216 4:* 4:1 4:1
4:1031127695 8:0 4:1065353216 4:* 4:1 4:1
4:1028443341 8:0 4:1065353216 4:* 4:1 4:1]]
DropsWeaponAndGear_Grouped = DropsWeaponAndGear_Grouped:gsub("\n"," ")
DropsWeaponAndGearSymbols = {'DropsWeaponAndGear1','DropsWeaponAndGear2','DropsWeaponAndGear3','DropsWeaponAndGear4','DropsWeaponAndGearBoss'}
Skins_Grouped = [[4:2 w:8 f:0.050 w:176 4:1 w:8 f:0.0020]]
SkinsSymbols = {'VehicleSkinsOdds','SkinsOdds'}
function GetRarityChancesMemoryRecords()
if CheckEnabled() == false then return end
local timer = createTimer(nil,true)
timer_onTimer(timer,GetRarityChancesMemoryRecordsDelayed)
end
function GetRarityChancesMemoryRecordsDelayed(timer)
object_destroy(timer)
DebugLog("@Function: GetRarityChancesMemoryRecordsDelayed()")
DebugLog("-Rarity Mod Status: Scanning... Please wait")
processMessages()
local address = nil
--RarityChances
for symbol,groupscancommand in pairs(RarityChances_Grouped) do
address = ScanForItGrouped(groupscancommand,"4")
if address~=nil then
DebugLog("-Registering Symbol: " .. symbol .. " (" .. Dec2Hex(address+32) .. ")")
registerSymbol(symbol, address+32, true)
end
end
--DropsWeaponAndGear
address = ScanForItGrouped(DropsWeaponAndGear_Grouped,"4")
if address ~= nil then
for i=1,#DropsWeaponAndGearSymbols-1 do
DebugLog("-Registering Symbol: " .. DropsWeaponAndGearSymbols[i] .. " (" .. Dec2Hex(address+(i-1)*0x1C) .. ")")
registerSymbol(DropsWeaponAndGearSymbols[i], address+(i-1)*0x1C, true)
end
end
--DropsWeaponAndGearBoss
address = ScanForItGrouped(DropsWeaponAndGear_Boss,"4")
if address ~= nil then
DebugLog("-Registering Symbol: " .. DropsWeaponAndGearSymbols[5] .." (" .. Dec2Hex(address) .. ")")
registerSymbol(DropsWeaponAndGearSymbols[5], address, true)
end
--Skins
address = ScanForItGrouped(Skins_Grouped,"4")
if address ~= nil then
DebugLog("-Registering Symbol: " .. SkinsSymbols[1] .. " (" .. Dec2Hex(address+0x0C) .. ")")
registerSymbol(SkinsSymbols[1], address+0x0C, true)
DebugLog("-Registering Symbol: " .. SkinsSymbols[2] .. " (" .. Dec2Hex(address+0xCC) .. ")")
registerSymbol(SkinsSymbols[2], address+0xCC, true)
end
DebugLog("-Rarity Mod Status: Done")
end
function RevertAndDisableRarity()
if CheckEnabled() == false then return end
DebugLog("@Function: RevertAndDisableRarity()")
local defaultValues1 = {200, 100, 10, 5, 1, 0.1, 0.01} -- RarityChances
local defaultValues2 = {0.085, 0.07, 0.06, 0.05} -- DropsWeaponAndGear
local defaultValues3 = {0.05, 0.002} -- Skins
local defaultValues4 = {1023879938} -- Boss
-- restore RarityChances defaults
for i=1,#RaritySymbols do
DebugLog("-Unregistering Symbol: " .. RaritySymbols[i])
writeFloat(RaritySymbols[i], defaultValues1[i])
unregisterSymbol(RaritySymbols[i])
end
-- restore DropsWeaponAndGear defaults
for i=1,#DropsWeaponAndGearSymbols-1 do
DebugLog("-Unregistering Symbol: " .. DropsWeaponAndGearSymbols[i])
writeFloat(DropsWeaponAndGearSymbols[i], defaultValues2[i])
unregisterSymbol(DropsWeaponAndGearSymbols[i])
end
-- restore DropsWeaponAndGearBoss defaults
DebugLog("-Unregistering Symbol: " .. DropsWeaponAndGearSymbols[5])
writeInteger(DropsWeaponAndGearSymbols[5], defaultValues4[1])
unregisterSymbol(DropsWeaponAndGearSymbols[5])
-- restore Skins defaults
DebugLog("-Unregistering Symbol: " .. SkinsSymbols[1])
DebugLog("-Unregistering Symbol: " .. SkinsSymbols[2])
writeFloat(SkinsSymbols[1], defaultValues3[1])
writeFloat(SkinsSymbols[2], defaultValues3[2])
unregisterSymbol(SkinsSymbols[1])
unregisterSymbol(SkinsSymbols[2])
DebugLog("-Rarity Mod Revert and Disable: Done")
end
function presetSetValues(memrec)
for description,_ in pairs(RarityPresets) do
if presetMemoryRecords[description] ~= memrec then
memoryrecord_unfreeze(presetMemoryRecords[description])
end
end
if CheckEnabled() == false then return true end
local whichmemrec = memoryrecord_getDescription(memrec)
for i=1,#RaritySymbols do
writeFloat(RaritySymbols[i], RarityPresets[whichmemrec][i])
end
return true
end
presetMemoryRecords ={}
for description,_ in pairs(RarityPresets) do
if presetMemoryRecords[description] == nil then
presetMemoryRecords[description] = addresslist_getMemoryRecordByDescription(AddressList,description)
memoryrecord_onActivate(presetMemoryRecords[description] ,presetSetValues)
end
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Blink Teleportation
]]--
aobscanString = '83 C4 10 8B 07 8B 0C B0 89 0D XX XX XX XX 5F EB 0A'
LastBulletPosString = '[[[[[[paste_here]+40]+190]+6A4]+68]+5DC]+1BC'
PlayerPositionString = '[[[[[paste_here]+40]+190]+470]+A4]+60'
baseFound = false
function findBase()
if baseFound then return end
DebugLog("@Function: findBase()")
local result = ScanForItByteArray(aobscanString)
if result~=nil then
baseFound = true
local baseAdress = string.format('%X',readInteger(result+0x0A))
LastBulletPosString = LastBulletPosString:gsub('paste_here',baseAdress)
PlayerPositionString = PlayerPositionString:gsub('paste_here',baseAdress)
DebugLog('-Blink: Base Array of Bytes found')
else
DebugLog('!Error: Blink Array of Bytes not found')
end
end
function Blink()
if CheckEnabled('bBlinkModLoaded') == false then return end
findBase()
DebugLog("@Function: Blink()")
local LastBulletPosAddr = getAddress(LastBulletPosString)
local PlayerPositionAddr = getAddress(PlayerPositionString)
if LastBulletPosAddr == 0 or PlayerPositionAddr == 0 then
DebugLog('!Error: LastBulletPosAddr or PlayerPositionAddr is invalid')
return
end
local LastBulletPos = {}
LastBulletPos[1],LastBulletPos[2],LastBulletPos[3]=
readFloat(LastBulletPosAddr),readFloat(LastBulletPosAddr+4),
readFloat(LastBulletPosAddr+8)
local PlayerPosition = {}
PlayerPosition[1],PlayerPosition[2],PlayerPosition[3]=
readFloat(PlayerPositionAddr),readFloat(PlayerPositionAddr+4),
readFloat(PlayerPositionAddr+8)
local ax,ay,az=PlayerPosition[1],PlayerPosition[2],PlayerPosition[3]
local bx,by,bz=LastBulletPos[1],LastBulletPos[2],LastBulletPos[3]
if ax==nil or ay==nil or az==nil then return end
if bx==nil or by==nil or bz==nil then return end
local D = math.sqrt( (bx-ax)^2 + (by-ay)^2 + (bz-az)^2 )
if D == 0 then D=1 end
local u = (D-600.0)/D
if u<0 then u=0.8 end
local Px,Py,Pz = (bx-ax)*u,(by-ay)*u,(bz-az)*u
local Destination = {}
Destination[1],Destination[2],Destination[3] = ax+Px,ay+Py,az+Pz
local SpeedVector = {}
SpeedVector[1] = (LastBulletPos[1]-Destination[1]) * 2.2
SpeedVector[2] = (LastBulletPos[2]-Destination[2]) * 2.2
SpeedVector[3] = (LastBulletPos[3]-Destination[3]) * 2.2
--do blink
writeFloat(PlayerPositionAddr+0,Destination[1])
writeFloat(PlayerPositionAddr+4,Destination[2])
writeFloat(PlayerPositionAddr+8,Destination[3]+100)
writeFloat(PlayerPositionAddr+164+0,SpeedVector[1])
writeFloat(PlayerPositionAddr+164+4,SpeedVector[2])
writeFloat(PlayerPositionAddr+164+8,SpeedVector[3])
beep()
DebugLog('-Blinked to X ('..Destination[1]..'), Y ('..Destination[2]..'), Z ('..Destination[3]..')')
end
addHotKey("Blink",VK_F6)
addHotKey("Blink",VK_Q)
--[[ -------------------------------------------------------------------- ]]--
--[[
- Loot Control
]]--
LootPointer = '[[[[[[[[pBasePointer]]+34]+28]+28]+dc]+54]+108]+184'
PlayerData = '[[[[pBasePointer]]+30]+A4]+60'
function sin(percent)
return math.sin(6.28318*percent)
end
function cos(percent)
return math.cos(6.28318*percent)
end
function getLootCount()
local count = readInteger( getAddress(LootPointer) + 4 )
if count==nil then return 0 end
return count
end
function getLootAdr(index)
if index == nil then return nil end
return readInteger(readInteger(LootPointer) + index*4)
end
function LootMover()
if CheckEnabled('bLootModLoaded') == false then return end
DebugLog("@Function: LootMover()")
local lootCount = getLootCount()
local playerPosAddr = getAddress(PlayerData)
if lootCount<1 or playerPosAddr==nil then return end
local PlayerXPos = readFloat(playerPosAddr+0x0)
local PlayerYPos = readFloat(playerPosAddr+0x4)
local PlayerZPos = readFloat(playerPosAddr+0x8)
local minDist = 55.0 -- minimum distance between two items. (units)
local R = minDist / (2*math.sin(math.pi/(lootCount==1 and 2 or lootCount))) -- compute radius for minDist
if R<90 then R=90 end --minimum R but not less than 90 units
for i=0,lootCount-1 do
local loot = getLootAdr(i); if loot == nil then return end
--[[
local newX = PlayerXPos + cos(i/lootCount)*R
local newY = PlayerYPos + sin(i/lootCount)*R
--]]
local newX = PlayerXPos + 8 * i * math.cos(i + math.pi)
local newY = PlayerYPos + 8 * i * math.sin(i + math.pi)
local newZ = PlayerZPos + 50
writeFloat(loot+0x060, newX) -- set new position
writeFloat(loot+0x064, newY)
writeFloat(loot+0x068, newZ)
writeBytes(loot+0x09C, 0x02) -- allow drop
end
sleep(10)
for i=0,lootCount-1 do
local loot = getLootAdr(i); if loot == nil then return end
writeBytes(loot+0x09C, 0x00) -- freeze
end
beep()
end
function CrapDelete()
if CheckEnabled('bLootModLoaded') == false then return end
DebugLog("@Function: CrapDelete()")
local lootCount = getLootCount()
if lootCount<1 then return end
local delCount = 0
for i=0,lootCount-1 do
local loot = getLootAdr(i); if loot == nil then return end
local loottimer = readFloat(loot+0xE4)
if loottimer > 0 then
writeFloat(loot+0xE4,0.1)
delCount = delCount + 1
end
end
DebugLog("-Deleted " .. delCount .. " items")
beep()
end
function AllDelete()
if CheckEnabled('bLootModLoaded') == false then return end
DebugLog("@Function: AllDelete()")
local lootCount = getLootCount()
if lootCount<1 then return end
for i=0,lootCount-1 do
local loot = getLootAdr(i); if loot == nil then return end
writeFloat(loot+0xE4,0.1)
end
DebugLog("-Deleted " .. lootCount-1 .. " items")
beep()
end
function StopScalarTimer()
if PTimer ~= nil then
timer_setEnabled(PTimer, false)
object_destroy(PTimer)
PTimer = nil
end
end
function StartScalarTimer()
StopScalarTimer()
if CheckEnabled('bLootScalarModLoaded') == false then return end
PTimer = createTimer(nil)
timer_onTimer(PTimer, LootScaler)
timer_setInterval(PTimer,100)
timer_setEnabled(PTimer, true)
end
function LootScaler()
local lootCount = getLootCount()
if lootCount<1 then return end
for i=0,lootCount-1 do
local ItemData = getAddress('[[[' .. LootPointer .. ']+' .. Dec2Hex(4*i) .. ']+18c]+0')
local rarity = readInteger(ItemData+476)
if rarity ~= nil then
local loot = getLootAdr(i); if loot == nil then return end
if CheckEnabled('bLootScalarModLoaded') == false then
writeFloat(loot+120,1)
elseif rarity ==5 or (rarity > 6 and rarity < 11) or rarity == 501 then
writeFloat(loot+120,2.5)
elseif rarity == 4 or rarity == 6 then
writeFloat(loot+120,1.5)
elseif rarity == 500 then
writeFloat(loot+120,3.0)
end
end
end
if CheckEnabled('bLootScalarModLoaded') == false then StopScalarTimer() end
end
StartScalarTimer()
addHotKey("AllDelete",VK_DELETE)
addHotKey("CrapDelete",187)
addHotKey("LootMover",VK_SNAPSHOT)
--[[ -------------------------------------------------------------------- ]]--
--[[
- Hero Level Downgrade
]]--
function HeroLevelRecalculate()
DebugLog("@Function: HeroLevelRecalculate()")
local EXP_Level = addresslist_getMemoryRecordByDescription(AddressList,'EXP Level')
local desiredHeroLevel = tonumber(memoryrecord_getValue(EXP_Level))
if CheckEnabled() == false or CheckVariable(desiredHeroLevel) == false then return end
local EXP_To_Next_Level = addresslist_getMemoryRecordByDescription(AddressList,'EXP To Next Level')
local Experience__ = addresslist_getMemoryRecordByDescription(AddressList,'Experience')
local Experience_Points = math.floor( (desiredHeroLevel^2.8+7.33)*60 ) - 500
memoryrecord_setValue(EXP_Level,desiredHeroLevel-1)
memoryrecord_setValue(EXP_To_Next_Level,Experience_Points+1)
memoryrecord_setValue(Experience__,Experience_Points)
DebugLog("-Set level to "..(desiredHeroLevel-1).." with "..Experience_Points.." EXP")
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Smasher Mod
]]--
EVILSMASHER_ammo_GrpScn = [[f:2.00 w:8 f:1.00 w:20 f:1.00 w:36 f:17.00 w:8 f:1.00 w:20 f:1.00 w:36 4:0xBF19999A w:8 f:1.00]]
EVILSMASHER_chan_GrpScn = [[4:0x3D4CCCCD w:41 f:2.00 w:15 f:7.00 w:12 f:93.00]]
function EvilSmasherMod()
if CheckEnabled() == false then return end
local timer = createTimer(nil,true)
timer_onTimer(timer,EvilSmasherModDelayed)
end
function EvilSmasherModDelayed(timer)
DebugLog("@Function: EvilSmasherModDelayed()")
object_destroy(timer)
local script =[[
alloc(newmem,1024)
label(EVILSMASHERammo)
label(EVILSMASHERchan)
registersymbol(EVILSMASHERammo)
registersymbol(EVILSMASHERchan)
newmem:
EVILSMASHERammo:
dd 0
EVILSMASHERchan:
dd 0
]]
autoAssemble(script)
DebugLog("-Smasher Mod Status: Scanning... Please wait")
processMessages()
local smasherAddressAmmo = ScanForItGrouped(EVILSMASHER_ammo_GrpScn,"1")
local smasherAddressChan = ScanForItGrouped(EVILSMASHER_chan_GrpScn,"1")
if smasherAddressAmmo ~= nil then
writeInteger('EVILSMASHERammo',smasherAddressAmmo+0x4C)
end
if smasherAddressChan ~= nil then
writeInteger('EVILSMASHERchan',smasherAddressChan+0x40)
end
processMessages()
DebugLog("-Smasher Mod Status: Done")
end
function RevertAndDisableSmasher()
if CheckEnabled() == false then return end
writeFloat('[EVILSMASHERammo]', 17)
writeFloat('[EVILSMASHERchan]', 7)
writeFloat('[EVILSMASHERchan]+10', 93)
writeInteger('EVILSMASHERammo', 0)
writeInteger('EVILSMASHERchan', 0)
unregisterSymbol('EVILSMASHERammo')
unregisterSymbol('EVILSMASHERchan')
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Spawn Swapper
]]--
BaseEntityAoB = '74 14 51 b9 ?? ?? ?? ?? e8'
StringPointAoB = '83 c4 10 8b 0d ?? ?? ?? ?? 8b 0c b9 68 00 10 00 00'
BaseEntityTable = nil
BaseItemPool = nil
BaseDen = nil
DenResults = nil
DenCount = nil
BasePointDef = nil
PointCount = nil
BaseEnList = nil
EnListCount = nil
BaseEnemy = nil
EnemyCount = nil
STable = nil
DenData = {['count'] = {}, ['spawn']={}}
addHotKey("FindDens",VK_INSERT)
addHotKey("KillReset",VK_HOME)
addHotKey("MaxKills", VK_SCROLL)
addHotKey("MaxUp",VK_PRIOR)
addHotKey("MaxDown",VK_NEXT)
addHotKey("RestoreDens", VK_PAUSE)
addHotKey("VermiSwapper", VK_END)
function SwapOpen()
form_show(Swapper)
end
function SwapClose()
form_hide(Swapper)
end
function SwapClear()
strings_clear(listbox_getItems(Swapper_EnGroup))
strings_clear(listbox_getItems(Swapper_EnSwap))
strings_clear(listbox_getItems(Swapper_EnList))
end
SwapClear()
function GetString(Address, Length)
local Length = Length or 80
local Offset = readInteger(Address + 44)
if Address == nil or Offset == nil then
if Address == nil then Address = "nil" end
if Offset == nil then Offset = "nil" end
DebugLog("!Error: Unknown GetString - Address = '"..Address.."' Value = '"..Offset.."'")
return 'Unknown'
end
return readString(readInteger((Offset * 4) + readInteger(STable))+16, Length)
end
function StringGetter(Address,listbox)
strings_add(listbox,GetString(Address))
end
function GetBaseTables()
if BaseEntityTable == nil then
DebugLog("-Scanning for the base entity table")
local EntAOB = strings_getString(AOBScan(BaseEntityAoB),0)
if EntAOB == nil or EntAOB == "" then
DebugLog("!Error: Base entity table not found")
return false
end
BaseEntityTable = getAddress('[[' .. EntAOB .. '+4]]')
end
if STable == nil then
DebugLog("-Scanning for the base string table")
local StringPoint = strings_getString(AOBScan(StringPointAoB),0)
if StringPoint == nil or StringPoint == "" then
DebugLog("!Error: Base string table not found")
return false
end
STable = getAddress('[' .. StringPoint .. '+5]+0')
end
return true
end
function PopulateDenData()
if CheckEnabled('bSpawnModLoaded') == false or CheckVariable(DenCount) == false then return end
DebugLog("@Function: PopulateDenData()")
local iNewCount = 0; local iTotalCount = 0
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local address = getAddress(offset .. "+244")
local count = readInteger(address)
iTotalCount = iTotalCount + 1
if DenData['count'][offset] == nil then
iNewCount = iNewCount + 1
DenData['count'][offset] = count
end
end
if iNewCount > 0 then
DebugLog("-Den data populated with " .. iNewCount .. " out of " .. iTotalCount .. " added with total of " .. getn(DenData['count']) .. " entries")
end
end
function RestoreDens()
if CheckEnabled('bSpawnModLoaded') == false or (CheckVariable(DenCount) == false and CheckVariable(EnListCount) == false) then return end
DebugLog("@Function: RestoreDens()")
if DenCount ~= nil and DenCount > 0 and getn(DenData['count']) > 0 then
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local aKillCount = getAddress(offset .. "+268")
local aSpawnCount = getAddress(offset .. "+244")
if DenData['count'][offset] ~= nil then
writeInteger(aSpawnCount, DenData['count'][offset])
end
writeInteger(aKillCount, 0)
end
DenData['count'] = {}
end
if EnListCount ~= nil and EnListCount > 0 and getn(DenData['spawn']) > 0 then
for Address,Spawn in pairs(DenData['spawn']) do
writeInteger(Address,Spawn)
end
DenData['spawn'] = {}
end
DebugLog("-Den original states restored")
beep()
end
function FindDens()
if CheckEnabled('bSpawnModLoaded') == false then return end
DebugLog("@Function: FindDens()")
if GetBaseTables() == false then return end
if BaseDen == nil then
DebugLog("-Scanning for the base den tables")
for i=0,9000 do
if GetString(readInteger(BaseEntityTable+(i*4)),90) == "Default__PopulationOpportunityDen" then
BaseDen = readInteger(readInteger(BaseEntityTable+(i*4)))
DebugLog("-PopulationOpportunityDen Found")
break
end
end
end
DebugLog("-Scanning the base den table for dens")
DenResults = ScanForItDword(BaseDen)
DenCount = foundlist_getCount(DenResults) - 1
if DenCount < 1 then
DebugLog("!Error: Couldn't find any dens")
DenCount = 0
elseif DenCount > 5000 then
DebugLog("!Error: Too many dens found (" .. DenCount .. ")")
DenCount = 0
else
DebugLog("-Found " .. DenCount .. " dens")
beep()
end
end
function KillReset()
if CheckEnabled('bSpawnModLoaded') == false then return end
if DenCount == nil then FindDens() end
if CheckVariable(DenCount) == false then return end
DebugLog("@Function: KillReset()")
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local address = getAddress(offset .. "+268")
writeInteger(address, 0)
end
DebugLog("-Den kill counter reset")
beep()
end
function MaxKills()
if CheckEnabled('bSpawnModLoaded') == false then return end
if DenCount == nil then FindDens() end
if CheckVariable(DenCount) == false then return end
DebugLog("@Function: Max Kills()")
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local address = getAddress(offset .. "+268")
writeInteger(address, 255)
end
DebugLog("-Dens are now at maxed kills")
beep()
end
function MaxUp()
if CheckEnabled('bSpawnModLoaded') == false then return end
if DenCount == nil then FindDens() end
if CheckVariable(DenCount) == false then return end
PopulateDenData()
DebugLog("@Function: MaxUp()")
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local address = getAddress(offset .. "+244")
local CurVal = readInteger(address)
writeInteger(address,CurVal + 1)
end
DebugLog("-Den spawn max increased")
beep()
end
function MaxDown()
if CheckEnabled('bSpawnModLoaded') == false then return end
if DenCount == nil then FindDens() end
if CheckVariable(DenCount) == false then return end
PopulateDenData()
DebugLog("@Function: DenMaxDown()")
for i=1,DenCount do
local offset = foundlist_getAddress(DenResults,i)
local address = getAddress(offset .. "+244")
local CurVal = readInteger(address)
if CurVal > 1 then
writeInteger(address,CurVal - 1)
end
end
DebugLog("-Den spawn max decreased")
beep()
end
function VermiSwapper()
if CheckEnabled('bSpawnModLoaded') == false then return end
DebugLog("@Function: VermiSwapper()")
if GetBaseTables() == false then return end
local BaseEntityAddress = 0
if BaseEnList == nil then
DebugLog("-Scanning for the base population tables")
for i=0,9000 do
BaseEntityAddress = readInteger(BaseEntityTable+(i*4))
if GetString(BaseEntityAddress, 90) == "Default__WillowPopulationDefinition" then
DebugLog("-WillowPopulationDefinition Found")
BaseEnList = readInteger(BaseEntityAddress)
break
end
end
end
DebugLog("-Scanning the base Population Definition table")
local vResults = ScanForItDword(BaseEnList)
local vCount = foundlist_getCount(vResults) - 1
local vFound = 0
local vMorphOffset = {}
for i=1,vCount do
local vAddress = foundlist_getAddress(vResults,i)
local vName = GetString(getAddress(vAddress))
if vName == "PopDef_BugMorphAdult" or vName == "PopDef_BugMorphRaid" then
DebugLog("-Group: "..vName.." Found")
local vCounter = readInteger(getAddress(vAddress .. '+44'))
for x=0,vCounter-1 do
local vOffset = readInteger(getAddress(vAddress .. '+40'))+(40*x)
local vCheck = GetString(readInteger(readInteger(vOffset)+172))
if (vName == "PopDef_BugMorphAdult" and vCheck == "PawnBalance_BugMorphAdult") or (vName == "PopDef_BugMorphRaid" and vCheck == "PawnBalance_BugMorphRaid") then
DebugLog("-Spawn: " .. vCheck .. " Found")
vFound = vFound + 1
vMorphOffset[string.sub(vCheck,13)] = vOffset
end
if vFound == 2 then break end
end
end
end
if vFound ~= 2 then
DebugLog("!Error: Only " .. vFound .. " out of 2 Varkid Tables found")
return
end
if DenData['spawn'][vMorphOffset['BugMorphAdult']] == nil then
DenData['spawn'][vMorphOffset['BugMorphAdult']] = readInteger(vMorphOffset['BugMorphAdult'])
DebugLog("-DenData: PawnBalance_BugMorphAdult ("..Dec2Hex(vMorphOffset['BugMorphAdult'])..") cached ("..Dec2Hex(readInteger(vMorphOffset['BugMorphAdult']))..")")
end
writeInteger(vMorphOffset['BugMorphAdult'],readInteger(vMorphOffset['BugMorphRaid']))
DebugLog("-PawnBalance_BugMorphAdult ("..Dec2Hex(vMorphOffset['BugMorphAdult'])..") swapped with PawnBalance_BugMorphRaid ("..Dec2Hex(readInteger(vMorphOffset['BugMorphRaid']))..")")
beep()
end
function EnGenerateClick(sender)
if CheckEnabled('bSpawnModLoaded') == false then return end
DebugLog("@Function: EnGenerateClick()")
if GetBaseTables() == false then return end
SwapClear()
local Finder = 0
local BaseEntityAddress = 0
if BaseEnList == nil or BaseEnemy == nil or BasePointDef == nil then
DebugLog("-Scanning for the base population tables")
for i=0,9000 do
BaseEntityAddress = readInteger(BaseEntityTable+(i*4))
if GetString(BaseEntityAddress, 90) == "Default__WillowPopulationDefinition" then
DebugLog("-WillowPopulationDefinition Found")
Finder = Finder + 1
BaseEnList = readInteger(BaseEntityAddress)
elseif GetString(BaseEntityAddress, 90) == "Default__PopulationFactoryBalancedAIPawn" then
DebugLog("-PopulationFactoryBalancedAIPawn Found")
Finder = Finder + 1
BaseEnemy = readInteger(BaseEntityAddress)
elseif GetString(BaseEntityAddress, 90) == "Default__WillowPopulationPoint" then
DebugLog("-WillowPopulationPoint Found")
Finder = Finder + 1
BasePointDef = readInteger(BaseEntityAddress)
elseif GetString(BaseEntityAddress, 90) == "Default__PopulationOpportunityDen" then
DebugLog("-PopulationOpportunityDen Found")
BaseDen = readInteger(BaseEntityAddress)
elseif GetString(BaseEntityAddress, 90) == "Default__ItemPoolDefinition" then
DebugLog("-ItemPoolDefinition Found")
BaseItemPool = readInteger(BaseEntityAddress)
end
if Finder == 3 then break end
end
if Finder ~= 3 then
DebugLog("!Error: Only " .. Finder .. " out of 3 Population Tables found")
return
end
end
DebugLog("-Scanning the base Population Point table")
PointResults = ScanForItDword(BasePointDef)
PointCount = foundlist_getCount(PointResults) - 1
for i=1,PointCount do
local PointOffset = foundlist_getAddress(PointResults,i)
local PointAddress = getAddress(PointOffset)+476
writeInteger(PointAddress,0)
end
DebugLog("-Scanning the base Population Definition table")
EnListResults = ScanForItDword(BaseEnList)
EnListCount = foundlist_getCount(EnListResults) - 1
local EnListItems = listbox_getItems(Swapper_EnGroup)
strings_clear(EnListItems)
for i=1,EnListCount do
local EnListOffset = foundlist_getAddress(EnListResults,i)
local EnListAddress = getAddress(EnListOffset)
StringGetter(EnListAddress,EnListItems)
end
DebugLog("-Scanning the base Pawn Population table")
EnemyResults = ScanForItDword(BaseEnemy)
EnemyCount = foundlist_getCount(EnemyResults) - 1
local EnemyItems = listbox_getItems(Swapper_EnSwap)
strings_clear(EnemyItems)
for i=1,EnemyCount do
local EnemyOffset = foundlist_getAddress(EnemyResults,i)
local EnemyAddress = readInteger(getAddress(EnemyOffset .. "+AC"))
StringGetter(EnemyAddress,EnemyItems)
end
DebugLog("-Scanning finished")
end
function EnGroupDblClick(sender)
if CheckEnabled('bSpawnModLoaded') == false then return end
local EnListTable = listbox_getItems(Swapper_EnList)
strings_clear(EnListTable)
EnGroupIndex = listbox_getItemIndex(sender)
local EnAddr = foundlist_getAddress(EnListResults,EnGroupIndex + 1)
local EnCounter = readInteger(getAddress(EnAddr .. '+44'))
for i=0,EnCounter-1 do
local EnCheck = GetString(readInteger(readInteger(getAddress(EnAddr .. '+40'))+(40*i)))
if EnCheck == "PopulationFactoryWillowVehicle" then
strings_add(EnListTable,"Vehicle")
else
local EnSlot = readInteger(readInteger(readInteger(getAddress(EnAddr .. '+40'))+(40*i))+172)
StringGetter(EnSlot,EnListTable)
end
end
end
function EnSwapDblClick(sender)
if CheckEnabled('bSpawnModLoaded') == false then return end
local current = listbox_getItemIndex(sender)
local Enlist = listbox_getItemIndex(Swapper_EnList)
if current < 0 or Enlist < 0 then return end
DebugLog("@Function: EnSwapDblClick()")
local EnListTable = listbox_getItems(Swapper_EnList)
local EnSwapTable = listbox_getItems(sender)
local EnSwapAddr = getAddress(foundlist_getAddress(EnemyResults,current + 1))
local EnAddr = foundlist_getAddress(EnListResults,EnGroupIndex + 1)
local EnReciever = readInteger(getAddress(EnAddr .. '+40'))+(40*Enlist)
local OldEnListString = GetString(readInteger(readInteger(readInteger(getAddress(EnAddr .. '+40'))+(40*Enlist))+172))
if DenData['spawn'][EnReciever] == nil then
DenData['spawn'][EnReciever] = readInteger(EnReciever)
DebugLog("-DenData: "..OldEnListString.." ("..Dec2Hex(EnReciever)..") cached ("..Dec2Hex(readInteger(EnReciever))..")")
end
writeInteger(EnReciever,EnSwapAddr)
local NewEnListString = GetString(readInteger(readInteger(readInteger(getAddress(EnAddr .. '+40'))+(40*Enlist))+172))
strings_setString(EnListTable, Enlist, NewEnListString)
DebugLog("-"..OldEnListString.." ("..Dec2Hex(EnReciever)..") swapped with "..NewEnListString.." ("..Dec2Hex(EnSwapAddr)..")")
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Loot Splosion
]]--
SploResults = nil
SploCount = nil
function LootSplosion()
if CheckEnabled() == false then return end
DebugLog("@Function: LootSplosion()")
if GetBaseTables() == false then return end
if BaseItemPool == nil then
DebugLog("-Scanning for the base item pool")
for i=0,9000 do
if GetString(readInteger(BaseEntityTable+(i*4)),90) == "Default__ItemPoolDefinition" then
BaseItemPool = readInteger(readInteger(BaseEntityTable+(i*4)))
DebugLog("-Base item pool found")
break
end
end
end
if BaseItemPool == nil then
DebugLog("!Error: Base item pool not found")
return
end
if SploResults == nil or SploCount == nil then
DebugLog("-Scanning base item pools")
SploResults = ScanForItDword(BaseItemPool)
SploCount = foundlist_getCount(SploResults) - 1
DebugLog("-Scan Results: Found " .. SploCount .. " items")
end
local iCount = 0
for i=1,SploCount do
local offset = foundlist_getAddress(SploResults,i)
local address = getAddress(offset)
if readFloat(address+92) == 1 then
iCount = iCount + 1
writeFloat(address+92,2.4)
end
end
DebugLog("-Finished increasing "..iCount.." base item pools")
beep()
end
function SploDisable()
if CheckEnabled() == false then return end
DebugLog("@Function: SploDisable()")
if GetBaseTables() == false then return end
if BaseItemPool == nil then
DebugLog("-Scanning for the base item pool")
for i=0,9000 do
if GetString(readInteger(BaseEntityTable+(i*4)),90) == "Default__ItemPoolDefinition" then
BaseItemPool = readInteger(readInteger(BaseEntityTable+(i*4)))
DebugLog("-Base item pool found")
break
end
end
end
if BaseItemPool == nil then
DebugLog("!Error: Base item pool not found")
return
end
if SploResults == nil or SploCount == nil then
DebugLog("-Scanning base item pools")
SploResults = ScanForItDword(BaseItemPool)
SploCount = foundlist_getCount(SploResults) - 1
DebugLog("-Scan Results: Found " .. SploCount .. " items")
end
local iCount = 0
for i=1,SploCount do
local offset = foundlist_getAddress(SploResults,i)
local address = getAddress(offset)
if round(readFloat(address+92),1) == 2.4 then
iCount = iCount + 1
writeFloat(address+92,1)
end
end
DebugLog("-Finished returning "..iCount.." base item pools to original values")
end
--[[ -------------------------------------------------------------------- ]]--
--[[
- Toggle God
]]--
function ToggleGodMode(ToggleState)
if CheckEnabled() == false then return end
DebugLog("@Function: ToggleGodMode()")
local GodModeAddr = addresslist_getMemoryRecordByDescription(AddressList,'God Mode (LUA)')
local HealthGodAddr = addresslist_getMemoryRecordByDescription(AddressList,'Health Switch [Normal=5; God=6]')
local ShieldGodAddr = addresslist_getMemoryRecordByDescription(AddressList,'Shield Switch [Normal=5; God=6]')
local HealthGodState = tonumber(memoryrecord_getValue(HealthGodAddr))
local ShieldGodState = tonumber(memoryrecord_getValue(ShieldGodAddr))
if CheckVariable(HealthGodState) == false or (HealthGodState ~= 5 and HealthGodState ~= 6) then
DebugLog("!Error: Health and shield god switch offsets are incorrect")
return
end
if ToggleState == nil then
ToggleState = 6
if HealthGodState == 6 then ToggleState = 5 end
end
if ToggleState == 5 then DebugLog("-God mode disabled") end
if ToggleState == 6 then DebugLog("-God mode enabled") end
memoryrecord_setValue(HealthGodAddr,ToggleState)
if ToggleState == 5 then memoryrecord_unfreeze(HealthGodAddr) end
if ToggleState == 6 then memoryrecord_freeze(HealthGodAddr) end
if ShieldGodStat ~= 0 and ShieldGodState ~= 33 then
memoryrecord_setValue(ShieldGodAddr,ToggleState)
if ToggleState == 5 then memoryrecord_unfreeze(ShieldGodAddr) end
if ToggleState == 6 then memoryrecord_freeze(ShieldGodAddr) end
end
end