Jump to content

[1.3] Kerbal Joint Reinforcement v3.3.3 7/24/17


ferram4

Recommended Posts

On 12/29/2018 at 7:00 PM, DriftNasty said:

I am unable to get this to work on a clean install of 1.6. If someone can please explain to me in simple terms how to install this I would appreciate it. I don't know if I am missing key components or if I lack the understanding of where the files go.

Download this: 
https://github.com/net-lisias-ksp/KSPAPIExtensions/releases/tag/PRERELEASE%2F2.1.0.5]

Then read this:
https://github.com/net-lisias-ksp/KSPAPIExtensions/blob/dev/INSTALL.md

 

And download this:
https://github.com/net-lisias-ksp/Kerbal-Joint-Reinforcement/releases/tag/RELEASE%2F3.4.0.4

And after, read this:
https://github.com/net-lisias-ksp/Kerbal-Joint-Reinforcement/blob/master/INSTALL.md

[NOTE: you need to download and install both add'ons (KJR/L and KSPAPIExtensions/L aka KSPe) to have a working installment. ]

Spoiler

How you unpack things depends of the O.S you are using. Since I'm on a UNIX machine, I make heavy use of the terminal and Midnight Commander - this little devil open zip files as they were directories, allowing me to copy things as we did on the old times with Norton Commander. :) 

large.png

What Operating System are you using?

— — — POST EDIT — — — 

People on Windows could use this:
https://sourceforge.net/projects/mcwin32/

Be cautious: this is a very powerful tool - and as every powerful tool, it can be a hazard when improperly handled.

 

Edited by Lisias
moved some content to a spoiler
Link to comment
Share on other sites

8 hours ago, Darkex said:

Anyone know if KJR works with Luna Multiplayer?

My best guess is "probably". KJR only deals with Joints, on per vessel part and it only does its magic when a vessel is created on the Flight Scene (or when it's changed/destroyed). As long runtime vessel data is not exchanged between clients, you will not "break" the fellow lunatics, I mean, lunar players. :sticktongue:

However… Everybody must use KJR (ideally, the very same version) or some clients will blow the vessels while others won't - and I don't think this will be that great for the gaming experience. :) 

Link to comment
Share on other sites

Just now, AdmiralSirJohn said:

For some reason, KJR isn't working anymore.  The only thing that's changed from when it did is that I updated Deep Space Exploration Vehicles.

Need more info. Please publish a KSP.log file on pastebin or equivalent.

Link to comment
Share on other sites

2 hours ago, AdmiralSirJohn said:

For some reason, KJR isn't working anymore.  The only thing that's changed from when it did is that I updated Deep Space Exploration Vehicles.

 

1 hour ago, AdmiralSirJohn said:

https://www.dropbox.com/sh/7vnzld9g39444ut/AAApqMSWDvwXCrELmVumj4OIa?dl=0

(This particular log is with the other fork, but the rubber rocket was the same with all versions.)

 

I don't see a single problem on the LOG related to DLLs or warnings from KJR/L (and yes, I confirmed on the logs you are using "mine").

What I saw is this:

[LOG 17:14:46.735] [Untitled Space Craft]: ground contact! - error. Moving Vessel  up 0.244m

And a awful amount of the following:

[WRN 17:00:18.852] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "GameObject/ServiceTank-25m/DoorA2/ColBox005"
<and a reaaly lot of similar messanges!>
 
[WRN 17:00:56.580] WheelCollider requires an attached Rigidbody to function.
<and a reaaly lot of similar messanges!>

Not directly related to KJR, but perhaps we are facing another "Unholy Interaction between Add'Ons - AKA Krakens food".

Worse, I found a lot of messages like that:

[EXC 17:26:14.764] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.Flight.IVAEVACollapseGroups.onVesselChange (.Vessel v)
	KSP.UI.Screens.Flight.IVAEVACollapseGroups.onVesselWasModified (.Vessel v)
	EventData`1[Vessel].Fire (.Vessel data)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(Vessel)
	ProceduralParts.ProceduralPart:OnPartColliderChanged()
	BaseEvent:Invoke(BaseEventDetails)
	Part:SendEvent(String, BaseEventDetails, Int32)
	ProceduralParts.ProceduralAbstractShape:ColliderChanged()
	ProceduralParts.ProceduralAbstractShape:RaiseModelAndColliderChanged()
	ProceduralParts.ProceduralAbstractSoRShape:WriteMeshes(LinkedList`1)
	ProceduralParts.ProceduralAbstractSoRShape:WriteMeshes(ProfilePoint[])
	ProceduralParts.ProceduralShapeCylinder:UpdateShape(Boolean)
	ProceduralParts.ProceduralAbstractShape:OnUpdateEditor()
	ProceduralParts.ProceduralPart:InitializeNodes()
	ProceduralParts.ProceduralPart:DoInitialize()
	ProceduralParts.ProceduralPart:OnInitialize()
	Part:InitializeModules()
	ShipConstruct:LoadShip(ConfigNode, UInt32, Boolean, String&)
	ShipConstruct:LoadShip(ConfigNode, UInt32)
	ShipConstruct:LoadShip(ConfigNode)
	ShipConstruction:LoadShip(String)
	FlightDriver:setStartupNewVessel()
	FlightDriver:Start()

KJR  relies on the "OnVesselChange" chain of events to keep track and update the instrumented Joints list it needs. If this is happening a lot on your installment, and the Exception is issued before KJR has a chance to work, then it will not work and then your vessel will have spaghetti joints.

It's a guess, but at the moment, it's the best I can do with the time window I have.

I think you should rollback some of your add'ons to a version where everything used to work.

 

In time, I noticed you are using TweakScale 2.4.0, but I didn't fount any of the messages I issue when it finds a part known to play havoc - so I'm assuming you are using a old version. Please update it to the newest, unless you are relying somehow to a glitch that TweakScale 2.4.0.7 is preventing (most of the time such glitches will crash your game, but sometimes it will not, and some people are exploiting this :P ).

I also found this on you log (also related to TweakScale):

[WRN 17:10:21.478] [TweakScale Warning] scaleFactors must be in ascending order on stack! 
ScaleType {
 name = stack
 isFreeScale = True
 12 scaleFactors = 0  5  0.75  1  1.5  2  3  4  6  8  12  16  
 10 scaleNames = 50%  100%  150%  200%  300%  400%  600%  800%  1200%  1600%  
 9 incrementSlide = 0.01  0.025  0.025  0.025  0.05  0.05  0.1  0.1  0.2  
 0 TechRequired = 
 defaultScale = 1 scaleNodes = 

}
TweakScale.Tools:LogWf(String, Object[])
TweakScale.ScaleType:.ctor(ConfigNode)
TweakScale.TweakScale:SetupPrefab()
TweakScale.TweakScale:OnLoad(ConfigNode)
PartModule:Load(ConfigNode)
Part:AddModule(ConfigNode, Boolean)
PartLoader:ParsePart(UrlConfig, ConfigNode)
<CompileParts>c__Iterator1:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

I'm not sure yet about what's this, but I will work on it too - I'm the TweakScale maintainer, so I need to at least understand what's happening. :) 

Link to comment
Share on other sites

5 minutes ago, Lisias said:

 

I don't see a single problem on the LOG related to DLLs or warnings from KJR/L (and yes, I confirmed on the logs you are using "mine").

What I saw is this:


[LOG 17:14:46.735] [Untitled Space Craft]: ground contact! - error. Moving Vessel  up 0.244m

And a awful amount of the following:


[WRN 17:00:18.852] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "GameObject/ServiceTank-25m/DoorA2/ColBox005"
<and a reaaly lot of similar messanges!>
 
[WRN 17:00:56.580] WheelCollider requires an attached Rigidbody to function.
<and a reaaly lot of similar messanges!>

Not directly related to KJR, but perhaps we are facing another "Unholy Interaction between Add'Ons - AKA Krakens food".

 

1

Or maybe I just had my rocket a tiny bit too low.  I'll check it after tonight's "The Orville". :)

Link to comment
Share on other sites

9 minutes ago, AdmiralSirJohn said:

Or maybe I just had my rocket a tiny bit too low.  I'll check it after tonight's "The Orville". :)

I just checked this thread, and since you are using 1.6, perhaps it can be of use. I confirmed the behaviour on my installment (and I'm using a custom MM of mine too), and I confirmed that the workaround solved the issue with the Inflatable Heat Shield. It's not impossible that this can be affecting more add'ons too. Wild guess, but I think it worths to be aware:

https://forum.kerbalspaceprogram.com/index.php?/topic/50533-15x-module-manager-311-november-12th-2018-its-dangerous-to-go-alone-take-those-cats-with-you/&amp;page=247&amp;tab=comments#comment-3513505

Link to comment
Share on other sites

On 12/31/2018 at 12:45 PM, AdmiralSirJohn said:

And I guess it wasn't having the rocket too low, nor was it DSEV (rolled it back to the previous version) or the two ribbon packs for Final Frontier.  Let me go look at that thread...

Do you use WorldStabilizer? I wonder if that causes issues for me as well. Not that I would play without it Oo.

Link to comment
Share on other sites

2 minutes ago, Zah said:

Do you use WorldStabilizer? I wonder if that causes issues for me as well. Not that I would play without it Oo.

I abandoned WS when I used @Lisias's KJR fork, then I tried the ferram4 ("official" continued version supported from CKAN) and now I still don't need it while hopping on KJR/L version again. I noticed the continued KJR from CKAN is sort of not that benchmarked but KJR/L (from @Lisias) works like a charm still.

Before hopping on KSP 1.6 I did try WS without having a stable release for it so my mod hopping sort of makes sense I hope.

Link to comment
Share on other sites

I never used WS.

I did update TweakScale to the current version, but that didn't help.

I did notice over on the RealPlume Stock thread that some people needed to reinstall old versions of Module Manager to get it work.  That may be my problem, since it started after I deleted my old versions.  If so, it may bear looking into tweaking it to work with stock MM, rather than a hacked one.

Link to comment
Share on other sites

1 hour ago, AdmiralSirJohn said:

I did update TweakScale to the current version, but that didn't help.

Just an amendment - there're no "current version" for KJR. All we have for while are updated parallel forks - some with minimal changes, others practically a new development code tree. :) 

Link to comment
Share on other sites

Okay, I think I found where KJR is causing unplanned disassembly of my space stations...

 

Quote

[LOG 04:23:05.845] [PartSet]: Recreating part sets for vessel Alpha Station
[LOG 04:23:05.874] [Dynamic Battery Storage]: Summary: 
 vessel KTVII.avionic (loaded state True)
- 12 stock power handlers
[LOG 04:23:05.875] [Dynamic Battery Storage]: Summary: 
 vessel crewtube-hub-25 (Alpha Station) (loaded state True)
- 9 stock power handlers
[ERR 04:23:05.875] Exception handling event onVesselWasModified in class KJRManager:System.TypeInitializationException: An exception was thrown by the type initializer for KerbalJointReinforcement.KJRJointUtils ---> 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 KSPe.IO.File`1+<>c[KerbalJointReinforcement.KJRManager].<FullPathName>b__6_0 (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectManyIterator>c__Iterator14`3[System.Reflection.Assembly,System.Type,<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type],System.Type].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.FirstOrDefault[Type] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at KSPe.IO.File`1[KerbalJointReinforcement.KJRManager].FullPathName (System.String partialPathname, System.String hierarchy, Boolean createDirs) [0x00000] in <filename unknown>:0 
  at KSPe.IO.File`1+Data[KerbalJointReinforcement.KJRManager].FullPathName (System.String path, Boolean createDirs) [0x00000] in <filename unknown>:0 
  at KSPe.IO.Data.PluginConfiguration.CreateForType[KJRManager] (System.String filename) [0x00000] in <filename unknown>:0 
  at KerbalJointReinforcement.KJRJointUtils..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at KerbalJointReinforcement.KJRManager.Awake () [0x00000] in <filename unknown>:0 

[EXC 04:23:05.876] ReflectionTypeLoadException: The classes in the module cannot be loaded.
    System.Reflection.Assembly.GetTypes ()
    KSPe.IO.File`1+<>c[KerbalJointReinforcement.KJRManager].<FullPathName>b__6_0 (System.Reflection.Assembly assembly)
    System.Linq.Enumerable+<CreateSelectManyIterator>c__Iterator14`3[System.Reflection.Assembly,System.Type,<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
    System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
    System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type],System.Type].MoveNext ()
    System.Linq.Enumerable.FirstOrDefault[Type] (IEnumerable`1 source)
    KSPe.IO.File`1[KerbalJointReinforcement.KJRManager].FullPathName (System.String partialPathname, System.String hierarchy, Boolean createDirs)
    KSPe.IO.File`1+Data[KerbalJointReinforcement.KJRManager].FullPathName (System.String path, Boolean createDirs)
    KSPe.IO.Data.PluginConfiguration.CreateForType[KJRManager] (System.String filename)
    KerbalJointReinforcement.KJRJointUtils..cctor ()
    Rethrow as TypeInitializationException: An exception was thrown by the type initializer for KerbalJointReinforcement.KJRJointUtils
    KerbalJointReinforcement.KJRManager.Awake ()
    UnityEngine.Debug:LogException(Exception)
    EventData`1:Fire(Vessel)
    Vessel:Initialize(Boolean, Boolean, Boolean, Boolean)
    Vessel:Initialize(Boolean)
    Part:decouple(Single)
    Part:OnPartJointBreak(Single)
    PartJoint:OnJointBreak(Single)
[LOG 04:23:05.920] [PartSet]: Recreating part sets for vessel [empty name]
[LOG 04:23:05.926] [Dynamic Battery Storage]: Summary: 
 vessel KTVII.avionic (loaded state True)
- 12 stock power handlers
[LOG 04:23:05.927] [Dynamic Battery Storage]: Summary: 
 vessel crewtube-hub-25 (Alpha Station) (loaded state True)
- 9 stock power handlers
[ERR 04:23:05.927] Exception handling event onVesselWasModified in class KJRManager:System.TypeInitializationException: An exception was thrown by the type initializer for KerbalJointReinforcement.KJRJointUtils ---> 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 KSPe.IO.File`1+<>c[KerbalJointReinforcement.KJRManager].<FullPathName>b__6_0 (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectManyIterator>c__Iterator14`3[System.Reflection.Assembly,System.Type,<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type]].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[<>f__AnonymousType0`2[System.Reflection.Assembly,System.Type],System.Type].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.FirstOrDefault[Type] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at KSPe.IO.File`1[KerbalJointReinforcement.KJRManager].FullPathName (System.String partialPathname, System.String hierarchy, Boolean createDirs) [0x00000] in <filename unknown>:0 
  at KSPe.IO.File`1+Data[KerbalJointReinforcement.KJRManager].FullPathName (System.String path, Boolean createDirs) [0x00000] in <filename unknown>:0 
  at KSPe.IO.Data.PluginConfiguration.CreateForType[KJRManager] (System.String filename) [0x00000] in <filename unknown>:0 
  at KerbalJointReinforcement.KJRJointUtils..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at KerbalJointReinforcement.KJRManager.Awake () [0x00000] in <filename unknown>:0 

I hope this helps in the development of a solution, as I like building big things in orbit, and without a way to stabilize them, KSP is essentially unplayable for me.

Link to comment
Share on other sites

On 1/15/2019 at 2:30 PM, RaiderMan said:

has the fork been made version compliant with the current ksp?

I'm using it without perceptible issues. 

 

2 hours ago, AdmiralSirJohn said:

Okay, I think I found where KJR is causing unplanned disassembly of my space stations...

I hope this helps in the development of a solution, as I like building big things in orbit, and without a way to stabilize them, KSP is essentially unplayable for me.

Yeah, KJR/L is not being "activated". What's really borking is KSPe, that borks when Mono's Reflection support gets corrupted by a failed DLL's dependency (and this is really something I don't know, yet, how to workaround as the Mono's runtime itself is getting corrupted by this!). Your KSP installment is inconsistent for sure, and is a time bomb waiting to start to tick. Publish the while KSP.log, please, so I can pinpoint you exactly the DLL that is in faulty. This kind of stuff is a bit hard to detect, but usually easy to fix.

Edited by Lisias
hit "save" too soon.
Link to comment
Share on other sites

2 hours ago, AdmiralSirJohn said:

Here you go.

Yep, bull's eye:

[ERR 02:16:45.809] AssemblyLoader: Exception loading 'TweakableDeployablePanels': 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.TypeLoadException: Could not load type 'TweakableEverything.ModuleTweakableDeployablePanel' from assembly 'TweakableDeployablePanels, Version=0.1.25.3, Culture=neutral, PublicKeyToken=null'.
 

[....]


[ERR 02:16:45.872] AssemblyLoader: Exception loading 'SuperKerbal': 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 'KIS, Version=1.16.6876.37464, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'KIS, Version=1.16.6876.37464, Culture=neutral, PublicKeyToken=null'

You need to install KIS for the SuperKerba add'on be able to work, and there're something wrong with the TweakableEverything.ModuleTweakableDeployablePanel's DLL that prevented it from being load, besides being there.

Some add'ons are KSP specific, as they need something that are only available to newer (or, sometimes older) KSP version.Your mileage may vary, as some add'ons (as KJR) works fine com 1.2.2 to 1.6.1 - but in the bottom line, the mod's maintainers are the one that should keep track of this.

The keywords to detect this problem are "System.TypeLoadException: Could not load type" . Every time you find this on your KSP log, you have DLL problems that need to be fixed in order to have everything working right. It's this that causes KSPe to bork, as there're a bug on the Mono's runtime that screws up Reflection, a thing that KSPe relies to work.

Additional info: when you find "[ERR 02:16:45.872] ADDON BINDER:" on the KSP.log, this is not necessarily a problem. KSP's runtime always print this when some code looks for a DLL and it is not there. This is not the problem, looking for things that aren't there is ok. What plays havoc on that Reflection thingy is trying to load a DLL that it's not there, or cannot be loaded due something else.

— MOAR ISSUES --

You have a lot of ModuleManager DLLs on your root. It's recommended that you delete all but the one you intend to use. I once had a problem with a add'on that had an module manager DLL forgotten inside its folders, and this was playing havoc with KSPe.

I also found this:

[LOG 02:17:01.090] MiniAVC -> System.IO.IOException: Sharing violation on path C:\Kerbal Space Program\GameData\000_ClickThroughBlocker\MiniAVC.xml
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode) [0x00000] in <filename unknown>:0 
  at MiniAVC.AddonSettings.Load (System.String rootPath) [0x00000] in <filename unknown>:0 
  at MiniAVC.AddonLibrary.ProcessAddonPopulation (System.Object state) [0x00000] in <filename unknown>:0 

This appears to be a bug on MiniAVC - this happens when more than one code tries to open a file for R/W at the same time. On the bottom line, I would recommend deleting all the MiniAVC DLLs (I do that) and use KSP-AVC. ZeroMiniAVC can help you on this.

— MOAR MOAR ISSUES --

You need to install also ToadicusTools. *A HUGE LOT* of parts are borking on loading//using/flying due:

[EXC 02:22:48.494] FileNotFoundException: Could not load file or assembly 'ToadicusTools, Version=0.22.3.2, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
	PartModule.Awake ()
	UnityEngine.GameObject:AddComponent(Type)
	Part:AddModule(String, Boolean)
	Part:AddModule(ConfigNode, Boolean)
	PartLoader:ParsePart(UrlConfig, ConfigNode)
	<CompileParts>c__Iterator1:MoveNext()
	UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

 

Edited by Lisias
MOAR ISSUES
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...