#Tech Tree Manager + Editor

1 messages · Page 1 of 1 (latest)

twilit wedge
#

Tech Tree Manager + Editor

features:

  • Tech Tree Manager
    • Tree Manager - User can select the tree they want to use
    • No code required - all done with json files
    • Horizontal scroll
    • mouse wheel support
    • Node hiding - unlock requirements, previous nodes, location event, science points
  • Editor
    • Web based
    • Part importer - so modded parts can also work
    • TTM json file or Patch Manager file
    • localisation generation
    • KWP support - edit and test in game + live reload
sonic delta
#

Whoa you're so quick !!! Excellent

twilit wedge
#

localisation added

twilit wedge
#

started work on the node editor now

#

the last box there is a multi select so you can pick what nodes is required to unlock the node

shrewd dawn
#

Are you planning on adding colors to the nodes to represent the different tiers? (Like Rimworld's Research Tree mod)

twilit wedge
#

thats a cool idea. maybe in the future.

twilit wedge
twilit wedge
#

tree export done. import next

#

the export works

twilit wedge
#

node positions added

twilit wedge
#

mod release later today

#

@dreamy juniper if you could make a JSON to PM converter js lib I can add that to this.

dreamy juniper
#

Aaaa
Could you add the ability to edit the unlocked parts

twilit wedge
#

yes thats the next stuff to add

#

I want to do a drag and drop thing but for now I will just do the multi selector

dreamy juniper
#

Mostly cuz if I add the patch manager output, I'm going to use this for my mod

#

And I need to start working on a web gui for missions soon

#

Because hand writing missions is hard

twilit wedge
#

later today I will move the ttm editor repo to the ksp2community repo

#

do we have a parts list

dreamy juniper
#

I'd just make the parts editor a multiline text box tbh

twilit wedge
#

just need a json file of all the games parts

dreamy juniper
twilit wedge
#

hmmm

dreamy juniper
#

So you want a javascript library to convert a json file to a pm patch
That isnt too hard, just need to remember how to write a javascript library

twilit wedge
dreamy juniper
#

Its not like I havent already written it once in C# lol

twilit wedge
#

XD

dreamy juniper
#

For KSP2 unity tools

twilit wedge
#

will also be helpful for the mission editor.

dreamy juniper
#

The mission editor is gonna be aaaa
I need to write it, but its going to be a pain

twilit wedge
#

I already want to remake the ttm editor since its a bit messy.

#

but it works

twilit wedge
dreamy juniper
#

Gotcha, ill work on the pm stuff when I get out of bed

twilit wedge
#

I should get back to work tbh

#

2 main things left to do with the editor:

  • node add and remove
  • localisation save (for name and description)
#

Secondary tasks:

  • new tech tree button (creates blank tree)
  • Part selector, drag and drop
  • part importer
dreamy juniper
#

The UI is very broken for me?

twilit wedge
#

uhhhhh

#

what why

#

how

#

what browser?

#

any errors in the log?

dreamy juniper
#

chrome

#

no errors

twilit wedge
#

hmmm

#

ah crap

#

window.screensize dont get the window size

dreamy juniper
#

ahh yeah 1440p if that helps

twilit wedge
#

ye I just tested it on my laptop screen

#

ffs

#

ok pushed a fix

#

hope it works

dreamy juniper
#

It does

dreamy juniper
#

@twilit wedge

#

auto generated from the json

#

or with the correct ruleset

twilit wedge
#

Cool. ruleset, name, is_new=false, constructor_args=[] can you let me know what these do

dreamy juniper
#

Okay so ruleset is the :science at the start of the patch

#

console.log(json_to_pm(tNode_2v_electronics_02,"science","tNode_2v_electronics_02")) which I pass in as science here

#

name is the #tNode_2v_electronics_02

#

is_new is if this is creating a new asset that doesn't already exist

#

and constructor_args are the arguments to @new() passed in that case

#

So if I do this console.log(json_to_pm(tNode_2v_electronics_02,"science","tNode_2v_electronics_02",true,["tNode_2v_electronics_02"]))

#
@new("tNode_2v_electronics_02")
:science {
    Version: 9;
    ID: "tNode_2v_electronics_02";
    NameLocKey: "Science/TechNodes/Names/tNode_2v_electronics_02";
    IconID: "ICO-RDCenter-Power-24x";
    CategoryID: "";
    HiddenByNodeID: "";
    DescriptionLocKey: "Science/TechNodes/Descriptions/tNode_2v_electronics_02";
    RequiredSciencePoints: 2300;
    UnlockedPartsIDs: [
        "generator_0v_thermoelectric_radioisotope",
        "storage_2v_battery_electricity",
        "antenna_1v_dish_ra-100",
        "antenna_1v_dish_88-88",
        "fuelcell_1v_array"
    ];
    RequiredTechNodeIDs: [
        "tNode_2v_electronics_01"
    ];
    TierToUnlock: 0;
    TechTreePosition: {
        x: 3600,
        y: 530
    };
}

I get this

#

is_new also removes the name selector

twilit wedge
#

next thing. is the PM all one file or multiple.
also what path do you want for the zip export.

#

for the ttm file I do /assets/techtree

dreamy juniper
#

do /patches/tech_tree.patch and make it one file

twilit wedge
#

ok cool

dreamy juniper
#

and don't use the @is_new stuff, only use that if its an added tech node off of the stock

twilit wedge
#

I will add a system for that when the add and remove buttons are added.

dreamy juniper
#

alright, then I'll also add the syntax for removing a node with PM (because if you remove stock nodes, you need to do that)

#

also, is it possible to add a click and drag to the tech tree editor aaa

#

Cuz I keep trying to do that

#

for scrolling that is

twilit wedge
#

I did try to add that but it didnt work. I also have done that XD

#

will add it later as a secondary task

dreamy juniper
#

Also would be nice to always have that sidebar to the side when editing later nodes

twilit wedge
#

got lots to fix later I see

dreamy juniper
#

That looks right yeah

twilit wedge
#

cool will push the change now

dreamy juniper
#

Slight issue

#

The parts list isn't saving when I switch nodes

twilit wedge
#

hmmm

#

fix has been pushed

twilit wedge
#

Node adding now works
also added the localisation creation

#

@dreamy juniper how does the localisation work for patch manager?

dreamy juniper
#

PM doesnt touch it, you change the keys and you have a normal localization file like usual

twilit wedge
#

ok so you want the localisation file to be exported for pm as well

dreamy juniper
#

Sure

twilit wedge
dreamy juniper
twilit wedge
#

so localizations/local.csv?

dreamy juniper
#

yes

twilit wedge
#

if this next test goes well I will push that update

#

update pushed

#

(update has add and remove node + localisation for TTM and PM)

twilit wedge
#

Added a parts adder list

twilit wedge
#

import tree is broken. will fix it tomorrow.

royal mantle
#

has anyone done a probes before crew type of techtree already?

dreamy juniper
#

Im working on that

royal mantle
#

great

#

looking forward to that

dreamy juniper
#

Also have custom missions planned for it as im moving around missions

royal mantle
#

feel like the stock tree is way too unbalanced

royal mantle
dreamy juniper
royal mantle
#

wow

dreamy juniper
#

#🟣ksp2-community message

#

Aaa the message didnt link properly

royal mantle
#

now we just need kopernicus in ksp2 and we can start working in rp1 in ksp2 lmao

dreamy juniper
#

Also need a funding system for rp1 but of all things, that should be the easiest

royal mantle
#

(ofc its not just that haha)

dreamy juniper
#

There is actually a lot to it

royal mantle
dreamy juniper
#

Id love rp1 in ksp2

royal mantle
dreamy juniper
royal mantle
#

you guys are bloody quick at making these kinds of mods

#

well any kind

dreamy juniper
#

Well in all honesty, its just find type of asset, add module to patchmanager, and voilia, at least for my tech tree stuff

royal mantle
#

i see

#

btw how is your lets call it contract configurator used, like you need to know any programming language or it is more intuitive to use

dreamy juniper
#

Lemme grab an example

royal mantle
dreamy juniper
# royal mantle sure
@new("munar_impactor")
:missions {
    MissionGroup: "";
    name: "WMCC/MunarImpactor/Name";
    description: "WMCC/MunarImpactor/Description";
    GameModeFeatureId: "ExplorationMissions";
    type: "Secondary";
    Owner: "Agency";
    state: "Inactive";
    * > missionStages {
        +_0 {
            name: "Check";
            description: "";
            Objective: "WMCC/MunarImpactor/Objective";
            MissionRewardType: "None";
            DisplayObjective: true;
            +PropertyCondition {
                RequireCurrentValue: true;
                PropertyTypeAQN: get-property-watcher("IsDestroyedByCbCollision");
                Inputstring: "Mun";
                TestWathedBool: true;
                propOperator: "EQUAL";
                isInput: true;
            }
        }
        +_1 {
            name: "Mission Complete";
            description: "";
            Objective: "";
            * > MissionReward {
                +SciencePoints {
                    RewardAmount: 40.0;
                }
            }
            * > actions {
                +MissionResolutionAction {
                    MissionResolution: "Complete";
                    StageEvent: "Play_mission_alert_primary";
                }
            }
            IgnoreExceptionBranches: true;
        }
    }
    currentStageIndex: 0;
    Hidden: false;
    MissionGranterKey: "MissionGranterProbodobodyne";
    TriumphLoopVideoKey: "reward_mission_tier1";
    VisibleRewards: true;
    pendingCompletionTest: false;
    maxStageID: 2;
    uiDisplayType: "Default";
    * > ContentBranches {
        +Brief {
            +MissionCharacterDialogAction {
                CharacterNameLocKey: "Missions/CharacterName/Keri";
                CharacterIconKey: "keri_neutral";
                * > Dialogs {
                    Entries: [
                        create-dialog("WMCC/MunarImpactor/Brief1"),
                        create-dialog("WMCC/MunarImpactor/Brief2"),
                        create-dialog("WMCC/MunarImpactor/Brief3","keri_happy"),
                        create-dialog("WMCC/MunarImpactor/Brief4","keri_happy"),
                    ];
                }
            }
        }
        +Debrief {
            +MissionCharacterDialogAction {
                CharacterNameLocKey: "Missions/CharacterName/Keri";
                CharacterIconKey: "keri_neutral";
                * > Dialogs {
                    Entries: [
                        create-dialog("WMCC/MunarImpactor/Debrief1","keri_happy"),
                    ];
                }
                EventTypeOnClosed: get-message("SpawnTriumphWindow");
                StageEvent: "Play_mission_alert_primary_returned_to_missionControl";
            }
        }
        +OnSubmit {
        }
    }
    MissionSaveAssetKey: "";
}
#

For a munar impactor mission

royal mantle
#

ok yeah

#

i see what you mean with unintuitive

dreamy juniper
#

Yeah

royal mantle
#

haha

dreamy juniper
#

But, me and munix are planning on making a web based editor for these

royal mantle
#

like the one for the techtree manager?

dreamy juniper
#

yes

royal mantle
#

that would actually be great

#

i have a couple of ideas now that i know this is possible

#

man if you are doing this without official mod support

#

i cannot wait once you get official mod support

dreamy juniper
#

Official mod support should be IG hiring me and munix (/hj)

royal mantle
#

i mean they hired nertea, blackrack and triggerau

dreamy juniper
#

But like really, I've written way too much of the framework to make modding this game feasible lmao

royal mantle
#

lol

#

oh well

#

good luck with all the modding

dreamy juniper
#

Thank you

#

now time to try and do some shenanigans in space warp

royal mantle
#

i really should learn how to mod this game lmao

royal mantle
twilit wedge
royal mantle
twilit wedge
#

yep. I have hated the fact that exploration wont have any funds system.

royal mantle
#

yeah

#

man you really went all out like 2 days after the update lmfao

#

anyways

#

looking forward to that

twilit wedge
#

been a bit longer than 2 days #1039965578754007060 message

royal mantle
#

bruh

twilit wedge
#

@dreamy juniper im going to make improvements to the part selector. will add your request to it first.

dreamy juniper
#

aight

#

also it would be nice to have the english localized names of the parts

twilit wedge
#

the selector has the names, the node uses the id

dreamy juniper
#

awesome

twilit wedge
#

ok pushing the change

dreamy juniper
#

@twilit wedge I have a suggestion for you, could you add a field to edit the node ID

twilit wedge
#

I could yes

dreamy juniper
#

because if I'm exporting a new tech tree to PM, I don't want other mods to have to use the GUID to reference them

twilit wedge
#

I will add an advanced dropdown for extras like that

twilit wedge
dreamy juniper
#

Alright, thank you!

twilit wedge
#
  • 20 ish lines of code for that
#

going to try and make the editor menu move

dreamy juniper
#

And to add to your todo list of suggestions, allowing to choose the filepath being saved at

twilit wedge
#

probably will have to add a popup model

#

cus pm and TTM have 2 different default paths

#

I could make a settings page where you can change the defaults

dreamy juniper
#

I meant to change it from techTree.zip

twilit wedge
#

oh the file name

#

ye I could add a project name at the top

#

and maybe even a version indicator

twilit wedge
#

editor move and mouse move done

#

mouse move is a bit funky atm

dreamy juniper
#

You also need to move the top bar

twilit wedge
#

ah yes

twilit wedge
dreamy juniper
#

Another bug to report, this layering and shfiting needs to be changed

twilit wedge
#

yep I fixed that after the other fix

twilit wedge
dreamy juniper
#

Thank you!

#

Anyways, getting started on tier 2

twilit wedge
#

nice

#

I plan to get the tier locations shown soon.

dreamy juniper
#

I'm just cross referencing the stock one for now

twilit wedge
#

well that was easy its just 1500

dreamy juniper
#

have you pushed the update?

twilit wedge
#

not yet

#

now it has.

dreamy juniper
#

Literally unusable

twilit wedge
#

oh no

#

that could take weeks to fix

dreamy juniper
#

Months even

twilit wedge
#

fix pushed

dreamy juniper
#

Hows the time travel?

twilit wedge
#

oh the things I have seen

dreamy juniper
#

Another suggestion, make the new node button auto select the created node

twilit wedge
#

change pushed should update soon

dreamy juniper
#

Also, bug I just encountered, the localization autogen doesn't support commas in the node name

twilit wedge
#

im not sure how I would fix that

dreamy juniper
#

Auto escaping the terms that have commas in ""

#

And then also removing those quotes when reading

twilit wedge
#

the problem stems from the csv to json

twilit wedge
dreamy juniper
twilit wedge
#

huh

dreamy juniper
#

or half of the nodes in general

twilit wedge
#

very odd

#

can you send me the tree so I can test

dreamy juniper
twilit wedge
#

that dont look right???

#

it does look right.

dreamy juniper
#

It still broke the save I had aaa

#

what happens if I remove the localization file?

#

will it crash, or will it just generate its own localization

twilit wedge
#

wait is the problem on ksp?

dreamy juniper
#

no

#

I haven't tested this in KSP yet

#

Aaaaa it should rebuild from english

#

And when I load it I get this error as well

twilit wedge
#

could I get that tree so I can take a look

dreamy juniper
#

the first one I manually deleted the localization file

#

the second was manually edited to remove commas

#

let me give you all 3

#

this is the error I get when trying to select a node

twilit wedge
#

I see the issue

dreamy juniper
#

and somehow the english value gets parsed as null

twilit wedge
#

ok pushing the fix

dreamy juniper
#

thank you

twilit wedge
#

was this line here

#

this is what fixed it

dreamy juniper
#

ahh, makes sense

twilit wedge
#

ok fix is now live

dreamy juniper
#

got it

twilit wedge
#

im going to add a search to the part dropdown

dreamy juniper
#

@twilit wedge the auto select node on creation is being very buggy

twilit wedge
#

whats the issue?

dreamy juniper
#

It's editing the wrong node

twilit wedge
#

hmmm

dreamy juniper
#

like it shows as selected but

twilit wedge
#

I cant seem to replicate

dreamy juniper
#

Alright, I'll try and see if I can

twilit wedge
#

search added

#

works for both name and id of part

#

any new issues I will fix later today

plans for later today:

  • update node lines to match closer to what the game does
  • Part export (mod side) and import (editor side) - will be a zip file with part json files & part localisation file
  • Add tier option to node editor
  • Add Hidden by option to node editor
  • Add IconID and Icon list to editor
  • look into CategoryID
timid stratus
#

Can this be used to add modded parts to the tech tree?

twilit wedge
#

yes

twilit wedge
#

mod: vertical scroll added. now adding a start position option.

timid stratus
twilit wedge
#

ye tech tree stuff can be added outside of the mod

#

I will be pushing an update to the mod soon that will add the .nodeupdate .nodereduce and .nodedetete files to ttm. this will allow you to add parts to node, remove parts from nodes and delete nodes entirely without needing a whole tech tree.

twilit wedge
#

Next update for TTM mod soon
Vert scroll
.nodeupdate .nodereduce and .nodedetete files
node update config added to enable / disable the ability to update nodes. useful for tech trees that are made for a specific set of mods or for competition.

#

also @dreamy juniper if you let me know how the add and remove for pm works I can add the node export options in for that as well.

dreamy juniper
#

Removing requires a builtin function

#

Lemme quickly do it one way

@use "builtin:list";
@function not-in($values) {
    @return @function($check) {
        @each $v in $values {
            @if ($v == $check) {
                @return false;
            }
        }
        @return true;
    };
}
:science #node_id {
    UnlockedPartIds: $value:filter(not-in([/* ... */]));
}

I really need to add a list.remove and a list.remove-all method
Expect that in a future update to PM

#

Yeah definitely expect in the next update to PM, for that to be much simpler

twilit wedge
#

should I wait for the next update then?

dreamy juniper
twilit wedge
#

cool

dreamy juniper
#

Itll change the second to

@use "builtin:list";
:science #node_id {
   UnlockedPartIds: $value:remove-all([/* parts */]);
}
twilit wedge
#

cant you get it to just use a - instead of a +

dreamy juniper
#

Honestly, I could actually do that

#

I didnt think of that

twilit wedge
#

would make way more sense

twilit wedge
#

welp I think thats all the main stuff for TTM done. I can now go back to Kapitalism

placid aspen
#

Looking forward to the probes before crew rebalance of the tech tree + missions

twilit wedge
#

ye @dreamy juniper is making that tree

dreamy juniper
#

@twilit wedge I'm going to be updating PM today, so I'm going to change a few things around
Some new features being unquoted strings because SCSS allows that

#
:science #node_id {
    UnlockedPartIds +: [/* added parts */];
}

:science #node_id {
    UnlockedPartIds -: [/* removed parts */];
}

And this is how adding/removing parts will be like

#

(moving the +/-/*// to the other side of the :)

wide silo
#

Hey guys, issue with this mod, I am getting a freeze on loading in my save, frozen with the caption of Loading jool_science_regions_baked_map

#

version 0.0.3

pale sand
#

lmao exactly the same type of bug that we had in Patch Manager

#

the mod is searching for the folder "assets/techtree" in the folder of Community Fixes, but there is none

#

need to add a Directory.Exists(...) check before trying to access the folder @twilit wedge

twilit wedge
#

I thought I did.

#

I did in one place but didnt in others. woops

pale sand
#

happens to all of us 😆

dreamy juniper
#

It legit happened to me

#

just a few hours ago

#

glad munix was able to make the relase

twilit wedge
#

welp thats an unexpected 0.0.4 build done

#

thanks @wide silo the update will be pushed soon.

#

the problem was within the .nodeupdate .nodereduce .nodeadd part that was added last update.

dreamy juniper
#

oh btw shadow

#

you can add the PM equivalents for that now

twilit wedge
#

cool

dreamy juniper
#

for adding

:nodes #node_id {
  UnlockedPartsIDs +: [ /* part ids as strings */ ];
}

For removing

:nodes #node_id {
  UnlockedPartsIDs -: [ /* part ids as strings */ ];
}

And for updates you can combine the two (in 2 separate statements)

twilit wedge
#

ok cool. im going to need to update the tree editor to have it figure out the changes.

#

almost published the update with another bug

#

ok welp onto 0.0.5 since It still is broken...

twilit wedge
#

removed node update add and reduce. will be added back in a future update

#

a fix for the tech tree that I need to add in is the requirements. it only lists one on the left panel

twilit wedge
pale sand
#

Yep

#

Though I would probably leave this one for TTM, considering it's not actually an issue in stock

#

At least I'm not aware of there being multiple requirements for any stock nodes

twilit wedge
#

well not yet anyway. maybe they might in the future since it is setup to do it.

#

they even have built in node hiding.

#

but if they do add a node with multiple in the future they will probably fix it them selfs.

pale sand
#

Yeah, that's what I was thinking

twilit wedge
#

just going to make the fix now

#

Ye a simple postfix should do it

twilit wedge
#

that fix was easy. but now the text goes behind the ui

#

just need to fix the rect of that text area

#

or not?

pale sand
#

probably

twilit wedge
#

rect was not the solution. I just changed the positions and it can now fit 3 without overflow

#

I doubt more than 3 will be needed

twilit wedge
#

@pale sand that is now done. took a bit to get it to do what I wanted

timid stratus
#

How do you import parts to this tech tree editor? There's an 'import part' button that doesn't appear to do anything.

twilit wedge
#

thats correct the import part button does nothing, as theres no export option in the mod yet.

spiral fulcrum
#

thanks for that fix

#

theres also this when the parts list is long in a tech node, not sure if anyone else has encountered it yet

#

are u interested in that for ur mod as well?

twilit wedge
#

yep I can create a fix for that. will work on that tonight.

#

not actually experienced it yet so if you have a tech node example you want to send me so I can test it that would be great.

spiral fulcrum
#

ok awesome

twilit wedge
spiral fulcrum
#

seems 16 is the max parts they allow in a node before that happens

#

on 1080p at least

twilit wedge
#

so maybe a scroll area?

twilit wedge
spiral fulcrum
#

ye ksp used a scroll bar, i guess u could also rescale the icons if that doesnt work

twilit wedge
#

hmm maybe icon resize until a point and then scroll.

#

@dreamy juniper if it was an empty list would it still work?

:nodes #tNode_1v_start {
  UnlockedPartsIDs +: [ ];
  UnlockedPartsIDs -: [ "fin_0v_procedural" ];
}

lets say like that.

dreamy juniper
#

Yes

#
[...] + [] = [...]
[...] - [] = [...]
twilit wedge
#

Quick FYI for part mod creators:

PM node update generation has been added to the editor.

add or remove parts from a node then click the PM Node Update button and that will give you a patch for that node in a zip file with the correct structure for you to drag and drop into your mod.

@shrewd dawn @glad hollow @reef latch @twilit zenith

ruby dust
#

Any idea why the node names aren't showing up in game if I rename stock tech nodes?

twilit wedge
ruby dust
#

The tech tree worked both through PM and TTM but the names remained as they were in stock

#

could the localization be cached somewhere and not updating?

twilit wedge
#

if you create a new node does that one rename correctly?

twilit wedge
#

hmm ok so it sounds like the stock local is not being overwritten.
will add, "look into localization overwrite" to tomorrows todo.

dreamy juniper
#

Ah sounds like a problem we solved with spacewarp

#

You have to put the localization file first in the sources list

twilit wedge
#

thanks for the info, still will be a tomorrow job since im not at my computer atm.

lilac lantern
#

Im trying to use TTM + the editor, but Im having issues with my game getting stuck on the loading screen after loading a save

#

This is the tree I exported and am trying to load

#

Okay sorry, I got it working actually. For some reason when I exported it the first time, it generated without an assets folder, and when I exported it again, it did generate the assets folder

twilit wedge
#

hmmmm thats odd

ember oasis
#

Is there any kind of repository for custom tech trees?

twilit wedge
#

you can put them on spacedock

#

ckan can then install the tree

ruby dust
#

It seems that when the tree is loaded through the TTM (rather than through PM) mods that add their own tech tree patches (like the KLSS) can't add their parts to the tech tree anymore. Is this known?

dreamy juniper
#

Yes, because this completely side steps PM's way of adding parts

twilit wedge
#

if you use a custom tree instead of default that will happen. if your making a custom tree then use ttm, if your just editing the stock tree use PM

#

make sure the config is on default and pm will work again.

dreamy juniper
#

Its not too hard to make a custom tree with PM as well, just have to write a patch to remove all stock nodes, which is quite simple if you prefix all your node names with something

twilit wedge
#

could technically add that into the editor. similar to this #1186780327054684320 message

ruby dust
dreamy juniper
#

Yes, but then pm patches could be used to add their parts to the created nodes

twilit wedge
#

yes, but thats up to the part mod creator or the person who creates the custom tree to add the parts.

dreamy juniper
#

Like I do with the PR I made to KLSS to add its nodes into WMCC

twilit wedge
#

^

twilit wedge
#

TTM editor todo list

  • fix json to csv and csv to json
  • Part import
    • add export option to mod
      • export part IDs
      • export part local
      • export part icon
  • Part icons
  • Drag to move nodes
  • Background image editor
  • Dedicated mode switcher for TTM and PM (reduce clutter and confusion)
  • Improve docs
  • update styles to match the game ui better
  • add unlock: method calling
  • add compare to the export to pm button to remove stock nodes if not present in tree.
  • move from gh pages to my dedicated
  • put current tree into localstorage so it stays after reload
  • add option to save tree to github
  • plugin api > ability for plugins to be made for the editor.
  • options page
dreamy juniper
#

Dedicated mode switcher
I use the ttm export to save my progress even if Im working for PM

twilit wedge
#

will keep that button for pm mode but will just name it save.

twilit wedge
#

actually I probably wont add in the mode switch until the plugin api is added. since thats when it will be needed most.

lilac lantern
#

@twilit wedge I'm experiencing a strange bug with TTM where Tech node descriptions are being cut off

twilit wedge
#

what should the text be?

lilac lantern
#

Here's an example

#

"Heavily impacted by damage, these reaction wheels were only able to be repaired due to detailed blueprints stored in one of the surviving Borealis data-banks."

#

It appears to not be escaping commas properly

twilit wedge
#

ah I see

#

can you avoid commas for now until I get that fixed.

lilac lantern
#

Not really, but I can just not write the flavor text until you can fix it

twilit wedge
#

the broken part is within the jsontocsv

#

could you try putting a \ before the comma

lilac lantern
#

Sure

#

Ahaha

twilit wedge
#

yay or nay

lilac lantern
twilit wedge
#

well thats the way I plan to. cus it all goes into a CSV

lilac lantern
#

If I add one backslash and then reimport, it imports as this

dreamy juniper
#

To escape a comma, you have to wrap the line in quotes

#

to escape quotes you have to doo ""

#

but then you have to unescape all of this on import

lilac lantern
#

If I try wrapping it in quotes

#

It tries to escape the quotas with backslashes

#

And importing that then results in this

#

So yeah, escaping characters seems borked

#

Aside from that weirdness though this editor has generally worked very well for me. I've been able to make steady progress on my tech tree because of it

twilit wedge
#

right added that to my todo list...

dreamy juniper
#

I'm saying how the game expects stuff to be formatted, not how this tool works, it was a comment more for shadow

#

And its the entire loc string that should be wrapped in quotes as well for reference

lilac lantern
#

Ah

dreamy juniper
#

Which it seems to be automatically

twilit wedge
lilac lantern
#

I'll stick all the descriptions into a text document for now, and when you can get around to fixing it, I'll just copy and paste them back in. I was concerned that the descriptions were lost but they aren't

ruby dust
pale sand
#

well, not the mod loader, but SpaceWarp 1.8 did have a localization update, including support for overriding stock localization terms

twilit wedge
#

going to need to remake the json to csv and csv to json stuff.

dreamy juniper
#

Yeahh
Cuz KSP2 uses a weird CSV format

#

or rather I2

twilit wedge
twilit wedge
#

@lilac lantern I assume the changes by munix have worked?

lilac lantern
#

I havent tested it myself

#

Did you update it?

twilit wedge
#

yep.

#

I also added a language selector so you can also now edit the other languages

lilac lantern
#

Thanks!