Special Project modding

From Stellaris Wiki
Jump to navigation Jump to search


Outliner top.png
Please help with verifying or updating older sections of this article. At least some were last verified for version 2.0.

This article is for the PC version of Stellaris only.

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


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 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
requirements = {
	shipclass_science_ship = 1
	leader = scientist
	skill > 2


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 = {
		location = this
		owner = root
owner The country which will have this project enabled. owner = root


enable_special_project = {
	location = this
	owner = root


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


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

Empire EmpireEthicsGovernments • Civics • OriginsMandatesAgendasTraditions • Ascension PerksEdictsPoliciesRelicsTechnologiesCustom Empires
Pops JobsFactions
Leaders LeadersLeader Traits
Species SpeciesSpecies Traits
Planets PlanetsPlanetary Feature • Orbital DepositBuildings • DistrictsPlanetary Decisions
Systems SystemsStarbasesMegastructuresBypassesMap
Fleets FleetsShips • Components
Land Warfare ArmiesBombardment Stance
Diplomacy Diplomacy • Federations • Galactic CommunityOpinion ModifiersCasus Belli • War Goals
Events EventsAnomaliesSpecial projectsArchaeological Sites
Gameplay GameplayDefinesResources • Economy
Dynamic modding Dynamic moddingEffectsConditionsScopesModifiersVariablesAI
Media/localisation Maya exporterGraphicsPortraitsFlagsEvent picturesInterfaceIconsMusicLocalisation
Other Console commandsSave-game editingSteam Workshop