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

Nobody Saves the World · handler “NobodySavestheWorld”

Version 2

Release notes

refresh window

Released
Size
39 KB
Downloads
671
Check
Verified
SHA-256
b0008ece94c29ac4efcbc4e60a8a0ef40c22e7db326973192ece1a19a217c83f
Download v2 (.nc)All versions

Files 4

PathSize
handler.js4.5 KB
NobodySavestheWorld/ssMaster.ini174 B
NobodySavestheWorld/ssMaster64.exe74 KB
NobodySavestheWorld/ssMaster_x64.dll21 KB

handler.js

Plain text
Hub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Sat Jan 22 2022 22:58:01 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "YS6jx4AMqj6A6sZNb";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["No", "Yes"];
Game.AddOption("Letterboxing/Pillarboxing fix?", "Removes the black bars in split-screen, some UI elements get misaligned.", "Pillar", answers1);

Game.ExecutableContext = ["fmod.dll"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_appid.txt", "local_save.txt", "xinput1_3.dll", "NStW_x64.exe", "ssMaster64.exe"];
Game.GameName = "Nobody Saves the World";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "NStW_x64.exe";
Game.SteamID = "1432050";
Game.GUID = "Nobody Saves the World";
Game.MaxPlayers = 2;
Game.MaxPlayersOneMonitor = 2;
Game.UseNucleusEnvironment = true;
Game.UseGoldberg = true;
Game.GoldbergNoLocalSave = true;
Game.LauncherTitle = "";
Game.LauncherExe = "ssMaster64.exe";
Game.LauncherExeIgnoreFileCheck = true;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Game";
Game.SendFakeFocusMsg = false;
Game.ResetWindows = true;
Game.RefreshWindowAfterStart = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.SupportsKeyboard = true;
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\1432050\\remote";
Game.UserProfileConfigPath = "Documents\\NStW";
Game.UserProfileSavePathNoCopy = true;
Game.UserProfileConfigPathNoCopy = true;
Game.Description =
  "Steam version only. Create an online multiplayer game in one instance and join in the other. You can access each instance save file via Nucleus, after the first launch click game options/open user profile save path in the UI.";
Game.KeepSymLinkOnExit = false;
Game.PauseBetweenStarts = 25;

Game.Play = function() {
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ssMaster64.exe");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "ssMaster64.exe");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

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

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

  var pillar = Context.Options["Pillar"];
  var id = Context.PlayerID + 1;

  if (Context.PlayerID == 0) {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ssMaster.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Settings", "Target", "NStW_x64.exe")]);
  } else {
    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ssMaster.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Settings", "Target", "NStW_x64" + id + ".exe")]);
  }

  if (pillar == "Yes") {
    if (Context.PlayerID == 0) {
      //remove pillar boxing
      Context.PatchFileFindAll(
        System.IO.Path.Combine(Context.RootInstallFolder, "NStW_x64.exe"),
        System.IO.Path.Combine(Context.RootFolder, "NStW_x64.exe"),
        [0x39, 0x8e, 0xe3, 0x3f],
        Context.ConvertToBytes(Context.AspectRatioDecimal)
      );
    } else {
      Game.ExecutableName = "NStW_x64" + id + ".exe";

      Context.PatchFileFindAll(
        System.IO.Path.Combine(Context.RootInstallFolder, "NStW_x64.exe"),
        System.IO.Path.Combine(Context.RootFolder, "NStW_x64" + id + ".exe"),
        [0x39, 0x8e, 0xe3, 0x3f],
        Context.ConvertToBytes(Context.AspectRatioDecimal)
      );
    }
  }

  if (pillar == "No") {
    if (Context.PlayerID == 0) {
      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "NStW_x64.exe"), System.IO.Path.Combine(Context.RootFolder, "NStW_x64.exe"), true);
    } else {
      Game.ExecutableName = "NStW_x64" + id + ".exe";

      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "NStW_x64.exe"), System.IO.Path.Combine(Context.RootFolder, "NStW_x64" + id + ".exe"), true);
    }
  }
};