Jump to content

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


Nertea

Recommended Posts

Tried something new, by trying to to stock to stock node games. Tech tree persists on not showing up at all.


@RDNode:HAS[#id[advelectrics]]
{
//id = Offworld1
@title = Offworld Habitation
@description = Technology to live and work in space. Recruits are lining up to become Space Miners.
@cost = 50
@hideEmpty = False
//nodename = Pod1
@anyToUnlock = False
@icon = RDicon_rocketry-general
@pos = -2200,1800,-1
@scale = 0.6
@Parent
{
@parentID = basicrocketry
@linefrom = RIGHT
@lineto = LEFT
}
}


@PART[ServiceBay_125]:FINAL{
@TechRequired = Start
}

I strongly suggest trying out minor changes first, then check in game if they work.

Instead of editing a textfile for hours only to find you that the methology/syntax is wrong.

It is like starting serial production without testing a prototype.

Link to comment
Share on other sites

I strongly suggest trying out minor changes first, then check in game if they work.

Instead of editing a textfile for hours only to find you that the methology/syntax is wrong.

It is like starting serial production without testing a prototype.

;.;

Any idea what might be wrong, though?

Link to comment
Share on other sites

;.;

Any idea what might be wrong, though?

Give me two small patches you want to have corrected, eg changing one node in the techtree and adding changing one part to show up there.

Or should I use the ones above?

Also, using :FINAL is problematic if you want to distribute the mod, and not only use it privately. It is a major source of incompatibility.

It is better to just start your mods folder name with some letter from the end of the alphabet...

- - - Updated - - -

Also you could just take the CTT or the SETIctt configs as examples of techtree modding and work from there.

Link to comment
Share on other sites

Oh and thanks for the advice. I tried using the same language for one single node (renaming GeneralRocketry) and one single part (moving service bay into General Rocketry).

Good:

-The tech tree didn't dissapear. All the nodes are in their places.

Bad:

-The MM patches I wrote don't actually do anything. General Rocketry retains its title and the Service bay was in its original position.


@TechTree
}
@RDNode:HAS[#id[generalrocketry]]
{
@title = I did it
@description = Work, damnit.
@cost = 100
}
}
@PART[ServiceBay_125]:FINAL
{
@TechRequired = GeneralRocketry
}

Link to comment
Share on other sites

Oh and thanks for the advice. I tried using the same language for one single node (renaming GeneralRocketry) and one single part (moving service bay into General Rocketry).

Good:

-The tech tree didn't dissapear. All the nodes are in their places.

Bad:

-The MM patches I wrote don't actually do anything. General Rocketry retains its title and the Service bay was in its original position.


@TechTree
}
@RDNode:HAS[#id[generalrocketry]]
{
@title = I did it
@description = Work, damnit.
@cost = 100
}
}
@PART[ServiceBay_125]:FINAL
{
@TechRequired = GeneralRocketry
}

The tech name is generalRocketry, not generalrocketry or GeneralRocketry. Dont use FINAL if you want to distribute the mod.

Link to comment
Share on other sites

Tried this as well, no effect either, MManager throws error message during loading related to this file:


@RDNode:[HAS[#id[generalrocketry]]
{
@title = I did it
@description = Work, damnit.
@cost = 100
}


@PART[ServiceBay_125]
{
@TechRequired = GeneralRocketry
}

- - - Updated - - -

The tech name is generalRocketry, not generalrocketry or GeneralRocketry. Dont use FINAL if you want to distribute the mod.

...

Capitalization matters....?

Link to comment
Share on other sites

Also, there should be no [ in front of HAS, take a look at the CTT and SETIctt files.

That was a typo, this is the code I tested last.... to no effect.


@TechTree
}
@RDNode:HAS[#id[generalRocketry]]
{
@title = I did it
@description = Work, damnit.
@cost = 100
}
}
@PART[ServiceBay_25]
{
@TechRequired = generalRocketry
}

At least now, the module manager does not display an error message during loading.

Link to comment
Share on other sites

Have you tried modding the techtree without any other mods installed, except for module manager?

Is Rocktest the folder containing your configs?

Are your configs named whatever.cfg?

Link to comment
Share on other sites

Have you tried modding the techtree without any other mods installed, except for module manager?

Is Rocktest the folder containing your configs?

Are your configs named whatever.cfg?

Rocktest contains the Tree1.cfg file with the MM patches noted before.

I'll try running without mods.

Edit:

Yup, tested with only my patch, modulemanager and nothing else: No effect on the generalRocketry node whatsoever.

This is really frustrating. Four days now I'm trying to crack this mystery.

Edited by TruthQuark
Link to comment
Share on other sites

Just noticed that the bracket right below @TechTree goes into the wrong direction.

- - - Updated - - -

Edit: As said above, you could just use the configs from CTT or SETIctt as a basis...

Link to comment
Share on other sites

Just noticed that the bracket right below @TechTree goes into the wrong direction.

- - - Updated - - -

Edit: As said above, you could just use the configs from CTT or SETIctt as a basis...

BLOODY HELL IT FRIKKEN WORKED.

FOUR DAYS.

OVER 5 HOURS.

ALL BECAUSE OF ONE ******* BRACKET.

And because capitalization.

Link to comment
Share on other sites

BLOODY HELL IT FRIKKEN WORKED.

FOUR DAYS.

OVER 5 HOURS.

ALL BECAUSE OF ONE ******* BRACKET.

And because capitalization.

The first stuff to do when editing configs and something does not work, is clicking behind the last bracket to see if it corresponds to the right one.

Welcome to coding, where syntax matters ;-).

What text editor do you use?

Link to comment
Share on other sites

The first stuff to do when editing configs and something does not work, is clicking behind the last bracket to see if it corresponds to the right one.

Welcome to coding, where syntax matters ;-).

What text editor do you use?

Notepad++

Now I'm going to use Cntrl+H to replace away all my problems.

Edit: Applying the 'correct' syntax causes the tree to disappear as usual.

Edit: Here's the tech tree I'm trying to implement:


TechTree
{
RDNode
{
id = start
title = Tools from the Bunker
description = This is what we've salvaged from the bunkers.
cost = 0
hideEmpty = False
nodeName = start
anyToUnlock = False
icon = RDicon_start
pos = -2600,1200,-1
scale = 0.6
}
RDNode
{
id = Flight1
title = Flight
description = We found a plane relatively intact. We'll refurbish it for a cost.
cost = 10
hideEmpty = False
nodeName = Flight1
anyToUnlock = False
icon = RDicon_stability
pos = -2400,1400,-1
scale = 0.6
Parent
{
parentID = start
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Structural1
title = Basic Structures
description = We don't need the Bunker anymore. Let's dismantle it.
cost = 10
hideEmpty = False
nodeName = Structural1
anyToUnlock = False
icon = RDicon_stability
pos = -2400,1200,-1
scale = 0.6
Parent
{
parentID = start
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Electrical1
title = Battery Technology
description = I bet these are more useful in your hands than in these flashlights.
cost = 10
hideEmpty = False
nodeName = Electrical1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2400,1000,-1
scale = 0.6
Parent
{
parentID = start
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Flight2
title = Supersonic Flight
description = A half-molten jet engine buried in sand? Perfect for taking to the skies.
cost = 50
hideEmpty = False
nodeName = Flight2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2200,1400,-1
scale = 0.6
Parent
{
parentID = Flight1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Landing1
title = Landing
description = We threw table legs and some hydraulic pistons at the R&D team, and they returned with these.
cost = 30
hideEmpty = False
nodeName = Flight2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2300,1300,-1
scale = 0.6
Parent
{
parentID = Structural1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Landing2
title = Heavy Landing
description = If you put enough of these together, you can land anything.
cost = 75
hideEmpty = False
nodeName = Landing2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2100,1300,-1
scale = 0.6
Parent
{
parentID = Landing1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Structural2
title = Better Structures
description = Engineers were the most valued people underground. Let's see them put their skills to use.
cost = 50
hideEmpty = False
nodeName = Structural2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2200,1200,-1
scale = 0.6
Parent
{
parentID = Structural1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Electrical2
title = Solar Energy
description = Relics of our kind's last-ditch efforts to save the planet.
cost = 50
hideEmpty = False
nodeName = Electrical2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2200,1000,-1
scale = 0.6
Parent
{
parentID = Electrical1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Science1
title = Scientific Experiments
description = Going over the notes we brought with us into the bunkers again and again isn't going to teach us anything new. We need fresh data.
cost = 50
hideEmpty = False
nodeName = Science1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2200,800,-1
scale = 0.6
Parent
{
parentID = Electrical1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Science2
title = Laboratory Experiments
description = We've put our equipment in a sealed container. Now to find scientist willing to follow you into space...
cost = 100
hideEmpty = False
nodeName = Science2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,800,-1
scale = 0.6
Parent
{
parentID = Science1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Probe1
title = Salvaged Computers
description = We've wiped the files of all 'bunker entertainment', despite protests.
cost = 50
hideEmpty = False
nodeName = Probe1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,600,-1
scale = 0.6
Parent
{
parentID = Electrical1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Control1
title = Controls Mechanisms
description = These used to be toys.
cost = 50
hideEmpty = False
nodeName = Control1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,400,-1
scale = 0.6
Parent
{
parentID = Electrical1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Control2
title = Salvaged Computers
description = Our pilots complain that 'more gyroscopes' is not a substitute for a stable design.
cost = 100
hideEmpty = False
nodeName = Probe1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,600,-1
scale = 0.6
Parent
{
parentID = Electrical1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Flight3
title = Large Aircraft
description = This passenger plane met a terrible fate. Let's make the best of it.
cost = 100
hideEmpty = False
nodeName = Flight3
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,1400,-1
scale = 0.6
Parent
{
parentID = Flight2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket1
title = Large Aircraft
description = We're going to need engines better suited for space travel. Try these.
cost = 100
hideEmpty = False
nodeName = Rocket1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,1600,-1
scale = 0.6
Parent
{
parentID = Flight2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Structural3
title = Large Aircraft
description = We've got a wealth of scrap lying just under the surface. With the right tools, we can make just about anything.
cost = 100
hideEmpty = False
nodeName = Rocket1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,1200,-1
scale = 0.6
Parent
{
parentID = Structural2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Electrical3
title = Nuclear power
description = Hot, radioactive and heavy. Just what you need on your delicate spacecraft.
cost = 100
hideEmpty = False
nodeName = Electrical3
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,1000,-1
scale = 0.6
Parent
{
parentID = Electrical2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Probe2
title = Advanced Probes
description = You'd be amazed at what a few bored geeks can do to a circuit board after a hundred years underground.
cost = 100
hideEmpty = False
nodeName = Probe2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,600,-1
scale = 0.6
Parent
{
parentID = Probe1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket2
title = Heavy Rockets
description = By changing the scale on these diagrams, we can build bigger things.
cost = 200
hideEmpty = False
nodeName = Rocket2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1800,1600,-1
scale = 0.6
Parent
{
parentID = Rocket1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket3
title = Advanced Rockets
description = I think we know what we're doing by now.
cost = 400
hideEmpty = False
nodeName = Rocket3
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1600,1600,-1
scale = 0.6
Parent
{
parentID = Rocket2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket4
title = Huge Rockets
description = I'm just an Engineer. I'll leave refuelling these beasts in your hands.
cost = 800
hideEmpty = False
nodeName = Rocket4
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1400,1600,-1
scale = 0.6
Parent
{
parentID = Rocket3
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Probe3
title = High Performance Computing
description = We've copied the Bunker's AI over to these computers. Nothing will go wrong once we put a rocket under its control, I promise.
cost = 200
hideEmpty = False
nodeName = Rocket4
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1800,600,-1
scale = 0.6
Parent
{
parentID = Probe2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket5
title = Electric Rockets
description = Silent, efficient electric propulsion. The best solution to start saving fuel, don't you think?
cost = 200
hideEmpty = False
nodeName = Rocket4
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1800,1200,-1
scale = 0.6
Parent
{
parentID = Electrical3
lineFrom = RIGHT
lineTo = LEFT
}
Parent
{
parentID = Structural2
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket6
title = Advanced Electric Propulsion
description = Our newly formed 'Space Engineers' corp tell me that this is the technology of the future.
cost = 400
hideEmpty = False
nodeName = Rocket5
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1600,1200,-1
scale = 0.6
Parent
{
parentID = Rocket5
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket7
title = Plasma Rockets
description = We had to shut down power to the facility to test these. The Space Engineers tell me it's well worth it.
cost = 800
hideEmpty = False
nodeName = Rocket6
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1400,1200,-1
scale = 0.6
Parent
{
parentID = Rocket6
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Electrical4
title = Advanced Nuclear Reactors
description = It wasn't hard to find nuclear cores still active after all these years. Just follow the trail of molten, radioactive slag.
cost = 200
hideEmpty = False
nodeName = Electrical4
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1800,1000,-1
scale = 0.6
Parent
{
parentID = Electrical3
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Rocket8
title = Tiny Rockets
description = These rockets are very small...but it is one way to save on fuel.
cost = 150
hideEmpty = False
nodeName = Rocket8
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1800,1600,-1
scale = 0.6
Parent
{
parentID = Rocket1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Pod1
title = Space Pods
description = Aeroplane cockpits are fragile and it's a lot of hassle making them space-worthy. These pods were made from the ground-up as orbital vehicles.
cost = 150
hideEmpty = False
nodeName = Pod1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1900,1500,-1
scale = 0.6
Parent
{
parentID = Rocket1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Pod2
title = Command Modules
description = These are better suited for space travel, but they're unlikely to survive a landing.
cost = 250
hideEmpty = False
nodeName = Pod1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -1700,1500,-1
scale = 0.6
Parent
{
parentID = Pod1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Offworld1
title = Offworld Habitation
description = Technology to live and work in space. Recruits are lining up to become Space Miners.
cost = 50
hideEmpty = False
nodeName = Pod1
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2200,1800,-1
scale = 0.6
Parent
{
parentID = Flight1
lineFrom = RIGHT
lineTo = LEFT
}
}
RDNode
{
id = Offworld2
title = Colonization technology
description = I think it's time to move on from this dead planet.
cost = 100
hideEmpty = False
nodeName = offworld2
anyToUnlock = False
icon = RDicon_rocketry-general
pos = -2000,1800,-1
scale = 0.6
Parent
{
parentID = Offworld1
lineFrom = RIGHT
lineTo = LEFT
}
}


@PART[spotLight1]
{
@TechRequired = Start
}
@PART[spotLight2]
{
@TechRequired = Start
}
@PART[ServiceBay_125]
{
@TechRequired = Start
}
@PART[heatPipe]
{
@TechRequired = Start
}
@PART[JetEngine]
{
@TechRequired = Flight1
}
@PART[turboFanEngine]
{
@TechRequired = Flight1
}
@PART[Mark2Cockpit]
{
@TechRequired = Flight1
}
@PART[Mark1Cockpit]
{
@TechRequired = Flight1
}
@PART[fuelLine]
{
@TechRequired = Flight1
}
@PART[fuelTankSmallFlat]
{
@TechRequired = Flight1
}
@PART[fuelTankSmall]
{
@TechRequired = Flight1
}
@PART[fuelTank]
{
@TechRequired = Flight1
}
@PART[MK1Fuselage]
{
@TechRequired = Flight1
}
@PART[fuelTank_long]
{
@TechRequired = Flight1
}
@PART[GearFixed]
{
@TechRequired = Flight1
}
@PART[GearFree]
{
@TechRequired = Flight1
}
@PART[radialDrogue]
{
@TechRequired = Flight1
}
@PART[parachuteRadial]
{
@TechRequired = Flight1
}
@PART[parachuteDrogue]
{
@TechRequired = Flight1
}
@PART[parachuteSingle]
{
@TechRequired = Flight1
}
@PART[telescopicLadderBay]
{
@TechRequired = Flight1
}
@PART[SmallGearBay]
{
@TechRequired = Flight1
}
@PART[dockingPort3]
{
@TechRequired = Flight1
}
@PART[parachuteLarge]
{
@TechRequired = Flight1
}
@PART[basicFin]
{
@TechRequired = Flight1
}
@PART[standardNoseCone]
{
@TechRequired = Flight1
}
@PART[rocketNoseCone]
{
@TechRequired = Flight1
}
@PART[airbrake1]
{
@TechRequired = Flight1
}
@PART[winglet]
{
@TechRequired = Flight1
}
@PART[wingConnector4]
{
@TechRequired = Flight1
}
@PART[wingConnector5]
{
@TechRequired = Flight1
}
@PART[structuralWing4]
{
@TechRequired = Flight1
}
@PART[delta_small]
{
@TechRequired = Flight1
}
@PART[noseCone]
{
@TechRequired = Flight1
}
@PART[wingConnector3]
{
@TechRequired = Flight1
}
@PART[structuralWing3]
{
@TechRequired = Flight1
}
@PART[pointyNoseConeA]
{
@TechRequired = Flight1
}
@PART[pointyNoseConeB]
{
@TechRequired = Flight1
}
@PART[StandardCtrlSrf]
{
@TechRequired = Flight1
}
@PART[smallCtrlSrf]
{
@TechRequired = Flight1
}
@PART[wingStrake]
{
@TechRequired = Flight1
}
@PART[wingConnector]
{
@TechRequired = Flight1
}
@PART[wingConnector2]
{
@TechRequired = Flight1
}
@PART[structuralWing]
{
@TechRequired = Flight1
}
@PART[structuralWing2]
{
@TechRequired = Flight1
}
@PART[sweptWing1]
{
@TechRequired = Flight1
}
@PART[sweptWing2]
{
@TechRequired = Flight1
}
@PART[elevon2]
{
@TechRequired = Flight1
}
@PART[tailfin]
{
@TechRequired = Flight1
}
@PART[winglet3]
{
@TechRequired = Flight1
}
@PART[deltaWing]
{
@TechRequired = Flight1
}
@PART[sweptWing]
{
@TechRequired = Flight1
}
@PART[R8winglet]
{
@TechRequired = Flight1
}
@PART[elevon3]
{
@TechRequired = Flight1
}
@PART[airplaneTail]
{
@TechRequired = Flight1
}
@PART[airplaneTailB]
{
@TechRequired = Flight1
}
@PART[CircularIntake]
{
@TechRequired = Flight1
}
@PART[MK1IntakeFuselage]
{
@TechRequired = Flight1
}
@PART[elevon5]
{
@TechRequired = Flight1
}
@PART[airScoop]
{
@TechRequired = Flight1
}
@PART[nacelleBody]
{
@TechRequired = Flight1
}
@PART[ramAirIntake]
{
@TechRequired = Flight1
}
@PART[smallHardpoint]
{
@TechRequired = Flight1
}
@PART[Mk1FuselageStructural]
{
@TechRequired = Flight1
}
@PART[mk2SpacePlaneAdapter]
{
@TechRequired = Structural1
}
@PART[radialDecoupler2]
{
@TechRequired = Structural1
}
@PART[structuralIBeam3]
{
@TechRequired = Structural1
}
@PART[strutCube]
{
@TechRequired = Structural1
}
@PART[strutOcto]
{
@TechRequired = Structural1
}
@PART[structuralIBeam2]
{
@TechRequired = Structural1
}
@PART[trussPiece1x]
{
@TechRequired = Structural1
}
@PART[structuralPanel1]
{
@TechRequired = Structural1
}
@PART[strutConnector]
{
@TechRequired = Structural1
}
@PART[structuralIBeam1]
{
@TechRequired = Structural1
}
@PART[adapterSmallMiniShort]
{
@TechRequired = Structural1
}
@PART[adapterSmallMiniTall]
{
@TechRequired = Structural1
}
@PART[stackDecouplerMini]
{
@TechRequired = Structural1
}
@PART[stackDecoupler]
{
@TechRequired = Structural1
}
@PART[stackBiCoupler]
{
@TechRequired = Structural1
}
@PART[stackSeparatorMini]
{
@TechRequired = Structural1
}
@PART[largeAdapter2]
{
@TechRequired = Structural1
}
@PART[largeAdapter]
{
@TechRequired = Structural1
}
@PART[decoupler1-2]
{
@TechRequired = Structural1
}
@PART[radialDecoupler]
{
@TechRequired = Structural1
}
@PART[batteryPack]
{
@TechRequired = Electrical1
}
@PART[batteryBankMini]
{
@TechRequired = Electrical1
}
@PART[ksp_r_largeBatteryPack]
{
@TechRequired = Electrical1
}
@PART[FuelCell]
{
@TechRequired = Electrical1
}
@PART[batteryBank]
{
@TechRequired = Electrical1
}
@PART[batteryBankLarge]
{
@TechRequired = Electrical1
}
@PART[battery-125]
{
@TechRequired = Electrical1
}
@PART[battery-375]
{
@TechRequired = Electrical1
}
@PART[battery-25]
{
@TechRequired = Electrical1
}
@PART[FuelCellArray]
{
@TechRequired = Electrical1
}
@PART[MKS_DockingPort]
{
@TechRequired = Offworld1
}
@PART[MKS_RadialTank]
{
@TechRequired = Offworld1
}
@PART[OKS_Storage_ILM]
{
@TechRequired = Offworld1
}
@PART[OKS_AgModule]
{
@TechRequired = Offworld1
}
@PART[OKS_HabRing]
{
@TechRequired = Offworld1
}
@PART[OKS_Workspace]
{
@TechRequired = Offworld1
}
@PART[RadialDrill]
{
@TechRequired = Offworld1
}
@PART[ISRU]
{
@TechRequired = Offworld1
}
@PART[OKS_PDU]
{
@TechRequired = Offworld1
}
@PART[SmallTank]
{
@TechRequired = Offworld1
}
@PART[LargeTank]
{
@TechRequired = Offworld1
}
@PART[crewCabin]
{
@TechRequired = Offworld1
}
@PART[OKS_ColonyHub]
{
@TechRequired = Offworld1
}
@PART[OKS_Kerbitat]
{
@TechRequired = Offworld1
}
@PART[MK3_FuelRefinery]
{
@TechRequired = Offworld1
}
@PART[MK3_Refinery]
{
@TechRequired = Offworld1
}
@PART[MK3_Fabricator]
{
@TechRequired = Offworld1
}
@PART[MKS_EL_LaunchPad]
{
@TechRequired = Offworld1
}
@PART[OKS_Aeroponics]
{
@TechRequired = Offworld1
}
@PART[MKS_OctoLander]
{
@TechRequired = Offworld1
}
@PART[MKS_PDU]
{
@TechRequired = Offworld1
}
@PART[MKS_ModuleBase]
{
@TechRequired = Offworld1
}
@PART[MKS_MobileBase]
{
@TechRequired = Offworld1
}
@PART[MKS_Workspace]
{
@TechRequired = Offworld1
}
@PART[MKS_Storage_ILM]
{
@TechRequired = Offworld1
}
@PART[MKS_HabDome]
{
@TechRequired = Offworld1
}
@PART[MKS_AgModule]
{
@TechRequired = Offworld1
}
@PART[MKS_ExpandoTube_Mini]
{
@TechRequired = Offworld1
}
@PART[MKS_ExpandoTube4]
{
@TechRequired = Offworld1
}
@PART[MKS_ExpandoTube_XL]
{
@TechRequired = Offworld1
}
@PART[OKS_Cap]
{
@TechRequired = Offworld1
}
@PART[OKS_Hub]
{
@TechRequired = Offworld1
}
@PART[OKS_LgHub]
{
@TechRequired = Offworld1
}
@PART[OKS_Tube]
{
@TechRequired = Offworld1
}
@PART[OKS_Tube_Lg]
{
@TechRequired = Offworld1
}
@PART[MKS_RigidTube]
{
@TechRequired = Offworld1
}
@PART[MKS_FlexOTube]
{
@TechRequired = Offworld1
}
@PART[nuclear-recycler-25]
{
@TechRequired = Offworld2
}
@PART[MKS_DRILL_01]
{
@TechRequired = Offworld2
}
@PART[MKS_DRILL_02]
{
@TechRequired = Offworld2
}
@PART[MKS_Kerbitat]
{
@TechRequired = Offworld2
}
@PART[MKS_ColonyHub]
{
@TechRequired = Offworld2
}
@PART[MK3_Akademy]
{
@TechRequired = Offworld2
}
@PART[MKS_LogisticsHub]
{
@TechRequired = Offworld2
}
@PART[MKS_Aeroponics]
{
@TechRequired = Offworld2
}
@PART[MKS_EL_OrbitalDock]
{
@TechRequired = Offworld2
}
@PART[RAPIER]
{
@TechRequired = Flight2
}
@PART[mk2Cockpit_Standard]
{
@TechRequired = Flight2
}
@PART[mk2Cockpit_Inline]
{
@TechRequired = Flight2
}
@PART[mk2CargoBayS]
{
@TechRequired = Flight2
}
@PART[dockingPortLateral]
{
@TechRequired = Flight2
}
@PART[mk2CargoBayL]
{
@TechRequired = Flight2
}
@PART[mk2CrewCabin]
{
@TechRequired = Flight2
}
@PART[dockingPort2]
{
@TechRequired = Flight2
}
@PART[mk2DockingPort]
{
@TechRequired = Flight2
}
@PART[mk2FuselageShortLFO]
{
@TechRequired = Flight2
}
@PART[mk2FuselageShortLiquid]
{
@TechRequired = Flight2
}
@PART[mk2FuselageShortMono]
{
@TechRequired = Flight2
}
@PART[mk2_1m_Bicoupler]
{
@TechRequired = Flight2
}
@PART[mk2_1m_AdapterLong]
{
@TechRequired = Flight2
}
@PART[mk2FuselageLongLFO]
{
@TechRequired = Flight2
}
@PART[mk2Fuselage]
{
@TechRequired = Flight2
}
@PART[IntakeRadialLong]
{
@TechRequired = Flight2
}
@PART[wingShuttleStrake]
{
@TechRequired = Flight2
}
@PART[wingShuttleElevon2]
{
@TechRequired = Flight2
}
@PART[radialEngineBody]
{
@TechRequired = Flight2
}
@PART[wingShuttleRudder]
{
@TechRequired = Flight2
}
@PART[wingShuttleDelta]
{
@TechRequired = Flight2
}
@PART[shockConeIntake]
{
@TechRequired = Flight2
}
@PART[wingShuttleElevon1]
{
@TechRequired = Flight2
}
@PART[AdvancedCanard]
{
@TechRequired = Flight2
}
@PART[CanardController]
{
@TechRequired = Flight2
}
@PART[structuralPylon]
{
@TechRequired = Flight2
}
@PART[ladder1]
{
@TechRequired = Landing1
}
@PART[miniLandingLeg]
{
@TechRequired = Landing1
}
@PART[telescopicLadder]
{
@TechRequired = Landing1
}
@PART[landingLeg1]
{
@TechRequired = Landing1
}
@PART[roverWheel2]
{
@TechRequired = Landing1
}
@PART[roverWheel1]
{
@TechRequired = Landing1
}
@PART[GrapplingDevice]
{
@TechRequired = Structural2
}
@PART[noseConeAdapter]
{
@TechRequired = Structural2
}
@PART[adapterLargeSmallQuad]
{
@TechRequired = Structural2
}
@PART[structuralMiniNode]
{
@TechRequired = Structural2
}
@PART[launchClamp1]
{
@TechRequired = Structural2
}
@PART[adapterLargeSmallBi]
{
@TechRequired = Structural2
}
@PART[adapterLargeSmallTri]
{
@TechRequired = Structural2
}
@PART[stackTriCoupler]
{
@TechRequired = Structural2
}
@PART[stationHub]
{
@TechRequired = Structural2
}
@PART[stackSeparator]
{
@TechRequired = Structural2
}
@PART[stackPoint1]
{
@TechRequired = Structural2
}
@PART[stackQuadCoupler]
{
@TechRequired = Structural2
}
@PART[solarPanels5]
{
@TechRequired = Electrical2
}
@PART[solarPanels4]
{
@TechRequired = Electrical2
}
@PART[solarPanels3]
{
@TechRequired = Electrical2
}
@PART[solarPanels2]
{
@TechRequired = Electrical2
}
@PART[solarPanels1]
{
@TechRequired = Electrical2
}
@PART[battery-rad-125]
{
@TechRequired = Electrical2
}
@PART[largeSolarPanel]
{
@TechRequired = Electrical2
}
@PART[battery-0625]
{
@TechRequired = Electrical2
}
@PART[GooExperiment]
{
@TechRequired = Science1
}
@PART[science_module]
{
@TechRequired = Science1
}
@PART[sensorThermometer]
{
@TechRequired = Science1
}
@PART[sensorBarometer]
{
@TechRequired = Science1
}
@PART[sensorAccelerometer]
{
@TechRequired = Science1
}
@PART[sensorGravimeter]
{
@TechRequired = Science1
}
@PART[SurfaceScanner]
{
@TechRequired = Science1
}
@PART[OrbitalScanner]
{
@TechRequired = Science1
}
@PART[probeCoreSphere]
{
@TechRequired = Probe1
}
@PART[probeCoreOcto]
{
@TechRequired = Probe1
}
@PART[probeCoreHex]
{
@TechRequired = Probe1
}
@PART[roverBody]
{
@TechRequired = Probe1
}
@PART[longAntenna]
{
@TechRequired = Probe1
}
@PART[sasModule]
{
@TechRequired = Control1
}
@PART[advSasModule]
{
@TechRequired = Control1
}
@PART[asasmodule1-2]
{
@TechRequired = Control1
}
@PART[avionicsNoseCone]
{
@TechRequired = Control1
}
@PART[mk3Cockpit_Shuttle]
{
@TechRequired = Flight3
}
@PART[mk3CargoBayM]
{
@TechRequired = Flight3
}
@PART[mk3CargoBayL]
{
@TechRequired = Flight3
}
@PART[mk3CrewCabin]
{
@TechRequired = Flight3
}
@PART[mk3CargoBayS]
{
@TechRequired = Flight3
}
@PART[airlinerCtrlSrf]
{
@TechRequired = Flight3
}
@PART[airlinerTailFin]
{
@TechRequired = Flight3
}
@PART[airlinerMainWing]
{
@TechRequired = Flight3
}
@PART[adapterMk3-Mk2]
{
@TechRequired = Flight3
}
@PART[adapterMk3-Size2]
{
@TechRequired = Flight3
}
@PART[adapterMk3-Size2Slant]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLFO_25]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLF_25]
{
@TechRequired = Flight3
}
@PART[mk3FuselageMONO]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLFO_50]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLF_50]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLFO_100]
{
@TechRequired = Flight3
}
@PART[mk3FuselageLF_100]
{
@TechRequired = Flight3
}
@PART[elevonMk3]
{
@TechRequired = Flight3
}
@PART[solidBooster_sm]
{
@TechRequired = Rocket1
}
@PART[radialLiquidEngine1-2]
{
@TechRequired = Rocket1
}
@PART[liquidEngine]
{
@TechRequired = Rocket1
}
@PART[liquidEngine2]
{
@TechRequired = Rocket1
}
@PART[dockingPort1]
{
@TechRequired = Rocket1
}
@PART[fairingSize1]
{
@TechRequired = Rocket1
}
@PART[landingLeg1-2]
{
@TechRequired = Landing2
}
@PART[GearLarge]
{
@TechRequired = Landing2
}
@PART[wheelMed]
{
@TechRequired = Landing2
}
@PART[roverWheel3]
{
@TechRequired = Landing2
}
@PART[GearMedium]
{
@TechRequired = Landing2
}
@PART[Size3to2Adapter]
{
@TechRequired = Structural3
}
@PART[MKS_375_OCTO]
{
@TechRequired = Structural3
}
@PART[radialDecoupler1-2]
{
@TechRequired = Structural3
}
@PART[trussAdapter]
{
@TechRequired = Structural3
}
@PART[trussPiece3x]
{
@TechRequired = Structural3
}
@PART[structuralPanel2]
{
@TechRequired = Structural3
}
@PART[size3Decoupler]
{
@TechRequired = Structural3
}
@PART[stackSeparatorBig]
{
@TechRequired = Structural3
}
@PART[radiator-fixed-1]
{
@TechRequired = Electrical3
}
@PART[heatInsulator-125-1]
{
@TechRequired = Electrical3
}
@PART[heatInsulator-25-1]
{
@TechRequired = Electrical3
}
@PART[heatInsulator-375-1]
{
@TechRequired = Electrical3
}
@PART[radiator-universal-1]
{
@TechRequired = Electrical3
}
@PART[radiator-conformal-1]
{
@TechRequired = Electrical3
}
@PART[radiator-conformal-2]
{
@TechRequired = Electrical3
}
@PART[radiator-conformal-3]
{
@TechRequired = Electrical3
}
@PART[radiator-universal-2]
{
@TechRequired = Electrical3
}
@PART[reactor-0625]
{
@TechRequired = Electrical3
}
@PART[rtg]
{
@TechRequired = Electrical3
}
@PART[rtg-0625]
{
@TechRequired = Electrical3
}
@PART[reactor-125]
{
@TechRequired = Electrical3
}
@PART[nuclearfuel-0625]
{
@TechRequired = Electrical3
}
@PART[nuclearfuel-125]
{
@TechRequired = Electrical3
}
@PART[Large_Crewed_Lab]
{
@TechRequired = Science2
}
@PART[SurveyScanner]
{
@TechRequired = Science2
}
@PART[sensorAtmosphere]
{
@TechRequired = Science2
}
@PART[MKS_Antenna]
{
@TechRequired = Science2
}
@PART[mk2DroneCore]
{
@TechRequired = Probe3
}
@PART[probeStackSmall]
{
@TechRequired = Probe3
}
@PART[probeCoreOcto2]
{
@TechRequired = Probe3
}
@PART[mediumDishAntenna]
{
@TechRequired = Probe3
}
@PART[linearRcs]
{
@TechRequired = Control2
}
@PART[RCSBlock]
{
@TechRequired = Control2
}
@PART[vernierEngine]
{
@TechRequired = Control2
}
@PART[rcsTankMini]
{
@TechRequired = Control2
}
@PART[radialRCSTank]
{
@TechRequired = Control2
}
@PART[rcsTankRadialLong]
{
@TechRequired = Control2
}
@PART[RCSFuelTank]
{
@TechRequired = Control2
}
@PART[RCSTank1-2]
{
@TechRequired = Control2
}
@PART[solidBooster]
{
@TechRequired = Rocket2
}
@PART[liquidEngine1-2]
{
@TechRequired = Rocket2
}
@PART[solidBooster1-1]
{
@TechRequired = Rocket2
}
@PART[dockingPortLarge]
{
@TechRequired = Rocket2
}
@PART[fairingSize2]
{
@TechRequired = Rocket2
}
@PART[adapterSize2-Mk2]
{
@TechRequired = Rocket2
}
@PART[adapterSize2-Size1]
{
@TechRequired = Rocket2
}
@PART[adapterSize2-Size1Slant]
{
@TechRequired = Rocket2
}
@PART[liquidEngineMini]
{
@TechRequired = Rocket3
}
@PART[liquidEngine2-2]
{
@TechRequired = Rocket3
}
@PART[toroidalAerospike]
{
@TechRequired = Rocket3
}
@PART[engineLargeSkipper]
{
@TechRequired = Rocket3
}
@PART[MassiveBooster]
{
@TechRequired = Rocket3
}
@PART[Size2LFB]
{
@TechRequired = Rocket3
}
@PART[fuelTank2-2]
{
@TechRequired = Rocket3
}
@PART[fuelTank1-2]
{
@TechRequired = Rocket3
}
@PART[fuelTank4-2]
{
@TechRequired = Rocket3
}
@PART[fuelTank3-2]
{
@TechRequired = Rocket3
}
@PART[Size3EngineCluster]
{
@TechRequired = Rocket4
}
@PART[Size3AdvancedEngine]
{
@TechRequired = Rocket4
}
@PART[Size3LargeTank]
{
@TechRequired = Rocket4
}
@PART[Size3MediumTank]
{
@TechRequired = Rocket4
}
@PART[Size3SmallTank]
{
@TechRequired = Rocket4
}
@PART[nuclearEngine]
{
@TechRequired = Rocket4
}
@PART[fairingSize3]
{
@TechRequired = Rocket4
}
@PART[HeatShield3]
{
@TechRequired = Rocket4
}
@PART[adapterSize3-Mk3]
{
@TechRequired = Rocket4
}
@PART[InterstellarGasTank-PB-X50R]
{
@TechRequired = Rocket4
}
@PART[InterstellarGasTank_PB-Stack]
{
@TechRequired = Rocket4
}
@PART[probeCoreCube]
{
@TechRequired = Probe3
}
@PART[probeStackLarge]
{
@TechRequired = Probe3
}
@PART[commDish]
{
@TechRequired = Probe3
}
@PART[ionArgon-0625]
{
@TechRequired = Rocket5
}
@PART[ionArgon-0625-2]
{
@TechRequired = Rocket5
}
@PART[ionXenon-0625]
{
@TechRequired = Rocket5
}
@PART[ionXenon-0625-2]
{
@TechRequired = Rocket5
}
@PART[ionXenon-125]
{
@TechRequired = Rocket5
}
@PART[ionXenon-0625-3]
{
@TechRequired = Rocket5
}
@PART[ionArgon-125]
{
@TechRequired = Rocket5
}
@PART[ionXenon-25]
{
@TechRequired = Rocket5
}
@PART[ionEngine]
{
@TechRequired = Rocket5
}
@PART[capacitor-rad-0625]
{
@TechRequired = Rocket5
}
@PART[capacitor-0625]
{
@TechRequired = Rocket5
}
@PART[capacitor-rad-0625-2]
{
@TechRequired = Rocket5
}
@PART[capacitor-125]
{
@TechRequired = Rocket5
}
@PART[capacitor-25]
{
@TechRequired = Rocket5
}
@PART[argon-radial-0625-1]
{
@TechRequired = Rocket5
}
@PART[argon-radial-125-1]
{
@TechRequired = Rocket5
}
@PART[argon-25-1]
{
@TechRequired = Rocket5
}
@PART[argon-25-2]
{
@TechRequired = Rocket5
}
@PART[argon-25-3]
{
@TechRequired = Rocket5
}
@PART[argon-0625-3]
{
@TechRequired = Rocket5
}
@PART[argon-0625-2]
{
@TechRequired = Rocket5
}
@PART[argon-125-3]
{
@TechRequired = Rocket5
}
@PART[argon-0625-1]
{
@TechRequired = Rocket5
}
@PART[argon-125-2]
{
@TechRequired = Rocket5
}
@PART[xenon-radial-125-1]
{
@TechRequired = Rocket5
}
@PART[argon-125-1]
{
@TechRequired = Rocket5
}
@PART[xenon-125-3]
{
@TechRequired = Rocket5
}
@PART[xenonTank]
{
@TechRequired = Rocket5
}
@PART[xenonTankRadial]
{
@TechRequired = Rocket5
}
@PART[xenon-125-2]
{
@TechRequired = Rocket5
}
@PART[xenon-125-1]
{
@TechRequired = Rocket5
}
@PART[xenon-25-3]
{
@TechRequired = Rocket5
}
@PART[xenon-25-2]
{
@TechRequired = Rocket5
}
@PART[xenon-25-1]
{
@TechRequired = Rocket5
}
@PART[xenonTankLarge]
{
@TechRequired = Rocket5
}
@PART[pit-25]
{
@TechRequired = Rocket6
}
@PART[pit-125]
{
@TechRequired = Rocket6
}
@PART[pit-0625]
{
@TechRequired = Rocket6
}
@PART[reactor-25]
{
@TechRequired = Electrical4
}
@PART[reactor-375]
{
@TechRequired = Electrical4
}
@PART[reactor-25-2]
{
@TechRequired = Electrical4
}
@PART[nuclearfuel-25]
{
@TechRequired = Electrical4
}
@PART[vasimr-25]
{
@TechRequired = Rocket7
}
@PART[vasimr-125]
{
@TechRequired = Rocket7
}
@PART[vasimr-0625]
{
@TechRequired = Rocket7
}
@PART[mpdt-25]
{
@TechRequired = Rocket7
}
@PART[mpdt-125]
{
@TechRequired = Rocket7
}
@PART[mpdt-0625]
{
@TechRequired = Rocket7
}
@PART[hydrogen-10-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-125-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-125-2]
{
@TechRequired = Rocket7
}
@PART[hydrogen-25-2]
{
@TechRequired = Rocket7
}
@PART[hydrogen-375-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-25-3]
{
@TechRequired = Rocket7
}
@PART[hydrogen-25-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-375-2]
{
@TechRequired = Rocket7
}
@PART[hydrogen-375-3]
{
@TechRequired = Rocket7
}
@PART[hydrogen-radial-125-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-radial-25-1]
{
@TechRequired = Rocket7
}
@PART[hydrogen-radial-375-1]
{
@TechRequired = Rocket7
}
@PART[sepMotor1]
{
@TechRequired = Rocket8
}
@PART[microEngine]
{
@TechRequired = Rocket8
}
@PART[radialEngineMini]
{
@TechRequired = Rocket8
}
@PART[omsEngine]
{
@TechRequired = Rocket8
}
@PART[smallRadialEngine]
{
@TechRequired = Rocket8
}
@PART[liquidEngine3]
{
@TechRequired = Rocket8
}
@PART[miniFuelTank]
{
@TechRequired = Rocket8
}
@PART[toroidalFuelTank]
{
@TechRequired = Rocket8
}
@PART[LaunchEscapeSystem]
{
@TechRequired = Rocket8
}
@PART[mk1pod]
{
@TechRequired = pod1
}
@PART[Mark1-2Pod]
{
@TechRequired = pod1
}
@PART[HeatShield1]
{
@TechRequired = pod1
}
@PART[seatExternalCmd]
{
@TechRequired = start
}
@PART[landerCabinSmall]
{
@TechRequired = start
}
@PART[cupola]
{
@TechRequired = start
}
@PART[mk2LanderCabin]
{
@TechRequired = start
}
@PART[HeatShield2]
{
@TechRequired = start
}
@PART[ServiceBay_250]
{
@TechRequired = start
}

If I just delete Squad's tech tree and place this one in its place, the custom nodes appear with correct prices, position and titles. However, they are devoid of parts (all empty) for no discernible reason.

Edited by TruthQuark
Link to comment
Share on other sites

I solved the problem with a chance discovery:

To make your own custom tech tree work, you have to... copy a version of the stock tech tree into your own .cfg

No need for module manager syntax.

It's senseless, but it works.

I have custom nodes with parts being placed properly.

Link to comment
Share on other sites

I was hoping that someone could tell me what mods fill the "enhanced survivability" and the "simple command modules" nodes in the tech tree. I would just like to feel like im not wasting tech points with the empty nodes. thank you in advance

Link to comment
Share on other sites

Anybody know what mod goes into the colonization tab, right after all the MKS/OKS stuff which is in Long term habitation? Also ideas for colossal rocketry?

Link to comment
Share on other sites

Ahh sweet @roverdude. Also is there a filled community tech tree diagram where I can see all the mods that slot in? For example some of the command pod nodes are empty, colossal rocketry, some of the nuke nodes etc. The list in the OP has only 3-4 mods but there are quite a few of them already that slot themselves pretty nicely that are not listed there. Thank you for your work sir o7

Link to comment
Share on other sites

Hi all,

been a passive watcher for several months and had a lot of fun with the CTT so far. Since I had some ideas for editing the nodes for several stock parts for my personal install (e.g. Why is the Launch Escape System located in the "Landing" node - usually launch escape systems have little to do with what I would refer to as landing and the CTT offers so many new, better fits for that particular part), I've updated the gliffy of CTT v2.1 based on Nertea's file and resized it to include all stock parts (or so I hope, at least).

Quick by the way question: Is this something you CTT curators might be open to discussing, or is your philosophy to leave stock exactly as-is and only provide a platform for mods to be sorted into the tree?

Planning to improve on it in the future and add modded parts to a certain extent (unfortunately there are some size limits to Gliffy) but for now, if you find it useful, please feel free to include it in the OP.

Here's the link to the gliffy (takes quite a while to load): http://www.gliffy.com/go/publish/8187009

Here's the tree as a .png image: http://www.gliffy.com/go/publish/image/8187009/L.png

Thanks for all the great work, Nertea and team!

Link to comment
Share on other sites

I've seen a couple posts about this, but no concrete answer (I think); Will you consider making "hideEmpty = True" the default instead of "False"? CTT has a lot of nodes, several of which are empty for me. On KerbalStuff you have this little snippet:

As of version 2.0, you are also responsible for unhiding the tech nodes you wish to use, as well as any that are required to get to that node. This is also done via an MM patch, can be placed in the same file.

So it seems like now it's the modder's responsibility to make sure that empty nodes don't show up, unless their part requires an earlier tech node which may not have parts in it. I like this method better than having "hideEmpty = False" as the default. It's a bit more work for modders, but would make everything look much cleaner.

I'm also wondering if it's easy enough to use MM to change the position and parent of a node if the node before it is empty (i.e. hideEmpty = True)? That would be awesome. I might play around with this idea:wink:

Link to comment
Share on other sites

Well, I have taken a different approach. Instead of forcing my player to accept a CTT with many empty nodes, When CTT is not installed, I simply define the CTT nodes I need for KSPI. When CTT is installed, it disables this functionality and let CTT mod define the technodes. This way I'm not interfering with any other mod that relies on CTT.

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