When I first discovered Kerbal Space Program, I found it was great. And then I discovered the mods; and they turned a great game into an amazing one.
About 70 mod installs later, I realised that installing mods was time-consuming, and error-prone. Each mod seemed to have its own set of dependencies, its own way of being packaged, its own way of being installed. Worst of all, some mods would conflict with each other, something I'd often discover after it was already too late.
I saw the same problems were plaguing mod authors as well. Users would be asking for help because they had installed the wrong version, or were experiencing conflicts with existing mods.
Having searched for a better way to install and manage mods, I set about making my own. Taking lessons from decades of package installation and management experience in the Debian and Perl projects, each of which successfully manage tens of thousands of distinct packages, I am very glad to present to you...
The CKAN is a mod management solution for Windows, Mac and Linux that targets the .NET/Mono 4.0 framework. It leverages strong metadata about the mods it installs to ensure they are compatible with the user's version of KSP, free of conflicts, and are installed in a reliable and predictable fashion.
If you've used Linux, then the CKAN is apt-get
for KSP. Like the App Store or Play Store for your phone, the CKAN knows which version of KSP you're running, which mods are compatible, and how to install, uninstall, and manage them.
The CKAN provides strong guarantees on consistency. It will not allow conflicting mods to be installed, nor a mod to be installed without its dependencies. It will never leave mods in a half-installed state. It will never overwrite a file owned by another mod, nor a mod that was installed outside of the CKAN.
Our stable release offers a command-line interface:
$ ckan.exe help
update Update list of available mods
available List available mods
install Install a KSP mod
remove Remove an installed mod
scan Scan for manually installed KSP mods
list List installed modules
show Show information about a mod
clean Clean away downloaded files from the cache
ksp Manage KSP installs
version Show the version of the CKAN client being used.
To get started, you'll want to download the client and run a ckan update
to refresh its mod database:
$ ./ckan.exe update
Downloading updates...
Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip
Updated information on 60 available modules
The client will automatically configure itself if it can find your KSP install. If it can't find your install, you can tell it where to find it:
$ ckan.exe ksp add default /path/to/my/KSP/install
You can list available mods:
$ ckan.exe available
Mods available for KSP 0.25.0
* AdvancedFlyByWire (1.2.3_0) - Advanced Fly-By-Wire
* AGExt (1.21a) - Action Groups Extended
* AJE (1.6.4) - Advanced Jet Engine (AJE)
* AMEG (1.1) - AMEG
* CommunityResourcePack (0.2.3) - Community Resource Pack
* CrewFiles (2.0.0.3) - CrewFiles
* CrossFeedEnabler (3.1) - Cross Feed Enabler
* CustomAsteroids (v1.1.0) - Custom Asteroids
* CustomAsteroids-Pops-Stock-Inner (v1.1.0) - Custom Asteroids (inner stock system data)
* CustomAsteroids-Pops-Stock-Outer (v1.1.0) - Custom Asteroids (outer stock system data)
* CustomBiomes (1.6.8) - Custom Biomes
* CustomBiomes-Data-RSS (v8.2.1) - Custom Biomes (Real Solar System data)
* CustomBiomes-Data-Stock (1.6.8) - Custom Biomes (Stock data)
* DangIt (0.4.4.2) - DangIt!
* DarkMultiPlayer (v0.1.6.2) - DarkMultiPlayer Client
* DeadlyReentry (v6.2.1) - Deadly Reentry Continued
* DogeCoinFlag (1.02) - Dogecoin Flag
* EngineIgnitor-Unofficial-Repack (3.4.1.1) - Engine Ignitor (repack)
* FerramAerospaceResearch (v0.14.3.2) - Ferram Aerospace Research
* Firespitter (6.3.5) - Firespitter
* FirespitterCore (7.0.5398.27328) - Firespitter Core
* HotRockets (7.25) - HotRockets! Particle FX Replacement
* InfernalRobotics (0.19.2) - Magic Smoke Industries Infernal Robotics
* Karbonite (0.4.4) - Karbonite
* KAS (0.4.9) - Kerbal Attachement System
* KerbalConstructionTime (1.0.3) - Kerbal Construction Time
* KerbalFlightIndicators (R8) - Kerbal Flight Indicators
* KerbalJointReinforcement (v2.4.4) - Kerbal Joint Reinforcement
* Kerb-fu (v0.20a) - Professor Phineas Kerbenstein's wonderous vertical propulsion emporium.
* kOS (0.14.2) - kOS: Scriptable Autopilot System
* LandingHeight (1.1) - Landing Height Display
* ModuleManager (2.5.1) - Module Manager
* ModuleRCSFX (3.1) - ModuleRCSFX
* ORSX (0.1.3) - Open Resource System Fork
* PlanetShine (0.2.2) - PlanetShine
* QuickRevert (v1.10) - QuickRevert
* RasterPropMonitor (v0.18.3) - RasterPropMonitor
* RasterPropMonitor-Core (v0.18.3) - RasterPropMonitor Core
* RCSLandAid (1.2) - RCS Landing Aid
* RealChute (1.2.5.3) - RealChute Parachute Systems
* RealFuels (rf-v8.1) - Real Fuels
* RealismOverhaul (v6.1.2c) - Realism Overhaul
* RealSolarSystem (v8.2.1) - Real Solar System
* RemoteTech (v1.5.1) - RemoteTech
* RetroFuture (1.7) - Retro-Future Planes
* RSSTextures2048 (1.0) - Real Solar System Textures - 2048 x 1024
* RSSTextures4096 (1.0) - Real Solar System Textures - 4096 x 2048
* RSSTextures8192 (1.0) - Real Solar System Textures - 8192 x 4096
* SRL (v1.31) - Simulate, Revert & Launch
* StageRecovery (1.5.1) - StageRecovery
* SXT (18.5) - SXT - Stock eXTension
* TACLS (v0.10.1) - TAC Life Support (TACLS)
* TACLS-Config-RealismOverhaul (v6.1.2c) - TAC Life Support (TACLS) - Realism Overhaul Config
* TACLS-Config-Stock (v0.10.1) - TAC Life Support (TACLS) - stock config
* TechManager (1.3) - TechManager
* Toolbar (1.7.7) - Toolbar
* TweakScale (v1.44) - TweakScale
* TWR1 (1.14) - Vertical Velocity Controller
* USITools (0.2.4) - Umbra Space Industries Tools
And installing them is easy:
$ ./ckan.exe install DogeCoinFlag
About to install...
* DogeCoinFlag 1.02
Continue? [Y/N]
Downloading "https://kerbalstuff.com/mod/269/Dogecoin Flag/download/1.02"
15 kbps - downloading - 0 MiB left - 99%
Installing mod "DogeCoinFlag 1.02"
Updating registry
Commiting filesystem changes
Rescanning GameData
Done!
However the CKAN is aware of dependencies, and is capable of finding and installing all the mods required for a working install:
$ ./ckan.exe install RealismOverhaul
About to install...
* RealismOverhaul v6.1.2c (cached)
* RealFuels rf-v8.1 (cached)
* TACLS-Config-RealismOverhaul v6.1.2c (cached)
* TACLS v0.10.1 (cached)
* EngineIgnitor-Unofficial-Repack 3.4.1.1 (cached)
* Toolbar 1.7.7
* TweakScale v1.44 (cached)
Continue? [Y/N]
For a lightweight install, we can skip recommendations:
./ckan.exe install --no-recommends RealismOverhaul
About to install...
* RealismOverhaul v6.1.2c (cached)
* RealFuels rf-v8.1 (cached)
* TACLS-Config-RealismOverhaul v6.1.2c (cached)
* TACLS v0.10.1 (cached)
Continue? [Y/N]
You can also use --with-suggests
to get an extended install, with suggested modules installed as well.
Some mods give you options as to which configuration or assets you can use:
$ ckan.exe install --no-recommends RealSolarSystem
Too many mods provide RSSTextures. Please pick from the following:
* RSSTextures2048 (Real Solar System Textures - 2048 x 1024)
* RSSTextures4096 (Real Solar System Textures - 4096 x 2048)
* RSSTextures8192 (Real Solar System Textures - 8192 x 4096)
$ ckan.exe install --no-recommends RealSolarSystem RSSTextures2048
About to install...
* RSSTextures2048 1.0 (cached)
* RealSolarSystem v8.2.1 (cached)
The CKAN is available for you to use right now. All our source code is released under an MIT license, and all mod meta-data under a CC-0 license.
The CKAN is designed to be friendly to mod authors. There's no requirement for authors to include metadata in their files, or change their release process in any way. Where possible, new releases are indexed automatically from systems which provide us with release APIs. Dozens of mods already have CKAN support, and new ones are being added every day.
If you'd like to see more mods available via the CKAN, then we have a quickstart guide, along with a full metadata spec for more complex operations. Contributions are very welcome, and we'd love you to add your favourite mods. You do not need to be the author of a mod in order to write the metadata for it.
An experimental release is also available. This supports an in-development GUI interface, as well as an upgrade command. Expect bugs if you're using the experimental release! When we believe these features are working as we'd like, we'll add them to the stable release.
You can run any command with --verbose
or --debug
at the end to see extra information as to what's going on.
Please report bugs and suggestions to our issues tracker on github.
Please include the output of ckan.exe version
when reporting bugs.
The CKAN has been an amazing team effort, with dozens of contributors providing code, metadata, advice, and support. However, I would like to personally thank:
- nlight: For countless contributions, for endless patience with reviewing my code, for keeping me sane during many late nights coding.
- invultri: For questioning how we do things, for providing great architectural advice, for expanding our test suite.
- techman83: For endless amounts of enthusiasm, moral support, advice, and help.
- darklight: For enthusiasm and vision, and the determination to make the CKAN great.
- ippo: For making the documents amazing. For being so good at finding bugs. For always cheering me up.
- NathanKell: For ludicrous amounts of support, for making the world a better place.
- FAQ
- CKAN wiki
- CKAN IRC channel
- Github page
- Issues tracker (please report bugs here)
- Releases page
- Adding a mod to the CKAN
- CKAN metadata specification
- Code of Conduct
We love contributions of all sorts, and have just a few simple rules for those who wish to help the CKAN awesome!