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

Fallout: New Vegas · handler “Fallout New Vegas Multiplayer Mod”

Version 20

Release notes

symlink, goldberg, code cleanning and more notes., please test.

Released
Size
3.6 KB
Downloads
729
Check
Verified
SHA-256
9f9a91dfc619b838faddaaf5c32e9e4222f9a7e43bff436d133e5f3deaab26b2
Download v20 (.nc)All versions

Files 4

PathSize
handler.js7.3 KB
NVMP/Modlist.bat161 B
NVMP/modlist.txt356 B
NVMP/retrieve_modlist.ps11.1 KB

handler.js

Plain text
Hub.Handler.Version = 20; // Released at https://hub.splitscreen.me/ on Mon May 20 2024 09:54:06 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "vnPXYhWMJJ3FNuQuS";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["Data"];
Game.KillMutex = ["FalloutNVGameMutex"];
Game.DirSymlinkExclusions = [
  //"Data\\NVSE",
  "nvmp"
];
Game.FileSymlinkExclusions = [
  //"steam_api.dll",
  "steam_appid.txt",
  "nvse_config.ini"
];
Game.FileSymlinkCopyInstead = [
  "client.cfg",
  "ExitData.mhd",
  "Fallout_default.ini",
  "FalloutNVLauncher.exe",
  "high.ini",
  "low.ini",
  "MainTitle.wav",
  "medium.ini",
  "VeryHigh.ini",
  "nvmp.log",
  "nvmp_launcher.exe",
  "nvmp_start.exe",
  "nvmp_storyserver.exe",
  "nvmp-server.log",
  "server.cfg",
  "crashpad_handler.exe",
  "nvse_loader.exe",
  "falloutnv_error.log",
  "falloutnv_havok.log",
  "nvse.log",
  "nvse_loader.log"
];
Game.StartArguments =
  'localhost 27015 22380 null null "CaravanPack.esm,ClassicPack.esm,DeadMoney.esm,FalloutNV.esm,GunRunnersArsenal.esm,HonestHearts.esm,LonesomeRoad.esm,MercenaryPack.esm,OldWorldBlues.esm,TribalPack.esm"';
('localhost 27015 22380 null null "CaravanPack.esm,ClassicPack.esm,DeadMoney.esm,FalloutNV.esm,GunRunnersArsenal.esm,HonestHearts.esm,LonesomeRoad.esm,MercenaryPack.esm,OldWorldBlues.esm,TribalPack.esm"');
Game.UseNucleusEnvironment = true;
Game.UseGoldberg = true;
//Game.UseSteamless = true;
//Game.SteamlessArgs = "--quiet --keepbind";
//Game.SteamlessTiming = 4000;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.GameName = "NVMP";
Game.ExecutableName = "FalloutNV.exe";
Game.ExecutableToLaunch = "nvmp_start.exe";
Game.SteamID = "22380";
//Game.CreateSteamAppIdByExe = true;
Game.GUID = "Fallout New Vegas";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.LauncherTitle = "";
Game.SetTopMostAtEnd = true;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "New Vegas: Multiplayer"; //Fallout: New Vegas
Game.DPIHandling = Nucleus.DPIHandling.InvScaled;
Game.HookFocus = true;
Game.HookInit = false;
Game.SetWindowHook = false;
Game.ResetWindows = true;
Game.Hook.DInputEnabled = false;
Game.UseDInputBlocker = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.UserProfileSavePath = "Documents\\My Games\\FalloutNV\\Saves";
Game.UserProfileConfigPath = "Documents\\My Games\\FalloutNV";
Game.UserProfileSavePathNoCopy = false;
Game.UserProfileConfigPathNoCopy = false;
Game.Description =
  " IMPORTANT: Make sure you downloaded the clean Fallout New Vegas vanilla game files without any mods and install NVMP and the stability mods in your main game files, run your main game at least once after doing that and change some graphic settings before launching this. NVMP: https://github.com/NVMP/ClientDistribution/releases. 4gb patch and other needed stability mods: https://wiki.nv-mp.com/en/radd/RADD-Mods. Install them manually by extracting them in your main game files or use vortex, mod organizer does not work with this handler.";
Game.PauseBetweenProcessGrab = 2;
Game.PauseBetweenContextAndLaunch = 5;
Game.PauseBetweenStarts = 25;
Game.KillProcessesOnClose = ["nvmp_storyserver", "NVMP", "nvmp_launcher.temp"];

Game.Play = function() {
  var fini = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\Fallout.ini";

  var SaveFolderPath = Context.EnvironmentPlayer + Context.UserProfileSavePath;

  if (!System.IO.File.Exists(SaveFolderPath + "\\saves_deleted.txt")) {
    System.IO.Directory.Delete(SaveFolderPath, true);

    System.IO.Directory.CreateDirectory(SaveFolderPath);

    Game.ForceUserProfileConfigCopy = true;

    System.IO.File.Create(SaveFolderPath + "\\saves_deleted.txt");
  }

  if (System.IO.File.Exists(fini)) {
    System.IO.File.SetAttributes(fini, System.IO.File.GetAttributes(fini) & ~System.IO.FileAttributes.ReadOnly);
  }

  var savePath = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\Fallout.ini";
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("General", "bAlwaysActive", "1"),
    new Nucleus.IniSaveInfo("Display", "iSize W", Context.Width),
    new Nucleus.IniSaveInfo("Display", "iSize H", Context.Height),
    new Nucleus.IniSaveInfo("Display", "bFull Screen", "0"),
    new Nucleus.IniSaveInfo("Display", "bBorderless", "0"),
    new Nucleus.IniSaveInfo("General", "SMainMenuMovieIntro", "0"),
    new Nucleus.IniSaveInfo("General", "SIntroSequence", "0"),
    new Nucleus.IniSaveInfo("Display", "fDefaultFOV", "98"),
    new Nucleus.IniSaveInfo("RenderedTerminal", "fRenderedTerminalZoom", "85"),
    new Nucleus.IniSaveInfo("General", "bPreemptivelyUnloadCells", "1"),
    new Nucleus.IniSaveInfo("General", "bSelectivePurgeUnusedOnFastTravel", "1")
  ]);

  var savePath = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\FalloutPrefs.ini";
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("Display", "bBorderless", "0"),
    new Nucleus.IniSaveInfo("Display", "bFull Screen", "0"),
    new Nucleus.IniSaveInfo("Display", "iSize H", Context.Height),
    new Nucleus.IniSaveInfo("Display", "iSize W", Context.Width),
    new Nucleus.IniSaveInfo("Display", "fDefaultFOV", "98"),
    new Nucleus.IniSaveInfo("RenderedTerminal", "fRenderedTerminalZoom", "85"),
    new Nucleus.IniSaveInfo("General", "bPreemptivelyUnloadCells", "1"),
    new Nucleus.IniSaveInfo("General", "bSelectivePurgeUnusedOnFastTravel", "1")
  ]);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Fallout_default.ini");
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("Display", "iSize W", Context.Width),
    new Nucleus.IniSaveInfo("Display", "iSize H", Context.Height),
    new Nucleus.IniSaveInfo("Display", "bFull Screen", "0"),
    new Nucleus.IniSaveInfo("Display", "bBorderless", "0"),
    new Nucleus.IniSaveInfo("General", "SMainMenuMovieIntro", "0"),
    new Nucleus.IniSaveInfo("General", "SIntroSequence", "0"),
    new Nucleus.IniSaveInfo("Display", "fDefaultFOV", "98"),
    new Nucleus.IniSaveInfo("RenderedTerminal", "fRenderedTerminalZoom", "85"),
    new Nucleus.IniSaveInfo("General", "bPreemptivelyUnloadCells", "1"),
    new Nucleus.IniSaveInfo("General", "bSelectivePurgeUnusedOnFastTravel", "1")
  ]);

  var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\client.cfg";
  var dict = [Context.FindLineNumberInTextFile(txtPath, "AllowMultipleNVInstances=", Nucleus.SearchType.StartsWith) + "|AllowMultipleNVInstances=1.000000"];
  Context.ReplaceLinesInTextFile(txtPath, dict);

  var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\nvserver.bat";
  var lines = ["START nvmp_storyserver.exe -eos_disable"];
  Context.WriteTextFile(Bat, lines);

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

  var Gamefolder = System.IO.Path.Combine(Game.Folder);

  Context.RunAdditionalFiles(["1|" + Gamefolder + "\\Modlist.bat"], false, 1);
};