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 19

Release notes

CE Fatal Error fix

Released
Size
247 KB
Downloads
12,948
Check
Verified
SHA-256
bd4ba809c294a2932ef0d69cc7d8b94e05a458c2a19c1690c22cf288eee30ee3
Download v19 (.nc)All versions

Files 3

PathSize
HaloMCC/unlockdb.xml248 KB
HaloMCC/xlive64.dll531 KB
handler.js14 KB

handler.js

Plain text
Hub.Handler.Version = 19; // Released at https://hub.splitscreen.me/ on Sun Jun 27 2021 15:51:14 GMT+0000 (UTC).
Hub.Handler.Id = "xjBSwFNj3ndRntsZh";
Hub.Maintainer.Name = "dr.oldboi";
Hub.Maintainer.Id = "dPRj3q6kFtT4HvMGg";

var status = "Disabled";
var status2 = "Disabled";
var answers1 = ["Yes", "No"];
var answers2 = ["Status", "Enable", "Disable"];
var answers3 = ["Status", "Enable", "Disable"];
Game.AddOption("Unlock all?", "Unlocks all armors, skins, emblems and nameplates.", "Unlock", answers1);
Game.AddOption("Enable Online mode? Status: " + status, "Read the script notes carefully before using these options.", "Online", answers2);
Game.AddOption("Enable Xinput Reroute? Status: " + status2, "If you enable Nucleus will launch then close. Open it again for XR to enable.", "Reroute", answers3);

Game.KillMutex = ["Chelankenstein"];
Game.DirSymlinkExclusions = ["mcc\\binaries\\win64\\steam_settings\\load_dlls", "mcc\\Content\\Movies", "data\\ui", "halo1\\shaders"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_api.dll", "steam_appid.txt", "local_save.txt", "xlive64.dll", "xinput1_3.dll", "FMS_logo_microsoft_7_1_.bk2"];
Game.FileSymlinkCopyInstead = [
  "gametiplist.xml",
  "playercustomization.xml",
  "scoredb.xml",
  "texturepacks.xml",
  "unlockdb.xml",
  "app.config",
  "d3dcompiler_47.dll",
  "SC_DLL.dll",
  "SwitchSandbox.cmd",
  "fmod_event_net64.dll",
  "fmodex64.dll",
  "game.cfg",
  "halo1.dll",
  "user.cfg",
  "fx.bin",
  "psh.bin",
  "vsh.bin",
  "bink2w64.dll",
  "cell_release_x64_4_0.dll",
  "halonetworklayer_ship.dll",
  "liblz4.dll",
  "PartyWin.dll",
  "PartyWin7.dll",
  "simplenetworklibrary-x64-release.dll",
  "xaudio2_9redist.dll",
  "xforgelibrary_release.dll"
];
Game.CopyEnvFoldersToNucleusAccounts = ["AppData\\LocalLow\\MCC\\LocalFiles"];
Game.UseNucleusEnvironment = true;
Game.UseGoldberg = true;
Game.GoldbergExperimental = true;
Game.GoldbergNoLocalSave = true;
Game.LaunchAsDifferentUsers = false;
Game.TransferNucleusUserAccountProfiles = true;
Game.UseCurrentUserEnvironment = false;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.HardlinkGame = false;
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.HideTaskbar = false;
Game.BinariesFolder = "mcc\\binaries\\win64";
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Halo: The Master Chief Collection";
Game.HookFocus = true;
Game.ResetWindows = true;
Game.RefreshWindowAfterStart = true;
Game.Hook.DInputEnabled = false;
Game.UseDInputBlocker = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.InjectHookXinput = false;
Game.InjectDinputToXinputTranslation = false;
Game.Hook.CustomDllEnabled = false;
Game.UseForceBindIP = true;
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\976730\\remote";
Game.UserProfileConfigPath = "AppData\\LocalLow\\MCC";
Game.UserProfileSavePathNoCopy = true;
Game.UserProfileConfigPathNoCopy = true;
Game.Description =
  "IMPORTANT: Do not place Nucleus inside the game files. Change network type to LAN in the game settings for all instances, then press X on your gamepad to join the other players in the main menu. If the mouse stops responding, alt+tab to your mouse and keyboard instance if you launched one. The new offline LAN option is the default now and the recommended one being a lot easier to use but if you still want to use the old Online connection method you have to select the Online mode UI option, if you select to enable this option Nucleus will launch an instance then close, open Nucleus again and the UI option will be enabled, using the Online mode Nucleus will launch all instances under different temporary windows users so each instance can log-in using different accounts and can connect to each other, you need to launch Nucleus as admin for this, easy anticheat modes not supported. Log in using different microsoft accounts in each instance, once it's done setting up, press ok on the prompt. To connect the instances open the rooster (by 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. For this script to work Nucleus needs to be in the root of your drive outside any users folders, C: is recommended, for example C:\\NucleusCoop, you can also try giving full permissions to the game and Nucleus folders to all users. You need internet connection if you are using the online option cause the instances connect via the xbox live servers. The Xinput Reroute UI option reroutes directinput back to xinput to track more than 4 gamepads on xinput at once allowing you to play with more than 4 xinput gamepads. Xbox one gamepads do not work with focus when using reroute because of their driver background input issue.";
Game.KeepSymLinkOnExit = false;
Game.PauseBetweenStarts = 40;

Game.SupportsMultipleKeyboardsAndMice = false;

Game.HookSetCursorPos = true;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = false;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;

Game.SendNormalMouseInput = false;
Game.SendNormalKeyboardInput = false;
Game.SendScrollWheel = false;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = false;
Game.HookReRegisterRawInputMouse = false;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = false;
Game.LockInputAtStart = false;
Game.LockInputToggleKey = 0x23;

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

  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\mcc\\binaries\\win64\\steam_settings\\load_dlls");
  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",
    "1109620=MCC - H4: Extended Language Pack",
    "1108763=MCC - ODST: Extended Language Pack",
    "1108762=MCC - H3: Extended Language Pack",
    "1108761=MCC - H2: Extended Language Pack",
    "1108760=MCC - H1: Extended Language Pack",
    "1097224=MCC - Reach (Content Pack 2)",
    "1097223=MCC - H2: Multiplayer",
    "1097222=MCC - H3: Multiplayer",
    "1097220=MCC - H4: Multiplayer",
    "1080080=MCC - H1: 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);

  var appid = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\mcc\\binaries\\win64\\steam_settings\\steam_appid.txt";
  var lines = ["976730"];
  Context.WriteTextFile(appid, lines);

  //S

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\mcc\\binaries\\win64\\steam_settings\\load_dlls\\xlive64.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "xlive64.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  //E

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

  var unlock = Context.Options["Unlock"];
  var online = Context.Options["Online"];
  var reroute = Context.Options["Reroute"];

  if (unlock == "Yes") {
    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);
  }

  if (unlock == "No") {
  }

  if (online == "Status") {
  }

  if (online == "Enable") {
    var txtPath = Context.NucleusFolder + "\\scripts\\Halo The Master Chief Collection.js";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, 'var status = "Disabled";', Nucleus.SearchType.StartsWith) + '|var status = "Enabled";',
      Context.FindLineNumberInTextFile(txtPath, "Game.LaunchAsDifferentUsers", Nucleus.SearchType.StartsWith) + "|Game.LaunchAsDifferentUsers = true;",
      Context.FindLineNumberInTextFile(txtPath, "Game.UseNucleusEnvironment", Nucleus.SearchType.StartsWith) + "|Game.UseNucleusEnvironment = false;",
      Context.FindLineNumberInTextFile(txtPath, "  //S", Nucleus.SearchType.StartsWith) + "|  /*S",
      Context.FindLineNumberInTextFile(txtPath, "  //E", Nucleus.SearchType.StartsWith) + "|  E*/"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat";
    var lines = ["timeout /t 5 /nobreak", 'taskkill -im "NucleusCoop.exe"'];
    Context.WriteTextFile(Bat, lines);

    Context.RunAdditionalFiles(["1|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat"], false, 1);
  }
  if (online == "Disable") {
    var txtPath = Context.NucleusFolder + "\\scripts\\Halo The Master Chief Collection.js";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, 'var status = "Enabled";', Nucleus.SearchType.StartsWith) + '|var status = "Disabled";',
      Context.FindLineNumberInTextFile(txtPath, "Game.LaunchAsDifferentUsers", Nucleus.SearchType.StartsWith) + "|Game.LaunchAsDifferentUsers = false;",
      Context.FindLineNumberInTextFile(txtPath, "Game.UseNucleusEnvironment", Nucleus.SearchType.StartsWith) + "|Game.UseNucleusEnvironment = true;",
      Context.FindLineNumberInTextFile(txtPath, "  /*S", Nucleus.SearchType.StartsWith) + "|  //S",
      Context.FindLineNumberInTextFile(txtPath, "  E*/", Nucleus.SearchType.StartsWith) + "|  //E"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat";
    var lines = ["timeout /t 10 /nobreak", 'taskkill -im "NucleusCoop.exe"'];
    Context.WriteTextFile(Bat, lines);

    Context.RunAdditionalFiles(["1|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat"], false, 1);
  }

  if (reroute == "Status") {
  }

  if (reroute == "Enable") {
    var txtPath = Context.NucleusFolder + "\\scripts\\Halo The Master Chief Collection.js";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, 'var status2 = "Disabled";', Nucleus.SearchType.StartsWith) + '|var status2 = "Enabled";',
      Context.FindLineNumberInTextFile(txtPath, "Game.XInputPlusDll", Nucleus.SearchType.StartsWith) + '|Game.XInputPlusDll = ["xinput1_0.dll"];',
      Context.FindLineNumberInTextFile(txtPath, "Game.InjectHookXinput", Nucleus.SearchType.StartsWith) + "|Game.InjectHookXinput = true;",
      Context.FindLineNumberInTextFile(txtPath, "Game.InjectDinputToXinputTranslation", Nucleus.SearchType.StartsWith) + "|Game.InjectDinputToXinputTranslation = true;",
      Context.FindLineNumberInTextFile(txtPath, "Game.Hook.XInputReroute", Nucleus.SearchType.StartsWith) + "|Game.Hook.XInputReroute = true;"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat";
    var lines = ["timeout /t 5 /nobreak", 'taskkill -im "NucleusCoop.exe"'];
    Context.WriteTextFile(Bat, lines);

    Context.RunAdditionalFiles(["1|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat"], false, 1);
  }
  if (reroute == "Disable") {
    var txtPath = Context.NucleusFolder + "\\scripts\\Halo The Master Chief Collection.js";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, 'var status2 = "Enabled";', Nucleus.SearchType.StartsWith) + '|var status2 = "Disabled";',
      Context.FindLineNumberInTextFile(txtPath, "Game.XInputPlusDll", Nucleus.SearchType.StartsWith) + '|Game.XInputPlusDll = ["xinput1_3.dll"];',
      Context.FindLineNumberInTextFile(txtPath, "Game.InjectHookXinput", Nucleus.SearchType.StartsWith) + "|Game.InjectHookXinput = false;",
      Context.FindLineNumberInTextFile(txtPath, "Game.InjectDinputToXinputTranslation", Nucleus.SearchType.StartsWith) + "|Game.InjectDinputToXinputTranslation = false;",
      Context.FindLineNumberInTextFile(txtPath, "Game.Hook.XInputReroute", Nucleus.SearchType.StartsWith) + "|Game.Hook.XInputReroute = false;"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat";
    var lines = ["timeout /t 5 /nobreak", 'taskkill -im "NucleusCoop.exe"'];
    Context.WriteTextFile(Bat, lines);

    Context.RunAdditionalFiles(["1|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\close.bat"], false, 1);
  }
};