I don't know why, but I failed to customize Zoddel's latest version of the damage mod script. In the process, I found that the old version of the script is more suitable for modification.
I slightly changed Zoddel's custom damage script, increasing the damage and structural damage value of the railgun and P-4 revolver to 600, and 8 levels of penetration (the original game's railgun has a full charge of 600 damage and 60 structural damage. In the unsafe mode, it has 8 levels of penetration when fully charged, and the structural damage is 120). Increased the bullet guard dog and the electric shotgun by 25% and 50%, and the penetration level was changed to 4.
{ Game : helldivers2.exe
Version:
Date : 2024-04-07
Author : ZoDDeL
This script does blah blah blah
}
[ENABLE]
aobscanmodule(damageMulti,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB) // should be unique
registersymbol(damageMulti)
alloc(dmg_newmem,$2000)
label(dmg_code)
label(dmg_return)
dmg_newmem:
cmp [rcx+04],#0 // skip any 0 dmg weapons like smoke or unknown shit
je dmg_code
// whitelisted weapons that get super damage
cmp [rcx+00], #9 // FLAM-40 part 1
je dmg_code
cmp [rcx+00], #10 // GL-21 part 1 projectile / mortar shell (turret)
je dmg_code
cmp [rcx+00], #19 // LAS-16 Sickle
je dmg_Pump/*
cmp [rcx+00], #20 // SG-8P Punisher Plasma (1) / PLAS-1 Scorcher
je dmg_code*/
cmp [rcx+00], #22 // RS-422 railgun
je dmg_Super
cmp [rcx+00], #26 // MP-98 Knight
je dmg_code
cmp [rcx+00], #34 // SMG-37 Defender
je dmg_code
cmp [rcx+00], #42 // P-113 Verdict
je dmg_code
cmp [rcx+00], #51 // AR-23 Liberator / AR-22C Patriot / AR-48 Truth Whisperer / M-105 Stalwart / AR-61 Tenderizer / Guard Dog
je dmg_Pump
cmp [rcx+00], #117 // ARC-12 thunder
je dmg_Pump
cmp [rcx+00], #41 // SMG-72 Pummeler
je dmg_code
cmp [rcx+00], #48 // AR-23P Liberator Penetrator
je dmg_code
cmp [rcx+00], #50 // AR-23C Liberator Concussive
je dmg_code
cmp [rcx+00], #25 // P-19 Redeemer
je dmg_code
cmp [rcx+00], #27 // P-2 Peacemaker
je dmg_code
cmp [rcx+00], #44 // P-4 Senator
je dmg_Super
cmp [rcx+00], #65 // MG-43 / EXO-45 Gatling / Gatling Turret / BR-14 Adjudicator / AR-L20 Jus
je dmg_code
cmp [rcx+00], #73 // R-63 Diligence
je dmg_code
cmp [rcx+00], #74 // R-63CS Diligence Counter Sniper
je dmg_code
cmp [rcx+00], #80 // R-36 Eruptor 1
je dmg_code
cmp [rcx+00], #84 // JAR-5 Dominator
je dmg_code
cmp [rcx+00], #88 // SG-8 Punisher
je dmg_code
cmp [rcx+00], #99 // SG-8S Slugger
je dmg_code
cmp [rcx+00], #101 // SG-225SP Breaker SpradamageMultiy&Pray
je dmg_code
cmp [rcx+00], #102 // SG-225 Breaker
je dmg_code
cmp [rcx+00], #104 // SG-225NS Breaker Nailspitter
je dmg_code
cmp [rcx+00], #105 // SG-225IE Breaker Incendiary
je dmg_code
cmp [rcx+00], #121 // MG-206 HMG
je dmg_code
cmp [rcx+00], #122 // anti material rifle
je dmg_code
cmp [rcx+00], #124 // CB-9 explosive crossbow 1
je dmg_code
cmp [rcx+00], #125 // CB-9 explosive crossbow 2
je dmg_code
cmp [rcx+00], #127 // autocannon part 1 // projectile
je dmg_code
cmp [rcx+00], #129 // emancipator exo gun part 1
je dmg_code
cmp [rcx+00], #130 // pelican weapon part 1
je dmg_code
cmp [rcx+00], #134 // GP-31 grenade pistol part 1 (part 2 = gren launcher explo)
je dmg_Super
cmp [rcx+00], #135 // EAT-17 part 1
je dmg_code
cmp [rcx+00], #136 // recoil-less rifle part 1 shell
je dmg_code
cmp [rcx+00], #147 // EXO-45 rocket part 1
je dmg_code
cmp [rcx+00], #184 // PLAS-1 Scorcher explosion
je dmg_code
cmp [rcx+00], #186 // SG-8P Punisher Plasma explosion
je dmg_code
cmp [rcx+00], #202 // RL-77 airburst (ground???)
je dmg_code
cmp [rcx+00], #205 // R-36 Eruptor 3
je dmg_code
cmp [rcx+00], #216 // autocannon part 2 // explosion
je dmg_code
cmp [rcx+00], #217 // emancipator exo gun part 2
je dmg_code
cmp [rcx+00], #219 // pelican weapon part 2
je dmg_code
cmp [rcx+00], #220 // GL-21 / GP-31 grenade pistol explosion
je dmg_code
cmp [rcx+00], #227 // LAS-99 quasar part 1
je dmg_Super
cmp [rcx+00], #228 // LAS-99 quasar part 2
je dmg_code
cmp [rcx+00], #224 // RL-77 airburst (rocket)
je dmg_code
cmp [rcx+00], #225 // recoil-less rifle part 2 explosion
je dmg_code
cmp [rcx+00], #226 // EAT-17 part 3
je dmg_code
cmp [rcx+00], #296 // LAS-7 Dagger
je dmg_code
cmp [rcx+00], #297 // LAS-5 Scythe
je dmg_code
cmp [rcx+00], #234 // EXO-45 rocket part 2
je dmg_code
cmp [rcx+00], #302 // LAS-98
je dmg_code
// these weapons stay default
cmp [rcx+00],#111 // G-6 Frag part 2
je dmg_code
cmp [rcx+00],#112 // Orbital airburst impact
je dmg_code
cmp [rcx+00],#126 // tesla tower
je dmg_code
cmp [rcx+00],#132 // Eagle strafing run impact
je dmg_code
cmp [rcx+00],#138 // Eagle airstrike impact
je dmg_code
cmp [rcx+00],#140 // rocket sentry turret 1
je dmg_code
cmp [rcx+00],#148 // Eagle 110MM rocket pods impact
je dmg_code
cmp [rcx+00],#150 // 500KG bomb impact
je dmg_code
cmp [rcx+00],#155 // Orbital 120MM HE barrage impact
je dmg_code
cmp [rcx+00],#157 // Orbital railcannon impact
je dmg_code
cmp [rcx+00],#158 // Orbital gas canister impact
je dmg_code
cmp [rcx+00],#160 // Orbital precision strike impact
je dmg_code
cmp [rcx+00],#201 // G-6 Frag part 1 // shares ID with airburst rocket launcher (cluster)
je dmg_code
cmp [rcx+00],#203 // G-10 Incendiary/incendiary mines (explosion) // burning is ground fire 309 like flame tornadoes or flamethrower ground fire
je dmg_code
cmp [rcx+00],#204 // G-123 Thermite (explosion)
je dmg_code
cmp [rcx+00],#213 // G-12 High Explosive / G-16 Impact
je dmg_code
cmp [rcx+00],#214 // Eagle strafing run pods
je dmg_code
cmp [rcx+00],#223 // mortar turred explosion
je dmg_code
cmp [rcx+00],#229 // Eagle Clusterbomb pods
je dmg_code
cmp [rcx+00],#231 // Napalm SEAF impact
je dmg_code
cmp [rcx+00],#236 // Eagle 110MM rocket pods
je dmg_code
cmp [rcx+00],#239 // rocket sentry turret 2
je dmg_code
cmp [rcx+00],#243 // anti personnel mines
je dmg_code
cmp [rcx+00],#245 // anti tank mines
je dmg_code
cmp [rcx+00],#249 // Eagle Airstrike
je dmg_code
cmp [rcx+00],#258 // Hellpod impact damage
je dmg_code
cmp [rcx+00],#261 // Orbital railcannon explosion
je dmg_code
cmp [rcx+00],#263 // Orbital 120MM HE barrage explosion
je dmg_code
cmp [rcx+00],#267 // Orbital precision strike explosion
je dmg_code
cmp [rcx+00],#268 // 500KG bomb explosion
je dmg_code
cmp [rcx+00],#273 // High-yield SEAF explosion
je dmg_code
cmp [rcx+00],#282 // Impact Fall damage
je dmg_code
cmp [rcx+00],#287 // Hellbomb / SEAF Mini-Nuke
je dmg_code
cmp [rcx+00],#298 // AX/LAS-5 "Guard Dog" Rover
je dmg_lazerdog
cmp [rcx+00],#305 // Orbital Laser
je dmg_code
// cmp [rcx+00],#309 // Napalm SEAF burn
// je dmg_code
cmp [rcx+00],#310 // G-123 Thermite (burn)
je dmg_code
cmp [rcx+00],#321 // Orbital Gas
je dmg_code
jmp dmg_Enemy
dmg_Super:
mov [rcx+04],#600 // writes m_max_damage
mov [rcx+08],#600 // writes m_min_damage
mov [rcx+0C],#8 // writes m_penetration_no_angle
mov [rcx+10],#8 // writes m_penetration_angle
mov [rcx+14],#8 // writes m_penetration_3
mov [rcx+18],#8 // writes m_penetration_4
mov [rcx+1C],#30 // writes m_demolition
mov [rcx+20],#100 // writes m_pushback
mov [rcx+24],#100 // writes m_unk1 value.
jmp dmg_code
//movd xmm3,[rcx+04]
//movd xmm1,[rcx+08]
//cvtdq2ps xmm1,xmm1
//cvtdq2ps xmm3,xmm3
//mulss xmm3, dword ptr [dmg_multiplier] // multiplies value with dmg_multiplier
//mulss xmm1, dword ptr [dmg_multiplier] // multiplies value with admg_multiplier
//jmp dmg_check
dmg_lazerdog:
mov [rcx+04],#450 // writes m_max_damage
mov [rcx+08],#90 // writes m_min_damage
mov [rcx+0C],#4 // writes m_penetration_no_angle
mov [rcx+10],#4 // writes m_penetration_angle
mov [rcx+14],#4 // writes m_penetration_3
mov [rcx+18],#4 // writes m_penetration_4
jmp dmg_code
dmg_Pump:
mov [rcx+04],#75 // writes m_max_damage
mov [rcx+08],#25 // writes m_min_damage
mov [rcx+0C],#4 // writes m_penetration_no_angle
mov [rcx+10],#4 // writes m_penetration_angle
mov [rcx+14],#4 // writes m_penetration_3
mov [rcx+18],#4 // writes m_penetration_4
jmp dmg_code
//dmg_check:
// comiss xmm3, dword ptr [dmg_limit] // checks if dmg after multiplier is above dmg_limit
// ja short dmg_cap
// comiss xmm1, dword ptr [dmg_limit] // checks if admg after multiplier is above dmg_limit
// ja short dmg_cap
// jmp dmg_return
//
//dmg_cap:
// movss xmm3, dword ptr [dmg_limit] // writes dmg_limit value
// movss xmm1, dword ptr [dmg_limit] // writes dmg_limit value
// jmp dmg_return
dmg_Enemy:
mov [rcx+0C],#0 // writes m_penetration_no_angle
mov [rcx+10],#0 // writes m_penetration_angle
mov [rcx+14],#0 // writes m_penetration_3
mov [rcx+18],#0 // writes m_penetration_4
// mov [rcx+1C],#0 // writes m_demolition //Removed because it makes bugs get stuck in their attack animation if they encounter a wall.
// mov [rcx+20],#0 // writes m_pushback
// mov [rcx+24],#100 // writes m_unk1 value.
movd xmm3,[rcx+04]
movd xmm1,[rcx+08]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm3,xmm3
mulss xmm3, dword ptr [enemydmg_multiplier]
mulss xmm1, dword ptr [enemydmg_multiplier]
jmp dmg_return
dmg_code:
movd xmm3,[rcx+04]
movd xmm1,[rcx+08]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm3,xmm3
mulss xmm3, dword ptr [dmg_multiplier] // multiplies value with dmg_multiplier
mulss xmm1, dword ptr [admg_multiplier] // multiplies value with admg_multiplier
jmp dmg_return
dmg_multiplier:
dd (float)1.5 // edit this for times x base damage (1 is default)
admg_multiplier:
dd (float)1.5 // edit this for times x armor/limb damage (1 is default)
enemydmg_multiplier:
dd (float)0.75 // edit this for times x enemy damage (1 is default)
dmg_limit:
dd (float)7000 // limit the super damage to prevent creating weapons that would outdamage inf health
damageMulti:
jmp far dmg_newmem
nop 2
dmg_return:
[DISABLE]
damageMulti:
db 66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB
dealloc(dmg_newmem)
dealloc(dmg_multiplier)
dealloc(enemydmg_multiplier)
dealloc(dmg_limit)
unregistersymbol(damageMulti)