Jump to content

The Skyhawk Science System - a new, realistic tech tree for KSP, now including Kerbalism support - [v1.1.1 - "For Science!" 8/11/22)]


CessnaSkyhawk
 Share

Recommended Posts

On 7/31/2022 at 1:27 PM, epicpupster239 said:

more or less unplayable for me, as the part switch for tanks does not work at all, every fuel tank is stuck using kerolox. There should be a version that doesn't add the complexity of the different fuels.

 

Do you have B9PartSwitch on and part upgrades enabled - those are both needed for the mod to function. Aside from that, if you just started the tech tree, you will be limited to only kerolox. You unlock more fuel tank switches as you unlock new engine types.

On 8/1/2022 at 10:36 PM, EchoLima said:

Is there a way to use the SkyhawkKerbalism12HourDays config without the rest of the Skyhawk mod? I'd like to have Kerbalism work with JNSQ correctly but don't (yet!) want to play with BDB/Skyhawk.

Alternatively, is multiplying all the Supplies values by 2 in the default config enough to make Kerbalism balanced with JNSQ (or is there something else I'm missing)?

Nah - unfortunately Skyhawk Kerbalism is dependent on Skyhawk Science System. It's hard to explain, but the best way to make configs balanced is to halve the values of all the various supply rules, so that they only use them once every JNSQ day or so. It's not perfect but I think it's close enough

19 hours ago, Probird_23 said:

I wrote a couple tech tree configs for my personal use, is anyone willing to proofread them? 

If you want to send them here, I could take a quick look

Link to comment
Share on other sites

Posted (edited)

New Releases for Skyhawk Kerbalism and Skyhawk Science System up on github - should fix most, if not all of the issues people have been experiencing as of late. Let me know if there's any issues!

Edited by CessnaSkyhawk
Link to comment
Share on other sites

On 8/11/2022 at 11:39 AM, CessnaSkyhawk said:

New Releases for Skyhawk Kerbalism and Skyhawk Science System up on github - should fix most, if not all of the issues people have been experiencing as of late. Let me know if there's any issues!

There was an issue where the kerbalism LS cargo was being overriden by normal fuel switches, is that fixed?

Link to comment
Share on other sites

I'm trying to launch sounding rockets (using the cores from the CNAR mod and the kerbalism config) and my experiments all say "no storage space available" and there doesn't seem to be an option to transmit the science as it's generated. What am I doing wrong?

Link to comment
Share on other sites

4 hours ago, IronCretin said:

I'm trying to launch sounding rockets (using the cores from the CNAR mod and the kerbalism config) and my experiments all say "no storage space available" and there doesn't seem to be an option to transmit the science as it's generated. What am I doing wrong?

Had this problem before.

The probe core doesn't have kerbalism support, so you could either:

A. Scour the internet for a patch that adds kerbalism support to CNAR
B. Beg CNAR/Kerbalism devs to add support for each other
C. Use a different probe core (this is the most practical option)

Of course, quote me if I'm wrong. 

Link to comment
Share on other sites

1 hour ago, IronCretin said:

It seems like none of the tier 0 cores have hard drives, so I just edited the config to give them one. Followup question: how do I change the fuel type in tanks? I can't find an option in the menu.

For fuel tank types, first of all, make sure part upgrades are enabled and B9 Part switch is installed. So long as that's the case, you'll begin unlocking new fuel tank types as you unlock engines that use said fuels (eg, hypergol should unlock when you research "Early Hypergolic Engines")

On 8/18/2022 at 9:46 PM, Socowez said:

Had this problem before.

The probe core doesn't have kerbalism support, so you could either:

A. Scour the internet for a patch that adds kerbalism support to CNAR
B. Beg CNAR/Kerbalism devs to add support for each other
C. Use a different probe core (this is the most practical option)

Of course, quote me if I'm wrong. 

As for the tier 0 cores, I think that may be due to some edge cases in the system I used to assign data values, as I (incorrectly, it seems) assumed most people would only really be using the "eaglet" parts for their first sounding rockets. I'll have to remember to change that in the next update, but for now I'd say the best bet is to just add a patch like the following somewhere in your GameData folder:

Quote

@PART[***insert part ID here***]:NEEDS[ProfileSkyhawk]:FOR[KerbalismSkyhawk]

{

     MODULE

     {

          name = HardDrive

          title = Sounding Rocket Storage

          dataCapacity = 0.25 // data size in Mb

          sampleCapacity = 1 // sample size in slots

     }

}

 

Link to comment
Share on other sites

I'm not seeing the Eaglet parts, I may need to reinstall the mod due to these errors I've been getting:

 

[LOG 13:31:00.384] Applying update RationalResourcesSquad/RR_SquadTanks/@PART:HAS[#manufacturer[C7?Aerospace?Division],!MODULE[ModuleB9PartSwitch],@RESOURCE[Oxidizer]]:NEEDS[B9PartSwitch,RationalResources,!ConfigurableContainers/Parts,!ModularFuelTanks,!RealFuels]:FOR[RationalResourcesSquad] to ExplodiumBreathingEngines/Parts/Structural/mk1parts/MK1IntakeFuselageExL.cfg/PART[MK1IntakeFuselageExL]
[ERR 13:31:00.384] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[LiquidFuel]/maxAmount$
[WRN 13:31:00.385] Cannot find key refVolume in PART

 

[LOG 13:32:42.676] Applying update SkyhawkScienceSystem/Patches/Hypergolics/Hypergolics/@PART[*]:HAS[#SSS_HypergolicTank[True]]:AFTER[zzzSkyhawkScienceSystem] to ReStockPlus/Parts/Engine/125/restock-engine-pug.cfg/PART[restock-engine-125-pug]
[ERR 13:32:42.677] Error - Cannot parse variable search when replacing (%) key lfo_volume = #$RESOURCE[LiquidFuel]/maxAmount$
[ERR 13:32:42.677] Error - Cannot parse variable search when replacing (%) key ox_volume = #$RESOURCE[Oxidizer]/maxAmount$
[WRN 13:32:42.677] Cannot find key lfo_volume in PART

 

Edited by IronCretin
Link to comment
Share on other sites

Kerbalism doesn't have support for any engines when using SkyhawkKerbalism. No ignition counters, reliability, nothing. Is this intentional? Is there a setting I can change to enable it?

Link to comment
Share on other sites

I fixed my core issue, but I'm still not able to change the fuel tanks. This is my menu for the tank:

EAqPZ3U.png

 

And this is the hypergolics tech node. I do have B9partswitch and part upgrades enabled, but the tech tree doesn't have the upgrade for the hypergolics switch that the files say should be there.

4hBCyHk.png

The tank even says that it's switchable in the tooltip, it just doesn't show up in the menu.

MjfA41D.png

 

EDIT: I found the upgrade, it was in the sounding rockets node, not the hypergols one.

Edited by IronCretin
Link to comment
Share on other sites

I'm getting "no storage space" when using the Beacon satellite on the Kerbalism 12hr config. Fixed it by deleting the "Science3" requirement in the main tech tree Bluedog_DB config (there was already one for "Probes2" which got overwritten)

Edited by MagicCuboid
Link to comment
Share on other sites

I have a problem with SkyhawkKerbalism. Engine support for kerbalism is not present, and engines have the stock configuration despite having kerbalism installed with skyhawkkerbalism and no other kerbalism configs.

ksp.log

Any help is appreciated, even pointing me to a more relevant forum would be great.

Link to comment
Share on other sites

On 8/21/2022 at 10:35 AM, Socowez said:

Kerbalism doesn't have support for any engines when using SkyhawkKerbalism. No ignition counters, reliability, nothing. Is this intentional? Is there a setting I can change to enable it?

2 hours ago, Socowez said:

I have a problem with SkyhawkKerbalism. Engine support for kerbalism is not present, and engines have the stock configuration despite having kerbalism installed with skyhawkkerbalism and no other kerbalism configs.

ksp.log

Any help is appreciated, even pointing me to a more relevant forum would be great.

That is intentional - I found that Kerbalism's engine failure modules were a bit clunky and had a lot of weird cases where they didn't work how I wanted them too (like giving late game engines way to short burn times, or certain engine types having really strange numbers of ignitions), and thus opted to just completely disable that portion of the mod. I'd recommend other mods such as Engine Ignitor or Less Real Test Flight if you want engine ignition limits or failure functionalities respectively.

On 8/26/2022 at 8:22 AM, MagicCuboid said:

I'm getting "no storage space" when using the Beacon satellite on the Kerbalism 12hr config. Fixed it by deleting the "Science3" requirement in the main tech tree Bluedog_DB config (there was already one for "Probes2" which got overwritten)

That's a strange config error - I'll investigate when I get a chance.

On 8/21/2022 at 1:03 PM, IronCretin said:

I fixed my core issue, but I'm still not able to change the fuel tanks. This is my menu for the tank:

EAqPZ3U.png

 

And this is the hypergolics tech node. I do have B9partswitch and part upgrades enabled, but the tech tree doesn't have the upgrade for the hypergolics switch that the files say should be there.

4hBCyHk.png

The tank even says that it's switchable in the tooltip, it just doesn't show up in the menu.

MjfA41D.png

 

EDIT: I found the upgrade, it was in the sounding rockets node, not the hypergols one.

Ah - I forgot about that. When CRE is installed the hypergol tankage node moves forward to sounding rockets because CRE's early rockets are hypergolic, so that they can actually be used.

Link to comment
Share on other sites

16 hours ago, CessnaSkyhawk said:

That is intentional - I found that Kerbalism's engine failure modules were a bit clunky and had a lot of weird cases where they didn't work how I wanted them too (like giving late game engines way to short burn times, or certain engine types having really strange numbers of ignitions), and thus opted to just completely disable that portion of the mod. I'd recommend other mods such as Engine Ignitor or Less Real Test Flight if you want engine ignition limits or failure functionalities respectively.

I understand. 

... However, should I wish to re-enable kerbalism reliability support to engines, how would I do so?
I simply prefer kerbalism's unity of features, instead of downloading a separate mod for each function I want. It just removes a lot of hassle.
I'm only asking if there's a "true/false" field I can change, or a patch I can copy/paste into GameData. Any more complicated than that and I'll just get engine ignitor lol :P

Link to comment
Share on other sites

3 hours ago, Socowez said:

I understand. 

... However, should I wish to re-enable kerbalism reliability support to engines, how would I do so?
I simply prefer kerbalism's unity of features, instead of downloading a separate mod for each function I want. It just removes a lot of hassle.
I'm only asking if there's a "true/false" field I can change, or a patch I can copy/paste into GameData. Any more complicated than that and I'll just get engine ignitor lol :P

You could probably copy paste the portion of the default kerbalism's reliabilty config which handles engines into a seperate config file and it would apply it. No clue how it would handle hypergolic engines though, as it tends to assume stock resources.

Link to comment
Share on other sites

2 hours ago, CessnaSkyhawk said:

You could probably copy paste the portion of the default kerbalism's reliabilty config which handles engines into a seperate config file and it would apply it. No clue how it would handle hypergolic engines though, as it tends to assume stock resources.

I found this string in KerbalismConfig/System/Reliability.cfg. 

Spoiler

@PART[*]:HAS[@MODULE[ModuleEngines*],!MODULE[Reliability]:HAS[#type[ModuleEngines]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    MODULE
    {
        name = Reliability
        type = ModuleEngines
    }
}

@PART[*]:HAS[@MODULE[ModuleEngines*]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]]
    {
        title = Engine
        redundancy = Propulsion
        repair = Engineer
        mtbf = 0
        extra_cost = 1.5
        extra_mass = 0.05
        turnon_failure_probability = 0.007
        rated_operation_duration = 600
        rated_ignitions = 1
    }
}

// this calculates ignitions from thrust, and vac/atm ISP ratio:
// - the lower the thrust, the higher the ignition count.
// - the higher the difference between vacuum and atmosphere ISP, the higher the ignition count.
// thrust 0-350 gives 64-1 ignitions (custom exponential-ish scale).
// vac/atm ratio gives no bonus if below 150%, and then a linear bonus of +1 ignitions for every extra 20%.
// some specific engine types will receive further bonus.
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[#maxThrust,@atmosphereCurve]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]]
    {
        // Parse and store atmosphere ISP as a temporary value
        __tmp_isp_atm = #$../MODULE[ModuleEngines*]/atmosphereCurve/key,1$
        @__tmp_isp_atm ^= :^[\d\.]* (\d+) *.*$:$1:

        // Parse and store vacuum ISP as a temporary value
        __tmp_isp_vac = #$../MODULE[ModuleEngines*]/atmosphereCurve/key,0$
        @__tmp_isp_vac ^= :^[\d\.]* (\d+) *.*$:$1:

        // Give ignitions based on the ratio between vacum and atmosphere ISP
        // ----
        // Example results for typical stock engines:
        // Spider => 1
        // Ant => 13
        // Twitch => 1
        // Terrier => 13
        // Thud => 1
        // LV-T30 => 1
        // Poodle => 12
        // Mainsail => 1
        @rated_ignitions = #$__tmp_isp_vac$
        @rated_ignitions /= #$__tmp_isp_atm$ // Get the ratio between vacum and atmosphere ISP
        @rated_ignitions -= 1.5 // Zero the curve to a ratio of 1.5
        @rated_ignitions ^= :^-.*$:0: // If negative, set to zero
        @rated_ignitions *= 5 // Give a power of 5 to the curve
        @rated_ignitions += 1 // Set a minimum value of 1

        // Give extra ignitions the smaller the engine is
        // ----
        // Example results for typical stock engines:
        // Spider => +64
        // Ant => +64
        // Twitch => +32
        // Terrier => +10
        // Thud => +8
        // LV-T30 => +4
        // Poodle => +2
        // Mainsail => +0
        __tmp_thrust_factor = #$../MODULE[ModuleEngines*]/maxThrust$
        @__tmp_thrust_factor ^= :^[0-9]$:_64: // if thrust between 0 and 9, give +64 ignitions
        @__tmp_thrust_factor ^= :^1[0-9]$:_32: // if thrust between 10 and 19, give +32 ignitions
        @__tmp_thrust_factor ^= :^[2-4][0-9]$:_16: // if thrust between 20 and 49, give +16 ignitions
        @__tmp_thrust_factor ^= :^[5-9][0-9]$:_10: // if thrust between 50 and 99, give +10 ignitions
        @__tmp_thrust_factor ^= :^1[0-4][0-9]$:_8: // if thrust between 100 and 149, give +8 ignitions
        @__tmp_thrust_factor ^= :^1[5-9][0-9]$:_6: // if thrust between 150 and 199, give +6 ignitions
        @__tmp_thrust_factor ^= :^2[0-4][0-9]$:_4: // if thrust between 200 and 249, give +4 ignitions
        @__tmp_thrust_factor ^= :^2[5-9][0-9]$:_2: // if thrust between 250 and 299, give +2 ignitions
        @__tmp_thrust_factor ^= :^3[0-9][0-9]$:_1: // if thrust between 300 and 349, give +1 ignitions
        @__tmp_thrust_factor ^= :^[^_].*$:_0: // if thrust is 350 or more, give +0 ignitions
        @__tmp_thrust_factor ^= :_:: // remove the "_" prefix

        // Combine the two ignitions values
        // ----
        // Final sum for the previous examples:
        // Spider => 65
        // Ant => 77
        // Twitch => 33
        // Terrier => 23
        // Thud => 9
        // LV-T30 => 5
        // Poodle => 14
        // Mainsail => 1
        @rated_ignitions += #$__tmp_thrust_factor$
        @rated_ignitions ^= :\.\d+:: // Floor value to get an integer

        // Remove all temporary variables
        !__tmp_* = dummy
    }
}

// SRBs
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[SolidFuel]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]]
    {
        @rated_ignitions = 0
        @rated_operation_duration = 0
        @turnon_failure_probability = 0.005
    }
}

// NERV
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[LiquidFuel]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]]
    {
        @rated_operation_duration = 800
        @repair = [email protected]
    }
}

// your standard garden variety rocket engine
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[Oxidizer]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]]
    {
        @rated_operation_duration = 350
        @turnon_failure_probability = 0.007
        @repair = true
    }
}

// ion engines
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[XenonGas]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]] {
        @rated_operation_duration = 0
        @turnon_failure_probability = 0.002
        @repair = [email protected]
    }
}

// jet engines
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[IntakeAir]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]] {
        @rated_operation_duration = 86400
        @rated_ignitions = 0
        @repair = true
    }
}

// hypergolic or monoprop engines
@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[MonoPropellant]]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    @MODULE[Reliability]:HAS[#type[ModuleEngines*]] {
        @rated_operation_duration = 0
        @rated_ignitions = 0
        @repair = true
        @turnon_failure_probability = 0.001
    }
}

@PART[*]:HAS[@MODULE[ModuleEnginesRF]]:NEEDS[FeatureReliability]:FOR[KerbalismDefault]
{
    MODULE
    {
        name = Reliability
        type = ModuleEnginesRF
        title = Engine
        redundancy = Propulsion
        repair = Engineer
        mtbf = 0
        extra_cost = 1.0
        extra_mass = 0.1
        rated_operation_duration = 12000
    }
}

It appears the engine ignition and rated burn times are based on modifiers set in the config, which could very easily create oddities with burn times and ignitions because of... well, hell if I know.

I noticed this block of code is missing in Reliability.cfg in SkyhawkKerbalism, which is how I'm guessing you disabled the engine configs for kerbalism. Can I just copy/paste this into Reliability.cfg in SkyhawkKerbalism (changing mentions of KerbalismDefault to zzzKerbalismskyhawk), or would you think there are other steps I need to do first?

Or, you know, you could upload a different version of SkyhawkKerbalism that restores kerbalism engine support to those that want it. Wink wink.

Edited by Socowez
speling
Link to comment
Share on other sites

2 hours ago, JebTheDestroyer said:

Fingers crossed for a compatibility patch for Benjee10's new Orion mod.

The latest v1.1.1 release has compat for Benjee10's Orion: https://github.com/CessnaSkyhawk/SkyhawkScienceSystem/releases/tag/v1.1.1

EDIT: After loading it up in  KSP, it seems that the service module engine (in-game it's KJ-10b "Viking") is not patched for the new fuel types, defaulting to kerolox. It's from Benjee10_sharedAssets, so that needs to be patched.

Edited by bigyihsuan
Link to comment
Share on other sites

20 hours ago, Socowez said:

Or, you know, you could upload a different version of SkyhawkKerbalism that restores kerbalism engine support to those that want it. Wink wink.

Actually, please do this. I can't figure the first thing about it.  After messing with the code a short bit, I managed to get the Reliability option to show up in the PAW. However, every engine had the same burn times and number of ignitions.

pretty please?

Link to comment
Share on other sites

11 hours ago, bigyihsuan said:

EDIT: After loading it up in  KSP, it seems that the service module engine (in-game it's KJ-10b "Viking") is not patched for the new fuel types, defaulting to kerolox. It's from Benjee10_sharedAssets, so that needs to be patched.

Dug around in the code, it seems SSS is patching the deprecated DIRECT_KJ10 rather than the new benjee10_AJ10_v2. Here's a patch that will fix this:

@PART[benjee10_AJ10_v2]:FIRST:NEEDS[Benjee10_sharedAssets] 
{
	%SSS_Hypergolic = True
}

 

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.

 Share

×
×
  • Create New...