Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
How to compile LMP
Download and install Visual Studio 2017 to write and build the dll. Any version will work.
You can get the community version here
Make sure that the
.NET framework 4.7 development toolsis installed in your VS2017. You can do it by selecting the
.NET desktop developmentworkload in the visual studio installer and then selecting the
.NET framework 4.7 development toolscomponent in the right panel
Make sure that the
Tools for Unityis installed in your VS2017. You can do it by selecting the
Game development with Unityworkload in the visual studio installer, also you can uncheck the
Unity XXXX 64-bit Editorin the right panel to save some space
Now that you've got the necessary tools, use git to checkout and pull the latest copy of the LunaMultiplayer project.
Go to the main folder and double click the
LunaMultiPlayer.slnfile, opening it in Visual Studio.
Scripts\SetDirectories.batfile with the correct KSP Directory.
The line to edit is:
SET KSPPATH=C:\Kerbal Space Program
C:\Kerbal Space Program\KSP_x64_Data\Managedto
External/KSPLibraries. You MUST repeat this process every time KSP is updated.
Make sure you have
Debugmode set in Visual studio at the top.
Do not use
Releasemode as developers only test with Debug.
Compile in visual studio by going to
Once built, the plugin should automatically be updated in your Kerbal Space Program plugins folder. You will need to restart Kerbal Space Program, if it's open.
Tips & Troubleshooting
If you use git via WSL (Windows Subsystem for Linux), chances are your File Systems are Case Sensitive. The codebase and build files are not built with that in mind, so there can be errors about missing source files, e.g. KspCompatible.cs vs. KSPCompatible.cs
One approach is to turn it off per-directory, or to turn it off wholesale by editing or creating a /etc/wsl.conf:
[automount] enabled = true root = / options = "metadata,umask=22,fmask=11,case=off" mountFsTab = false