Subnautica · handler “Subnautica Nitrox”
Version 1
Release notes
First release
- Released
- Size
- 10.9 MB
- Downloads
- 1,375
- Check
- Verified
- SHA-256
- 40ec45eb65c8112f2c4bfab686732b0dd6b8e46256e578c36914d3079c2ee0d2
Files 68
| Path | Size |
|---|---|
| handler.js | 8.1 KB |
| SubnauticaNitrox/Nitrox/AssetBundles/chatkeyhint | 217 KB |
| SubnauticaNitrox/Nitrox/AssetBundles/chatlog | 177 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/English.json | 1.8 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Finnish.json | 2.0 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/French.json | 1.9 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/German.json | 2.0 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Hungarian.json | 2.1 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Italian.json | 2.0 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Polish.json | 2.0 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Portuguese.json | 2.0 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Romanian.json | 2.1 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Russian.json | 2.4 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Slovak.json | 1.9 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Spanish.json | 1.9 KB |
| SubnauticaNitrox/Nitrox/LanguageFiles/Turkish.json | 1.9 KB |
| SubnauticaNitrox/Nitrox/lib/0Harmony.dll | 186 KB |
| SubnauticaNitrox/Nitrox/lib/AssetsTools.NET.dll | 164 KB |
| SubnauticaNitrox/Nitrox/lib/Autofac.dll | 227 KB |
| SubnauticaNitrox/Nitrox/lib/discord-rpc.dll | 391 KB |
| SubnauticaNitrox/Nitrox/lib/dnlib.dll | 1.1 MB |
| SubnauticaNitrox/Nitrox/lib/LiteNetLib.dll | 93 KB |
| SubnauticaNitrox/Nitrox/lib/LiteNetLib.xml | 56 KB |
| SubnauticaNitrox/Nitrox/lib/LitJSON.dll | 60 KB |
| SubnauticaNitrox/Nitrox/lib/LZ4.dll | 44 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Bcl.AsyncInterfaces.dll | 20 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.DotNet.PlatformAbstractions.dll | 23 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Configuration.Abstractions.dll | 20 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Configuration.Binder.dll | 24 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Configuration.dll | 24 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.DependencyInjection.Abstractions.dll | 36 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.DependencyModel.dll | 57 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Options.ConfigurationExtensions.dll | 17 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Options.dll | 26 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.Extensions.Primitives.dll | 33 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.WindowsAPICodePack.dll | 96 KB |
| SubnauticaNitrox/Nitrox/lib/Microsoft.WindowsAPICodePack.Shell.dll | 530 KB |
| SubnauticaNitrox/Nitrox/lib/Mono.Cecil.dll | 350 KB |
| SubnauticaNitrox/Nitrox/lib/Mono.Cecil.Mdb.dll | 42 KB |
| SubnauticaNitrox/Nitrox/lib/Mono.Cecil.Rocks.dll | 27 KB |
| SubnauticaNitrox/Nitrox/lib/Mono.Nat.dll | 67 KB |
| SubnauticaNitrox/Nitrox/lib/MonoMod.RuntimeDetour.dll | 106 KB |
| SubnauticaNitrox/Nitrox/lib/MonoMod.Utils.dll | 191 KB |
| SubnauticaNitrox/Nitrox/lib/Newtonsoft.Json.dll | 684 KB |
| SubnauticaNitrox/Nitrox/lib/Nitrox.Bootloader.dll | 6.5 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxClient.dll | 421 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxModel-Subnautica.dll | 36 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxModel.dll | 149 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxPatcher.dll | 120 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxPatcher.dll.config | 527 B |
| SubnauticaNitrox/Nitrox/lib/NitroxServer.dll | 165 KB |
| SubnauticaNitrox/Nitrox/lib/NitroxServer.dll.config | 1.2 KB |
| SubnauticaNitrox/Nitrox/lib/protobuf-net.dll | 179 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.dll | 124 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.Settings.Configuration.dll | 47 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.Sinks.Async.dll | 9.0 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.Sinks.Console.dll | 32 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.Sinks.File.dll | 28 KB |
| SubnauticaNitrox/Nitrox/lib/Serilog.Sinks.Map.dll | 12 KB |
| SubnauticaNitrox/Nitrox/lib/System.Numerics.Vectors.dll | 113 KB |
| SubnauticaNitrox/Nitrox/lib/System.Runtime.CompilerServices.Unsafe.dll | 16 KB |
| SubnauticaNitrox/Nitrox/lib/System.Runtime.Serialization.dll | 416 KB |
| SubnauticaNitrox/Nitrox/lib/System.ServiceModel.dll | 2.4 MB |
| SubnauticaNitrox/Nitrox/lib/System.Threading.Tasks.Extensions.dll | 25 KB |
| SubnauticaNitrox/Nitrox/NitroxLauncher.exe | 9.9 MB |
| SubnauticaNitrox/Nitrox/NitroxLauncher.exe.config | 2.2 KB |
| SubnauticaNitrox/Nitrox/NitroxServer-Subnautica.exe | 49 KB |
| SubnauticaNitrox/Nitrox/NitroxServer-Subnautica.exe.config | 1.2 KB |
handler.js
Plain textHub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Mon Oct 11 2021 02:04:19 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "SXxys76eLF6BC36PF";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";
Game.ExecutableContext = ["Subnautica_Data"];
Game.RequiresAdmin = true;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = false;
Game.ExecutableName = "Subnautica.exe";
Game.SteamID = "264710";
Game.GUID = "Subnautica";
Game.GameName = "Subnautica Nitrox";
Game.MaxPlayers = 5;
Game.MaxPlayersOneMonitor = 5;
Game.LauncherTitle = "";
Game.UseGoldberg = false;
Game.NotTopMost = true;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Subnautica";
Game.FakeFocus = true;
Game.FakeFocusInterval = 10000;
Game.SendFakeFocusMsg = true;
Game.ResetWindows = true;
Game.SetForegroundWindowElsewhere = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.Description =
"IMPORTANT: This uses a Nucleus forked Subnautica Nitrox build. After running via Nucleus select multiplayer in the Nitrox launcher window that will open, once the game instance has launched set the game to windowed if it is in exclusive fullscreen, join the local server using the game multiplayer menu, write a name and select a color using your main mouse\\kb, once you are in-game select the Subnautica process in Nucleus process picker window, click refresh if you do not see it, wait for the instance to reposition then open the next Subnautica instance via the Nitrox Launcher too, repeat the same steps as in the previous instance. Enable the controller in the game options for the gamepad instances. If you use keyboards and mice after all the instances have launched, resized and positioned correctly, press the END key to lock the input for all instances to have their own cursor. You need to left click each mouse to make the emulated cursors appear after locking the input. Press the END key again to unlock the input whe you finish playing. You can also use CTRL+Q to close Nucleus and all its instances when the input is unlocked. Reduce in-game graphics settings to improve performance.";
Game.ThirdPartyLaunch = true;
Game.IgnoreThirdPartyPrompt = true;
Game.ForceProcessPick = true;
Game.PauseBetweenProcessGrab = 15;
Game.PauseBetweenStarts = 30;
//USS deprecated options:
Game.HookSetCursorPos = false;
Game.HookGetCursorPos = false;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = false;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;
Game.SendNormalMouseInput = false;
Game.SendNormalKeyboardInput = false;
Game.SendScrollWheel = false;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = false;
Game.HookReRegisterRawInputMouse = false;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = false;
//ProtoInput:
Game.SupportsMultipleKeyboardsAndMice = true;
Game.ProtoInput.InjectStartup = false;
Game.ProtoInput.InjectRuntime_RemoteLoadMethod = true;
Game.ProtoInput.InjectRuntime_EasyHookMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookStealthMethod = false;
Game.LockInputAtStart = false;
Game.LockInputSuspendsExplorer = true;
Game.ProtoInput.FreezeExternalInputWhenInputNotLocked = false;
Game.LockInputToggleKey = 0x23;
Game.ProtoInput.RenameHandlesHook = false;
Game.ProtoInput.RenameHandles = [];
Game.ProtoInput.RenameNamedPipes = [];
Game.ProtoInput.RegisterRawInputHook = true;
Game.ProtoInput.GetRawInputDataHook = true;
Game.ProtoInput.MessageFilterHook = true;
Game.ProtoInput.GetCursorPosHook = false;
Game.ProtoInput.SetCursorPosHook = false;
Game.ProtoInput.GetKeyStateHook = true;
Game.ProtoInput.GetAsyncKeyStateHook = true;
Game.ProtoInput.GetKeyboardStateHook = true;
Game.ProtoInput.CursorVisibilityHook = true;
Game.ProtoInput.ClipCursorHook = true;
Game.ProtoInput.FocusHooks = true;
Game.ProtoInput.DrawFakeCursor = false;
Game.ProtoInput.ClipCursorHookCreatesFakeClip = true;
Game.ProtoInput.EnableToggleFakeCursorVisibilityShortcut = false;
Game.ProtoInput.DontShowCursorWhenImageUpdated = true;
Game.ProtoInput.RawInputFilter = false;
Game.ProtoInput.MouseMoveFilter = false;
Game.ProtoInput.MouseActivateFilter = true;
Game.ProtoInput.WindowActivateFilter = true;
Game.ProtoInput.WindowActvateAppFilter = true;
Game.ProtoInput.MouseWheelFilter = true;
Game.ProtoInput.MouseButtonFilter = false;
Game.ProtoInput.KeyboardButtonFilter = true;
Game.ProtoInput.AutoHideTaskbar = true;
Game.ProtoInput.SendMouseWheelMessages = true;
Game.ProtoInput.SendMouseButtonMessages = true;
Game.ProtoInput.SendMouseMovementMessages = true;
Game.ProtoInput.SendKeyboardButtonMessages = true;
Game.ProtoInput.XinputHook = true;
Game.ProtoInput.EnableFocusMessageLoop = false;
//Game.ProtoInput.FocusLoopIntervalMilliseconds = 5;
//Game.ProtoInput.FocusLoop_WM_ACTIVATE = true;
//Game.ProtoInput.FocusLoop_WM_ACTIVATEAPP = true;
//Game.ProtoInput.FocusLoop_WM_NCACTIVATE = true;
//Game.ProtoInput.FocusLoop_WM_SETFOCUS = true;
//Game.ProtoInput.FocusLoop_WM_MOUSEACTIVATE = true;
Game.ProtoInput.BlockedMessages = [0x0008, 0x02a3, 0x02a1]; // Blocks WM_KILLFOCUS, WM_MOUSEHOVER and WM_MOUSELEAVE
Game.Play = function() {
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Unknown Worlds\\Subnautica", "Screenmanager Fullscreen mode_h3630240806", 3, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Unknown Worlds\\Subnautica", "Screenmanager Is Fullscreen mode_h3981298716", 0, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Unknown Worlds\\Subnautica", "Screenmanager Resolution Height_h2627697771", Context.Height, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Unknown Worlds\\Subnautica", "Screenmanager Resolution Width_h182942802", Context.Width, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Unknown Worlds\\Subnautica", "Screenmanager Resolution Use Native_h1405027254", 0, Nucleus.RegType.DWord);
var appid = Context.RootInstallFolder + "\\steam_appid.txt";
var lines = ["264710"];
Context.WriteTextFile(appid, lines);
var Gamefolder = System.IO.Path.Combine(Game.Folder);
Context.RunAdditionalFiles(["1|" + Gamefolder + "\\Nitrox\\NitroxServer-Subnautica.exe"], false, 1);
Context.RunAdditionalFiles(["1|" + Gamefolder + "\\Nitrox\\NitroxLauncher.exe"], false, 1);
var path = Gamefolder + "\\Nitrox\\path.txt";
var lines = ["" + Context.RootInstallFolder];
Context.WriteTextFile(path, lines);
Game.KillProcessesOnClose = ["NitroxLauncher", "NitroxServer-Subnautica"];
Game.ProtoInput.OnInputLocked = function() {
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
ProtoInput.InstallHook(player.ProtoInputInstanceHandle, ProtoInput.Values.GetCursorPosHookID);
ProtoInput.InstallHook(player.ProtoInputInstanceHandle, ProtoInput.Values.SetCursorPosHookID);
ProtoInput.EnableMessageFilter(player.ProtoInputInstanceHandle, ProtoInput.Values.RawInputFilterID);
ProtoInput.EnableMessageFilter(player.ProtoInputInstanceHandle, ProtoInput.Values.MouseButtonFilterID);
ProtoInput.SetDrawFakeCursor(player.ProtoInputInstanceHandle, true);
}
};
Game.ProtoInput.OnInputUnlocked = function() {
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
ProtoInput.UninstallHook(player.ProtoInputInstanceHandle, ProtoInput.Values.GetCursorPosHookID);
ProtoInput.UninstallHook(player.ProtoInputInstanceHandle, ProtoInput.Values.SetCursorPosHookID);
ProtoInput.DisableMessageFilter(player.ProtoInputInstanceHandle, ProtoInput.Values.RawInputFilterID);
ProtoInput.DisableMessageFilter(player.ProtoInputInstanceHandle, ProtoInput.Values.MouseButtonFilterID);
ProtoInput.SetDrawFakeCursor(player.ProtoInputInstanceHandle, false);
}
};
};