Such a fan with Roll Control mod that I can't play it without the vehicles having attitudes. You won't even know if your seamoth is angry at you for leaving it upside down without this XD
Hello and thanks for your work on this! I haven't actually loaded in yet, but I'm getting the following error when configuring the Attitude Indicators mod (via Options > Mods at the starting menu). Seems to happen when changing the "Auto-position" options. Also, all of the sliders for the X/Y/Z position options keep moving around, and/or are not at what seems to be the defaults, though I'm not sure if they're actually being changed when they move since it's a binary 0<-->1 choice...
Hi, thanks for the comments. I just uploaded a new version that fixes the errors you mentioned in the config menu.
When you have "use autoposition for seamoth" toggled, then the sliders will not do anything. If you toggle that checkbox off, then the default position of the sliders (the middle, where the slider locks in), should place the instrument in the center of the screen.
Hi Mikjaw. Ray here from Subnautica Modding Discord. https://docs.bepinex.dev/articles/dev_guide/plugin_tutorial/2_plugin_start.html#specifying-dependencies-on-other-plugins
This attribute ensures the mod you depend on is loaded first, and also prints a nice helpful error message in the logs if the user doesn't have it installed.
Don’t use your mods, but do help users on the server and elsewhere that are experiencing issues. On occasion a mod would load before Nautilus has loaded. Adding Nautilus as a hard dependency stops this from happening and also indicates in the log if they don’t have Nautilus installed.
it must've been set to download to Qmods. you can manually set the location for it in the games section and the three dots by subnautica. then you can click the BepInEx folder.
edit: so it did the same thing for me, but you can grab the file and but it in the BepInEx folder, and in the plugins folder
nice idea, how about slowly returning back to level position ? also would be nice if he does that fast when on the waters surface. looks weird now. sorry should've post this on roll control page
Returning the instrument to a "level" reading more slowly after rapidly leveling at the surface. I'm not going to do that. This instrument accurately tracks the vehicle movements.
Returning the vehicle to a "level" position at whim. You can use my submarines (one or two) from Vehicle Framework if you'd like this feature. I could add such a feature to the seamoth, but that's quite low on my priority list.
yes my English is really rusty. the instrument is already fine. what i meant is closer to no.2 : we have total control over our rolls while swimming, using seaglide or seamoth, but by remaining still, we'd slowly go back to level position . also when we get to surface, its better if the camera gets back to level position quickly (now even when the head is out of water the camera remains tilted, which is unnatural) this is about "roll Control" mod actually :-) .thanks again
If you toggle Roll Control using the configured button (Right Alt by default, I think), then your vehicle will smoothly go back to zero roll. In other words, by switching Roll Control off while in a seamoth, you will transition into the normal control scheme in about 1 second. I don't want to add any kind of "auto pilot" to Roll Control, however, because that mod is all about giving control and not taking away control.
Concerning "breaching the surface," I had to make the natural, physical choice when deciding what to do with the camera. The design of Subnautica is to snap-to-level on breach, which is unnatural. The result with Roll Control was that breaching the surface like a dolphin resulted in jarring camera experiences, in which the camera would snap to one direction in order for you to fly through the air. So I repeat: I chose the natural implementation over Subnautica's stylized version of physics because it felt awful when breaching. In this case as well, I advise you to simply toggle Roll Control off and let it smoothly put you back to normal.
Please if you'd like to continue this conversation, leave a new comment on Roll Control. Thank you for your interest.
Great mod! Would it be possibly to enable the pitch indicator? That darker lower half of the display should have its line exactly on zero, and keep at 0 even when it moves. Imagine it as being a sphere, with the upper half a bright colour, and the lower half a dark colour (that's how an analogue attitude indicator works). The lower half is always the heavier half, so it's always pointing down. That works well for both roll and pitch.
With that, i think this would be absolutely perfect!
I certainly took some liberties with the way I implemented this gadget, and I know it's not a perfect representation of the real-world gadget. I reserve the right to make this gadget match the western implementation, but for right now I think it's okay that it measures roll and pitch in an idiosyncratic way (in the trappings of a real-world gadget).
In other words, the pitch measurement lines are decoupled from the artificial horizon here. I did this in order to be able to represent an attitude indicator conveniently in only 2 dimensions. In the future, I might re-make the instrument in 3 dimensions, at which point I could perfectly replicate the behavior of the same-named instrument in a western airplane.
Well Mikjaw, As of today's update, I think it works perfectly on the Seamoth! The artificial horizon is working correctly, and I love it! I can't see it anymore in the Cyclops, but that might be due to way too many Cyclops mods on my part :p
I'm glad you love it. :) I actually chose to remove it from the Cyclops since the Cyclops neither rolls nor pitches. It would be easy to add back in if someone said it were useful.
On occasion it can be useful on the cyclops. If it's pitch black and you don't have a sonar for example, you sometimes get stuck on a rock with the stern of the ship, causing the whole ship to roll or tilt without the pilot noticing. That's moments when I wish I had one on the Cyclops xD But that's more quality of life instead of a necessity.
Alright, I find that example relatable and meaningful. Perhaps I was too quick to do away with the cyclops instrument. Expect it to come back in an update before too long.
I would change the name to "Pitch\Role Indicator" because a gyroscope is for pitch i.e. climb\sink\Role rates not to show altitude, anyway thanks for the useful mod, really need some thing like this in the dark or at night!
50 comments
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object Stack trace: AttitudeIndicator.SubnauticaConfig.moveSeamothIndicator (Nautilus.Options.ChoiceChangedEventArgs`1[T] e) (at <04dacf50ff1743d99a5c67a5b9bb6744>:0) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <eae584ce26bc40229c1b1aa476bfa589>:0) HarmonyLib.Traverse.GetValue (System.Object[] arguments) (at <474744d65d8e460fa08cd5fd82b5d65f>:0) Nautilus.Options.Attributes.MemberInfoMetadata`1[T].InvokeMethod (T config, System.Object[] arguments) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.Attributes.ConfigFileMetadata`1[T].InvokeEvent[TSource] (Nautilus.Options.Attributes.MemberInfoMetadata`1[T] memberInfoMetadata, System.Object sender, TSource e) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.Attributes.ConfigFileMetadata`1[T].InvokeOnChangeEvents[TSource] (Nautilus.Options.Attributes.ModOptionAttributeMetadata`1[T] modOptionMetadata, System.Object sender, TSource e) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.Attributes.ConfigFileMetadata`1[T].HandleChoiceChanged[Any] (System.Object sender, Nautilus.Options.ChoiceChangedEventArgs`1[T] e) (at <8a11983d5aa5454ca88a174e477b38d1>:0) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <eae584ce26bc40229c1b1aa476bfa589>:0) Nautilus.Options.Attributes.OptionsMenuBuilder`1[T].RouteEventHandler (System.Object sender, System.EventArgs e) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.Attributes.OptionsMenuBuilder`1[T].EventHandler (System.Object sender, System.EventArgs e) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.ModOptions.OnChange[T,E] (System.String id, T value) (at <8a11983d5aa5454ca88a174e477b38d1>:0) Nautilus.Options.ModChoiceOption`1[T].<AddToPanel>b__17_0 (System.Int32 index) (at <8a11983d5aa5454ca88a174e477b38d1>:0) UnityEngine.Events.InvokableCall`1[T1].Invoke (T1 args0) (at <bd0d47c27bd84106afaaecc2c74cdb94>:0) UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <bd0d47c27bd84106afaaecc2c74cdb94>:0) uGUI_Choice.set_value (System.Int32 value) (at <9ec6c1b62c324758b9c2d79021505be6>:0) uGUI_Choice.NextChoice () (at <9ec6c1b62c324758b9c2d79021505be6>:0) UnityEngine.Events.InvokableCall.Invoke () (at <bd0d47c27bd84106afaaecc2c74cdb94>:0) UnityEngine.Events.UnityEvent.Invoke () (at <bd0d47c27bd84106afaaecc2c74cdb94>:0) UnityEngine.UI.Button.Press () (at <ce6ecc2ca9f24767b31663d408ff6f4f>:0) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at <ce6ecc2ca9f24767b31663d408ff6f4f>:0) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at <ce6ecc2ca9f24767b31663d408ff6f4f>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <ce6ecc2ca9f24767b31663d408ff6f4f>:0) UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1) FPSInputModule:ProcessMousePress(MouseButtonEventData) FPSInputModule:ProcessMouseEvent() FPSInputModule:OnUpdate() ManagedUpdate:Execute(Queue) ManagedUpdate:ExecuteRange(Queue, Queue) ManagedUpdate:LateUpdate()
When you have "use autoposition for seamoth" toggled, then the sliders will not do anything. If you toggle that checkbox off, then the default position of the sliders (the middle, where the slider locks in), should place the instrument in the center of the screen.
Sorry for the weird UI.
This attribute ensures the mod you depend on is loaded first, and also prints a nice helpful error message in the logs if the user doesn't have it installed.
Go in peace, Ray Robertson.
edit: so it did the same thing for me, but you can grab the file and but it in the BepInEx folder, and in the plugins folder
sorry should've post this on roll control page
I figure you might mean one of two things:
we have total control over our rolls while swimming, using seaglide or seamoth, but by remaining still, we'd slowly go back to level position . also when we get to surface, its better if the camera gets back to level position quickly (now even when the head is out of water the camera remains tilted, which is unnatural)
this is about "roll Control" mod actually :-) .thanks again
If you toggle Roll Control using the configured button (Right Alt by default, I think), then your vehicle will smoothly go back to zero roll. In other words, by switching Roll Control off while in a seamoth, you will transition into the normal control scheme in about 1 second. I don't want to add any kind of "auto pilot" to Roll Control, however, because that mod is all about giving control and not taking away control.
Concerning "breaching the surface," I had to make the natural, physical choice when deciding what to do with the camera. The design of Subnautica is to snap-to-level on breach, which is unnatural. The result with Roll Control was that breaching the surface like a dolphin resulted in jarring camera experiences, in which the camera would snap to one direction in order for you to fly through the air. So I repeat: I chose the natural implementation over Subnautica's stylized version of physics because it felt awful when breaching. In this case as well, I advise you to simply toggle Roll Control off and let it smoothly put you back to normal.
Please if you'd like to continue this conversation, leave a new comment on Roll Control. Thank you for your interest.
Would it be possibly to enable the pitch indicator? That darker lower half of the display should have its line exactly on zero, and keep at 0 even when it moves. Imagine it as being a sphere, with the upper half a bright colour, and the lower half a dark colour (that's how an analogue attitude indicator works). The lower half is always the heavier half, so it's always pointing down. That works well for both roll and pitch.
With that, i think this would be absolutely perfect!
Thank you for your interest!
I certainly took some liberties with the way I implemented this gadget, and I know it's not a perfect representation of the real-world gadget. I reserve the right to make this gadget match the western implementation, but for right now I think it's okay that it measures roll and pitch in an idiosyncratic way (in the trappings of a real-world gadget).
In other words, the pitch measurement lines are decoupled from the artificial horizon here. I did this in order to be able to represent an attitude indicator conveniently in only 2 dimensions. In the future, I might re-make the instrument in 3 dimensions, at which point I could perfectly replicate the behavior of the same-named instrument in a western airplane.
I can't see it anymore in the Cyclops, but that might be due to way too many Cyclops mods on my part :p
Thank you for your work!
I'm glad you love it. :)
I actually chose to remove it from the Cyclops since the Cyclops neither rolls nor pitches. It would be easy to add back in if someone said it were useful.
Cheers
But that's more quality of life instead of a necessity.
A must-have on the Seamoth though!