Jump to content

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


Nertea

Recommended Posts

Honestly I love what ev0 is doing. I love having a nice expanded tree with good distribution for various parts, but alas, the fact that I need to research several empty nodes to get to 3-4 parts seems to be a bit much.

Only now I realized that in order to get rid of any unnecessary node I have to change hideEmpty = False to hideEmpty = True (just by using replace all) and the ones that have no parts (don't even know what mods would add them) will be gone! I am such a dunce in KSP modding...

Edited by HellDuke
Link to comment
Share on other sites

Only now I realized that in order to get rid of any unnecessary node I have to change hideEmpty = False to hideEmpty = True (just by using replace all) and the ones that have no parts (don't even know what mods would add them) will be gone! I am such a dunce in KSP modding...

True, but the CTT nodes that are aren't hidden would still have those grey progression lines attached to the now hidden nodes - meaning that the progression lines will be extending from an empty space, and not a separate unhidden node. So now you can't even research that node, because you can't select and research the previous required tech. My config file fixes that problem automatically. I just want to hear what Nertea thinks about it first.

Link to comment
Share on other sites

First, it assumes that stock nodes will always be unhidden. So,

  1. I attach every CTT node to a stock node (parentID = blah)



    1. I use hideEmpty as a boolean. As we move from left to right, if a node has "hideEmpty = False" then all nodes to its right in the same branch (and sometimes other branches) change their parentID to that node. If "hideEmpty = True", we ignore it and move on.
      1. Sometimes, if two nodes in a branch are very far apart from each other because all the nodes in between are hidden, then the higher tech node will still be attached to a high tech stock node. I'd consider making "allowAny = False" in these cases.

[*]There's more logic for changing vertical positions of nodes so there aren't nodes in weird positions. For example, if a node splits into two nodes in a "<" pattern, but one of those nodes is empty, the unempty node gets moved to be in line with its parent, so we have a nice "--" pattern.

Here's the files. (I couldn't find your license, so if you want me to remove the link just say the word). I had to change your CommunityTechTree.cfg a bit (pos and parentID), so you'll need both files. It's maybe 90% done, just need to figure out Colonization and Ultra High Energy Physics.

Just set some nodes to "hideEmpty = False" in CommunityTechTree.cfg to play around with it.

Unfortunately, this is very dependent on the current layout of CTT nodes, so adding more in the future would require adding more logic too.

Link to comment
Share on other sites

ev0,

What you have is amazing. I do however have one set of overlapping icons in the tech tree. I don't have interstellar installed but I am still showing recycling, hydroponics, short and long term habitation. I tried looking through the config but couldn't figure out what was wrong. Thanks so much for what you did drop in.

Link to comment
Share on other sites

ev0,

What you have is amazing. I do however have one set of overlapping icons in the tech tree. I don't have interstellar installed but I am still showing recycling, hydroponics, short and long term habitation. I tried looking through the config but couldn't figure out what was wrong. Thanks so much for what you did drop in.

Do you have Stockalike Station Parts Expansion installed? Right now, the files I linked won't work with correctly if you install a mod that uses CTT. A mod like SSPX would require to set hideEmpty = False to the right nodes, or else you'll get overlapping. Its current CTT patch set up as:

SSPX's patch for CTT


// ...
// ...

@TechTree:AFTER[CommunityTechTree]
{
@RDNode:HAS[#id[recycling]]
{
@hideEmpty = False
}
@RDNode:HAS[#id[hydroponics]]
{
@hideEmpty = False
}
}

It would have to be changed to

SSPX's patch for CTT


// ...
// ...

@TechTree:AFTER[CommunityTechTree]
{
@RDNode:HAS[#id[heavyCommandModules]]
{
@hideEmpty = False
}
@RDNode:HAS[#id[shortTermHabitation]]
{
@hideEmpty = False
}
@RDNode:HAS[#id[longTermHabitation]]
{
@hideEmpty = False
}
}

which are the three nodes that SSPX actually puts some parts into.

Edited by ev0
Link to comment
Share on other sites

Well, this is about what I was hoping the ideal endgame for the CTT was, but never really had time to actually implement it. I'll investigate it further to see if it's worth bugging all the mod people to unhide their nodes again, but I'm pretty optimistic...

Link to comment
Share on other sites

Well, this is about what I was hoping the ideal endgame for the CTT was, but never really had time to actually implement it. I'll investigate it further to see if it's worth bugging all the mod people to unhide their nodes again, but I'm pretty optimistic...

Cool. Just curious, do you happen to know a better way than checking if "hideEmpty = False" or not? This is the only way I could think of doing it with Module Manager.:blush:

I can finish it up maybe this weekend. Just want your opinion of two things beforehand since you're the creator.

  • Would you prefer that all tech branches stay on their own row (pic 1)? Or, if there is nothing above the node and no part of the branch will intersect another branch, that the tree becomes as compact as possible (pic 2, current implementation)? Actually, if you choose compact, then I'll probably put that heat management node to the right of Experimental Electronics, instead of down and to the right.

Own rows

2jrlTMMl.png

Compact (current implementation)

x6DoqNel.png

  • If a node is hidden within in a branch (pic 1 nothing hidden, pic 2 Hydroponics and Adv. Heat Management hidden), would you prefer to
    • Attach a second parent to a higher tech level or not, and
    • If yes, have "Requires: Any" or "Requires: All", now that the space between two nodes in the same branch increased?

Nothing hidden

642265Mh.png

Hydroponics and Adv. Heat Management hidden

FDikehAh.png

Link to comment
Share on other sites

Here's the files.

(I couldn't find your license, so if you want me to remove the link just say the word). I had to change your CommunityTechTree.cfg a bit (pos and parentID), so you'll need both files. It's maybe 90% done, just need to figure out Colonization and Ultra High Energy Physics.

Just set some nodes to "hideEmpty = False" in CommunityTechTree.cfg to play around with it.

Unfortunately, this is very dependent on the current layout of CTT nodes, so adding more in the future would require adding more logic too.

Well, this is about what I was hoping the ideal endgame for the CTT was, but never really had time to actually implement it. I'll investigate it further to see if it's worth bugging all the mod people to unhide their nodes again, but I'm pretty optimistic...

If I understand this correctly, it would break tech trees which are addons to the current CTT/use the current CTT as a base and expand/modify it?

So effectively it would lock the shape of the CTT in place?

To avoid this, it is intended to be distributed as an addon to the CTT and the current CTT is not replaced by a version containing those changes?

Link to comment
Share on other sites

If I understand this correctly, it would break tech trees which are addons to the current CTT/use the current CTT as a base and expand/modify it?

So effectively it would lock the shape of the CTT in place?

To avoid this, it is intended to be distributed as an addon to the CTT and the current CTT is not replaced by a version containing those changes?

Ahhh that would be a problem, wouldn't it. In order to reduce the amount of MM patches, I did change change the base CTT config file a fair bit, mostly by changing "parentID" to stock nodes (as a default, they would be changed later based on unhidden nodes), and also "pos" in some places. Though one of those changes is the same as SETI, where I had the Electric Engines Branch have one part inline with the ion engine node, and the other part below that. Although I put ion engines on top and plasma engines on the bottom:wink:

If Nertea wants the option to keep the current CTT, I could instead do all my changes in a single MM file and add "NEEDS[!SETI]" or something. It would just potentially put the number of MM patches to 100+ is all...

Link to comment
Share on other sites

Ahhh that would be a problem, wouldn't it. In order to reduce the amount of MM patches, I did change change the base CTT config file a fair bit, mostly by changing "parentID" to stock nodes (as a default, they would be changed later based on unhidden nodes), and also "pos" in some places. Though one of those changes is the same as SETI, where I had the Electric Engines Branch have one part inline with the ion engine node, and the other part below that. Although I put ion engines on top and plasma engines on the bottom:wink:

If Nertea wants the option to keep the current CTT, I could instead do all my changes in a single MM file and add "NEEDS[!SETI]" or something. It would just potentially put the number of MM patches to 100+ is all...

As far as I know, SETIctt is not the only mod changing the nodes of the CTT. Also it would preclude future projects based on the CTT.

Imho, it would actually remove the "community" part of the the CTT by removing its versatility and extendability by the community.

It would be "set in stone" for the community, only really changeable by one person/party and thus be just another TechTree without justification to bear the "community" prefix.

Therefore it would imho make sense to do a fork of the CTT to provide this speciality version of the CTT.

Everything would be in a new folder, but it could just distribute an empty "CommunityTechTree" folder, so that the the CTT compatibility configs for other mods are triggered (catering to the MM statements like :NEEDS[CommunityTechTree], which just need an empty "CommunityTechTree" folder within GameData).

This would provide the users the choice which options they want to use.

CTT with all nodes visible (which some might prefer anyway)

CTT fork with adaptive hiding of nodes (with disclaimers not to use with CTT addons)

CTT + addons like SETIctt

In the long run it might be worthwhile to develope a .dll which can do the "un/hiding" based on filled nodes in general.

Since all other custom TechTrees face this problem, a .dll which is not based on the particular tree would be desireable. It could be distributed on its own and and just provide the hiding algorithm based on actually filled nodes and their parents.

Maybe you could ask the former maker of the 0.90 TechManager for help, since that one already provided such a functionality?

Link to comment
Share on other sites

I thought the entire point of the CTT was that it *was* locked in place. Anything that moved the nodes around (not the parts themselves, but the actual shape of the tree) is, by it's very definition, not CTT - since the entire point of this mod is to provide a solid and reliable set of interrelated nodes that we can count on to always be present, and always be in a very specific shape.

Link to comment
Share on other sites

I thought the entire point of the CTT was that it *was* locked in place. Anything that moved the nodes around (not the parts themselves, but the actual shape of the tree) is, by it's very definition, not CTT - since the entire point of this mod is to provide a solid and reliable set of interrelated nodes that we can count on to always be present, and always be in a very specific shape.

When eg compared to the CommunityResourcePack, the proposed change would mean, that the CRP provides a set of resource definitions and any extension beyond this set would break the resource system.

It would be locked as is.

Which is a viable option for a tech tree / resource pack, it just would not fit the "community" prefix and rather provide a proprietory tech tree / resource system.

You would either have the choice to abide by its strict rules/structure or go somewhere else, instead of being open to modding/extension/alteration.

- - - Updated - - -

Changing an open community tech tree to a proprietory one is imho quite the price to pay for a visual change.

Especially when, as above, alternative ways are available which offer the user the choice instead of precluding options to modders (all modders within this community, not only part modders) and users.

Edited by Yemo
Link to comment
Share on other sites

Seeing all this drama all over the forum all over a cosmetic issue is incredible to me. I just don't see any issue. Are you hoarding science for something, is there not enough in the game, how is it different than those nodes with parts costing a lot more than they do and not having empty nodes? You are paying the science to work toward the nodes you want just cause you didn't get a new shiny for that node doesn't mean it is wasted. Are you really so hurt over unlocking empty nodes? How much grief does this bring to people? Are they seriously spending so much time thinking about this that such a drastic solution has to be taken. It just seems so pedantic.

Link to comment
Share on other sites

@Yemo - of course it still fits the definition of Community in this context - specifically, 'here's a set of convenient, pre-configured nodes that we can all depend on that you can freely add your stuff too'. They don't break stock (so mods with stock fallbacks work fine), and I always know that the colonization tree starts after survivability and recycling (and won't suddenly end somewhere else).

Same way that I know there are very specific (and sometimes optional) paths to a given node (and don't have to worry about suddenly having the paths change, or having nodes suddenly change from 'Any' to 'All').

That was pretty much the intent, since when this was created (back in TechManager days) the issue was tech tree fragmentation, so Nertea whipped up one that we could all share, and it's worked incredibly well thus far as a shared community resource.

Link to comment
Share on other sites

Dearest ksp community!

I have found this gem and ever since thrown countless days of my fainting youth into it, never regretting any of them. Then I found the mods. Countless mods. Kept installing them, kept enjoying them. This was until now. Somehow a mod combination has caused trouble, and I think the trouble is related to the community tech tree.

Let me state my problem:

As I said, I already have a good share of mods installed (26 by now?), until very recently, never had a problem with them, all worked perfectly together. But now I realized that some parts from other mods, that are integrated into CTT, do not appear in the building section of the VAB. When I open the tech tree, the parts are listed in the correct CTT nodes, I can research them and then they appear unlocked in the tree. But when I want to build them onto my rocket (in the VAB), they are not listed there!! I am pretty sure that the problem is related to CTT, not to the mods that provided the parts, bechause it only happens for certain nodes, and within these nodes, all parts are affected!

Some examples:

First node causing problems is short term habitation: As I am using SETI greenhouse mod, as well as Stockalike Station mod, the node contains both SETI greenhouses and the shanty habitation module. This is perfectly displayed in the r&d section. But when I want to build the parts, they do not appear in the VAB.

Same accounts for the node Artificial intelligence containing Interstellar's computer core.

As well as the node Experimental aerodynamics, which contains parts from several mods. None of them appear in the VAB after I researched the node.

What I did in order to solve the problem:

Having guessed that the problem is related to CTT rather than to the part providing mods, I edited the part's cfg's and changed their required node to another node that did not 'hide' any parts. And voila, the parts were perfectly buildable.

But since I think there might be a more generic solution than editing every config from every problematic node, I am asking you for help! Ever heard of this problem? I could not find anything related to this issue. So please help me, as this is getting more and more of a game breaker for me.....

Edited by pawelz
double post :/
Link to comment
Share on other sites

@pawelz: This may be a problem with updated mods with a current save game. If a mod part was originally in a node you have researched, but the mod then updates the part to one that you have not yet researched, it will appear in the tech tree in the original location but will not be available to build until you have it's new node.

Link to comment
Share on other sites

Whoops, I didn't realize what the community in the Community Tech Tree meant:confused: I'll try to get something to work with the current CTT.

No problem at all. Imho it would be great as an addon to the CTT, offering a different TechTree experience (empty nodes hidden).

Essentially much like my SETIctt addon to the CTT, which offers a start with probes and a more drawn out progression experience based on the CTT (changing many requirements from any to all, as RoverDude stated above).

Just different flavors of the same base, so each user can choose according to personal preferences.

Dearest ksp community!

I have found this gem and ever since thrown countless days of my fainting youth into it, never regretting any of them. Then I found the mods. Countless mods. Kept installing them, kept enjoying them. This was until now. Somehow a mod combination has caused trouble, and I think the trouble is related to the community tech tree.

Let me state my problem:

As I said, I already have a good share of mods installed (26 by now?), until very recently, never had a problem with them, all worked perfectly together. But now I realized that some parts from other mods, that are integrated into CTT, do not appear in the building section of the VAB. When I open the tech tree, the parts are listed in the correct CTT nodes, I can research them and then they appear unlocked in the tree. But when I want to build them onto my rocket (in the VAB), they are not listed there!! I am pretty sure that the problem is related to CTT, not to the mods that provided the parts, bechause it only happens for certain nodes, and within these nodes, all parts are affected!

Some examples:

First node causing problems is short term habitation: As I am using SETI greenhouse mod, as well as Stockalike Station mod, the node contains both SETI greenhouses and the shanty habitation module. This is perfectly displayed in the r&d section. But when I want to build the parts, they do not appear in the VAB.

Same accounts for the node Artificial intelligence containing Interstellar's computer core.

As well as the node Experimental aerodynamics, which contains parts from several mods. None of them appear in the VAB after I researched the node.

What I did in order to solve the problem:

Having guessed that the problem is related to CTT rather than to the part providing mods, I edited the part's cfg's and changed their required node to another node that did not 'hide' any parts. And voila, the parts were perfectly buildable.

But since I think there might be a more generic solution than editing every config from every problematic node, I am asking you for help! Ever heard of this problem? I could not find anything related to this issue. So please help me, as this is getting more and more of a game breaker for me.....

If the answer from BigFatStupidHead does not fix it, could you please provide a screenshot of your GameData folder?

Also maybe a screenshot from your TechTree, where one of the nodes is selected which should contain party you are missing in the VAB?

Also for the SETIgreenhouse, it is listed under Utility and named "SETI Greenhouse" (I have seen many users searching under G for Greenhouse instead of S).

Link to comment
Share on other sites

Thank you guys for the replies!

Unfortunately BigFatStupidHead's answer doesn't help as all the nodes that make problems have been researched after I installed (or updated) the respective mods.

@ Yemo: Searched every corner in the VAB, didn't find the greenhouse (or any other parts in the repsective nodes). After I moved the parts to other unproblematic nodes via cfg editing, I found them directly.

Here's the screenshots of my gamedata folder, I will add some of my techtree tonight when I am home.

eyJFNgsuj

idUmEyVdj

pcDovTWaj

Again, thank you for your help, feel free to make further suggestions;) if you need anything else, I will provide.

(P.S.: Hope it is ok to integrate the screenshots into the post, I didn't find another way to attach them...)

Link to comment
Share on other sites

Well, I do not know if that is the reason for the specific problem, but you should only ever have the latest module manager dll.

Multiple ones are a known cause for many problems.

Link to comment
Share on other sites

Hey, not sure exactly what's up, but I've got this and the Near Futures stuff installed; my tech tree contains a whole ton of "empty" nodes, and no Near Future propulsion parts. (It does have NF Solar, Electric & Construction.)

I downloaded and installed all of these mods in the few days, so everything should be up to date. Any idea what the problem is?

EDIT: I am an idiot and was looking in the wrong place. Near future tech is there after all, but still lots of empty nodes.

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