Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

Heroes of Hammerwatch · handler “Heroes of Hammerwatch”

Version 3

Release notes

Nucleus 2.0

Released
Size
1.5 KB
Downloads
2,125
Check
Verified
SHA-256
5f3e4ccac6d7cfd40bd6c64877cb22ea559811be2179e03c6aa37f7490b8a184
Download v3 (.nc)All versions

Files 1

PathSize
handler.js3.3 KB

handler.js

Plain text
Hub.Handler.Version = 3; // Released at https://hub.splitscreen.me/ on Sun Feb 27 2022 20:37:58 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "CFMDxMdoua3zzBC8E";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["res"];
Game.DirSymlinkExclusions = ["ngalaxye_settings"];
Game.DirExclusions = ["saves"];
Game.FileSymlinkExclusions = ["Galaxy.dll", "steam_api.dll", "xinput1_4.dll"];
Game.FileSymlinkCopyInstead = ["HWR.exe.cfg"];
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.UseNemirtingasGalaxyEmu = true;
Game.HandlerInterval = 100;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.SymlinkExe = false;
Game.ExecutableName = "HWR.exe";
Game.SteamID = "677120";
Game.GUID = "Heroes of Hammerwatch";
Game.GameName = "Heroes of Hammerwatch";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Heroes of Hammerwatch";
Game.HasDynamicWindowTitle = true;
Game.SupportsKeyboard = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_4.dll"];
Game.Hook.CustomDllEnabled = false;
Game.Description =
  "Create a public lobby in one instance and join in the others using server list, use a different character per instance. If you launch one instance with keyboard wait until an instance loses its borders before opening the next one, this way they will resize correctly. Your saves per instance are inside Nucleus content folder in the game instances folders, so be careful about not deleting them, you can also copy your main saves there.";
Game.KeepSymLinkOnExit = true;
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\HWR.exe.cfg";
  var dict = [
    Context.FindLineNumberInTextFile(txtPath, "v_resolution", Nucleus.SearchType.StartsWith) + "|v_resolution " + Context.Width + "x" + Context.Height,
    Context.FindLineNumberInTextFile(txtPath, "v_fullscreen", Nucleus.SearchType.StartsWith) + "|v_fullscreen 0",
    Context.FindLineNumberInTextFile(txtPath, "v_forced_aspect_ratio", Nucleus.SearchType.StartsWith) + "|v_forced_aspect_ratio 0.000000"
  ];
  Context.ReplaceLinesInTextFile(txtPath, dict);

  if (Context.HasKeyboardPlayer == true) {
    Game.PromptBetweenInstances = true;
    Game.PauseBetweenStarts = 40;
    Game.PreventWindowDeactivation = true;
    Game.KeyboardPlayerSkipPreventWindowDeactivate = true;
  } else {
    Game.FakeFocus = true;
    Game.SetForegroundWindowElsewhere = true;
  }

  var idg = Context.PlayerID + 6;

  var jsonPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ngalaxye_settings\\NemirtingasGalaxyEmu.json";
  var params = [
    "{",
    '  "api_version": "1.139.2.0",',
    '  "enable_overlay": false,',
    '  "galaxyid": 14549624462898294' + idg + ",",
    '  "language": ' + '"' + Context.GogLang + '",',
    '  "productid": 2143654691,',
    '  "username": ' + '"' + Context.Nickname + '"',
    "}"
  ];
  Context.WriteTextFile(jsonPath, params);

  if (!System.IO.File.Exists(Context.OrigRootFolder + "\\steam_api.dll")) {
    Game.UseGoldberg = false;
  } else {
  }
};