ResForge - a decompiler / editor / recompiler for .res files

Forum for alternative clients, mods & discussions on the same.

ResForge - a decompiler / editor / recompiler for .res files

Postby Nightdawg » Wed Jun 24, 2026 7:35 pm

Hello.

Yes, I know there are other tools. I made this one mostly because I have unlimited AI tokens and wanted a working 3D model exporter/importer.

It has grown into a fairly complete resource editor, but feedback from actual modders is still very welcome—especially requests for useful workflows, missing formats and fixes.


ResForge is a standalone graphical and command-line editor for Haven & Hearth .res files. It can replace textures, sounds, fonts, text and keybinds; edit typed resource data; preview 3D models and skeletal animations; and round-trip models and animations through Blender.

Its core promise is lossless-by-construction editing: if you change nothing, the resource remains byte-for-byte identical. A layer is only exposed for friendly editing when ResForge can prove that decoding and re-encoding reproduces its original bytes. Unsupported or unusual data stays preserved as raw rather than being silently corrupted.

Re-skinning a texture and the editable-JSON material editor
Image

Dark mode
Image

Built-in 3D viewer (no OpenGL—pure-Java software renderer)
Image
Image

Skeletal-animation playback—combined or individual clips, speed control and timeline scrubbing
Image

Animated equipped-item preview with live boneoff editing
Image

What it does

  • Re-skin 2D art—replace PNG/JPEG images at any size, swap model textures and alpha masks, and edit image headers such as id, z/sub-z and draw offset.
  • Swap media—replace sounds (Ogg, with a built-in player), fonts (TTF/OTF), MIDI and terrain tiles.
  • Edit typed data as JSON—including props, action keybinds, mat2 materials, sprite animations, click hitboxes (neg), collision (obst), equip points (boneoff), lights and plain text such as tooltips and pagina text. Typed editing is only enabled when the original data round-trips exactly.
  • Full 3D model round-trip through Blender—export geometry, both UV sets, textures, skeletons, skinning and animations to a .glb; reshape, re-UV, add or remove vertices, faces and complete model parts; then rebuild the resource. Modern mesh materials and distinct submeshes are preserved.
  • Full skeletal-animation editing through Blender—export standalone or multi-layer skan animations with their bind skeleton and preview model. Translation and rotation tracks can be completely remade: add or remove bone tracks, use arbitrary key counts and timing, and import baked STEP or CUBICSPLINE motion. Multi-layer resources include a combined Blender action for convenient preview and editing while retaining their individual layers. When importing a Blender export, ResForge asks which edited action or actions to rebuild instead of relying on Blender's unstable export order.
  • Built-in 3D viewer—textured, shaded and wireframe rendering with orbit, zoom and pan; live sprite-animation previews; and skeletal-animation playback with combined or individual clips, speed control and timeline scrubbing.
  • Animated equipped-item previews—preview boneoff equip-point data on a moving player model. Valid JSON edits update the open preview live before they are applied to the resource.
  • Texture-resolution tools—a per-material texture picker lets you switch each part between the resource's own textures live. An optional Resolve external textures toggle loads textures stored in linked resources.
  • Fetch resources from the server by in-game path, such as gfx/borka/male, or browse names from the local game cache and fetch the latest version. Cache indexes are saved for faster subsequent browsing, and animation companion resources can be fetched directly from their selection dialog.
  • References report—list every resource referenced by a .res file in one place.
  • GUI options—persistent dark mode, adjustable UI scaling and modern Windows file dialogs with an editable address bar.
  • Command-line tools—the editor's operations are also available for scripting, inspection and batch verification.

GitHub: https://github.com/Nightdawg/ResForge
Latest release: https://github.com/Nightdawg/ResForge/releases/latest

Open source under the MIT license.

Known limitations (v1.3.1)

Deliberately out of scope for now—and nothing here can corrupt a file, because unsupported data remains lossless and read-only:

  • Skeletal-animation translation and rotation tracks can be completely remade, but playback mode, bone scale and control/effect events remain read-only and are preserved. Adding or removing manim frames is still unsupported.
  • The glTF model rebuild is not byte-lossless; rebuilt models should be verified in-game.
  • Runtime variable materials, such as wood-type substitutions, and Dyntex sprite additions appear shaded in the 3D viewer because their final images are not stored in the model resource. External static textures can be loaded with Resolve external textures.
  • Code and codeentry layers remain read-only.
  • A few unusual typed instances remain raw by design under the lossless-or-raw guarantee.

Big thanks to loftar for providing some server-side code related to resource making, and for suggesting this glTF crap I don't really understand, but which works great.
Last edited by Nightdawg on Mon Jul 20, 2026 8:06 pm, edited 10 times in total.
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby axus » Thu Jun 25, 2026 1:53 am

Jorb is gonna make so many hats with this!
axus
 
Posts: 142
Joined: Thu Nov 18, 2021 4:22 pm

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Nightdawg » Thu Jun 25, 2026 11:02 am

axus wrote:Jorb is gonna make so many hats with this!


No, this means YOU can make hats now.
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby sickaura » Fri Jun 26, 2026 10:22 am

cool but make it web ui + hosted
User avatar
sickaura
 
Posts: 51
Joined: Fri Oct 06, 2023 8:19 pm

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Nightdawg » Fri Jun 26, 2026 11:49 am

sickaura wrote:cool but make it web ui + hosted


Download it and double click to open it
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Nightdawg » Sun Jun 28, 2026 9:03 pm

Updated to 1.1.0 - the 3D viewer can now texture more models (per-material picker + optional external-texture resolution), and far more props values are editable as JSON. Full notes on the releases page.

(edited OP as well)
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby irongete » Sun Jul 05, 2026 1:48 am

I have a resource proxy cache here https://brodgar.io/res/ with some .res files I already cached from playing for some months, some .res files even have multiple versions already cached.
Good if you want to look for resource names.

If you want to contribute to the repo you can use the parameter -U http://brodgar.io/res/ in the run.bat while playing.
example: java -jar hafen.jar -U http://brodgar.io/res/ game.havenandhearth.com
irongete
 
Posts: 87
Joined: Wed Jun 02, 2010 12:28 pm

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Nightdawg » Sun Jul 12, 2026 8:51 pm

Updated to 1.2.0 - standalone skeletal animations can now be played in the 3D viewer and round-tripped through Blender. This release also adds dark mode, improved UI scaling and file dialogs, plus major reliability and security hardening. Full notes on the releases page.

(edited OP as well)
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Halbertz » Sun Jul 12, 2026 10:52 pm

Cool! Thanks for the update.
Any plans on easy-to-go animations import? Want to fix some retarded stances.
User avatar
Halbertz
 
Posts: 598
Joined: Fri Aug 28, 2015 11:03 pm

Re: ResForge - a decompiler / editor / recompiler for .res f

Postby Nightdawg » Mon Jul 13, 2026 6:11 am

Halbertz wrote:Cool! Thanks for the update.
Any plans on easy-to-go animations import? Want to fix some retarded stances.


I think this version should cover that.
Open the animation resource (for example gfx/borka/wave), then export to glTF, it'll ask you to select a bone rig resource and model resource. Select gfx/borka/body and gfx/borka/male.
Edit in blender, then import it back to resforge. It will only import the animation.

Unless you're talking about something else. In that case, give me a concrete example of what exactly you're trying to modify, and I'll figure it out and add it


I should add some proper documentation with examples for how to do things, I already had this on my mind
jorb wrote:I do not want to over-promise or hype up stuff that could be months out.

"Our primary development direction is toward object-controlled-objects"
User avatar
Nightdawg
 
Posts: 2551
Joined: Fri Feb 28, 2020 12:31 am

Next

Return to The Wizards' Tower

Who is online

Users browsing this forum: Claude [Bot]