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

Need for Speed: Most Wanted · handler “Need For Speed Most Wanted 2005”

Version 2

Release notes

changed default option

Released
Size
1.7 MB
Downloads
12
Check
Unverified
SHA-256
973d134edaeacc6fbdbdae32564c897e430a84cd3aa3b8c8b990749f093ffc1c
Download v2 (.nc)All versions

Files 13

PathSize
handler.js14 KB
Need For Speed Most Wanted 2005/1/NUCLEUS62 KB
Need For Speed Most Wanted 2005/1/SPARKLE-2012270-09-26-17-32-36.SAV62 KB
Need For Speed Most Wanted 2005/scripts/buttons-playstation.tpk651 KB
Need For Speed Most Wanted 2005/scripts/buttons-xbox.tpk651 KB
Need For Speed Most Wanted 2005/scripts/NFSMostWanted.WidescreenFix.asi349 KB
Need For Speed Most Wanted 2005/scripts/NFSMostWanted.WidescreenFix.ini1.1 KB
Need For Speed Most Wanted 2005/scripts/NFSMWExtraOptions.asi278 KB
Need For Speed Most Wanted 2005/scripts/NFSMWExtraOptionsSettings.ini13 KB
Need For Speed Most Wanted 2005/scripts/NFSMWHUDAdapter.asi74 KB
Need For Speed Most Wanted 2005/server.cfg1.4 KB
Need For Speed Most Wanted 2005/Settings.ini548 B
Need For Speed Most Wanted 2005/winmm.dll2.1 MB

handler.js

Plain text
Hub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Tue Apr 21 2020 21:18:54 GMT+0000 (UTC).
Hub.Handler.Id = "nBgGXtk5pTq9Taq2F";
Hub.Maintainer.Name = "Bizzo";
Hub.Maintainer.Id = "HEgozNi3MNvhAmWfi";

var answers2 = ["No", "Yes"]; //adding variables that user can use on the options
var answers = ["Yes", "No"];

Game.AddOption("Use compatible mode?", "If your GPU doesn't allow custom resolutions, enable this option.", "GPU", answers2); //adding options after the input/screen selector
Game.AddOption("Skip intro?", "If you choose No, it could help with crashes.", "Intro", answers);

Game.FileSymlinkCopyInstead = ["server.dll"]; //this files will be copied from the original folder

Game.FileSymlinkExclusions = [
  //this files will not be symlinked from the original folder
  "server.cfg",
  "winmm.dll",
  "dinput8.dll",
  "XInput1_3.dll",
  "XInputPlus.ini",
  "Dinput.dll",
  "buttons-playstation.tpk",
  "buttons-xbox.tpk",
  "NFSMostWanted.WidescreenFix.asi",
  "NFSMostWanted.WidescreenFix.ini",
  "modupdater.asi",
  "modupdater.ini",
  "modupdater.log",
  "Settings.ini",
  "NFSMWExtraOptions.asi",
  "NFSMWExtraOptionsSettings.ini",
  "NFSMWHUDAdapter.asi"
];

Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "speed.exe";
Game.LauncherExe = "speed.exe";
Game.SteamID = "";
Game.GUID = "NeedForSpeedMostWanted2005";
Game.GameName = "Need For Speed Most Wanted 2005";
Game.HideTaskbar = true;
Game.ChangeExe = false;
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = false;
Game.GoldbergNeedSteamInterface = false;
Game.LauncherTitle = "";
Game.SupportsPositioning = true;
Game.BinariesFolder = "";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Need for Speed™️ Most Wanted";
Game.Hook.DInputEnabled = true;
Game.Hook.DInputForceDisable = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false; //set on true from make Xinput controllers act like DirectInput ones
Game.XInputPlusDll = ["xinput1_3.dll", "dinput.dll", "dinput8.dll"];
Game.UseDevReorder = false; //set on true if you use DirectInput controllers
Game.Hook.CustomDllEnabled = false;
Game.FakeFocus = true;
Game.PreventWindowDeactivation = false;
Game.PauseBetweenStarts = 30;
Game.PromptBetweenInstances = true;
Game.UseDirectX9Wrapper = false;
Game.Description =
  "Use the horizontal split (vertical crop menu and hud). If you use DirectInput controllers open the NFS JS file, inside the Nucleus scripts folder and set Game.UseDevReorder on true . When you load the game from Nucleus use always the profile NUCLEUS. Before launching the next instance go to LAN, create a server, in server name write the playername and at the end create a room. Launch the next instance, go to LAN, create a server, in server name write the playername, then search for the room you create before and join in (probably, you will need more than one attempt). When all the players are ready, click ok on the last Nucleus prompt (hook/send fake message). Be careful, after that the keyboard will control all the instances, so use the mouse/gamepad.";
Game.Hook.CustomDllEnabled = false;
Game.KeepSymLinkOnExit = true;

Game.Play = function() {
  //Create the "scripts" folder inside the NFSMW Nucleus instances content folder
  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts"); //the location where a folder named "scripts" will be created
  System.IO.Directory.CreateDirectory(filePath); //What Nucleus will do. Create the directory.
  //Copying the specific files to the NFSMW Nucleus instances content folder from the NFSMW scripts Nucleus folder
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\buttons-playstation.tpk"); //the location where the specific file will be placed
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\buttons-playstation.tpk"); //what file Nucleus will pick from the NFSMW scripts folder
  System.IO.File.Copy(savePkgOrigin, savePath, true); //the action Nucleus will do. Copy the file.
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\buttons-xbox.tpk");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\buttons-xbox.tpk");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMostWanted.WidescreenFix.asi");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\NFSMostWanted.WidescreenFix.asi");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMostWanted.WidescreenFix.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\NFSMostWanted.WidescreenFix.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\server.cfg");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "server.cfg");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\winmm.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "winmm.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptions.asi");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\NFSMWExtraOptions.asi");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWHUDAdapter.asi");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\NFSMWHUDAdapter.asi");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  if (!System.IO.File.Exists(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini")) {
    //if this file is already in the instances folders, Nucleus will not copy the file inside the if{}
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "scripts\\NFSMWExtraOptionsSettings.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  } //closing the if
  if (!System.IO.Directory.Exists(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\1")) {
    //if this directory is already in the instances folders, Nucleus will not copy the files inside the if{}. This will note copy the save file the next time_
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\1\\NFS Most Wanted\\NUCLEUS "); //_you will load the game
    System.IO.Directory.CreateDirectory(filePath);
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\1\\NFS Most Wanted\\NUCLEUS\\NUCLEUS");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "1\\NUCLEUS");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\1\\NFS Most Wanted\\NUCLEUS\\SPARKLE-2012270-09-26-17-32-36.SAV");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "1\\SPARKLE-2012270-09-26-17-32-36.SAV");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\1\\NFS Most Wanted\\Settings.ini");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Settings.ini");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  } //closing the if

  //var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";  //if you have deadzone problems, enable this lines (for xinput controllers). Nucleus will edit the XinputPlus.ini file for each instance.
  //Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [                         // remove the // for enable it
  //new Nucleus.IniSaveInfo("LeftStick", "DeadZone", "3277"),
  //new Nucleus.IniSaveInfo("RightStick", "DeadZone", "3277"),
  //]);

  var gpu = Context.Options["GPU"]; //this is what happens on the "Use old GPU compatible mode?" option. Basically it jus edit a ini file depending by the choice
  if (gpu == "No") {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMostWanted.WidescreenFix.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "ResX", Context.Width), new Nucleus.IniSaveInfo("MAIN", "ResY", Context.Height)]); //this will automatically edit the ini file using the context screen division_
  } //_resolution XY selected by the user
  if (gpu == "Yes") {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMostWanted.WidescreenFix.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "ResX", " 800"), new Nucleus.IniSaveInfo("MAIN", "ResY", " 600")]); //this will edit the resolution ini file to use 800x600
  }

  var intro = Context.Options["Intro"]; //this is what happens on the "Skip intro?" option. Basically it jus edit a ini file depending by the choice.
  if (intro == "Yes") {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("Misc", "SkipMovies", " 1") //this skip the cutscenes. Set on 0 to enable them. This could help if the game crash at the start
    ]);
  }
  if (intro == "No") {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("Misc", "SkipMovies", " 0") //this skip the cutscenes. Set on 0 to enable them. This could help if the game crash at the start
    ]);
  }

  var LocalIP = Context.User.GetLocalIP(); //this will get the user local IP
  if (Context.PlayerID == 0) {
    //this is what Nucleus will do for the first player
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Misc", "WindowedMode", "2"), new Nucleus.IniSaveInfo("Misc", "EnableMusic", "1")]);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\server.cfg";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("SERVER", "PORT", "9900"),
      new Nucleus.IniSaveInfo("SERVER", "LAN_THROTTLE", "6"),
      new Nucleus.IniSaveInfo("SERVER", "ADDR", '%%bind("' + LocalIP + ':9900")'),
      new Nucleus.IniSaveInfo("SERVER", "TRUST_MATCH", '%%bind("' + LocalIP + '")')
    ]);
  }
  if (Context.PlayerID == 1) {
    //this is what Nucleus will do for the second player
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Misc", "WindowedMode", "2"), new Nucleus.IniSaveInfo("Misc", "EnableMusic", "0")]);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\server.cfg";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("SERVER", "PORT", "9901"),
      new Nucleus.IniSaveInfo("SERVER", "LAN_THROTTLE", "6"),
      new Nucleus.IniSaveInfo("SERVER", "ADDR", '%%bind("' + LocalIP + ':9901")'),
      new Nucleus.IniSaveInfo("SERVER", "TRUST_MATCH", '%%bind("' + LocalIP + '")')
    ]);
  }
  if (Context.PlayerID == 2) {
    //this is what Nucleus will do for the third player
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Misc", "WindowedMode", "2"), new Nucleus.IniSaveInfo("Misc", "EnableMusic", "0")]);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\server.cfg";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("SERVER", "PORT", "9902"),
      new Nucleus.IniSaveInfo("SERVER", "LAN_THROTTLE", "6"),
      new Nucleus.IniSaveInfo("SERVER", "ADDR", '%%bind("' + LocalIP + ':9902")'),
      new Nucleus.IniSaveInfo("SERVER", "TRUST_MATCH", '%%bind("' + LocalIP + '")')
    ]);
  }
  if (Context.PlayerID == 3) {
    //this is what Nucleus will do for the fourth player
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\scripts\\NFSMWExtraOptionsSettings.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Misc", "WindowedMode", "2"), new Nucleus.IniSaveInfo("Misc", "EnableMusic", "0")]);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\server.cfg";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("SERVER", "PORT", "9903"),
      new Nucleus.IniSaveInfo("SERVER", "LAN_THROTTLE", "6"),
      new Nucleus.IniSaveInfo("SERVER", "ADDR", '%%bind("' + LocalIP + ':9903")'),
      new Nucleus.IniSaveInfo("SERVER", "TRUST_MATCH", '%%bind("' + LocalIP + '")')
    ]);
  }
};