Hwmod Wiki

Disable mouse confinement (move mouse to second screen without using alt+tab).

    Open Config.ini and uncomment mouse confinement line

Enable super screenshot mode

Warning may destroy your computer (?)

  • Open config.ini
  • Add the line 'superscreenshot.enabled=true' to the top
  • Hit F12 to take a screenshot (may need to re-bind Steam screenshot key)
  • Screenshots will appear in the root folder of DoK with the prefix "SuperScreen_***.png"

Output Log details

  • output_log.txt in the DoK 'Data' folder
  • example: "D:\Program Files (x86)\SteamLibrary\SteamApps\common\Deserts of Kharak\Data"


Videos are in OGG/Theora format

Resolution overrides

  • Shortcut switches/parameters: -popupwindow -screen-height 1080 -screen-width 1920
  • Edit JSON file: https://www.reddit.com/r/DesertsOfKharak/comments/41w5p4/homeworld_deserts_of_kharak_getting_219_to_work/

  • Team Colour Information

    Hey guys, I'll shed some light on this for you. So there are 5 textures which make up the main unit material in the game: Diffuse Bumpmap Surface Map Team Overlay Occlusion For the purposes of this discussion we're looking purely at the diffuse and team overlay maps and how they work. Before we get into specifics, you'll note that we also need the two 'shader constants' defining the primary and trim colours (user selected colours from fleet manager). Here's a function from our shader which combines the base/trim colours with the diffuse and team overlay textures:


       half3 CombineUnitAlbedo(half3 diffColor, half3 baseColor, half3 trimColor, half3 overlayMask)
           half3 albedo = diffColor;
           albedo = lerp (albedo, Overlay(albedo, (baseColor.rgb)), overlayMask.r);       // Combine Diffuse and BaseColour SpecMask(Blue Channel)
           albedo = lerp (albedo, Overlay(albedo, (trimColor.rgb)), overlayMask.g);       // Combine Diffuse with TrimColour SpecMask(Green Channel
           return albedo;

    With 'diffColour' being the sampled RGB value from the diffuse texture and 'overlayMask' being the sampled RGB value from the team overlay texture. We use an overlay photoshop filter to combine the albedo value with the selected base and trim colours and blend them based on the intensity of the overlay mask's red and green channels.

    Surface Map = Spec?

    You got it, the surface map is our spec map + emission. We feed it directly into a modified version of Unity's PBR standard shader. We just need the green/blue channels for specular power and smoothness and also use the red channel of the surface map to determine emissive intensity for that portion of the diffuse map (allows us to paint in emissive colours into diffuse and modulate via this channel).


    save file hacking:

    save file is json within a headerless 7 zip

    headerless lzma

    Extract VO Audio Files

  • Open Unity Studio and select Extract Bundle (all filetypes)
  • Navigate to Bundles > VO and select the race file (gaalsi, soban, khaaneph, coalition).
  • Open Unity Assets Bundle Extractor and navigate to Bundles > VO > *race*_unpacked.
  • Select the race file, not the resources file. Use UABE functionality to extract audio clips.