Jump to content

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


DMagic

Recommended Posts

Grrrrr.... No joy...

I even tried dropping to a suborbital trajectory and re-established my orbit and it didn't help.

Here's the offending contract:

(I'm in a polar orbit over Mun with an eccentricity of .13)

CONTRACT

{

guid = 4aef4990-a3c9-4415-bfdb-5d7b4931f74a

type = DMMagneticSurveyContract

prestige = 0

seed = 66541215

state = Active

agent = DMagic

deadlineType = Floating

expiryType = Floating

values = 227580,54432000,100000,110000,100000,0,100,20,2372357.45267193,2144779.43267193,56576779.4326719,0

Mag_Survey_Target = 2

PARAM

{

name = DMLongOrbitParameter

state = Incomplete

disableOnStateChange = False

values = 100000,0,100,100,0

Orbital_Parameter = 2|MapSat K/Lr/Bio|False|False|5,407,780.9|3,024,000.0|0.110|15.000

}

PARAM

{

name = DMOrbitalParameters

state = Incomplete

disableOnStateChange = False

values = 0,0,0,0,0

Orbital_Parameter = 0|2|MapSat K/Lr/Bio|0.110|True

}

PARAM

{

name = DMOrbitalParameters

state = Incomplete

disableOnStateChange = False

values = 0,0,0,0,0

Orbital_Parameter = 1|2|MapSat K/Lr/Bio|15.000|False

}

PARAM

{

name = DMCollectScience

enabled = False

state = Complete

values = 0,0,0,0,0

Science_Subject = 1|Magnetometer Scan|2|16||True

}

PARAM

{

name = DMCollectScience

enabled = False

state = Complete

values = 0,0,0,0,0

Science_Subject = 1|Magnetometer Scan|2|32||True

}

PARAM

{

name = DMCollectScience

enabled = False

state = Complete

values = 0,0,0,0,0

Science_Subject = 1|Radio Plasma Wave Scan|2|16||True

}

PARAM

{

name = DMCollectScience

enabled = False

state = Complete

values = 0,0,0,0,0

Science_Subject = 1|Radio Plasma Wave Scan|2|32||True

}

}

Link to comment
Share on other sites

Grrrrr.... No joy...

I'm not terribly knowledgeable about the underpinnings of the contract system (yet), but the one thing I can think to suggest would be changing the name of the vessel again, maybe to something that doesn't contain slashes to be extra-safe, then change the name in the persistent file to match and see where that gets you.

Link to comment
Share on other sites

Grrrrr.... No joy...

I even tried dropping to a suborbital trajectory and re-established my orbit and it didn't help.

Here's the offending contract:

(I'm in a polar orbit over Mun with an eccentricity of .13)

Do you know what your inclination is? I thought I took care of it, but it's possible that an inclination of over 90 could cause problems.

Do you have other vessels in flight with that name? maybe around other planets? There is a bug where it's supposed to reset the parameter if the vessel is orbiting the wrong body, but it won't necessarily trigger the way it's written now.

It should be able to handle renaming of a vessel, but if there are more than one with the same name it will probably get them mixed up.

Link to comment
Share on other sites

I think I've come up with a way to drastically simplify how the magnetic field survey contracts are monitored. My current method requires passing information back and forth between several parameters and constantly tracking their states. It will be much easier to make the two orbital parameter children of the main long-orbit parameter. The main parameter will then only have to wait until the two orbital parameters are met before starting its timer; it won't need to track any vessels.

The two orbital parameters can also be improved to make it so they won't lock one vessel into being tracked. Any vessel that meets the requirements should mark the parameter as complete, you could even have one vessel meet the inclination and one meet the eccentricity requirement.

I've also realized that contract overcrowding is a real problem, and one that we probably can't do anything about. So I'm going to consolidate the three regular survey contracts (orbital, ground, biological) into one contract with three different types. Then maybe allow just two of those at a time. I might also get rid of the basic collect science contracts all together, the survey contracts basically fill the same role anyway.

There is a whole host of other changes that I'm working on to make the anomaly scanner and anomaly contracts use less redundant code. And I might finally get around to overhauling how the asteroid science collection works, Squad added some new GameEvents in 0.24 which make these changes much simpler. So I'm not sure when I'll actually be able to update, but it shouldn't be too long.

Link to comment
Share on other sites

Just wanted to pop in and say I love this mod! Having missions that are more than really easy stuff is nice. Just did a mission that has taken 140 days. It is slated for another 170ish. It is rather fun to have to plan something like this.

Also, the Universal Storage science modules are AWESOME!

Link to comment
Share on other sites

I have been trying anomaly research contracts, which are a really neat idea, but I have trouble completing them.

On Kerbin the atmosphere means than any space experiments need to be done at least 70 km up and I didn't get the on screen message at all, which from looking at the code should appear no matter the horizontal distance for the proper experiment below hundred kilometers. The anomaly detector experiment registered correctly when flying low over the thing, though.

Another problem, although not a fatal one, for a Minmus anomaly the message did appear and said the data was recorded, but didn't count for contract completion apparently because I was too high. If this is an actual condition the contract terms and the message should reflect that.

Link to comment
Share on other sites

Hi! Great mod, I simply LOVE the science satellites I can make with your mod using the Universal Storage modules.

However it seems that I have some trouble with the "Universal Storage Accelerometer / GravMax". All the other modules work correctly (both the Universal Storage and the "unpacked" versions), however it seems that this module doesn't send data correctly through the antenna... The experiment shows science available (and I'm sure it is as it was the first satellite around moho), however sending data triggers the send procedure, for a lot of packets, however no science points are ever registered and it doesn't even trigger the "science data from around Moho" contracts.

I'm not using the latest version as I wanted the contracts to be stable before updating. It is however the last version before contracts were added.

Link to comment
Share on other sites

Hey all - I'm having big problems with contracts and DMagic Orbital Science. Bottom line is that the contracts aren't showing up nearly at all...I've had two biological search contracts pop up but neither had ANY details or requirements.

I run multiple mods including FinePrint, SCANsat, science notifier, re-fund, MechJeb2, fuel balancer, Procedural Fairings, EVE, docking display, toolbar, and perhaps a few other small cats and dogs.

Either way - the only mods that mess with contracts are DMagic and FinePrint. The FinePrint contracts work just like they are supposed to...default contracts continue to show up as well...but the DMagic contracts are missing and the two times (in 2 weeks of use!) that one has shown up for a Search For Biological Activity on Duna but there were no details - no scanner to use, no timeframe, no reward/penalty...as a matter of fact when you click on another contract then one of the DMagic contracts it doesn't even update the text in the contract description box...it just shows the company logo and the title to the contract but continues to show the previous contract's words. And like I said...it only does this for DMagic contracts. I've removed FinePrint and tested it..no difference.

Anyone have a guess?

I can add/use the parts just fine...it's just the contracts that aren't working correctly for me.

Link to comment
Share on other sites

Keep up the good work!
This mod is pretty nifty. I like it a lot.
Dmagic is the best science mod to date! I greatly appreciate the work!
Also, the Universal Storage science modules are AWESOME!

Thanks. :kiss:

I have been trying anomaly research contracts, which are a really neat idea, but I have trouble completing them.

On Kerbin the atmosphere means than any space experiments need to be done at least 70 km up and I didn't get the on screen message at all, which from looking at the code should appear no matter the horizontal distance for the proper experiment below hundred kilometers. The anomaly detector experiment registered correctly when flying low over the thing, though.

Another problem, although not a fatal one, for a Minmus anomaly the message did appear and said the data was recorded, but didn't count for contract completion apparently because I was too high. If this is an actual condition the contract terms and the message should reflect that.

The Minmus problem could be related to where the anomaly is (is it still floating?), but if the on-screen message shows up it should work. Either way, anomaly contracts are getting an overhaul and should have much better detection of science collection and looser distance constraints for orbital collections.

For now you can open the debug log (Alt + F2) and it will tell you how far away the anomaly is when you collect the requested science data. It should at least give you an idea of how close you are and whether or not something is going wrong.

Just started playing around with this, looks great but I've got one little snag. Using Ship Manifest, I can't seem to transfer science reports out of the instruments...

It is known.

Hi! Great mod, I simply LOVE the science satellites I can make with your mod using the Universal Storage modules...

Log files will probably be needed for this issue.

It sounds like it is going through the process of transmitting without actually sending anything. There are a few stock bugs with transmission, and there is no reason why one experiment would break like this while the others work fine. I'll look into it though.

Hey all - I'm having big problems with contracts and DMagic Orbital Science. Bottom line is that the contracts aren't showing up nearly at all...I've had two biological search contracts pop up but neither had ANY details or requirements...

Log files will be needed here too (KSP/KSP_Data/Output_log.txt).

The contracts problem sounds like something more serious is going wrong. Are you using the latest version? All I can say is to re-install or wait for the next version (which will break all current contracts anyway), it should be released in a few days.

Link to comment
Share on other sites

Here's the link to download the file - it's from the 64-bit folder.

https://dl.dropboxusercontent.com/u/20732733/output_log.txt

here are some areas that stuck out to me...

[B]8/27/2014 4:10:01 AM,KerbalAlarmClock,Loaded Textures[/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B][DM] Contract Variables Set; Science Reward: 1 ; Completion Reward: 1 ; Forward Amount: 1 ; Penalty Amount: 1[/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B][DM] Max Contract Variables Set: Collect: 3 ; Orbital: 1 ; Ground: 1 ; Biological: 1 ; Asteroid: 1 ; Anomaly: 1 ; Magnetic: 2[/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B]ArgumentException: An element with the same key already exists in the dictionary.[/B]
[B] at System.Collections.Generic.Dictionary`2[System.String,ScienceExperiment].Add (System.String key, .ScienceExperiment value) [0x00000] in <filename unknown>:0 [/B]

[B] at ResearchAndDevelopment.loadExperiments () [0x00000] in <filename unknown>:0 [/B]

[B] at ResearchAndDevelopment.GetExperiment (System.String experimentID) [0x00000] in <filename unknown>:0 [/B]

[B] at DMagic.DMConfigLoader.configLoad () [0x00000] in <filename unknown>:0 [/B]

[B] at DMagic.DMConfigLoader.Start () [0x00000] in <filename unknown>:0 [/B]

[B](Filename: Line: -1)[/B]

[B][DM] Assembly: ScienceAlert found; Reactivating Experiment Properties[/B]

then...

[B]8/27/2014 4:16:56 AM,KerbalAlarmClock,Adding DrawGUI to PostRender Queue[/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B]NullReferenceException: Object reference not set to an instance of an object[/B]
[B] at DMagic.DMCollectContractGenerator.fetchScienceContract (.CelestialBody Body, ExperimentSituations Situation, .ScienceExperiment Exp) [0x00000] in <filename unknown>:0 [/B]

[B] at DMagic.DMMagneticSurveyContract.Generate () [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.Contract.Generate (System.Type contractType, ContractPrestige difficulty, Int32 seed, State state) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContract (Int32 seed, ContractPrestige difficulty, System.Type contractType) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContract (System.Int32& seed, ContractPrestige difficulty) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContracts (System.Int32& seed, ContractPrestige difficulty, Int32 count) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.RefreshContracts () [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem+.MoveNext () [0x00000] in <filename unknown>:0 [/B]

[B](Filename: Line: -1)[/B]

[B]Flight State Captured[/B]

then this towards the end

[B][VesselSpawner]: New object found![/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B][R&D]: No Science Subject found with id AnomalyScan@MunFlyingLowMonolith 2[/B]

[B](Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)[/B]

[B]NullReferenceException: Object reference not set to an instance of an object[/B]
[B] at DMagic.DMCollectScience..ctor (.CelestialBody target, ExperimentSituations location, System.String BiomeName, System.String Name, Int32 Type) [0x00000] in <filename unknown>:0 [/B]

[B] at DMagic.DMAnomalyGenerator.fetchAnomalyParameter (.CelestialBody Body, .PQSCity City) [0x00000] in <filename unknown>:0 [/B]

[B] at DMagic.DMAnomalyContract.Generate () [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.Contract.Generate (System.Type contractType, ContractPrestige difficulty, Int32 seed, State state) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContract (Int32 seed, ContractPrestige difficulty, System.Type contractType) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContract (System.Int32& seed, ContractPrestige difficulty) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.GenerateContracts (System.Int32& seed, ContractPrestige difficulty, Int32 count) [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem.RefreshContracts () [0x00000] in <filename unknown>:0 [/B]

[B] at Contracts.ContractSystem+.MoveNext () [0x00000] in <filename unknown>:0 [/B]

[B](Filename: Line: -1)[/B]

[B]Flight State Captured[/B]

that's a big file to parse through...

Link to comment
Share on other sites

Here's the link to download the file - it's from the 64-bit folder.

Do you have the crowd-sourced sciencedefs?

I see this when it's loading science experiments. Duplicate experiment definitions will break things.


Config(EXPERIMENT_DEFINITION) Squad/Resources/ScienceDefs/EXPERIMENT_DEFINITION

Config(EXPERIMENT_DEFINITION) Squad/Resources/ScienceDefs_orig/EXPERIMENT_DEFINITION

I'll see about verifying that the experiment exists first before generating the contract, most already do this, I suspect that's why you were only seeing a few contracts generated.

Link to comment
Share on other sites

Do you have the crowd-sourced sciencedefs?

I see this when it's loading science experiments. Duplicate experiment definitions will break things.


Config(EXPERIMENT_DEFINITION) Squad/Resources/ScienceDefs/EXPERIMENT_DEFINITION

Config(EXPERIMENT_DEFINITION) Squad/Resources/ScienceDefs_orig/EXPERIMENT_DEFINITION

I'll see about verifying that the experiment exists first before generating the contract, most already do this, I suspect that's why you were only seeing a few contracts generated.

Something in that mix of having two ScienceDef files was the problem. I restored the original file and got rid of the ScienceDefs_orig file (my backup of the original) and it worked like a champ...contracts showing up from DMagic just like they should. I just check it with the crowd sourced ScienceDefs but only kept one config file in the folder (I didn't realize that it would try to load both) - worked also.

Makes me wonder what else was messed up that I didn't even realize.

Good job finding that...I never would have guessed that was the problem - I had long forgotten that I had 'installed' the crowd sourced science.

Cheers.

Link to comment
Share on other sites

That's a fairly common problem and KSP doesn't handle duplicated experiment definitions very well. Usually you end up not being able to use most experiments at all, it's very irritating and it's a simple thing for Squad to fix...

I also went ahead and made sure every contract checks for valid experiments for the next update.

Link to comment
Share on other sites

Log files will probably be needed for this issue.

It sounds like it is going through the process of transmitting without actually sending anything. There are a few stock bugs with transmission, and there is no reason why one experiment would break like this while the others work fine. I'll look into it though.

Yeah that's probably what happens. I'll get the logs as soon as I can, shouldn't be a problem as the bug is very easily repeatable (as in: the bloody thing is hoarding my 120 science in orbit on moho :P).

Link to comment
Share on other sites

Update to version 0.8.5: [Defunct link removed by a moderator]

There are many updates to the contracts. Any active contracts from the last version will be removed (without any contract penalties), stock contracts and contracts from other mods will not be affected.

The basic collect a specific science result contract has been removed, it's function is essentially filled by the survey contracts. The three survey type contracts (orbital, surface, biological) have been consolidated into one that can give any of the three types. These have been altered too. The orbital surveys never ask for specific biomes, but they do require that the science returned be worth something. Ground surveys ask for biomes if applicable and all experiments will be for the same biome. So you might get a contract to study the Mun's surface with all of the parameters asking for results from the canyons, or some other biome; if the experiment isn't biome sensitive then it will work anywhere. These also require that the science returned be worth something. The biological surveys are a mix of the two; any surface experiments will ask for the same biome, but orbital experiments won't, and the science returned doesn't have to be worth anything.

The asteroid surveys are largely unchanged, but the method used to detect successful collection of data is improved, and will display an on-screen message. There are also contract notes making it explicit that only DMagic parts can be used for these contracts, i.e. only the Universal Storage versions of the mystery goo or the accelerometer can be used to collect asteroid science.

Anomaly contracts also have an improved method for detection of data collection and their distance constraints have been significantly loosened. It should be much easier to collect data from orbit for these contracts.

The magnetic survey contracts have a much improved method for tracking suitable vessels around the target planet. Multiple vessels can be used to carry out the contract, and as long as the both of the orbital parameters are satisfied at all times you can switch out old vessels with new ones, dock, undock, use decouplers, etc...

There has also been a total overhaul of how the asteroid science collection works (independent of the asteroid contracts), most of which was discussed way back here. Some new GameEvents added in 0.24 have made this much more feasible.

There are two basic aspects to these changes.

One is that asteroids are assigned a spectral type randomly when they are first loaded (if anyone comes up with a better method of doing this, that could be read easily by other mods it would be great). Science results are now given based on these spectral types, there are nine, rather than the asteroid size class. This makes much more sense for most of the science experiments I have, and the science defs have been updated to reflect this change.

The other change is that there is now a much more robust method for tracking asteroid science results and allowing for repeated experiments from different asteroids of the same spectral type. Now you can collect multiple results from different asteroids of the same type and their worth will gradually diminish. Everything is updated whenever science results are transmitted or recovered so it is mostly transparent to the user.

There have been a few other changes, mostly non-user end stuff. The anomaly code has all been consolidated to remove lots of duplicate methods.

Check the first post for the full change log.

Edited by James Kerman
link removed
Link to comment
Share on other sites

Is it possible to use KAS to grab the science parts (universal storage ones) and keep the science stored in them? Lets say I have a universal storage hub on one ship, have a docked lander. Move the science stuff from the orbital ship to the lander. Then land, get science and move them back to the orbital ship.

Link to comment
Share on other sites

Well to answer my own question. Preliminary testing indicates that yes it is possible. KAS seems to make the part a separate ship, so to speak, so when I reattach it it appears to be something like docking.

Kind of exciting option methinks.

Link to comment
Share on other sites

DMagic can you attempt to find me on IRC sometime later? The "patch reset" function you used, I don't think it is functional...I've been tinkering with some replacements, but they are behaving oddly, and I think it has to do with some internal workings in the Contract System, but I'm not sure, seems like something worth investigating.

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...