• Important Notice: Please review our guidelines regarding cheating, game balancing, and mods for Helldivers 2. Read the full notice here before downloading or uploading mods.

HD2Runtime v0.28.1

A Mod for Helldivers 2
HD2Runtime akl_mod_preview_image
HD2Runtime requires BingusSharedLoader 18 or later
https://ayakamods.com/mods/bingus-shared-loader.3861/


A modding runtime that maps many Helldivers 2 values into an easier and safer API for creating mods with much less manual reverse engineering and guesswork.

Join the HD2Runtime Discord
For support, development discussion, modding help, updates, and community projects


Always Give Bingus Shared Loader Higher Load Priority Than HD2Runtime




Support Development

Enjoying HD2Runtime or ModBuilder? If you'd like to support continued development, you can support me on Ko-fi




Making a Mod with HD2Runtime

HD2Runtime is installed once and shared by mods that use it.

Creating a mod

Recommended Tool:

https://github.com/SkyeShade/HD2Runtime-ModBuilder/releases

1790642443139.png

Runtime Modbuilder is a tool i made specifically to lower the barrier of entry to modding this game.

Warning:
Some features are still experimental, and a few values may not map perfectly yet.


Manual Option:

1. Download and extract HD2Runtime-ModTemplate-<version>.zip from the github release page
2. Open the extracted folder in Rider or another code editor
3. Edit hd2runtime.json
- Change the mod name
- Change the resource ID to something unique, for example:
mods/yourname/my_mod
- Set the required HD2Runtime version for the features you use
4. Edit src/addon.lua
5. Run build.cmd
6. Import the ZIP created in the build folder into Arsenal or your mod manager
7. Enable Bingus Shared Loader, HD2Runtime, and your mod, then deploy and restart the game

Very Basic example

1790594165038.png

expect is the vanilla value Runtime expects before writing. Copy it from the SDK capability metadata; don’t guess it.

This changes the Liberator Concussive fire rate from its expected vanilla value of 400 RPM to 1100 RPM.

How do I know what values I can edit?

Download the HD2Runtime SDK from the github release and look inside its capability files.

Useful files include:

PlayerWeaponAuthoringCapabilities.json -> primary and secondary weapons
SupportWeaponAuthoringCapabilities.json ->support weapons
StratagemAuthoringCapabilities.json -> stratagems and deployed entities
VehicleAuthoringCapabilities.json -> vehicles
BackpackAuthoringCapabilities.json -> backpacks
MagazineAttachmentCapabilities.json -> magazine attachments

These files tell you:

- supported object names
- editable fields
- vanilla/default values
- whether a field is writable
- whether the edit affects shared data
- whether special safety acknowledgement flags are required

The expect value should normally come from the published baseline in these files. Do not guess it.

HD2Runtime checks the expected value before writing. If the game updated, another mod changed the value, or the target no longer matches what Runtime expects, the write is rejected instead of blindly modifying memory.

Useful operations

hd2.patch(...) -> applies one guarded change.

hd2.ensure(...) -> keeps a change applied if the game later resets it.

hd2.transaction(...) -> changes several fields on the same object together.

hd2.plan(...) -> coordinates changes across multiple objects.

Logs

If your mod does not work, check:

%LOCALAPPDATA%\CowboyBingus\Helldivers2\Logs\

Useful files:

BingusSharedLoader.log
HD2Runtime.log

APPLIED means Runtime successfully changed the value.

ALREADY_DESIRED means the value was already what your mod requested.

Full developer guide

See the HD2Runtime GitHub documentation for target navigation, safety flags, vehicles, backpacks, magazine attachments, plans, transactions and troubleshooting.

Github Link: https://github.com/SkyeShade/HD2Runtime



Found a bug?
Bugs are inevitable in a project as large as HD2Runtime, especially while it is still in early development.

If you find a bug or incompatibility, please reach out to me or submit an issue report on GitHub so I can investigate it and, if possible, implement a fix.



Missing feature?
If you think HD2Runtime is missing a feature or you have an idea for a new addition, feel free to reach out to me here. Please avoid opening GitHub issues for feature requests unless the request is specifically related to an existing issue.


[Disclaimers]

HD2Runtime does not support public matchmaking.

HD2Runtime is intended for private, friends only, invite only, and other controlled modded sessions where all participants have chosen to use mods.

Running HD2Runtime with gameplay modifying mods while playing with people who are not running the same mod setup may cause crashes or other unpredictable behavior for you, other players, or both.

In future versions Runtime will prevent a game running HD2Runtime from hosting or entering public matchmaking.

The goal is to keep Runtime mods from silently affecting players who did not choose to participate in a modded session, and to keep HD2Runtime focused on experimentation, custom content, and private modded gameplay rather than becoming a public-lobby advantage framework.

Private/invite-only sessions remain supported.

LLMs were used during the development of this mod.
1.3 MB
Log in or sign up to download
Uploaded by
SkyeShade
Downloads
3,969
Comments
133
Views
17,705
First release
Last update
Platform
PC 
Version
v0.28.1
Total Size
1.3 MB
Rating
5.00 star(s) 8 ratings

Uploaded by

  • 3,969
  • 17,705

Ratings

5.00 star(s) 8 ratings

More mods from SkyeShade

  • PC Buffed AR-23C Liberator Concussive

  • PC Vampiric Throwing Knives

Latest updates

  1. HD2Runtime v0.28.1 - SDK Compatibility Hotfix

    HD2Runtime v0.28.1 - Added backwards compatibility for mods authored against SDK 0.27.x when...
  2. HD2Runtime v0.28.0 - Events, Enemies, Programmable Ammo & More

    Biggest HD2Runtime update so far. 0.28.0 adds event/action scripting, projectile composition...
  3. HD2Runtime v0.27.0 - Automatic Asset Loading

    HD2Runtime v0.27.0 Added automatic asset/package loading for supported cross-package reference...

SkyeShade

Members
Members
Sep 27, 2026
59
16
how would you go about changing the damage and armor penetration on support weapons like the autocannon for example?
its a bit late for me rn, should really sleep. but i heavily recommend you take a look at the ModBuilder tool i linked in the mod page
 

peyman3507

Members
Members
Sep 20, 2026
19
5
this is genuienly amazing. i still have one gripe, there is not a singular example on how to give more than just one change to a weapon. something something field no exposed. how to expose? what does expose even mean? idk. i need an example. im never going to just change a rate of fire or just change a damage.

edit: gonna try the mod builder it might be my answer
 

SkyeShade

Members
Members
Sep 27, 2026
59
16
this is genuienly amazing. i still have one gripe, there is not a singular example on how to give more than just one change to a weapon. something something field no exposed. how to expose? what does expose even mean? idk. i need an example. im never going to just change a rate of fire or just change a damage.

edit: gonna try the mod builder it might be my answer
You can absolutely make multiple changes in one mod. For fields on the same underlying object, you basically use a transaction with multiple changes. and ofc for unrelated fields/targets you just add more hd2.ensure(...) operations.


Example:
Code:
local hd2=require('mods/skyeshade/hd2runtime')

local operations={}
operations[#operations+1]=hd2.ensure({
    transaction={
        id='gui-object-56b8e30bb15bf8c7d388ee40',
        target=hd2.weapon('AR-23 Liberator'):attack('primary'):projectile(),
        allow_shared=true,
        changes={
            {field=hd2.fields.damage.ap_direct,expect=2,value=3},
            {field=hd2.fields.damage.ap_extreme,expect=0,value=1},
            {field=hd2.fields.damage.ap_large,expect=2,value=3},
            {field=hd2.fields.damage.ap_slight,expect=2,value=3},
            {field=hd2.fields.damage.player_standard_damage,expect=90,value=100},
        },
    }
})
operations[#operations+1]=hd2.ensure({
    patch={
        id='gui-object-f20713ef4d7a5cb02017983d',
        target=hd2.weapon('AR-23 Liberator'),
        field=hd2.fields.weapon.fire_rate,
        expect=640,
        value=900,
    }
})
operations[#operations+1]=hd2.ensure({
    patch={
        id='entity-784e355dc80f63d32faff4eb',
        target=hd2.weapon_attachment('weapon-attachment/v1/magazine/rifle-5-5x50mm-extended/bfc7127000978692'),
        allow_shared=true,
        allow_unverified_effect=true,
        field=hd2.fields.attachment.magazine_capacity,
        expect=45,
        value=60,
    }
})
return operations

That changes the Liberator’s damage/AP, fire rate, and extended-mag capacity in the same mod.


I’d also recommend checking out HD2Runtime ModBuilder, i linked it in this mod page. it can generate this structure for you and makes it much easier to see which fields are currently available.


As for “exposed”. it basically means a field has been mapped and proven enough for Runtime to let mods write to it safely. Some game values still aren’t writable yet because I haven’t finished identifying/proving their native data or behavior, so Runtime intentionally blocks those instead of guessing.
 

peyman3507

Members
Members
Sep 20, 2026
19
5
im sorry w
You can absolutely make multiple changes in one mod. For fields on the same underlying object, you basically use a transaction with multiple changes. and ofc for unrelated fields/targets you just add more hd2.ensure(...) operations.


Example:
Code:
local hd2=require('mods/skyeshade/hd2runtime')

local operations={}
operations[#operations+1]=hd2.ensure({
    transaction={
        id='gui-object-56b8e30bb15bf8c7d388ee40',
        target=hd2.weapon('AR-23 Liberator'):attack('primary'):projectile(),
        allow_shared=true,
        changes={
            {field=hd2.fields.damage.ap_direct,expect=2,value=3},
            {field=hd2.fields.damage.ap_extreme,expect=0,value=1},
            {field=hd2.fields.damage.ap_large,expect=2,value=3},
            {field=hd2.fields.damage.ap_slight,expect=2,value=3},
            {field=hd2.fields.damage.player_standard_damage,expect=90,value=100},
        },
    }
})
operations[#operations+1]=hd2.ensure({
    patch={
        id='gui-object-f20713ef4d7a5cb02017983d',
        target=hd2.weapon('AR-23 Liberator'),
        field=hd2.fields.weapon.fire_rate,
        expect=640,
        value=900,
    }
})
operations[#operations+1]=hd2.ensure({
    patch={
        id='entity-784e355dc80f63d32faff4eb',
        target=hd2.weapon_attachment('weapon-attachment/v1/magazine/rifle-5-5x50mm-extended/bfc7127000978692'),
        allow_shared=true,
        allow_unverified_effect=true,
        field=hd2.fields.attachment.magazine_capacity,
        expect=45,
        value=60,
    }
})
return operations

That changes the Liberator’s damage/AP, fire rate, and extended-mag capacity in the same mod.


I’d also recommend checking out HD2Runtime ModBuilder, i linked it in this mod page. it can generate this structure for you and makes it much easier to see which fields are currently available.


As for “exposed”. it basically means a field has been mapped and proven enough for Runtime to let mods write to it safely. Some game values still aren’t writable yet because I haven’t finished identifying/proving their native data or behavior, so Runtime intentionally blocks those instead of guessing.
im sorry for wasting your time i was trying to do it all manually that's why it didnt work. mod builder made it all the easier. jesus fucking wowwwwww i have been writing a doc of my own all of it is gonna go live soon with billions of credits of you and bingoos in the description
 

peyman3507

Members
Members
Sep 20, 2026
19
5
now i have another request in the future can you look into allowing the removal of certain weapons from the list? or strategem deleting or even adding some support weapons into the primary list?
 

SkyeShade

Members
Members
Sep 27, 2026
59
16
now i have another request in the future can you look into allowing the removal of certain weapons from the list? or strategem deleting or even adding some support weapons into the primary list?
i can put that on the pile of things to try and get done yes
 

peyman3507

Members
Members
Sep 20, 2026
19
5
these are very very expansive and impressive but i wanna see if you could allow any normal weapon to apply status like stun. i saw someone on reddit give minigun stun so i wanna do that too
 

SkyeShade

Members
Members
Sep 27, 2026
59
16
these are very very expansive and impressive but i wanna see if you could allow any normal weapon to apply status like stun. i saw someone on reddit give minigun stun so i wanna do that too
shouldnt be too hard considering weapons like the Coyote already applies a fire status i can look further into, might add for 0.28.0 or 0.29.0 when i get to that
 

peyman3507

Members
Members
Sep 20, 2026
19
5
these are very very expansive and impressive but i wanna see if you could allow any normal weapon to apply status like stun. i saw someone on reddit give minigun stun so i wanna do that too
amazing <3 sorry for being needy but are enemy changes planned too? those are essential for my balancing