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

Stardew Valley · handler “StardewValley”

Version 6

Release notes

multimonitor fix

Released
Size
1.6 KB
Downloads
5,118
Check
Verified
SHA-256
54798e023cc87432044eb13f17769d8f78d9182a2dab73c60468d594d57293f6
Download v6 (.nc)All versions

Files 1

PathSize
handler.js4.6 KB

handler.js

Plain text
Hub.Handler.Version = 6; // Released at https://hub.splitscreen.me/ on Fri Dec 04 2020 00:49:18 GMT+0000 (UTC).
Hub.Handler.Id = "LT3wMdrR7gPrKgfzb";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["Mods"];
Game.FileSymlinkExclusions = ["steam_appid.txt"];
Game.NeedsSteamEmulation = false;
Game.CreateSteamAppIdByExe = true;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "StardewModdingAPI.exe";
Game.SteamID = "413150";
Game.GUID = "Stardew Valley Modding API";
Game.GameName = "Stardew Valley (Modding API)";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.LauncherTitle = "conhost";
Game.HideTaskbar = true;
Game.NotTopMost = true;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Stardew Valley";
Game.HasDynamicWindowTitle = true;
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.FakeFocus = true;
Game.HookFocus = true;
Game.SetWindowHook = false;
Game.RefreshWindowAfterStart = true;
Game.ResetWindows = true;
Game.ForceProcessPick = false;
Game.UserProfileConfigPath = "AppData\\Roaming\\StardewValley";
Game.UserProfileSavePath = "AppData\\Roaming\\StardewValley\\Saves";
Game.Description =
  "This script needs SMAPI and the WindowResize mod installed. When the first Stardew instance opens minimize the SMAPI cmd window and click on the game window to make sure that Nucleus hooks the correct window, do the same every time a new instance opens. Press the END key in your keyboard to unlock the input and main cursor when you finish playing. You can also use CTRL+Q to close Nucleus and all its instances. If you notice an instance looks stretched or if you see blackbars in-game press CTRL+T twice or more until it fixes. If you are using multiple monitors/one player per monitor and you notice the windows were not resized to fullscreen when Nucleus finishes press on the square icon in the top right corner of the game.";
Game.PauseBetweenProcessGrab = 15;
Game.PauseBetweenStarts = 40;

Game.SupportsMultipleKeyboardsAndMice = true;

Game.HookSetCursorPos = true;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = true;
Game.HookGetAsyncKeyState = true;
Game.HookGetKeyboardState = true;
Game.HookFilterRawInput = false;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;

Game.SendNormalMouseInput = true;
Game.SendNormalKeyboardInput = true;
Game.SendScrollWheel = true;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.DrawFakeMouseCursor = false;
Game.LockInputAtStart = true;
Game.LockInputToggleKey = 0x23;

Game.Play = function() {
  var path = "%USERPROFILE%\\AppData\\Roaming\\StardewValley\\startup_preferences";
  Context.ChangeXmlNodeInnerTextValue(path, "//skipWindowPreparation", "false");
  Context.ChangeXmlNodeInnerTextValue(path, "//windowMode", "1");
  Context.ChangeXmlNodeInnerTextValue(path, "//windowedBorderlessFullscreen", "false");
  Context.ChangeXmlNodeInnerTextValue(path, "//fullscreen", "false");
  Context.ChangeXmlNodeInnerTextValue(path, "//gamepadControls", "true");
  Context.ChangeXmlNodeInnerTextValue(path, "//hardwareCursor", "false");
  Context.ChangeXmlNodeInnerTextValue(path, "//fullscreenResolutionX", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//fullscreenResolutionY", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//preferredResolutionX", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//preferredResolutionY", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//pauseWhenOutOfFocus", "false");

  if (Player.Owner.IsFullscreen()) {
    Game.RefreshWindowAfterStart = false;
    Game.ResetWindows = false;
    Game.DontResize = true;

    var path = "%USERPROFILE%\\AppData\\Roaming\\StardewValley\\startup_preferences";
    Context.ChangeXmlNodeInnerTextValue(path, "//skipWindowPreparation", "false");
    Context.ChangeXmlNodeInnerTextValue(path, "//windowMode", "1");
    Context.ChangeXmlNodeInnerTextValue(path, "//windowedBorderlessFullscreen", "false");
    Context.ChangeXmlNodeInnerTextValue(path, "//fullscreen", "false");
    Context.ChangeXmlNodeInnerTextValue(path, "//gamepadControls", "true");
    Context.ChangeXmlNodeInnerTextValue(path, "//hardwareCursor", "false");
    Context.ChangeXmlNodeInnerTextValue(path, "//pauseWhenOutOfFocus", "false");
  }
};