Modding

From Stellaris Wiki
Jump to: navigation, search

Version

Outliner top.png
This article is timeless and should be accurate for any version of the game.

Modding, or creating mods, is the act of modifying the behavior of the base game (often referred as vanilla), either for personal use, or to release publicly to other players, for instance via the Steam Workshop.

As for all Paradox games, Stellaris is moddable to a great extent. Motivations of modders may vary widely: better translation to native language, more events or decisions, better map, major overhaul, etc.

This guide is intended to lower the entry barriers to the world of Stellaris modding. However, there is still a learning curve to it, and it cannot replace the need to read some working vanilla code, and do lots of trial and error experimentation!

Guidelines[edit]

  • Create a mod for your modifications: use a personal mod even for small changes, and never modify directly game files in Steam Stellaris folder, as they may be overwritten without warning.
  • Use a good text editor (like Atom, Notepad++ or Sublime Text) to edit files and search into multiple files.
  • Minimize overwrites of vanilla files by adding separate files and loading from folders whenever possible, to improve mod compatibility and maintenance. (Your files can have any name, all files in the folder will be loaded by the game. So choose a name, no one else will ever use, like the name of your mod)
  • Use a proper merge tool (like WinMerge), to merge between folders, and update modified vanilla files to a new vanilla patch.
  • Backup your work to avoid losing everything. Consider using a source control system like Git and a collaborative forge like GitHub to manage team collaboration.
  • Use UTF-8 encoding for text files.
  • Use UTF-8 with BOM for localisation files.
  • Indent properly to easily spot unclosed curly braced. Vanilla uses 1 tab for indentation rather than spaces.
  • Use comments starting with # character, to remember reasons for writing tricky stuff.

Mod structure[edit]

Mods are located in the folder:

OS Path
Linux ~/.local/share/Paradox Interactive/Stellaris/mod
Windows C:\Users\<Username>\Documents\Paradox Interactive\Stellaris\mod
Mac OS ~/Documents/Paradox Interactive/Stellaris/mod

which must contain:

  • the .mod file, to tell the launcher what to do with the mod-folder.
  • the mod folder or zip containing the mod data. The mod data must have the same file and folder structure as if it was along with stellaris.exe in the game directory.

(Subscribed and downloaded mods from the steam workshop are in .../Paradox Interactive/Stellaris/workshop/content/281990)

Note that folder and file names are case sensitive on Mac OS X and Linux. Additionally, the path has to be relative to the .../Paradox Interactive/Stellaris folder; absolute path to another directory will not work.

For example, a new text file called test1.mod can be created in the .../Paradox Interactive/Stellaris/mod folder, alongside a new 'test1' folder.

name="Test1"
path="mod/test1"
tags={
	"Economy"
}
picture="test1.jpg"
supported_version="1.0.3"

In the test1 folder, the test1.mod file should be copied and can be renamed to descriptor.mod.

It is important that your thumbnail image is in the ".jpg" format, otherwise steam gives an error during upload.

Game files can now be replaced using the same structure as the game directory. Here, a common folder was created, with a traits subfolder that contains the 00_species_traits.txt from the game folder. The structure now looks like the following:

 C:\Users\Jason\Documents\Paradox Interactive\Stellaris\mod
   test1.mod
   test1 (dir)
     test1.jpg
     descriptor.mod
     common (dir)
       traits (dir)
         00_species_traits.txt

A new trait with various bonuses called trait_super can be added. Here it has a high cost (so the AI could not use it, but the user could load it using the console commands). (Using is_ai = no seems to also do the trick)

trait_super = {
	cost = 1000
	modifier = {
		tile_resource_food_mult = 10
		tile_resource_energy_mult = 10
		tile_resource_minerals_mult = 10
	}
}

In addition, downloaded mods will use content in zip files. Their '.mod' files will contain lines defining the 'remote_file_id' and 'archive'. Here is an example:

name="999 Core Planets - All your planets are belong to you"
archive="workshop/content/281990/678893824/999cores.zip"
tags={
	"Balance"
	"Gameplay"
	"Utilities"
}
remote_file_id="678893824"
supported_version="1.0.0"

This directory is based off the Stellaris directory in your documents folder, for instance this zip file is:

C:\Users\<Username>\Documents\Paradox Interactive\Stellaris\workshop\content\281990\678893824\999cores.zip

Game data[edit]

Game structure[edit]

Below is a list of game files and folders, with associated modding guide.

Stellaris/common/[edit]

Folder/File Summary Guides
agendas Agendas are given to leader-candidates in Oligarchic government-forms Agendas
ambient_objects References used by code to spawn ambient objects Models
anomalies Events that occur for research ships Anomalies
armies Definitions for army types Armies
army_attachments Definitions for attachments that can be added to armies Armies
attitudes Definitions containing the restrictions for each attitude used by the AI AI
buildable_pops Definitions for buildable pops. i.e. Robots Pops
buildings Setup for buildings constructable on planets, and those given through events Planets
colors Color definitions used for the country color selection Countries
component_flags List of flags used by the AI for selecting components Ships
component_sets List of the sets of components used by ships Ships
component_tags Used to group components together for common modifiers Ships
component_templates Attribute setup for each weapon and the templates used for ships Ships
country_types Rules for each country within the game. Countries
defines Basic game behaviors and settings Defines
deposits Setup for the deposits of resources found on planets Planets
diplo_phrases Setup for the logic behind the diplomatic phrases used between countries. AI
diplomatic_actions Setup for the rules for diplomatic actions. Gameplay
edicts Setup for the edicts used by planets and countries. Edicts
ethics Setup for ethics, controlling their modifiers and categories Ethics
event_chains Setup for the event chains used in the events folder Event chains
fallen_empires Sets up the countries and system initializer used for fallen empires Systems
game_rules Logic used for various game actions, i.e. can_enslave_pop. Logic here does not override hardcoded rules. Gameplay
global_ship_designs Designs used by the ship designer for each species Ships
governments Setup for the governments. Governments
graphical_culture Controls the lightning used for ships, which differs between graphical cultures. Species
mandates Controls the mandates used by factions Mandates
name_lists Sets up the names used for each species. Species
observation_station_missions Actions that can be done with observation stations depending on ethic choices. Gameplay
on_actions Events and actions that happens when you move, or do anything. Events
opinion_modifiers Opinion of Empires on other Empires depending on Political status and Ethics. Gameplay
personalities Shows the personalities of Empires AI traits and of Fallen Empires and enables editing them. AI
planet_classes The setup for all the planets in the game. Planets
planet_modifiers Spawn chances planet modifiers (f.e. lush, hazardous weather, etc.). Planets
policies AI Policy grabbing (What order they take policies in) Policies
pop_faction_types Population faction types and personalities? Pops
precursor_civilizations Precursor civilisation weightings Planets
random_names Lists of random names for Empires Gameplay
scripted_effects Events that give buffs or de-buffs (effects). Gameplay
scripted_triggers Scripted events and how they trigger. Gameplay
section_templates Different Ship AI and how it acts. Ship
sector_types Types of sectors and how they act. Gameplay
ship_behaviours Standard ship behaviours. Ship
ship_sizes Sizes of the Ships. Ship
solar_system_initializers Systems
spaceport_modules Planets
special_projects Special Projects
species_classes Species
start_screen_messages Gameplay
static_modifiers Gameplay
strategic_resources Planet
subjects Gameplay
technology Technology
terraform Planets
tile_blockers Planets
traits Traits
triggered_modifiers Gameplay
war_demand_counters Wars
war_demand_types Wars
achievements.txt None
alerts.txt Gameplay
message_types.txt Gameplay

Stellaris/events/[edit]

Folder/File Summary Guides
example_events.txt Contains the event code for a set of events. Events

Stellaris/flags/[edit]

Folder/File Summary Guides
*.dds A flag image file. Flags
colors.txt Sets up the allowed colors for flags and the randomizable combos. Flags

Stellaris/fonts/[edit]

File Summary Guides
fonts.asset Sets up the fonts used by the game. Fonts

Stellaris/gfx/[edit]

Folder/File Summary Guides
advisorwindow Sets up the 3D view for the advisor Graphics
arrows Contains the images used by various arrows ingame. Graphics
cursors Contains the cursor files/images used ingame. Graphics
event_pictures Contains the pictures used in events. Events
fonts Contains the font files used ingame. Fonts
FX Contains the FX shaders used ingame. Graphical Effect
interface/ Contains the images used for interfaces ingame. Graphics
interface/anomaly Contains the images used for the anomaly mechanic Graphics
interface/buttons Contains the images used for buttons Graphics
interface/diplomacy Contains the images used for the diplomacy interface. Graphics
interface/elections Contains the images used for the election interface. Graphics
interface/event_window Contains the images used for the event window. Graphics
interface/flags Contains the image masks used for flags. Graphics
interface/fleet_view Contains the images used for fleets. Graphics
interface/frontend Contains the images used for the frontend interface. Graphics
interface/government_mod_window Contains the images used for the government modification interface. Graphics
interface/icons Contains the icons used for everything in the game. Graphics
interface/main Contains the images used for generic actions. Graphics
interface/old Contains the images used from EU4 Graphics
interface/outliner Contains the images used for the outliner interface. Graphics
interface/planetview Contains the images used for the planet view interface. Graphics
interface/progressbars Contains the images used for progress bars ingame. Graphics
interface/ship_designer Contains the images used for the ship designer interface. Graphics
interface/situation_log Contains the images used for the situation log interface. Graphics
interface/sliders Contains the images used for sliders ingame. Graphics
interface/system Contains the images used for the system view interface. Graphics
interface/tech_view Contains the images used for the technology view interface. Graphics
interface/tiles Contains the images used for the tile view interface. Graphics
interface/topbar Contains the images used for the topbar interface. Graphics
interface/waroverview Contains the images used for the war view interface. Graphics
keyicons Contains the images used for button presses ingame. Graphics
lights Contains the logic used for the light effects ingame. Graphical Effect
loadingscreens Contains the images used for loadscreens. Graphics
models Contains the model .mesh files and images. Models
models/portraits Contains the portrait .mesh files and images. Portraits
particles Contains the logic and images used for particles. Graphics
pingmap Contains the logic used for pings. Graphics
portraits Contains the logic used for portrait images. Portraits
projectiles Contains the logic used for projectiles. Graphics
shipview Contains the logic used for ship view. Graphics
worldgfx Contains the logic and images used for world graphic effects. Graphics

Stellaris/interface/[edit]

Folder Summary Guides
*.gfx Controls the assignment of image to interface variable. Interfaces
*.gui Controls the visual logic of an interface. Interfaces

Stellaris/localisation/[edit]

File Summary Guides
*l_english.yml Contains English localisation Localisation
*l_french.yml Contains French localisation Localisation
*l_german.yml Contains German localisation Localisation
*l_polish.yml Contains Polish localisation Localisation
*l_russian.yml Contains Russian localisation Localisation
*l_spanish.yml Contains Spanish localisation Localisation
*l_braz_por.yml Contains Brazilian/Portuguese localisation Localisation

Stellaris/map/[edit]

Folder/File Summary Guides
galaxy Contains the galaxy options. You cannot add new ones currently. Galaxies
setup_scenarios Controls the logic for different sizes of galaxies. Galaxies

Stellaris/music/[edit]

Folder/File Summary Guides
*.ogg A music file. Music
songs.asset Controls the assignment of music to a code name, and sets the volume of playback. Music
songs.txt Music

Stellaris/prescripted_countries/[edit]

Folder/File Summary Guides
*.txt Contains a pre-scripted setup for a country. Listed on the side ingame. Galaxies
setup_scenarios Controls the logic for different sizes of galaxies. Galaxies

Stellaris/sound/[edit]

Folder/File Summary Guides
*.asset Sets up sounds. Sound
*.wav A sound file. Sound

Tools & utilities[edit]

External links[edit]

Stellaris Dev Diary #31 - Modding (Scripting Anomalies)
Stellaris Dev Diary #32 - Modding art

See also[edit]

References[edit]


Modding
Static modding DefinesStatic modifiersMapSpeciesTraitsEthosGovernmentsEmpiresPoliciesEdictsTechnologyBuildingsShipsFleetsEventsCrisisAnomaliesAgenda
Dynamic modding EffectsConditionsScopesModifiersGameplayDecisionsObjectivesAI
Media/localisation Maya exporterGraphicsPortraitsFlagsEvent picturesEvent soundsInterfaceIconsMusicLocalisation
Other Console commandsSave-game editingSteam Workshop