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

A Hat in Time · handler “A Hat in Time”

Version 1

Release notes

First Release

Released
Size
1.3 KB
Downloads
257
Check
Verified
SHA-256
c719e7bd0383a3e3e8087246ebb11abea5aaf92fbe857b685d4e5a5fcab3b2d7
Download v1 (.nc)All versions

Files 1

PathSize
handler.js3.4 KB

handler.js

Plain text
Hub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Mon Jul 06 2020 22:06:53 GMT+0000 (UTC).
Hub.Handler.Id = "srBcT7kc54AWvKo2p";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["Yes", "No"];
Game.AddOption("Will you use the game native splitscreen?", "If yes launch only two horizontal instances, you need 4 gamepads.", "Native", answers1);

Game.ExecutableContext = ["APEX_ClothingGPUCHECKED_x64.dll"];
Game.DirSymlinkExclusions = ["Binaries\\Win64", "Binaries\\Win32"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_api.dll", "steam_appid.txt"];
Game.GameName = "A Hat in Time";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "HatinTimeGame.exe";
Game.SteamID = "253230";
Game.GUID = "A Hat in Time";
Game.MaxPlayers = 50;
Game.MaxPlayersOneMonitor = 16;
Game.BinariesFolder = "Binaries\\Win64";
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.LauncherTitle = "";
Game.SupportsPositioning = true;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "A Hat in Time";
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.PreventWindowDeactivation = false;
Game.HookFocus = true;
Game.Description =
  "If you select Yes to use the game native splitscreen in the Player Options UI you can play with 4 or 3 players in only two instances of the game for better performance, the first two gamepads will control the first instance and the other two gamepads the second, press start ingame to add a local player in each instance, if you want to have only one player per instance select No in the UI. Use different save slot per instance. To connect the instances enable online mode in the game and write the same lobby name in all.";
Game.PromptBetweenInstances = false;
Game.PauseBetweenStarts = 50;

Game.Play = function() {
  Context.StartArguments = "-windowed -nosplash -skipintro" + " -ResX= " + Context.Width + " -ResY= " + Context.Height;

  var native = Context.Options["Native"];

  if (Context.PlayerID == 0) {
    if (native == "Yes") {
      var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\Win64\\XinputPlus.ini";
      Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "1"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "2"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
      ]);
    }
  }
  if (Context.PlayerID == 1) {
    if (native == "Yes") {
      var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\Win64\\XinputPlus.ini";
      Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "3"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "4"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
        new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
      ]);
    }
  }
  if (native == "No") {
    Game.Hook.CustomDllEnabled = true;
  }
};