Jump to content

[1.3.x-1.9.x] Craft Manager - search, sort, tag & share your craft


Recommended Posts

One little bug I've noticed.  I'll load a ship, realize it's the wrong ship, and go to load another, without hanging a thing.  I'll get the "Save Unsaved Changes" prompt everytime, even though nothing has changed.   Running the 1.3.1 version, 1.0.2.

Link to post
Share on other sites
9 hours ago, Skystorm said:

@katateochi  Very nice mod.  Well done.  I think the main thing I would like to see is your UI replace the one for the launchpad and runway.  Currently I'm going to the VAB to launch all my craft because I prefer your UI.  Very handy for my Mars mission as I have so many crafts, lifters, transfer stages, et. AL., and your mod makes it so much easier to keep it all organized.

Awesome, Thank you!
I so rarely use the launch from space centre view that I didn't think about that. That is something I'd like to add, although at present I've no idea what I'd need to do to replace the stock launch interface.

9 hours ago, Skystorm said:

One minor problem though, it seems your Settings.cfg is invalidating the Module Manager Cache.  I believe the usual way to fix this would be to put it in a PluginData folder so that Module Manager will ignore it.

oh! so that's why MM isn't loading from cache! I didn't realise that convention, I will fix that in the next release. 

Link to post
Share on other sites
1 minute ago, Gargamel said:

One little bug I've noticed.  I'll load a ship, realize it's the wrong ship, and go to load another, without hanging a thing.  I'll get the "Save Unsaved Changes" prompt everytime, even though nothing has changed.   Running the 1.3.1 version, 1.0.2.

Yes, this bug is my nemesis! I cannot find any way via the API of asking the game "does the current craft have unsaved changes". I've tried 'tracking state', ie having a bunch of game events set to fire when actions happen that modify the loaded craft (which set a 'is modified' flag) and when the save button is pressed or craft loaded (which clears the 'is modified' flag). That works in pure stock but there is a mod (I think tweak-scale) which makes a bunch of changes directly after a craft is loaded, so it ends up always thinking a freshly loaded craft has unsaved changes.  Tracking state is always something I try to avoid as a bad practice but so far that's the best I've come up with. Another option I tried was to save the currently loaded craft to a temp location and then compare that file with the existing file for the loaded craft, but that also had a bunch of edge cases.  
What drives me crazy is the game knows if the current craft has unsaved changes, and I can't believe that would be done by tracking state, so there must be something like EditorLogic.fetch.ship.isSaved which returns a bool, but I can't find anything. So if anyone knows how to ask the API if there are unsaved changes, PLEASE TELL ME!!! (or anyone know of other mods which know the save state of a craft and then I could have a look at how they do it).

Link to post
Share on other sites

I'm not entirely sure what I've done, but suddenly the window isn't rendering right:

unknown.png

It was working one moment, then gone the next. Rebooting the game hasn't fixed it, neither has deleting the stock settings.cfg file.

---

Edit: Just triggered it again. Creating a new autotag rule on Lifters, where the name starts with LFT, causes it to happen again after a fresh install (of the mod).

---

Edit2: Getting the following spamming my log when I have the window open, even after fresh installs:

[EXC 11:06:20.953] NullReferenceException: Object reference not set to an instance of an object
    CraftManager.Tag.<rule>m__0 (CraftManager.CraftData craft)
    System.Collections.Generic.List`1[CraftManager.CraftData].FindAllStackBits (System.Predicate`1 match)
    System.Collections.Generic.List`1[CraftManager.CraftData].FindAll (System.Predicate`1 match)
    CraftManager.Tag.rule ()
    CraftManager.Tag.get_craft ()
    CraftManager.Tags+<craft_count_for>c__AnonStorey5.<>m__0 (CraftManager.CraftData c)
    System.Collections.Generic.List`1[CraftManager.CraftData].FindAllStackBits (System.Predicate`1 match)
    System.Collections.Generic.List`1[CraftManager.CraftData].FindAll (System.Predicate`1 match)
    CraftManager.Tags.craft_count_for (System.String tag_name, System.String mode)
    CraftManager.CraftDataCache.tag_craft_count_for (System.String lookup, System.String modifiyer)
    CraftManager.CMBrowser+<draw_left_hand_section>c__AnonStorey8+<draw_left_hand_section>c__AnonStoreyA.<>m__0 ()
    KatLib.DryUIBase.section (UnityEngine.GUIStyle style, KatLib.ContentNoArgs content, KatLib.ClickEvents click_event)
    CraftManager.CMBrowser+<draw_left_hand_section>c__AnonStorey8.<>m__5 (Single scroll_width)
    KatLib.DryUIBase.scroll (Vector2 scroll_pos, UnityEngine.GUIStyle scroll_style, Single scroll_width, Single scroll_height, KatLib.Content content)
    CraftManager.CMBrowser+<draw_left_hand_section>c__AnonStorey8.<>m__2 (Single tag_list_width)
    KatLib.DryUIBase.v_section (Single section_width, UnityEngine.GUIStyle style, KatLib.Content content)
    CraftManager.CMBrowser.<draw_left_hand_section>m__4 (Single inner_width)
    KatLib.DryUIBase.v_section (Single section_width, Single section_height, Boolean expand_height, KatLib.Content content)
    CraftManager.CMBrowser.draw_left_hand_section (Single section_width)
    CraftManager.CMBrowser.<WindowContent>m__10 (Single inner_width)
    KatLib.DryUIBase.section (Single section_width, KatLib.Content content)
    CraftManager.CMBrowser.<WindowContent>m__0 ()
    KatLib.DryUIBase.v_section (KatLib.ContentNoArgs content)
    CraftManager.CMBrowser.WindowContent (Int32 win_id)
    CraftManager.CMUI.DrawWindow (Int32 window_id)
    UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID)
    UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style)
[ERR 11:06:20.954] GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

Is there a way to clear all tags?

Edited by Tahvohck
Link to post
Share on other sites
On 6/2/2018 at 3:39 PM, Tahvohck said:

I'm not entirely sure what I've done, but suddenly the window isn't rendering right:

It was working one moment, then gone the next. Rebooting the game hasn't fixed it, neither has deleting the stock settings.cfg file.

---

Edit: Just triggered it again. Creating a new autotag rule on Lifters, where the name starts with LFT, causes it to happen again after a fresh install (of the mod).

---

Edit2: Getting the following spamming my log when I have the window open, even after fresh installs:

Is there a way to clear all tags?

sorry for slow response! 
It does look like a rule based tag is causing the problem. You can reset all the tags for a specific save by deleting the craft.tags file in the save's folder, CM will then replace it with the default tags when it next starts.  If you are familiar with KSP's ConfigNode file structure then you could try and edit the craft.tags file and remove the tag you suspect is the issue. 
Take a copy of the craft.tags file before you delete it and if deleting it does solve the problem can you paste the contents of the file into a message to me?

Link to post
Share on other sites

No worries about the response time. I (somehow) got things working again after a nuking of the settings (and a lot of other fiddling). Here's the tag file anyway:

TAGS
{
	TAG
	{
		tag_name = Unmanned
		RULE
		{
			attribute = crew_capacity
			comparator = equal_to
			value = 0
		}
	}
	TAG
	{
		tag_name = Crewed
		RULE
		{
			attribute = crew_capacity
			comparator = greater_than
			value = 0
		}
	}
	TAG
	{
		tag_name = Landers
	}
	TAG
	{
		tag_name = Lifters
		RULE
		{
			attribute = name
			comparator = starts_with
			value = LFT
		}
	}
	TAG
	{
		tag_name = Satelites
		RULE
		{
			attribute = name
			comparator = starts_with
			value = SAT
		}
	}
	TAG
	{
		tag_name = Plane
		craft = SPH_AR-1B
		craft = SPH_AR-1
		craft = SPH_AR-2
	}
	TAG
	{
		tag_name = Subassembly
		craft = SPH_UP-1
		craft = Subassembly_UP-1
	}
	TAG
	{
		tag_name = Rover
		craft = SPH_PR-2
		craft = SPH_R-1 "B****** Tube"
		craft = SPH_RS-1B "Behemoth"
		craft = SPH_PR-1
	}
	TAG
	{
		tag_name = Probe
		craft = SPH_PR-1
		craft = SPH_PR-2
		craft = SPH_UP-1
	}
}

 

Link to post
Share on other sites
On 6/4/2018 at 3:04 PM, Tahvohck said:

Here's the tag file anyway:

Can't see anything wrong with that Tag file, so I don't think that was the problem. Perhaps it was something wrong in the settings file? Glad you got it working in the end, if the issue crops up again let me know and tell me what the steps to cause it are.

Link to post
Share on other sites
  • 1 month later...
  • 3 weeks later...

Hi @katateochi I'm wondering if you can help me diagnose an Exception that I'm seeing in my KSP.log file when loading craft. I have a couple of these showing, but I'm not sure what this means?

Here's the snippet from my latest log:

[LOG 19:33:48.762] [CM] Loaded 78 craft from cache
[EXC 19:33:50.364] ArgumentException: Getting control 2's position in a group with only 2 controls when doing MouseDrag
Aborting
	UnityEngine.GUILayoutGroup.GetNext ()
	UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
	UnityEngine.GUILayoutUtility.GetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
	UnityEngine.GUILayout.DoButton (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
	UnityEngine.GUILayout.Button (System.String text, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
	KatLib.DryUIBase.button (System.String text, UnityEngine.GUIStyle style, KatLib.ContentNoArgs action)
	CraftManager.CMBrowser+<draw_tags_list>c__AnonStorey1A.<>m__1 ()
	KatLib.DryUIBase.gui_state (Boolean condition, KatLib.ContentNoArgs content)
	CraftManager.CMBrowser+<draw_tags_list>c__AnonStorey1A.<>m__0 ()
	KatLib.DryUIBase.section (KatLib.ContentNoArgs content)
	CraftManager.CMBrowser.draw_tags_list (Boolean include_auto_tags)
	CraftManager.CMBrowser.draw_right_hand_section_single_select (Single scroll_width)
	CraftManager.CMBrowser.<draw_right_hand_section>m__15 (Single scroll_width)
	KatLib.DryUIBase.scroll (Vector2 scroll_pos, UnityEngine.GUIStyle scroll_style, Single scroll_width, Single scroll_height, KatLib.Content content)
	CraftManager.CMBrowser.<draw_right_hand_section>m__5 (Single inner_width)
	KatLib.DryUIBase.v_section (Single section_width, KatLib.Content content)
	CraftManager.CMBrowser.draw_right_hand_section (Single section_width)
	CraftManager.CMBrowser.<WindowContent>m__10 (Single inner_width)
	KatLib.DryUIBase.section (Single section_width, KatLib.Content content)
	CraftManager.CMBrowser.<WindowContent>m__0 ()
	KatLib.DryUIBase.v_section (KatLib.ContentNoArgs content)
	CraftManager.CMBrowser.WindowContent (Int32 win_id)
	CraftManager.CMUI.DrawWindow (Int32 window_id)
	UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID)
	UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style)
[ERR 19:33:50.365] GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

Appreciate any help you can offer in seeing what this is and what I can do to resolve it?

Link to post
Share on other sites
  • 2 weeks later...

@katateochi

Thx for the nice mod. :) One question, would it be possible to move the settings.cfg into a subfolder called PluginData (CraftManager\PluginData\settings.cfg), so that ModuleManager ignores it and does not invalidate the MM-cache when the files changes?
This helps to avoid unneeded MM patch cycles when restarting KSP which can make a difference of 1-2 minutes on highly modded installations.

Link to post
Share on other sites

uh! I'd totally missed the notifications on this thread! Sorry guys!

On 7/14/2018 at 1:05 AM, GrubbyZebra said:

Is there a way to use the Auto-tag rules with manual tags?

Not currently. I will see if I can make that work though.

On 8/3/2018 at 1:39 AM, scottadges said:

I have a couple of these showing, but I'm not sure what this means?

I'm not sure what that means either! What happens with the UI when those errors happen?

13 hours ago, Jebs_SY said:

One question, would it be possible to move the settings.cfg into a subfolder called PluginData

yes absolutely. I didn't realise the MM convention when I made this, next update will fix this.

Link to post
Share on other sites
6 hours ago, katateochi said:

I'm not sure what that means either! What happens with the UI when those errors happen?

Unfortunately, I don't remember exactly what I was doing. But it may have been when moving things around, or changing naming?

I took the liberty to search a few things - I'm not a developer, so I don't really know what this all means, but maybe it helps?

Note: I put everything into Spoilers because there's some very long, detailed info here. Sorry if this is too much to read!

Based on my error from KSP log:

"ArgumentException: Getting control 2's position in a group with only 2 controls when doing MouseDrag"

Here's the most relevant search:

https://issuetracker.unity3d.com/issues/regression-windows-argumentexceptions-are-thrown-after-dragging-tabs-in-play-mode

Spoiler

[REGRESSION][WINDOWS] ARGUMENTEXCEPTIONS ARE THROWN AFTER DRAGGING TABS IN PLAY MODE

Steps to repro:

1. Open Unity on Windows; 
2. Create new project; 
3. Detach any tab (i.e. Scene or Game view); 
4. Enter Play mode; 
5. Move tabs by left clicking on the black zone from the right side of tab's name and drag the tab around; 
6. Observe the console.

Actual result:

Errors: 
ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseDrag

are spammed in the console.

Regression introduced in Unity 5.4.0b22.

Expected result: 
Errors should not be shown when dragging tabs in Play mode.

Notes: 
- Reproducible in 5.4.0b22; 
- Not reproducible in 5.4.0b21; 
- Reproducible only on Windows 10 and Windows 8.1; 
- Not reproducible on OSX; 
- Not reproducible when dragging tabs without entering Play mode; 
- Not reproducible when detaching tabs in Play mode; 
- Not reproducible when dragging tabs by clicking on tab's name.

Similar error (from google searches):

"ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseDown"

https://answers.unity.com/questions/17718/argumentexception-getting-control-2s-position-in-a.html

Read the full question here, but here's the answer:

Spoiler

I believe the problem could be in your for loop over chatEntries. There are two passes to the OnGUI thread (they are called "events" in Unity), the layout event runs through and basically does roll call and layout planning on the GUI components and the repaint event draws the components to the screen. If the components change between these two GUI events, the layout manager gets confused and produces this message. The contents of your chat entries is externally controlled (from the OnGUI thread's perspective) and may be changing the contents of that collection between the events. This is forbidden.

Not absolutely sure that field is your problem but that's where I would start. That message is always produced in a circumstance like this. I have gotten around this before by creating a copy of the externally controlled collection in the layout pass (i.e., Event.current.type == EventType.Layout).

And here's a super-long answer, but it's supposedly a good breakdown for GUILayout (he says this is for both Repaint and Layout):

First, the question is asked here on GitHub:

https://answers.unity.com/questions/400454/argumentexception-getting-control-0s-position-in-a-1.html

And then the answer:

Spoiler

That's quite simple. The reason for this error is always the same. You changed the content of your GUI between the Layout and Repaint event. OnGUI is called for many different events (See the EventType enum for the full list).

Before each event Unity calls an additional Layout event. In this event Unity collects the information how many elements you have at the moment and hoe they are nested. This information is needed by the Layouting system.

When the actual event is processed it's vital that OnGUI has the same content as it has when the Layout event was called. That's why you shouldn't place any logic that changes the state of your GUI inside OnGUI. If you want place it in OnGUI, wrap it in


 
  1. if (Event.current.type == EventType.Repaint)
  2. {
  3. //
  4. }
  5.  
  6. When you change the state **at the end** of OnGUI, so the elements aren't affected since they are already drawn.
  7.  

Or use


 
  1. if (Event.current.type == EventType.Layout)
  2. {
  3. //
  4. }
  5.  

when you place your code before the actual GUI elements.

Anyway in general it's better to put any logic in Update.

edit
On this question i've posted a quite detailed post how the GUI system works if you want to gain some more knowledge about Unity ;).

Then the guy links to a really long response:

https://answers.unity.com/questions/360901/editor-timeline-create-his-personnal-gui-timeline-.html

Spoiler

So another GUI crash course ;)
Unity's GUI system is quite simple but very powerful. The main parts are:

  • The OnGUI callback. This callback is used to handle everything that has to do with GUI.

  • The Event class which is tightly connected to OnGUI.

  • The GUI controls defined in GUI, GUILayout and additional controls which are only available in the editor in EditorGUI and EditorGUILayout.

  • The GUIStyle class which defines how a single control looks like. It's actually responsible for any GUI drawing.

  • The GUISkin class which is basically just a collection of predefined default styles for all built in controls and has an array for unlimited custom styles at the end.

  • The utility classes GUIUtility and in the editor the EditorGUIUtility. Not to forget the tiny but important GUILayoutUtility class when it comes to using GUILayout classes.

 

OnGUI

OnGUI is a callback that is called automatically by the engine for several purposes. It's usually called at least two times per frame but might be called several times a frame when other events happens.

OnGUI is, in my opinion, a bad name. Of course it's main purpose is to "do GUI stuff", but it's actually an event processor callback. I will explain that in the next section.

 

The Event class

The event class holds information about the event that's currently processed in OnGUI. It's only static member current. This holds an instance of the Event class and is only valid in OnGUI.

The type property holds the current EventType that is processed.

Here's a quick overview of the different events:

  • Mouse events like MouseDown, MouseUp, MouseMove(editor only), MouseDrag, ScrollWheel. I should add that Unity will emulate those events on mobile touch devices. It calculates the mouseposition by taking the arithmetic mean of all touches.

  • Keyboard events like KeyDown and KeyUp. Note: unlike Input.GetKeyDown / Up those events map the system's OS keyboard events. So when you hold down a key, the keydown event is repeated by the systems repeat rate. This is of course important for text editor GUIs.

  • The Layout event. This is a special event that is always executed before all other eventa and is used to determine the size and position for automatic layouted controls. Note: This event can be disabled with useGUILayout but keep in mind that all GUILayout stuff won't work in this case.

  • The Repaint event. This event will actually draw the GUI elements.

  • The Used event type. Any control that processes an event and don't want others to get this event can use the Use function to "eat" the event. When Use is called the event type will be set to Used and every control should just ignore this event.

Beside the type of event, it holds additional information for the event.

  • mousePosition holds the mouse position in GUI coordinates. GUI coordinates are different from screen coordinates. The GUI has it's origin at the top left corner, screen coordinates has it's origin at the bottom left corner. The GUIUtility class has functions to convert those coordinates.

  • button. Only valid for mouse events and contains the mouse button index (0 - left button, 1 - right button, 2 - middle button)

  • modifiers hold information about Shift, Alt, Ctrl keys

  • keyCode. Only valid for keyboard events. Holds the KeyCode of the key that has been pressed / released.

  • Some additional things like shortcuts for modifier keys.

 

GUIStyle

As already mentioned this class is responsible for rendering a control to the screen. A GUI control function will call one of the Draw functions when the repaint event is "detected". An GUIStyle consists of different GUIStyleStates where only one is "active" at a time. Which state is used is determined by what Draw function is called, which parameters are passed and if the control has currently the keyboard focus or not.

When a single GUIStyle is drawn it can produce 0 to 3 draw calls. That's why very complicated GUIs are considered bad for mobile development, however we used the GUI system a lot on Android and iOS and hadn't much problems on more or less modern devices.

The things a GUIStyle might draw are:

  • The background image from the GUIStyleState. This is usually used to define how the button / textfield / ... generally looks like. If a background image is set it's always drawn first.

  • An content image defined in the GUIContent class that is passed to Dram.

  • The content's Text also defined in the GUIContent.

The ImagePosition in the GUIStyle defines where the image is displayed in relation to the text or to only draw the image and ignore the text or the other way round.

A GUIStyle has 8 GUIStyleStates where each state allows you to specify a background image as well as a text color. Note: A state is only used when it has a Background image. So unfortunately it's not possible to just setup text colors without an background image.

The different states are:

  • normal

  • hover

  • active

  • focused

  • onNormal

  • onHover

  • onSctive

  • onFocused

normal is the stylestate that is used in most cases. A label for example will only use this state.
hover is used by buttons, toggles and most other interactive elements when you hover over the element.
active is used for interactive elements while you click-and-hold on the element. It's the button down state.
focused is used by TextFields and TextAreas when the editor is active and you can edit the text.

All the onXXX states have the same function as the other 4 above, but are used for elements that have an "on" state like a Toggle. So if the toggle is unchecked and you click on it you will see the active state. When the toggle is already checked you will see the onActivestate.

As mentioned above states without a background image are ignored. So if your button style has a "normal" and "active" state with a texture but no hover state, Unity will use the normal state when you hover over your button. If you want to just change the text color when you hover you have to use the same background image for "hover" as you used for "normal" otherwise the hover state will be ignored.

As last note: Unity has implemented an implicit casting operator (sounds complicated, but it isn't :D) that will automatically convert a string to a GUIStyle by using the GetStyle function of the current GUISkin.

 

The GUISkin class

The GUISkin is, like mentioned above, just a collection of GUIStyles. Unlike GUIStyles a GUISkin can easily be stored as Asset in your project. You can create one in the Assets/Create menu (same as context menu in the project window).

To use a GUISkin it just has to be assigned to GUI.skin before you draw a control. The usual way is to place the assignment at the top of OnGUI. It has to be assigned everytime OnGUI is called. The assignment is only valid for the current execution of OnGUI. If you want to use the skin in other scripts as well you have to place the assignment in those as well.

Most controls have optional parameters to specify a GUIStyle which should be used to draw the control. At this place you can simply use a string (thanks to the implicit cast) with the name of the style you want to use. If no style is passed each builtin control has it's own default style.

 

The Control functions

The above mentioned classes define the basis of the GUI system. They can be used to create custom controls or can be directly used in some way.

Unity however provides premade control functions which simplifies the usage a lot. For example the Button function. It uses the default style "button" to draw itself to the screen. This function also processes MouseDown and MouseUp events. It uses the controls Rect to determine if the mouse position is within it's Rect and make itself the hotControl. The function returns a boolean value which will be always false except in the MouseUp event when it's the hotcontrol and released inside it's Rect.

That's how the click event is passed back to the caller.

Some controls, like scrollbars and sliders use more than one GUIStyle. They usually have one main style and additional "child styles" which are determined by adding something to the name of the main style. The horizontalScrollbar literally does this internally:


 
  1. GUI.skin.GetStyle(style.name + "thumb")
  2. GUI.skin.GetStyle(style.name + "leftbutton")
  3. GUI.skin.GetStyle(style.name + "rightbutton")
  4.  

to get the other styles. this is a suboptimal way since if you don't have the source code of the scrollbar function (or a reflector) you don't know that.

 

GUI vs GUILayout

Some hate GUILayout some like it. Personally i really like it even when it's sometimes a bit tricky it's much easier in the long run.

Basically GUILayout is just an extension of the GUI controls. Most GUILayout functions just call the equivalent GUI function but adds the layouting around it. The "normal" GUI functions completely ignores the Layout event. The GUILayout functions use an internal system that builds up layout groups which collect all controls in a group during the Layout event and before the Repaint event is invoked Unity distributes the available space according to how much space each single control has requested.

Here are the basic things about GUILayout:

  • Basically all controls that exists in GUI does also exist in GUILayout, but they lack of an position parameter where you usually specify it's position and size.

  • All the built-in control functions inside GUILayout simply uses one of the many overloads of GUILayoutUtility.GetRect to reserve a Rect for the control. The layout controls just get a rect from the layout system and in turn call the GUI.XXX equivalent with that rect.

  • Instead of a position they have an additional parameter array at the end which allows you to add no, one or more "GUILayoutOptions". Those option "objects" can't be directly created. Unity has implemented functions that initializes such an instance and returns it. Those "Options" are used to override certains GUIStyle settings like stretching, fixedsize, min and max size.

  • Instead of the GUI Groups there are Areas. This is the only thing where you have to specify a Rect. Areas can't be cascaded, so the Rect is always relative to the screen. While you are inside an area the whole layouting will be restricted to this screen area.

  • The most important two function pairs are Begin / EndHorizontal and Begin / EndVertical. Those can be cascaded. So the actual layout will be defined with stacking these groups together.

  • The next two helpers are Space and FlexibleSpace. Space acts like a control without drawing anything. It just reserves a fix amount of pixels in the current group. FlexibleSpace eats up all left over space. Generally there are two types of controls, "fixedsized" and "stretching" controls. Fixedsized doesn't mean they aren't able to change size. They just take as much space they need. All stretching controls (like FlexibleSpace) will share the left over space and distribute it according to their content sizes.

Some notes:
The horizontal and vertical layout groups usually don't have a GUIStyle and are pure grouping elements, however you can simply specify a style in the parameters to draw it as box / button / customstyle.

You can change the appearance of an element by just specify a different style. This will display a toggle which looks like a normal button:


 
  1. togglestate = GUILayout.Toggle(togglestate, "Toggle Text", "button");
  2.  

update(2016.02.18)

 

EditorGUI(Layout) vs GUI(Layout)

EditorGUI and EditorGUILayout are simply "extensions" of the GUI and GUILayout classes which are only available inside editor script as those are located in the "UnityEditor.dll". Those two classes aren't ment as a replacement of GUI and GUILayout. They simply provide additional controls which are useful in editor script like custom inspectors or EditorWindows. In editor script the normal GUI and GUILayout controls work just fine.

Before someone asks, no, you can't use any controls from EditorGUI or EditorGUILayout at runtime as they don't exist in the engine. They belong to the editor.

 

Recent additions to the Event class

Since the release of the new UGUI system the Event class has now two additional static methods:

Those are not really related to the old GUI system but are used by some of the new GUI behaviour scripts to process input events. Those methods allow you to process all events that are waiting in the event queue for the current frame. It will return the same events as those send to OnGUI except it only returns input events. So no layout or repaint events are generated.

Though you have to be careful when using those yourself. Once you "popped" an event from the queue, it's gone. Each event exists only once in the queue. So if two scripts try to read events that way it won't work since the first script will remove the event from the queue.

update(2016.11.28)

 

Behind the scenes

Control IDs

Even though they are not required for every GUI control, most of them internally allocate a so called "control ID". This ID is ment to identify a certain control across multiple calls of OnGUI / OnInspectorGUI. A control can allocate itself one or multiple control IDs by using the function GUIUtility.GetControlID. That method takes some parameters which should help so each control gets always the same ID. For this purpose one can pass an arbitrary "hash" value (and int value) that should represent your control's "type". Usually most controls use a cached hashcode based on some string constant:


 
  1. static int m_MyControlHash = "MyControlTypeNameHere".GetHashCode();
  2.  

Using this method makes it unlikely to accidentally pick the same int as another control type. In the past GUI.Button used this hash stored in the internal static "buttonHash" variable:


 
  1. GUI.buttonHash = "Button".GetHashCode();
  2.  

The actual purpose of those IDs is to track the state for a control if it needs it.

Note: while it's possible to call some controls conditionally, it's very important to not change the count and order of controls between the Layout event and the following event. As mentioned above every event that is processed by OnGUI is always paired with a Layout event that always comes before the actual event. If you change something in between it will mess up the layouting system and could "corrupt" the controlID stack. Keep in mind the control IDs are generated every OnGUI call. So each time OnGUI is called Unity starts with an empty stack It tries to match the generated IDs with the IDs from the old stack based on the different "hints" that has been passed.

 

hotControl and keyboardControl

GUIUtility.hotControl as well as GUIUtility.keyboardControl can mark a special state for a control. Both are public static int fields which any control might read or write to. Both are ment to hold the control ID of a control which is currently "hot" or currently has the keyboard focus. hotControl is used by most clickable controls like Button / Toggle. The process is usually the following:

  • When a MouseDown event is received, and hotControl is currently "0" a control might want to check if the mouse is over it's Rect / clickable area and if that's the case it will set the hotControl to it's control ID. That prevents other control from reacting to certain events since they also check their ID against the hotControl variable.

  • When later a MouseUp event is received a control will check if itself is currently the hot control. In that case it will reset hotControl back to "0". This is important as controls are only "allowed" to put themselfs up as hotControl when it's currently 0. A button usually repeats the area check and if both is true, so the button is hot and the mouse was still over the button, the control will return "true" which will cause the if block, in which the button is used, to execute.

A similar process is used for keyboardControl. Though it's usually not reset on MouseUp but on MouseDown when the mouse is no longer inside the controls area.

 

GetTypeForControl

Event.GetTypeForControl basically does the same as the Event.type property, but applies some filtering based on what event actualy happened and based on the state of hotControl and keyboardControl. If no control is hot it basically returns the current event unfiltered. This gives each control the chance to make them hot in the first place. Once a hotControl is set, "GetTypeForControl" will only return the event when the passed control id is currently hot or has the keyboard focus. hotControl mainly filters mouse events while keyboardControl filters key events. Well, that's kinda obvious, right ^^.

 

GetStateObject

The GUIUtility.GetStateObject method is a bit strange in how it works. It's unclear how Unity actually keeds track of the objects involved and if they are actually removed after some time or not, but nontheless it's a quite useful in some situations.

So what does it do. This method basicalls is capable of creating an arbitrary class instance for your and link that object to the given control id. The class instance will persist. Note that the class must be a normal class, so no MonoBehaviour or ScriptableObject derived class. It also need to have a parameterless constructor so GetStateObject can actually create an instance. As you might remember as long as you don't declare any parameterized constructor every class automatically has a parameter-less constructor by default.

Those "state classes" are ment to hold custom state information per control instance that need to be carried over to the next OnGUI calls. On example i remember was the GUI.DragWindow control. Yes, it's also a control and allocates a control ID even though it's not a "visual" control. In the past DragWindow used a small internal class (GUI.DragWindowState) to hold the initial window rect and an offset Vector2 so the drag movement can be calculated correctly.

The TextField also uses an instance of the TextEditor class which is a bit more then only a state class. The TextEditor class actually implements the whole editing functionality that you know from any inputfield. So it handles keypresses, moves the cursor with the arrow keys, handles the text selection, ...

 

Editor and SceneView programming

The SceneView

When it comes to editor programming, the SceneView is one of the most powerful one but can also be a bit tricky to handle it right. Generally there are two ways how to draw or handle GUI events in the SceneView:

  • An active CustomEditor (custom inspector) can implement a method called OnSceneGUI

  • Any other editor class (like EditorWindows or classes marked with InitializeOnLoad) can subscribe a method to the static SceneView.onSceneGUIDelegate event.

In case it wasn't clear yet, every actual window of the Unity editor has it's own graphics context and everything is driven by the IMGUI system. Only a few things in the Unity main editor window are implemented in native code (such as the main menu).

So once you have an actual callback of the SceneView you can do whatever you want. Unlike normal EditorWindows (which includes the inspector, hierarchy, project panel) the SceneView usually works with a 3d projection and uses a camera to draw most things. Due to this 2d / 3d hybrid state things work a bit different in the sceneview as opposed to other EditorWindows.

Usually you deal with 3d coordinates inside the SceneView therefore for most things all the GUI controls are pretty useless. That's why there is the Handles class. SceneView and the Handles class belong to each other. It provides some 3d controls like the PositionHandle, FreeMoveHandle, ScaleSlider and RadiusHandle just to name a few.

Even the sceneview is mainly a 3d context you can still use plain 2d GUI inside the sceneview, but you have to wrap 2d gui stuff between Handles.BeginGUI() and Handles.EndGUI(). This allows you to directly display and GUI controls inside the sceneview. A quite important method is located in the HandleUtility class and is called WorldToGUIPoint. It does all the nasty conversions at once (3d->screenspace->guispace->current cliparea). Kind of the opposite does GUIPointToWorldRay. There are many other useful methods in there but it of course depends on the needs. Even drawing 2d controls is possible you should use it sparsely. Settings and options should be displayed either in the inspector or in a seperate EditorWindow.

 

The Tools class

When you want to implement your own tool to somehow edit the scene this is a quite important little class. It doesn't provide much but controls an important feature. The static Tools.current property is an enum of type "Tool". Tool defines currently those values: View, Move, Rotate, Scale, Rect, None. Those should be familiar as they are the standard tools you have in the editor which can be switched with the tool buttons at the top left. The only really important value here for us is "None". Setting Tools.current to Tool.None disables all default tools which allows you to implement your own tool. The same does the Terrain inspector. When you select one of the "painting modes" in the inspector you might notice that all tool buttons at the top left will be toggled "off". That means the current tool is "None".

Another important thing you most likely need when implementing your own tool is to prevent the deselection of the current object. This is done by allocating a passive control id and pass it to HandleUtility.AddDefaultControl:


 
  1. int myID = GUIUtility.GetControlID(FocusType.Passive);
  2. HandleUtility.AddDefaultControl(myID);
  3.  

That's all for now about sceneview, handles and custom tools.

 

Edited by scottadges
Link to post
Share on other sites

New Release - 1.0.4 (KSP 1.3.x) & 1.1.4 (KSP 1.4.x)

Sorry it's taken me awhile to get to these updates, RL etc! 
The main changes in this release are: 
- settings (and the craft_data.cache) file have been moved into a PluginData folder, so changes to settings won't prompt MM to reload patches.
- finally got a solution to the "craft has unsaved changes" message from showing up when the currently loaded craft has been saved.  That should now work as expected.
- I also added a "Mod Lookup" button to the craft details panel (only works if KerbalX integration is enabled). This will use KerbalX's mod database to check which mods a craft in your save is using. Was something that I wanted a few times recently, so hopefully others will find it useful too.

If you are upgrading from the previous version, just overwrite/replace the current CraftManger folder with the new version. That will leave you current settings.cfg file in place and it will get automatically moved into its new home when the mod first starts.

Change Log for 1.0.4/1.1.4:

Spoiler

**Change:** Moved settings.cfg file into PluginData folder
**Change:** Moved craft_data.cache file into PluginData folder
**Fix:** The 'craft has unsaved changes' message should no longer be shown when loading a craft when the current craft is saved.
**Added:** Details panel shows the KSP version of the selected craft if it's not the same as the current game version.
**Added:** new "Mod Lookup" button on craft details panel (only available if KerbalX integration is enabled) which uses KerbalX's mod database to check which mods the selected craft uses.
**Fix:** Stop the 'edit description' window from expanding past the bottom of the screen when showing long descriptions. also fix to prevent newline chars from being lost from description.

 

Link to post
Share on other sites
13 hours ago, katateochi said:

New Release - 1.0.4 (KSP 1.3.x) & 1.1.4 (KSP 1.4.x)

Sorry it's taken me awhile to get to these updates, RL etc! 
The main changes in this release are: 
- settings (and the craft_data.cache) file have been moved into a PluginData folder, so changes to settings won't prompt MM to reload patches.

I think you just cut my game-start time to 4.5 from 8 minutes.  Thanks very much.

Edited by Brigadier
Link to post
Share on other sites

This is what I've noticed so far.  These are really minor points:

  1. The craft window isn't sizable and with the addition of the mods button, I no longer see all of the craft information (in particular the craft description) without scrolling.  I appreciate that the amount of user information (tags and length of description) could make this impossible to achieve, but could the window be made sizable, or the Craft Information be displayed in two columns or a wider single column on the right-hand side of the window?
  2. The first craft I chose to investigate the mod lookup feature showed "unknown" as the first list entry.  This kinda defeats the purpose, no?  I realize that if a mod isn't supplying you with the information, you can't display it, so I've narrowed it down to parts from the new Universal Storage 2 mod.  Of course, I have no idea why they are showing up as 'unknown'.
Link to post
Share on other sites

@Brigadier
The UI can have it's height adjusted (in settings), but at the moment you can't adjust the width.  I do plan on making the width adjustable, but it's a little more complicated.
I think I'll also add an option in settings to enable/disable the mod lookup button, so if you don't want it shown then you can just disable it.

The mod lookup is only as good as the information in the KerbalX database (which is pretty good, but it doesn't know about all mods).  It can take a while for new mods to be listed. If the mod is available via CKAN then it will get listed pretty quickly, but it looks like Universal Storage II isn't on CKAN (hopefully they'll add it to CKAN soon).  

 

Link to post
Share on other sites

Adding my own two cents.

When a craft is launched, the game autosaves it, even if it's not changed, in which case you end up with two identical crafts. However, the craft list in the VAB/SPH distinctly marks which is the saved and which is the autosaved - but the Launch Pad / Runway craft window doesn't append [Auto-Saved Ship] to the latter's name, so there's no way to tell which is which.

Oh, and I don't know if it's this mod or it's vanilla but ever since the 1.4 update to KSP, the "Edit craft" button on the Launch Pad / Runway window stopped working for me. 

Link to post
Share on other sites

@Fraktal
CraftManager doesn't do anything to the craft lists in the space centre view (launch-pad / runway craft lists).  The issue of the autosaved craft being indistinguishable from the regular craft is something that happens in vanilla KSP.  I would like to replace the vanilla craft lists in the space centre view with the CraftManager interface and then the autosaved craft would be labelled, but I've not had the time to experiment with how to replace those lists.

I'm running KSP 1.4.5 and the edit craft button in the launch-pad/Runway windows is working fine, both in pure stock and with a bunch of mods.  It's not CraftManager that's causing that to stop working, currently CM doesn't change anything in that view.  I'd guess that it's another mod you've got installed.

Link to post
Share on other sites

Hi.

I think I stumble on some spurious interation between Craft Manager and Kerbal Konstructs

Spoiler
[LOG 13:25:39.124] KK: On Editor Restart
[ERR 13:25:39.207] Exception handling event onEditorRestart in class KerbalKonstructs:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
  at KSP.UI.UILaunchsiteController.resetItems () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at KerbalKonstructs.Core.LaunchSiteManager.AlterMHSelector () [0x00000] in <filename unknown>:0 
  at KerbalKonstructs.KerbalKonstructs.OnEditorRestart () [0x00000] in <filename unknown>:0 
  at EventVoid.Fire () [0x00000] in <filename unknown>:0 

[EXC 13:25:39.212] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.UILaunchsiteController.resetItems ()
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
	KerbalKonstructs.Core.LaunchSiteManager.AlterMHSelector ()
	KerbalKonstructs.KerbalKonstructs.OnEditorRestart ()
	EventVoid.Fire ()
	UnityEngine.Debug:LogException(Exception)
	EventVoid:Fire()
	EditorLogic:StartEditor(Boolean)
	EditorLogic:ShipToLoadSelected(String, LoadType)
	EditorLogic:LoadShipFromFile(String)
	CraftManager.CMBrowserBase:load_craft(String, Boolean)
	CraftManager.CMBrowser:<action_buttons>m__1C()
	KatLib.DryUIBase:button(String, GUIStyle, Single, ContentNoArgs)
	CraftManager.CMBrowser:<action_buttons>m__B()
	KatLib.DryUIBase:gui_state(Boolean, ContentNoArgs)
	CraftManager.CMBrowser:action_buttons()
	CraftManager.CMBrowser:<draw_bottom_section>m__A()
	KatLib.DryUIBase:section(GUIStyle, ContentNoArgs)
	CraftManager.CMBrowser:draw_bottom_section(Single)
	CraftManager.CMBrowser:<WindowContent>m__0()
	KatLib.DryUIBase:v_section(ContentNoArgs)
	CraftManager.CMBrowser:WindowContent(Int32)
	CraftManager.CMUI:DrawWindow(Int32)
	UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

This is the machine identification and mod's from KSP.log

[LOG 13:47:04.307] ******* Log Initiated for Kerbal Space Program - 1.4.5.2243 (OSXPlayer) en-us *******
Kerbal Space Program - 1.4.5.2243 (OSXPlayer) en-us


OS: Mac OS X 10.12.6
CPU: Intel(R) Core(TM) i5-2415M CPU @ 2.30GHz (4)
RAM: 16384
GPU: Intel HD Graphics 3000 OpenGL Engine (579MB)
SM: 40 (OpenGL 3.3 INTEL-10.2.37)
RT Formats: ARGB32, Depth, ARGBHalf, Shadowmap, RGB565, ARGB4444, ARGB1555, Default, ARGB2101010, DefaultHDR, ARGB64, ARGBFloat, RGFloat, RGHalf, RFloat, RHalf, R8, ARGBInt, RGInt, RInt, RGB111110Float, RG32, RGBAUShort, RG16


Log started: Fri, Aug 31, 2018 13:47:04


[CUT]



[LOG 13:47:04.645] Loading data opt-out preferences from PlayerPrefs
[LOG 13:47:04.701] Requesting data opt-out preferences from https://data-optout-service.uca.cloud.unity3d.com/player/opt_out?appid=39811e89-d29d-4faa-bb01-997f3cda24f0&userid=b543e7a3a021e49f79ea739be01dea37&deviceid=ACC16C00-43F1-5FAC-A363-21F5A373F1BF
[LOG 13:47:04.924] ActionCanvas MASK: 3458764513820540928
[LOG 13:47:04.924] MainCanvas MASK: 3458764513820540928
[LOG 13:47:04.948] PhysicsGlobals: Loading database
[LOG 13:47:04.975] AppCanvas MASK: 3458764513820540928
[WRN 13:47:10.373] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_FilterExtensions_Configs/Default/Mod_AJE.cfg'.
[WRN 13:47:19.951] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractConfigurator/Agencies/Agents.cfg'.
[WRN 13:47:22.254] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DockRotate/DockRotate-Realism.cfg'.
[WRN 13:47:22.265] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DockRotate/NodeRotate.cfg'.
[ERR 13:47:25.990] Error: Empty part config file

[WRN 13:47:26.015] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/CCFULLSetups.cfg'.
[ERR 13:47:26.016] Error: Empty part config file

[WRN 13:47:26.016] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/CDT12Setups.cfg'.
[ERR 13:47:26.016] Error: Empty part config file

[WRN 13:47:26.016] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/CDT4Setups.cfg'.
[ERR 13:47:26.016] Error: Empty part config file

[WRN 13:47:26.016] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/CDT7Setups.cfg'.
[ERR 13:47:26.017] Error: Empty part config file

[WRN 13:47:26.017] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/CTFULLSetups.cfg'.
[ERR 13:47:26.102] Error: Empty part config file

[WRN 13:47:26.102] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ISTFULLSetups.cfg'.
[ERR 13:47:26.104] Error: Empty part config file

[WRN 13:47:26.104] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/PGTFULLSetups.cfg'.
[ERR 13:47:26.104] Error: Empty part config file

[WRN 13:47:26.104] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/RFCFULLSetups.cfg'.
[WRN 13:47:26.105] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/TankRevampPatches.cfg'.
[ERR 13:47:26.111] Error: Empty part config file

[WRN 13:47:26.111] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/CCFULLSetups.cfg'.
[ERR 13:47:26.111] Error: Empty part config file

[WRN 13:47:26.111] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/CDT7Setups.cfg'.
[ERR 13:47:26.112] Error: Empty part config file

[WRN 13:47:26.112] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/CTFULLSetups.cfg'.
[ERR 13:47:26.219] Error: Empty part config file

[WRN 13:47:26.219] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/ISTFULLSetups.cfg'.
[ERR 13:47:26.222] Error: Empty part config file

[WRN 13:47:26.223] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/PGTFULLSetups.cfg'.
[ERR 13:47:26.223] Error: Empty part config file

[WRN 13:47:26.223] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/PatchManager/ActiveMMPatches/RFCFULLSetups.cfg'.
[WRN 13:47:43.011] Config in file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SXT/Patches/ModCompatibility/WIP/Nukes/NFE.cfg' contains no data.
[WRN 13:47:44.716] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TakeCommand/ModuleManager/BetterCrewAssignment.cfg'.
[WRN 13:47:44.825] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakScale/Examples.cfg'.
[WRN 13:47:45.503] Cannot create config from file '/Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/PluginData.bkp/settings.cfg'.
[LOG 13:47:45.819] Load(Assembly): /KSPModFileLocalizer
[LOG 13:47:45.820] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KSPModFileLocalizer.dll
[LOG 13:47:45.864] Load(Assembly): /ModuleManager.3.0.7
[LOG 13:47:45.864] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ModuleManager.3.0.7.dll
[LOG 13:47:45.869] AssemblyLoader: KSPAssembly 'ModuleManager' V2.5.0
[LOG 13:47:45.869] Load(Assembly): 000_AT_Utils/Plugins/000_AT_Utils
[LOG 13:47:45.869] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_AT_Utils/Plugins/000_AT_Utils.dll
[LOG 13:47:45.871] AssemblyLoader: KSPAssembly 'AT_Utils' V1.6.0
[LOG 13:47:45.871] Load(Assembly): 000_AT_Utils/Plugins/001_AnisotropicPartResizer
[LOG 13:47:45.871] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_AT_Utils/Plugins/001_AnisotropicPartResizer.dll
[LOG 13:47:45.872] AssemblyLoader: KSPAssembly 'AnisotropicPartResizer' V1.2.0
[LOG 13:47:45.873] Load(Assembly): 000_AT_Utils/Plugins/002_MultiAnimators
[LOG 13:47:45.873] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_AT_Utils/Plugins/002_MultiAnimators.dll
[LOG 13:47:45.874] AssemblyLoader: KSPAssembly 'MultiAnimators' V1.1.0
[LOG 13:47:45.874] Load(Assembly): 000_AT_Utils/Plugins/ConfigurableContainers
[LOG 13:47:45.874] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_AT_Utils/Plugins/ConfigurableContainers.dll
[LOG 13:47:45.876] AssemblyLoader: KSPAssembly 'ConfigurableContainers' V2.4.0
[LOG 13:47:45.876] Load(Assembly): 000_ClickThroughBlocker/Plugins/ClickThroughBlocker
[LOG 13:47:45.876] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_ClickThroughBlocker/Plugins/ClickThroughBlocker.dll
[LOG 13:47:45.877] AssemblyLoader: KSPAssembly 'ClickThroughBlocker' V1.0.0
[LOG 13:47:45.877] Load(Assembly): 000_FilterExtensions/Plugins/FilterExtensions
[LOG 13:47:45.877] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_FilterExtensions/Plugins/FilterExtensions.dll
[LOG 13:47:45.880] Load(Assembly): 000_KSPAPIExtensions/Plugins/KSPAPIExtensions
[LOG 13:47:45.880] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_KSPAPIExtensions/Plugins/KSPAPIExtensions.dll
[LOG 13:47:45.882] AssemblyLoader: KSPAssembly 'KSPAPIExtensions' V1.7.0
[LOG 13:47:45.882] Load(Assembly): 000_KSPAPIExtensions/Plugins/KSPe
[LOG 13:47:45.882] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_KSPAPIExtensions/Plugins/KSPe.dll
[LOG 13:47:45.883] Load(Assembly): 000_TexturesUnlimited/Plugins/TexturesUnlimited
[LOG 13:47:45.883] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_TexturesUnlimited/Plugins/TexturesUnlimited.dll
[LOG 13:47:45.885] Load(Assembly): 000_Toolbar/Plugins/aaa_Toolbar
[LOG 13:47:45.885] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_Toolbar/Plugins/aaa_Toolbar.dll
[LOG 13:47:45.887] AssemblyLoader: KSPAssembly 'Toolbar' V1.0.0
[LOG 13:47:45.887] Load(Assembly): 000_USITools/USITools
[LOG 13:47:45.887] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/000_USITools/USITools.dll
[LOG 13:47:45.961] Load(Assembly): 001_ToadicusTools/Plugins/ToadicusTools
[LOG 13:47:45.961] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/001_ToadicusTools/Plugins/ToadicusTools.dll
[LOG 13:47:45.962] Load(Assembly): 001_ToolbarControl/Plugins/ToolbarControl
[LOG 13:47:45.963] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/001_ToolbarControl/Plugins/ToolbarControl.dll
[LOG 13:47:45.963] AssemblyLoader: KSPAssembly 'ToolbarController' V1.0.0
[LOG 13:47:45.964] Load(Assembly): ASET/ASET_Props/Plugin/ASETPropsIdentifier
[LOG 13:47:45.964] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ASET/ASET_Props/Plugin/ASETPropsIdentifier.dll
[LOG 13:47:45.964] Load(Assembly): AnyRes/Plugins/AnyRes
[LOG 13:47:45.964] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AnyRes/Plugins/AnyRes.dll
[LOG 13:47:45.965] Load(Assembly): AquilaEnterprises/ElectricLights/ElectricLights
[LOG 13:47:45.965] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AquilaEnterprises/ElectricLights/ElectricLights.dll
[LOG 13:47:45.966] Load(Assembly): AtmosphereAutopilot/Plugins/AtmosphereAutopilot.UI
[LOG 13:47:45.966] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AtmosphereAutopilot/Plugins/AtmosphereAutopilot.UI.dll
[LOG 13:47:45.967] Load(Assembly): AtmosphereAutopilot/Plugins/AtmosphereAutopilot
[LOG 13:47:45.967] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AtmosphereAutopilot/Plugins/AtmosphereAutopilot.dll
[LOG 13:47:45.968] Load(Assembly): AutoAction/AutoAction
[LOG 13:47:45.968] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AutoAction/AutoAction.dll
[LOG 13:47:45.969] AssemblyLoader: KSPAssembly 'AutoAction' V1.10.0
[LOG 13:47:45.969] Load(Assembly): AutomatedScreenshots/Plugins/AutomatedScreenshots
[LOG 13:47:45.969] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AutomatedScreenshots/Plugins/AutomatedScreenshots.dll
[LOG 13:47:45.970] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:45.970] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:45.970] Load(Assembly): AviationLights/Plugins/AviationLights
[LOG 13:47:45.970] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/AviationLights/Plugins/AviationLights.dll
[LOG 13:47:45.971] Load(Assembly): B9AnimationModules/Plugins/B9AnimationModules
[LOG 13:47:45.971] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/B9AnimationModules/Plugins/B9AnimationModules.dll
[LOG 13:47:45.973] AssemblyLoader: KSPAssembly 'B9AnimationModules' V1.2.3
[LOG 13:47:45.973] Load(Assembly): B9PartSwitch/Plugins/B9PartSwitch
[LOG 13:47:45.973] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/B9PartSwitch/Plugins/B9PartSwitch.dll
[LOG 13:47:45.974] AssemblyLoader: KSPAssembly 'B9PartSwitch' V2.3.2
[LOG 13:47:45.974] Load(Assembly): BetterCrewAssignment/BetterCrewAssignment
[LOG 13:47:45.974] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/BetterCrewAssignment/BetterCrewAssignment.dll
[LOG 13:47:45.975] Load(Assembly): BonVoyage/BonVoyage
[LOG 13:47:45.975] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/BonVoyage/BonVoyage.dll
[LOG 13:47:45.976] Load(Assembly): CameraTools/Plugins/CameraTools
[LOG 13:47:45.976] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CameraTools/Plugins/CameraTools.dll
[LOG 13:47:45.977] Load(Assembly): Chatterer/Plugins/Chatterer
[LOG 13:47:45.977] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Chatterer/Plugins/Chatterer.dll
[LOG 13:47:45.978] Load(Assembly): CommunityCategoryKit/CCK
[LOG 13:47:45.978] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CommunityCategoryKit/CCK.dll
[LOG 13:47:45.978] Load(Assembly): CommunityTraitIcons/CommunityTraitIcons
[LOG 13:47:45.978] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CommunityTraitIcons/CommunityTraitIcons.dll
[LOG 13:47:45.980] AssemblyLoader: KSPAssembly 'CommunityTraitIcons' V1.0.0
[LOG 13:47:45.980] Load(Assembly): ContractConfigurator/CC_RemoteTech
[LOG 13:47:45.980] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractConfigurator/CC_RemoteTech.dll
[LOG 13:47:45.981] AssemblyLoader: KSPAssembly 'CC_RemoteTech' V1.25.0
[LOG 13:47:45.981] AssemblyLoader: KSPAssemblyDependency 'ContractConfigurator' V1.25.0
[LOG 13:47:45.981] AssemblyLoader: KSPAssemblyDependency 'RemoteTech' V1.8.0
[LOG 13:47:45.981] Load(Assembly): ContractConfigurator/ContractConfigurator
[LOG 13:47:45.981] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractConfigurator/ContractConfigurator.dll
[LOG 13:47:45.984] AssemblyLoader: KSPAssembly 'ContractConfigurator' V1.25.0
[LOG 13:47:45.984] Load(Assembly): ContractConfigurator/KerKonConConExt
[LOG 13:47:45.985] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractConfigurator/KerKonConConExt.dll
[LOG 13:47:45.985] AssemblyLoader: KSPAssembly 'KerKonConConExt' V1.25.0
[LOG 13:47:45.985] AssemblyLoader: KSPAssemblyDependency 'ContractConfigurator' V1.25.0
[LOG 13:47:45.985] AssemblyLoader: KSPAssemblyDependency 'KerbalKonstructs' V0.9.0
[LOG 13:47:45.986] Load(Assembly): ContractPacks/KerbinSideJobs/KerKonConConExt
[LOG 13:47:45.986] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractPacks/KerbinSideJobs/KerKonConConExt.dll
[LOG 13:47:46.004] Load(Assembly): ContractPacks/StationScience/Plugins/StationScience
[LOG 13:47:46.004] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ContractPacks/StationScience/Plugins/StationScience.dll
[LOG 13:47:46.005] Load(Assembly): ControlSurfaceToggle/ControlSurfaceToggle
[LOG 13:47:46.006] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ControlSurfaceToggle/ControlSurfaceToggle.dll
[LOG 13:47:46.006] Load(Assembly): CorrectCOL/Plugins/CorrectCoL
[LOG 13:47:46.006] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CorrectCOL/Plugins/CorrectCoL.dll
[LOG 13:47:46.007] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.007] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.007] Load(Assembly): CraftManager/Plugins/CraftManager
[LOG 13:47:46.007] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CraftManager/Plugins/CraftManager.dll
[LOG 13:47:46.009] Load(Assembly): CraftManager/Plugins/KatLib
[LOG 13:47:46.009] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CraftManager/Plugins/KatLib.dll
[LOG 13:47:46.010] Load(Assembly): CustomBarnKit/CustomBarnKit
[LOG 13:47:46.010] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/CustomBarnKit/CustomBarnKit.dll
[LOG 13:47:46.011] Load(Assembly): DMagicOrbitalScience/Plugins/DMagic
[LOG 13:47:46.011] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DMagicOrbitalScience/Plugins/DMagic.dll
[LOG 13:47:46.012] AssemblyLoader: KSPAssembly 'DMagic' V1.4.0
[LOG 13:47:46.012] Load(Assembly): DavonTCsystemsMod/Plugins/DifferentialThrust
[LOG 13:47:46.012] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DavonTCsystemsMod/Plugins/DifferentialThrust.dll
[LOG 13:47:46.013] Load(Assembly): DecouplerShroud/DecouplerShroud
[LOG 13:47:46.013] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DecouplerShroud/DecouplerShroud.dll
[LOG 13:47:46.014] Load(Assembly): Diazo/AGExt/Plugins/AGExt
[LOG 13:47:46.014] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Diazo/AGExt/Plugins/AGExt.dll
[LOG 13:47:46.015] Load(Assembly): DistantObject/DistantObject
[LOG 13:47:46.015] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DistantObject/DistantObject.dll
[LOG 13:47:46.016] AssemblyLoader: KSPAssembly 'DistantObject' V1.5.0
[LOG 13:47:46.016] Load(Assembly): DockRotate/DockRotate
[LOG 13:47:46.016] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/DockRotate/DockRotate.dll
[LOG 13:47:46.017] Load(Assembly): EVAEnhancementsContinued/Plugins/EVAEnhancementsContinued
[LOG 13:47:46.017] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/EVAEnhancementsContinued/Plugins/EVAEnhancementsContinued.dll
[LOG 13:47:46.017] Load(Assembly): EarlyBird/Plugins/EarlyBird
[LOG 13:47:46.017] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/EarlyBird/Plugins/EarlyBird.dll
[LOG 13:47:46.018] Load(Assembly): EasyVesselSwitch/Plugins/EasyVesselSwitch
[LOG 13:47:46.018] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/EasyVesselSwitch/Plugins/EasyVesselSwitch.dll
[LOG 13:47:46.019] AssemblyLoader: KSPAssembly 'EasyVesselSwitch' V1.6.0
[LOG 13:47:46.019] Load(Assembly): EasyVesselSwitch/Plugins/KSPDev_Utils.0.31
[LOG 13:47:46.019] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/EasyVesselSwitch/Plugins/KSPDev_Utils.0.31.dll
[LOG 13:47:46.020] Load(Assembly): EditorExtensionsRedux/Plugins/EditorExtensionsRedux
[LOG 13:47:46.020] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/EditorExtensionsRedux/Plugins/EditorExtensionsRedux.dll
[LOG 13:47:46.021] Load(Assembly): FMRS/FMRS
[LOG 13:47:46.021] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/FMRS/FMRS.dll
[LOG 13:47:46.022] AssemblyLoader: KSPAssembly 'SlingShotter' V1.0.0
[LOG 13:47:46.022] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.022] Load(Assembly): FShangarExtender/Plugins/FShangarExtender
[LOG 13:47:46.022] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/FShangarExtender/Plugins/FShangarExtender.dll
[LOG 13:47:46.022] Load(Assembly): Felbourn/NodeHelper/NodeHelper
[LOG 13:47:46.022] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Felbourn/NodeHelper/NodeHelper.dll
[LOG 13:47:46.023] Load(Assembly): Firespitter/Plugins/Firespitter
[LOG 13:47:46.023] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Firespitter/Plugins/Firespitter.dll
[LOG 13:47:46.025] Load(Assembly): HLAirships/Plugins/HLAirships
[LOG 13:47:46.025] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/HLAirships/Plugins/HLAirships.dll
[LOG 13:47:46.026] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.026] Load(Assembly): Hangar/Plugins/Hangar
[LOG 13:47:46.026] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Hangar/Plugins/Hangar.dll
[LOG 13:47:46.027] AssemblyLoader: KSPAssembly 'Hangar' V3.3.0
[LOG 13:47:46.027] Load(Assembly): HaystackContinued/Plugins/HaystackContinued
[LOG 13:47:46.027] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/HaystackContinued/Plugins/HaystackContinued.dll
[LOG 13:47:46.028] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.028] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.028] Load(Assembly): Historian/Historian
[LOG 13:47:46.028] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Historian/Historian.dll
[LOG 13:47:46.029] Load(Assembly): HullCameraVDS/Plugins/HullCamera
[LOG 13:47:46.029] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/HullCameraVDS/Plugins/HullCamera.dll
[LOG 13:47:46.030] Load(Assembly): InterstellarFuelSwitch/Plugins/InterstellarFuelSwitch
[LOG 13:47:46.030] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/Plugins/InterstellarFuelSwitch.dll
[LOG 13:47:46.031] Load(Assembly): InterstellarFuelSwitch/Plugins/MiniAVC
[LOG 13:47:46.031] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/Plugins/MiniAVC.dll
[LOG 13:47:46.032] Load(Assembly): InterstellarFuelSwitch/Plugins/Scale_Redist
[LOG 13:47:46.032] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/InterstellarFuelSwitch/Plugins/Scale_Redist.dll
[LOG 13:47:46.033] Load(Assembly): JSI/RasterPropMonitor/Plugins/RasterPropMonitor
[LOG 13:47:46.033] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/JSI/RasterPropMonitor/Plugins/RasterPropMonitor.dll
[LOG 13:47:46.034] AssemblyLoader: KSPAssembly 'RasterPropMonitor' V0.17.0
[LOG 13:47:46.034] Load(Assembly): KAS/Plugins/KAS
[LOG 13:47:46.034] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KAS/Plugins/KAS.dll
[LOG 13:47:46.035] AssemblyLoader: KSPAssembly 'KAS' V0.6.0
[LOG 13:47:46.035] Load(Assembly): KSP-AVC/KSP-AVC
[LOG 13:47:46.035] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KSP-AVC/KSP-AVC.dll
[LOG 13:47:46.036] Load(Assembly): KSPWheel/Plugin/KSPWheel
[LOG 13:47:46.036] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KSPWheel/Plugin/KSPWheel.dll
[LOG 13:47:46.037] Load(Assembly): Kerbal Electric/Plugin/KerbalElectric
[LOG 13:47:46.037] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Kerbal Electric/Plugin/KerbalElectric.dll
[LOG 13:47:46.038] Load(Assembly): KerbalEngineer/KerbalEngineer.Unity
[LOG 13:47:46.038] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalEngineer/KerbalEngineer.Unity.dll
[LOG 13:47:46.039] Load(Assembly): KerbalEngineer/KerbalEngineer
[LOG 13:47:46.039] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalEngineer/KerbalEngineer.dll
[LOG 13:47:46.040] Load(Assembly): KerbalEngineer/MiniAVC
[LOG 13:47:46.040] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalEngineer/MiniAVC.dll
[LOG 13:47:46.055] Load(Assembly): KerbalJointReinforcement/Plugins/KerbalJointReinforcement
[LOG 13:47:46.055] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalJointReinforcement/Plugins/KerbalJointReinforcement.dll
[LOG 13:47:46.056] Load(Assembly): KerbalKonstructs/KerbalKonstructs
[LOG 13:47:46.056] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalKonstructs/KerbalKonstructs.dll
[LOG 13:47:46.058] AssemblyLoader: KSPAssembly 'KerbalKonstructs' V0.9.0
[LOG 13:47:46.058] Load(Assembly): KerbalStats/Plugins/KerbalStats
[LOG 13:47:46.058] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbalStats/Plugins/KerbalStats.dll
[LOG 13:47:46.059] Load(Assembly): Kerbaltek/HyperEdit/HyperEdit
[LOG 13:47:46.059] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Kerbaltek/HyperEdit/HyperEdit.dll
[LOG 13:47:46.060] Load(Assembly): KerbetrotterLtd/000_KerbetrotterTools/Plugins/KerbetrotterTools
[LOG 13:47:46.060] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/KerbetrotterLtd/000_KerbetrotterTools/Plugins/KerbetrotterTools.dll
[LOG 13:47:46.062] AssemblyLoader: KSPAssembly 'KerbetrotterTools' V1.4704.0
[LOG 13:47:46.062] Load(Assembly): LandingHeight/Plugins/LandingHeight
[LOG 13:47:46.062] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/LandingHeight/Plugins/LandingHeight.dll
[LOG 13:47:46.063] Load(Assembly): LaserDist/Plugins/LaserDist
[LOG 13:47:46.063] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/LaserDist/Plugins/LaserDist.dll
[LOG 13:47:46.064] AssemblyLoader: KSPAssembly 'LaserDist' V1.0.0
[LOG 13:47:46.064] Load(Assembly): MOARdV/AvionicsSystems/AvionicsSystems
[LOG 13:47:46.064] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MOARdV/AvionicsSystems/AvionicsSystems.dll
[LOG 13:47:46.066] Load(Assembly): MOARdV/AvionicsSystems/MoonSharp.Interpreter
[LOG 13:47:46.066] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MOARdV/AvionicsSystems/MoonSharp.Interpreter.dll
[LOG 13:47:46.067] Load(Assembly): MPUtils/Plugins/MPUtils
[LOG 13:47:46.067] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MPUtils/Plugins/MPUtils.dll
[LOG 13:47:46.068] Load(Assembly): MechJeb2/Plugins/MechJeb2
[LOG 13:47:46.068] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MechJeb2/Plugins/MechJeb2.dll
[LOG 13:47:46.081] AssemblyLoader: KSPAssembly 'MechJeb2' V2.5.0
[LOG 13:47:46.081] Load(Assembly): MemGraph/MiniAVC
[LOG 13:47:46.081] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MemGraph/MiniAVC.dll
[LOG 13:47:46.090] Load(Assembly): MemGraph/Plugins/MemGraph
[LOG 13:47:46.090] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/MemGraph/Plugins/MemGraph.dll
[LOG 13:47:46.091] Load(Assembly): ModularFlightIntegrator/ModularFlightIntegrator
[LOG 13:47:46.091] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ModularFlightIntegrator/ModularFlightIntegrator.dll
[LOG 13:47:46.092] AssemblyLoader: KSPAssembly 'ModularFlightIntegrator' V1.2.0
[LOG 13:47:46.092] Load(Assembly): NavBallDockingAlignmentIndicatorCE/Plugins/NavBallDockingAlignmentIndicatorCE
[LOG 13:47:46.092] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/NavBallDockingAlignmentIndicatorCE/Plugins/NavBallDockingAlignmentIndicatorCE.dll
[LOG 13:47:46.092] Load(Assembly): NavUtilities continued/Plugins/AircraftAutoPilot
[LOG 13:47:46.092] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/NavUtilities continued/Plugins/AircraftAutoPilot.dll
[LOG 13:47:46.093] Load(Assembly): NavUtilities continued/Plugins/NavUtilLib
[LOG 13:47:46.093] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/NavUtilities continued/Plugins/NavUtilLib.dll
[LOG 13:47:46.094] Load(Assembly): NavUtilities continued/Plugins/NavUtilRPM
[LOG 13:47:46.094] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/NavUtilities continued/Plugins/NavUtilRPM.dll
[LOG 13:47:46.095] Load(Assembly): NavUtilities continued/Plugins/NavUtilToolBar
[LOG 13:47:46.095] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/NavUtilities continued/Plugins/NavUtilToolBar.dll
[LOG 13:47:46.095] Load(Assembly): PartAngleDisplay/Plugins/PartAngleDisplay
[LOG 13:47:46.095] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/PartAngleDisplay/Plugins/PartAngleDisplay.dll
[LOG 13:47:46.096] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.096] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.096] Load(Assembly): PartCommanderContinued/Plugins/PartCommanderContinued
[LOG 13:47:46.096] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/PartCommanderContinued/Plugins/PartCommanderContinued.dll
[LOG 13:47:46.097] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.097] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.097] Load(Assembly): PartWizard/Plugins/PartWizard
[LOG 13:47:46.097] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/PartWizard/Plugins/PartWizard.dll
[LOG 13:47:46.098] AssemblyLoader: KSPAssembly 'PartWizard' V1.2.0
[LOG 13:47:46.098] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.098] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.098] Load(Assembly): PatchManager/Plugins/PatchManager
[LOG 13:47:46.099] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/PatchManager/Plugins/PatchManager.dll
[LOG 13:47:46.099] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.099] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.099] Load(Assembly): PhysicsRangeExtender/Plugins/PhysicsRangeExtender
[LOG 13:47:46.099] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/PhysicsRangeExtender/Plugins/PhysicsRangeExtender.dll
[LOG 13:47:46.100] Load(Assembly): RCSBuildAid/Plugins/RCSBuildAid
[LOG 13:47:46.100] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/RCSBuildAid/Plugins/RCSBuildAid.dll
[LOG 13:47:46.101] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.101] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.101] Load(Assembly): REPOSoftTech/AmpYear/Plugins/AmpYear
[LOG 13:47:46.101] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/REPOSoftTech/AmpYear/Plugins/AmpYear.dll
[LOG 13:47:46.103] AssemblyLoader: KSPAssembly 'AmpYear' V1.5.0
[LOG 13:47:46.103] Load(Assembly): RemoteTech/Plugins/RemoteTech
[LOG 13:47:46.103] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/RemoteTech/Plugins/RemoteTech.dll
[LOG 13:47:46.105] AssemblyLoader: KSPAssembly 'RemoteTech' V1.8.0
[LOG 13:47:46.105] Load(Assembly): RoverScience/RoverScience
[LOG 13:47:46.105] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/RoverScience/RoverScience.dll
[LOG 13:47:46.106] Load(Assembly): SCANsat/Plugins/SCANmechjeb
[LOG 13:47:46.106] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SCANsat/Plugins/SCANmechjeb.dll
[LOG 13:47:46.106] AssemblyLoader: KSPAssembly 'SCANmechjeb' V0.5.0
[LOG 13:47:46.106] AssemblyLoader: KSPAssemblyDependency 'SCANsat' V1.8.0
[LOG 13:47:46.107] AssemblyLoader: KSPAssemblyDependency 'MechJeb2' V2.5.0
[LOG 13:47:46.107] Load(Assembly): SCANsat/Plugins/SCANsat.Unity
[LOG 13:47:46.107] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SCANsat/Plugins/SCANsat.Unity.dll
[LOG 13:47:46.107] Load(Assembly): SCANsat/Plugins/SCANsat
[LOG 13:47:46.107] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SCANsat/Plugins/SCANsat.dll
[LOG 13:47:46.109] AssemblyLoader: KSPAssembly 'SCANsat' V1.8.0
[LOG 13:47:46.109] Load(Assembly): SXT/Plugins/ModuleBounce
[LOG 13:47:46.109] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SXT/Plugins/ModuleBounce.dll
[LOG 13:47:46.110] Load(Assembly): ScienceAlert/ScienceAlert
[LOG 13:47:46.110] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ScienceAlert/ScienceAlert.dll
[LOG 13:47:46.111] Load(Assembly): ShipEffectsContinued/Plugins/ShipEffectsContinued
[LOG 13:47:46.111] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ShipEffectsContinued/Plugins/ShipEffectsContinued.dll
[LOG 13:47:46.112] Load(Assembly): ShipManifest/Plugins/CLSInterfaces
[LOG 13:47:46.112] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ShipManifest/Plugins/CLSInterfaces.dll
[LOG 13:47:46.113] Load(Assembly): ShipManifest/Plugins/ShipManifest
[LOG 13:47:46.113] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ShipManifest/Plugins/ShipManifest.dll
[LOG 13:47:46.114] Load(Assembly): SmartParts/Plugins/SmartParts
[LOG 13:47:46.114] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SmartParts/Plugins/SmartParts.dll
[LOG 13:47:46.115] Load(Assembly): SmartStage/Plugins/SmartStage
[LOG 13:47:46.115] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SmartStage/Plugins/SmartStage.dll
[LOG 13:47:46.116] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.116] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.116] Load(Assembly): SmokeScreen/SmokeScreen
[LOG 13:47:46.116] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SmokeScreen/SmokeScreen.dll
[LOG 13:47:46.117] Load(Assembly): SolverEngines/Plugins/SolverEngines
[LOG 13:47:46.117] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SolverEngines/Plugins/SolverEngines.dll
[LOG 13:47:46.119] AssemblyLoader: KSPAssembly 'SolverEngines' V3.6.2
[LOG 13:47:46.119] Load(Assembly): SpeedUnitChanger/Plugin/SpeedUnitChanger
[LOG 13:47:46.119] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/SpeedUnitChanger/Plugin/SpeedUnitChanger.dll
[LOG 13:47:46.121] Load(Assembly): Squad/Plugins/KSPSteamCtrlr
[LOG 13:47:46.121] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Squad/Plugins/KSPSteamCtrlr.dll
[LOG 13:47:46.122] Load(Assembly): StageRecovery/StageRecovery
[LOG 13:47:46.122] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/StageRecovery/StageRecovery.dll
[LOG 13:47:46.123] Load(Assembly): StationScience/Plugins/StationScience
[LOG 13:47:46.123] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/StationScience/Plugins/StationScience.dll
[LOG 13:47:46.144] Load(Assembly): TacFuelBalancer/MiniAVC
[LOG 13:47:46.144] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TacFuelBalancer/MiniAVC.dll
[LOG 13:47:46.145] Load(Assembly): TacFuelBalancer/TacFuelBalancer
[LOG 13:47:46.146] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TacFuelBalancer/TacFuelBalancer.dll
[LOG 13:47:46.147] Load(Assembly): TacStickyControls/Plugins/TacStickyControls
[LOG 13:47:46.147] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TacStickyControls/Plugins/TacStickyControls.dll
[LOG 13:47:46.148] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.148] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.148] Load(Assembly): TakeCommand/Plugins/TakeCommand
[LOG 13:47:46.148] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TakeCommand/Plugins/TakeCommand.dll
[LOG 13:47:46.149] Load(Assembly): ThrottleControlledAvionics/Plugins/ThrottleControlledAvionics
[LOG 13:47:46.149] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ThrottleControlledAvionics/Plugins/ThrottleControlledAvionics.dll
[LOG 13:47:46.153] AssemblyLoader: KSPAssembly 'ThrottleControlledAvionics' V3.5.0
[LOG 13:47:46.153] Load(Assembly): ThroughTheEyes/Plugins/ThroughTheEyes
[LOG 13:47:46.153] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/ThroughTheEyes/Plugins/ThroughTheEyes.dll
[LOG 13:47:46.154] Load(Assembly): TimeControl/TimeControl
[LOG 13:47:46.154] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TimeControl/TimeControl.dll
[LOG 13:47:46.156] Load(Assembly): Trajectories/Plugin/Trajectories
[LOG 13:47:46.156] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/Trajectories/Plugin/Trajectories.dll
[LOG 13:47:46.157] Load(Assembly): TriggerTech/KerbalAlarmClock/KerbalAlarmClock
[LOG 13:47:46.157] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TriggerTech/KerbalAlarmClock/KerbalAlarmClock.dll
[LOG 13:47:46.159] Load(Assembly): TriggerTech/TransferWindowPlanner/TransferWindowPlanner
[LOG 13:47:46.159] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TriggerTech/TransferWindowPlanner/TransferWindowPlanner.dll
[LOG 13:47:46.160] Load(Assembly): TweakScale/Plugins/Scale
[LOG 13:47:46.160] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakScale/Plugins/Scale.dll
[LOG 13:47:46.162] Load(Assembly): TweakScale/Plugins/Scale_Redist
[LOG 13:47:46.162] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakScale/Plugins/Scale_Redist.dll
[LOG 13:47:46.162] Load(Assembly): TweakableEverything/Plugins/TweakableDeployablePanels
[LOG 13:47:46.162] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableDeployablePanels.dll
[LOG 13:47:46.163] Load(Assembly): TweakableEverything/Plugins/TweakableDockingNode
[LOG 13:47:46.163] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableDockingNode.dll
[LOG 13:47:46.164] Load(Assembly): TweakableEverything/Plugins/TweakableEVA
[LOG 13:47:46.164] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableEVA.dll
[LOG 13:47:46.164] Load(Assembly): TweakableEverything/Plugins/TweakableFuelPumps
[LOG 13:47:46.164] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableFuelPumps.dll
[LOG 13:47:46.165] Load(Assembly): TweakableEverything/Plugins/TweakableGimbals
[LOG 13:47:46.165] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableGimbals.dll
[LOG 13:47:46.166] Load(Assembly): TweakableEverything/Plugins/TweakableIntakes
[LOG 13:47:46.166] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableIntakes.dll
[LOG 13:47:46.166] Load(Assembly): TweakableEverything/Plugins/TweakableParachutes
[LOG 13:47:46.166] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableParachutes.dll
[LOG 13:47:46.167] Load(Assembly): TweakableEverything/Plugins/TweakableReactionWheels
[LOG 13:47:46.167] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableReactionWheels.dll
[LOG 13:47:46.169] Load(Assembly): TweakableEverything/Plugins/TweakableSAS
[LOG 13:47:46.169] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins/TweakableSAS.dll
[LOG 13:47:46.170] Load(Assembly): TweakableEverything/Plugins_TweakScale/Scale_TweakableEverything
[LOG 13:47:46.170] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/TweakableEverything/Plugins_TweakScale/Scale_TweakableEverything.dll
[LOG 13:47:46.171] Load(Assembly): VesselMover/Plugins/VesselMover
[LOG 13:47:46.171] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/VesselMover/Plugins/VesselMover.dll
[LOG 13:47:46.172] Load(Assembly): WasdEditorCamera/Plugins/WasdEditorCamera
[LOG 13:47:46.172] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WasdEditorCamera/Plugins/WasdEditorCamera.dll
[LOG 13:47:46.173] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.173] AssemblyLoader: KSPAssemblyDependency 'ToolbarController' V1.0.0
[LOG 13:47:46.173] Load(Assembly): WindTunnel/Accord.Math.Core
[LOG 13:47:46.173] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WindTunnel/Accord.Math.Core.dll
[LOG 13:47:46.251] Load(Assembly): WindTunnel/Accord.Math
[LOG 13:47:46.251] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WindTunnel/Accord.Math.dll
[LOG 13:47:46.257] Load(Assembly): WindTunnel/Accord
[LOG 13:47:46.257] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WindTunnel/Accord.dll
[LOG 13:47:46.258] Load(Assembly): WindTunnel/Wind Tunnel
[LOG 13:47:46.258] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WindTunnel/Wind Tunnel.dll
[LOG 13:47:46.259] AssemblyLoader: KSPAssemblyDependency 'ClickThroughBlocker' V1.0.0
[LOG 13:47:46.259] Load(Assembly): WorldStabilizer/Plugins/WorldStabilizer
[LOG 13:47:46.259] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/WorldStabilizer/Plugins/WorldStabilizer.dll
[LOG 13:47:46.261] Load(Assembly): kOS/Plugins/ICSharpCode.SharpZipLib
[LOG 13:47:46.261] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kOS/Plugins/ICSharpCode.SharpZipLib.dll
[LOG 13:47:46.262] Load(Assembly): kOS/Plugins/kOS.Safe
[LOG 13:47:46.262] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kOS/Plugins/kOS.Safe.dll
[LOG 13:47:46.264] Load(Assembly): kOS/Plugins/kOS
[LOG 13:47:46.264] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kOS/Plugins/kOS.dll
[LOG 13:47:46.267] AssemblyLoader: KSPAssembly 'kOS' V1.4.0
[LOG 13:47:46.267] Load(Assembly): kRPC/Google.Protobuf
[LOG 13:47:46.267] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/Google.Protobuf.dll
[LOG 13:47:46.268] Load(Assembly): kRPC/KRPC.Drawing
[LOG 13:47:46.268] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.Drawing.dll
[LOG 13:47:46.269] Load(Assembly): kRPC/KRPC.IO.Ports
[LOG 13:47:46.269] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.IO.Ports.dll
[LOG 13:47:46.270] Load(Assembly): kRPC/KRPC.InfernalRobotics
[LOG 13:47:46.270] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.InfernalRobotics.dll
[LOG 13:47:46.271] Load(Assembly): kRPC/KRPC.KerbalAlarmClock
[LOG 13:47:46.271] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.KerbalAlarmClock.dll
[LOG 13:47:46.271] Load(Assembly): kRPC/KRPC.RemoteTech
[LOG 13:47:46.271] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.RemoteTech.dll
[LOG 13:47:46.272] Load(Assembly): kRPC/KRPC.SpaceCenter
[LOG 13:47:46.272] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.SpaceCenter.dll
[LOG 13:47:46.274] Load(Assembly): kRPC/KRPC.UI
[LOG 13:47:46.274] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.UI.dll
[LOG 13:47:46.274] Load(Assembly): kRPC/KRPC
[LOG 13:47:46.274] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/kRPC/KRPC.dll
[LOG 13:47:46.288] Load(Assembly): net.lisias.ksp/MiniAVC/MiniAVC
[LOG 13:47:46.288] AssemblyLoader: Loading assembly at /Users/lisias/Applications/Games/Steam/Kerbal Space Program/GameData/net.lisias.ksp/MiniAVC/MiniAVC.dll
[LOG 13:47:46.321] AssemblyLoader: Loading assemblies
[LOG 13:47:46.405] ADDON BINDER: Create binding redirect: ToolbarControl, Version=0.1.5.7, Culture=neutral, PublicKeyToken=null => ToolbarControl, Version=0.1.6.15, Culture=neutral, PublicKeyToken=null
[LOG 13:47:46.410] ADDON BINDER: Create binding redirect: ToolbarControl, Version=0.1.6.6, Culture=neutral, PublicKeyToken=null => ToolbarControl, Version=0.1.6.15, Culture=neutral, PublicKeyToken=null
[LOG 13:47:46.482] ADDON BINDER: Create binding redirect: ToolbarControl, Version=0.1.6.1, Culture=neutral, PublicKeyToken=null => ToolbarControl, Version=0.1.6.15, Culture=neutral, PublicKeyToken=null
[LOG 13:47:46.578] ADDON BINDER: Create binding redirect: ToolbarControl, Version=0.1.6.7, Culture=neutral, PublicKeyToken=null => ToolbarControl, Version=0.1.6.15, Culture=neutral, PublicKeyToken=null
[LOG 13:47:46.579] ADDON BINDER: Create binding redirect: ToolbarControl, Version=0.1.6.4, Culture=neutral, PublicKeyToken=null => ToolbarControl, Version=0.1.6.15, Culture=neutral, PublicKeyToken=null
[ERR 13:47:46.673] ADDON BINDER: Cannot resolve assembly: System.ComponentModel.DataAnnotations, Culture=neutral, PublicKeyToken=31bf3856ad364e35

[ERR 13:47:46.674] ADDON BINDER: Cannot resolve assembly: System.ComponentModel.DataAnnotations, Culture=neutral, PublicKeyToken=31bf3856ad364e35

[ERR 13:47:46.712] AssemblyLoader: Exception loading 'Accord': System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
  at AssemblyLoader.LoadAssemblies () [0x00000] in <filename unknown>:0 

Additional information about this exception:

 System.IO.FileNotFoundException: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
File name: 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

 System.TypeLoadException: Could not load type 'Accord.RealAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.TypeLoadException: Could not load type 'Accord.RealAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.IO.FileNotFoundException: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
File name: 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

 System.TypeLoadException: Could not load type 'Accord.RealAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.IO.FileNotFoundException: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
File name: 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

 System.IO.FileNotFoundException: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
File name: 'System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

 System.TypeLoadException: Could not load type 'Accord.IntegerAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.TypeLoadException: Could not load type 'Accord.IntegerAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.TypeLoadException: Could not load type 'Accord.IntegerAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

 System.TypeLoadException: Could not load type 'Accord.IntegerAttribute' from assembly 'Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7'.

[LOG 13:47:46.849] VesselModules: Found VesselModule of type CommNetVessel with order 999
[LOG 13:47:46.853] VesselModules: Found VesselModule of type FlightIntegrator with order 0
[LOG 13:47:46.858] VesselModules: Found VesselModule of type ModuleStabilization with order 999
[LOG 13:47:46.887] [RPMVesselComputer]: Initializing RPM version 0.30.5.22792
[LOG 13:47:46.888] VesselModules: Found VesselModule of type RPMVesselComputer with order 999
[LOG 13:47:46.890] VesselModules: Found VesselModule of type KSPWheelDustCamera with order 999
[LOG 13:47:46.892] VesselModules: Found VesselModule of type KSPWheelVesselControl with order 999
[LOG 13:47:46.894] VesselModules: Found VesselModule of type KSPWheelVesselDebug with order 999
[LOG 13:47:46.897] VesselModules: Found VesselModule of type KerbetrotterEngineVesselControl with order 999
[LOG 13:47:46.900] VesselModules: Found VesselModule of type ModularFlightIntegrator with order 0
[LOG 13:47:46.906] VesselModules: Found VesselModule of type SolverFlightSys with order 999
[LOG 13:47:46.914] VesselModules: Found VesselModule of type kOSVesselModule with order 999
[LOG 13:47:46.916] VesselModules: Found 11 VesselModule types
[LOG 13:47:46.955] 
************************************************************************

Environment Info
Unix 7FFFFFFFFFFFFFFF  Args: KSP -force-opengl

Mod DLLs found:
Stock assembly: Assembly-CSharp v0.0.0.0
KSPModFileLocalizer v0.2.3.2
ModuleManager v3.0.7.0
000_AT_Utils v1.6.0.0
001_AnisotropicPartResizer v1.2.0.3
002_MultiAnimators v1.1.0.2
ConfigurableContainers v2.4.3.1
ClickThroughBlocker v0.1.6.7 / v1.0.0.0
FilterExtensions v3.2.1.0 / v1.0.0.0
KSPAPIExtensions v1.7.5.6
KSPe v1.7.5.1
TexturesUnlimited v0.0.0.0
aaa_Toolbar v1.7.17.11
USITools v1.0.0.0
ToadicusTools v0.22.3.1
ToolbarControl v0.1.6.15
ASETPropsIdentifier v1.5.0.0
AnyRes v1.0.6660.28228
ElectricLights v1.0.3.0
AtmosphereAutopilot.UI v1.5.11.1
AtmosphereAutopilot v1.5.11.1
AutoAction v1.10.3.1
AutomatedScreenshots v0.8.4.2
AviationLights v4.0.5.0
B9AnimationModules v1.2.3.0 / vv1.2.3
B9PartSwitch v2.3.2.0
BetterCrewAssignment v0.0.0.0
BonVoyage v0.13.3.0
CameraTools v1.10.0.0
Chatterer v0.9.95.2110
CCK v3.0.0.0 / v3.0.0.0 for KSP 1.4.1
CommunityTraitIcons v1.0.0.0
ContractConfigurator v1.25.0.2
RemoteTech v1.8.0.0 / v1.8.13
CC_RemoteTech v1.25.0.2
KerbalKonstructs v2.0.0.0 / v1.4.5.4
KerKonConConExt v1.25.0.2
KerKonConConExt v1.25.0.2
StationScience v1.0.0.0
ControlSurfaceToggle v1.0.0.0
CorrectCoL v1.6.4.1 / v1.4.4.0
CraftManager v1.0.6809.22915
KatLib v1.0.6696.36817
CustomBarnKit v1.1.17.0
DMagic v1.3.0.12 / vv1.3.12
DifferentialThrust v1.0.0.0
DecouplerShroud v1.0.0.0
AGExt v2.3.3.7
DistantObject v1.9.1.23037
DockRotate v1.4.4.15
EVAEnhancementsContinued v0.1.13.1 / v1.1.1.0
EarlyBird v0.1.3.0 / v0.1.3
EasyVesselSwitch v1.6.6640.41793 / v1.6 for KSP v1.4+
KSPDev_Utils.0.31 v0.31.6640.37756 / v0.31 for KSP v1.4
EditorExtensionsRedux v3.3.19.6
FMRS v1.2.7.2
FShangarExtender v3.5.3.1 / v3.5.0.0
NodeHelper v1.4.0.0
Firespitter v7.9.0.1
HLAirships v5.6.1.2
Hangar v3.3.4.2
HaystackContinued v0.5.4.4
Historian v1.3.2.1
HullCamera v0.1.9.3
InterstellarFuelSwitch v3.6.5.0
MiniAVC v1.0.3.2
Scale_Redist v1.0.0.0
RasterPropMonitor v0.30.5.22792
KAS v0.6.4.0 / v0.6.4 for KSP 1.4+
KSP-AVC v1.2.0.2
KSPWheel v0.0.0.0
KerbalElectric v0.1.0.5
KerbalEngineer.Unity v1.0.0.0
KerbalEngineer v1.1.5.3
MiniAVC v1.0.3.2
KerbalJointReinforcement v3.3.3.2
KerbalStats v3.0.3.0
HyperEdit v1.5.4.0
KerbetrotterTools v1.2.6.0
LandingHeight v2.2.0.0 / v1.0.0.0
LaserDist v1.0.1.0 / v1.0.1
AvionicsSystems v0.21.2.23826
MoonSharp.Interpreter v1.8.0.0
MPUtils v0.1.6356.37088
MechJeb2 v2.5.1.0 / v / v2.7.1.0
MiniAVC v1.0.3.2
MemGraph v1.1.1.3
ModularFlightIntegrator v1.2.4.9
NavBallDockingAlignmentIndicatorCE v1.0.4.1 / v1.0.0.0
AircraftAutoPilot v1.0.0.0
NavUtilLib v0.7.2.1
NavUtilRPM v0.7.2.0
NavUtilToolBar v0.7.0.0
PartAngleDisplay v0.3.3.5 / v0.3.2.4
PartCommanderContinued v1.1.4.0 / v1.0.3.0
PartWizard v1.3.7.4 / v1.3.0.0
PatchManager v0.0.16.0 / v1.0.0.0
PhysicsRangeExtender v1.7.0.0
RCSBuildAid v0.9.7.0
AmpYear v1.5.2.0
RoverScience v2.3.5.1
SCANsat v1.8.7.0 / vv18.7
SCANmechjeb v1.8.7.0 / vv18.7
SCANsat.Unity v1.8.7.0
ModuleBounce v0.3.23.6 / v1.0.0.0
ScienceAlert v1.9.0.1 / v1.9.0.2
ShipEffectsContinued v1.0.0.0
CLSInterfaces v1.2.0.0
ShipManifest v5.2.1.0
SmartParts v1.9.9.0
SmartStage v2.9.11.0 / v1.0.0.0
SmokeScreen v2.8.0.0
SolverEngines v3.3.0.0 / v3.6.2.0
SpeedUnitChanger v1.7.0.38380 / v1.7.0
Stock assembly: KSPSteamCtrlr v0.0.1.35
StageRecovery v1.7.2.0
StationScience v1.0.0.0
MiniAVC v1.0.3.0
TacFuelBalancer v2.20.6792.18106
TacStickyControls v0.4.3.2 / v0.0.1.0
TakeCommand v1.4.12.2 / v1.4.0.0
ThrottleControlledAvionics v3.5.2.1
ThroughTheEyes v2.0.2.2
TimeControl v2.9.3.0
Trajectories v2.2.0.0
KerbalAlarmClock v3.9.1.0
TransferWindowPlanner v1.6.3.0
Scale v2.3.12.1
Scale_Redist v2.3.12.1
TweakableDeployablePanels v0.1.24.3
TweakableDockingNode v0.1.24.3
TweakableEVA v0.1.24.3
TweakableFuelPumps v0.1.24.3
TweakableGimbals v0.1.24.3
TweakableIntakes v0.1.24.3
TweakableParachutes v0.1.24.3
TweakableReactionWheels v0.1.24.3
TweakableSAS v0.1.24.3
Scale_TweakableEverything v2.3.12.1
VesselMover v1.7.3.0
WasdEditorCamera v0.6.13.1
Accord.Math.Core v3.8.0.0 / v3.8.0 / v3.8.0.6134
Accord.Math v3.8.0.0 / v3.8.0 / v3.8.0.6134
Wind Tunnel v1.1.0.0
WorldStabilizer v0.9.2.1
ICSharpCode.SharpZipLib v0.86.0.518 / v0.86.0
kOS.Safe v1.1.5.2
kOS v1.1.5.2
Google.Protobuf v3.5.1.0 / v3.5.1
KRPC.Drawing v0.4.7.0
KRPC.IO.Ports v0.0.0.0
KRPC.InfernalRobotics v0.4.7.0
KRPC.KerbalAlarmClock v0.4.7.0
KRPC.RemoteTech v0.4.7.0
KRPC.SpaceCenter v0.4.7.0
KRPC.UI v0.4.7.0
KRPC v0.4.7.0
MiniAVC v1.0.3.2

Folders and files in GameData:
000_AT_Utils
000_ClickThroughBlocker
000_FilterExtensions
000_FilterExtensions_Configs
000_KSPAPIExtensions
000_TexturesUnlimited
000_Toolbar
000_USITools
001_ToadicusTools
001_ToolbarControl
ASET
AirplanePlus
Airstairs
AnyRes
AquilaEnterprises
AtmosphereAutopilot
AutoAction
AutomatedScreenshots
AviationLights
B9AnimationModules
B9PartSwitch
B9_Aerospace
B9_Aerospace_HX
B9_Aerospace_Legacy
BetterCrewAssignment
BonVoyage
CTTP
CameraTools
Chatterer
CommunityCategoryKit
CommunityResourcePack
CommunityTechTree
CommunityTraitIcons
ConfigurableContainers
ContractConfigurator
ContractPacks
ControlSurfaceToggle
Cormorant Aeronology
CorrectCOL
Corvus
CraftManager
CustomBarnKit
DMagicOrbitalScience
DavonTCsystemsMod
DecouplerShroud
Diazo
DistantObject
DockRotate
EVAEnhancementsContinued
EarlyBird
EasyVesselSwitch
EditorExtensionsRedux
EveEngines
FMRS
FShangarExtender
Felbourn
Firespitter
HGR
HLAirships
Hangar
HaystackContinued
Historian
HullCameraVDS
InternalRCS
InterstellarFuelSwitch
JSI
KAS
KAX
KSP-AVC
KSPWheel
KWRocketry
KashCorp
Kerbal Electric
KerbalEngineer
KerbalFoundries
KerbalHacks
KerbalJointReinforcement
KerbalKonstructs
KerbalStats
Kerbaltek
KerbetrotterLtd
KerbinSide
Kerbonov
Kermantech
LandingHeight
LaserDist
MOARdV
MPUtils
MarkIVSystem
MechJeb2
MemGraph
MissingHistory
Mk2Expansion
Mk3Expansion
ModRocketSysLite
ModularFlightIntegrator
NavBallDockingAlignmentIndicatorCE
NavUtilities continued
OpenCockpit
PartAngleDisplay
PartCommanderContinued
PartWizard
PatchManager
PhysicsRangeExtender
RCSBuildAid
REPOSoftTech
RemoteTech
RoverScience
SCANsat
SXT
ScienceAlert
SeriousBusiness
ShipEffectsContinued
ShipManifest
SmartParts
SmartStage
SmokeScreen
SolverEngines
SpeedUnitChanger
Stock folder: Squad

Stock folder: SquadExpansion

StageRecovery
StationScience
TacFuelBalancer
TacStickyControls
TakeCommand
ThrottleControlledAvionics
ThroughTheEyes
TimeControl
Trajectories
TriggerTech
TweakScale
TweakableEverything
UniversalStorage
VesselMover
WasdEditorCamera
WindTunnel
WorldStabilizer
kOS
kRPC
net.lisias.ksp
Stock file: .DS_Store

EL_Manual.pdf
KSPModFileLocalizer.dll
ModuleManager.3.0.7.dll
ModuleManager.ConfigCache
ModuleManager.ConfigSHA
ModuleManager.Physics
ModuleManager.TechTree
Universal Storage.pdf
WBIPlayMode.cfg
__SETUP.sh
kRPC.pdf
toolbar-settings.dat

************************************************************************

 

I'm not sure who is stomping on the other's feet (and this can be caused by a third party!). If someone else see this happening on his KSP installment, please advise.

 

— POST - EDIT — 

No! I just detected another situation where KK suffers a NRE in a very similar way. CraftManager is just a screaming victim.

Edited by Lisias
new info. Craft Manager has no role in this play.
Link to post
Share on other sites
  • 1 month later...

Hi.

Now and then, my Editor UI became sluggish when loading a vessel using Craft Manager. Peeking on the KSP.Log, I found this:

[LOG 09:12:22.474] [CM] Loaded 106 craft from cache
[EXC 09:12:24.920] ArgumentException: GUILayout: Mismatched LayoutGroup.MouseDrag
        UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type layoutType)
        UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
        UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
        KatLib.DryUIBase.section (KatLib.ContentNoArgs content)
        CraftManager.CMBrowser.draw_right_hand_section_single_select (Single scroll_width)
        CraftManager.CMBrowser.<draw_right_hand_section>m__15 (Single scroll_width)
        KatLib.DryUIBase.scroll (Vector2 scroll_pos, UnityEngine.GUIStyle scroll_style, Single scroll_width, Single scroll_height, KatLib.Content content)
        CraftManager.CMBrowser.<draw_right_hand_section>m__5 (Single inner_width)
        KatLib.DryUIBase.v_section (Single section_width, KatLib.Content content)
        CraftManager.CMBrowser.draw_right_hand_section (Single section_width)
        CraftManager.CMBrowser.<WindowContent>m__10 (Single inner_width)
        KatLib.DryUIBase.section (Single section_width, KatLib.Content content)
        CraftManager.CMBrowser.<WindowContent>m__0 ()
        KatLib.DryUIBase.v_section (KatLib.ContentNoArgs content)
        CraftManager.CMBrowser.WindowContent (Int32 win_id)
        CraftManager.CMUI.DrawWindow (Int32 window_id)
        UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID)
        UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Sin
[ERR 09:12:24.921] GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

It's a known bug? There's something I can do to prevent this? This can be related to KK?

Edited by Lisias
Adding question about KK.
Link to post
Share on other sites
  • 3 weeks later...
1 hour ago, Apaseall said:

Just installed this mod. Looks good. I see a notice against a certain craft. It say "This craft has locked parts". Is there an option I can use that will let me know the names of these 'locked parts'?

Try to launch the craft and it'll tell you, if memory serves; it's handled by the base game as it's a stock part of the system. Locked means you've not opened their tech nodes (or bought them after unlocking it if you're playing that rule.)

Link to post
Share on other sites
1 minute ago, JH4C said:

Try to launch the craft and it'll tell you, if memory serves; it's handled by the base game as it's a stock part of the system. Locked means you've not opened their tech nodes (or bought them after unlocking it if you're playing that rule.)

I think it might be a mod that changed the tech unlock for a part. Problem is nothing appears on screen. The output log is spewing stuff as I was debugging something else. I was hoping that since a message from this mod was displayed, that this mod had a little something up its sleeve.
Thanks for the reply.

Link to post
Share on other sites
On 10/5/2018 at 10:09 AM, banditsan said:

Feature idea for future updates ability to have more then one rule in tags and min/max compare

I'll have a think about adding this. I'd kept it as one rule per tag to keep the interface simple and more flexible, but maybe this could be an 'advanced' feature.
You can currently create a filter that will do the example you've shown, but you'd need to create 3 tags and use them together; A "crew less than 20" tag, a "crew more than 10" tag and a "mass less than 25" tag and then select all three of them. 

 

@Apaseall There isn't the functionality to list the locked parts, yet. But that's a good idea.  CM can tell you which mods a craft uses (assuming you've enabled KerbalX integration), but doesn't list the parts. As the game still lets you load a craft with locked parts I didn't think to add anything special for that, but I'll add this to my todo list.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...