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

MX vs. ATV All Out · handler “MX vs ATV All Out”

Version 1

Release notes

handler for MX vs ATV All Out - supports up to 4 player split screen

Released
Size
4.3 KB
Downloads
12
Check
Verified
SHA-256
55dc830b4e916cba4bdc6643cef1eeeaa084106be4a9ec21be00356b3d929cc9
Download v1 (.nc)All versions

Files 4

PathSize
handler/GameUserSettings_High.ini1.0 KB
handler/GameUserSettings_Low.ini1.0 KB
handler/GameUserSettings_Med.ini1.0 KB
handler.js16 KB

handler.js

Plain text
Hub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Wed Oct 25 2023 11:58:40 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "eYTXsGAethduiYiik";
Hub.Maintainer.Name = "Perserveruz";
Hub.Maintainer.Id = "nFAYvHKj75jAFRAgt";

var answers = ["Default", "Low", "Med", "High"];
var answers1 = ["-", "60", "50", "45", "40", "35", "30", "25"];
var answers2 = ["No", "720p", "1080p"];
var answers3 = ["-", "0", "1", "2", "3", "4", "5", "6", "7", "8"];
Game.AddOption("Select preferred graphic settings", "Select Default to load default or previously selected setting", "Graphics", answers);
Game.AddOption("Select the FPS Cap the game will use", "", "FPS", answers1);
Game.AddOption("PC-ID", "If you are playing with other PCs in LAN, be sure to have different IDs", "id", answers3);
Game.AddOption("Apply 720p or 1080p resolution and fullscreen for low-end PC (no splitscreen)", "", "resolution", answers2);
Game.FileSymlinkExclusions = ["steam_api.dll", "steam_appid.txt", "steam_interfaces.txt"];
Game.KillMutex = ["UnrealEngine4"];
Game.HandlerInterval = 100;
Game.UseGoldberg = true;
Game.GoldbergLanguage = "english";
Game.GoldbergNoLocalSave = true;
Game.UseNucleusEnvironment = true;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.KeepSymLinkOnExit = true;
Game.SymlinkFolders = false;
Game.SupportsKeyboard = false;
Game.ExecutableName = "MxNext-Win64-Shipping.exe";
Game.SteamID = "520940";
Game.GUID = "MX vs ATV All Out";
Game.GameName = "MX vs ATV All Out";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.HideTaskbar = false;
Game.BinariesFolder = "MXvsATVAllOut\\Binaries\\Win64";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "MX vs ATV All Out";
Game.HookFocus = false;
Game.FakeFocus = false;
Game.PreventWindowDeactivation = false;
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.UseAlpha8CustomDll = false;
Game.Hook.CustomDllEnabled = false;
Game.XInputPlusDll = ["XInput1_3.dll"];
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\520940";
Game.UserProfileConfigPath = "AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor";
Game.SetForegroundWindowElsewhere = true;
Game.Description =
  "This game supports up to 2 player native split screen locally but unfortunately not over LAN. The purpose of this handler is to enable up to 4 player split screen and LAN. Instructions - Once the instances have finished repositioning and resizing, have the first player create and launch a public online match. Once the match has started, have the other players connect to the match by searching under find custom match. Enjoy!";

Game.Play = function() {
  if (!System.IO.File.Exists(Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut")) {
    var filePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut";
    System.IO.Directory.CreateDirectory(filePath);
  }

  if (!System.IO.File.Exists(Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved")) {
    var filePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved";
    System.IO.Directory.CreateDirectory(filePath);
  }

  if (!System.IO.File.Exists(Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config")) {
    var filePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config";
    System.IO.Directory.CreateDirectory(filePath);
  }

  if (!System.IO.File.Exists(Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor")) {
    var filePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor";
    System.IO.Directory.CreateDirectory(filePath);
  }

  if (!System.IO.File.Exists(Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini")) {
    var savePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "GameUserSettings_Low.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  var Graphics = Context.Options["Graphics"];
  if (Graphics == "Low") {
    var savePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "GameUserSettings_Low.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }
  if (Graphics == "Med") {
    var savePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "GameUserSettings_Med.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }
  if (Graphics == "High") {
    var savePath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "GameUserSettings_High.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  var FPS = Context.Options["FPS"];
  if (FPS == "-") {
  }
  if (FPS >= "0") {
    var txtPath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, "bUseVSync=", Nucleus.SearchType.StartsWith) + "|bUseVSync=True",
      Context.FindLineNumberInTextFile(txtPath, "FrameRateLimit=", Nucleus.SearchType.StartsWith) + "|FrameRateLimit=" + FPS + ""
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);
  }
  var resolution = Context.Options["resolution"];
  if (resolution == "No") {
    Game.ResetWindows = true;
    var txtPath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenWidth=", Nucleus.SearchType.StartsWith) + '|DesiredScreenWidth="' + Context.Width + '"',
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenHeight=", Nucleus.SearchType.StartsWith) + '|DesiredScreenHeight="' + Context.Height + '"',
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenWidth=", Nucleus.SearchType.StartsWith) + '|LastUserConfirmedDesiredScreenWidth="' + Context.Width + '"',
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenHeight=", Nucleus.SearchType.StartsWith) + '|LastUserConfirmedDesiredScreenHeight="' + Context.Height + '"',
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeX=", Nucleus.SearchType.StartsWith) + '|ResolutionSizeX="' + Context.Width + '"',
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeY=", Nucleus.SearchType.StartsWith) + '|ResolutionSizeY="' + Context.Height + '"',
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeX=", Nucleus.SearchType.StartsWith) + '|LastUserConfirmedResolutionSizeX="' + Context.Width + '"',
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeY=", Nucleus.SearchType.StartsWith) + '|LastUserConfirmedResolutionSizeY="' + Context.Height + '"',
      Context.FindLineNumberInTextFile(txtPath, "FullscreenMode=", Nucleus.SearchType.StartsWith) + "|FullscreenMode=2",
      Context.FindLineNumberInTextFile(txtPath, "bUseVSync=", Nucleus.SearchType.StartsWith) + "|bUseVSync=True",
      Context.FindLineNumberInTextFile(txtPath, "PreferredFullscreenMode=", Nucleus.SearchType.StartsWith) + "|PreferredFullscreenMode=2",
      Context.FindLineNumberInTextFile(txtPath, "LastConfirmedFullscreenMode=", Nucleus.SearchType.StartsWith) + "|LastConfirmedFullscreenMode=2"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "' + (Context.GamepadId - 1) + '"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "3"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "3"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "4")
    ]);
  }
  var resolution = Context.Options["resolution"];
  if (resolution == "720p") {
    Game.DontResize = true;
    Game.DontReposition = true;
    Game.DontRemoveBorders = true;
    var txtPath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenWidth=", Nucleus.SearchType.StartsWith) + "|DesiredScreenWidth=1280",
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenHeight=", Nucleus.SearchType.StartsWith) + "|DesiredScreenHeight=720",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenWidth=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedDesiredScreenWidth=1280",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenHeight=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedDesiredScreenHeight=720",
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeX=", Nucleus.SearchType.StartsWith) + "|ResolutionSizeX=1280",
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeY=", Nucleus.SearchType.StartsWith) + "|ResolutionSizeY=720",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeX=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedResolutionSizeX=1280",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeY=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedResolutionSizeY=720",
      Context.FindLineNumberInTextFile(txtPath, "FullscreenMode=", Nucleus.SearchType.StartsWith) + "|FullscreenMode=0",
      Context.FindLineNumberInTextFile(txtPath, "PreferredFullscreenMode=", Nucleus.SearchType.StartsWith) + "|PreferredFullscreenMode=0",
      Context.FindLineNumberInTextFile(txtPath, "bUseVSync=", Nucleus.SearchType.StartsWith) + "|bUseVSync=False",
      Context.FindLineNumberInTextFile(txtPath, "LastConfirmedFullscreenMode=", Nucleus.SearchType.StartsWith) + "|LastConfirmedFullscreenMode=0"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "' + (Context.GamepadId - 1) + '"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "2"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "3"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "4")
    ]);
  }
  var resolution = Context.Options["resolution"];
  if (resolution == "1080p") {
    Game.DontResize = true;
    Game.DontReposition = true;
    Game.DontRemoveBorders = true;
    var txtPath = Context.EnvironmentPlayer + "\\AppData\\Local\\MXvsATVAllOut\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenWidth=", Nucleus.SearchType.StartsWith) + "|DesiredScreenWidth=1920",
      Context.FindLineNumberInTextFile(txtPath, "DesiredScreenHeight=", Nucleus.SearchType.StartsWith) + "|DesiredScreenHeight=1080",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenWidth=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedDesiredScreenWidth=1920",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedDesiredScreenHeight=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedDesiredScreenHeight=1080",
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeX=", Nucleus.SearchType.StartsWith) + "|ResolutionSizeX=1920",
      Context.FindLineNumberInTextFile(txtPath, "ResolutionSizeY=", Nucleus.SearchType.StartsWith) + "|ResolutionSizeY=1080",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeX=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedResolutionSizeX=1920",
      Context.FindLineNumberInTextFile(txtPath, "LastUserConfirmedResolutionSizeY=", Nucleus.SearchType.StartsWith) + "|LastUserConfirmedResolutionSizeY=1080",
      Context.FindLineNumberInTextFile(txtPath, "FullscreenMode=", Nucleus.SearchType.StartsWith) + "|FullscreenMode=0",
      Context.FindLineNumberInTextFile(txtPath, "PreferredFullscreenMode=", Nucleus.SearchType.StartsWith) + "|PreferredFullscreenMode=0",
      Context.FindLineNumberInTextFile(txtPath, "bUseVSync=", Nucleus.SearchType.StartsWith) + "|bUseVSync=True",
      Context.FindLineNumberInTextFile(txtPath, "LastConfirmedFullscreenMode=", Nucleus.SearchType.StartsWith) + "|LastConfirmedFullscreenMode=0"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "' + (Context.GamepadId - 1) + '"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "2"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "3"),
      new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "4")
    ]);
  }

  var id = Context.Options["id"];

  var idF = 33 * id + Context.PlayerID;
  if (id != "-") {
  }
  if (id < 3) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["765611979729000" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id == 3 && Context.PlayerID == 0) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["765611979729000" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id == 3 && Context.PlayerID > 0) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["76561197972900" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id > 3 && id < 30) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["76561197972900" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id == 30 && Context.PlayerID < 11) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["76561197972900" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id == 30 && Context.PlayerID > 10) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["7656119797290" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
  if (id > 30) {
    var UserID = Context.NucleusUserRoot + "\\NucleusCoop" + "\\" + Context.Nickname + "\\AppData\\Roaming\\Goldberg SteamEmu Saves\\settings\\user_steam_id.txt";
    var IdNumber = ["7656119797290" + idF];
    Context.WriteTextFile(UserID, IdNumber);
  }
};