62
"Read the Table Extras on the bottom right"
00CA00
1
48
"Engines Information"
800080
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-27
Author : Sigan
This script gets thrusters information
}
define(address,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+433)
define(bytes,F3 0F 10 86 B0 01 00 00)
[ENABLE]
{$lua}
if syntaxcheck then return end
if process and readInteger(process) ~= 0 then
mono_initialize()
LaunchMonoDataCollector()
else
local msg = 'No process detected.'
print(msg)
error(msg)
end
{$asm}
assert(address,bytes)
alloc(newmem,$1000,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+433)
globalalloc(_Engines,4)
label(setForce)
label(setFuel)
label(code)
label(return)
newmem:
code:
mov [_Engines],rsi
cmp [setForce],1
jne @f
mov [rsi+1B0],(float)75
@@:
cmp [setFuel],1
jne @f
mov [rsi+1B4],#0
@@:
movss xmm0,[rsi+000001B0]
jmp return
setForce:
dd 0
setFuel:
dd 0
address:
jmp newmem
nop
nop
nop
return:
registersymbol(setForce)
registersymbol(setFuel)
[DISABLE]
address:
db bytes
// movss xmm0,[rsi+000001B0]
unregistersymbol(setForce)
unregistersymbol(setFuel)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+433
1D5BABDB51C: 48 05 00 FE FF FF - add rax,FFFFFE00
1D5BABDB522: 48 8B 95 E0 FD FF FF - mov rdx,[rbp-00000220]
1D5BABDB529: 48 89 95 00 FE FF FF - mov [rbp-00000200],rdx
1D5BABDB530: 48 63 95 E8 FD FF FF - movsxd rdx,dword ptr [rbp-00000218]
1D5BABDB537: 89 95 08 FE FF FF - mov [rbp-000001F8],edx
1D5BABDB53D: 48 8D 10 - lea rdx,[rax]
1D5BABDB540: 48 8D 64 24 00 - lea rsp,[rsp+00]
1D5BABDB545: 90 - nop
1D5BABDB546: 49 BB A0 4E 30 D7 D5 01 00 00 - mov r11,UnityEngine:Vector3:op_Multiply
1D5BABDB550: 41 FF D3 - call r11
// ---------- INJECTING HERE ----------
1D5BABDB553: F3 0F 10 86 B0 01 00 00 - movss xmm0,[rsi+000001B0]
// ---------- DONE INJECTING ----------
1D5BABDB55B: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
1D5BABDB55F: 48 8B CD - mov rcx,rbp
1D5BABDB562: 48 81 C1 10 FE FF FF - add rcx,FFFFFE10
1D5BABDB569: F2 0F 10 D0 - movsd xmm2,xmm0
1D5BABDB56D: F2 0F 5A D2 - cvtsd2ss xmm2,xmm2
1D5BABDB571: 48 8B C5 - mov rax,rbp
1D5BABDB574: 48 05 20 FE FF FF - add rax,FFFFFE20
1D5BABDB57A: 48 8B 95 F0 FD FF FF - mov rdx,[rbp-00000210]
1D5BABDB581: 48 89 95 20 FE FF FF - mov [rbp-000001E0],rdx
1D5BABDB588: 48 63 95 F8 FD FF FF - movsxd rdx,dword ptr [rbp-00000208]
}
54
"Max Thrust"
FF8000
Auto Assembler Script
[ENABLE]
setForce:
dd 1
[DISABLE]
setForce:
dd 0
Toggle Activation
0
55
"Engines Use Zero Fuel (Must first have 'a' fuel pod installed - if it's lost, engines will still work)"
FF8000
Auto Assembler Script
[ENABLE]
setFuel:
dd 1
[DISABLE]
setFuel:
dd 0
Toggle Activation
0
59
"Jump Thrusters Always Charged"
FF8000
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-27
Author : Sigan
This script sets Jump Thrusters charge to max
}
define(JUMPJETS,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+27e)
define(bytes,F3 0F 10 86 BC 01 00 00)
[ENABLE]
assert(JUMPJETS,bytes)
alloc(newmem,$1000,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+27e)
label(code)
label(return)
newmem:
code:
mov [rsi+1BC],(float)100
movss xmm0,[rsi+000001BC]
jmp return
JUMPJETS:
jmp newmem
nop
nop
nop
return:
[DISABLE]
JUMPJETS:
db bytes
// movss xmm0,[rsi+000001BC]
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+27e
1D5BABDB366: 49 BB 80 1D BC BA D5 01 00 00 - mov r11,Assets.Nimbatus.Scripts.ResourceCollection:ResourceHub:HasResource
1D5BABDB370: 41 FF D3 - call r11
1D5BABDB373: 85 C0 - test eax,eax
1D5BABDB375: 0F 84 D5 03 00 00 - je Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+630
1D5BABDB37B: 0F B6 86 B8 01 00 00 - movzx eax,byte ptr [rsi+000001B8]
1D5BABDB382: 85 C0 - test eax,eax
1D5BABDB384: 0F 84 0E 01 00 00 - je Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+378
1D5BABDB38A: F3 0F 10 05 2E 09 00 00 - movss xmm0,[Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+ba0]
1D5BABDB392: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
1D5BABDB396: F2 0F 11 85 D0 FD FF FF - movsd [rbp-00000230],xmm0
// ---------- INJECTING HERE ----------
1D5BABDB39E: F3 0F 10 86 BC 01 00 00 - movss xmm0,[rsi+000001BC]
// ---------- DONE INJECTING ----------
1D5BABDB3A6: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
1D5BABDB3AA: F2 0F 11 85 C8 FD FF FF - movsd [rbp-00000238],xmm0
1D5BABDB3B2: 48 8D 6D 00 - lea rbp,[rbp+00]
1D5BABDB3B6: 49 BB E0 8D B7 BA D5 01 00 00 - mov r11,UnityEngine:Time:get_fixedDeltaTime
1D5BABDB3C0: 41 FF D3 - call r11
1D5BABDB3C3: F3 0F 5A D0 - cvtss2sd xmm2,xmm0
1D5BABDB3C7: F2 0F 10 85 D0 FD FF FF - movsd xmm0,[rbp-00000230]
1D5BABDB3CF: F2 0F 10 8D C8 FD FF FF - movsd xmm1,[rbp-00000238]
1D5BABDB3D7: F3 0F 10 1D D1 08 00 00 - movss xmm3,[Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Thruster:Thruster:FixedUpdate+b90]
1D5BABDB3DF: F3 0F 5A DB - cvtss2sd xmm3,xmm3
}
49
"Main Pointer"
1
808080
Array of byte
8
_Engines
0
50
"Force"
008000
Float
+1b0
53
"FuelPerSecond"
008000
Float
+1b4
60
"_chargeAmount"
008000
Float
+1bc
14
"Infinite Battery Charge"
FF8000
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-26
Author : Sigan
This script makes battery recharge rapidly
}
// could do aobscanregion(BATTERY,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Batteries:Battery:GetRechargePerSecond,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Batteries:Battery:GetRechargePerSecond+100,F3 0F 10 80 9C 01 00 00)
define(BATTERY,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Batteries:Battery:GetRechargePerSecond+b)
define(bytes,F3 0F 10 80 9C 01 00 00)
[ENABLE]
{$lua}
if syntaxcheck then return end
if process and readInteger(process) ~= 0 then
mono_initialize()
LaunchMonoDataCollector()
else
local msg = 'No process detected.'
print(msg)
error(msg)
end
{$asm}
alloc(newmem,$1000,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.Batteries:Battery:GetRechargePerSecond+b)
label(_Battery)
label(code)
label(return)
newmem:
code:
mov [_Battery],rax
mov [rax+19C],(float)9999
movss xmm0,[rax+0000019C]
jmp return
align 10
_Battery:
dd 0
BATTERY:
jmp newmem
nop
nop
nop
return:
registersymbol(_Battery)
registersymbol(BATTERY)
[DISABLE]
BATTERY:
db bytes
// movss xmm0,[rax+0000019C]
unregistersymbol(_Battery)
unregistersymbol(BATTERY)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 2D28BFBE34B
2D28BFBE335: 00 00 - add [rax],al
2D28BFBE337: 00 00 - add [rax],al
2D28BFBE339: 00 00 - add [rax],al
2D28BFBE33B: 00 00 - add [rax],al
2D28BFBE33D: 00 00 - add [rax],al
2D28BFBE33F: 00 48 83 - add [rax-7D],cl
2D28BFBE342: EC - in al,dx
2D28BFBE343: 08 48 89 - or [rax-77],cl
2D28BFBE346: 0C 24 - or al,24
2D28BFBE348: 48 8B C1 - mov rax,rcx
// ---------- INJECTING HERE ----------
2D28BFBE34B: F3 0F 10 80 9C 01 00 00 - movss xmm0,[rax+0000019C]
// ---------- DONE INJECTING ----------
2D28BFBE353: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
2D28BFBE357: F2 0F 5A C0 - cvtsd2ss xmm0,xmm0
2D28BFBE35B: 48 83 C4 08 - add rsp,08
2D28BFBE35F: C3 - ret
2D28BFBE360: 01 04 01 - add [rcx+rax],eax
2D28BFBE363: 00 04 02 - add [rdx+rax],al
2D28BFBE366: 00 00 - add [rax],al
2D28BFBE368: 00 00 - add [rax],al
2D28BFBE36A: 00 00 - add [rax],al
2D28BFBE36C: 00 00 - add [rax],al
}
12
"Recharge Rate"
008000
Float
_Battery
19C
16
"InfiniteFuel"
FF8000
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-26
Author : Sigan
This script makes fuel recharge rapidly
}
define(FUEL,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.FuelTanks:FuelTank:GetRechargePerSecond+b)
define(bytes,F3 0F 10 80 9C 01 00 00)
[ENABLE]
{$lua}
if syntaxcheck then return end
if process and readInteger(process) ~= 0 then
mono_initialize()
LaunchMonoDataCollector()
else
local msg = 'No process detected.'
print(msg)
error(msg)
end
{$asm}
alloc(newmem,$1000,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.FuelTanks:FuelTank:GetRechargePerSecond+b)
label(_FuelTanks)
label(code)
label(return)
newmem:
code:
mov [_FuelTanks],rax
mov [rax+19C],(float)9999
movss xmm0,[rax+0000019C]
jmp return
align 10
_FuelTanks:
dd 0
FUEL:
jmp newmem
nop
nop
nop
return:
registersymbol(FUEL)
registersymbol(_FuelTanks)
[DISABLE]
FUEL:
db bytes
// movss xmm0,[rax+0000019C]
unregistersymbol(FUEL)
unregistersymbol(_FuelTanks)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 29C0001E02B
29C0001E015: 00 00 - add [rax],al
29C0001E017: 00 00 - add [rax],al
29C0001E019: 00 00 - add [rax],al
29C0001E01B: 00 00 - add [rax],al
29C0001E01D: 00 00 - add [rax],al
29C0001E01F: 00 48 83 - add [rax-7D],cl
29C0001E022: EC - in al,dx
29C0001E023: 08 48 89 - or [rax-77],cl
29C0001E026: 0C 24 - or al,24
29C0001E028: 48 8B C1 - mov rax,rcx
// ---------- INJECTING HERE ----------
29C0001E02B: F3 0F 10 80 9C 01 00 00 - movss xmm0,[rax+0000019C]
// ---------- DONE INJECTING ----------
29C0001E033: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
29C0001E037: F2 0F 5A C0 - cvtsd2ss xmm0,xmm0
29C0001E03B: 48 83 C4 08 - add rsp,08
29C0001E03F: C3 - ret
29C0001E040: 01 04 01 - add [rcx+rax],eax
29C0001E043: 00 04 02 - add [rdx+rax],al
29C0001E046: 00 00 - add [rax],al
29C0001E048: 00 00 - add [rax],al
29C0001E04A: 00 00 - add [rax],al
29C0001E04C: 00 00 - add [rax],al
}
17
"Recharge Rate"
008000
Float
_FuelTanks
19C
61
"Instant Factory Recharge"
FF8000
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-28
Author : Sigan
This script sets factory blocks recharge time to zero
}
define(FACTORY,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.MechanicalParts:FactoryPart:UpdateCooldown+49)
define(bytes,F3 0F 11 AE C4 01 00 00)
[ENABLE]
{$lua}
if syntaxcheck then return end
if process and readInteger(process) ~= 0 then
mono_initialize()
LaunchMonoDataCollector()
else
local msg = 'No process detected.'
print(msg)
error(msg)
end
{$asm}
alloc(newmem,$1000,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.MechanicalParts:FactoryPart:UpdateCooldown+49)
label(_Factory)
label(code)
label(return)
newmem:
code:
mov [_Factory],rsi
// movss [rsi+000001C4],xmm5 - ORIGINAL CODE
mov [rsi+1C4],(float)0.5
jmp return
align 10
_Factory:
dd 0
FACTORY:
jmp newmem
nop
nop
nop
return:
registersymbol(_Factory)
registersymbol(FACTORY)
[DISABLE]
FACTORY:
db bytes
// movss [rsi+000001C4],xmm5
unregistersymbol(_Factory)
unregistersymbol(FACTORY)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts.MechanicalParts:FactoryPart:UpdateCooldown+49
2818030BC7C: 66 90 - nop
2818030BC7E: 49 BB A0 70 2F 80 81 02 00 00 - mov r11,Assets.Nimbatus.Scripts.WorldObjects.Items.DroneParts:DronePartHelper:GetNumberOfDroneParts
2818030BC88: 41 FF D3 - call r11
2818030BC8B: FF C8 - dec eax
2818030BC8D: F3 0F 2A C0 - cvtsi2ss xmm0,eax
2818030BC91: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
2818030BC95: F3 0F 10 8E C0 01 00 00 - movss xmm1,[rsi+000001C0]
2818030BC9D: F3 0F 5A C9 - cvtss2sd xmm1,xmm1
2818030BCA1: F2 0F 59 C1 - mulsd xmm0,xmm1
2818030BCA5: F2 0F 5A E8 - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
2818030BCA9: F3 0F 11 AE C4 01 00 00 - movss [rsi+000001C4],xmm5
// ---------- DONE INJECTING ----------
2818030BCB1: 48 8B 75 F8 - mov rsi,[rbp-08]
2818030BCB5: 48 8D 65 00 - lea rsp,[rbp+00]
2818030BCB9: 5D - pop rbp
2818030BCBA: C3 - ret
2818030BCBB: 00 00 - add [rax],al
2818030BCBD: 00 00 - add [rax],al
2818030BCBF: 00 01 - add [rcx],al
2818030BCC1: 04 02 - add al,02
2818030BCC3: 05 04 03 01 50 - add eax,50010304
2818030BCC8: 00 00 - add [rax],al
}
21
"Main Pointer"
1
808080
Array of byte
8
_Factory
0
22
"CoolDownPerPart"
008000
Float
+1c0
23
"TotalCoolDown"
008000
Float
+1c4
24
"Barely tested (Don't touch...)"
4080FF
1
10
"Always have resources"
C0C0C0
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-26
Author : Sigan
This script does blah blah blah
}
define(address,Assets.Nimbatus.GUI.WeaponWorkshop.Scripts.TechTree:UnlockTech:OnClick+17)
define(bytes,0F B6 46 48 85 C0)
[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,29C3C7E5107)
label(code)
label(return)
newmem:
code:
mov [rsi+48],#1
movzx eax,byte ptr [rsi+48]
test eax,eax
jmp return
address:
jmp newmem
nop
return:
[DISABLE]
address:
db bytes
// movzx eax,byte ptr [rsi+48]
// test eax,eax
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 29C3C7E5107
29C3C7E50EC: 00 00 - add [rax],al
29C3C7E50EE: 00 00 - add [rax],al
29C3C7E50F0: 55 - push rbp
29C3C7E50F1: 48 8B EC - mov rbp,rsp
29C3C7E50F4: 48 83 EC 30 - sub rsp,30
29C3C7E50F8: 48 89 75 F8 - mov [rbp-08],rsi
29C3C7E50FC: 48 8B F1 - mov rsi,rcx
29C3C7E50FF: 0F B6 46 49 - movzx eax,byte ptr [rsi+49]
29C3C7E5103: 85 C0 - test eax,eax
29C3C7E5105: 74 24 - je Assets.Nimbatus.GUI.WeaponWorkshop.Scripts.TechTree:UnlockTech:OnClick+3b
// ---------- INJECTING HERE ----------
29C3C7E5107: 0F B6 46 48 - movzx eax,byte ptr [rsi+48]
29C3C7E510B: 85 C0 - test eax,eax
// ---------- DONE INJECTING ----------
29C3C7E510D: 74 1C - je Assets.Nimbatus.GUI.WeaponWorkshop.Scripts.TechTree:UnlockTech:OnClick+3b
29C3C7E510F: 48 8B 46 38 - mov rax,[rsi+38]
29C3C7E5113: 48 8B C8 - mov rcx,rax
29C3C7E5116: 83 38 00 - cmp dword ptr [rax],00
29C3C7E5119: 48 8D 64 24 00 - lea rsp,[rsp+00]
29C3C7E511E: 49 BB 45 51 7E 3C 9C 02 00 00 - mov r11,0000029C3C7E5145
29C3C7E5128: 41 FF D3 - call r11
29C3C7E512B: 48 8B 75 F8 - mov rsi,[rbp-08]
29C3C7E512F: 48 8D 65 00 - lea rsp,[rbp+00]
29C3C7E5133: 5D - pop rbp
}
2
"Find Collection"
C0C0C0
Auto Assembler Script
{ Game : Nimbatus.exe
Version:
Date : 2018-10-25
Author : Sigan
This script does blah blah blah
}
[ENABLE]
aobscan(INJECT,F2 0F 11 40 10 49 63) // should be unique
alloc(newmem,$1000,2509B7A0970)
globalalloc(_Yellow,4)
label(code)
label(return)
newmem:
code:
mov [_Yellow],rax
movsd [rax+10],xmm0
jmp return
INJECT:
jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db F2 0F 11 40 10
unregistersymbol(INJECT)
dealloc(_Yellow)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 2509B7A0970
2509B7A0947: 83 F8 01 - cmp eax,01
2509B7A094A: 0F 85 39 00 00 00 - jne System.Collections.Generic:Dictionary`2:TryInsert+199
2509B7A0950: 49 8B 47 18 - mov rax,[r15+18]
2509B7A0954: 48 63 CE - movsxd rcx,esi
2509B7A0957: 39 48 18 - cmp [rax+18],ecx
2509B7A095A: 0F 86 B4 03 00 00 - jbe System.Collections.Generic:Dictionary`2:TryInsert+524
2509B7A0960: 48 6B C9 18 - imul rcx,rcx,18
2509B7A0964: 48 03 C1 - add rax,rcx
2509B7A0967: 48 83 C0 20 - add rax,20
2509B7A096B: F2 0F 10 45 98 - movsd xmm0,[rbp-68]
// ---------- INJECTING HERE ----------
2509B7A0970: F2 0F 11 40 10 - movsd [rax+10],xmm0
// ---------- DONE INJECTING ----------
2509B7A0975: 49 63 47 44 - movsxd rax,dword ptr [r15+44]
2509B7A0979: FF C0 - inc eax
2509B7A097B: 41 89 47 44 - mov [r15+44],eax
2509B7A097F: B8 01 00 00 00 - mov eax,00000001
2509B7A0984: E9 7F 02 00 00 - jmp System.Collections.Generic:Dictionary`2:TryInsert+418
2509B7A0989: 0F B6 45 90 - movzx eax,byte ptr [rbp-70]
2509B7A098D: 83 F8 02 - cmp eax,02
2509B7A0990: 0F 84 94 02 00 00 - je System.Collections.Generic:Dictionary`2:TryInsert+43a
2509B7A0996: 33 C0 - xor eax,eax
2509B7A0998: E9 6B 02 00 00 - jmp System.Collections.Generic:Dictionary`2:TryInsert+418
}
3
"Main Pointer"
4 Bytes
_Yellow
0
4
"Yellow"
Double
+10
8
"Red"
Double
+28
7
"Blue"
Double
+40
9
"Green"
Double
+58
_Yellow
2D283AB0030
getThrust
1D581650000
_Engines
1CA305D0000
_JumpJets
1C303BE0010
**Use at your own risk**
*I'm not responsible for corrupting your saves, or ruining your game. Create backups before using any cheats if you're worried about anything.*
Made for Nimbatus v0.5.7
Purple = Source script for other scripts
- won't make modifications by itself
- Gives access to children pointers
Blue = Script that makes a modification
- Activate these to activate the cheats
Green = Pointer to values that scripts can modify
- Some can be modified when cheats aren't active
Cheats should be safe to activate at any time, from the time the title screen pops up or while playing a level.
Grey = Main pointer for child pointers
- don't pay attention to this or change it
Orange = Don't mess with these... I was testing stuff and haven't bothered to go back and update them. They're very likely to crash your game.