Clandestine · handler “Clandestine”
Version 2
Release notes
multiple keyboard support and fixes.
- Released
- Size
- 1.6 KB
- Downloads
- 0
- Check
- Verified
- SHA-256
- 462e0cc5a96b46fabceabcfe68ce6532b6073ac839e53882d4d048b463ffe840
Files 1
| Path | Size |
|---|---|
| handler.js | 3.9 KB |
handler.js
Plain textHub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Thu Oct 29 2020 01:35:08 GMT+0000 (UTC).
Hub.Handler.Id = "M4DohysoE7XacttWq";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";
Game.DirSymlinkExclusions = ["Clandestine_Data\\Plugins"];
Game.FileSymlinkExclusions = ["steam_appid.txt", "steam_api64.dll"];
Game.GameName = "Clandestine";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "Clandestine.exe";
Game.SteamID = "290530";
Game.GUID = "Clandestine";
Game.MaxPlayers = 2;
Game.MaxPlayersOneMonitor = 4;
Game.BinariesFolder = "";
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Clandestine";
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.BlockRawInput = true;
Game.StartHookInstances = "2,3,4";
Game.FakeFocus = true;
Game.PreventWindowDeactivation = false;
Game.KeyboardPlayerSkipPreventWindowDeactivate = false;
Game.SetWindowHook = false;
Game.ResetWindows = true;
Game.PromptBetweenInstances = true;
Game.UserProfileConfigPath = "Documents\\My Games\\Clandestine";
Game.UserProfileSavePath = "Documents\\My Games\\Clandestine\\Saves";
Game.Description =
"Best played with one gamepad and one keyboard and mouse. Host a public game in the first instance before starting the second via the prompt, join the match in the second instance before applying the focus hooks prompt. Do not enter the setup menu when launching via Nucleus or it will break your custom resolution. Press the END key to unlock the input and the main cursor when you finish playing. You can also use CTRL+Q to close Nucleus and all its instances. If you are using 2 gamepads map your gamepads to the different players in the game controls options in your regular game first.";
Game.PauseBetweenStarts = 50;
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;
var savePath = Context.GetFolder(Nucleus.Folder.Documents) + "\\My Games\\Clandestine\\settings.ini";
Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
new Nucleus.IniSaveInfo("Video", "FullScreen", false),
new Nucleus.IniSaveInfo("Video", "ResolutionWidth", Context.Width),
new Nucleus.IniSaveInfo("Video", "ResolutionHeight", Context.Height)
]);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Logic Artists\\Clandestine", "Screenmanager Is Fullscreen mode_h3981298716", 0, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Logic Artists\\Clandestine", "Screenmanager Resolution Height_h2627697771", Context.Height, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Logic Artists\\Clandestine", "Screenmanager Resolution Width_h182942802", Context.Width, Nucleus.RegType.DWord);
};