Difference between revisions of "Plugins"

From Kerbal Space Program Wiki
Jump to: navigation, search
m (Auto: movedURLs (Review RC#43039))
(Added JetBrains Rider to IDEs)
(12 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Starting with KSP 0.14, the game supports custom part behaviors called [[Plugins]]. Defining custom behaviors allows you to create totally new kinds of parts, such as flight control computers, new types of fuel supply chains, etc. You can then add these to the game in the form of plugins. These DLLs can be loaded on any platform that can run KSP. 
+
'''Plugins''' are user-made [[addons]] which add to or change the behavior of KSP. They consist of one or more [[w:Dynamic-link_library|DLL]] files written in the [[w:C_Sharp_(programming_language)|C# programming language]]. Plugins allow changing how the game itself works, anything from showing new information windows to making a hovercraft part, or even new planets. Plugin support was added to KSP in version 0.14, and is available on all operating systems.
 
 
'''READ THE [http://forum.kerbalspaceprogram.com/index.php?topic=8088.0 POSTING GUIDELINES] BEFORE PUBLISHING YOUR PLUGIN'''
 
  
 
== Using Plugins ==
 
== Using Plugins ==
  
To use a Part Module Plugin, just drop the DLL into KSP/Plugins. If the folder doesn't exist, you can create it.
+
To use a Part Module Plugin, just drop the DLL into KSP/GameData/ or a new sub folder inside it. To stop using a plugin, just delete it or move it outside the KSP/GameData/ folder.
  
 
== Creating Plugins ==
 
== Creating Plugins ==
  
First, decide which IDE you will use. Visual Studio or the associated Express Edition works the best on Windows.  The others also work on additional platforms, like Mac or Linux.
+
Plugins can be written in any text editor and compiled with a standalone compiler, but the easiest way to start coding is to use an [[w:Integrated Development Environment|Integrated Development Environment]] or IDE for short. An IDE is a program that helps you to write code (in our case the language C#). Listed here are some of the most popular options.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
! IDE !! License !! Windows !! Mac !! Linux
 
! IDE !! License !! Windows !! Mac !! Linux
 
|-
 
|-
| [[Setting up Visual Studio|Visual Studio]]
+
| [https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx Visual Studio]
 
| Commercial
 
| Commercial
| style="background:#ccffcc;" |  
+
| style="background:#ccffcc;" | {{Yes}}
| style="background:#ffcccc;" |  
+
| style="background:#ffcccc;" | {{No}}
| style="background:#ffcccc;" |  
+
| style="background:#ffcccc;" | {{No}}
 
|-
 
|-
|[[Setting up MonoDevelop|MonoDevelop]]
+
| [http://www.monodevelop.com/download/ MonoDevelop (aka Xamarin Studio)]
 
| LGPLv2 / MIT (Free)
 
| LGPLv2 / MIT (Free)
| style="background:#ccffcc;" |  
+
| style="background:#ccffcc;" | {{Yes}}
| style="background:#ccffcc;" |  
+
| style="background:#ccffcc;" | {{Yes}}
| style="background:#ccffcc;" |  
+
| style="background:#ccffcc;" | {{Yes}}
 
|-
 
|-
|[[Setting up SharpDevelop|SharpDevelop]]
+
| [http://www.icsharpcode.net/OpenSource/SD/Download/ SharpDevelop]
 
| Open-source (Free)
 
| Open-source (Free)
| style="background:#ccffcc;" |  
+
| style="background:#ccffcc;" | {{Yes}}
| style="background:#ffcccc;" |  
+
| style="background:#ffcccc;" | {{No}}
| style="background:#ffcccc;" |  
+
| style="background:#ffcccc;" | {{No}}
 +
|-
 +
| [https://www.jetbrains.com/dotnet/promo/unity/ JetBrains Rider]
 +
| Commercial/Some open-source
 +
| style="background:#ccffcc;" | {{Yes}}
 +
| style="background:#ccffcc;" | {{Yes}}
 +
| style="background:#ccffcc;" | {{Yes}}
 
|-
 
|-
|[[Setting up Nant|Nant]] (Command-line only)
+
 
| GPLv2 (Free)
 
| style="background:#ccffcc;" |  
 
| style="background:#ccffcc;" |  
 
| style="background:#ccffcc;" |  
 
 
|}
 
|}
  
Now, you can get started.
+
== Getting Started ==
  
* [[Creating your first module]]
+
See the below links for setting up your chosen IDE for building KSP plugins. Once you're ready to build, try [[Tutorial:Creating your first module|creating your first module]].
 +
* [[Setting up Visual Studio]]
 +
* [[Setting up MonoDevelop]]
 +
* [[Setting up SharpDevelop]]
 +
 
 +
== See Also ==
 +
 
 +
* [[Community API Documentation]]
 +
* [[Tutorial:Creating your first module|Creating your first module]]
 
* [[Module Tips and Tricks]]
 
* [[Module Tips and Tricks]]
 
* [[CFG File Documentation#Part Modules|List of stock Part Modules.]]
 
* [[CFG File Documentation#Part Modules|List of stock Part Modules.]]
 
* [[Module code examples]]
 
* [[Module code examples]]
* [[Community API Documentation]]
+
* [http://forum.kerbalspaceprogram.com/threads/56053-Example-plugin-projects-to-help-you-get-started Example plugin projects]
 
* [https://www.youtube.com/watch?v=ilWZjYx7brE cybutek's .20+ quick start video guides]
 
* [https://www.youtube.com/watch?v=ilWZjYx7brE cybutek's .20+ quick start video guides]
 +
* [http://forum.kerbalspaceprogram.com/index.php?/forum/29-plugin-development-help-and-support/ KSP Forum Plugin Development Support section]
  
 
[[Category:Modding]]
 
[[Category:Modding]]

Revision as of 20:28, 2 October 2018

Plugins are user-made addons which add to or change the behavior of KSP. They consist of one or more DLL files written in the C# programming language. Plugins allow changing how the game itself works, anything from showing new information windows to making a hovercraft part, or even new planets. Plugin support was added to KSP in version 0.14, and is available on all operating systems.

Using Plugins

To use a Part Module Plugin, just drop the DLL into KSP/GameData/ or a new sub folder inside it. To stop using a plugin, just delete it or move it outside the KSP/GameData/ folder.

Creating Plugins

Plugins can be written in any text editor and compiled with a standalone compiler, but the easiest way to start coding is to use an Integrated Development Environment or IDE for short. An IDE is a program that helps you to write code (in our case the language C#). Listed here are some of the most popular options.

IDE License Windows Mac Linux
Visual Studio Commercial style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #f99; vertical-align: middle; text-align: center;" class="table-no" | No style="background: #f99; vertical-align: middle; text-align: center;" class="table-no" | No
MonoDevelop (aka Xamarin Studio) LGPLv2 / MIT (Free) style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes
SharpDevelop Open-source (Free) style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #f99; vertical-align: middle; text-align: center;" class="table-no" | No style="background: #f99; vertical-align: middle; text-align: center;" class="table-no" | No
JetBrains Rider Commercial/Some open-source style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes style="background: #9f9; vertical-align: middle; text-align: center;" class="table-yes" | Yes

Getting Started

See the below links for setting up your chosen IDE for building KSP plugins. Once you're ready to build, try creating your first module.

See Also