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 9

Release notes

Vibration and Xbox One controllers fixed

Released
Size
9.7 KB
Downloads
2,189
Check
Verified
SHA-256
1c1f363357a847ec16834685c7f6e1145a7c9db5509a9ac790ad178b5420a319
Download v9 (.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 = 9; // Released at https://hub.splitscreen.me/ on Sun Dec 27 2020 13:24:35 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;
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 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. 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 Nucleus to the root of 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 = 35;
Game.GamePlayBeforeGameSetup = true;

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.XInputPlusDll = ["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;
  }
};