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

Dungeon of the Endless · handler “DungeonoftheEndless”

Version 2

Release notes

Improvements and multi keyboard mice support.

Released
Size
2.7 KB
Downloads
337
Check
Verified
SHA-256
e22885ec0b301f56dc5779b9a71b62e2e7d17decac02274e120bea9a34d6d281
Download v2 (.nc)All versions

Files 2

PathSize
DungeonoftheEndless/Registry.xml1.2 KB
handler.js10 KB

handler.js

Plain text
Hub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Thu Oct 22 2020 07:20:07 GMT+0000 (UTC).
Hub.Handler.Id = "kKksuxubTSdagDYhh";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.DirSymlinkExclusions = ["DungeonoftheEndless_Data\\Plugins"];
Game.FileSymlinkExclusions = ["steam_api.dll", "steam_appid.txt", "steam_interfaces.txt"];
Game.GameName = "Dungeon of the Endless";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.ExecutableName = "dungeonoftheendless.exe";
Game.SteamID = "249050";
Game.GUID = "Dungeon of the Endless";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.BinariesFolder = "";
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Dungeon of the Endless";
Game.Hook.DInputEnabled = true;
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.BlockRawInput = false;
Game.UserProfileSavePath = "Documents\\Dungeon of the Endless\\Users";
Game.Description =
  "Only working with multiple keyboards/mice and just one gamepad because of Unity bad controller default input, create a multiplayer game in one instance and join in the others. Press the END key to unlock the input and the main mouse cursor when you finish playing. You can also use CTRL+Q to close Nucleus and all its instances.";
Game.PauseBetweenStarts = 30;

Game.SupportsMultipleKeyboardsAndMice = true;

Game.HookSetCursorPos = true;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = true;
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.HookReRegisterRawInput = true;
Game.HookReRegisterRawInputMouse = true;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = true;
Game.LockInputAtStart = true;
Game.LockInputToggleKey = 0x23;

Game.Play = function() {
  var Args = (Context.Args = " -popupwindow " + " -screen-width " + Context.Width + " -screen-height " + Context.Height);

  Context.StartArguments = Args;

  Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\AMPLITUDE Studios\\Dungeon of the Endless", "Screenmanager Is Fullscreen mode_h3981298716", 0, Nucleus.RegType.DWord);

  Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\AMPLITUDE Studios\\Dungeon of the Endless", "Screenmanager Resolution Height_h2627697771", Context.Height, Nucleus.RegType.DWord);

  Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\AMPLITUDE Studios\\Dungeon of the Endless", "Screenmanager Resolution Width_h182942802", Context.Width, Nucleus.RegType.DWord);

  if (!System.IO.File.Exists(Context.GetFolder[Nucleus.Folder.Documents] + "Dungeon of the Endless\\Users\\1062859710\\Registry.xml")) {
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859710");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859710\\Registry.xml");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Registry.xml");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  if (!System.IO.File.Exists(Context.GetFolder[Nucleus.Folder.Documents] + "Dungeon of the Endless\\Users\\1062859711\\Registry.xml")) {
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859711");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859711\\Registry.xml");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Registry.xml");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  if (!System.IO.File.Exists(Context.GetFolder[Nucleus.Folder.Documents] + "Dungeon of the Endless\\Users\\1062859712\\Registry.xml")) {
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859712");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859712\\Registry.xml");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Registry.xml");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  }

  if (!System.IO.File.Exists(Context.GetFolder[Nucleus.Folder.Documents] + "Dungeon of the Endless\\Users\\1062859713\\Registry.xml")) {
    var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859713");
    System.IO.Directory.CreateDirectory(filePath);

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\Dungeon of the Endless\\Users\\1062859713\\Registry.xml");
    var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Registry.xml");
    System.IO.File.Copy(savePkgOrigin, savePath, true);
  } else {
  }

  var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859710\\Registry.xml";
  Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
  Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
  Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "True");

  var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859711\\Registry.xml";
  Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
  Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
  Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "True");

  var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859712\\Registry.xml";
  Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
  Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
  Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "True");

  var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859713\\Registry.xml";
  Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
  Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
  Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
  Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
  Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "True");

  if (Context.IsKeyboardPlayer) {
    var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859710\\Registry.xml";
    Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
    Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
    Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
    Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
    Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "False");

    var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859711\\Registry.xml";
    Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
    Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
    Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
    Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
    Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "False");

    var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859712\\Registry.xml";
    Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
    Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
    Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
    Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
    Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "False");

    var path = "%USERPROFILE%\\Documents\\Dungeon of the Endless\\Users\\1062859713\\Registry.xml";
    Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "False");
    Context.ChangeXmlNodeInnerTextValue(path, "//Width", Context.Width);
    Context.ChangeXmlNodeInnerTextValue(path, "//Height", Context.Height);
    Context.ChangeXmlNodeInnerTextValue(path, "//Mode", "NoBorders");
    Context.ChangeXmlNodeInnerTextValue(path, "//EnableXBoxController", "False");
  }

  var interfaces = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_interfaces.txt";
  var lines = [
    "SteamClient015",
    "SteamGameServer012",
    "SteamGameServerStats001",
    "SteamUser017",
    "SteamFriends014",
    "SteamUtils007",
    "SteamMatchMaking009",
    "SteamMatchMakingServers002",
    "STEAMUSERSTATS_INTERFACE_VERSION011",
    "STEAMAPPS_INTERFACE_VERSION006",
    "SteamNetworking005",
    "STEAMREMOTESTORAGE_INTERFACE_VERSION012",
    "STEAMSCREENSHOTS_INTERFACE_VERSION002",
    "STEAMHTTP_INTERFACE_VERSION002",
    "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001",
    "STEAMUGC_INTERFACE_VERSION002",
    "STEAMAPPLIST_INTERFACE_VERSION001",
    "STEAMMUSIC_INTERFACE_VERSION001",
    "STEAMMUSICREMOTE_INTERFACE_VERSION001",
    "STEAMCONTROLLER_INTERFACE_VERSION"
  ];

  Context.WriteTextFile(interfaces, lines);
};