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

Halo: The Master Chief Collection · handler “Halo: The Master Chef Collection”

Version 8

Release notes

1 M&K support, instances saving accounts and more changes.

Released
Size
9.7 KB
Downloads
599
Check
Verified
SHA-256
2e05d6d7c79c4752d7022c6cda59ffcca5dbf5feb50143e729caa21967f3d478
Download v8 (.nc)All versions

Files 2

PathSize
Halo The Master Chief Collection/unlockdb.xml109 KB
handler.js6.2 KB

handler.js

Plain text
Hub.Handler.Version = 8; // Released at https://hub.splitscreen.me/ on Fri Dec 25 2020 13:13:39 GMT+0000 (UTC).
Hub.Handler.Id = "xjBSwFNj3ndRntsZh";
Hub.Maintainer.Name = "dr.oldboi";
Hub.Maintainer.Id = "dPRj3q6kFtT4HvMGg";

Game.KillMutex = ["Chelankenstein"];
Game.DirSymlinkCopyInstead = ["halo1\\original\\build\\shaders"];
Game.DirSymlinkCopyInsteadIncludeSubFolders = true;
Game.DirSymlinkExclusions = ["MCC\\Binaries\\Win64", "MCC\\Content\\Movies"];
Game.FileSymlinkCopyInstead = ["xaudio2_9redist.dll"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_api.dll", "xinput1_3.dll", "FMS_logo_microsoft_7_1_.bk2", "unlockdb.xml"];
Game.CopyEnvFoldersToNucleusAccounts = ["AppData\\LocalLow\\MCC\\LocalFiles"];
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.GoldbergExperimental = true;
Game.GoldbergNoLocalSave = true;
Game.LaunchAsDifferentUsers = true;
Game.TransferNucleusUserAccountProfiles = true;
Game.UseCurrentUserEnvironment = false;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.HardlinkGame = true;
Game.SupportsKeyboard = true;
Game.KeyboardPlayerFirst = true;
Game.ExecutableName = "MCC-Win64-Shipping.exe";
Game.SteamID = "976730";
Game.GUID = "Halo MCC";
Game.GameName = "Halo: The Master Chief Collection";
Game.MaxPlayers = 16;
Game.MaxPlayersOneMonitor = 16;
Game.LauncherTitle = "";
Game.SupportsPositioning = true;
Game.RefreshWindowAfterStart = true;
Game.HideTaskbar = false;
Game.BinariesFolder = "MCC\\Binaries\\Win64";
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Halo: The Master Chief Collection";
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = true;
Game.Hook.CustomDllEnabled = false; //added
Game.HookFocus = true;
Game.PromptBetweenInstances = true;
Game.UseForceBindIP = true;
Game.Description =
  "The script launches all the instances under different temporary users so you need to launch Nucleus as admin. Your game and Nucleus need to be in the same drive for this to work but do not place Nucleus inside the game files. Log in using different microsoft accounts in each instance, once it's done setting up, press OK on the Promp. To connect the instances open the Rooster (Via pressing X on the menu or hovering over it with the mouse) and invite all other players, you can also invite the other instaces if you use the invite friends option or press left shift+tab to invite the other players via the overlay that appears, use the mouse cursor, right click on them and select invite, close the overlay and accept the invitation quickly in the other instances with the cursor too. If the script doesn't work or you get a game crash error try moving Nucleus or the full game outside user folders like Documents, moving them to C: is recommended, you can also try giving full permissions to the game and nucleus folders to all users. You need internet connection cause the instances connect via the xbox live servers. If the mouse stops responding, alt+tab to your Mouse and Keyboard instance";
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var Args = (Context.Args = " -windowed " + " -AlwaysFocus " + " -nosplash " + " -ResX= " + Context.Width + " -ResY= " + Context.Height);

  Context.StartArguments = Args;

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

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\MCC\\Binaries\\Win64\\xaudio2_9redist.dll");
  var savePkgOrigin = System.IO.Path.Combine(Context.RootFolder, "xaudio2_9redist.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\MCC\\Binaries\\Win64\\steam_settings");
  System.IO.Directory.CreateDirectory(filePath);

  var dlc = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\MCC\\Binaries\\Win64\\steam_settings\\DLC.txt";
  var lines = [
    "1109621=MCC - Reach: Extended Language Pack",
    "1108760=MCC - H1: Extended Language Pack",
    "1108761=MCC - H2: Extended Language Pack",
    "1108762=MCC - H3: Extended Language Pack",
    "1108763=MCC - ODST: Extended Language Pack",
    "1109620=MCC - H4: Extended Language Pack",
    "1097224=MCC - Reach (Content Pack 2)",
    "1080080=MCC - H1: Multiplayer",
    "1097223=MCC - H2: Multiplayer",
    "1097222=MCC - H3: Multiplayer",
    "1097220=MCC - H4: Multiplayer",
    "1064273=Halo 4",
    "1064272=Halo 3: ODST",
    "1064271=Halo 3",
    "1064270=Halo 2: Anniversary",
    "1064221=Halo: Combat Evolved Anniversary",
    "1064220=Halo: Reach"
  ];

  Context.WriteTextFile(dlc, lines);

  var depots = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\MCC\\Binaries\\Win64\\steam_settings\\depots.txt";
  var lines = [
    "976731",
    "976732",
    "976733",
    "976734",
    "976735",
    "976736",
    "976737",
    "976738",
    "976739",
    "1064222",
    "1064223",
    "1064224",
    "1064225",
    "1064226",
    "1064227",
    "1064228",
    "1064229",
    "1064274",
    "1064275",
    "1064276"
  ];

  Context.WriteTextFile(depots, lines);

  var nolan = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\MCC\\Binaries\\Win64\\disable_lan_only.txt";
  var lines = [""];

  Context.WriteTextFile(nolan, lines);

  //added. This will let xboxone controllers works if there are less than 5 controllers without any fix or XOutput
  if (Context.NumControllers < 5) {
    Game.Hook.XInputReroute = false;
    Game.Hook.CustomDllEnabled = true; //added
    Game.Hook.XInputNames = ["xinput1_3.dll"];
  } else {
    Game.InjectHookXinput = true;
    Game.InjectDinputToXinputTranslation = true;
  }

  //this make sure you can still use invite/search players with only gamepads
  if (Context.HasKeyboardPlayer == true) {
    Game.PreventWindowDeactivation = true;
    Game.KeyboardPlayerSkipPreventWindowDeactivate = true;
  } else {
    Game.FakeFocus = true;
  }
};