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

State of Decay 2: Juggernaut Edition · handler “State of Decay 2: Juggernaut Edition”

Version 4

Release notes

updated to latest version

Released
Size
2.0 KB
Downloads
866
Check
Verified
SHA-256
d7a1406448b510e0933f622e56f73510ed061000c54ed99d390260052bfcbb58
Download v4 (.nc)All versions

Files 1

PathSize
handler.js5.5 KB

handler.js

Plain text
Hub.Handler.Version = 4; // Released at https://hub.splitscreen.me/ on Thu Feb 25 2021 20:41:26 GMT+0000 (UTC).
Hub.Handler.Id = "mNF2zQudSCC72RmyS";
Hub.Maintainer.Name = "PoundlandBacon";
Hub.Maintainer.Id = "AdiAjSyfZPMvu3a4M";

//Game.KillMutex = ["UnrealEngine4"];
Game.DirSymlinkExclusions = ["StateOfDecay2\\Binaries\\Win64", "Engine\\Binaries\\ThirdParty\\Steamworks\\Steamv148\\Win64"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_appid.txt", "StateOfDecay2-Win64-Shipping.exe"];
Game.GameName = "State of Decay 2: Juggernaut Edition";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "StateOfDecay2-Win64-Shipping.exe";
Game.SteamID = "495420";
Game.GUID = "StateOfDecay2";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.BinariesFolder = "StateOfDecay2\\Binaries\\Win64";
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.CreateSteamAppIdByExe = true;
Game.LaunchAsDifferentUsers = true;
Game.LauncherTitle = "";
Game.HideTaskbar = false;
Game.StartArguments = "-WindowedFullscreen -nosplash";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "StateOfDecay2";
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.InjectHookXinput = true;
Game.HookFocus = true;
Game.ProcessChangesAtEnd = true;
Game.PromptProcessChangesAtEnd = true;
Game.WindowStyleValues = ["~0xC00000", "~0x40000", "~0x20000000", "~0x20000", "~0x80000", "0x40000000"];
Game.ExtWindowStyleValues = ["~0x00000001", "~0x00000200", "~0x00020000"];
Game.ResetWindows = true;
Game.SetWindowHook = true;
Game.SetForegroundWindowElsewhere = true;

Game.Description =
  "Make sure you have run the game normally via steam at least once before using the script. Instances are launched under different Windows user accounts so you need to launch Nucleus as admin. The instances will start fullscreen at first, this is normal. Log in using different Microsoft accounts in each instance, you can al-tab betwwen the instances if necessary. DO NOT press the prompt to start resizing the instances until all accounts are logged in. Make sure the Microsoft accounts are friends (you can do this via xbox.com), then in game go to multiplayer in the settings and make sure hosting is turned on (its off by default). Once this is done, press start, and on the pause menu you'll see three empty player slots (little squares) just select one and you'll have the option to invite a friend, and should see the other account(s) available. Enable the option \"Keep Nucleus made user accounts\" in the Nucleus settings and save if you want to keep your login details, save games and graphics settings after closing Nucleus. If the script doesn't work or you get a game crash error try moving Nucleus to the root of the drive your games are installed on. Pess CTRL+T twice if an instance resizes incorrectly, or the resolution is wrong (pixelated). As the instances connect via the Xbox Live servers an internet connection is required.";
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var VideoConfig = Context.NucleusUserRoot + "\\AppData\\Local\\StateOfDecay2\\Saved\\Config\\WindowsNoEditor\\GameUserSettings.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("/Script/DaytonGame.DaytonGameUserSettings", "LastUserConfirmedResolutionSizeX", Context.Width),
    new Nucleus.IniSaveInfo("/Script/DaytonGame.DaytonGameUserSettings", "LastUserConfirmedResolutionSizeY", Context.Height),
    new Nucleus.IniSaveInfo("/Script/DaytonGame.DaytonGameUserSettings", "LastConfirmedFullscreenMode", "2"),
    new Nucleus.IniSaveInfo("/Script/DaytonGame.DaytonGameUserSettings", "DesiredScreenWidth", Context.Width),
    new Nucleus.IniSaveInfo("/Script/DaytonGame.DaytonGameUserSettings", "DesiredScreenHeight", Context.Height),
    new Nucleus.IniSaveInfo("ScalabilityGroups", "sg.ResolutionQuality", "100.000000")
  ]);

  var VideoConfig = Context.NucleusUserRoot + "\\AppData\\Local\\StateOfDecay2\\Saved\\Config\\WindowsNoEditor\\Game.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("/Script/MoviePlayer.MoviePlayerSettings", "bWaitForMoviesToComplete", false),
    new Nucleus.IniSaveInfo("/Script/MoviePlayer.MoviePlayerSettings", "bMoviesAreSkippable", true),
    new Nucleus.IniSaveInfo("/Script/MoviePlayer.MoviePlayerSettings", "StartupMovies", " ")
  ]);

  Context.PatchFile(
    System.IO.Path.Combine(Context.RootInstallFolder, "StateOfDecay2-Win64-Shipping.exe"),
    System.IO.Path.Combine(Context.RootFolder, "StateOfDecay2\\Binaries\\Win64\\StateOfDecay2-Win64-Shipping.exe"),
    [0x10, 0x53, 0x22, 0x05],
    [0x3c, 0xf5, 0xb7, 0x02]
  );

  Context.PatchFile(
    System.IO.Path.Combine(Context.RootFolder, "StateOfDecay2\\Binaries\\Win64\\StateOfDecay2-Win64-Shipping.exe"),
    System.IO.Path.Combine(Context.RootFolder, "StateOfDecay2\\Binaries\\Win64\\StateOfDecay2-Win64-Shipping.exe"),
    [0xcb, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0x48],
    [0xcb, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0xc3]
  );

  Context.PatchFile(
    System.IO.Path.Combine(Context.RootFolder, "StateOfDecay2\\Binaries\\Win64\\StateOfDecay2-Win64-Shipping.exe"),
    System.IO.Path.Combine(Context.RootFolder, "StateOfDecay2\\Binaries\\Win64\\StateOfDecay2-Win64-Shipping.exe"),
    [0xb8, 0xe2, 0x00, 0x48, 0x85, 0xc0, 0x75],
    [0xb8, 0xe2, 0x00, 0x48, 0x85, 0xc0, 0x74]
  );
};