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

Halo 2 · handler “Halo 2 Project Cartographer”

Version 4

Release notes

merged the lan and online script into one, use UI option.

Released
Size
753 KB
Downloads
615
Check
Verified
SHA-256
15db73a22b5dff0797d9f9ee69cfa3fbc85a497aac0f580da876f977743c2cf8
Download v4 (.nc)All versions

Files 17

PathSize
Halo2PC/Duraz02.INI2.2 KB
Halo2PC/Duraz03.INI2.2 KB
Halo2PC/Duraz04.INI2.2 KB
Halo2PC/Durazno.ini2.2 KB
Halo2PC/halo2config1.ini5.3 KB
Halo2PC/halo2config2.ini5.3 KB
Halo2PC/halo2config3.ini5.3 KB
Halo2PC/halo2config4.ini5.3 KB
Halo2PC/LAN/xinput9_1_0.dll483 KB
Halo2PC/LAN/XInputPlus.ini2.7 KB
Halo2PC/LAN/xlive.dll235 KB
Halo2PC/LAN/xlln/modules/cartographer.dll13 KB
Halo2PC/xinput9_1_0.dll150 KB
Halo2PC/xinput/p02/xinput9_1_0.dll150 KB
Halo2PC/xinput/p03/xinput9_1_0.dll150 KB
Halo2PC/xinput/p04/xinput9_1_0.dll150 KB
handler.js8.6 KB

handler.js

Plain text
Hub.Handler.Version = 4; // Released at https://hub.splitscreen.me/ on Fri Jul 24 2020 06:39:19 GMT+0000 (UTC).
Hub.Handler.Id = "x6CA522XrR74myDzx";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["LAN", "Online"];
Game.AddOption("Select between LAN and Online", "LAN is for Local only, Online to play in Pro. Ca. servers.", "Lan", answers1);

Game.DirSymlinkExclusions = ["xlln\\modules", "xinput\\p02", "xinput\\p03", "xinput\\p04"];
Game.FileSymlinkExclusions = ["Durazno.ini", "Duraz02.ini", "Duraz03.ini", "Duraz04.ini", "halo2config1.ini", "halo2config2.ini", "halo2config3.ini", "halo2config4.ini", "xinput9_1_0.dll"];
Game.FileSymlinkCopyInstead = ["xlive.dll", "cartographer.dll"];
Game.NeedsSteamEmulation = false;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "halo2.exe";
Game.SteamID = "2";
Game.GUID = "Halo 2 Project Cartographer";
Game.GameName = "Halo 2: Project Cartographer";
Game.MaxPlayers = 16;
Game.MaxPlayersOneMonitor = 16;
Game.LauncherTitle = "";
Game.HideTaskbar = false;
Game.StartArguments = "-hiresfix -windowed";
Game.ForceFinishOnPlay = true;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Halo 2";
Game.HasDynamicWindowTitle = true;
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XInputPlus.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "LAN\\XInputPlus.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  if (Context.PlayerID == 0) {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "1"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
    ]);
  }

  if (Context.PlayerID == 1) {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "2"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
    ]);
  }

  if (Context.PlayerID == 2) {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "3"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
    ]);
  }

  if (Context.PlayerID == 3) {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "4"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
    ]);
  }

  var lan = Context.Options["Lan"];

  if (lan == "LAN") {
    Game.HookFocus = true;
    Game.PreventWindowDeactivation = true;
    //Context.Hook.CustomDllEnabled= true;
    //Game.Hook.UseAlpha8CustomDll = true;
    //Game.Hook.XInputNames = ["xinput9_1_0.dll"];

    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xlln\\modules");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xlive.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "LAN\\xlive.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xlln\\modules\\cartographer.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "LAN\\xlln\\modules\\cartographer.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput9_1_0.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "LAN\\xinput9_1_0.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  if (lan == "Online") {
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p02");
    System.IO.Directory.CreateDirectory(filePath);

    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p03");
    System.IO.Directory.CreateDirectory(filePath);

    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p04");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput9_1_0.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "xinput9_1_0.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Durazno.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Durazno.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Duraz02.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Duraz02.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Duraz03.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Duraz03.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Duraz04.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Duraz04.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\halo2config1.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "halo2config1.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\halo2config2.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "halo2config2.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\halo2config3.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "halo2config3.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\halo2config4.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "halo2config4.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p02\\xinput9_1_0.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "xinput\\p02\\xinput9_1_0.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p03\\xinput9_1_0.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "xinput\\p03\\xinput9_1_0.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\xinput\\p04\\xinput9_1_0.dll");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "xinput\\p04\\xinput9_1_0.dll");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }
};