Ship modding

Version

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

This article is for the PC version of Stellaris only.

This page is about modding of Ships, Sections and Components.

## Basics

Ships consists of three basic components:

1. `ship_size` – *#Ship Sizes*
2. `section_template` – *#Ship Sections*
3. `component_template` – *#Components*

These three things are then used by a `ship_design` to formulate a complete ship. – *#Global Ship Designs*

A `ship_size` has a list of slots that can have sections attached to them.
Each slot has a name and specify a locator where the section will be attached graphically.

**Example:**
```
 section\_slots = {
 "north" = { locator = "part1" }
 "west" = { locator = "part2" }
 "east" = { locator = "part3" }
 "south" = { locator = "part4" }
 }

```

A `section_template` then specify what `ship_sizes` they are compatible with and which slots they fit on.

**Example:**
```
 ship\_size = name\_of\_a\_shipsize
 ship\_size = name\_of\_another\_shipsize
 fits\_on\_slot = "north"
 fits\_on\_slot = "a\_slot\_in\_some\_other\_shipsize"

```

Sections also specify slots for components. – *#Component Slot Templates*

**Example:**
```
 component\_slot = {
 name = "LARGE\_GUN\_01"
 slot\_size = large
 slot\_type = weapon
 locatorname = "large\_gun\_01"
 }
 small\_utility\_slots = 1
 medium\_utility\_slots = 2
 large\_utility\_slots = 3

```

Components are placed by the `ship_design` in a way that sizes match and weapon components go on `slot_type = weapon` and vice versa.

### Graphics

Graphically the ship is structured the same way as above. A core entity is selected based on `gfx_culture` and `ship_size`.
The name of the entity should be: `<gfx_culture>_<ship_size>_entity`

**Example:** `mammalian_01_corvette_entity`
*NOTE:* If you don't want to use graphical cultures simply leave that part out of your entity name! E.g. `corvette_entity` will be used if the current graphical culture (or its fallback) fail to find an entity with their name as a prefix.

For ships with multiple sections this entity is usually invisible (exception is military stations) but holds the skeleton. Animations are usually done on the core entity. This core entity should have the "part1", "part2" etc. locators referenced by the `ship_size` slots.

Each `section_template` specify a name for their entity directly in their script files (`common/section_templates/`). The game then prepends the name of the `gfx_culture` to that name when getting an actual entity.

**Example:** (`common/component_templates/`):

```
 section\_template = {
 ...
 entity = "some\_entity"
 }

```

The game will look for `mammalian_01_some_entity` if the current `gfx_culture` is `mammalian_01`, the section entity is then attached to a locator on the core entity specified by the slot (like "part1").
Weapon entities are similar to section entities, with the differences being that they attach to the locator specified in the `section_template` and `component_slot` scripts.
The name would be `<gfx_culture>_<entity found in component_template>_entity`.
Weapon component entities should also have a locator named `turret_muzzle_01` (this is specified in defines.lua as `NGraphics::SHIP_TURRET_PROJECTILE_SPAWN_LOCATOR`).

## Ship Sizes

By ship sizes the game classifies all ships and stations. Ship sizes are defined at `common/ship_sizes/xyz.txt`.

### Examples

#### Corvette

0

```
corvette = {
	formation_priority = @corvette_formation_priority
	max_speed = @speed_very_fast
	acceleration = 0.35
	rotation_speed = 0.1
	collision_radius = @corvette_collision_radius
	max_hitpoints = @corvette_hp
	modifier = {
		ship_evasion_add = @corvette_evasion
		ship_piracy_suppression_add = 10
	}
	size_multiplier = 1
	fleet_slot_size = 1
	section_slots = { "mid" = { locator = "part1" } }
	num_target_locators = 2
	is_space_station = no
	icon_frame = 2
	base_buildtime = @corvette_build_time
	can_have_federation_design = yes
	enable_default_design = yes	#if yes, countries will have an auto-generated design at start

	default_behavior = swarm

	prerequisites = { "tech_corvettes" }

	combat_disengage_chance = 1.00

	class = shipclass_military
	construction_type = starbase_shipyard
	required_component_set = "power_core"
	required_component_set = "ftl_components"
	required_component_set = "thruster_components"
	required_component_set = "sensor_components"
	required_component_set = "combat_computers"

	resources = {
		category = ships
		upkeep = {
			energy = @corvette_upkeep_energy
			alloys = @corvette_upkeep_alloys
		}
	}

	min_upgrade_cost = {
		alloys = 1
	}
}

```

#### Colossus

0

```
colossus = {
	formation_priority = @colossus_formation_priority
	max_speed = @speed_very_slow
	acceleration = 0.2
	rotation_speed = 0.15
	collision_radius = @colossus_collision_radius
	max_hitpoints = @colossus_hp
	modifier = {
		ship_evasion_add = @colossus_evasion
	}
	size_multiplier = 32
	fleet_slot_size = 32
	section_slots = { "ship" = { locator = "frame_ship" } }
	num_target_locators = 4
	is_space_station = no
	icon_frame = 7
	base_buildtime = @colossus_build_time
	can_have_federation_design = no
	enable_default_design = yes	#if yes, countries will have an auto-generated design at start

	prerequisites = { "tech_colossus" }

	class = shipclass_military_special
	construction_type = starbase_shipyard
	required_component_set = "power_core"
	required_component_set = "ftl_components"
	required_component_set = "thruster_components"
	required_component_set = "combat_computers"

	potential_construction = {
		OR = {
			is_scope_type = starbase
			AND = {
				is_scope_type = megastructure
				OR = {
					is_megastructure_type = mega_shipyard_3
					is_megastructure_type = mega_shipyard_restored
				}
			}
		}
	}

	possible_construction = {
		custom_tooltip = {
			fail_text = starbase_citadel_trigger
			OR = {
				AND = {
					is_scope_type = megastructure
					OR = {
						is_megastructure_type = mega_shipyard_3
						is_megastructure_type = mega_shipyard_restored
					}
				}
				AND = {
					is_scope_type = starbase
					has_starbase_size >= starbase_citadel
				}
			}
		}
		custom_tooltip = {
			fail_text = starbase_colossal_yards_trigger
			OR = {
				AND = {
					is_scope_type = megastructure
					OR = {
						is_megastructure_type = mega_shipyard_3
						is_megastructure_type = mega_shipyard_restored
					}
				}
				AND = {
					is_scope_type = starbase
					has_starbase_building = colossus_yards
				}
			}
		}
	}

	empire_limit = {
		base = 1
	}

	resources = {
		category = ships
		cost = {
			alloys = 10000
		}
		upkeep = {
			energy = @colossus_upkeep_energy
			alloys = @colossus_upkeep_alloys
		}
	}

	min_upgrade_cost = {
		alloys = 10
	}
}

```

#### Juggernaut

0

```
juggernaut = {
	formation_priority = @juggernaut_formation_priority
	max_speed = @speed_very_slow
	acceleration = 0.2
	rotation_speed = 0.15
	collision_radius = @juggernaut_collision_radius
	max_hitpoints = @juggernaut_hp
	modifier = {
		ship_evasion_add = @juggernaut_evasion
		starbase_shipyard_capacity_add = 2
	}

	base_buildtime = @juggernaut_build_time
	resources = {
		category = ships
		upkeep = {
			energy = @juggernaut_upkeep_energy
			alloys = @juggernaut_upkeep_alloys
		}
	}

	combat_size_multiplier = 5
	size_multiplier = 32
	fleet_slot_size = 32
	section_slots = {
		"core" = { locator = "part1" }
	}

	potential_construction = {
		OR = {
			AND = {
				is_scope_type = starbase
				NOT = { has_starbase_size = juggernaut }
			}
			AND = {
				is_scope_type = megastructure
				OR = {
					is_megastructure_type = mega_shipyard_3
					is_megastructure_type = mega_shipyard_restored
				}
			}
		}
	}

	possible_construction = {
		custom_tooltip = {
			fail_text = starbase_citadel_trigger
			OR = {
				AND = {
					is_scope_type = megastructure
					OR = {
						is_megastructure_type = mega_shipyard_3
						is_megastructure_type = mega_shipyard_restored
					}
				}
				AND = {
					is_scope_type = starbase
					has_starbase_size >= starbase_citadel
				}
			}
		}
		custom_tooltip = {
			fail_text = starbase_colossal_yards_trigger
			OR = {
				AND = {
					is_scope_type = megastructure
					OR = {
						is_megastructure_type = mega_shipyard_3
						is_megastructure_type = mega_shipyard_restored
					}
				}
				AND = {
					is_scope_type = starbase
					has_starbase_building = colossus_yards
				}
			}
		}
	}

	empire_limit = {
		base = 1
	}

	num_target_locators = 0
	can_have_federation_design = yes
	enable_default_design = yes	#if yes, countries will have an auto-generated design at start
	can_disable = no
	icon_frame = 7
	ship_class_icon_frame = 35

	default_behavior = carrier

	prerequisites = { "tech_juggernaut" }
	class = shipclass_starbase
	construction_type = starbase_shipyard

	required_component_set = "power_core"
	required_component_set = "sensor_components"
	required_component_set = "combat_computers"
	required_component_set = "ftl_components"
	required_component_set = "thruster_components"
	required_component_set = "ship_aura_components"

	min_upgrade_cost = {
		alloys = 50
	}
}

```

## Ship Sections

Ships consist of Ship Sections. They are defined at `common/section_templates/xyz.txt`.

### Default list of locator names

Playable "graphical cultures" sharing the same locator names for each section, this are:

**Vanilla locator names**

```
# CORVETTE
"CORVETTE\_MID\_M1S1" locator "small\_gun\_01"
"CORVETTE\_MID\_M1S1" locator "medium\_gun\_01"
"CORVETTE\_MID\_S3" locator "small\_gun\_01"
"CORVETTE\_MID\_S3" locator "small\_gun\_02"
"CORVETTE\_MID\_S3" locator "small\_gun\_03"
"CORVETTE\_MID\_S2PD1" locator "small\_gun\_01"
"CORVETTE\_MID\_S2PD1" locator "small\_gun\_02"
"CORVETTE\_MID\_S2PD1" locator "small\_gun\_03"

# DESTROYER
"DESTROYER\_BOW\_M1S2" locator "medium\_gun\_01"
"DESTROYER\_BOW\_M1S2" locator "small\_gun\_01"
"DESTROYER\_BOW\_M1S2" locator "small\_gun\_02"
"DESTROYER\_BOW\_S3" locator "small\_gun\_01"
"DESTROYER\_BOW\_S3" locator "small\_gun\_02"
"DESTROYER\_BOW\_S3" locator "small\_gun\_03"
"DESTROYER\_BOW\_L1" locator "large\_gun\_01"

# CRUISER
"CRUISER\_BOW\_L1" locator "large\_gun\_01"
"CRUISER\_BOW\_M1S2" locator "medium\_gun\_01"
"CRUISER\_BOW\_M1S2" locator "small\_gun\_01"
"CRUISER\_BOW\_M1S2" locator "small\_gun\_02"
"CRUISER\_BOW\_M2" locator "medium\_gun\_01"
"CRUISER\_BOW\_M2" locator "medium\_gun\_02"
"CRUISER\_MID\_S2HB" locator "small\_gun\_01"
"CRUISER\_MID\_S2HB" locator "small\_gun\_02"
"CRUISER\_MID\_L1M1" locator "large\_gun\_01"
"CRUISER\_MID\_L1M1" locator "medium\_gun\_01"
"CRUISER\_MID\_M3" locator "medium\_gun\_01"
"CRUISER\_MID\_M3" locator "medium\_gun\_02"
"CRUISER\_MID\_M3" locator "medium\_gun\_03"
"CRUISER\_MID\_M2S2" locator "medium\_gun\_01"
"CRUISER\_MID\_M2S2" locator "medium\_gun\_02"
"CRUISER\_MID\_M2S2" locator "small\_gun\_01"
"CRUISER\_MID\_M2S2" locator "small\_gun\_02"
"CRUISER\_STERN\_M1" locator "medium\_gun\_01"
"CRUISER\_STERN\_S2" locator "small\_gun\_01"
"CRUISER\_STERN\_S2" locator "small\_gun\_02"

# BATTLESHIP
"BATTLESHIP\_BOW\_L1M1S2" locator "large\_gun\_01"
"BATTLESHIP\_BOW\_L1M1S2" locator "medium\_gun\_01"
"BATTLESHIP\_BOW\_L1M1S2" locator "small\_gun\_01"
"BATTLESHIP\_BOW\_L1M1S2" locator "small\_gun\_02"
"BATTLESHIP\_BOW\_L2" locator "large\_gun\_01"
"BATTLESHIP\_BOW\_L2" locator "large\_gun\_02"
"BATTLESHIP\_BOW\_M1S2SHB" locator "medium\_gun\_01"
"BATTLESHIP\_BOW\_M1S2SHB" locator "small\_gun\_01"
"BATTLESHIP\_BOW\_M1S2SHB" locator "small\_gun\_02"
"BATTLESHIP\_MID\_L2M2" locator "large\_gun\_01"
"BATTLESHIP\_MID\_L2M2" locator "large\_gun\_02"
"BATTLESHIP\_MID\_L2M2" locator "medium\_gun\_01"
"BATTLESHIP\_MID\_L2M2" locator "medium\_gun\_02"
"BATTLESHIP\_MID\_L3" locator "large\_gun\_01"
"BATTLESHIP\_MID\_L3" locator "large\_gun\_02"
"BATTLESHIP\_MID\_L3" locator "large\_gun\_03"
"BATTLESHIP\_MID\_M4SHB" locator "medium\_gun\_01"
"BATTLESHIP\_MID\_M4SHB" locator "medium\_gun\_02"
"BATTLESHIP\_MID\_M4SHB" locator "medium\_gun\_03"
"BATTLESHIP\_MID\_M4SHB" locator "medium\_gun\_04"
"BATTLESHIP\_MID\_S4LHB" locator "small\_gun\_01"
"BATTLESHIP\_MID\_S4LHB" locator "small\_gun\_02"
"BATTLESHIP\_MID\_S4LHB" locator "small\_gun\_03"
"BATTLESHIP\_MID\_S4LHB" locator "small\_gun\_04"
"BATTLESHIP\_STERN\_L1" locator "large\_gun\_01"
"BATTLESHIP\_STERN\_M2" locator "medium\_gun\_01"
"BATTLESHIP\_STERN\_M2" locator "medium\_gun\_02"

```

### Examples

#### Battleship XL Bow

0

```
ship_section_template = {
	key = "BATTLESHIP_BOW_M2S4"
	ship_size = battleship
	fits_on_slot = bow
	should_draw_components = yes
	entity = "battleship_bow_XL1_entity"
	icon = "GFX_ship_part_core_bow"

	prerequisites = { tech_energy_lance_1 tech_energy_lance_2 tech_arc_emitter_1 tech_arc_emitter_2 tech_mass_accelerator_1 tech_mass_accelerator_2 }

	ai_weight = {
		modifier = {
			factor = 10.0
			NOT = { is_preferred_weapons = weapon_type_explosive }
		}
		modifier = {
			factor = 0.1
			is_preferred_weapons = weapon_type_explosive
		}
	}

	component_slot = {
		name = "EXTRA_LARGE_01"
		template = "invisible_extra_large_fixed"
		locatorname = "xl_gun_01"
	}

	large_utility_slots = 3

	resources = {
		category = ship_sections
		cost = {
			alloys = @section_cost
		}
	}
}

```

#### Starbase Missile Defense Module

0

```
ship_section_template = {
	key = "MISSILE_STARBASE_SECTION"
	entity = "starbase_turret_section_entity"
	icon = "GFX_ship_part_core_mid"

	ship_size = starbase_outpost
	ship_size = starbase_starport
	ship_size = starbase_starhold
	ship_size = starbase_starfortress
	ship_size = starbase_citadel

	fits_on_slot = "1"
	fits_on_slot = "2"
	fits_on_slot = "3"
	fits_on_slot = "4"
	fits_on_slot = "5"
	fits_on_slot = "6"

	should_draw_components = yes

	component_slot = {
		name = "TORPEDO_01"
		template = "medium_missile_turret"
		locatorname = "medium_gun_01"
	}

	component_slot = {
		name = "TORPEDO_02"
		template = "medium_missile_turret"
		locatorname = "medium_gun_02"
	}
}

```

## Component Slot Templates

Component Slot Templates are containers of actual Weapon Components attached to Section Templates, or to say "turrets". They are defined at `common/component_slot_templates/xyz.txt`.

### Data Structure

* `component = weapon`
 **size** | One of the following is allowed.
* : `size = point_defence`
* : `size = small`
* : `size = medium`
* : `size = large`
* : `size = torpedo`
* : `size = extra_large`
* : `size = titanic`
* : `size = planet_killer`
small and medium can be added in component\_slot\_templates.
* : `size = small`
* : `size = medium`
 **entities** | Determines the Turret Entities of this Component Slot Template. Define with pairs of component tags and entities.

### Examples

#### Point Defense Turret

0

```
point_defence_turret = {
	size = point_defence
	component = weapon
	entities = {
		weapon_type_kinetic = "small_kinetic_gun_entity"
		weapon_type_energy = "turret_point_defence_entity"
	}
}

```

#### Invisible Extra Large "Turret"

0

```
invisible_extra_large_fixed = {
	size = extra_large
	component = weapon
	is_fixed = yes
}

```

## Component Sets

Component Sets are groups of Components. They are defined at `common/component_sets/xyz.txt`.

There are two type of Component Sets.

* One is used to group weapon and utility components together to be used by Ship Designers that are usually the same type of Components of different sizes unlocked by a same Technology;
* Another is used to group all components that fix a  Core Component Slot which can be unlocked by different technologies.

Core Components can be weapons and strike crafts, but such a weapon cannot fire and it doesn't have a turret entity. If it was a Planet Killer weapon, it can still be used but has no graphics.

### Data Structure

 **required\_component\_set = <yes/no>** | Must be `required_component_set = no` or leave this undefined.
 **icon = <GFX entry>** | Determines the icon of this component slot.
 **icon\_frame = <int>** | Vanilla always have `icon_frame = 1`. Actual usage is unclear.

### Examples

#### Core Component Set: "Combat Computers"

0

```
component_set = {
	key = "combat_computers"

	required_component_set = yes
	icon = "GFX_ship_part_computer"
	icon_frame = 1
}

```

#### Designer Component Set: "Red Lasers"

0

```
component_set = {
	key = "RED_LASER"

	icon = "GFX_ship_part_laser_1"
	icon_frame = 1
}

```

## Components

Components are attachments to ships for a weapon or a functional extension. They are defined at `common/component_templates/xyz.txt`.

### Weapon Stats CSV

Most stats of vanilla Weapon Components are defined at "common/component\_templates/weapon\_components.csv". This file has higher priority than individual Weapon Components.

### Component Tags

Component Tags can be given to Components to make them affected by certain modifiers. Most of the vanilla Component Tags are hard-codely required. They are defined at `common/component_tags/xyz.txt`.0

```
weapon_type_energy
weapon_type_kinetic
weapon_type_explosive
weapon_type_strike_craft
weapon_type_point_defense
weapon_role_anti_armor
weapon_role_anti_shield
weapon_role_artillery
weapon_role_anti_hull
weapon_role_point_defense

```

### Examples

#### Small Red Laser

0

```
weapon_component_template = {
	key = "SMALL_RED_LASER"
	size = small
	type = instant
	icon = "GFX_ship_part_laser_1"
	icon_frame = 1
	prerequisites = { "tech_lasers_1" }
	component_set = "RED_LASER"
	projectile_gfx = "infrared_laser_s"
	tags = { weapon_type_energy }
	upgrades_to = "SMALL_BLUE_LASER"
	ai_tags = { weapon_role_anti_armor }	#tags must be pre-registered in common/weapon_tags
	resources = {
		category = ship_components
		cost = {
			alloys = @s_t1_cost
		}
		upkeep = {
			energy = @s_t1_upkeep_energy
			alloys = @s_t1_upkeep_alloys
		}
	}
}

```

#### Tier 3 Strike Crafts

0

```
strike_craft_component_template = {
	key = "STRIKE_CRAFT_HANGAR_3"
	size = LARGE
	entity = "bomber_entity"

	weapon_type = point_defence
	projectile_gfx = "strike_craft_laser_3"

	power = @power4
	resources = {
		category = ship_components
		cost = {
			alloys = @l_t5_cost
		}
		upkeep = {
			energy = @l_t5_upkeep_energy
			alloys = @l_t5_upkeep_alloys
		}
	}

	count = @count
	regeneration_per_day = @regen
	launch_time = @launch_time

	damage = { min = 6 max = 17 }
	cooldown = 2.3
	range = @attack_range
	engagement_range = @engagement_range
	accuracy = 1.00
	tracking = 1.00

	health = 45
	armor = 0
	shield = 30
	evasion = 0.80

	speed = @speed4
	rotation_speed = 0.8
	acceleration = 1

	shield_penetration = 1.0
	armor_damage = 1.5

	ship_behavior = "fighters_behavior"

	icon = "GFX_ship_part_strike_craft_fighter_3"
	icon_frame = 1
	component_set = "STRIKE_CRAFT_HANGAR_3"
	prerequisites = { "tech_strike_craft_3" }

	tags = { weapon_type_strike_craft }
	ai_tags = { weapon_role_point_defense }
}

```

#### Small Tier 3 Shield

0

```
utility_component_template = {
	key = "SMALL_SHIELD_3"
	size = small
	icon = "GFX_ship_part_shield_3"
	icon_frame = 1
	power = @power_S3
	resources = {
		category = ship_components
		cost = {
			alloys = @shield_s_t3_cost
		}
		upkeep = {
			energy = @shield_s_t3_upkeep_energy
			alloys = @shield_s_t3_upkeep_alloys
		}
	}
	modifier = {
		ship_shield_add = @shield_S3
		ship_shield_regen_add_static = @regen_S3 #Regeneration per day
	}
	prerequisites = { "tech_shields_3" }
	component_set = "SHIELD_3"
	upgrades_to = "SMALL_SHIELD_4"
}

```

#### PD Nullification Juggernaut Aura

0

```
utility_component_template = {
	key = "SHIP_AURA_PD_PENETRATION"
	size = medium
	icon = "GFX_ship_part_aura_pd_penetration"
	icon_frame = 1
	power = 0

	size_restriction = { juggernaut }
	component_set = "ship_aura_components"

	hostile_aura = {
		name = "aura_pd_penetration"
		system_wide = yes

		stack_info = {			#A ship can only be affected by one aura of a certain id. If multiple auras have the same ID the one with the highest priority will be applied.
			id = hostile_pd_penetration
			priority = 1
		}

		modifier = {
			weapon_type_point_defense_weapon_damage_mult = -0.3
			weapon_type_point_defense_weapon_fire_rate_mult = -0.3
		}

		graphics = {
			area_effect = {
				entity = "circle_area_entity"
				dynamic_scale = yes
			}
			ship_effect = {
				entity = "ship_aura_negative_entity"
				dynamic_scale = no
			}
		}
	}

	ai_weight = {
		weight = 10
		modifier = {
			factor = 2
			is_ai = yes
			is_preferred_weapons = weapon_type_energy
		}
	}
}

```

#### Bombardment Juggernaut Aura

0

```
utility_component_template = {
	key = "SHIP_AURA_BOMBARDMENT"
	size = medium
	icon = "GFX_ship_part_aura_bombardment"
	icon_frame = 1
	power = 0

	size_restriction = { juggernaut }
	component_set = "ship_aura_components"

	friendly_aura = {
		name = "aura_bombardment"
		system_wide = yes

		stack_info = {			#A ship can only be affected by one aura of a certain id. If multiple auras have the same ID the one with the highest priority will be applied.
			id = friendly_bombardment
			priority = 1
		}

		modifier = {
			ship_orbital_bombardment_mult = 0.3
		}

		graphics = {
			area_effect = {
				entity = "circle_area_entity"
				dynamic_scale = yes
			}
			ship_effect = {
				entity = "ship_aura_negative_entity"
				dynamic_scale = no
			}
		}
	}

	ai_weight = {
		weight = 10
		modifier = {
			factor = 2
			is_ai = yes
			is_preferred_weapons = weapon_type_energy
		}
	}
}

```

### How does Colossus Weapons Work?

Colossus Weapons are invoked through a fleet command of the Colossus.0
Before you can fire, a scripted-trigger called `can_destroy_planet_with_<colossus weapon component key>` is checked. Read the vanilla file "common/scripted\_triggers/01\_scripted\_triggers\_planet\_killers.txt" and Dynamic modding for details.

When the weapon is fired, an on-action called `on_destroy_planet_with_<colossus weapon component key>` is fired. Read the vanilla file "common/on\_actions/01\_planet\_destruction.txt" and Event modding for details.

There are also relevant localisation keys to the Colossus Weapons, more than just the component name and description.

```
FLEETORDER_DESTROY_PLANET_WITH_<component key>:0 "Preparing to crack $PLANET|Y$"
MESSAGE_DESC_FOR_<component key>:0 "was utterly destroyed by"
<component key>_ACTION:0 "Crack World"

```

## Ship Behavior

Ship Behaviors are patterns ships follow during battle. They are called by Combat Computer Components and Strike Craft Components. They are defined at `common/ship_behaviors/xyz.txt`.

### Data Structure

 **attack\_move\_pattern****passive\_move\_pattern** | Each can be one of the following.
* charge
* orbit
* stay\_at\_range
* flee
* follow
* stationary
 **ignore\_combat\_movement = <yes/no>** | If yes, this ship will totally ignore auto movement patterns. If it is the fleet’s leader, you retain control to move to any point you direct while the rest of the fleet follows their movement patterns. If the ship goes through a hyperlane, the whole fleet will warp out.

## Global Ship Designs

Global Ship Designs are pre-scripted designs to be used by events with Effects such as `create_ship`. They are defined at `common/global_ship_designs/xyz.txt`.

### Data Structure

 **section*** **template = <ship section key>**
* **slot = <section\_slot\_name>**
 * **component**
	+ **slot = <component slot name>**
	+ **template = <component key>**
The component slot name of Weapon Component Slots are the slot names defined there.
The names of Utility Component Slots are `(SMALL|MEDIUM|LARGE|AUX)_UTILITY_<int>`. The index starts from 1.

## Create a special event ship

Sometimes you want ships that can't be designed by players or be compatible with all graphical cultures.
To create a ship like the space cloud you need to do the following:

1. Find a suitable `ship_size` in `common/ship_sizes/` or create a new one.
 If you create a new `ship_size`:
```
		is\_designable = yes/no 			# should this ship\_size be selectable in the ship designer?
		is\_space\_object = yes/no		# space objects will not leave engine trails
		gfx\_culture = { "pirate\_01" } 	# override which gfx\_cultures this size is valid for. By default a ship\_size is valid for all gfx\_cultures (meaning there should be one entity for each culture)
		graphical\_culture /no 			# overrides the need of a specific gfx\_culture

```
 If you want to use the same entity regardless of owner's graphical culture leave out the culture part in the entity name. E.g. `my_ship_size_entity` instead of `mammalian_01_my_ship_size_entity`.
2. Add section\_templates to `common/section_templates/`.
Again, if you want to use the same entity regardless of owner's graphical culture leave out the culture part in the entity name.
3. If you want unique weapon for your ship add weapon\_component\_templates to `common/component_templates/`
4. Make a design for your ship in `common/global_ship_designs/`

You need to have entities for both the `ship_size` and `section_templates`. Only one of them has to be visible though.
For single-section ships it is recommended to make the entity that belongs to the section the visible part since that will make the `ship_size` reusable.
If your ship has weapons then each `weapon_component_template` also needs to have an entity, and that entity needs to have a locator called `turret_muzzle_01`.

**Modding**