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 7

Release notes

i didnt save the edits to the powershell script

Released
Size
6.9 KB
Downloads
4
Check
Verified
SHA-256
92202372a99f9a3933cebb9d2edf27d9658722b272fa29d4601c1ce00e58749b
Download v7 (.nc)All versions

Files 4

PathSize
NVMP/modlist.txt15 KB
NVMP/retrieve_modlist.ps11.1 KB
NVMP/start.bat161 B
handler.js8.3 KB

handler.js

Plain text
Hub.Handler.Version = 7; // Released at https://hub.splitscreen.me/ on Mon Aug 01 2022 20:02:48 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 = 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;

//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;
Game.Description = " GO TO https://hub.splitscreen.me/handler/vnPXYhWMJJ3FNuQuS FOR THE REQUIRED MODS AND GUIDE";

//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");
  }
};