Jump to content

(KSP 1.10 + 1.12 ) Mission Controller 3.2.0 (Final Version) (Updated 6/25/2021)


malkuth

Recommended Posts

so is there a wa for me to pass it so can go on to the next ones are should i pick a new package too do

Should be able to pass it, only thing is the passive mission part won't pay you on daily basis. What part is not working?

Edit Update: I went in and fixed the missions from this pack for you. Got rid of the time for now, and the Passive Mission Part.

Place it in the \Kerbal Space Program\GameData\MissionController\Plugins\PluginData\MissionController directory and replace the old one.

Download udpated mission pack.

Updated the dropbox full download too with new mission pack.

Edited by malkuth
Link to comment
Share on other sites

New Version .63 Changes

1. Added a Few Hotfixes to make an official Version change Name change in contract Mission Part name OrbitalResearch (this is only a contract name change vessels are STILL SAFE)

2. Added a few fixed to Stock ComSat Missions Got rid of time count and Passive Mission parts (passive mission no longer works)

3. Fixed Random Contracts Mid Years Large Orbital Mission for you get Max APA and Min PEA instead of Max APA and Min APA.

4. Fixed a possible time bug with the time countdown. remember you can only do 1 timed mission at a time.. Not including Orbital Reserearch or roverResearch Both these types have own countdown timers. If your having issues with the timer its possible that the timer is set up for another mission. If you check your .sp file this line should read like this. timeStarted = -1 (thats a Minus 1 its important) if not then set it to -1 to restart the timer. Its not important if you don't do this. Just that if the timer is set to an older time (other mission not finished) the timer will continue from that time, and either give you an instant finish, or possible longer countdown then what current mission is. I will fix this at a later more extensive update.

Last thing I noticed and will get a fix for next update.. In the Mini Objective view you will see old objectives that have been completed still as RED.. This does not mean your objectives are not working.. Just the mini screen does not hide finished objectives yet.. So you can ignore those red objectives. The normal screen should show that they are done, with the hide Finished mission objectives.

- - - Updated - - -

thank you very much for you quick work i love this mod so much

Tell me if this update fixes the problem romie.. Happy flying. :)

Edited by malkuth
Link to comment
Share on other sites

I know the 70 tons might seem like a lot but really you can change it if you want in the MCSettings.cfg file if you wish to a lower number. Pretty much everything can be edited.

Most of the testing though as shown that at 70 Tons Drag will put most craft at this weight down in game at about 7-10 m/s. Which is the safe landing speed for most parts.. Any more and things go boom.

But again feel free to change your MCSettings File to your hearts content. Thats why I added it. Your game. ;)

After further testing with the debug window, it looks like I was wrong, and the parachutes actually do recycle. So this does mean it saves you a little bit of money.

For the curious, assuming parts that have no price modifiers on them, you save about 11.5% of the original cost of a booster by adding enough parachutes to auto-recycle it. [1] The percentage gets higher the more mass of your booster comes from other categories (like aerodynamic), but generally you want to keep as much mass as possible as rockets on your boosters.

My frustration, I think, comes from the fact that I saw "oh, now I can recycle and get 60% of the cost back! I'll need to add some parachutes, but that shouldn't add much to the cost when I'm comparing it to giant boosters", but then it turned out to almost not be a good idea, after I had dumped 300 science on the ability. This is a case where the general information you can easily find dramatically misrepresents the actual gameplay, so in order to make an informed decision you actually have to delve into the game files and crunch the numbers yourself.

I suspect what I will actually do is reduce the cost of parachutes in my own instance of the game. I see where the necessary drag comes from, and it makes sense. However, a radial parachute costing as much as an LV-909 engine does not make sense to me.

[1] The math, so that other people can check it, and or see where it came from:

M is the dry mass of the booster (no parachutes)

m is the mass of just the parachutes.

So we need (M+m)*70 drag, and the drag we get is m*500.

Solving, we find that we need m = M*(70/430). (In practical terms, 1 ton of parachutes per 6 tons dry mass.)

The old cost was 0.5*2800*M (assuming all the mass is from the propulsion tab).

The new cost is (0.5*2800*M)+(3.7*2800*m) = (0.5+3.7*(70/430))*2800*M. This is 2.2x the old cost.

However, by recycling we get (0.63*0.95)*the new cost back, so after recycling, the new cost is (1-0.63*0.95)*(0.5+3.7*(70/430))*2800*M. This is 88.5% of the old cost.

Edit: It occurs to me that I'm falling into the trap of negative comments being expressed more frequently than positive ones. I want to be totally clear: this mod is bloody fantastic, and breathes life into the game for me. I very quickly get bored with pure sandbox things, and the fact that this adds clear things for me to strive for is fantastic.

Edited by Salanmander
Link to comment
Share on other sites

After further testing with the debug window, it looks like I was wrong, and the parachutes actually do recycle. So this does mean it saves you a little bit of money.

For the curious, assuming parts that have no price modifiers on them, you save about 11.5% of the original cost of a booster by adding enough parachutes to auto-recycle it. [1] The percentage gets higher the more mass of your booster comes from other categories (like aerodynamic), but generally you want to keep as much mass as possible as rockets on your boosters.

My frustration, I think, comes from the fact that I saw "oh, now I can recycle and get 60% of the cost back! I'll need to add some parachutes, but that shouldn't add much to the cost when I'm comparing it to giant boosters", but then it turned out to almost not be a good idea, after I had dumped 300 science on the ability. This is a case where the general information you can easily find dramatically misrepresents the actual gameplay, so in order to make an informed decision you actually have to delve into the game files and crunch the numbers yourself.

I suspect what I will actually do is reduce the cost of parachutes in my own instance of the game. I see where the necessary drag comes from, and it makes sense. However, a radial parachute costing as much as an LV-909 engine does not make sense to me.

[1] The math, so that other people can check it, and or see where it came from:

M is the dry mass of the booster (no parachutes)

m is the mass of just the parachutes.

So we need (M+m)*70 drag, and the drag we get is m*500.

Solving, we find that we need m = M*(70/430). (In practical terms, 1 ton of parachutes per 6 tons dry mass.)

The old cost was 0.5*2800*M (assuming all the mass is from the propulsion tab).

The new cost is (0.5*2800*M)+(3.7*2800*m) = (0.5+3.7*(70/430))*2800*M. This is 2.2x the old cost.

However, by recycling we get (0.63*0.95)*the new cost back, so after recycling, the new cost is (1-0.63*0.95)*(0.5+3.7*(70/430))*2800*M. This is 88.5% of the old cost.

Edit: It occurs to me that I'm falling into the trap of negative comments being expressed more frequently than positive ones. I want to be totally clear: this mod is bloody fantastic, and breathes life into the game for me. I very quickly get bored with pure sandbox things, and the fact that this adds clear things for me to strive for is fantastic.

When I was checking out what you were trying to say to me about parachutes I was a little surprised by the price myself for chutes. So before I release the new version that will have the new prices for these you can simply add this to your MCSettings.cfg file.

For Vanilla Parachutes


ModuleParachute
{
massCostMult = .25
}

For realchutes


RealChuteModule
{
massCostMult = .25
}

Gets the ParaChutes down to a more reasonable price range. But still prices it cost per mass.

Edited by malkuth
Link to comment
Share on other sites

Those are not mission packages they are .sp files and .cfg files. Because of the limitations of KSP.IO the file browser does not allow you to filter out other file extensions to not be seen. It only allows you to make them selectable.

Link to comment
Share on other sites

Those are not mission packages they are .sp files and .cfg files. Because of the limitations of KSP.IO the file browser does not allow you to filter out other file extensions to not be seen. It only allows you to make them selectable.

OK. So where are the asteroid missions then? I see a bunch for the stock (pre 23.5) objects but not asteroids. Did I miss it? Just updated to MCE 63 to check and still not there. ?

Link to comment
Share on other sites

OK. So where are the asteroid missions then? I see a bunch for the stock (pre 23.5) objects but not asteroids. Did I miss it? Just updated to MCE 63 to check and still not there. ?

The asteroid mission is part of the Contracts system. They are randomly generated like the other contract missions.

If you have to have one right away you can turn on debug mode (edit the settings.cfg file to make it available) and use the simulate Contracts button to cycle through the generator until the arm mission comes up. Just have contracts open for you can see what ones are popping up. Shouldn't take to long.

The settings.cfg file is located in \Kerbal Space Program\GameData\MissionController\Plugins\PluginData\MissionController

the line you want is MCEDebug. Make it true.

The bebug menu shows up in game under settings menu after you make the changes.

Edited by malkuth
Link to comment
Share on other sites

Ellow!

Was just reading up on this latest patch and realised I've never posted in this thread eventhough I've used this mod since... forever?

Anyway, just wanted to say that I absolutely love this mod. Out of my hundreds of KSP hours, I've possibly played 2 or 3 hours without this mod :D

Thanks for absolutely epic work and support!!!

Never really had any problems with the mod I believe, thanks to great documentation and the awesome support.

Cheers!

[bowing smiley kissing shoes]

Link to comment
Share on other sites

Hmmm for some reason you don't have any asteriods that seem to be passing the MCE check? The good news is the check is working and your not getting any null refrences.. The bad news is that for some reason you have no asteroids.. Interesting.

You can unlock Dev Debug mode in the settings.cfg file and use the Select Asteroid feature and see if that works.

Because of an issue I had the ingame select Asteroid happens when you actually select the Asteroid redirect mission from the Contracts list. Then its locked.

Apparently to make it work I have to actually be ON the tracking center map view screen, make the contracts button visible there (it normally isn't) and then bring up the asteroid mission contract window while on the tracking center screen. THEN it makes the asteroid name appear in the contract window.

If I don't do that and instead select contracts the way I normally do, from inside the VAB, the target asteroid for the mission remains unassigned.

Link to comment
Share on other sites

Like Salanmander I have been doing some experiments with parachutes, seeing exactly how many are needed (with help from the Alt F12 debug), and the current cost savings. His math sounds right. Two examples:

RT-10 price: 1261

RT-10 with parachute: 2267

Recovered: 1262

Total cost with parachute: 1005

2x FL-T800 + LV-T30 price: 8094

with parachutes: 12756

Recovered: 6559

Total cost with parachute: 6197

So cost savings seem to be just 20-25% at present, at least with small boosters.

One curious discovery I made: the new KS-25x4 and KR-1x2 engines are tough! They can land at upwards of 20m/s without exploding. I believe it was a KS-25x4 rocket that I managed to land with less than 6 drag per ton. And 25 drag per ton with the KR-1x2. But anyway, these are special cases.

Where in MCSettings do I add the code you gave to reduce cost of parachutes? Anywhere will do?

Also, in the debug I found a clue as to why the autorecycle via propulsive landing (i.e. dropping boosters with 1000dv left so they can land on their own power like SpaceX is trying to do) isn't working.

[Log]: DeltaV available: 0(Mass ratio: 2.30000000074506 / 2.30000000074506, TWR 9.51917146072348)

That was a 2x FL-T800 + LV-T30 booster dropped with one tank still full. Mass ratio should be something like 6.250/2.3 (over 3000dv).

Perhaps the fuel is not being correctly detected and accounted for. In the debug I see no mention of fuel, it's mass or value. However if I autorecover a booster with parachutes, that has fuel left inside, I do get more money back. So it's accounted for then!

Jet engine boosters dropped with fuel are also not being autorecovered. No deltaV calculation even shows up in debug.

Link to comment
Share on other sites

Like Salanmander I have been doing some experiments with parachutes, seeing exactly how many are needed (with help from the Alt F12 debug), and the current cost savings. His math sounds right. Two examples:

RT-10 price: 1261

RT-10 with parachute: 2267

Recovered: 1262

Total cost with parachute: 1005

2x FL-T800 + LV-T30 price: 8094

with parachutes: 12756

Recovered: 6559

Total cost with parachute: 6197

So cost savings seem to be just 20-25% at present, at least with small boosters.

One curious discovery I made: the new KS-25x4 and KR-1x2 engines are tough! They can land at upwards of 20m/s without exploding. I believe it was a KS-25x4 rocket that I managed to land with less than 6 drag per ton. And 25 drag per ton with the KR-1x2. But anyway, these are special cases.

Where in MCSettings do I add the code you gave to reduce cost of parachutes? Anywhere will do?

Also, in the debug I found a clue as to why the autorecycle via propulsive landing (i.e. dropping boosters with 1000dv left so they can land on their own power like SpaceX is trying to do) isn't working.

[Log]: DeltaV available: 0(Mass ratio: 2.30000000074506 / 2.30000000074506, TWR 9.51917146072348)

That was a 2x FL-T800 + LV-T30 booster dropped with one tank still full. Mass ratio should be something like 6.250/2.3 (over 3000dv).

Perhaps the fuel is not being correctly detected and accounted for. In the debug I see no mention of fuel, it's mass or value. However if I autorecover a booster with parachutes, that has fuel left inside, I do get more money back. So it's accounted for then!

Jet engine boosters dropped with fuel are also not being autorecovered. No deltaV calculation even shows up in debug.

Not all things have debug.. The only reason you have the debug now for the chutes is because I left it in for the Realchutes testing.

Anyway you put the code into MODULECOST

If its not giving all the cost.. Then its not a MCE bug but a KSP bug. Because all MCE uses is what KSP gives us and thats basically the parts list, in this case the SnapShot for protovessels parts. But there was another piece of debug code that I took out because it was spamming the Debug console to much and that was the parts breakdown for each ship recycled, or destroyed. And I remember pretty well that all the parts of the vessel were counted in my test.

Edited by malkuth
Link to comment
Share on other sites

You misunderstood me. What's not being counted is the mass of the remaining fuel for deltaV calculation (for autorecycling without parachutes). All parts are counted as far as I can tell.

Thats possible, but the code is there for it. But again the code is there to see it I will have to unlock it again. But if I remember correct it works fine.


foreach (ProtoPartResourceSnapshot r in p.resources)
{
double amt = Tools.GetValueDefault(r.resourceValues, "amount", 0.0);
//print(Tools.NodeToString(r.resourceValues, 0));
if (!(amt > 0))
continue;
//DBG print("Found resource " + r.resourceName + ", amount " + r.amount + ", cost = " + rCost);
double dens = r.resourceRef.info.density;
if (resources.ContainsKey(r.resourceName))
{
resources[r.resourceName] = resources[r.resourceName] + amt;
rmasses[r.resourceName] = rmasses[r.resourceName] + amt * dens;
}
else
{
resources[r.resourceName] = amt;
rmasses[r.resourceName] = amt * dens;
}
rmass += amt * dens;
}

Edited by malkuth
Link to comment
Share on other sites

I took a look in the source code.

                                double TWR = thrust / (mass + rmassdry) / e.g;
double dV = isp * 9.81 * Math.Log((mass + rmass) / (mass + rmassdry));
print("DeltaV available: " + dV + "(Mass ratio: " + (mass + rmassdry) + " / " + (mass + rmass) + ", TWR " + TWR + ")");
if (dV >= Tools.Setting("deltaVRequired", 1000.0) && TWR >= Tools.Setting("minRocketTWR", 1.5))
{
landing = 2;
}

For some reason, rmass and rmassdry are both zero, even when fuel present. Can't figure out why. I don't code. I know HTML and dabbled a little in QBASIC 20 years ago, but that's it. What is this? C++?

Link to comment
Share on other sites

I took a look in the source code.

                                double TWR = thrust / (mass + rmassdry) / e.g;
double dV = isp * 9.81 * Math.Log((mass + rmass) / (mass + rmassdry));
print("DeltaV available: " + dV + "(Mass ratio: " + (mass + rmassdry) + " / " + (mass + rmass) + ", TWR " + TWR + ")");
if (dV >= Tools.Setting("deltaVRequired", 1000.0) && TWR >= Tools.Setting("minRocketTWR", 1.5))
{
landing = 2;
}

For some reason, rmass and rmassdry are both zero, even when fuel present. Can't figure out why. I don't code. I know HTML and dabbled a little in QBASIC 20 years ago, but that's it. What is this? C++?

This is C#

Link to comment
Share on other sites

I took a look in the source code.

                                double TWR = thrust / (mass + rmassdry) / e.g;
double dV = isp * 9.81 * Math.Log((mass + rmass) / (mass + rmassdry));
print("DeltaV available: " + dV + "(Mass ratio: " + (mass + rmassdry) + " / " + (mass + rmass) + ", TWR " + TWR + ")");
if (dV >= Tools.Setting("deltaVRequired", 1000.0) && TWR >= Tools.Setting("minRocketTWR", 1.5))
{
landing = 2;
}

For some reason, rmass and rmassdry are both zero, even when fuel present. Can't figure out why. I don't code. I know HTML and dabbled a little in QBASIC 20 years ago, but that's it. What is this? C++?

Looking at the code some more, I definitely agree with Bio that the fuel is not getting recognized. I know you said that not everything gets a debug line, but it looks like it does give out a debug line when it decides to use fuel. Specifically, in this chunk of code:


[B]foreach[/B] (Propellant pr [B]in[/B] e.propellants)
{
[B]if[/B] (rmasses.Keys.Contains(pr.name))
{
rmassdry -= rmasses[pr.name];
print([COLOR=#DD1144]"Using propellant "[/COLOR] + pr.name + [COLOR=#DD1144]"(mass: "[/COLOR] + rmasses[pr.name] + [COLOR=#DD1144]")"[/COLOR]);
}
}

Because the mass it's reporting in the line

print("DeltaV available: " + dV + "(Mass ratio: " + (mass + rmassdry) + " / " + (mass + rmass) + ", TWR " + TWR + ")");

is the correct dry mass, this implies that the fuel is never getting added, AND never getting taken away.

I suspect the culprit is somewhere in the block up above where it's counting up the resources. Specifically:


[B]foreach[/B] (ProtoPartResourceSnapshot r [B]in[/B] p.resources)
{
[COLOR=#445588][B]double[/B][/COLOR] amt = Tools.GetValueDefault(r.resourceValues, [COLOR=#DD1144]"amount"[/COLOR], [COLOR=#009999]0.0[/COLOR]);
[COLOR=#999988][I]//print(Tools.NodeToString(r.resourceValues, 0));[/I][/COLOR]
[B]if[/B] (!(amt > [COLOR=#009999]0[/COLOR]))
[B]continue[/B];
[COLOR=#999988][I]//DBG print("Found resource " + r.resourceName + ", amount " + r.amount + ", cost = " + rCost);[/I][/COLOR]
[COLOR=#445588][B]double[/B][/COLOR] dens = r.resourceRef.info.density;
[B]if[/B] (resources.ContainsKey(r.resourceName))
{
resources[r.resourceName] = resources[r.resourceName] + amt;
rmasses[r.resourceName] = rmasses[r.resourceName] + amt * dens;
}
[B]else[/B]
{
resources[r.resourceName] = amt;
rmasses[r.resourceName] = amt * dens;
}
rmass += amt * dens;
}

I can't really say more without being able to run debug tests, and I don't have the knowhow to compile it myself. It looks like it has debug lines commented out, so I'm assuming those got looked at at some point, and that block of code is, in fact, running. However, I do notice that amt is set using "Tools.GetValueDefault(r.resourceValues, "amount", 0.0)", but then in the debug line it's reported as "r.amount". It's possible that r.amount is just outdated, and the commented out debug code didn't get updated, but it looks highly suspect to me. Is it possible that amt is always set to the default of 0.0?

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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