Logo Platform
logo amplifiers simplified

Manual for modding Endless Space 2

Reply
Copied to clipboard!
7 years ago
Sep 18, 2017, 8:40:46 AM
Aitarus wrote:
Dagart wrote:

The mod looks cool ;)
For the trail, currently you can't (and I don't know if it can be added later):
> Create a new trail color: it's a particle system directly created in the game engine.
> Select the trail to applied on a ship: It's hardcoded to each ships (via the ship prefab from the game engine).

Any update on this? I figure it's likely to remain inaccessible. :/

Not for the moment... We are still thinking about the prioritization of the most useful features for modders. I will keep you informed about it.

0Send private message
7 years ago
Dec 27, 2017, 12:08:45 PM

I have a pretty basic question regarding modding: Is there a good way to identify the data type and extra type that I have to specify when adding a database plugin for my mod.


In many cases I am able to deduct the data type from the xml-file I am changing, but e.g. for GUI elements there are many extra types (DataType="Amplitude.Unity.Gui.GuiElement, Assembly-CSharp-firstpass" has more than 30 extra types).


Is have not found a specification of the data types within the xml-files, so is there a better way than guessing from the name and trial-and-error?

0Send private message
7 years ago
Dec 27, 2017, 11:33:35 PM
Jaecaron wrote:

I have a pretty basic question regarding modding: Is there a good way to identify the data type and extra type that I have to specify when adding a database plugin for my mod.


In many cases I am able to deduct the data type from the xml-file I am changing, but e.g. for GUI elements there are many extra types (DataType="Amplitude.Unity.Gui.GuiElement, Assembly-CSharp-firstpass" has more than 30 extra types).


Is have not found a specification of the data types within the xml-files, so is there a better way than guessing from the name and trial-and-error?

Jaecaron, I found the data type document posted by dagart here.

https://medias.games2gether.com/forums/dagart/Endless%20Space%202-22062017.xml


Its the same kind of xml RuntimeModule someone would use to create a mod so you should be able to mostly copy paste parts right into your own.


I also wanted to know "where" on my computer I can find the file posted by dagart but after some poking around I belive that the file does not actualy exist on disk.

Im not sure to what degree but it seems the base games RuntimeModule data is collected and determined during the games startup where it is kept in memory (not disk).



Maybe there is some kind of data export command in the game that can create the file?

I dont know, but I would like to know.

Updated 7 years ago.
0Send private message
7 years ago
Jan 2, 2018, 9:26:56 AM
Scrivener07 wrote:
Jaecaron wrote:

I have a pretty basic question regarding modding: Is there a good way to identify the data type and extra type that I have to specify when adding a database plugin for my mod.


In many cases I am able to deduct the data type from the xml-file I am changing, but e.g. for GUI elements there are many extra types (DataType="Amplitude.Unity.Gui.GuiElement, Assembly-CSharp-firstpass" has more than 30 extra types).


Is have not found a specification of the data types within the xml-files, so is there a better way than guessing from the name and trial-and-error?

Jaecaron, I found the data type document posted by dagarthere.

https://medias.games2gether.com/forums/dagart/Endless%20Space%202-22062017.xml


Its the same kind of xml RuntimeModule someone would use to create a mod so you should be able to mostly copy paste parts right into your own.


I also wanted to know "where" on my computer I can find the file posted by dagart but after some poking around I belive that the file does not actualy exist on disk.

Im not sure to what degree but it seems the base games RuntimeModule data is collected and determined during the games startup where it is kept in memory (not disk).



Maybe there is some kind of data export command in the game that can create the file?

I dont know, but I would like to know.

Hey, the file shared by dagart is compiled in the game when we build it, which means it can't be found in the game folders. 

However it can probably be extracted from the game files using stuff like UnityAssetBundleExtractor, which you can download for free on its website.

0Send private message
7 years ago
Jan 16, 2018, 12:47:36 AM

Hey, could it be possible at some point in the future to have some geometry data for ships and star systems in the xml files, please? I basically have a few ideas for mods that could use the distance between 2 entities (For example, I'm behind this mod that makes Unfallen vining speed scale and would like to make it scale on distance to the homeworld rather than systemcount, but I also have some more ideas), so any kind of distance function or just x and y properties related to the position of the object in the galaxy plane would be enough for me. I'm not sure how much time it would require to implement or the impact it would have on memory but I would really appreciate this feature at some point.

Thanks.


PS: Shout-out to MonAmiral for his help on the modding channel of the discord (and all the other devs that talk there regularly).

Updated 7 years ago.
0Send private message
7 years ago
Jun 1, 2017, 7:59:44 AM

On a Mac, go in “Library” then open the folder Application support\Endless Space 2\Community (if you have not created it yet).

0Send private message
7 years ago
Jun 22, 2017, 1:57:19 PM

So I cross refrenced this list with the diagnostics log of the game running through each database plugin when activating a mod and it looks like the lists are near identical so what do you mean by "some of them will not be useful" do the files they edit not have any effect or is modding support not fully implimented for these datatypes just yet.

This list contains:
> Current Datatypes you can use to mod
> Current Datatypes but not moddable (for the moment)
> Current Datatypes but not moddable (and maybe never)
> New Datatypes still in dev (will be deployed in the next or an ulterior update), moddable or not.


Some Datatypes were missing in the initial file (like for WorldSettingsDefinitions.xml). It is easier to give you regularly the latest version of this file than to updated the DataTypes.txt file :)


But if you are taking requests I would like to know the RemappingDefinition Names and MaterialData Names for remapping the hero ships textures (and pathfinders if possible) 

Ok, I will list that too!


0Send private message
8 years ago
May 24, 2017, 3:27:43 PM

Hello everyone, 


Nice to see that you are already working on mods ;)
I will try to help you the best I can, to give you data and tools to successfully do what you want to do.

Currently, we are working on the Modding manual to give you more information to help you mod ES2.

Here is the first version of it: Modding - Endless Space 2.pdf


The manual will be updated and new specific tutorials will be added depending on what type of help modders need.
Feel free to contact me if you've written a tutorial (granted it's easy enough to follow), I'll add it to this thread.


During the next weeks, we will continue to improve the mod manager in-game and we will work to bring you modding tools (like a Debug mode) always depending on what could help you the most.

For the moment, there is some information that can help you to begin modding Endless Space 2: 


TYPES OF MODS
Standalone: Should be used for a massive mod with a lot of different content, additions and changes. It is totally independent and cannot be launched with other mods. It replaces the public folder which means everything in the public folder should be present in your mod including your modifications.
Conversion: Implies a major change to existing files. Only 1 conversion can be launched at a time but you can add Extension mods in the meantime if you want.
Extension: Perfect for any addition. You can launch as many as you want.

CREATE A MOD

Community folder
If not already existing, create a new folder named “Community” in:
On PC: My Documents\Endless Space 2
On Mac: in “Library” then open the folder Application support\Endless Space 2
It's in this folder that you will place your mod folders.

Mod Manager
In game, you can access to the mod manager from the main menu.



  1. List of all installed mods (Workshop = from Steam; Local = mod in the Community folder). When you select them and click the Confirm button, the interface is reloaded and these mods are activated. Do the same operation if you want to disable them.
  2. For your "local" mods (in Community folder), an "upload" or "update" button allow you to upload your mod on Steam Workshop (the first time) or update your already existing mod on Steam Workshop. Attention: before uploading or updating a mod, be sure to have accepted the last Steam Subscriber Agreement (we display a button on the top right). If you don't, your mod will not appear on Steam Workshop.
  3. Description of the mod
  4. Open the Steam Workshop within the Steam overlay
  5. Confirm which mods will be activated or disabled
  6. Direct link to the Steam Subscriber Agreement (mandatory for uploading or updating a mod)


Starter Pack

We prepare a starter pack which contains all files and folders you need to create your first mod:

StarterPack.zip

You can also look at our example mods to understand how to build your mod:

ExampleReskin.zip: reskin the Sophon Home World + Craver large ship
ExampleTechnology.zip: add an era1 technology
ExampleSimpleQuests.zip: add a quest with two variants

ExampleModule.zip: add a negative evasion value to the basic defense module

OverColonizationValue.zip: change the over colonization threshold to 100 for all galaxy size
ExampleHero.zip: Adds a new Hero to the roster (For testing purposes, modifies the United Empire to have it unlocked immediately).

ExampleBalancing.zip: Reduces the cost of the starting improvements.



Structure

In the StarterPack you will find: 

  • Gabarit.xml: an XML file (commented!) which must be at the root of your mod folder. You just need to replace all "#########" with your own data. Be sure to name your mod folder and your XML without spaces or special characters (like "&").
  • Documentation folder contains information files like: 
    • DataTypes.txt: your new best friend! This file lists all the different data types that can be edited through XML, as well as their respective files, located in ES2's installation folder's subfolder "Public". The very last version of all our DataTypes could be seen here (v.22062017): Endless Space 2-22062017.xml
    • Interpreter.txt: Interpreter Formula Documentation
    • Simulation.txt: Simulation Syntax Documentation
    • Schemas Folder: It will help you to fill or check your XML files (need to be called in the file header)


COMMUNITY TUTORIALS

- FACTION TRAITS + EXAMPLE MOD  by Painter448



MISCELLANEOUS

- List of all ships models and their module slot names



Enjoy & good luck modders, I will continue to follow your work ;)


Updated 7 years ago.
0Send private message
8 years ago
May 24, 2017, 7:50:50 PM

If we are making edits to one or two files which are present in the public folder should they be published as a Conversion or Extension?

0Send private message
8 years ago
May 24, 2017, 8:53:59 PM
Kryptic57 wrote:

If we are making edits to one or two files which are present in the public folder should they be published as a Conversion or Extension?

The Mods I have made that edit a small part of a vanilla file have all been published as Extensions, as unless its a major edit there is unlikely to be any incompatibilities

0Send private message
8 years ago
May 25, 2017, 12:52:50 AM

Slight problem: there is no DataTypes file in the Documentation folder. I have verified cache, but it still isn't there.

0Send private message
0Send private message
8 years ago
May 29, 2017, 8:40:00 AM

Thanks for your feedbacks!

@Painter448: I add your tutorial on the (new) Community Tutorial List above, thank you ;)


Painter448 wrote:
Kryptic57 wrote:

If we are making edits to one or two files which are present in the public folder should they be published as a Conversion or Extension?

The Mods I have made that edit a small part of a vanilla file have all been published as Extensions, as unless its a major edit there is unlikely to be any incompatibilities

If you add data to an existing file, there is no compatibility problems: Extension
If you change existing data, in an existing file, another mod could not work as well if it needs to access or change this data too. It's better to publish it as Conversion but you can explain wich files and data you change with your mod to allow the players to know if they will have a compatibility problem with another mod.

@Bigbantha: at your disposal if you have another question :)

0Send private message
0Send private message
7 years ago
Jun 1, 2017, 3:50:41 AM

On a Mac

Tried making folders named "Community" and "Modding" under ~/Library/Application Support/Endless Space 2 and ~/Library/Application Support/Steam/steamapps/common/Endless Space 2 and putting my mod inside but they do not show up in the Mods list. Only the few I've gotten from the steam workshop do. I'm wondering if the game isn't looking for local mods on a mac outside of steamworkshop ones?

0Send private message
7 years ago
Jun 1, 2017, 7:13:49 AM
bran2k7 wrote:

Tried making folders named "Community" and "Modding" under ~/Library/Application Support/Endless Space 2 and ~/Library/Application Support/Steam/steamapps/common/Endless Space 2

The Community Folder should be in your Endless Space 2 Documents folder (not sure where that is for mac)

The Folder in which its added should have folders named;

-Custom Factions (if you have made any custom factions)

-Save Files

-Temporary Files

-Users

0Send private message
7 years ago
Jun 1, 2017, 7:59:09 AM

realized my error was not in incorrect placement, but my mod runtime name had spaces. it wasnt getting parsed correctly at runtime i guess. changed that and it showed up. also on mac its ~\Library\Application Support\Endless Space 2\Community

0Send private message
0Send private message0Send private message
7 years ago
Jun 11, 2017, 9:25:45 AM

Hi Dagart,


I'm trying to modify industry costs for buildings, but is not overriding the original values. My xml file contains this plugin element:


            <DatabasePlugin DataType="IndustryConstructibleElement, Assembly-CSharp">
                <ExtraTypes>
                    <ExtraType DataType="StarSystemImprovementDefinition, Assembly-CSharp" />
                </ExtraTypes>            
                <FilePath>Public/Simulation/ConstructibleElement_Industry[*].xml</FilePath>
            </DatabasePlugin>    


Adding the entire mod if you happen to check the issue:

Game Balance.zip


Also as a request, could you add the option to edit the registry file on a later patch? (Public/Registry.xml) There are a few cool formulas there that I want to mod :P

Updated 7 years ago.
0Send private message
?

Click here to login

Reply
Comment