Jump to content

[1.8.x] DMagic Orbital Science: New Science Parts [v1.4.3] [11/2/2019]


DMagic

Recommended Posts

Indeed. Let's stop the talk of illicit drugs, it's against the rules here.

There is nothing wrong with making suggestions for how you feel a mod can be improved even if you can make such changes yourself, that is in some ways the point of having discussion threads about mods. Please carry on and leave the sniping and drug references elsewhere.

Link to comment
Share on other sites

Does that include storing science reports in command modules and stuff like that? Also, just out of curiosity, what is the bugfix exactly?

My parts don't have anything to do with how data is stored in command modules, or IScienceDataContainers. This is the bug that I think you reported; an NRE triggered by collecting or resetting a part that stores multiple experiments while on EVA.

Why does the Kerbal stuff link on the OP, still connect to the Kerbal stuff beta site?

Because it's been there for a very long time; I'm not sure if there is any difference, it seems to link to the same page.

Link to comment
Share on other sites

My parts don't have anything to do with how data is stored in command modules, or IScienceDataContainers. This is the bug that I think you reported; an NRE triggered by collecting or resetting a part that stores multiple experiments while on EVA.

Oh I see, the one where the roverable goo canister bugged out somehow.

Link to comment
Share on other sites

@DMagic how do I assign a KIS assembled probe for the surveying contract? Or do I always have to launch new probes from the ground?

In my play a probe has all the required parts, collected all science and achieved the required orbit, but the survey timer hasn't started ticking.

ndkgObZ.png

Edited by Enceos
Link to comment
Share on other sites

What do you mean the timer hasn't started running? The contract title updates in Contracts Window + every 5 or so seconds (no idea about the stock app), it only updates in CapCom on scene changes. Once the title says "orbit for x more days" instead of just "orbit for x days" the timer has started.

Any vessel with the proper parts will be checked for the orbit requirements; multiple vessels can be used to fulfill the contract, and as long as one remain in orbit within the limits you can move other vessels in and out of orbit without resetting the timer. I'm not entirely sure what will happen if you attach the parts after the vessel is already in orbit, but if the sub-parameters are showing as complete then the vessel checks out.

Link to comment
Share on other sites

What do you mean the timer hasn't started running? The contract title updates in Contracts Window + every 5 or so seconds (no idea about the stock app), it only updates in CapCom on scene changes. Once the title says "orbit for x more days" instead of just "orbit for x days" the timer has started.

Any vessel with the proper parts will be checked for the orbit requirements; multiple vessels can be used to fulfill the contract, and as long as one remain in orbit within the limits you can move other vessels in and out of orbit without resetting the timer. I'm not entirely sure what will happen if you attach the parts after the vessel is already in orbit, but if the sub-parameters are showing as complete then the vessel checks out.

Thank you for your reply, looks like the timer didn't want to set off the first time I entered the orbit. When I went to the vessel to get this screenshot the timer finally started. Thank you very much for your detailed explanation.

Link to comment
Share on other sites

Version 1.0.8 is out; get it or don't on Kerbal Stuff.

It includes moderately less interesting science reports and a minor bug fix for parts that store multiple experiments.

First of all great work. I really love your mod since I always thought KSP needed more orbital experiments.

Unfortunately the last update broke something for me. All the experiments that say 'DMModule Science Animate' instead of 'Science Experiment' during assembly can not be run anymore.

Example: the radial Mystery Goo container works while the universal storage version doesn't, while for the magnetometer boom none of the two work since both use the 'DMModule Science Animate'.

e: nvm, apparently my update got borked somehow. Uninstalling and reinstalling fixed the issue.

Edited by Xaero
grammar is hard
Link to comment
Share on other sites

I was making a modification to the cfg file of the US goo and mat bay. Was trying to make the data collectable. I know a long time ago, I could, has something changed?

The Config says:

dataIsCollectable = True

collectActionName = Take Data

interactionRange = 1.8

externalDeploy = True

usageReqMaskExternal = 8

Basically the same as the other experiments, yet in game it is not collectible. Any ideas?

Link to comment
Share on other sites

I was making a modification to the cfg file of the US goo and mat bay. Was trying to make the data collectable. I know a long time ago, I could, has something changed?

Playing with SETI? It changes all of the goo and mat bay experiments to be not collectible.

Link to comment
Share on other sites

Good call, yes using Seti, will dig into those files and find that setting.

I gutted that SETI science Setting...anywhere he messed with science base and cap, got gutted.

Edited by Lewtz
Link to comment
Share on other sites

DMagic, you do know about the bug where if you reset the mini goo canister and the mini materials bay after doing two samples, the animation doesn't reset correctly, right? I wonder if that has something to do with causing the problems mentioned back here, which are still happening btw, ARG!

I am absolutely surprised that NOBODY ELSE has run into that problem linked...............

Link to comment
Share on other sites

DMagic, you do know about the bug where if you reset the mini goo canister and the mini materials bay after doing two samples, the animation doesn't reset correctly, right? I wonder if that has something to do with causing the problems mentioned back here, which are still happening btw, ARG!

I am absolutely surprised that NOBODY ELSE has run into that problem linked...............

Yeah, I know about the animation thing; it's just a result of not taking experiment resets into account when setting up the sample animations (multiple animations on the same part can get complicated). That shouldn't have any other effect.

I still don't have any clue about that bug, I've been looking into how the external data collection works and there might be something worth checking out, but I think it's just a bit of redundant code.

Link to comment
Share on other sites

Oh, so it's just an animation thing, okay.

I wish there was more information available to see why the heck that bug with EVA and science keeps happening. Also, I did a round of KSC science with a science rover (I didn't have all the instruments at that time) and while that exception came up repeatedly, the bug itself didn't happen.

Also, are you able to reproduce the bug? It feels like I'm the only one experiencing that problem.

Link to comment
Share on other sites

DMagic or anybody, is anybody able to reproduce or also get the bug that I've been talking about? I just want to know if I'm alone in having this bug or not because right now it seriously feels like I'm the only one getting the bug and it is 100000000000% reproducible for me. It's almost every launch for me while biome hopping.............

Link to comment
Share on other sites

Is there a way to fix the scaleability of the solar particle collector? It does not scale right.

Probably, I haven't looked at tweakscale for a long time.

DMagic or anybody, is anybody able to reproduce or also get the bug that I've been talking about? I just want to know if I'm alone in having this bug or not because right now it seriously feels like I'm the only one getting the bug and it is 100000000000% reproducible for me. It's almost every launch for me while biome hopping.............

I can see the debug log error when boarding sometimes, but I've never been able to reproduce all of the other weird things that you see happening after.

Link to comment
Share on other sites

Could a video help maybe? There could be things that I'm doing which you aren't doing, or vice versa.

Maybe I'll do one anyway, maybe it'll give some insight into whatever is going on.

Edited by smjjames
Link to comment
Share on other sites

Could a video help maybe? There could be things that I'm doing which you aren't doing, or vice versa.

Maybe I'll do one anyway, maybe it'll give some insight into whatever is going on.

It might, though probably not that much.

I can see how you would get from that debug message on entering a vessel to having weird problems with the crew and other things. But I don't see how that initial bug could be triggered.

Edit: OK, I seem think I've isolated where the bug starts. The error message refers a UnityEngine.Collider List in the current Part instance:


InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List`1+Enumerator[UnityEngine.Collider].VerifyState () [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1+Enumerator[UnityEngine.Collider].MoveNext () [0x00000] in <filename unknown>:0

at Part.OnDestroy () [0x00000] in <filename unknown>:0

Trying to modify elements of a list (deleting or adding elements) while cycling through each element of a list is a pretty well known way to break something, and it's easy to avoid, so I'm not sure why Squad has such a thing in their Part.OnDestroy method. Luckily, there appears to be only one such list in Part: currentCollisions.

By printing out the contents of currentCollisions (the Vessel class has a method for this, Vessel.printCollisions()) for each part I can see where problems will arise. I don't think there is any issue with modifying a list like this when there is only one element, it's only when you have more than one that issues arise.

When I print out the values for a vessel on the launch pad I get:


[LOG 19:32:52.383] Collision between mk1pod (Untitled Space Craft)...
[LOG 19:32:52.384] ...and LP_barsAlpha in localSpace

Which seems reasonable, the LP_barsAlpha would seem to be the bars on the launchpad. Here's another one with an EVA Kerbal standing next to a vessel with her head clipping through a part.


[LOG 19:27:51.785] Collision between kerbalEVAfemale (Mira Kerman)...
[LOG 19:27:51.786] ...and LP_ground in localSpace
[LOG 19:27:51.786] Collision between kerbalEVAfemale (Mira Kerman)...
[LOG 19:27:51.787] ...and node_collider in fuelTankSmallFlat

This is off of the launch pad, so there is a different ground collider. Now when I jump around things get interesting:


[LOG 19:29:49.021] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:49.022] ...and LP_barsAlpha in localSpace
[LOG 19:29:53.077] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.077] ...and bn_l_knee_b01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.078] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.078] ...and handCollider_l in kerbalEVA (Bob Kerman)
[LOG 19:29:53.079] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.079] ...and bn_r_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.080] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.080] ...and handCollider_r in kerbalEVA (Bob Kerman)
[LOG 19:29:53.081] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.081] ...and bn_spA01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.082] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.082] ...and bn_l_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.083] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.083] ...and bn_r_knee_b01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.717] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.718] ...and bn_l_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.718] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.719] ...and bn_spA01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.719] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.720] ...and handCollider_l in kerbalEVA (Bob Kerman)
[LOG 19:29:53.720] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.721] ...and handCollider_r in kerbalEVA (Bob Kerman)
[LOG 19:29:53.722] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.722] ...and bn_r_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:29:53.723] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:53.723] ...and bn_l_knee_b01 in kerbalEVA (Bob Kerman)
[LOG 19:29:58.130] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:58.131] ...and bn_l_knee_b01 in kerbalEVA (Bob Kerman)
[LOG 19:29:58.131] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:58.132] ...and handCollider_l in kerbalEVA (Bob Kerman)
[LOG 19:29:58.132] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:58.133] ...and bn_l_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:29:58.133] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:58.134] ...and bn_spA01 in kerbalEVA (Bob Kerman)
[LOG 19:29:58.134] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:29:58.135] ...and LP_main in localSpace
[LOG 19:30:02.999] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:30:03.000] ...and bn_l_knee_b01 in kerbalEVA (Bob Kerman)
[LOG 19:30:03.000] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:30:03.001] ...and handCollider_l in kerbalEVA (Bob Kerman)
[LOG 19:30:03.001] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:30:03.002] ...and bn_l_hip01 in kerbalEVA (Bob Kerman)
[LOG 19:30:03.003] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:30:03.003] ...and bn_spA01 in kerbalEVA (Bob Kerman)
[LOG 19:30:03.004] Collision between kerbalEVA (Bob Kerman)...
[LOG 19:30:03.004] ...and collider in mk1pod

Bob is standing on the launch pad bars, with his helmet next to mk1 pod. All of the other values seem to be between body parts clipping through each other during the jump. Most importantly is that these collider messages persist even after Bob is back on the ground. So now the collider list has lots of entries. Trying to board the vessel again triggers the error message:


[EXC 19:30:04.461] InvalidOperationException: Collection was modified; enumeration operation may not execute.
System.Collections.Generic.List`1+Enumerator[UnityEngine.Collider].VerifyState ()
System.Collections.Generic.List`1+Enumerator[UnityEngine.Collider].MoveNext ()
Part.OnDestroy ()

And interestingly, trying to print out the collider list again from the mk1 pod no longer works, I get this error (I stuck a button in one of SCANsat's windows to print out the values, that's why all of the SCANsat references are in this message):


[LOG 19:30:35.382] Collision between mk1pod (Untitled Space Craft)...
[LOG 19:30:35.383] ...and LP_barsAlpha in localSpace
[LOG 19:30:35.383] Collision between mk1pod...
[EXC 19:30:35.384] NullReferenceException
Vessel.printCollisions ()
SCANsat.SCAN_UI.SCANoverlayController.resourceSettings (Int32 id)
SCANsat.SCAN_UI.SCANoverlayController.DrawWindow (Int32 id)
SCANsat.SCAN_Platform.SCAN_MBW.DrawWindowInternal (Int32 id)
UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style)

I think what it's trying to do is print out values from the EVA Kerbal collider which didn't get properly destroyed when I boarded the vessel and interrupted the OnDestroy method.

I can reliably replicate the error by just exiting the vessel, jumping around a bit (not every jump seems to trigger all of the collisions), then boarding the vessel again. I assume something similar happens while jetting around on EVA on the Mun or Minmus. Sometime I'll try reporting an official bug for this after making sure that it happens in a stock install.

Edit 2: Actually the surest way to replicate it seems to be to fall over before boarding. I can do this easily by jump up into part of the vessel, but any way you fall over should work.

Edited by DMagic
Link to comment
Share on other sites

Hmm, Only problem though is that in the output log, I'm not getting any coilision messages. I wasn't observing whether they fell over or not (because Kerbals are kind of clumsy anyway), but I could look again. Editwhiletyping: Does letting go of the ladder count?

Output log: http://sta.sh/013p68nq45ay

(video pending, it'll be a while as it's 44 min long and 1.41GB in size)

Edit: In one case, I accidentially had the kerbal climb into the ladder rather than grab it, though the bug didn't kick in immediately, I didn't see anything that could register as a fall, at least to my knowledge. There was another case where the kerbal kept trying to climb into the ladder, but it didn't trigger the bug.

There is one case where i glitched out while on EVA without any obvious 'fall', although I don't know what KSP considers a 'fall'.

Edit2: The kerbals often try to walk up the side of the lander can, no idea if that counts. Also, there was one where the kerbal stumbled and 'semi-fell' at the mini-goo canister, it triggered right after that.

Edit3: Theres another without any obvious fall and it triggered anyway. I'm also noticing that it triggers when the autosave kicks in.

Edited by smjjames
Link to comment
Share on other sites

Hmm, Only problem though is that in the output log, I'm not getting any coilision messages.

You wouldn't, those collision messages have to be manually printed out with a mod.

I'm not sure exactly which movements will trigger all of the collisions. But I just tested it out in a stock install with nothing but a Kerbal and a MkI pod on the pad. I had to take a running dive off the launch pad to fall down, after climbing back up and boarding the vessel it triggered the error. So there is definitely a stock issue here.

All of the other effects may be related to the broken Kerbal OnDestroy method, or they might not be. This kind of error when a part is being destroyed or unloaded can have very strange effects. The launch clamp bug, where the launch clamps appear floating in the air about 6000m above ground after launching is, I think, related to this same kind of thing.

Edited by DMagic
Link to comment
Share on other sites

Well, while there were a few things that could certainly count as a 'fall' which did trigger the bug, the other times there was no clear reason.

Maybe see how things go with the lander setup on minmus? They are certainly clumsier in low gravity.

Also, video soon, like 10 min maybe. Edit: Actually, not sure how long the proccessing will take, so I'll just give the link.

Edit2: It's up now.

Edited by smjjames
Link to comment
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...