Repository navigation
Releases: SkyeShade/HD2Runtime-ModBuilder
Release list
HD2Runtime ModBuilder v1.8.0
HD2Runtime ModBuilder 1.8.0
HD2Runtime 0.31.0. ModBuilder now bundles the HD2Runtime 0.31.0 SDK (the published release asset, built at Runtime 2c38305). Most of what 0.31.0 adds is a new field on a weapon, vehicle or stratagem ModBuilder already edits, so it shows up where you would look for it. The project format does not change.
Download: HD2Runtime-ModBuilder-v1.8.0-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects bind to HD2Runtime 0.31.0. Projects bound to 0.30.3 (ModBuilder 1.7.1), 0.30.2, 0.30.0 or the 0.30.0-dev test SDK keep their binding and export exactly as before until you Rebind them; rebinding keeps every edit. Exports of projects bound to 0.31.0 require HD2Runtime 0.31.0.
New fields
Most are not tested in game yet. The export writes HD2Runtime's opt-in (allow_unverified_effect) for you, and the field shows a warning.
- Wind-up. Heat weapons with a firing charge (the LAS-16 Sickle and LAS-17 Double-Edge Sickle, the LAS-99 Quasar's warm-up, the AX/LAS-5 Rover gun, the A/LAS-98 Laser Sentry): firing charge, charge gain and loss per second, and whether the charge resets after a shot. The EXO-45 Patriot minigun and the TD-110 Maelstrom gun get wind-up and wind-down times.
- Beam pulses. Every beam weapon's beam fire mode, fire rate, beams per pulse and pulse length (the LAS-13 Trident's pulse length is what limits its fire rate).
- Missiles. The flight of the missile the StA-X3 W.A.S.P., FAF-14 Spear, MLS-4X Commando, P-33 and P-92 fire: lifetime, speeds, acceleration, turn rates and guidance delay (in the Projectile group).
- Team-reload ammunition. The GR-8, RL-77, FAF-14 and StA-X3 can carry spare magazines of their own (0 to 31), and the AC-8 spare rounds (0 to 511). The weapon reloads from them before using the backpack. The five team-reload backpacks get capacity, start and refill amounts; the support weapon's backpack panel says how the two work together.
- Mounted spread on the 17 projectile mounts (Exosuit guns, FRV guns, Bastion, Maelstrom and more).
- Orbital targeting. The Orbital Railcannon Strike's search radius, movement speed, duration and fire delay, and the Orbital Laser's retarget interval.
Backpack-fed ammunition rows
- In 1.7.1 the AC-8's and the four launchers' own ammunition rows were read-only, because HD2Runtime 0.30.2 said a value there did nothing. HD2Runtime 0.31.0 makes them the weapons' own spares, so on a 0.31.0 project they are ordinary fields again.
- A project bound to 0.30.2 or 0.30.3 keeps 1.7.1's behaviour until you rebind it. After the rebind, an edit saved on one of these rows is a normal edit, exported with the opt-in 0.31.0 requires.
Shown read-only for now
- Beam swaps (
attack.beam: the LAS-7 Dagger and other beam weapons firing another catalogued beam), the Eagle Rearm pool (stratagem.rearm_pool: charges before cooldown) and the fire-mode selector on single-mode weapons. These weapons can still switch to a different single mode. All three show their current value; their editors come in a later release. - Beam conversion (experimental) and status effect stats (
hd2.status_effect) have no editor; custom Lua can call them.
Project format and compatibility
- No format change. Projects stay at format 14. Projects bound to an earlier SDK generate the same Lua and export the same ZIPs as with 1.7.1, apart from the ModBuilder version recorded in
build-report.json. - ModBuilder 1.7.1 cannot open a project bound to 0.31.0 (it supports SDKs up to 0.30.3).
HD2Runtime ModBuilder v1.7.1
HD2Runtime ModBuilder 1.7.1
HD2Runtime 0.30.3. ModBuilder now bundles the HD2Runtime 0.30.3 SDK (the published release asset). 0.30.2 resolved seven weapons that were read-only because each matched two weapons in the game data; their fields are now editable. 1.7.1 also authors what 0.30.2 added: sentry and emplacement rounds, status effects on player weapon explosions and 23 more status effects. Backpack-fed ammunition rows are read-only now, with HD2Runtime's reason. Custom stratagems can be given unlimited uses clearly (HD2Runtime 0.30.3). The project format does not change.
Download: HD2Runtime-ModBuilder-v1.7.1-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version. The ZIP now also contains LICENSE, TRADEMARKS.md and THIRD_PARTY.md.
New projects bind to HD2Runtime 0.30.3. Projects bound to 0.30.0 (ModBuilder 1.7.0), 0.30.2 or the 0.30.0-dev test SDK keep their binding and export exactly as before until you Rebind them; rebinding keeps every edit. An export requires the bound SDK's Runtime, raised where the project uses something newer (below). HD2Runtime 0.30.3 also fixes two Runtime problems players reported with 0.30.2: a false Another mod changed the stratagem data card, and one stray entity row that blocked every mod's writes.
HD2Runtime 0.30.2 and 0.30.3
- Seven weapons unlocked. The GP-31 Grenade Pistol, P-72 Crisper, LAS-5 Scythe, LAS-7 Dagger, CQC-42 Machete, CQC-73 Entrenchment Tool and SMG-37 Defender were read-only (each matched two weapons in the game data). Their fields are now editable. A mod that edits one of them requires HD2Runtime 0.30.2. The GP-31 and the Dagger now show their own values (the Dagger's old 2000 heat capacity belonged to another weapon). The Scythe's heat capacity and heatsinks stay read-only: its default Laser Heatsink overwrites them.
- Renamed weapon sounds.
primary/smg37/seafis nowseaf/3andsecondary/gp31/altis nowother/wep_grenadier_rifle/1. A custom stratagem saved with an old name shows the problem under its sound field, with a button to use the new name. HD2Runtime still plays the old names. The new names require HD2Runtime 0.30.2. - Retired projectile.
SMG-37 Defender (projectile 150)was the SEAF SMG's round, so 0.30.2 removed it from the projectile list (31 donors). A swap to it is reported at its projectile selector after a rebind; pick another projectile or the weapon's own. - Minimum Runtime. Exports of projects bound to 0.30.3 require HD2Runtime 0.30.3. On an older binding, each feature asks for the release that added it: 0.30.2 for the seven weapons, the new sound names, sentry and emplacement rounds and the status effects below; 0.30.3 for a custom stratagem that keeps an explicit unlimited uses value (below). Custom content otherwise still requires 0.30.0.
Sentry and emplacement rounds
- Stratagems › Defensive: the A/AC-8, A/M-12, A/MLS-4X, A/M-23 and A/GM-17 sentries and the E/MG-101 and E/AT-12 emplacements have a Fired round section to fire another projectile.
- The swap changes every sentry of that stratagem on your machine, teammates' too (other machines keep the stock round). A sentry still aims for its own round: the section shows both rounds' speed and warns that it may miss.
- Not live-tested; the opt-ins are written for you. The A/MG-43 and A/G-16 stay read-only. Requires HD2Runtime 0.30.2. ModBuilder 1.7.0 refuses to build a project that holds one (it names the host) rather than dropping it.
Status effects
- On explosions. The explosion of 13 player weapons (CB-9, GL-15, GP-20, GP-31, P-33, P-34, P/40-K, PLAS-1, PLAS-101, PLAS-15, PLAS-39, R-36, SG-8P) can apply a status: pick it and its strength on the explosion row (Player Weapons, impact actions). Set the PLAS-101 Purifier's charged blast to Fire, strength 2, for HD2Runtime's own PurifierIncendiaryCharge test. Not tested in game yet: the export writes
allow_unverified_effect(andallow_sharedon the four shared rows) and requires HD2Runtime 0.30.2. - 23 more status effects. Every status picker (player weapons, support weapons, mounted weapons) now offers HD2Runtime 0.30.2's extended statuses, grouped as Attachable, Enemy slot (unverified) and Experimental (blind, bleed, electric, poison, …). Choosing one shows Runtime's text for its group (bleed lasts 9999 s). None is tested in game: the export writes
allow_unverified_effectfor it, even on rows that need no opt-in for the other statuses, and requires HD2Runtime 0.30.2.
Backpack-fed ammunition rows
- The AC-8 Autocannon's spare, starting and supply rounds, and the starting and spare magazines of the GR-8 Recoilless Rifle, FAF-14 Spear, RL-77 Airburst Rocket Launcher and StA-X3 W.A.S.P. Launcher, are now read-only, with HD2Runtime's reason: these weapons keep their ammunition in their backpack, so a value there has no effect in game.
- Above the rows, Show the backpack opens the drop-pod slot that delivers it. HD2Runtime keeps that backpack's ammunition read-only too.
- A project that already edits one of these rows keeps the edit, and it is still exported unchanged (HD2Runtime accepts it). The row shows the saved value, with Remove this edit and Show the backpack, and the Changes entry shows how many such edits it has.
Custom stratagems: unlimited uses
- Uses per mission in a custom stratagem's call-in is now a choice: Unlimited or Limited with a count (1 to 100). Unlimited writes no uses value, which every HD2Runtime 0.30 release reads as unlimited, as before. Typing 0 as the count also means unlimited.
- HD2Runtime 0.30.3 also accepts
uses = 0anduses = -1as unlimited. A Runtime project imported with one of them keeps it, so it round-trips. The field then says that this value requires HD2Runtime 0.30.3 (0.30.2 refuses it) and offers Use unlimited (no value), which removes the requirement. Below -1 is refused, in Runtime's words. - An Eagle's uses stay per rearm, as before.
Project format and compatibility
- No format change. Projects stay at format 14, as with 1.7.0. Projects bound to 0.30.0 or the 0.30.0-dev test SDK open, save and export as before.
- ModBuilder 1.7.0 cannot open a project bound to 0.30.2 or 0.30.3 (it supports SDKs up to 0.30.0).
Unchanged
- Projects bound to an earlier SDK generate the same Lua and export the same ZIPs as with 1.7.0, apart from the ModBuilder version recorded in
build-report.json(as in every release). - Custom projectiles, in-game options, additional packaged files and the import of projects are unchanged from 1.7.0.
HD2Runtime ModBuilder v1.7.0
HD2Runtime ModBuilder 1.7.0
HD2Runtime 0.30.0. ModBuilder now bundles the HD2Runtime 0.30.0 SDK, the release, not a 0.30.0-dev test build, and can author what it adds: stratagem call-in codes, names, descriptions and icons (including your own), call-in times, orbital barrage patterns, Eagle attacks and sentry turrets; vehicle handling and mounted turret motion; Jump and Hover Pack movement; enemy gibbing; support weapon charge; 32 new projectile donors (Eagle payloads, orbital shells, sentry rounds) for every projectile selector; and the new Lua APIs in Custom Lua.
Custom content (experimental). ModBuilder can now also create new game content, not only change existing objects: custom stratagems with their own icon, call-in code and delivery, and custom projectiles that existing weapons can fire. It is marked Experimental; where another tab refers to custom content (a projectile selector, the Changes panel), it is shown in violet. HD2Runtime 0.30.0 releases the custom stratagem API, but still calls it experimental with several players, and custom projectiles use Runtime modules outside its public API, which may still change. A mod with custom content requires HD2Runtime 0.30.0. Projects keep ModBuilder's own description of each object, never the Runtime's Lua, so they stay migratable. A mod built now may need rebuilding with a later ModBuilder.
Download: HD2Runtime-ModBuilder-v1.7.0-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects bind to HD2Runtime 0.30.0. Existing projects keep their SDK binding (for example 0.28.1) and export exactly as before until you rebind them. Every export states the HD2Runtime it needs in requires.hd2runtime.min_version: the bound SDK's version, raised to 0.30.0 when the project uses anything 0.30 adds (a 0.30 field, a projectile donor, custom content). The generated addon refuses to run on an older Runtime with that reason.
HD2Runtime 0.30
- Binding. The bundled SDK is HD2Runtime 0.30.0. Projects bound to the 0.30.0-dev SDK of the 1.7.0 test builds open and export as before (HD2Runtime 0.30.0 loads mods that declare 0.30.0-dev); once they use anything 0.30 adds, their export requires 0.30.0, and Rebind moves them to 0.30.0. Rebind also keeps a 0.28.x project's edits; where 0.30 asks for an opt-in it did not before (the PLAS-45 Epoch's 30 damage fields now need
allow_unverified_effect), the export writes it and the field shows a warning. Nothing asks you to acknowledge anything. - Stratagems.
- Call-in code on every stratagem: build the arrows (1 to 9) and apply them in one save. A code equal to one of the game's native codes (all 149, mission stratagems included) is written with the opt-in Runtime needs and named in a warning; a code another edit or custom stratagem already uses is resolved right in the editor.
- Presentation: each stratagem's name, cased name, description and icon can come from another stratagem (Look like another stratagem sets all four), and the icon can be your own PNG, packed exactly like custom content icons. It applies aboard the ship.
- Call-in time (0 to 60 s), the orbital barrage pattern (salvos, shells, intervals, scatter, shown next to the vanilla pattern in words), the Eagle attack (bomb landing pattern, drop interval, fire duration, sweep length, target radius, attack angle; the jets that share a pattern are named in a warning) and the sentries' spread, recoil, wind-up, beam rate, pitch/yaw coupling and side and rear range (with a Same as range switch). Sentry turret, targeting and minefield fields that were writable since 0.28 now show on the deployed entity too.
- Vehicles, backpacks and enemies.
- Handling: steering response on 7 vehicles; body turn speed, acceleration and deceleration on the 4 Exosuits.
- Turret motion on 5 mounts: turn speeds and traverse/aim limits. A limit pair that would cross is caught where you type it (Swap them / Keep / Cancel); Runtime would silently skip it.
- Jump and Hover Pack movement, grouped by flight phase. Launch thrust is labelled in m/s², as 0.30 corrects; the stored value and the Lua are unchanged.
- Enemy gibbing: the whole-body gib threshold on 23 Terminid classes, with a Disable bursting switch instead of typing −1.
- Fields Runtime publishes as not active on an object show a Not active badge and the reason.
- Support weapon charge.
- A Charge section on the RS-422 Railgun, PLAS-45 Epoch, ARC-3 and 40-K Meltagun: minimum, full and overcharge stages, bursts, auto-fire at full charge and explode at overcharge (marked as a hazard), with Runtime's meaning and range for each.
charge.level_1/2/3are shown as the charge times in seconds they always were. Deprecated ids are marked and offer a fix in place.- The Epoch's full-charge shot and explosion and the Epoch's and Railgun's overcharge explosions are editable. Two of them share one damage row, which the editor keeps in sync when you ask it to.
- Overcharge explosion: the Railgun can use the Epoch's, and the Epoch the Railgun's.
- On rate-selector weapons, Fire rate says it writes only the middle rate. The Torcher and the Hot Dog name each other where they share damage rows.
- Player (Helldiver) fields. A new Player page edits the Helldiver type (
hd2.helldiver(), HD2Runtime 0.30.0): movement speeds, stamina, the explosion damage every zone takes, and the damage multiplier, damage over time, durable share, share to main health and health of each of the six body zones (a compact zone table, the selected zone edited below it). Damage multipliers are chosen by name. Every write carriesallow_sharedandallow_unverified_effect, shown as warnings: the values apply to every Helldiver this machine simulates, are not live-tested, show only in a mission (the ship's Helldiver keeps a private copy), zone health applies from the next spawn, and speeds end at the game's 10 m/s cap. - Muzzle, optics and underbarrel attachments. Player Weapons has a new section listing each slot's attachments (the default first) with the stat modifiers they carry: ergonomics, sway, recoil, climb and spread (132 fields on 44 attachments). An attachment is shared by every weapon that can equip it, so an edit applies to all of them, and its effect is not live-tested yet; both are warnings, never checkboxes. Which attachment is equipped can't be changed.
- Armor. A new Armor page: piece weights of the 135 armor kits with a live preview of rating, speed and stamina regen; the three weight classes and the damage curve; and, solo only, your own armor bonus, stamina factor and a passive override (a second passive too). Nothing is tested in game except four armor-slot passive swaps; every write carries the opt-ins Runtime needs, shown as warnings.
- Projectile donors. Every projectile selector's Vanilla group offers HD2Runtime 0.30's 32 donors by Runtime's names (
Eagle 500kg Bomb (projectile 239)), with their emitter, flight and how their assets load. None is live-tested; every donor write carries both opt-ins and shows a warning. - Custom Lua.
- Pickers for homing shots, enemy spawn weights, limb injury and heal, velocity changes, loadout / weapon in hand / ammunition, resupply from a pack and the Pelican, and a picker over the 171 weapon sounds.
- Completion knows the 0.30 API (
hd2.enemiesis now callable,hd2.resources.image/model,hd2.diagnostics.performance(), the new field groups) and the Runtime's live-test evidence for each. - New snippets: change a stratagem's call-in code, make a stratagem look like another, and log the slowest mods.
- Checked with HD2Runtime 0.30.0's own validator. Exports with every new field (stratagems, vehicles, charge, donors) and the earlier fixtures validate against the Runtime, with its isolation probe.
Custom Stratagems
- A new sidebar group, Custom Content, holds Custom Stratagems and Custom Projectiles. The stratagem list shows each one's icon (in its family's category colour), name, ID, family, cooldown, uses, traits, call-in code, HD2Runtime's play status for the family and its readiness, with New, Templates, Import Runtime project…, Duplicate, rename, reorder and delete.
- Weapon variants on every support weapon. Built against HD2Runtime at
b3f42ec, the weapon variant family offers all 32 support weapons the Runtime can deliver (the TX-41 and MS-11 are left out with the Runtime's reason). A weapon whose type also appears as world loot or in other pods is written with the opt-in it needs and a warning that those copies become the variant too; a beam or flame weapon says it has no round to change. EAT expendable clones can take the reviewed direct hit damage (500) with their impact explosion. - Several custom stratagems in one mod, in one place. A mod holds up to 16. While one is open, a strip above its editor lists the others (switch, back to all, + Add another); the grid ends with an Add another card; and Overview has a Custom stratagems panel listing them with their call-in codes and readiness.
- Every family HD2Runtime 0.30 can build. Each shows only its own fields, and what HD2Runtime has shown of it in play (live-tested, partly tested or not live-tested, and its multiplayer status, from the Runtime's own schema):
- Orbital barrage: a Runtime barrage of a reviewed shell in an adjustable vanilla pattern (salvos, shells, intervals, scatter, impact), or a vanilla barrage with each shell's impact replaced.
- Eagle strike: a vanilla Eagle's strike with its own uses per rearm, rearm time and impact payload.
- Pelican gunship: the game's Pelican hovers over the beacon. Set its hover time, approach and orbit, and its chin gun: round (or the vanilla auto...
HD2Runtime ModBuilder v1.6.0
HD2Runtime ModBuilder 1.6.0
In-game options without a value change. Any field that can be an in-game option can now be exposed without editing its value first. Example: the missiles of the TD-110 Maelstrom can get a Mod Options Menu slider while the mod leaves them vanilla, and players change them in game. This is a ModBuilder feature only: HD2Runtime and its SDK are unchanged, because Runtime already accepts an option value equal to the expected (vanilla) value.
Download: HD2Runtime-ModBuilder-v1.6.0-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects require HD2Runtime 0.28.1, the same as 1.4.2 to 1.5.0. The bundled SDK is unchanged. Projects bound to an older SDK keep requiring that SDK's Runtime until you rebind them. In-game options need HD2Runtime SDK 0.25 or later, as before.
In-game options
- Expose as option on unedited fields. With in-game options switched on, an unedited field row shows Expose as option when you point at it or tab into it. This covers player weapons, projectile and explosion fields, support weapons, stratagems, vehicles and their mounted weapons, backpacks, boosters, magazine attachments, throwables and enemies. Saving the option adds the field's edit and its option in one save; Cancel adds nothing.
- Option-only edits. The edit keeps the vanilla value. Only the option changes it in game. The field row looks unedited and shows the In-game option badge. The option editor says Vanilla N, not edited: only the in-game option changes it.
- Defaults. The suggested slider defaults to vanilla. It runs over Runtime's published safe range where there is one, and from half to double the vanilla value otherwise. A choice starts as Default (vanilla, selected) and Modified (the slider's far end).
- Generated Lua. The same guarded operation as an edited field:
hd2.ensure({enabled=enabled, patch={..., expect=<vanilla>, value=option_<id>}}), with the sameallow_*flags. Without Mod Options Menu, players get the option's default (vanilla unless you change it). - Keeping and removing.
- Stop exposing (or Remove on the options page) removes the edit with the option.
- Reset on an edited field removes the edit and leaves the option row inactive, as before.
- Typing the vanilla value back into an exposed field keeps its option, so the field becomes an option-only edit.
- With in-game options switched off, option-only edits stay in the project and generate nothing.
- Shared values keep their rules.
- The Maelstrom's two missile pods are one mounted weapon, so a weapon-level value (magazine capacity, for example) can be edited or exposed through one pod only. Exposing it on the second pod is refused in the option editor, naming the first.
- A pod's missile damage is published as a shared damage row: its other consumers are the other pod and the MLS-4X Commando. Its option carries the same warnings and the
allow_shared/allow_unverified_effectflags as an edit.
- Checked with HD2Runtime 0.28.1's own export validator: an export with option-only edits on a Maelstrom missile pod, an AR-23 Liberator weapon field and projectile field, and an Orbital Precision Strike field validates with every operation resolved against its vanilla baseline.
Project format and compatibility
- Existing projects stay compatible. They open, save and export as before and keep their SDK binding and format. Projects saved by ModBuilder 1.4.2 itself still open without being rewritten and export the same ZIPs, apart from the builder version in
build-report.json. - A project with an option-only edit saves in format 13. The JSON shape is unchanged, but earlier ModBuilder versions remove edits whose value equals vanilla when they open a project, which would drop the option's operation silently. So every earlier version refuses a format-13 project with Unsupported project format or identity. and leaves the project file untouched. Like earlier formats, a project stays in format 13 after its option-only edits are removed.
Unchanged
- Projects without option-only edits generate the same Lua and export the same ZIPs as with 1.5.0, apart from the ModBuilder version recorded in
build-report.json(as in every release). - Options on edited fields, the master toggle, the fallback without Mod Options Menu and the generated options page are unchanged. The bundled HD2Runtime 0.28.1 SDK, project SDK bindings and the import of projects are unchanged.
HD2Runtime ModBuilder v1.5.0
HD2Runtime ModBuilder 1.5.0
Set up how HD2Arsenal presents your mod (its description and icon) and attach additional files once, and every export includes them in the mod ZIP. The Arsenal description and icon are generated into the exported manifest.json, which is where Arsenal reads them: an image added as an additional file alone is not shown as the icon. These are ModBuilder features only: they add no HD2Runtime capability, and the generated Lua and game files are unchanged.
Download: HD2Runtime-ModBuilder-v1.5.0-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects require HD2Runtime 0.28.1, the same as 1.4.2 and 1.4.3. The bundled SDK is unchanged. Projects bound to an older SDK keep requiring that SDK's Runtime until you rebind them.
Arsenal presentation
- Build / Export has a new Arsenal presentation section, separate from the gameplay edits. Set it once; every export writes it.
- Arsenal description: plain text, line breaks kept. HD2Arsenal shows it in its library, followed by the dependency line ModBuilder writes in every manifest. Leave it empty to show only the dependency line, as before.
- Icon: Select image… picks a PNG, JPG, GIF or WebP image, the types Arsenal's own Manifest Builder accepts. Each export packages it at the ZIP root under its own name and sets
manifest.json'sIconPathto it, which is how Arsenal finds a mod's icon. The image is read at every export, byte for byte. - This is what HD2Arsenal 0.36.2 reads when it imports a mod:
manifest.json'sDescriptionandIconPath. An image packaged only as an additional file is not used as the icon, because Arsenal shows an icon only whenIconPathnames it. Arsenal does not need to be installed to export, and it deploys only themod/game files; the icon stays in its library. - Problems are shown in the section and refuse the export: a missing or unreadable image, a file that is not the image type its name says, an unsupported type, or a description Arsenal would alter. Arsenal removes anything that looks like an HTML tag (text between
<and a later>), so ModBuilder asks you to reword it. - Example
manifest.jsonwith both set:"Name": "My Mod 1.0.0", "Description": "Faster Liberator: 720 RPM.\n\nRequires Bingus Shared Loader v15+ / API 1 and HD2Runtime 0.28.1+ / API 1; install dependencies separately.", "IconPath": "thumbnail.png",
Additional files
- Build / Export has a new Additional files section. Add file… picks any file on your computer. It goes to the ZIP root under its own name. Change its Path in ZIP to put it in a folder (for example
images/thumbnail.png), and × removes it from the export. The file itself is never changed or deleted. - The project saves where each file is on your computer and where it goes in the ZIP. ModBuilder reads the file at every export, so the ZIP always carries its current contents, byte for byte.
- ModBuilder does not rename, convert or interpret these files. Use them for files a site or tool expects in the ZIP (a preview image for a mod page, for example); the Arsenal icon is set under Arsenal presentation. An additional file cannot take the Arsenal icon's path in the ZIP.
- A ZIP path is relative and uses
/between folders (a typed\becomes/). Absolute paths, drives,.and..folders and names Windows cannot extract are refused.mod/is reserved for the generated files your mod manager installs into the game. A path may not be a file ModBuilder generates (manifest.json,README.md,src/addon.lua, …) or the path of another additional file, ignoring case. - A problem is shown on the file's row, where you fix it: a file that was moved or deleted, an invalid path, or a path that clashes with another file. Until it is fixed, the export is refused with a message naming the file, for example:
ModBuilder never skips a file and never overwrites a generated file.
Cannot package additional file: thumbnail.png Source file does not exist: C:\Users\me\Pictures\thumbnail.png - Example ZIP of a project with an Arsenal icon
thumbnail.pngand an additional file atimages/preview.png:README.md build-report.json hd2runtime.json images/preview.png manifest.json mod/9ba626afa44a3aa3.patch_0 mod/9ba626afa44a3aa3.patch_0.gpu_resources mod/9ba626afa44a3aa3.patch_0.stream src/addon.lua thumbnail.png - Duplicating a project keeps its Arsenal presentation and additional files. A project can have up to 32 additional files of at most 64 MiB each.
Project format and compatibility
- Existing projects stay compatible. They open, save and export as before, keep their SDK binding and format, and do not gain the new sections until you use them. This was checked with projects saved by ModBuilder 1.4.2 itself: opened, saved and exported by 1.5.0, they produce the same ZIPs as 1.4.2 did, apart from the builder version in
build-report.json. Projects that never use the new sections also stay readable by earlier versions. - A project with an Arsenal presentation or additional files saves in format 12. Older ModBuilder versions do not silently downgrade it: every earlier version refuses to open, export, duplicate or rename it, showing The JSON property 'arsenal' (or 'packagedFiles') could not be mapped to any .NET member…, and leaves the project file untouched. Like earlier formats, a project stays in format 12 after both are removed.
- ModBuilder builds each export from the project. It does not open or edit existing mod ZIPs.
Unchanged
- Exports of projects without an Arsenal presentation or additional files are byte-identical to 1.4.3's, apart from the ModBuilder version recorded in
build-report.json(as in every release). The icon and additional files get the same fixed timestamp as the generated files, so repeated exports of an unchanged project with unchanged files are identical. - The generated Lua, the gameplay archive,
hd2runtime.json, the bundled HD2Runtime 0.28.1 SDK, project SDK bindings and the import of projects are unchanged.manifest.jsonchanges only where you set an Arsenal presentation.
HD2Runtime ModBuilder v1.4.3
HD2Runtime ModBuilder 1.4.3
A small polish of the presentation trait editor. It adds no new HD2Runtime capability: since 1.4.0 this editor has written HD2Runtime's existing hd2.fields.presentation.traits field, and 1.4.3 makes its purpose and the trait IDs explicit.
Download: HD2Runtime-ModBuilder-v1.4.3-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects require HD2Runtime 0.28.1, the same as 1.4.2. Projects bound to an older SDK keep requiring that SDK's Runtime until you rebind them.
Presentation traits
- In a weapon's Armory labels section, the trait list is now titled Presentation traits (up to 5) (it was "Displayed traits"). It states what it edits: HD2Runtime's
hd2.fields.presentation.traits, the trait IDs the armory shows, in this order. The wiki traits are not changed. - Each trait shows its label together with its exact published ID (for example TEAM WEAPON ·
team_weapon); the generated Lua writes the IDs. Adding, removing and reordering traits, the five-trait limit and the separate labels for the two INCENDIARY traits work as before. - Where HD2Runtime publishes a weapon's traits only as blocked (CQC-20 Breaching Hammer, EAT-411 Leveller, EAT-700 Expendable Napalm), the editor now shows Unavailable with HD2Runtime's reason instead of nothing.
- On the Changes page, a saved trait edit shows the trait labels instead of raw IDs.
- For example, changing the GR-8 Recoilless Rifle from TEAM WEAPON · ANTI-TANK to EXPENDABLE writes one guarded operation:
expect={'team_weapon','anti_tank'},value={'expendable'}, withallow_unverified_effect=trueas HD2Runtime requires for this field.
Unchanged
- The operations ModBuilder generates, the project format, the bundled HD2Runtime 0.28.1 SDK and project SDK bindings are unchanged, and so are the guards and shared-value checks.
- 1.4.2's distinction between the game's own trait labels and the wiki's trait list stays as it was, as do the Changes-page performance improvements.
HD2Runtime ModBuilder v1.4.2
HD2Runtime ModBuilder 1.4.2
Support for HD2Runtime 0.28.1, a much faster Changes page for large projects, and clearer armory labels.
Download: HD2Runtime-ModBuilder-v1.4.2-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
New projects require HD2Runtime 0.28.1. Projects bound to an older SDK keep requiring that SDK's Runtime until you rebind them.
HD2Runtime 0.28.1
- ModBuilder 1.4.2 ships the HD2Runtime 0.28.1 SDK and uses it for new projects, offline too. Every SDK file it reads is byte-identical to the one in the public 0.28.1 release. The capabilities are the same as 0.28.0's; code completion for custom Lua adds
hd2.diagnostics.operations(). - Your projects keep their SDK. Updating ModBuilder never changes the SDK a project is bound to, and never rewrites the project. Its export keeps declaring that SDK, which HD2Runtime 0.28.1 reads: an SDK 0.27 project's edits that HD2Runtime 0.28.0 refused for a missing
allow_unverified_effect(the PLAS-101 Purifier's explosion damage, for example) apply again on 0.28.1, where they are logged as legacy operations. - Rebinding a project to SDK 0.28.1 (Settings) keeps its edits, writes the acknowledgements the 0.28 SDKs require, and exports a mod that requires 0.28.1. A project bound to SDK 0.28.0 generates the same operations after rebinding.
Performance
- The Changes page opens and responds much faster in large projects. With 600 changes, opening the page drops from about 5 s to under 0.1 s, switching one edit off or on from about 4 s to under 0.1 s, and Show all fields in a weapon group from about 12 s to instant.
- A change group builds its fields and editors when you expand it, not while it is collapsed.
- Each edit does less work: a value committed again unchanged is not saved and rebuilt again, and the checks behind the Lua preview run once per edit instead of twice.
- This is ModBuilder's own speed. How long HD2Runtime takes to apply a mod's changes in game is unchanged: every change is still its own Runtime operation, so one refused change never stops the others.
Armory labels
- Support weapons: the trait list from the Helldivers wiki is now labelled Wiki: … and shown in full (it was cut to three). The labels the game's armory shows are under Armory labels, read from the weapon itself; the two can differ (the M-1000 Maxigun's own record lists none).
- A weapon that shows several penetration labels (SG-20 Halt, LAS-17 Double-Edge Sickle, P-33 Missile Pistol) no longer reads "No penetration label"; the reason from HD2Runtime is shown.
- The two INCENDIARY labels are told apart in the Add trait list by their IDs.
Unchanged
- The project format is unchanged, and so are the operations generated for a project on its own SDK.
HD2Runtime ModBuilder v1.4.1
HD2Runtime ModBuilder 1.4.1
A fix for enemy and vehicle damage-zone edits: editing one body part no longer blocks edits to the other parts.
Download: HD2Runtime-ModBuilder-v1.4.1-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
Requires HD2Runtime 0.28.0, the same as 1.4.0.
Fixes
- Fixed enemy and vehicle damage-zone edits being treated as shared values. After one edit, changing the same value on another part (for example a Charger's head and a leg plate, or two zones of one vehicle) was refused with "… is one shared value, already edited through …".
- Independent body parts and zones can now be edited together.
- Genuinely shared values are still detected and protected: an enemy attack row used by several attacks or enemies, a row shared by two throwables, or a row a Guard Dog and a vehicle mount both fire can still be edited through only one of them.
Unchanged
- The project format, the bundled HD2Runtime 0.28.0 SDK and HD2Runtime behaviour are unchanged. Projects saved by 1.4.0 open as they are.
HD2Runtime ModBuilder v1.4.0
HD2Runtime ModBuilder 1.4.0
Support for HD2Runtime 0.28.0: one projectile editor for every weapon that fires projectiles, the projectile builder, programmable ammunition, rate-of-fire modes, weapon feeds, armory presentation, underbarrels, Guard Dogs and the new equipment coverage, enemies and structures, event scripting and custom Lua, and a Simplified Chinese interface.
Download: HD2Runtime-ModBuilder-v1.4.0-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
Requires HD2Runtime 0.28.0. ModBuilder 1.4.0 ships the HD2Runtime 0.28.0 SDK and uses it for new projects, offline too. Every SDK file it reads is byte-identical to the one in the public 0.28.0 release. Mods that use a 0.28.0 feature declare min_version = 0.28.0.
HD2Runtime 0.28.0
- Full 0.28.0 SDK sync. ModBuilder reads every capability file the 0.28.0 SDK publishes. Its capability audit sorts each published capability into edited, shown read-only or deliberately left out, and finds none unaccounted for.
One projectile editor
- Unified projectile hosts. Player primaries and secondaries, support weapons, mounted and vehicle weapons (EXO-45 Patriot, EXO-49 Emancipator, EXO-51, the FRV guns, M-103, GATER turret) and the Guard Dog gun all swap their projectile the same way.
- One donor pool. Any catalogued projectile can be fired by any compatible host, whichever loadout slot, stratagem or mount owns it: primary → primary, primary → support, support → primary, support → support, and mounted hosts. Package loading, compatibility class, sharing and live evidence come from the SDK.
- Read-only hosts stay visible with Runtime's reason: a selector or weapon function owns the projectile, the weapon is not magazine-fed, the output spawns an entity, the output is a beam, arc, spray or melee family, the root is ambiguous, or the package is unavailable.
Projectile builder
- A projectile row's direct-hit damage (with its statuses), impact explosion and expiry explosion can take another row's, or be cleared where Runtime allows it. Its velocity, drag and penetration slowdown are shown with it.
- Host swap, host row and donor row are kept apart. A slot edit changes the row for everything that fires it and does not follow a projectile swap; to give a swapped weapon an effect, you edit the donor's row. When other weapons fire that row, the editor names them.
- The MA5C Assault Rifle's penetration slowdown, like every projectile value, is edited through the same projectile editor.
Programmable ammunition and weapon modes
- Programmable ammo: give a weapon an alternate projectile switched by its weapon-function button, with the binding written in the same transaction. The S-11 Speargun (Gas or Stun) and the MG-206 HMG (Incendiary, Stun or Gas) use Runtime's proven pairs; each choice shows its package and opt-ins.
- The editor shows two cards, the same on player and support weapons. Base mode is what the weapon fires with programmable ammunition off (marked Vanilla / default, or Swapped projectile when a projectile swap changes it). Alternate mode is what it fires with it on. Add alternate mode opens the projectile list inside that card, and Remove alternate mode takes it and its input binding away. A native alternate (AC-8 FLAK, GR-8 HE, RL-77) can be replaced and restored, but not removed. The card says which input switches it; if the rate-of-fire selector already holds that input, the choice is offered right there.
- Mode labels and icons: each card has its own label and HUD icon, from the game's own labels, with an automatic icon. Removing or replacing an alternate whose row has label edits asks whether those edits go too.
- Rate-of-fire modes: the X / Y / Z rates, the default mode and the selector order, for weapons with a selector and for weapons that can gain one.
- Weapon feeds: native and programmable feeds, the SG-20 Halt's flechette and stun feeds with their own fields.
- Armory presentation: the penetration label and trait tags the armory shows, kept separate from the real armor penetration and damage.
- Underbarrels: the AR/GL-21 One-Two's grenade launcher is its own nested section (spread, loaded, spare, starting and resupplied grenades, fire rate), and other underbarrels appear the same way.
- Status effects on player, support and mounted weapon damage are chosen by name.
Equipment and more
- Guard Dogs: the drone's health and body zone, and the drone's weapon through its backpack.
- SH-32 and SH-51 shields, Warp Pack and Hover Pack, with their new fields.
- Resupply under the Mission category: cooldown, uses and its drop-pod payload slots.
- Enemies and Structures pages (
hd2.enemy/hd2.structure): main health and armor, damage zones and attacks. - Sentry turn speed and targeting range, minefield salvos, heat levels, recoil multipliers and the LAS-98 beam fire rate. Beam, arc and spray outputs are shown as Runtime publishes them; no projectile editing is invented for them.
Event scripting and custom Lua
- A project can carry its own
src/addon.lua, run after the generated changes, with syntax highlighting, autocomplete from the SDK and a syntax check. - The event reference covers every 0.28.0 event, including player hit and player damage dealt, with actions (explosions, projectiles, statuses, healing) and ready-to-insert snippets. A diagnostics reference explains write conflicts and optional telemetry, which ModBuilder never turns on.
Acknowledgements and live evidence
- The opt-ins
allow_shared,allow_unverified_effectandallow_unverified_referenceare written exactly where the SDK requires them, and each warning says why. Where Runtime's live tests proved an exact value, that value no longer carries the unverified opt-in. Nothing needs to be acknowledged by hand.
Reliability
- SG-20 Halt fix (issue #2). Halt edits no longer stop other changes from applying. The Halt's feed fields use their branch-qualified names, and every generated operation is now built separately, so an operation that cannot be built is skipped and logged, and the rest still register.
- Projectile, damage and explosion edits now carry
allow_unverified_effectwherever the SDK requires it (earlier builds could omit it on grouped edits). A drop-pod pickup Runtime's live test proved in that exact slot (the Grenade Box in the Resupply pod) no longer carriesallow_unverified_reference. - The SDK is pinned: the bundled SDK files are byte-identical to the HD2Runtime 0.28.0 release's, a local development SDK with different contents is reported as a different build, and projects stay on their own SDK until you rebind them.
Languages
- The interface is available in English and 简体中文 (Simplified Chinese). Choose it in Settings & SDK → Language: System default, English or 简体中文.
- Switching is immediate and keeps your open project, unsaved edits and SDK.
- Generated Lua, project files and exported mods are identical in every language. Game names, SDK text, identifiers and Lua stay as published.
- Translations are standard
.resxresource files. See docs/localization.md.
Compatibility
- Projects from earlier versions open unchanged and stay on their SDK until you rebind. Projects using features new in 1.4.0 save in format 11; older ModBuilder versions refuse that format rather than dropping edits.
- The language choice is stored in
preferences.jsonin%LOCALAPPDATA%\HD2RuntimeGUI\.
Known limits
- Some Chinese text was written during implementation and still awaits review by a native speaker. Text published by the SDK stays in English.
- Runtime 0.28.0 has no custom projectile rows yet; the builder composes existing rows only.
Thanks
Special thanks to @CChusky for proposing ModBuilder's localization support and providing the original UI string inventory and Simplified Chinese translation baseline (issue #1).
Their inventory and zh-Hans resources covered the v1.3.0 interface. Text added or reworded since then was translated or adapted during implementation, following their terminology.
HD2Runtime ModBuilder v1.3.1
HD2Runtime ModBuilder 1.3.1
A small fix for projectile swaps on weapons that already have projectile stat edits. The swap is now handled where you make it, instead of blocking the build and sending you to Changes.
Download: HD2Runtime-ModBuilder-v1.3.1-win-x64.zip (Windows 10/11 x64). Extract it and run HD2RuntimeModBuilder.exe, or use Install update from any earlier version.
Changes
- Swap with edits, decided in place. When you pick another projectile (or Reset projectile) while the current one has edits (projectile, damage or explosion values, or a replaced impact/expiry explosion), a small prompt appears under the selector. It lists your changed values and offers Switch and keep my values, Switch and discard them or Cancel. Nothing is saved until you choose.
- Keeping values applies the same values to the new projectile in the same save, measured against its own base values. A short note afterwards says what happened, for example "Kept 2 values on the new projectile." Values that already match the new projectile's base are not written. Values the new projectile does not have are listed instead of failing the swap.
- Reset projectile on Changes asks the same question in its row: Reset and keep my values / Reset and discard them / Cancel.
- Projects with leftover edits. A project saved by an earlier ModBuilder can have edits on a projectile the weapon no longer fires. That weapon's Projectile section now opens by itself with a Needs attention badge and Keep on current projectile / Discard them buttons. The build banner says Open weapon and takes you there, not to Changes.
- Editing a leftover value on the projectile the weapon fires now simply replaces the old edit. Before, this showed "Composition target changed. Reset the old object edit before editing the new object."
Unchanged
- Generated Lua, the project format and HD2Runtime behaviour are unchanged. Kept values are written exactly like values you set by hand on the new projectile.
- Shared-object writes still carry
allow_sharedand show their warning. No acknowledgement is needed.