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 2

Release notes

Update to fix the powerscript having the wrong nucleus handler name

Released
Size
5.2 KB
Downloads
22
Check
Verified
SHA-256
d165f7cbb08da71af3129caf9206e9fc8f38dca784ffd6d84afcbab941a7b75d
Download v2 (.nc)All versions

Files 7

PathSize
handler.js8.6 KB
Fallout_New_Vegas/modlist.txt356 B
Fallout_New_Vegas/retrieve_modlist.ps11.1 KB
Fallout_New_Vegas/start.bat161 B
NVMP/modlist.txt356 B
NVMP/retrieve_modlist.ps11.1 KB
NVMP/start.bat161 B

handler.js

Plain text
Hub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Thu Jul 28 2022 06:02:00 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "vnPXYhWMJJ3FNuQuS";
Hub.Maintainer.Name = "Moon__Shyne";
Hub.Maintainer.Id = "CHEJQ8qDpxdMgSsc3";

//Game Info
Game.GameName = "NVMP";
Game.ExecutableToLaunch = "nvmp_start.exe";
Game.ExecutableName = "FalloutNV.exe";
Game.GUID = "NVMP";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;

Game.StartArguments =
  'localhost 27015 22380 null "CaravanPack.esm,ClassicPack.esm,DeadMoney.esm,FalloutNV.esm,FalloutNV_lang.esp,GunRunnersArsenal.esm,HonestHearts.esm,LonesomeRoad.esm,MercenaryPack.esm,OldWorldBlues.esm,TribalPack.esm"';
Game.UseNucleusEnvironment = true;
Game.UserProfileConfigPath = "Documents\\My Games\\FalloutNV";
Game.UserProfileSavePath = "Documents\\My Games\\FalloutNV\\Saves";
Game.SymlinkFolders = false;
Game.ForceUserProfileConfigCopy = false;
Game.UserProfileSavePathNoCopy = true;
Game.Description = " IMPORTANT: Run Bat file in Fallout New Vegas folder inside the handler folder Install:4gb patcher NVMP and NVAC With NVSE DELETE THE NVSE INI OUTSIDE THE PLUGINS FOLDER.";

//Hook/Focus lines
Game.HandlerInterval = 100;
Game.Hook.ForceFocus = false; //added
Game.HasDynamicWindowTitle = true;
Game.Hook.ForceFocusWindowName = "New Vegas: Multiplayer"; //changed
Game.FakeFocus = false; //added
Game.FakeFocusSendActivate = true; //added
Game.HookFocus = false; //added
Game.SetWindowHook = true;
Game.RefreshWindowAfterStart = false; //changed
Game.ResetWindows = true;
Game.SetForegroundWindowElsewhere = false;

//Input lines
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = false;
Game.UseDInputBlocker = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.InjectHookXinput = true;

//Extra

Game.NeedsSteamEmulation = false;
Game.HideTaskbar = false;
Game.RequiresAdmin = true;
//Game.ThirdPartyLaunch = true; //Use if the game is launched outside of Nucleus | NOTE: You will not be able to use start up hooks or CMDLaunch with this option
//Game.ProcessChangesAtEnd = true;			//Do the resizing, repositioning and post-launch hooking of all game instances at the very end | will not work with every option ran normally
Game.PromptBetweenInstancesEnd = false;
Game.PauseBetweenStarts = 12;
Game.PauseBetweenProcessGrab = 16;
Game.PromptBetweenInstances = false;
Game.KillProcessesOnClose = ["nvmp_storyserver", "NVMP", "nvmp_launcher.temp"];

//ProtoInput:

Game.ProtoInput.InjectStartup = false;
Game.ProtoInput.InjectRuntime_RemoteLoadMethod = true;
Game.ProtoInput.InjectRuntime_EasyHookMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookStealthMethod = false;
Game.LockInputAtStart = false;
Game.LockInputSuspendsExplorer = true;
Game.ProtoInput.FocusHooks = true;
Game.ProtoInput.FindWindowHook = true;
Game.ProtoInput.SetWindowStyleHook = true;
Game.ProtoInput.SetWindowPosHook = true;
Game.ProtoInput.RawInputFilter = false;
Game.ProtoInput.MouseMoveFilter = false;
Game.ProtoInput.MouseActivateFilter = false;
Game.ProtoInput.WindowActivateFilter = true;
Game.ProtoInput.WindowActvateAppFilter = true;
Game.ProtoInput.MouseWheelFilter = true;

Game.ProtoInput.UseOpenXinput = true;

Game.Play = function() {
  Context.RunAdditionalFiles(["1|" + Context.RootInstallFolder + "\\NVMP_StoryServer.exe"], false, 0, false, false);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ModConverter.ps1");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "retrieve_modlist.ps1");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\start.bat");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "start.bat");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  Context.RunAdditionalFiles(["all|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\start.bat"], false, 0, false, false);

  /* Backing up the specified files before editing them. In this way, when Nucleus-Coop will be closed, the original files will be restored. 
This is needed because the script is using the original game folder instead of symlinked ones.*/
  Context.BackupFile(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\client.cfg", true);
  Context.BackupFile(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Fallout_default.ini", true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\client.cfg");
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Developer", "AllowMultipleNVInstances", "1.000000")]);

  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 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")
  ]);

  if (Context.HasKeyboardPlayer) {
    Game.SupportsMultipleKeyboardsAndMice = false;

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

    var savePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\My Games\\FalloutNV\\FalloutPrefs.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "bGamepadEnable", "0")]);
  } else {
    Game.SupportsMultipleKeyboardsAndMice = false;

    var savePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\My Games\\FalloutNV\\FalloutPrefs.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "bGamepadEnable", "1")]);
  }

  //variable that stores the environemnt saves folder path
  var SaveFolderPath = Context.EnvironmentPlayer + Context.UserProfileSavePath;
  //Do this if the "saves_deleted.txt" is not found in the path
  if (!System.IO.File.Exists(SaveFolderPath + "\\saves_deleted.txt")) {
    //Delete the saves folder and its content
    System.IO.Directory.Delete(SaveFolderPath, true);
    Game.ForceUserProfileConfigCopy = true;
    //Create a new saves folder
    System.IO.Directory.CreateDirectory(SaveFolderPath);
    //Create the "saves_deleted.txt" file for the next time.
    System.IO.File.Create(SaveFolderPath + "\\saves_deleted.txt");
  }
};