MavenGaming wrote: ↑Fri Aug 16, 2024 1:51 pm
Thanks for this, but the code is broken already. Keep crashing my game whenever i enable this. Do you have an update?
I was about to say that it works fine, but you're kinda right. It doesn't crash when activating the script, or even drilling, but only when using drills for an extended period of time on enemies / objects.
I fixed a bug on the self-modifying code that's supposed to automatically update offsets and instructions when the game patches. Lesson learned, don't count bytes by hand when you don't know what the compiler is gonna do.
Funnily enough, that wasn't the source of the crashes, it was the intentionally malformed code i left in by accident that was supposed to test the self-modifying code
Anyway, i updated the script on the previous page but here it is again, too:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1</ID>
<Description>"No Fuel Use For Drills"</Description>
<LastState/>
<Color>0000FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : FSD-Win64-Shipping.exe
Version:
Date : 2024-08-24
Author : HenryEx
}
[ENABLE]
aobscanmodule(AOBFuelUsePerDig,$process,F3 0F 5C * * * 00 00 F3 44 0F 11 * * * 00 00 F3 0F 11)
aobscanmodule(AOBFuelUsePerMelee,$process,F3 0F 5C * * * 00 00 F3 0F 5E * * * 00 00 48)
alloc(DrillFuelMod,$100,AOBFuelUsePerDig)
registersymbol(DrillFuelMod)
registersymbol(AOBFuelUsePerDig)
registersymbol(AOBFuelUsePerMelee)
label(FuelUsePerDig)
label(FuelUsePerMelee)
label(code1a)
label(code1b)
label(code2a)
label(code2b)
label(return1)
label(return2)
label(exit1)
label(exit2)
DrillFuelMod:
readmem(AOBFuelUsePerDig,8)
readmem(AOBFuelUsePerMelee,8)
dd (float)1
align 10 CC
jmp short FuelUsePerDig
jmp short FuelUsePerMelee
FuelUsePerDig:
readmem(AOBFuelUsePerDig,8)
push rax
mov al,[FuelUsePerDig+3]
and al,$38
or [code1a+2],al
or [code1b+3],al
code1a:
comiss xmm0,[DrillFuelMod+10]
jae short exit1
code1b:
movss xmm0,[DrillFuelMod+10]
exit1:
pop rax
jmp return1
FuelUsePerMelee:
readmem(AOBFuelUsePerMelee,8)
push rax
mov al,[FuelUsePerMelee+3]
and al,$38
or [code2a+2],al
or [code2b+3],al
code2a:
comiss xmm0,[DrillFuelMod+10]
jae short exit2
code2b:
movss xmm0,[DrillFuelMod+10]
exit2:
pop rax
jmp return2
AOBFuelUsePerDig:
jmp DrillFuelMod+20
nop 3
return1:
AOBFuelUsePerMelee:
jmp DrillFuelMod+22
nop 3
return2:
{$LUA}
memrec.Color = 0x0000FF00 --format AABBGGRR this is bright green
{$ASM}
[DISABLE]
{$LUA}
memrec.Color = 0x000000FF -- this is bright red
{$asm}
AOBFuelUsePerDig:
readmem(DrillFuelMod,8)
AOBFuelUsePerMelee:
readmem(DrillFuelMod+8,8)
unregistersymbol(*)
dealloc(*)
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
---------------------------------
elamigopaisa wrote: ↑Sun Aug 18, 2024 6:01 pm
ray2160 wrote: ↑Sun Aug 18, 2024 12:11 pm
MavenGaming wrote: ↑Fri Aug 16, 2024 1:51 pm
Thanks for this, but the code is broken already. Keep crashing my game whenever i enable this. Do you have an update?
Try this
Unlimited Driller Fuel Drilling / Melee 8 18 2024
Code: Select all
[ENABLE]
aobscanmodule(UnlimitedDrillerFuelMelee,$process,F3 0F 11 86 C0 04 00 00)
registersymbol(UnlimitedDrillerFuelMelee)
aobscanmodule(UnlimitedDrillerFuelDrilling,$process,F3 0F 11 8E C0 04 00 00)
registersymbol(UnlimitedDrillerFuelDrilling)
UnlimitedDrillerFuelMelee:
db 90 90 90 90 90 90 90 90
UnlimitedDrillerFuelDrilling:
db 90 90 90 90 90 90 90 90
[DISABLE]
UnlimitedDrillerFuelMelee:
db F3 0F 11 86 C0 04 00 00
unregistersymbol(UnlimitedDrillerFuelMelee)
UnlimitedDrillerFuelDrilling:
db F3 0F 11 8E C0 04 00 00
unregistersymbol(UnlimitedDrillerFuelDrilling)
how do we modify the gun damage feature to do double damage and not one shot
This wasn't directed at me, but i have a general Damage Modifier script you can use to fine-tune all damage dealt / received.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1</ID>
<Description>"Friendly/Enemy Damage Multiplier"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>0000FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : FSD-Win64-Shipping.exe
Version:
Date : 2022-11-19
Author : HenryEx
}
[ENABLE]
aobscanmodule(healthAOB,$process,FF 50 28 0F 28 CF F3 0F)
registersymbol(healthAOB)
aobscanmodule(shieldAOB,$process,F3 0F 58 C1 0F 2F D0 77)
registersymbol(shieldAOB)
aobscanmodule(subhealthAOB,$process,0F 28 D7 F3 0F 58 * * * 00 00 44 0F 2E CA)
registersymbol(subhealthAOB)
alloc(HealthMod,$80,healthAOB)
registersymbol(HealthMod)
label(nextH)
label(enemyH)
label(returnH)
label(codeH)
label(exitH)
label(nextS)
label(returnS)
label(codeS)
label(exitS)
label(returnSH)
label(codeSH)
healthAOB:
jmp HealthMod+10
nop
returnH:
shieldAOB:
jmp HealthMod+12
nop
nop
returnS:
subhealthAOB:
jmp HealthMod+14
nop
returnSH:
HealthMod:
dd (float)1
dd (float)1
dd #1
dd (float)1
jmp short codeH
jmp short codeS
jmp short codeSH
codeH:
call qword ptr [rax+28]
cmp [rdi+D0],2
je short nextH
comiss xmm0,[rdi+274]
jne short enemyH
nextH:
mulss xmm7,[HealthMod]
jmp short exitH
enemyH:
cmp byte ptr [HealthMod+8],1
je short +9
cmp [rdi+C0],1
jge short exitH
mulss xmm7,[HealthMod+4]
exitH:
movaps xmm1,xmm7
jmp returnH
codeS:
cmp [rcx+D0],2
jne short nextS
mulss xmm1,[HealthMod]
jmp short exitS
nextS:
mulss xmm1,[HealthMod+4]
exitS:
addss xmm0,xmm1
comiss xmm2,xmm0
jmp returnS
codeSH:
movaps xmm2,xmm7
mulss xmm2,[HealthMod+4]
ReadMem(subhealthAOB+3,8)
jmp returnSH+5
{$LUA}
memrec.Color = 0x0000FF00 --format AABBGGRR this is bright green
{$ASM}
[DISABLE]
{$LUA}
memrec.Color = 0x000000FF -- this is bright red
{$ASM}
healthAOB:
call qword ptr [rax+28]
movaps xmm1,xmm7
shieldAOB:
addss xmm0,xmm1
comiss xmm2,xmm0
subhealthAOB:
movaps xmm2,xmm7
db F3 0F 58
unregistersymbol(*)
dealloc(*)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>112978</ID>
<Description>"Friendlies Damage Multiplier"</Description>
<Options moRecursiveSetValue="1"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>FF8000</Color>
<VariableType>Float</VariableType>
<Address>HealthMod</Address>
</CheatEntry>
<CheatEntry>
<ID>112979</ID>
<Description>"Enemy Damage Multiplier"</Description>
<Options moRecursiveSetValue="1"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>FF8000</Color>
<VariableType>Float</VariableType>
<Address>HealthMod+4</Address>
</CheatEntry>
<CheatEntry>
<ID>113010</ID>
<Description>"Affect Stationaries (Hack-C, Rock Crackers, Brood Nexus, Caretaker etc.)"</Description>
<Options moRecursiveSetValue="1"/>
<DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<Color>FF8000</Color>
<VariableType>Byte</VariableType>
<Address>HealthMod+8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
If you set Friendlies damage to 2, you and your team will take 2x damage. If you set it to 0, you'll take 0x damage (none). Set it to 0.5, and you'll take half damage, et cetera.
You can set the damage that enemies take too, of course.
This should apply to pretty much all damage, except maybe some weird edge cases like lootbugs, because they're coded weird.
Only works when you're hosting, because only the host calculates all damage dealt and taken for all players.
edit: Fixed another possible bug in self-modifying code for Drill Fuel