software-setup-system-requirements-and-technical-tools
Creating Custom Parts and Skins for Kerbal Space Program
Table of Contents
Understanding the Basics of Modding in KSP
Kerbal Space Program (KSP) offers a deeply moddable experience, allowing you to create entirely new parts and custom skins that extend gameplay far beyond the stock game. Modding involves creating 3D models, textures, configuration files, and sometimes small scripts. Familiarity with 3D modeling software (Blender, Maya), image editors (GIMP, Photoshop), and the Unity game engine is recommended. The core modding directory is GameData/ inside your KSP installation. Every mod lives in its own folder within that directory, following a strict structure of assets and .cfg files.
Creating Custom Parts
Designing a custom part requires modeling geometry, texturing, exporting to the correct format, and writing a part configuration file that tells KSP how the part behaves. Below is a detailed workflow.
Choose Your Modeling Software
Blender (free) is the most popular choice for KSP modding due to its extensive toolset and strong community support. Maya and 3ds Max also work, but Blender’s export pipelines for KSP are well documented. Install the Blender KSP Part Tools addon to simplify export to Unity’s .mu format.
Designing the Part Geometry
Build your part at real-world scale (KSP uses meters). Keep polygon counts manageable — a few thousand triangles per part ensures good performance. Use quads where possible for clean UV mapping. Common part types include fuel tanks, engines, command pods, and structural struts. Model attachment nodes as small cylinders or empty game objects that you will later reference in the .cfg file.
Key tip: Align the part’s pivot point (origin) so that it sits naturally when attached. For example, the bottom of a fuel tank should be at the world origin (0,0,0) so it stacks cleanly.
UV Unwrapping and Texturing
Unwrap the 3D model so that all faces are flattened onto a 2D texture plane. Use Blender’s Smart UV Project for simple shapes, or manually pin seams for complex geometries. Bake a diffuse (color) texture that aligns with the UV layout. For KSP, textures are typically 1024x1024 or 2048x2048 PNG files. Include an alpha channel for transparency (e.g., windows, vents).
Create a base texture using a color scheme that matches your desired aesthetic. You can also add a normal map for surface detail (bumps, rivets, panels) and a specular map for shininess. KSP uses the _MainTex (diffuse), _BumpMap (normal), and _SpecMap (specular) shader properties.
Export and Import into Unity
Export your model as an FBX file from Blender (or use the KSP Part Tools to export directly to .mu). Open Unity (version 5.4 to 2019.4 are supported; better stick with 2017.4 LTS for compatibility). Import the FBX, then create a prefab with the correct materials. Use KSP’s custom shaders – KSP/Diffuse, KSP/Bumped, KSP/Specular – available in the KSP Part Tools Unity package. Assign your diffuse, normal, and specular textures to the material slots.
Set up colliders: add a MeshCollider (use the part’s mesh) or a combination of BoxCollider/CapsuleCollider for simpler shapes. Define a DragCube if necessary (optional for custom parts). Then export the prefab as a .mu file using the PartTools exporter. The resulting .mu file and any textures go into your mod’s folder under GameData/YourMod/.
Writing the Part Configuration File
The .cfg file is a text file that defines part properties. It uses a simple key-value syntax. A minimal example:
PART
{
name = myCustomTank
module = Part
author = YourName
mesh = model.mu
rescaleFactor = 1.0
node_stack_top = 0.0, 1.0, 0.0, 0.0, 1.0, 0.0
node_stack_bottom = 0.0, -1.0, 0.0, 0.0, -1.0, 0.0
TechRequired = start
entryCost = 1000
cost = 500
category = FuelTank
subcategory = 0
title = My Custom Tank
manufacturer = Your Company
description = A custom fuel tank made by you.
MODULE
{
name = ModuleFuelTank
volume = 1000
}
}
Key sections: mesh points to your .mu file; node_stack_top/bottom define attachment points (position and direction vectors); MODULE adds functionality – ModuleFuelTank, ModuleEngine, ModuleCommand, etc. Refer to the KSP Wiki Part Configuration for all available modules.
Place the .cfg file in the same folder as your .mu and textures. Name it something like part.cfg.
Installing and Testing
Copy your mod folder into GameData. Launch KSP, enter the Vehicle Assembly Building, and find your part in the appropriate category. If it doesn’t appear, check the log file (KSP.log or output_log.txt) for errors. Common issues include missing textures, incorrect node definitions, or missing dependencies (like ModuleManager if you use patching). Adjust and retest.
Creating Custom Skins
Skins are texture overrides that change the appearance of existing parts or your own custom parts. They can be simple recolors or completely new designs. The process involves extracting stock textures, editing them, and applying them via a mod folder structure.
Understanding Texture Maps
Most KSP parts use three texture maps: diffuse (base color), normal (bump detail), and specular (shininess and reflectivity). A skin replaces one or more of these. The UV mapping of the 3D model dictates how the texture wraps around the part, so you must match the UV layout exactly or the skin will appear misaligned. For stock parts, the UV maps are fixed and cannot be changed — you must texture over the existing layout.
Extracting Original Textures
You can extract stock textures using tools like KSPFloobius or simply by locating them inside the GameData/Squad folder. Most textures are stored as .png or .dds files. Copy the ones you want to mod into a separate folder. Work on copies to preserve originals.
Editing Textures for Recolor or New Design
Open the diffuse texture in an image editor like GIMP or Photoshop. Use layers to paint over areas without destroying the original UV coordinates. To recolor a fuel tank, you might flood-fill the tank body with a new color while keeping decals or stripe lines. For a full custom skin, create a brand new texture from scratch, ensuring your design stays within the UV islands. Use the clone stamp tool to repair seams or fill gaps.
Important: Avoid changing the resolution unless you scale uniformly. KSP can handle non-power-of-two textures but power-of-two (e.g., 1024, 2048) is optimal.
Applying Normal and Specular Maps
If you change the diffuse, you may also want to adjust the normal map to match new surface details (e.g., removing panel lines). Use a normal map generator like NormalMap Online or GIMP’s normal map plugin. For specular maps, convert the desired shininess area to grayscale – white is shiny, black is matte. Save all maps next to your diffuse texture with matching filenames (e.g., modelDiffuse, modelNormal, modelSpec). KSP loads them automatically if named correctly per the part’s material references.
Replacing Textures in a Mod Folder
Create a mod folder structure:
GameData/YourSkinMod/Parts/partName/Textures/
Place your edited textures there. Then write a ModuleManager patch to redirect the part’s texture path. For example:
@PART[originalPartName] // or use wildcards
{
%MODULE[ModulePart] // not needed, texture replacement is done via MODEL node
MODEL
{
texture = modelDiffuse, YourSkinMod/Parts/partName/Textures/yourDiffuse
texture = modelNormal, YourSkinMod/Parts/partName/Textures/yourNormal
}
}
Alternatively, you can directly replace the texture in the part’s .mu file using KSP Part Tools’ texture replacement feature, but patches are easier for sharing. Install ModuleManager (a small DLL) into your GameData folder – it’s required for patches. The patch file goes anywhere in GameData with a .cfg extension.
Test by loading KSP and checking the part in the editor. If the skin doesn’t apply, verify the texture paths and that ModuleManager is present. Check the ModuleManager log for errors.
Essential Tools and Resources
- Blender – Free 3D modeling suite with KSP-specific addons. Download Blender
- KSP Part Tools – Unity package that adds KSP’s shaders and exporter. Get it from the GitHub repository
- ModuleManager – Required for config patches. KSP Forum ModuleManager
- GIMP – Free image editor for texturing. Download GIMP
- KSP Wiki Modding Tutorials – Comprehensive guides. KSP Wiki Modding
- KSP Forum – Mod Development – Ask questions and share. KSP Forum Mod Dev
- TexturePacker – Useful for optimizing multiple textures into atlases (optional).
Testing and Debugging Tips
Always back up your KSP install before modding. Use the Alt+F2 debug console to spot errors during load. The KSP.log file lists all loaded parts and any asset errors. If a part crashes the game, check for missing colliders or overly high polygon counts. For skins, ensure your texture names match exactly (case-sensitive on Linux/macOS). Run KSP in windowed mode for quicker restart cycles.
Conclusion
Creating custom parts and skins for Kerbal Space Program opens up endless creative possibilities. By mastering 3D modeling, texturing, and config file editing, you can tailor your space program to any vision. Start small — a simple fuel tank or a recolor of the Mk1 Pod — then work up to complex engines with multiple modules. The KSP modding community is friendly and resource-rich, so don’t hesitate to consult tutorials or ask for feedback on the forum. With practice, you’ll be launching your own unique fleet of spacecraft, each bearing your personal stamp. Happy modding!