1
"Resource Points"
400080
Auto Assembler Script
[ENABLE]
aobscanmodule(ResourceAOB,F1_2018.exe,8B 58 70 33 58 68 48)
alloc(ResourceMem,128,"F1_2018.exe"+4437770)
label(Return)
label(Code)
label(AddCode)
label(SubtractCode)
label(AddResource)
registersymbol(AddResource)
registersymbol(ResourceAOB)
ResourceMem:
cmp dword ptr [AddResource+0C],0
je AddCode
mov ebx,[AddResource+0C]
mov [AddResource+4],0
mov [AddResource+8],0
mov [AddResource+0C],0
xor ebx,[rax+70]
mov [rax+68],ebx
jmp Code
AddCode:
cmp dword ptr [AddResource+4],0
je SubtractCode
mov ebx,[rax+70]
xor ebx,[rax+68]
add ebx,[AddResource+4]
mov [AddResource+4],0
mov [AddResource+8],0
mov [AddResource+0C],0
xor ebx,[rax+70]
mov [rax+68],ebx
jmp Code
SubtractCode:
cmp dword ptr [AddResource+8],0
je Code
mov ebx,[rax+70]
xor ebx,[rax+68]
sub ebx,[AddResource+8]
mov [AddResource+4],0
mov [AddResource+8],0
mov [AddResource+0C],0
xor ebx,[rax+70]
mov [rax+68],ebx
Code:
mov ebx,[rax+70]
xor ebx,[rax+68]
mov [AddResource],ebx
jmp Return
AddResource:
dd 0
ResourceAOB:
jmp ResourceMem
nop
Return:
[DISABLE]
ResourceAOB:
mov ebx,[rax+70]
xor ebx,[rax+68]
unregistersymbol(AddResource)
unregistersymbol(ResourceAOB)
dealloc(ResourceMem)
2
"Current Resource Points (Read Only)"
400080
4 Bytes
AddResource
3
"Add to Resource Points"
FF0000
4 Bytes
AddResource+4
4
"Subtract from Resource Points"
FF0000
4 Bytes
AddResource+8
5
"Set Resource Points to a specific amount"
FF0000
4 Bytes
AddResource+c
6
"Contract"
0080FF
Auto Assembler Script
[ENABLE]
aobscanmodule(RivalryAOB,F1_2018.exe,0F 94 55 70 8B 43 3C)
aobscanmodule(TeamGoalAOB,F1_2018.exe,8B 79 04 31 D2 4C 89 F1)
aobscanmodule(NegotiationAOB,F1_2018.exe,88 41 39 41 FF 49 04)
aobscanmodule(ReputationAOB,F1_2018.exe,F3 0F 5D 1D 46 D8 81 F7)
aobscanmodule(PrestigeAOB,F1_2018.exe,8B 71 04 66 41 0F 6E 82 64 03 00 00)
alloc(ContractMem,512,"F1_2018.exe"+3E64235)
label(ContractData)
label(SetRivalry1)
label(SetRivalry2)
label(RivalryCode)
label(RivalryReturn)
label(TeamGoalCode)
label(TeamGoalReturn)
label(NegotiationCode)
label(NegotiationReturn)
label(ReputationCode)
label(ReputationReturn)
label(PrestigeCode)
label(PrestigeReturn)
registersymbol(ContractData)
registersymbol(RivalryAOB)
registersymbol(TeamGoalAOB)
registersymbol(NegotiationAOB)
registersymbol(ReputationAOB)
registersymbol(PrestigeAOB)
ContractMem:
RivalryCode:
sete byte ptr [rbp+70]
mov eax,[rbx+3C]
cmp word ptr [rbx],100
jb SetRivalry2
SetRivalry1:
mov [ContractData],rbx
jmp RivalryReturn
SetRivalry2:
mov [ContractData+8],rbx
jmp RivalryReturn
TeamGoalCode:
mov [ContractData+10],r14
mov edi,[rcx+04]
xor edx,edx
jmp TeamGoalReturn
NegotiationCode:
mov [rcx+39],al
cmp [ContractData+18],0
jne NegotiationReturn
dec [r9+04]
jmp NegotiationReturn
ReputationCode:
push rdx
lea rdx,[rax+2]
mov [ContractData+20],rdx
movsx edx,byte ptr [rax]
mov [ContractData+28],edx
pop rdx
mov rax,[r11+00000340]
jmp ReputationReturn
PrestigeCode:
mov esi,[rcx+04]
movd xmm0,[r10+00000364]
push rdx
lea rdx,[rcx+04]
mov [ContractData+30],rdx
pop rdx
jmp PrestigeReturn
ContractData:
dd 0
RivalryAOB:
jmp RivalryCode
db 90 90
RivalryReturn:
TeamGoalAOB:
jmp TeamGoalCode
TeamGoalReturn:
NegotiationAOB:
jmp NegotiationCode
db 90 90
NegotiationReturn:
ReputationAOB-27:
jmp ReputationCode
db 90 90
ReputationReturn:
PrestigeAOB:
jmp PrestigeCode
db 90 90 90 90 90 90 90
PrestigeReturn:
[DISABLE]
RivalryAOB:
db 0F 94 55 70 8B 43 3C
TeamGoalAOB:
db 8B 79 04 31 D2
NegotiationAOB:
db 88 41 39 41 FF 49 04
ReputationAOB-27:
db 49 8B 83 40 03 00 00
PrestigeAOB:
db 8B 71 04 66 41 0F 6E 82 64 03 00 00
unregistersymbol(ContractData)
unregistersymbol(RivalryAOB)
unregistersymbol(TeamGoalAOB)
unregistersymbol(NegotiationAOB)
unregistersymbol(ReputationAOB)
unregistersymbol(PrestigeAOB)
dealloc(ContractMem)
8
"Rivalries"
0080FF
1
9
"Rivalry #1 (Teammate)"
0080FF
1
10
"Rival Name"
256:Lewis Hamilton
257:Valtteri Bottas
258:Sebastian Vettel
259:Kimi Räikkönen
260:Daniel Ricciardo
261:Max Verstappen
262:Sergio Perez
263:Esteban Ocon
264:Lance Stroll
265:Sergey Sirotkin
266:Nico Hulkenberg
267:Carlos Sainz
268:Brendon Hartley
269:Pierre Gasly
270:Romain Grosjean
271:Kevin Magnussen
272:Fernando Alonso
273:Stoffel Vandoorne
274:Marcus Ericsson
275:Charles Leclerc
0080FF
2 Bytes
ContractData
0
11
"Potential Respect"
0080FF
4 Bytes
ContractData
8
12
"Rival Points"
0080FF
4 Bytes
ContractData
3c
13
"Player Points"
0080FF
4 Bytes
ContractData
34
14
"Rivalry #2 (Not available until the game allows you to set it)"
0080FF
1
15
"Rival Name"
0:Lewis Hamilton
1:Valtteri Bottas
2:Sebastian Vettel
3:Kimi Räikkönen
4:Daniel Ricciardo
5:Max Verstappen
6:Sergio Perez
7:Esteban Ocon
8:Lance Stroll
9:Sergey Sirotkin
10:Nico Hulkenberg
11:Carlos Sainz
12:Brendon Hartley
13:Pierre Gasly
14:Romain Grosjean
15:Kevin Magnussen
16:Fernando Alonso
17:Stoffel Vandoorne
18:Marcus Ericsson
19:Charles Leclerc
0080FF
2 Bytes
ContractData+8
0
16
"Potential Respect"
0080FF
4 Bytes
ContractData+8
8
17
"Rival Points"
0080FF
4 Bytes
ContractData+8
3c
18
"Player Points"
0080FF
4 Bytes
ContractData+8
34
19
"Current Team Goal (-1 for position objectives)"
0080FF
1
20
"Objective Type"
0:Championship Points
1:Qualifying Position
2:Practice Programmes
3:Race Position
4:Clean Races
0080FF
Byte
ContractData+10
2
18
21
"Weekly Progress"
256:Lewis Hamilton
257:Valtteri Bottas
258:Sebastian Vettel
259:Kimi Räikkönen
260:Daniel Ricciardo
261:Max Verstappen
262:Sergio Perez
263:Esteban Ocon
264:Lance Stroll
265:Sergey Sirotkin
266:Nico Hulkenberg
267:Carlos Sainz
268:Brendon Hartley
269:Pierre Gasly
270:Romain Grosjean
271:Kevin Magnussen
272:Fernando Alonso
273:Stoffel Vandoorne
274:Marcus Ericsson
275:Charles Leclerc
0080FF
4 Bytes
ContractData+10
C
22
"Overall Progress"
256:Lewis Hamilton
257:Valtteri Bottas
258:Sebastian Vettel
259:Kimi Räikkönen
260:Daniel Ricciardo
261:Max Verstappen
262:Sergio Perez
263:Esteban Ocon
264:Lance Stroll
265:Sergey Sirotkin
266:Nico Hulkenberg
267:Carlos Sainz
268:Brendon Hartley
269:Pierre Gasly
270:Romain Grosjean
271:Kevin Magnussen
272:Fernando Alonso
273:Stoffel Vandoorne
274:Marcus Ericsson
275:Charles Leclerc
0080FF
4 Bytes
ContractData+10
10
23
"Required Progress"
0080FF
4 Bytes
ContractData+10
4
18
24
"Award"
0080FF
4 Bytes
ContractData+10
4
10
18
46
"Prestige (0-1000)"
0080FF
4 Bytes
ContractData+30
0
47
"Team Reputation (0-1000)"
0080FF
2 Bytes
ContractData+20
0
7
"Unlimited Contract Negotiation Attempts"
0:OFF
1:ON
FF0000
4 Bytes
ContractData+18
25
"Race"
408000
1
26
"Engine Wear (Will take a little while to activate)"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(Engine_ICE_AOB,F1_2018.exe,F3 0F 58 A3 D8 25 00 00)
aobscanmodule(Engine_MGUK_AOB,F1_2018.exe,F3 0F 58 83 E8 25 00 00)
aobscanmodule(Engine_MGUH_AOB,F1_2018.exe,F3 0F 58 83 E4 25 00 00)
aobscanmodule(Engine_ES_AOB,F1_2018.exe,F3 0F 58 A3 E0 25 00 00)
aobscanmodule(Engine_TC_AOB,F1_2018.exe,F3 0F 58 83 DC 25 00 00)
aobscanmodule(Engine_CE_AOB,F1_2018.exe,F3 41 0F 59 C0 F3 0F 58 D8 44 0F 28 44 24 20)
aobscanmodule(Engine_Gearbox_AOB1,F1_2018.exe,F3 41 0F 59 81 84 59 00 00)
aobscanmodule(Engine_Gearbox_AOB2,F1_2018.exe,F3 0F 59 C1 F3 0F 58 E8)
aobscanmodule(Engine_Gearbox_AOB3,F1_2018.exe,F3 0F 59 4C 24 20 F3 0F 58 E9)
aobscanmodule(Engine_Gearbox_AOB4,F1_2018.exe,F3 41 0F 11 80 3C 05 00 00)
alloc(EngineMem,4096,"F1_2018.exe"+ECB3CB2)
label(EngineRate)
label(Engine_ICE)
label(Engine_MGUK)
label(Engine_MGUH)
label(Engine_ES)
label(Engine_TC)
label(Engine_CE)
label(Engine_Gearbox1)
label(Engine_Gearbox2)
label(Engine_Gearbox3)
label(Engine_Gearbox4)
label(Return_ICE)
label(Return_MGUK)
label(Return_MGUH)
label(Return_ES)
label(Return_TC)
label(Return_CE)
label(Return_Gearbox1)
label(Return_Gearbox2)
label(Return_Gearbox3)
label(Return_Gearbox4)
registersymbol(EngineRate)
registersymbol(Engine_ICE_AOB)
registersymbol(Engine_MGUK_AOB)
registersymbol(Engine_MGUH_AOB)
registersymbol(Engine_ES_AOB)
registersymbol(Engine_TC_AOB)
registersymbol(Engine_CE_AOB)
registersymbol(Engine_Gearbox_AOB1)
registersymbol(Engine_Gearbox_AOB2)
registersymbol(Engine_Gearbox_AOB3)
registersymbol(Engine_Gearbox_AOB4)
EngineMem:
Engine_ICE:
mulss xmm4,[EngineRate]
addss xmm4,dword ptr [rbx+000025D8]
push rsi
lea rsi,[rbx+000025D8]
mov [EngineRate+10],rsi
lea rsi,[rbx+000025EC]
mov [EngineRate+60],rsi
pop rsi
jmp Return_ICE
Engine_MGUK:
mulss xmm0,[EngineRate]
addss xmm0,dword ptr [rbx+000025E8]
push rsi
lea rsi,[rbx+000025E8]
mov [EngineRate+20],rsi
pop rsi
jmp Return_MGUK
Engine_MGUH:
mulss xmm0,[EngineRate]
addss xmm0,dword ptr [rbx+000025E4]
push rsi
lea rsi,[rbx+000025E4]
mov [EngineRate+30],rsi
pop rsi
jmp Return_MGUH
Engine_ES:
mulss xmm4,[EngineRate]
addss xmm4,dword ptr [rbx+000025E0]
push rsi
lea rsi,[rbx+000025E0]
mov [EngineRate+40],rsi
pop rsi
jmp Return_ES
Engine_TC:
mulss xmm0,[EngineRate]
addss xmm0,dword ptr [rbx+000025DC]
push rsi
lea rsi,[rbx+000025DC]
mov [EngineRate+50],rsi
pop rsi
jmp Return_TC
Engine_CE:
mulss xmm0,xmm8
mulss xmm0,[EngineRate]
jmp Return_CE
Engine_Gearbox1:
mulss xmm0,[r9+00005984]
mulss xmm0,[EngineRate]
jmp Return_Gearbox1
Engine_Gearbox2:
mulss xmm0,xmm1
mulss xmm0,[EngineRate]
addss xmm5,xmm0
jmp Return_Gearbox2
Engine_Gearbox3:
mulss xmm1,[rsp+20]
mulss xmm1,[EngineRate]
jmp Return_Gearbox3
Engine_Gearbox4:
movss [r8+0000053C],xmm0
push rsi
lea rsi,[r8+0000053C]
mov [EngineRate+70],rsi
pop rsi
jmp Return_Gearbox4
EngineRate:
dd 3F800000
Engine_ICE_AOB:
jmp Engine_ICE
db 90 90 90
Return_ICE:
Engine_MGUK_AOB:
jmp Engine_MGUK
db 90 90 90
Return_MGUK:
Engine_MGUH_AOB:
jmp Engine_MGUH
db 90 90 90
Return_MGUH:
Engine_ES_AOB:
jmp Engine_ES
db 90 90 90
Return_ES:
Engine_TC_AOB:
jmp Engine_TC
db 90 90 90
Return_TC:
Engine_CE_AOB:
jmp Engine_CE
Return_CE:
Engine_Gearbox_AOB1:
jmp Engine_Gearbox1
db 90 90 90 90
Return_Gearbox1:
Engine_Gearbox_AOB2:
jmp Engine_Gearbox2
db 90 90 90
Return_Gearbox2:
Engine_Gearbox_AOB3:
jmp Engine_Gearbox3
db 90
Return_Gearbox3:
Engine_Gearbox_AOB4:
jmp Engine_Gearbox4
db 90 90 90 90
Return_Gearbox4:
[DISABLE]
Engine_ICE_AOB:
db F3 0F 58 A3 D8 25 00 00
Engine_MGUK_AOB:
db F3 0F 58 83 E8 25 00 00
Engine_MGUH_AOB:
db F3 0F 58 83 E4 25 00 00
Engine_ES_AOB:
db F3 0F 58 A3 E0 25 00 00
Engine_TC_AOB:
db F3 0F 58 83 DC 25 00 00
Engine_CE_AOB:
db F3 41 0F 59 C0
Engine_Gearbox_AOB1:
db F3 41 0F 59 81 84 59 00 00
Engine_Gearbox_AOB2:
db F3 0F 59 C1 F3 0F 58 E8
Engine_Gearbox_AOB3:
db F3 0F 59 4C 24 20
Engine_Gearbox_AOB4:
db F3 41 0F 11 80 3C 05 00 00
unregistersymbol(EngineRate)
unregistersymbol(Engine_ICE_AOB)
unregistersymbol(Engine_MGUK_AOB)
unregistersymbol(Engine_MGUH_AOB)
unregistersymbol(Engine_ES_AOB)
unregistersymbol(Engine_TC_AOB)
unregistersymbol(Engine_CE_AOB)
unregistersymbol(Engine_Gearbox_AOB1)
unregistersymbol(Engine_Gearbox_AOB2)
unregistersymbol(Engine_Gearbox_AOB3)
unregistersymbol(Engine_Gearbox_AOB4)
dealloc(EngineMem)
27
"Current Engine Wear"
408000
1
28
"Internal Combustion Engine (ICE)"
408000
Float
EngineRate+10
0
29
"Motor Generator Unit - Kinetic (MGU-K)"
408000
Float
EngineRate+20
0
30
"Motor Generator Unit - Heat (MGU-H)"
408000
Float
EngineRate+30
0
31
"Energy Store (ES)"
408000
Float
EngineRate+40
0
32
"Turbo Charger (TC)"
408000
Float
EngineRate+50
0
33
"Control Electronics (CE)"
408000
Float
EngineRate+60
0
34
"Gearbox"
408000
Float
EngineRate+70
0
35
"Set Wear Rate"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
EngineRate
36
"Tyre Wear"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(TyreAOB,F1_2018.exe,F3 0F 58 4F 70)
alloc(TyreMem,128,"F1_2018.exe"+ECEEB11)
label(Return)
label(CPUCode)
label(OriginalCode)
label(TyreRate)
label(TyreCPURate)
registersymbol(TyreRate)
registersymbol(TyreCPURate)
registersymbol(TyreAOB)
TyreMem:
cmp dword ptr [rdi+16C],1
jne CPUCode
mulss xmm1,[TyreRate]
jmp OriginalCode
CPUCode:
mulss xmm1,[TyreCPURate]
OriginalCode:
addss xmm1,[rdi+70]
jmp Return
TyreRate:
dd 3F800000
TyreCPURate:
dd 3F800000
TyreAOB:
jmp TyreMem
Return:
[DISABLE]
TyreAOB:
db F3 0F 58 4F 70
unregistersymbol(TyreRate)
unregistersymbol(TyreCPURate)
unregistersymbol(TyreAOB)
dealloc(TyreMem)
37
"Set Wear Rate [Player]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
TyreRate
38
"Set Wear Rate [Computer]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
TyreCPURate
48
"Tyre Temperature"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(TyreITempAOB,F1_2018.exe,F3 0F 5E B6 7C 06 00 00)
aobscanmodule(TyreOTempAOB,F1_2018.exe,F3 0F 11 4F 5C EB 1B)
alloc(TyreTempMem,256,"F1_2018.exe"+ECEFFF9)
label(ReturnI)
label(ReturnO)
label(OriginalCodeI)
label(OriginalCodeO)
label(MinMaxI)
label(MinMaxO)
label(TyreTemp)
label(TyreKTemp)
registersymbol(TyreTemp)
registersymbol(TyreKTemp)
registersymbol(TyreITempAOB)
registersymbol(TyreOTempAOB)
TyreTempMem:
TyreITemp:
cmp byte ptr [rdi+CC],0
je OriginalCodeI
cmp [TyreTemp],0
je MinMaxI
movss xmm1,[TyreTemp]
addss xmm1,[TyreKTemp]
movss [rdi+60],xmm1
jmp OriginalCodeI
MinMaxI:
cmp [TyreTemp+10],0
je OriginalCodeI
cmp [TyreTemp+20],0
je OriginalCodeI
subss xmm1,[TyreKTemp]
movss xmm0,[TyreTemp+10]
maxss xmm1,xmm0
movss xmm0,[TyreTemp+20]
minss xmm1,xmm0
addss xmm1,[TyreKTemp]
xorps xmm0,xmm0
movss [rdi+60],xmm1
OriginalCodeI:
divss xmm6,[rsi+0000067C]
jmp ReturnI
TyreOTemp:
cmp byte ptr [rdi+CC],0
je OriginalCodeO
cmp [TyreTemp],0
je MinMaxO
movss xmm1,[TyreTemp]
addss xmm1,[TyreKTemp]
jmp OriginalCodeO
MinMaxO:
cmp [TyreTemp+10],0
je OriginalCodeO
cmp [TyreTemp+20],0
je OriginalCodeO
subss xmm1,[TyreKTemp]
movss xmm0,[TyreTemp+10]
maxss xmm1,xmm0
movss xmm0,[TyreTemp+20]
minss xmm1,xmm0
addss xmm1,[TyreKTemp]
xorps xmm0,xmm0
OriginalCodeO:
movss [rdi+5C],xmm1
jmp ReturnO
TyreTemp:
dd 0
TyreKTemp:
dd 43889333
TyreITempAOB:
jmp TyreITemp
db 90 90 90
ReturnI:
TyreOTempAOB:
jmp TyreOTemp
ReturnO:
[DISABLE]
TyreITempAOB:
db F3 0F 5E B6 7C 06 00 00
TyreOTempAOB:
db F3 0F 11 4F 5C
unregistersymbol(TyreTemp)
unregistersymbol(TyreKTemp)
unregistersymbol(TyreITempAOB)
unregistersymbol(TyreOTempAOB)
dealloc(TyreTempMem)
57
"Note: If using Min/Max temperature settings, leave the override at 0"
408000
1
58
"Set Tyre Temperature Override [Celsius]"
FF0000
Float
TyreTemp
59
"Set Minimum Tyre Temperature [Celsius]"
FF0000
Float
TyreTemp+10
60
"Set Maximum Tyre Temperature [Celsius]"
FF0000
Float
TyreTemp+20
63
"Brake Temperature"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(BrakeTempAOB,F1_2018.exe,F3 0F 11 53 08 0F 28)
alloc(BrakeTempMem,256,"F1_2018.exe"+EC84FE4)
label(Return)
label(OriginalCode)
label(MinMax)
label(BrakeTemp)
label(BrakeKTemp)
registersymbol(BrakeTemp)
registersymbol(BrakeKTemp)
registersymbol(BrakeTempAOB)
BrakeTempMem:
cmp byte ptr [rbx+0C],0
je OriginalCode
cmp [BrakeTemp],0
je MinMax
movss xmm2,[BrakeTemp]
addss xmm2,[BrakeKTemp]
jmp OriginalCode
MinMax:
cmp [BrakeTemp+10],0
je OriginalCode
cmp [BrakeTemp+20],0
je OriginalCode
subss xmm2,[BrakeKTemp]
movss xmm7,[BrakeTemp+10]
maxss xmm2,xmm7
movss xmm7,[BrakeTemp+20]
minss xmm2,xmm7
addss xmm2,[BrakeKTemp]
xorps xmm7,xmm7
OriginalCode:
movss [rbx+08],xmm2
jmp Return
BrakeTemp:
dd 0
BrakeKTemp:
dd 43889333
BrakeTempAOB:
jmp BrakeTempMem
Return:
[DISABLE]
BrakeTempAOB:
db F3 0F 11 53 08
unregistersymbol(BrakeTemp)
unregistersymbol(BrakeKTemp)
unregistersymbol(BrakeTempAOB)
dealloc(BrakeTempMem)
64
"Note: If using Min/Max temperature settings, leave the override at 0"
408000
1
65
"Set Brake Temperature Override [Celsius]"
FF0000
Float
BrakeTemp
66
"Set Minimum Brake Temperature [Celsius]"
FF0000
Float
BrakeTemp+10
67
"Set Maximum Brake Temperature [Celsius]"
FF0000
Float
BrakeTemp+20
39
"Fuel Consumption"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(FuelAOB,F1_2018.exe,30 C1 F3 0F 5C C3)
alloc(FuelMem,256,"F1_2018.exe"+ECBDC24)
label(Return)
label(CPUCode)
label(OriginalCode)
label(FuelRate)
label(FuelCPURate)
registersymbol(FuelRate)
registersymbol(FuelCPURate)
registersymbol(FuelAOB)
FuelMem:
push rsi
mov rsi,[rbx+8]
cmp byte ptr [rsi+F0],1
je CPUCode
lea rsi,[rbx+F8]
mov [FuelRate+10],rsi
mulss xmm3,[FuelRate]
jmp OriginalCode
CPUCode:
mulss xmm3,[FuelCPURate]
OriginalCode:
pop rsi
xor cl,al
subss xmm0,xmm3
jmp Return
FuelRate:
dd 3F800000
FuelCPURate:
dd 3F800000
FuelAOB:
jmp FuelMem
nop
Return:
[DISABLE]
FuelAOB:
db 30 C1 F3 0F 5C C3
unregistersymbol(FuelRate)
unregistersymbol(FuelCPURate)
unregistersymbol(FuelAOB)
dealloc(FuelMem)
40
"Current Fuel Load"
408000
Float
FuelRate+10
0
41
"Set Consumption Rate [Player]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
FuelRate
42
"Set Consumption Rate [Computer]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
FuelCPURate
43
"Energy Recovery System (ERS)"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(ERSAOB,F1_2018.exe,F3 0F 58 A3 B4 17 00 00)
alloc(ERSMem,128,"F1_2018.exe"+EC6A0E2)
label(Return)
label(CPUCode)
label(OriginalCode)
label(ERSRate)
label(ERSCPURate)
registersymbol(ERSRate)
registersymbol(ERSCPURate)
registersymbol(ERSAOB)
ERSMem:
push rsi
mov rsi,[rbx+8]
cmp byte ptr [rsi+F0],1
je CPUCode
lea rsi,[rbx+17B4]
mov [ERSRate+10],rsi
mulss xmm6,[ERSRate]
mulss xmm7,[ERSRate]
jmp OriginalCode
CPUCode:
mulss xmm6,[ERSCPURate]
mulss xmm7,[ERSCPURate]
OriginalCode:
pop rsi
addss xmm4,dword ptr [rbx+000017B4]
jmp Return
ERSRate:
dd 3F800000
ERSCPURate:
dd 3F800000
ERSAOB:
jmp ERSMem
db 90 90 90
Return:
[DISABLE]
ERSAOB:
db F3 0F 58 A3 B4 17 00 00
unregistersymbol(ERSRate)
unregistersymbol(ERSCPURate)
unregistersymbol(ERSAOB)
dealloc(ERSMem)
68
"Current ERS Level"
408000
Float
ERSRate+10
0
44
"Set Drain/Refill Rate [Player]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
ERSRate
45
"Set Drain/Refill Rate [Computer]"
0:Unlimited
0.25:25% Rate
0.5:50% Rate
0.75:75% Rate
1:Normal Rate
1.25:125% Rate
1.5:150% Rate
1.75:175% Rate
2:200% Rate
FF0000
Float
ERSCPURate
61
"Maximum Computer Gear"
408000
Auto Assembler Script
[ENABLE]
aobscanmodule(GearChangeAOB,F1_2018.exe,89 BE 4C 05 00 00 48 8B)
alloc(GearMem,256,"F1_2018.exe"+EAA5FF6)
label(Return)
label(OriginalCode)
label(MaxGear)
registersymbol(MaxGear)
registersymbol(GearChangeAOB)
GearMem:
dec edi
push rax
mov rax,[rsi+8]
cmp byte ptr [rax+F0],1
jne OriginalCode
cmp [MaxGear],0
jb OriginalCode
cmp [MaxGear],8
ja OriginalCode
cmp [MaxGear],edi
jae OriginalCode
mov edi,[MaxGear]
OriginalCode:
pop rax
inc edi
mov [rsi+0000054C],edi
jmp Return
MaxGear:
dd 8
GearChangeAOB:
jmp GearMem
db 90
Return:
[DISABLE]
GearChangeAOB:
db 89 BE 4C 05 00 00
unregistersymbol(MaxGear)
unregistersymbol(GearChangeAOB)
dealloc(TyreTempMem)
62
"Set max gear computer can use"
0:Neutral
1:1st
2:2nd
3:3rd
4:4th
5:5th
6:6th
7:7th
8:8th
FF0000
Byte
MaxGear
Made for version 1.07