Jump to content

[1.12.x] Community Tech Tree (July 3)


Nertea

Recommended Posts

Hey folks, i'm having a bit of trouble, trying to right a couple of .cfg files for realchute and k2 command pod, but it's not working, what im trying to do is put the k2pod in simple command modules, with a couple of realchute parts in enhanced survivability, but not having any luck:

@PART[K2CommandPod]:NEEDS[CommunityTechTree]

{

@TechRequired = SimpleCommandModules}

is this right for the k2 pod?

@PART[RealChuteRadialChute]:NEEDS[CommunityTechTree]

{

@TechRequired = EnhancedSurvivability}

and the real chute file^

Link to comment
Share on other sites

Hey folks, i'm having a bit of trouble, trying to right a couple of .cfg files for realchute and k2 command pod, but it's not working, what im trying to do is put the k2pod in simple command modules, with a couple of realchute parts in enhanced survivability, but not having any luck:

@PART[K2CommandPod]:NEEDS[CommunityTechTree]

{

@TechRequired = SimpleCommandModules}

is this right for the k2 pod?

@PART[RealChuteRadialChute]:NEEDS[CommunityTechTree]

{

@TechRequired = EnhancedSurvivability}

and the real chute file^

I believe they are case sensitive. Try "simpleCommandModules" and "enhancedSurvivability".

Link to comment
Share on other sites

I have question in my tree i found empty node, named Simple command modules. So what mod i need to install to get this node filled?

I spent a long time trying to figure that out, then trying to write a .cfg to put the K2 Pod (from a mod) into it, in the end i have ended up using the seti ctt.

here > http://forum.kerbalspaceprogram.com/threads/106130

- - - Updated - - -

Btw Nertea, i am trying to put a couple of the markIV parts in to wide body aerodynamics, but i can't find it in the ctt. Whats the correct line to use for it (for a .cfg)?

Link to comment
Share on other sites

Two advNuclearPropulsion Node?

I noticed this problem after installed Mod: Atomic Ages..

The ModuleManager's Tech Tree config file apparently will generate two "advNuclearPropulsion" node..

Therefore I can get same part by researching either one of them, but one of them is MUCH cheaper..

Is this a bug?

I have attempted to delete ModuleManager.TechTree file under root/GameData folder; which did not work..

Link to comment
Share on other sites

Finally finished writing a plugin to hide all the empty tech nodes, and switch around the tech lines accordingly. There's still a case or two I need to work out where the nodes don't switch parents like they ought too, but those cases should be rare enough that no one will see them.

So hey, no more empty tech nodes!!!:D

The plugin should work with any tree that's a derivation of the CTT so long as the nodes aren't in crazy places (like left of the "start" node). So trees like SETI and Open Tree should work, as long as changes that were made were through Module Manager. Didn't test them though.

Here's the download and some pics. I'm not used to coding correctly, so the logic is probably messier than it should be... and without checks...

Download

Using all of NearFuture and a few other mods. All the nodes shown have parts in them!

bP1oBGTl.png

The derivation that I use. I moved some nodes around and added one node in an MM file.

The plugin sorts the tech lines out accordingly.

n8SzjQml.png

Example of how much the tech lines can change (since the original parents are gone),

but still look good.

LFdE16Zl.png

Edited by ev0
fixed link
Link to comment
Share on other sites

Finally finished writing a plugin to hide all the empty tech nodes, and switch around the tech lines accordingly. There's still a case or two I need to work out where the nodes don't switch parents like they ought too, but those cases should be rare enough that no one will see them.

So hey, no more empty tech nodes!!!:D

The plugin should work with any tree that's a derivation of the CTT so long as the nodes aren't in crazy places (like left of the "start" node). So trees like SETI and Open Tree should work, as long as changes that were made were through Module Manager. Didn't test them though.

Here's the download and some pics. I'm not used to coding correctly, so the logic is probably messier than it should be... and without checks...

Download

Using all of NearFuture and a few other mods. All the nodes shown have parts in them!

http://i.imgur.com/bP1oBGTl.png

The derivation that I use. I moved some nodes around and added one node in an MM file.

The plugin sorts the tech lines out accordingly.

http://i.imgur.com/n8SzjQml.png

Example of how much the tech lines can change (since the original parents are gone),

but still look good.

http://i.imgur.com/LFdE16Zl.png

Works like a charm! You sir, have just saved my ocd.

Link to comment
Share on other sites

Hi,

I'm looking for feedbacks of users on the uninstall of CTT.

The mod is really well-done, but brings too many empty nodes for my game, even if I totally understand the logic behind these nodes (I installed CTT with CKAN on the suggestion of another mod). If i remove CTT, will it break my current save?

Thanks for your help :)

Edited by ndiver
Link to comment
Share on other sites

Thanks for the suggestion, but I'm currently more willing to remove CTT.

However, for that, I prefer to be sure that it will not break my save.

Removing the CTT shouldn't break your save. But you might have to purchase a part again if you first purchased it when it was in a CTT tech node. If you're really worried, just copy your saved game folder to your desktop as a backup. If anything breaks, you can use that copy to restore anything.

Link to comment
Share on other sites

Removing the CTT shouldn't break your save. But you might have to purchase a part again if you first purchased it when it was in a CTT tech node. If you're really worried, just copy your saved game folder to your desktop as a backup. If anything breaks, you can use that copy to restore anything.

What you described was exactly what happened, that for you help :)

Link to comment
Share on other sites

So, what are the reasons Module Manager might stop processing a cfg file? I seem to get the first few entries in my CTT cfg processed, but then the rest aren't placed in nodes. It's a bit frustrating?

I've gone through my cfg and cleaned up a couple of part names, but the processing didn't seem to stop at those errors anyway.

The processing stops at the Nexus50EnginePlug, which is the first item I've put in colossalRocketry (spelling/case copy pasted from the CTT mod's cfg file).

@PART[NexusRCShalfy]:NEEDS[CommunityTechTree]
{
@TechRequired = experimentalRocketry
}

@PART[N70flandingLegM2]:NEEDS[CommunityTechTree]
{
@TechRequired = exoticAlloys
}

@PART[Nexus150fHeatShield]:NEEDS[CommunityTechTree]
{
@TechRequired = giganticRocketry
}

@PART[airbrakeNex1]:NEEDS[CommunityTechTree]
{
@TechRequired = aerospaceComposites
}

@PART[Nexus50EnginePlug]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}


@PART[NexusDec70f]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[LF70DualPlate]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[LF70SinglePlate]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NSS70fO2Shrt]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NSS70fH2Shrt]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NSS70fO2XtraShrt]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NSS70fH2XtraShrt]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[LF70f]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[LF70f-B]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NexusDec150f]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NexusDec75f60f]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[SegmentedLF120f]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}


@PART[NexusAdapter7.5m]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NexusSeparator]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[fairingSize9]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[fairingSize14]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[GCnuclearEngine3k]:NEEDS[CommunityTechTree]
}
@TechRequired = advNuclearPropulsion
}

@PART[GCnuclearEngine4k]:NEEDS[CommunityTechTree]
}
@TechRequired = advNuclearPropulsion
}

@PART[GCnuclearEngine6k]:NEEDS[CommunityTechTree]
}
@TechRequired = advNuclearPropulsion
}

@PART[Nexus25mShell]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

@PART[NexusFuel25]:NEEDS[CommunityTechTree]
}
@TechRequired = experimentalRocketry
}

Link to comment
Share on other sites

I can't find fault with the MM config itself, so maybe the fault lies elsewhere...

This is a really weird case, but the only thing I can possibly come up with is your use of the @ symbol. This tells ModuleManager to "change an existing field". If your original config for Nexus50EnginePlug does not contain a TechRequired field at all, perhaps because you always planned to perform the assignment in separate files (I've seen it done before, RemoteTech for example does it), then the @ does nothing. You need to write that line without the @, so it actually creates the field.

sarbian however, being as smart as he is, implemented an even better solution: just use % instead of @. ModuleManager interpretates that as "modify if it exists, create if it does not". So it covers both possibilities in one symbol. In 90% of cases where you use @, it's better to use % instead, to prevent this kind of thing. The only exception are cases where you want to be sure that it only modifies something that already exists instead of spawning a copy - for example the @PART call that starts every patch.

Of course, it's possible that this is not the cause of your problem, but it's one possible cause, and the only one I can come up with. If that doesn't solve it, try asking in the MM thread.

Edited by Streetwind
Link to comment
Share on other sites

I can't find fault with the MM config itself, so maybe the fault lies elsewhere...

This is a really weird case, but the only thing I can possibly come up with is your use of the @ symbol. This tells ModuleManager to "change an existing field". If your original config for Nexus50EnginePlug does not contain a TechRequired field at all, perhaps because you always planned to perform the assignment in separate files (I've seen it done before, RemoteTech for example does it), then the @ does nothing. You need to write that line without the @, so it actually creates the field.

sarbian however, being as smart as he is, implemented an even better solution: just use % instead of @. ModuleManager interpretates that as "modify if it exists, create if it does not". So it covers both possibilities in one symbol. In 90% of cases where you use @, it's better to use % instead, to prevent this kind of thing. The only exception are cases where you want to be sure that it only modifies something that already exists instead of spawning a copy - for example the @PART call that starts every patch.

Of course, it's possible that this is not the cause of your problem, but it's one possible cause, and the only one I can come up with. If that doesn't solve it, try asking in the MM thread.

Thanks Streetwind, i was actually curious as to the use of the % in regards to MM usage. answered my question perfectly (if off topic of this thread :P)

Link to comment
Share on other sites

I can't find fault with the MM config itself, so maybe the fault lies elsewhere...

This is a really weird case, but the only thing I can possibly come up with is your use of the @ symbol. This tells ModuleManager to "change an existing field". If your original config for Nexus50EnginePlug does not contain a TechRequired field at all, perhaps because you always planned to perform the assignment in separate files (I've seen it done before, RemoteTech for example does it), then the @ does nothing. You need to write that line without the @, so it actually creates the field.

sarbian however, being as smart as he is, implemented an even better solution: just use % instead of @. ModuleManager interpretates that as "modify if it exists, create if it does not". So it covers both possibilities in one symbol. In 90% of cases where you use @, it's better to use % instead, to prevent this kind of thing. The only exception are cases where you want to be sure that it only modifies something that already exists instead of spawning a copy - for example the @PART call that starts every patch.

Of course, it's possible that this is not the cause of your problem, but it's one possible cause, and the only one I can come up with. If that doesn't solve it, try asking in the MM thread.

Thanks for the help. The parts all have existing entries for tech required, and that actually works (ie, they're all sitting in the stock veryLargeRocketry node). I will convert to % anyway, because, as you say, it's a better thing. And who knows, it might fix it.

For a while I thought it may have been the node itself, but there's other parts that don't get moved to their correct nodes as well.

I'll also try splitting the file up, even though that makes little sense.

I'll let people know how I go, in case it helps others. :-)

Link to comment
Share on other sites

Thanks for the help. The parts all have existing entries for tech required, and that actually works (ie, they're all sitting in the stock veryLargeRocketry node). I will convert to % anyway, because, as you say, it's a better thing. And who knows, it might fix it.

For a while I thought it may have been the node itself, but there's other parts that don't get moved to their correct nodes as well.

I'll also try splitting the file up, even though that makes little sense.

I'll let people know how I go, in case it helps others. :-)

By "stop processing", do you mean it gets hung up at that part on the load screen, or just that the part doesn't end up in the correct node? If it's the latter, another possibility is that your config file is actually working, but then another config file comes up later in the loading process and overwrites the changes you did. Not sure. Try slapping an :AFTER[ModFolderName] or :FINAL after the NEEDS:[CommunityTechTree].

That, or those parts require another mod that you haven't installed, so they won't load anyway. Hope this helps!

Link to comment
Share on other sites

By "stop processing", do you mean it gets hung up at that part on the load screen, or just that the part doesn't end up in the correct node? If it's the latter, another possibility is that your config file is actually working, but then another config file comes up later in the loading process and overwrites the changes you did. Not sure. Try slapping an :AFTER[ModFolderName] or :FINAL after the NEEDS:[CommunityTechTree].

That, or those parts require another mod that you haven't installed, so they won't load anyway. Hope this helps!

The load completes, and the parts are available, but just not put in the correct nodes. It happens with only that one mod installed. I'll try the other ideas and keep your ideas in mind.

Link to comment
Share on other sites

So, what are the reasons Module Manager might stop processing a cfg file? I seem to get the first few entries in my CTT cfg processed, but then the rest aren't placed in nodes. It's a bit frustrating?

I've gone through my cfg and cleaned up a couple of part names, but the processing didn't seem to stop at those errors anyway.

The processing stops at the Nexus50EnginePlug, which is the first item I've put in colossalRocketry (spelling/case copy pasted from the CTT mod's cfg file).

@PART[NexusRCShalfy]:NEEDS[CommunityTechTree]
{
@TechRequired = experimentalRocketry
}

@PART[N70flandingLegM2]:NEEDS[CommunityTechTree]
{
@TechRequired = exoticAlloys
}

@PART[Nexus150fHeatShield]:NEEDS[CommunityTechTree]
{
@TechRequired = giganticRocketry
}

@PART[airbrakeNex1]:NEEDS[CommunityTechTree]
{
@TechRequired = aerospaceComposites
}

@PART[Nexus50EnginePlug]:NEEDS[CommunityTechTree]
}
@TechRequired = colossalRocketry
}

...

If that is literally what you have in your .cfg file then it's because of a syntax error:

@PART[Nexus50EnginePlug]:NEEDS[CommunityTechTree]
} <-- *** should be an open brace ***
@TechRequired = colossalRocketry
}

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