How to Modify the Tech Tree Guide

Discussion in 'Multiplayer Meeting Room' started by Bazslaz, Sep 21, 2020.

  1. Bazslaz

    Bazslaz Ensign

    Joined:
    Aug 21, 2020
    Messages:
    17
    Likes Received:
    12
    You can customize the TechTree to suit your own needs but keep in mind some of the tips in this guide are not officially supported by Empyrion developers. That means if you ask them for help they may not assist you. Depending on the files you use and changes you make you will also have to run WinDiff to compare changes to your mods and changes that were released for each build.

    These changes will work for Single Player, Dedicated Servers and Custom Scenarios.

    TABS
    The default TechTree Tab Titles as of Sept 2020 read as Follows
    Base, Capital Vessel, Small Vessel, Hover Vessel, Misc, Tools, Weapons

    Adding New Tab
    This Section is for adding a NEW CUSTOM tab, if you are just moving an item from one existing tab to another existing tab then skip this section and go down to
    Moving / Adding Skills and Unlock Points To A New or Existing Tab

    Adding a new Tab or Removing an existing Tab will require you to start a new game or wipe the save game on a dedicated server.

    For this guide, we will create a new Tech Tree Tab labeled Alien Weapons
    Also for the purpose of this guide we will assume you are modifying the Default Akua-Omicron scenario,located in the following folders:
    Dedicated Server:
    gamefolder\steamapps\common\Empyrion - Dedicated Server\Content\Scenarios\Default Akua-Omicron\Extras

    Single Player:
    \Program Files (x86)\Steam\steamapps\common\Empyrion - Galactic Survival\Content\Scenarios\Default Akua-Omicron\Extras

    Once you have the correct target game folder opened, open a second folder and navigate to
    \GameFolder\steamapps\common\Empyrion - Dedicated Server\Content\Extras
    In this folder is a file called
    Localization.csv make a copy of that file, and paste 2 copies into the scenario Extras folder you are modifying. Name one Example_Localization.csv. This file can be used as a sample reference, label the second file Localization.csv, this is the file we will be editing

    (Open your editor, most people seem to be using Notepad++ for editing Empyrion files)

    Open Localization.csv in the editor and delete everything except the first line.
    The first line holds the Language Translations you will support, if you want to support all languages listed you can use a program like Google Translate to look up the foreign language translation for your new Tab label

    If you only plan to support English then edit the first line to read

    Key,English
    the next line is case sensitive and will contain the Key and the Translation format for the new Tab Titles you are adding, the key must start with ttw
    Example:
    ttwalienweapons,Alien Weapons


    The finished edits should look like this:
    Key,English
    ttwalienweapons,Alien Weapons


    Now save the file


    Moving / Adding Skills and Unlock Points To A New or Existing Tab
    Open a new window and search for Config_Example.ecf on my dedicated server it is located here
    gamefolder\steamapps\common\Empyrion - Dedicated Server\Content\Configuration

    Copy that file to the scenarios configuration folder, for me and the scenario I wanted to edit on my dedicated server the path was
    gamefolder\steamapps\common\Empyrion - Dedicated Server\Content\Scenarios\Default Akua-Omicron\Content\Configuration

    Now make a second copy of that file and name it Config.ecf then delete everything in it.

    IMPORTANT NOTES: Some scenarios like Project Eden already have their own custom Config file, Project Eden has one called Eden_Config.ecf . When I made custom changes to Project Eden I made my changes in the new config.ecf file I created and not the Eden_Config and they worked just fine, but you may want to talk to custom scenario creators to verify the best way to handle it, or just test it out for yourself and see what works.

    By default there is no Config.ecf file, the Config_Example.ecf is provided as a sample for your Config.ecf. edits. When the game loads and sees you have a Config.ecf, file it will use those values to overwrite game variables if they are different than the default game.

    Let's say we want to move rocketlauncher into our new Alien Weapon tab. Open both the Config_Example and Config file in your editor, now search the Config_Example.ecf file for RocketLauncher

    Around line 9030 you would find the Item Id 2058
    carefully copy the entire section for RocketLauncher to your Config.ecf file it would look something like this.

    { Item Id: 2058, Name: RocketLauncher
    PickupToToolbar: true
    StackSize: 1
    Category: Weapons/Items
    Mass: 25, type: float, display: true, formatter: Kilogram
    Volume: 45, type: float, display: true, formatter: Liter
    BlastRadius: 3, display: true
    BlastDamage: 500, display: true
    Durability: 100, display: false
    DegradationProb: 1, type: float, display: false
    {
    AllowRemote: false
    ROF: 3.0, type: float, display: true, formatter: ROF
    Range: 200, display: false
    NoiseStrength: 140, display: false
    Recoil: 2.4, display: true
    CameraShake: 3
    AmmoCapacity: 4, display: true
    AmmoType: SlowRocket, display: true
    ReloadDelay: 4.5, display: true
    }
    {
    }
    UnlockCost: 12, display: true
    UnlockLevel: 10, display: true
    TechTreeNames: Weapons
    }

    The section we are going to edit is at the bottom

    UnlockCost = how many skill points are needed to unlock the Skill
    Unlock Level = the level you unlock that skill at

    TechTreeName is the Tab you wish it to appear under which is what we are going to carefully change. Do NOT add extra spaces or marks or your game will not load. Carefully backspace out the word Weapons and replace it with LOWERCASE alienweapons

    Example:

    UnlockCost: 12, display: true
    UnlockLevel: 10, display: true
    TechTreeNames: alienweapons


    Now save the file and reboot your server, if editing this in single player exit your game and restart it. (Changes to the config file did not require me to start a new save game, they just required me to restart the server, and for single player I had to exit the client completely and resume play.)

    Note: I saved this last explanation for the end so as not to cause confusion.
    If you are like me, you have noticed that Weapons was capitalized and noticed other blocks also have Capital letters with Spaces, so you are wondering why did I have you enter all lowercase with no space.

    Example:
    TechTreeNames: Capital Vessel

    But I had you enter

    TechTreeNames: alienweapons

    This is because of what I mentioned in the beginning of this guide. This is not a "Supported Change" which means you are moving this items into a new CUSTOM tab that doesn't exist in the game. The dev's have hard coded their names into the software so they do not need to enter it lower case with no space, you however have to.

    If you are just moving things from one existing game tab to another HV to CV then you would use TechTreeNames: Capital Vessel because it is an existing supported name.

    Other .ecf Files To Be Aware Of
    Some Blocks or Items are not found in the Config_Example.ecf file. Which again falls into the unsupported category.

    For example, I wanted to create a Tab called Genetic Engineering, I wanted all growing pots and sprouts to show up in this tab. Growing Pots are found in the Config_Example.ecf and a file called BlockConfig.ecf file but Sprouts are not. Sprouts are only found in BlocksConfig.ecf so I had to copy that file from
    gamefolder\steamapps\common\Empyrion - Dedicated Server\Content\Configuration

    To my scenario configuration folder

    gamefolder\steamapps\common\Empyrion - Dedicated Server\Content\Scenarios\Project Eden v1\Content\Configuration

    Then I had to make my edits for sprouts in BlocksConfig.ecf


    Here is what I found in BlocksConfig.ecf for GrowingPotWood, I copied this to my config.ecf file

    { +Block Id: 1239, Name: GrowingPotWood, Ref: GrowingPot
    # Material: fertilelow
    Info: bkiGrowingPotSimple, display: true
    Texture: "6,70,70,70,70,70"
    TextureTable: 1 /* 1 = wood table */
    BlockColor: "123,73,46"
    AllowPlacingAt: Base, display: true
    Mass: 795, type: float, display: true, formatter: Kilogram
    Volume: 80, type: float, display: true, formatter: Liter
    MarketPrice: 58.38
    UpgradeTo: GrowingPotConcrete, display: true
    }


    You will notice there is no unlock or TechTree name section. This is because the default game does not require a tech tree skills to unlock wood growing pots or sprouts. So to make it part of the tech tree I had to add the missing values. Now Wood Growing Pots is under a tab called Genetic Engineering and must be unlocked at level 3 using 2 skill points in order to craft it.

    { +Block Id: 1239, Name: GrowingPotWood, Ref: GrowingPot
    # Material: fertilelow
    Info: bkiGrowingPotSimple, display: true
    Texture: "6,70,70,70,70,70"
    TextureTable: 1 /* 1 = wood table */
    BlockColor: "123,73,46"
    AllowPlacingAt: Base, display: true
    Mass: 795, type: float, display: true, formatter: Kilogram
    Volume: 80, type: float, display: true, formatter: Liter
    MarketPrice: 58.38
    UpgradeTo: GrowingPotConcrete, display: true
    UnlockCost: 2, display: true
    UnlockLevel: 3, display: true
    TechTreeNames: geneticengineering

    }

    Nesting and Placement of Tech Tree Items

    [​IMG]

    If you wish to nest or place items in a particular order within the Tech Tree then you need to add the value TechTreeParent: Block Name to your edits

    Example: TechTreeParent: GrowingPot
    Here, BluePeppers will be tied to GrowingPot and can be unlocked after growingpot is unloacked

    Hidden Elements
    Some changes you make to the BlocksConfig.ecf you may not want displayed in your tech tree.
    For example, if you are adding sprouts to your tech tree, there are different growth stages that will need to be hidden. To do that you would use the TechTreeNames: Hidden command

    Example:
    { Block Id: 1179, Name: BulbShroomYoungStage1, Ref: ElderberryStage1
    # Model: Entities/Farming/Misc/BulbShroomYoungStage1Prefab
    Model: Entities/Farming/Misc/BulbShroomStage1Prefab
    { Child PlantGrowing
    Next: BulbShroomYoungStage2
    GrowthRate: 15
    FertileLevel: 5
    OnDeath: PlantDead2
    }
    CropType: Vegetables, display: true
    CropYield: 1, display: true
    GrowthTimeInfo: 31, type: int, display: true, formatter: Minutes
    PickupTarget: BulbShroomYoungStage1 # disassemble
    TemplateRoot: BulbShroomYoungStage2 # deconstruct - to avoid exploit

    UnlockCost: 7, display: true
    UnlockLevel: 20, display: true
    TechTreeParent: DurianRoot
    TechTreeNames: geneticengineering

    }
    { Block Id: 1180, Name: BulbShroomYoungStage2, Ref: ElderberryStage1
    # Model: Entities/Farming/Misc/BulbShroomYoungStage2Prefab
    Model: Entities/Farming/Misc/BulbShroomStage2Prefab
    { Child PlantGrowing
    Next: BulbShroomStage3
    GrowthRate: 15
    FertileLevel: 5
    OnDeath: PlantDead2
    }
    ShowUser: No
    PickupTarget: BulbShroomYoungStage1
    TemplateRoot: BulbShroomYoungStage2
    TechTreeNames: Hidden
    }
    { Block Id: 1181, Name: BulbShroomStage3, Ref: ElderberryStage1
    Model: Entities/Farming/Misc/BulbShroomStage3Prefab
    Class: CropsGrown
    AllowedInBlueprint: false, display: true
    { Child DropOnHarvest
    Item: Vegetables
    Count: 1
    }
    { Child CropsGrown
    OnHarvest: BulbShroomYoungStage3
    OnDeath: PlantDead2
    }
    # ShowUser: NoButCSV # reported by HWS
    PickupTarget: BulbShroomYoungStage1
    TemplateRoot: BulbShroomYoungStage2
    XpFactor: 0.25
    TechTreeNames: Hidden
    }
    # Harvested model
    { Block Id: 1182, Name: BulbShroomYoungStage3, Ref: ElderberryStage1
    # Model: Entities/Farming/Misc/BulbShroomYoungStage3Prefab
    Model: Entities/Farming/Misc/BulbShroomStage3NoFruitPrefab
    { Child PlantGrowing
    Next: BulbShroomStage3
    GrowthRate: 29
    FertileLevel: 5
    OnDeath: PlantDead2
    }
    ShowUser: No
    PickupTarget: BulbShroomYoungStage1
    TemplateRoot: BulbShroomYoungStage2
    TechTreeNames: Hidden
    }


    Block Names
    Block names are not always intuitive to find in the .ecf files. There are couple of things you can do to help you find the names of items.

    In game, open your console using the ` Key, it can be found next to your number 1 key on the keyboard. In there type di and press enter. This will open a box at the top of your game window. Now spawn the various objects you are looking for and then point your multitool at them to get their programming name. The name will appear in the di window near the end of the string

    2. You can use this reference document which often saves me the hassle of going in game to look things up. https://empyriononline.com/threads/handbook-playfield-reference-sheet-v0-1.12646/


     
    #1
    Last edited: Sep 23, 2020
    zaphodikus likes this.
  2. zaphodikus

    zaphodikus Captain

    Joined:
    Oct 1, 2016
    Messages:
    471
    Likes Received:
    226
    Why oh why did nobody tell me this all earlier? Struggled to figure only a fraction of this brilliant info out the hard way a while back. Brilliant work for sharing it!
     
    #2

Share This Page