Jump to content

[WIP] Kerbal Hypergolics


Tyko

Recommended Posts

I'm toying with a mod idea and looking for feedback.

Oscar tank always bothers me because of its magical ability to hold more LFO for its size than other LFO tank. It feels cheaty and it's always tempting to just Tweakscale it and use it for all kinds of things. In my game I have a house rule that I can only use Oscar tanks with the Ant engine and a couple of others - the head canon is that it's not really LFO. Now I'm thinking about actually building a mod to reflect that house rule. Here's how it would work.

  • Create a new fuel type called "Hypergolic" or some other name.
    • open to ideas but I'd like to keep it somewhat generic in the style of LFO or Monopropellant.
    • If someone else has already created the fuel then I'll save myself the trouble.
  • Copy the Oscar, Oscar-like tanks in VSR and maybe other mods to create new Hypergolic versions.
  • Hide the standard Oscar(s) - I don't want to break saves, but don't want to leave the LFO versions visible.
  • Create copies of the Ant and a few other small engines that run on Hypergolic - may or may not hide the originals, but I'm leaning against it.
  • Mod support - add Hypergolic to:
    • Procedural Fuel Tanks
    • Interstellar Fuel Switch
  • Future - create / convert other appropriate engines for Hypergolic, add more mod support

This is just in the ideation stage, but Hypergolics are generally more dense than traditional LFO options, so it kinda makes sense. Also these engine types are more often used for probes and small landers - which also traditionally use Hypergolics because of long storage times and frequent restarts.

 

Edited by Tyko
Link to comment
Share on other sites

6 hours ago, Tyko said:
  • Hide the standard Oscar(s) - I don't want to break saves, but don't want to leave the LFO versions visible.

 

That Achievable with the following code:

    [KSPAddon(KSPAddon.Startup.EditorVAB, false)]
    class HideHiddenPartsFilter : MonoBehaviour
    {
        void Start()
        {
            EditorPartList.Instance.ExcludeFilters.AddFilter(new EditorPartListFilter<AvailablePart>("Hide Oscar Tank", p => p.name != "miniFuelTank"));
            EditorPartList.Instance.Refresh();
        }
    }

 

Link to comment
Share on other sites

1 hour ago, FreeThinker said:

That Achievable with the following code:


    [KSPAddon(KSPAddon.Startup.EditorVAB, false)]
    class HideHiddenPartsFilter : MonoBehaviour
    {
        void Start()
        {
            EditorPartList.Instance.ExcludeFilters.AddFilter(new EditorPartListFilter<AvailablePart>("Hide Oscar Tank", p => p.name != "miniFuelTank"));
            EditorPartList.Instance.Refresh();
        }
    }

 

Thanks! How is that different from this?:

@PART[PARTNAME]
{
    TechHidden = True
    category = none
    subcategory = 0
}

Link to comment
Share on other sites

8 hours ago, Tyko said:

@PART[PARTNAME]
{
    TechHidden = True
    category = none
    subcategory = 0
}

since there is no property called "TechHidden" on part, I don't think that will work, unless module manager has added a feature which specifically looks for "TechHidden = True"  and applied it as a filter.

Edit: after looking into a bit deeper, it appears to be present in some obsolete parts and therefore work even better than the above solution.

Still it's weird that this property is not mentioned anywhere in the documentation or present in the Part class. I guess KSP checks for this property specifically at applies some filters on the parts list. Thanks for teaching me something new!

Edited by FreeThinker
Link to comment
Share on other sites

8 hours ago, FreeThinker said:

since there is no property called "TechHidden" on part, I don't think that will work, unless module manager has added a feature which specifically looks for "TechHidden = True"  and applied it as a filter.

Edit: after looking into a bit deeper, it appears to be present in some obsolete parts and therefore work even better than the above solution.

Still it's weird that this property is not mentioned anywhere in the documentation or present in the Part class. I guess KSP checks for this property specifically at applies some filters on the parts list. Thanks for teaching me something new!

I'm not sure if one is "better" from a memory / resources perspective but I'm thinking that since it's being loaded anyway it shouldn't matter.

Link to comment
Share on other sites

13 minutes ago, Tyko said:

I'm not sure if one is "better" from a memory / resources perspective but I'm thinking that since it's being loaded anyway it shouldn't matter.

A possible advantage is that it is removed from the tech tree as well, which the custom filter method doesn't do

Link to comment
Share on other sites

  • 4 weeks later...

Seems like the easiest way to do this would be to just use monopropellant. Others have gone down that path by adding larger higher ISP engines running MonoProp and it seems to work just fine.

The other alternative is to add a new fuel type - for kerbal-like simplicity it could be called NTO. If we accept that MonoProp is actually Hydrazine(ish) then we could get a more efficient reaction by combining MonoProp with NTO. This isn't exactly accurate, but would be in line with how KSP takes artistic license with fuel now and would give a middle ground between 240 vacuum ISP MonoProp thrusters and 325-350 vacuum ISP LFO engines. I was thinking this would give us 275-325 vacuum ISP engines, a nice middle ground.

The real advantage would be fuel density and an actual reason why the Oscar tank holds so much. Make the Oscar tank a MonoProp/NTO tank and bar it from being used for LFO. Then add some other tanks that had the same fuel density as the Oscar and you'd have great little tanks and engines for probes and landers.

In fact the Oscar tanks and Ant engines are already exhibiting these performance characteristics. it would mostly be a matter of renaming the fuel type and keeping their stats the same, then looking for other parts that would also make sense to be converted

Edited by Tyko
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...