A small mod to perform automatic numbering of launch vehicles.
This project is a fork of the original KSPLaunchNumbering by Damien-The-Unbeliever — a genuinely brilliant idea. Later, linuxgurugamer took it further with a more feature-rich version, which is great in many ways too. However, I wasn't quite happy with how the numbering logic worked there, so I decided to roll my own implementation with a slightly different approach.
The core idea is very simple: you put a [tag] in your vessel name, and the mod replaces it with a sequential number on each launch. I didn't want to use complex templates, mindblowing 'blocs', or Roman numerals. It's as simple as pie: just replace [tag] with a number.
Name your vessel with a [tag] placeholder, and the mod replaces it with an incrementing launch number.
Examples:
With a named tag:
Vessel-[vessel] => first launch renames to "Vessel-1"
Vessel-[vessel] => second launch renames to "Vessel-2"
With an empty tag [] — the entire vessel name is used as the key:
Vessel-[] => first launch renames to "Vessel-1"
Vessel-[] => second launch renames to "Vessel-2"
Each unique [tag] gets its own counter. Named tags and empty tags track independently.
You can append any comment after a # sign. Everything from # onward is stripped during rename, so the number is applied only to the part before #.
The # suffix is useful for:
- Mission tracking — keep the same tag but note the destination or purpose
- Variant notes — document payload or configuration differences
- Any extra info — without interfering with the numbering sequence
Examples:
All three launches below use the same [comsat] tag and count sequentially, even though the comments differ:
ComSat-[comsat]#Keostationary => renames to "ComSat-1"
ComSat-[comsat]#Mun network => renames to "ComSat-2"
ComSat-[comsat]#Duna network => renames to "ComSat-3"
As mentioned above, the comment is only visible in the editor before launch — once renamed, the vessel name becomes only what comes before #.
Important: Because the # comment is part of the vessel name in the editor, vessels with different comments are treated as separate craft files in the VAB/SPH. For example, Vessel-[vessel]#Duna and Vessel-[vessel]#Minmus are two different ships in the editor. After rollout, the comment is stripped and both will get sequential names like Vessel-1 and Vessel-2.
You can set a launch template on any command module (capsule or probe core). When a vessel containing that part separates via decoupler, separator, or undocking, the new vessel is automatically renamed according to the template. Also note that if the template doesn't contain a [tag], the vessel is renamed to the literal template name without any numbering.
In the VAB, right-click a command module. Click Edit Template:
Enter the desired name (with or without a [tag]):
The button then shows the current template: Edit Template: ComSat-[].
Example:
Suppose you build a ship named Apollo [apollo] and set the template to LM-[] on the lander's command module. After launch, depending on current tag counters, the ship may become Apollo 11. Decouple the lander, and it automatically renames — for example, to LM-5.
Important: The template is applied only once. After initial separation, the automatic renaming won't trigger again if the separated ship later docks and undocks.
You can use multiple [tag] placeholders in a vessel name or template. Each tag gets its own independent counter.
Example:
Duna-[duna]-[dunalander] => resolves to "Duna-5-1"
Mun-[base]-[rover]-[drill] => resolves to "Mun-2-1-3"
Note: Multi-tag requires named tags ([sometag]). Empty [] tags still work but don't combine with other tags in the same name — they use the entire vessel name as the key, which defeats the purpose of having separate counters. If you need multiple counters, always use named tags.
When a subvessel separates, tags already used in the parent vessel keep the exact numbers that were assigned at the parent's launch — only new tags increment the global counter. This matters even if later launches have advanced the counter:
- Launch
Duna-[duna]→ becomesDuna-5(globalduna= 5) - Launch another
Duna-[duna]→ becomesDuna-6(globalduna= 6) - Eject lander from the first ship (template
Duna-[duna]-[dunalander]) → becomesDuna-5-1— inheritsduna=5from the parent's launch, not7. Onlydunalandergets a fresh number. - The second lander ejected from the same ship →
Duna-5-2, and so on.
Click the toolbar icon in VAB, SPH, Flight, Map View, or KSC to open the Launch Number Manager window.
The window shows all tracked tags and their last launch numbers:
Entries are displayed in alphabetical order for easy navigation. For each entry you can:
- Edit the number directly in the text field
- Decrement using the
-button (minimum value is 1) - Increment using the
+button - Delete the entry entirely — the counter resets and the tag will start from 1 on next launch
The window closes by clicking the toolbar icon again.
Open the game's settings (ESC => Settings => Game Difficulty) and find the Launch Numbering section. Toggle Use Alternate Skin to switch between KSP-native and default Unity skin for the manager window.
Numbering data is persisted in your save file. If you uninstall the mod, any previously numbered vessels keep their names.
Important: This mod's save format is not compatible with the original mod by Damien-The-Unbeliever or the fork by linuxgurugamer. Do not switch between them mid-save — numbering data will not carry over.
- Download the latest release.
- Extract the
GameData/LaunchNumberingfolder into your KSPGameData/directory. - The final structure should be:
GameData/LaunchNumbering/
├── Plugins/
│ └── LaunchNumbering.dll
├── Textures/
│ └── LaunchNumbering.png
├── LICENSE
└── README.md
- .NET Framework SDK or Mono
- MSBuild
- A KSP installation with
KSP_Data/Managed/containing the required assemblies
-
Clone the repository:
git clone https://github.com/crvx/KSPLaunchNumbering.git cd KSPLaunchNumbering -
Create a symlink (Linux) or junction (Windows) named
KSP_Datainside theLaunchNumbering/folder, pointing to your KSP installation'sKSP_Datadirectory:Linux:
ln -s /path/to/Kerbal\ Space\ Program/KSP_Data LaunchNumbering/KSP_Data
Windows (admin prompt):
mklink /J LaunchNumbering\KSP_Data C:\Path\To\KSP\KSP_DataThe
LaunchNumbering.csprojreferences assemblies viaKSP_Data\Managed\*.dll, so this symlink is required for compilation.
msbuild LaunchNumbering/LaunchNumbering.csproj /p:Configuration=Release /t:BuildThe compiled DLL will be at LaunchNumbering/bin/Release/LaunchNumbering.dll.
MIT License. Originally by Damien-The-Unbeliever, maintained by crvx.


