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 1

Release notes

First release

Released
Size
39 KB
Downloads
1
Check
Verified
SHA-256
90af541a540315a3b8810a2308053ea394470da896740debbe0503e320d4a184
Download v1 (.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 = 1; // Released at https://hub.splitscreen.me/ on Sat Jan 22 2022 22:22:08 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.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);
    }
  }
};