Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Science experiments: observed surprises. #260

Closed
snakeru opened this issue Mar 2, 2019 · 30 comments
Closed

Science experiments: observed surprises. #260

snakeru opened this issue Mar 2, 2019 · 30 comments
Assignees
Milestone

Comments

@snakeru
Copy link

snakeru commented Mar 2, 2019

I will be going through the science functions and post my observations here. Would rather not do that in the forum thread because of too little informativity to other thread members.

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.DuplicateExperiment(0)

Craft: MK1pod and two Goos.
Expectation: if I observe one Goo then the second Goo FI should fire (because running it would be a duplicate)
Actual result: FI start in OFF state and stay in OFF state no matter what I do. I tried:

  1. observing one Goo
  2. observing both Goos
  3. collecting results and relaunching

I probably do something wrong.

MAS_FI_Duplicate0.cfg.txt
MAS_FI_Duplicate1.cfg.txt

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.CollectExperiments(0) worked fine

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

Craft: Mk1Pod, 2 thermometers, 0 or 1 relay antennaes (HG-5), 4 batteries

fc.DataTransmitterAvailable(0)

Expectation: FI goes up if: antenna is opened AND is not busy tranmitting some other experiment AND there is power available. A dream: there is enough power to actually transmit all of the science OR there is partial transmission enabled AND enough power to transmit at least one unit of science.

Observations:

  • if HG-5 are present the FI goes up even if antennaes are folded. AH! I got it. The antennaes get automatically deployed in stock. OK. I guess good enough for stock then.
  • FI is down if there are no antennaes
  • FI goes temporarily down while transmitting stuff. Awesome.
  • FI is up when there is insufficient (but not 0) electricity. Everything goes down on 0 EC.

Bottom line:
I think this is working as intended.
MAS_FI_TransmitterReady.cfg.txt

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.DataTransmitterCount()

Being afraid of new technology (never used digital indicators before) tested this with a FI.

Expectations: goes down if there are no antennaes, goes up if there is at least one
Observations: working as expected.

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.DumpScienceContainer(0)

Expectation: noop if there is no data in container, discarded science from container only if something was there

Observation: works, but apparently returns 0 if nothing was deleted. So the TGGL has to be done as +1 otherwise there is no flipping animation the second time.

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.DuplicateScienceType(0)

Expectations would be the same as the fc.DuplicateExperiment(0) except that it will work per the science type and does not depend on the order, in which I installed science hardware.

Unfortunately, i do not know that science type "0" is.

I have tried: doing the standard experiments on the launchpad: goo, temp, press, MB, crew, eva.
The FI stays down before and after collecting the science to the science container.

Conclusion: something is wrong.
MAS_FI_DuplicateS.cfg.txt

UPDATE: now that I strongly suspect that type 0 is the crew report I redid this experiment. But I still can see this function working. The fag stays down.

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.ExperimentAvailableCount(0)

Again, tested with a FI.
Again, don't know what science 0 is.

Expectation: I can use this one to figure out what science N is (by observing in which craft configurations it goes up).
Observation:
0: crew report (?) - always on.
1: temperature or MB ???
2: ?
3: ?
If I have several MBs - they all show up as exp 1.

AH! I figured it out. I always have 0 because it is probably crew report. I have 1 if I installed one more experiment type. If I install MB, Goo and temperature then groups 1, 2 and 3 all go up. If I stage the craft to cut these off then first 3 goes off, then 2, then 1.

Conclusion: these groups are not stable and are not suited for making the Toggles or FIs. Ahh... :(

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

fc.ExperimentBiome(double experimentId)

Expectation: Ah! That's probably what I was missing in the previous experiment. These would be able to rescue the concept. Surely they would say "Goo" or "Crew report" or "PresMat". Loading KSP, holding the breath...

Observation: LOL. Look at these four!

image

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

Ah, wait. This is my bug, not yours. It seems that my expectation was wrong in some other place.

		TEXT_LABEL
		{
			name = Caption
			transform = IndicatorNameObj
			fontSize = 2
			lineSpacing = 0.9
			font = Liberation Sans
			style = Bold
			alignment = Center
			anchor = MiddleCenter
			transformOffset = 0.0087, -0.0015
			emissive = active
			variable = fc.GetPersistentAsNumber("Backlight"))
			blend = true
			activeColor = COLOR_ASET_SWITCHER_NAME_POSITIVECOLOR
			passiveColor = COLOR_ASET_SWITCHER_NAME_ZEROCOLOR
			text = fc.ExperimentBiome(3)
		}

I guess, I was wrong at expecting that these could be used as the 'text' attribute in the TEXT_LABEL.
In this case I don't know how to use these. Going to the next one...

UPDATE: actually that was a faulty idea from the beginning. These labels are supposed to be metal ones with paint on them. If I stage or dock or change the ship config some other way the descriptions might jump around making the thing very unrealistic.

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

Actually, the fact that these groups are not stable makes my further work kinda pointless. I won't be able to make props anyway. So I'll just leave a couple of comments:

fc.ExperimentTransmissionScalar(double experimentId)
The word "scalar" is not clear. What does this function do?

fc.ScienceType(double scienceTypeId)
that should have been the one that I wanted. But still, getting the text of the label from a function does not make sense.

I really need support for "string experimentName" instead of "double experimentId".

@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

Redid the fc.DuplicateScienceType(0) test. See above.

@MOARdV
Copy link
Owner

MOARdV commented Mar 2, 2019

fc.DuplicateExperiment(0)

This function returns 1 if the experiment selected (experiment 0 in this case) will generate duplicate data.

Usage: You have two Mystery Goo, say '0' and '1'. If you RunExperiment(1) and keep the results, then DuplicateExperiment(0) will return 1 if the vessel is in the same situation it was in when experiment 1 was run.

TEXT_LABEL problem: This will display the text.

text = <=0=>$&$ fc.ExperimentBiome(3)

However, it will display nothing until experiment 3 is run. Then it will display a biome name.

fc.ExperimentTransmissionScalar(double experimentId)
The word "scalar" is not clear. What does this function do?

This is a multiplier (= scalar) that is applied to the science value, I believe to adjust the science value if it is transmitted instead of recovered after the mission.

I really need support for "string experimentName" instead of "double experimentId".

Think what I will do is add GetScienceTypeId(string experimentName), which can be used to convert from a name to an id. This allows me to avoid making duplicates of "science type" functions, and it automatically will update the ID if the order changes due to docking or staging. I do not think a string for experimentId is going to work, since it is possible to have multiple experiments with the same name, and there is no way to choose which one is selected - it will always be the first one encountered.

I know you want to avoid modern props, but maybe using the CRT monitor prop for a science management computer is not a bad idea? I used it in my 1960's era Apollo for target management. It is a nice, friendly green-screen display, with only a few buttons and a switch, so it is not too digital. :)

I can sort the science modules by experiment name, so "Crew Report" is listed before "Mystery Goo", for example. This will help a little bit, but a mechanical IVA is always going to be difficult to use for science when you have no idea what experiments will be on board.

@MOARdV
Copy link
Owner

MOARdV commented Mar 2, 2019

Perhaps another thing I can do: more ScienceType functions:

  • fc.ScienceTypeId(string experimentName) - described above.
  • fc.ExperimentCount(scienceTypeId) - how many total experiments of this type? (ExperimentAvailableCount only tells you how many have not been run)
  • fc.ExperimentId(scienceTypeId, experimentIndex) - tells you the experimentId for the experiment chosen by scienceTypeId, experimentIndex. For example:
experiment 0 = Crew Report
experiment 1 = Mystery Goo
experiment 2 = Mystery Goo

scienceType 0 = Crew Report (has 1 experiment)
scienceType 1 = Mystery Goo (has 2 experiments)

fc.ExperimentId(0, 0) will return 0, because it returns the 1st experiment that is a Crew Report (science type 0).

fc.ExperimentId(1, 0) will return 1, because it is the 1st experiment that is Mystery Goo (science type 1), and fc.ExperimentId(1, 1) will return 2 because it is the 2nd experiment that is Mystery Goo.

@MOARdV MOARdV self-assigned this Mar 2, 2019
@MOARdV MOARdV added this to To Do in MAS Features / Bugs via automation Mar 2, 2019
@MOARdV MOARdV added this to the v0.95.5 milestone Mar 2, 2019
MOARdV added a commit that referenced this issue Mar 2, 2019
Also sorts ScienceType.  Issue #260
MOARdV added a commit that referenced this issue Mar 2, 2019
@snakeru
Copy link
Author

snakeru commented Mar 2, 2019

Oh, @MOARdV I totally didn't mean any offence. I am sorry, I should not have said "pointless", even "kinda".
I am totally impressed by your professionalism at driving this project over the years to a release, twice that since this is a remake after your own "v1" RPM mod. So please don't take my words so close to heart. I am stupid. Should you ever consider moving to Switzerland you could totally count on me for both the practical advice and the work recommendations.

On the functionality side - yes, these three functions should be totally enough to enable making the pre-computer-era props. I would give it another try tomorrow, I guess. So please do not close this ticket yet, I would like to add a couple more comments to it.

Am I correct in thinking that I can find out what values the fc.ScienceTypeId() takes could be found out by using this "<=0=>$&$ " trick?

@MOARdV
Copy link
Owner

MOARdV commented Mar 2, 2019

@snakeru - there was no offence given, and I am not offended - sometimes it is difficult for me to communicate over text instead of by voice, and sometimes even by voice I do not communicate well. :)

The trick with <=0=> $&$ ... works for any variable - this is the way that MAS says "replace the variable '<=0=>' with a value". If you look at the MFD pages, you will see many examples of this technique. It is an adaptation of the C# programming language string formatting (for example. at Microsoft official documents), Because MAS uses C# as its programming language, we must replace the { and } in C# with <= and =>. and we must make some other accommodations for the mod.

@snakeru
Copy link
Author

snakeru commented Mar 3, 2019

Ah, I think I won't be able to deliver on my promise of giving it another round - there is no release to test :)

If you think we can be more effective by syncing over VC - I am open to setting up a Skype/Hangouts channel.

@MOARdV
Copy link
Owner

MOARdV commented Mar 3, 2019

Ah, I think I won't be able to deliver on my promise of giving it another round - there is no release to test :)

Yes, I did not release another update. I want to wait a few days, so people do not get tired of me releasing new updates every 1-2 days :) . It will also give me time to work on a few more MAS features so that I can finish v1.0.0 this year. :)

@MOARdV MOARdV modified the milestones: v0.95.5, v0.96.0 Mar 3, 2019
@MOARdV MOARdV removed this from To Do in MAS Features / Bugs Mar 3, 2019
@MOARdV MOARdV added this to To Do in MAS Features / Bugs via automation Mar 3, 2019
@MOARdV MOARdV moved this from To Do to In Progress in MAS Features / Bugs Mar 3, 2019
@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

Ah, you sneaky type :) You referenced the ScienceDefs.cfg in the instructions and I looked for that file.
It's full of spoilers!
Seriously now: there were warnings at the beginning of the file and I know how to use grep. So nothing was ruined. But I think it would be good to add this list directly to the MASFlightComputerProxy3 Wiki page:

	id = crewReport
	id = evaReport
	id = mysteryGoo
	id = surfaceSample
	id = mobileMaterialsLab
	id = temperatureScan
	id = barometerScan
	id = seismicScan
	id = gravityScan
	id = atmosphereAnalysis
	id = asteroidSample
	id = infraredTelescope

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

Thinking further, it would make sense to sort experiment names slightly differently:
id = crewReport
id = temperatureScan
id = barometerScan
id = mysteryGoo
id = mobileMaterialsLab

and then the rest. The reasoning here is that the order is more important for Mk1, when you still don't have any screens. And Mk1 is available to these, who didn't upgrade the Science Lab yet.

Therefore:
crewReport: always available
thermometer and barometer are tiny and usually either both included or both excluded
Goo & MB are bulky and are included less often (sometimes only Goo, but not MB). And if they are - then thermometer and barometer and almost certainly included, too.

The rest of the instruments are not available for the Mk1 so they are not relevant.
EDIT: when I say "sort" I refer to the sorting that you proposed (and implemented) a week ago, not the sorting on the Wiki page.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

Mystery Goo doesn't open after observing. Also, when observing it takes no time to observe it, whereas normally the experiment takes time (the cover open animation is played first).
Didn't try yet, but the MB probably behave the same.

I think it should be the other way - even the temperature/pressure/report should take time, not that Goo/MB don't take.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

ExperimentScienceValue() returns an absolute value of an experiment that was already run.
ExperimentTransmissionScalar() doesn't seem to depend on how many times I run the experiment - probably has something to do with the biome or the antenna.
So there is still this "maxScience" that is missing.

That said, it is now possible to implement a set of indicators that will progressively lit up if there is like 1, 3, 10, 30... units of science available. Already quite cool!

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

I have a question about the "ExperimentTransmissionScalar". I still not quite understand what does it mean.
In the picture below we have a scalar of 0.3000000. But I do not see how this is applicable.
The absolute science value is 1.8/2.34 (which is 76.9231...%)
If I transmit it then I'll get about 0.8 science (which is neither 1.8*.03 nor 2.34*0.3). What is it then?

image

BTW, excuse me, the following has no direct relation to MAS:
Here are my observations of consequent re-runs of the experiment:
The consequent observations yield 17.7515%, 4.0965% and 0.9453% - 4.33412 times less each time.

@MOARdV
Copy link
Owner

MOARdV commented Mar 9, 2019

Thank you for all of the feedback. I have a few initial answers below, but I will need some extra time to look at some of these items more closely (it may take a day or two - today looks like it will be busy)

Ah, you sneaky type :) You referenced the ScienceDefs.cfg in the instructions and I looked for that file.

Oh, yeah. I forgot the spoilers. That's what happens when I only play sandbox. :) Joking aside, I could add something like fc.ScienceDefName(scienceTypeId) (or a similar function name) to reflect those names into the game. It would not be used for production IVAs, but during development, it could be used to identify the names of the experiments and provide a correspondence between the display name and the science ID name.

I think it would be good to add this list directly to the MASFlightComputerProxy3 Wiki page

Yes, that would be a good idea. It will provide information for the unmodded installation.

it would make sense to sort experiment names slightly differently

I am reluctant to use an arbitrary ordering of the names, in part because of the issue of modded installations that add more science experiments - some of the experiments they add may be appropriate in the early portions of the list. It also implies assumptions about game-play patterns which KSP players are notoriously good at ignoring :)

Mystery Goo doesn't open after observing. Also, when observing it takes no time to observe it, whereas normally the experiment takes time (the cover open animation is played first).

Yes, this is a trade-off between using the UI and using a direct function. I may be able to add some code that will trigger the animation and wait for the animation to complete before adding the science, but that leads to some additional complexity. In particular, I need to disallow collecting science a second time while the animation plays. Otherwise, it might be possible to press the Mystery Goo science button repeatedly and collect extra science :)

So there is still this "maxScience" that is missing.

Yes, there is definitely a value missing - the transmission scalar is a constant that adjusts the value of the science based on transmission distance. I am not currently applying that value to ExperimentScienceValue(), since the value of the science depends on whether it's returned to the space center or results are transmitted.

It is possible that I am using the wrong function to compute the science value - there is a function that tells me the science value, and one that tells me the next science value. So maybe I should be using the second one instead of the first?

To return to the ordering of the science experiments, one thing I had in mind with the addition of ScienceTypeId() is that the ordering would not matter. Using the science type id and the other functions I added, it would be possible to configure props for specific categories of experiments:

Is an experiment installed?

fc.ExperimentCount(fc.ScienceTypeId("crewReport")) > 0

Are there experiments available to run?

fc.ExperimentAvailableCount(fc.ScienceTypeId("crewReport")) > 0

What is the status of experiment 0 (first experiment)

fc.ExperimentStatus(fc.ExperimentId(fc.ScienceTypeId("crewReport"), 0))

(to check the status of experiment 1, change the '0' above to a '1')

Likewise, you can run an available experiment using either RunAvailableExperiment() or RunExperiment() using one of fc.ScienceTypeId(name) or fc.ExperimentId(fc.ScienceTypeId(name), 0). It is definitely more typing to configure the props, but MAS is efficient at processing these sorts of commands (as long as they are not in a Lua script).

I have a question about the "ExperimentTransmissionScalar". I still not quite understand what does it mean.

Neither do I :) It may be that it's mis-named, and it is not a scalar in the normal sense of the term, or it scales something I have not seen. I will need to collect some data to see if I can make sense of how it is used.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

I have found a bug:
Expectation: the science should not be obtainable the second time.
Observation: there is a way :)
Steps:

  1. Build a craft that has a mystery goo in it.
  2. Map AG1 to "observe mystery goo"
  3. Launch the craft
  4. Observe the Goo using the toggle:
    onClick = fc.SetPersistent("%AUTOID%", fc.RunAvailableExperiment(fc.ScienceTypeId("mysteryGoo")))
  5. Recover the craft, get the 1.8 science (assuming you didn't have any science yet and this was the launchpad)
  6. Launch the same craft again
  7. Observe the goo now using the AG1

You get 1.8 science again!

This is easier to reproduce if you reset the Goo using the UI, but I wanted to show it without resetting which we considered to be not supported.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

Ah! This is more subtle than I thought.
The MAS controls yield the science from the "Shores" biome. But the stock UI yields it from the "Launchpad" biome.
So still a bug but not as grave as before.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

About the sorting:
I was thinking that the props could be done in one of two ways:

  1. Make props for "Goo", "PresMat", "Thermometer" and so on (that's what I experiment with right now)
    -or-
  2. Make props for science type 0, 1, 2, ...

Both types will have the same problem - some of them won't work in certain craft configurations - if a specific science is missing in the first case or if there are not enough different sciences available in the second case.
Since we have only 5 Mk1 IVA sciences, it would make sense to install only 5 sets of science controls in the cabin and it would look weird, if the science labels jump around on docking. That's why I thought that we might partially address that problem by sorting the science types in such manner, to reduce the probability of controls jumping around.

But I surely start to think that @OneGalean's sketch might be more suited for the task as we'll be only wasting a single position on a rotary dial, not the whole block of controls.

@snakeru
Copy link
Author

snakeru commented Mar 9, 2019

So apart from this small bug above everything seems to work as intended so I'll stop experimenting for now.

@MOARdV
Copy link
Owner

MOARdV commented Mar 9, 2019

The MAS controls yield the science from the "Shores" biome. But the stock UI yields it from the "Launchpad" biome.

That is interesting - I must be asking KSP for the biome incorrectly.

Since we have only 5 Mk1 IVA sciences, it would make sense to install only 5 sets of science controls in the cabin and it would look weird, if the science labels jump around on docking.

This is the intent of the fc.ScienceTypeId() that I mentioned earlier. I may not have been clear with my example (it was morning, and I did not have coffee yet :) ). Let me try to describe more completely the idea.

First, you create a group of controls and instruments for each science type you want to support. For illustration, let's say there's a "Run this experiment" toggle switch, a "Are there any experiments available to run" flag indicator, and a "Is this experiment installed" Flag indicator.

For crewReport, you could configure the switch's collider like this:

  onClick = fc.SetPersistent("%AUTOID%", 1+fc.RunAvailableExperiment(fc.ScienceTypeId("crewReport")))
  onRelease = fc.SetPersistent("%AUTOID%", 0)

This gives us a switch that will always toggle, even if there are no experiments, so the player gets feedback of "Yes, you clicked it".

The "any science available" flag would use

  variable = fc.ExperimentAvailableCount(fc.ScienceTypeId("crewReport"))

With the flag color configured to be green. The "available" flag shows that there are experiments available of the selected type.

The "science installed" flag is very similar.

  variable = fc.ExperimentCount(fc.ScienceTypeId("crewReport"))

This flag is active if any experiments of the named type exist, regardless of whether they've been run.

Duplicate each of these props for the other science types, and you have the full collection. You could also add some LabelText props to identify groups of instruments, such as "Crew Report".

Or, to use the switcher knob to select the science, you would probably want to use a small Lua script that controlled the persistent.

For the 5-position rotary switch, let's say you label the positions "Crew Report", "Temperature", "Barometer", "Goo", "Materials". We're going to use a persistent named "SelectedScience" to decide which type of science we're doing.

The rotary switch would have a startupScript:

  startupScript = fc.InitializePersistent("SelectedScience", "crewReport")

This tells MAS to set "SelectedScience" to "crewReport" if it doesn't already exist - that way, it's initialized to a known valid type of science.

The rotary switch has two colliders, the + collider and the - collider. The + collider looks like

  onClick = SelectScienceMode(fc.AddPersistentClamped("%AUTOID%", 1, 0, 4))

The - collider is identical, except that we use -1 instead of 1.

We use a Lua script here that runs when the colliders are clicked. It's a simple script:

function SelectScienceMode(modeNumber)
  if modeNumber == 1 then
    fc.SetPersistent("SelectedScience", "temperatureScan")
  else if modeNumber == 2 then
    fc.SetPersistent("SelectedScience", "barometerScan")
  else if modeNumber == 3 then
    fc.SetPersistent("SelectedScience", "mysteryGoo")
  else if modeNumber == 4 then
    fc.SetPersistent("SelectedScience", "mobileMaterialsLab")
  else
    -- Either modeNumber is 0, or it is invalid (which should not be possible)
    fc.SetPersistent("SelectedScience", "crewReport")
  end
end

The "Run Experiment" switch and the flag indicators now change how they decide the id. For instance, the "Any science available" flag would look like this:

  variable = fc.ExperimentAvailableCount(fc.ScienceTypeId(fc.GetPersistent("SelectedScience")))

Now you only have one switch and two flag indicators for all five categories of science.

The only down-side to this design is that you want to make sure you only use one rotary switch. Otherwise, whichever switch is used last decides which science is active. You could possibly change the AddPersistentClamped to use a global value, but that means all of the rotary switches will move if one is moved.

If this is still unclear, please let me know. It is easy to make very complicated props, and I don't always do a good job explaining the details.

@snakeru
Copy link
Author

snakeru commented Mar 10, 2019

Hi @MOARdV, thank you for very detailed description. Don't worry - I think your explanations are quite good, don't think that you aren't good at it.

The one you described first (with the one set of props per the science type) is what I am actually trying to implement. That's the variant 1 from my example. The variant with the rotary switch would be then number 3. This is what I call "OneGaelan's" props because that was in his sketch. I didn't try that yet, but thank you a lot for the sample lua scripts!

The number 2 that I mentioned was the idea to have an adaptive controls that would rename themselves depending on what is installed on the craft.
So for example, if you would have a craft with Goo module and three of these props sets installed then the first will read "Crew report", second - "Goo" and third - "unused" or the like. If you instead had presmat, thermometer and MB, then they would read "Crew report", "Temperature" and "Pressure" and MB won't be mentioned at all (one will have to configure action groups for these).


I will stay silent now for some time - busy doing the Mk2 (the Geminy-style "Making history") cockpit - it proves to be rather critical when one plays with Baris. One man capsule is no longer safe for long trips.


I think the science controls are now in a good shape - we can close this thread. Should I find something I'll file it as a separate issue.

@MOARdV
Copy link
Owner

MOARdV commented Mar 10, 2019

The number 2 that I mentioned was the idea to have an adaptive controls that would rename themselves depending on what is installed on the craft.

I think this is now possible using a startup script in MASFlightComputer, and use of fc.InitializePersistent(). You would be able to configure the props the first time the vessel loads, and those settings will persist, even through docking and undocking. It would probably be a messy-looking script due to some of the limitations in Lua, but I think I could put something together this week if you are interested.

I think the science controls are now in a good shape - we can close this thread. Should I find something I'll file it as a separate issue.

Okay. Please do not hesitate to open an issue, or PM me on the forum, if you have questions.

@MOARdV MOARdV closed this as completed Mar 10, 2019
MAS Features / Bugs automation moved this from In Progress to Done Mar 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants