HELLDIVERS 2

Upload your cheat tables here (No requests)
Wake2287
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Mar 07, 2024 10:45 pm
Reputation: 4

Re: HELLDIVERS 2

Post by Wake2287 »

ZoDDeL wrote:
Wed May 01, 2024 12:20 pm
UPDATE:
added inf energy shield (instead of setting cooldown to zero this one just writes on the shield value)
Hi ZoDDeL,

Thanks for your amazing work; it's super helpful! Quick question on modifying shield behavior like in the past. Previously, we had a line like this:

Code: Select all

shieldCD:
dd (float)8
Which allowed setting the cooldown to 8 seconds. Is there a way to reintroduce a timed cooldown for the shield instead of making it invincible? Any pointers would be awesome!

Thanks!

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

lovaper98435
What is cheating?
What is cheating?
Posts: 4
Joined: Thu Mar 28, 2024 10:52 am
Reputation: 0

Re: HELLDIVERS 2

Post by lovaper98435 »

Spoiler

CynicalTyrant
What is cheating?
What is cheating?
Posts: 1
Joined: Fri Nov 26, 2021 4:25 am
Reputation: 0

Re: HELLDIVERS 2

Post by CynicalTyrant »

ZoDDeL wrote:
Sat Mar 16, 2024 3:26 am
alternative and simpler guide with slightly different approach with no address input and easier timing.

this guide doesnt make your CE undetected but let you activate scripts and close CE before gameguard notice what happened
so you can cheat without crash / hack detected!
but you cannot use CE to search for stuff or debug the game!!!


follow the text+ picture guide or just watch one of the videos down below
i show the usage at the beginning of each video.

step 1

open CE table and open memory viewer
[Link]


step 2
open the game (my table should hook the game itself if you allow the lua execution and you should allow it!!!)
[Link]


step 3
wait a bit if everything was right you should see the last 2 entries in my table populate with adresses/values (green boxes)
like in this screenshot:
[Link]


now you can hit the checkbox on "all together" to activate it (or individual options above).
then close CE table quick with a click on the X on top right of the CE main window.

THE TABLE
Image
the table is split into 3 sections.
basic scripts and advanced scripts and all in one scripts.
while basic script just search for array of byte pattern and overwrite it (nop or change bytes to jump etc.)
the advanced script do memory allocations, full code with jumps and compares and change values.
the all in one scripts are like presets for alle the scripts in the table.

each section has an "all together" script that bound all features into one (so you dont have to click multiple scripts)
all basic scripts with one star / asterisk * (blue box in screenshot) are put into the alltogether for this section.
all advanced script with two star / asterisk ** (red box in screenshot) are put into the alltogether for this section.
if you activate any single script that is also part of alltogether you cannot activate alltogether anymore!!!

easiest way to just choose one of the AIO scripts (yellow box in screenshot) activate it and close the table.
but better take i look into the scripts before and maybe change values to your needs.



currently whitelisted (damage / armor damage / pentration increased) weapons:
AR-23 Liberator / AR-22C Patriot / AR-48 Truth Whisperer / M-105 Stalwart
P-2 Peacemaker / P-19 Redeemer
SG-225SP Breaker Spray&Pray (16)
P-4 Senator
JAR-5 Dominator
LAS-7 Dagger
LAS-5 Scythe
SMG-37 Defender
LAS-16 Sickle
GL-21
autocannon
R-63CS Diligence Counter SNiper
EAT-17
recoil-less rifle
MP-98 Knight
MG-43 / EXO-45 Gatling / Gatling Turret
anti material rifle
FLAM-40
MG-206 HMG
GP-31 grenade pistol
LAS-98
RS-422 railgun
R-36 Eruptor
LAS-99 quasar
RL-77 airburst
GP-31 explosive crossbow
emancipator exo gun
EXO-45 rocket
SG-8P Punisher Plasma
PLAS-1 Scorcher
pelican weapon
SG-225NS Breaker Nailspitter


default weapons(these weapons keep their default values):
G-6 Frag
G-12 High Explosive / G-16 Impact
G-10 Incendiary
G-123 Thermite
anti tank mines
anti personnel mines
incendiary mines
tesla tower
mortar turret
rocket sentry turret

hellpot damage


//500kg bomb
//orbital laser
//orbital precision strike
//orbital railcannon strike
//orbital 120MM HE barrage
//eagle airstrike
//orbital 380MM HE barrage
//eagle 110mm rocket pods
//eagle clusterbomb
//orbital airburst

everything else get set down to 0 (enemy attacks, airstrikes, orbital strikes, mines, flame tornados)


showcase instant mission complete + instant extraction timer:




showcase fast rescue mission + instant extraction timer:



older showcase videos



p.s. credits to sunbeam who ignited the idea to check the game.dll
p.p.s basic scripts on my table are manually taken from "version.dll" visual studio builds.
but the script codes (byte arrays etc.) originate from posts here in the forum and on the UC forum.
users like cfemen, gir489 and others.
the most advanced scripts are totally written by me or in parts adapted/improved.
i cut down all scripts to keep the table small and clean.
that including comments, orignal code, credits, registersymbols
Followed everything but the address for game.dll doesn't seem to be properly populated. Im on win 11 and using CE 7.5 I assembled from github

Exemplify1524
Cheater
Cheater
Posts: 34
Joined: Tue Apr 30, 2024 8:37 am
Reputation: 18

Re: HELLDIVERS 2

Post by Exemplify1524 »

.duplicated
Last edited by Exemplify1524 on Thu May 02, 2024 8:37 am, edited 1 time in total.

Exemplify1524
Cheater
Cheater
Posts: 34
Joined: Tue Apr 30, 2024 8:37 am
Reputation: 18

Re: HELLDIVERS 2

Post by Exemplify1524 »

gunbalde60 wrote:
Thu May 02, 2024 12:36 am
If I understand this correctly would I be able to change a single weapon, by changing this values?

{50, 1.0f, -1, -1, -1, -1, -1, -1, "AR-23C Liberator Concussive"},

EX:
{150, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"},
No, ID of the weapon should be the same (50) or it will change some other weapon.

// EX. For weapon 50 (AR-23C). Here you set exactly values (5) for damage, armor damage, and all 4 penetration values. Multiplier 1.0f means that you do not multiply anything. Because multiplying on 1 dont change value. For example 500 * 1 = 500.
{50, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"}

// here you do not change values of damage and armor damage (-1). Also you set new values for all 4 penetration to 5.
And multiply values in 2.4 times.
{50, 2.4f, -1, -1, 5, 5, 5, 5, "AR-23C Liberator Concussive"}
So damage will be (game default value * 2.4)
armor damage will be (game default value * 2.4)
penetration1to4 will be 5 * 2.4 = 12

I mean with this you can manipulate in 3 directions:
1. Set exactly value you need and donot use multiplier (set it ti 1.0f)
{50, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"}

2. Leave values game default (-1), but set multiplier for game default values (in 2.4 times):
{50, 2.4f, -1, -1, -1, -1, -1, -1, "AR-23C Liberator Concussive"}

3. Use both methods - set some or all values exactly you need, and multiply them with multiplyer
{50, 2.4f, -1, -1, 5, 5, 5, 5, "AR-23C Liberator Concussive"}


With multiplier below 1 you can reduce. For example damage 20 with multiplier 0.2 will do final damage 20 * 0.2 = 4


Again order of values and their description
{50, -- id of the weapon ( do not change. take from table [Link]
2.4f, - multiplier for damage. Set to 1.0f to not change, because multiplying to 1.0f actually dont change anythink. You can decrease damage by setting multiplier here below 1. for example 0.2f
-1, damage (-1 game default value, or you can set your own)
-1, armor damage
5, 5, 5, 5, penetration
"AR-23C Liberator Concussive" - name of the weapon (only for debugging purposes, you can write anythink you want
}

Exemplify1524
Cheater
Cheater
Posts: 34
Joined: Tue Apr 30, 2024 8:37 am
Reputation: 18

Re: HELLDIVERS 2

Post by Exemplify1524 »

CynicalTyrant wrote:
Thu May 02, 2024 8:07 am
Followed everything but the address for game.dll doesn't seem to be properly populated. Im on win 11 and using CE 7.5 I assembled from github
Try to open Memory viewer and stay it opened. Opened Memory viewer helps to refresh values in table because game.dll module need some time to load after main process started.

User avatar
Catalin.Andrey98
Cheater
Cheater
Posts: 25
Joined: Fri Mar 22, 2024 9:41 pm
Reputation: 6

Re: HELLDIVERS 2

Post by Catalin.Andrey98 »

Now we have a hack for everything like xp, medals, requisitions and samples
Who wants to know about it dm

Corporal0193
Noobzor
Noobzor
Posts: 6
Joined: Thu May 02, 2024 11:01 am
Reputation: 0

Re: HELLDIVERS 2

Post by Corporal0193 »

well that newest patch about 2 hours ago messed up CT's again. using zoddel's most recent. ima take a guess and say it's the auto complete that's causing the crash.

Grav3staR
Noobzor
Noobzor
Posts: 6
Joined: Fri Apr 19, 2024 8:04 am
Reputation: 0

Re: HELLDIVERS 2

Post by Grav3staR »

Lol good thing I farmed SC last night then xD but like all the updates, we will just have to wait for the CT to be updated as well ;)

CaptBawsaq
What is cheating?
What is cheating?
Posts: 1
Joined: Mon Mar 28, 2022 2:14 pm
Reputation: 0

Re: HELLDIVERS 2

Post by CaptBawsaq »

Exemplify1524 wrote:
Wed May 01, 2024 10:29 am
latest and full version of modified ZoDDels damage script rewritten in ccode to more usability and changebility. good to use with table [Link]

main part is
// default damage multiplier for all damages.
damage_ratio = 0.2f;

and the weapons table
{51, 100.0f, -1, -1, 100, 100, 100, 100, "AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},

51 is ID
100.0f is damage and armor damage multiplier (damage * multiplier)
-1 is damage (-1 for not change, for example to only multiply default value)
-1 is armor damage
100 is penetration1 at no angle is set to 100 (you can use -1 to not change)
100 is penetration2 with angle is set to 100 (you can use -1 to not change)
100 is penetration3 unknown is set to 100 (you can use -1 to not change)
100 is penetration4 unknown is set to 100 (you can use -1 to not change)

also damage monitoring with miscosoft DebugView tool is working.

Code: Select all

[ENABLE]
aobscanmodule(damage_inject,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB)
alloc(damage_newmem,$10000)
label(damage_return)

//label(damage_change)
//label(damage_and_penetration_change)
//label(damage_no_change)
//label(damage_multiplier)


alloc(damage_ratio,4)
registersymbol(damage_ratio)


damage_newmem:
// push rbx //save rbx as it's going to be changed

{$ccode base_address=rcx jmpaddress=rbx}
extern __cdecl int sprintf(char *, char *, ...);
extern __cdecl void OutputDebugStringA(const char* lpOutputString);

extern float damage_ratio;

//extern void damage_change();
//extern void damage_and_penetration_change();
//extern void damage_no_change();

char debug_string[400];
char* weapon_name;
//float unknown_damage_mult = 0.2f;
//bool damage_is_unknown;
// char* damage_type_name;

typedef struct {
   int id;
   float damage_mult;
   int damage_value;
   int armor_damage_value;
   int penetration1_no_angle_value;
   int penetration2_angle_value;
   int penetration3_unknown_value;
   int penetration4_unknown_value;
   char* weapon_name;
} Weapon;

int *weapon_id=(int*)(base_address);
int *weapon_dmg=(int*)(base_address+0x04);
int *weapon_admg=(int*)(base_address+0x08);
int *weapon_pen1=(int*)(base_address+0x0C);
int *weapon_pen2=(int*)(base_address+0x10);
int *weapon_pen3=(int*)(base_address+0x14);
int *weapon_pen4=(int*)(base_address+0x18);

Weapon weapons[76] = {
{326,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Helldiver melee"},
{50,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23C Liberator Concussive"},
{48,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23P Liberator Penetrator"},
{51,	100.0f,	-1,	-1,	100,	100,	100,	100,	"AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},
{73,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63 Diligence"},
{74,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63CS Diligence Counter Sniper"},
{65,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-20L Justice / BR-14 Adjudicator / Machine Gun / Gatling/Machine Gun Sentry"},
{26,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"MP-98 Knight"},
{34,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S / SMG-37 Defender"},
{117,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC-12 Blitzer"},
{93,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Break action shotgun"},
{102,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225 Breaker"},
{103,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225BB Breaker Bugbiter"},
{104,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225NS Breaker Nailspitter"},
{101,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225SP Breaker Spray&Pray"},
{105,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-255IE Breaker Incendiary"},
{88,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8 Punisher"},
{99,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S Slugger"},
{124,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"CB-9 Exploding Crossbow"},
{84,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"JAR-5 Dominator"},
{80,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-36 Eruptor"},
{19,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-16 Sickle"},
{297,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-5 Scythe"},
{20,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"PLAS-1 Scorcher / SG-8P Punisher Plasma"},
{134,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GP-31 Grenade Pistol"},
{296,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-7 Dagger"},
{44,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-4 Senator"},
{25,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-19 Redeemer / P-2 Peacemaker"},
{203,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-10 Incendiary"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{111,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 2"},
{213,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-12 High Explosive / G-16 Impact"},
{204,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-123 Thermite"},
{122,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Antimaterial Rifle"},
{115,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC3 Thrower"},
{127,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 1/2)"},
{216,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 2/2)"},
{145,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Commando"},
{135,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 1"},
{189,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 2"},
{226,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 3"},
{129,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 1"},
{217,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 2"},
{147,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 1"},
{234,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 2"},
{9,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"FLAM-40 Flamethrower part 1"},
{220,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 2 explosion"},
{121,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Heavy Machinegun"},
{149,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 1"},
{236,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 2"},
{302,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-98 Laser Cannon"},
{227,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 1"},
{228,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 2"},
{280,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 3 (???)"},
{136,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 1 shell"},
{225,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 2 explosion"},
{22,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"RS-422 Railgun"},
{10,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 1 / Mortar Sentry shell"},
{11,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Grenade Launcher / EMS Mortar Sentry / Mortar Sentry 1"},
{223,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Mortar Sentry 2"},
{126,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Tesla Tower"},
{241,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AntiPersonal MineField / Eagle 110mm rocket pods part 2"},
{154,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb1 shell"},
{273,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb2 explosion"},
{152,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle 110mm rocket pods part 1"},
{142,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 1"},
{254,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 2"},
{229,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle cluster bomb"},
{159,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage1"},
{268,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage2"},
{305,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital laser"},
{160,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike1"},
{267,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike2"},
{161,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike1"},
{266,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike2"}
};


// damage_type_name = "unknown type";

// strcpy(weapon_name_list, "");

// default damage multiplier for all damages.
damage_ratio = 0.2f;

if (*weapon_id != 0) {
  // set default values. May change during analyzing table later.
  weapon_name = "unknown damage";
  //damage_is_unknown = true;

  // analyzing if we have damage_id  in table
  for (int i = 0; i < sizeof(weapons) / sizeof(weapons[0]); ++i) {
    if (weapons[i].id == 0) {
      continue;
    }

    if (*weapon_id == weapons[i].id) {
       // damage_is_unknown = false; // we have this damage_id in table. So set flag 'damage_is_unknown' to false, with this we will not apply unknown_damage debuffer to this damage latter

       weapon_name = weapons[i].weapon_name;  // is only for debugging. Used only in sprintf and OutputDebugString latter

       // damage_type_name = weapons[i].damage_type_name;

       if (weapons[i].damage_value != -1) {
         *weapon_dmg = weapons[i].damage_value;
       }
       if (weapons[i].armor_damage_value != -1) {
         *weapon_admg = weapons[i].armor_damage_value;
       }
       if (weapons[i].penetration1_no_angle_value != -1) {
         *weapon_pen1 = weapons[i].penetration1_no_angle_value;
       }
       if (weapons[i].penetration2_angle_value != -1) {
         *weapon_pen2 = weapons[i].penetration2_angle_value;
       }
       if (weapons[i].penetration3_unknown_value != -1) {
         *weapon_pen3 = weapons[i].penetration3_unknown_value;
       }
       if (weapons[i].penetration4_unknown_value != -1) {
         *weapon_pen4 = weapons[i].penetration4_unknown_value;
       }

       // apply damage multiplier
       damage_ratio = weapons[i].damage_mult;

       //strcat(weapon_name_list, " / ");
       //strcat(weapon_name_list, weapons[i].name);
       //sprintf(debug_string, "HD2. ID %d is for %s", *weapon_id, weapon_name);
       //OutputDebugStringA(debug_string);
       break;
    }
  }

  // If damage_id was not found in table. Then assume it is some enemy or environmental damage.  Apply 'unknown_damage_mult' to it (reduce)
  /*
  if (damage_is_unknown) {
     *weapon_dmg = (int)((float)*weapon_dmg * unknown_damage_mult);
     *weapon_admg = (int)((float)*weapon_admg * unknown_damage_mult);
     *weapon_pen1 = (int)((float)*weapon_pen1 * unknown_damage_mult);
     *weapon_pen2 = (int)((float)*weapon_pen2 * unknown_damage_mult);
     *weapon_pen3 = (int)((float)*weapon_pen3 * unknown_damage_mult);
     *weapon_pen4 = (int)((float)*weapon_pen4 * unknown_damage_mult);
  }*/

  sprintf(debug_string, "HD2 %3d | DMG %3d %3d | PEN %3d %3d %3d %3d | %s", *weapon_id, *weapon_dmg, *weapon_admg, *weapon_pen1, *weapon_pen2, *weapon_pen3, *weapon_pen4, weapon_name);
  OutputDebugStringA(debug_string);
} // weapon_id != 0



{$asm}
  // standart code start
  movd xmm3,[rcx+04]
  movd xmm1,[rcx+08]
  cvtdq2ps xmm1,xmm1
  cvtdq2ps xmm3,xmm3
  // standart code end
  // damage_ratio part
  mulss xmm3, dword ptr [damage_ratio]
  mulss xmm1, dword ptr [damage_ratio]
  jmp damage_return

damage_inject:
  jmp far damage_newmem
  nop 2

damage_return:

// ------------------------------------------------------

[DISABLE]
Can you clarify a little on what the "default damage multiplier for all damages" line does (damage_ratio = 0.2f)? I've read through the script a couple of times and noticed that you've commented out a (supposedly) old/unused way of handling unknown damages (or rather ones not coming directly from a helldiver) - through the use of "unknown_damage_mult". I'm assuming that instead the table is checking if the damage is coming from one of the sources within the table, and if not it defaults to applying the value of the "damage_ratio" string? In that case whatever the value is there will be the value of things such as enemy damage, fire damage applied to helldiver, fall damage and so on? So if I were to set damage_ratio to 0.5f then I would take 50% less damage from those unknown sources? Do the outlined weapons/strategems and so on within the table completely disregard the value of "damage_ratio" as long as they are explicitly outlined in the table?

I also assume that if a new weapon/strategem were to come out it would also default to the "damage_ratio" value until it is also added in the table with its own ID and values, correct?

naisu
Noobzor
Noobzor
Posts: 8
Joined: Thu Jul 27, 2023 5:32 am
Reputation: 7

Re: HELLDIVERS 2

Post by naisu »

if anyone could look into the current no recoil, no sway script - i'd appreciate it.
there's still sway in first person mode.
previously it also nop'd spread because reticle sway and spread are linked which was a nice bonus.

Code: Select all

aobscanmodule(no_Rec,game.dll,75 ? 44 8B 44 24 ? 8B D3 49 8B C9)
no_Rec:
  db EB
aobscanmodule(no_Swa,game.dll,F3 0F 51 C2 EB ? 0F 28 C2 E8 ? ? ? ? F3 0F 10 7D)
no_Swa:
  nop 4

Exemplify1524
Cheater
Cheater
Posts: 34
Joined: Tue Apr 30, 2024 8:37 am
Reputation: 18

Re: HELLDIVERS 2

Post by Exemplify1524 »

CaptBawsaq wrote:
Thu May 02, 2024 12:21 pm
I also assume that if a new weapon/strategem were to come out it would also default to the "damage_ratio" value until it is also added in the table with its own ID and values, correct?
Yes you absolutely correct. And it is the way how mr.ZoDDel's script works.
All damage that are not specified in table will be multiplied on damage_ratio = 0.2

My version of ZoDDel's script write all damage id's to Debug pipe, so you can look on second monitor or in windowed mode in DebugView app all damage ids happening on map. And detect some unknown damage IDs and add it to table. If you will have time on this, it would be cool if you update Helldivers 2 damage tsble that i created on Google Spreadsheets (link in my prev message) so we can update new ids values faster.

User avatar
ZoDDeL
Table Makers
Table Makers
Posts: 153
Joined: Mon May 08, 2017 9:37 am
Reputation: 315

Re: HELLDIVERS 2

Post by ZoDDeL »

UPDATE:
added rescue count mod
added killcount mod
added evac high value asset mod


all 3 scripts can be tuned to your needs.
for example:
rescue mod adds 2 to each citizen that reaches the safe point (3 citizens count up to 9 on score)
you can just change the value how you like if you prefer instant completion or just want a small boost.

on the killcount its similar but the basic value per enemy killed varies.
small bugs give 1 point. bigger 2, charger 10 and bile titans 15.
the script adds 5 per kill so small bug brings 6 now and bile titans 20. you can change this number.

totaly new and never been here before evac high value asset count (rockets)
like on difficulty 9 you have 20 minutes and every ~2:15 minutes 1 rocket launches. this script makes the count 2 per launch but you can change the number up. current max i saw is 8 rockets.

all 3 scripts with a low setting are part of the AIO script.

table und guide as usual in my signature.


p.s.
i noticed some people say that instant mission complete crashes on some new mission types. not much i can do about this.
if you get a crash on these new mission types then just try to avoid playing them together with instant mission complete.
all the other scripts still work with the tiny .301 update today.


p.p.s
thanks to the donators who keep me motivated to invest a bit more time into this game (i dont really play it anymore for a while).

naisu
Noobzor
Noobzor
Posts: 8
Joined: Thu Jul 27, 2023 5:32 am
Reputation: 7

Re: HELLDIVERS 2

Post by naisu »

Exemplify1524 wrote:
Thu May 02, 2024 1:23 pm
If you will have time on this, it would be cool if you update Helldivers 2 damage tsble that i created on Google Spreadsheets (link in my prev message) so we can update new ids values faster.
could you elaborate on this step in your tutorial? i have a hard time following the instruction - thank you.
Exemplify1524 wrote:
Wed May 01, 2024 1:48 am
Right click script in CE and in menu look upper string.
outside of that, the method works perfectly.
Image

i'll help and populate the table with values and ID's in the upcoming days.
thank you for sharing this method with the community so we can all contribute.

EDIT: added lots of values and a few new ID's already, corrected some ID's after testing. see version info and/or highlighted rows for changes.
apologies that i don't use functions for list 2, hopefully it's a quick fix for you.
Last edited by naisu on Thu May 02, 2024 10:25 pm, edited 2 times in total.

AMGcheat
Noobzor
Noobzor
Posts: 6
Joined: Wed Mar 06, 2024 4:56 am
Reputation: 2

Re: HELLDIVERS 2

Post by AMGcheat »

ZoDDeL wrote:
Thu May 02, 2024 2:03 pm
p.s.
i noticed some people say that instant mission complete crashes on some new mission types. not much i can do about this.
if you get a crash on these new mission types then just try to avoid playing them together with instant mission complete.
all the other scripts still work with the tiny .301 update today.
I can confirm this when enabling the "instant complete all missions (main + side)" option it always seems to trigger a crash when attempting to launch the DEACTIVATE TERMINID CONTROL SYSTEM which is part of a major mission. I'm not sure what other missions will trigger a crash but I just wanted to share this. If anyone else can find anymore missions that trigger a crash while using the "instant complete all missions" option that would be appreciated.

Image

Image

Post Reply

Who is online

Users browsing this forum: FSMcas, gatagahshgatwe, Majestic-12 [Bot], tee18675