Special Project modding

From Stellaris Wiki
Jump to navigation Jump to search

Version

Outliner top.png
This article may contain outdated information that is inaccurate for the current version of the game. It was last updated for 2.0.

This article is for the PC version of Stellaris only.

The special project game data can be found in these files/folders:

common/special_projects

Special Projects file structure[edit]

The file consists of a series of special_project = {} entries.

special_project properties[edit]

Name Description Values Required Example
key The ID of the project, it is used in events and also in the localisation file. String Yes key = "MYMOD_EXAMPLE_1_PROJECT"
event_chain An associated event chain. ID of an existing Event chain No event_chain = "mymod_example_event_chain"
picture A picture for the project. String No picture = GFX_evt_alien_nature
icon An icon to show on the left in the event log tree. String No icon = "gfx/interface/icons/situation_log/situation_log_quest.dds"
cost Science point cost of the project. Either cost or days_to_research must be defined. Integer No cost = 560
days_to_research How many days it will take to complete this project. Either cost or days_to_research must be defined. Integer No days = 180
tech_department Which department will handle this. physics_technology, society_technology, engineering_technology Yes tech_department = physics_technology
timelimit In how many days will this project fail, triggering the on_fail statement. Integer, -1 for unlimited No timelimit = 100
location Does this project have a specific location? no No location = no
event_scope The scope in which the statements run. ship_event, planet_event Yes event_scope = planet_event
requirements Conditions needed to start the project. Conditions No requirements = {
shipclass_science_ship = 1
leader = scientist
skill > 1
}
on_success Statements to run when the project is complete. Statements Yes

on_success = {
owner = { country_event = { id = mymod.event.1 } }
}
on_success = {
ship_event = { id = mymod.anomaly.1 }
}

on_fail Statements to run when the project fails. Statements Yes on_fail = {}

requirements[edit]

Requirements use condition-like syntax, but they have their own set of commands. They do not support AND and OR commands.

Name Description Values Required Example
leader The type of leader needed at location. scientist, admiral, general, ruler, governor No leader = scientist
skill The skill level of the leader. Integer No skill > 2
has_trait The leader must have this trait Leader trait ID No has_trait = leader_trait_expertise_voidcraft
shipclass_military The number of military ships required. Integer No shipclass_military = 1
shipclass_constructor The number of constructor ships required Integer No shipclass_constructor = 1
shipclass_science_ship The number of science ships required Integer No shipclass_science_ship = 1
shipclass_colonizer The number of colonizers required Integer No shipclass_colonizer = 1
shipclass_transport The number of transport ships required Integer No shipclass_transport = 1
assault_armies The number of assault armies required Integer No assault_armies = 1
defense_armies The number of defense armies required Integer No defense_armies = 2
research_station Is a research station required at location? yes No research_station = yes
mining_station Is a mining station required at location? yes No mining_station= yes
observation_station Is an observationstation required at location? yes No observation_station = yes
is_founder_species Does owner has to be a founder species? yes No is_founder_species = yes
Example[edit]
requirements = {
	shipclass_science_ship = 1
	leader = scientist
	skill > 2
}

Usage[edit]

Once you have a special project defined, you can start it in an event by using the enable_special_project command. The command has three parameters:

Name Description Example
name The key of the special project. name = "MYMOD_EXAMPLE_1_PROJECT"
location The location where the event takes place, for events with no location, it's usually set to the capital.
capital_scope = {
	enable_special_project = {
		name = "MYMOD_EXAMPLE_1_PROJECT"
		location = this
		owner = root
	}
}
owner The country which will have this project enabled. owner = root

Example[edit]

enable_special_project = {
	name = "MYMOD_EXAMPLE_1_PROJECT"
	location = this
	owner = root
}

Localisation[edit]

The localisation entries depend on the key property. The key is used for title and key_DESC is used for description.

Example[edit]

MYMOD_EXAMPLE_1_PROJECT:0 "Example title"
MYMOD_EXAMPLE_1_PROJECT_DESC:0 "Example description"