Jump to content

Mod Development Links Compilation - Some links do not work / Formatting broken


CaptainKipard

Recommended Posts

Here you will find all the necessary tools as well as tutorials, guides and snippets of info relevant to KSP modding.

If you come across any information that you think should be added to this thread please post a reply here.

Before you start:

1. Please visit the General Add-on Affairs forum and check out member requests. It's better if you make something that people actually want.

2. Read all links marked as "Important"

================
Table of Contents
================

1. List of Free and Open Source Tools
1.1 Modding Tools
1.2 Other Tools

2. Not-So-Free Tools

3. Modding Reference Material

4. Modding Information Links
4.1 Common Problems and Solutions
4.2 General Information
4.3 Modelling
4.4 Texturing
4.5 Licensing
4.6 Video Tutorials
4.7 Text Tutorials
4.8 Miscellaneous
4.9 Unity/Configs
4.10 Addons For Modders
4.11 Plugin Development

===============================
List of Free and Open Source Tools
===============================

MODDING TOOLS

Unity - Game engine

This is where you rig, animate, and otherwise set up and compile the part files.

Important - YOU MUST USE UNITY 4.2.2 or earlier. Newer Unity versions do not support legacy animation which are still used by KSP.Part tools:

0.23 Part Tools 

thread

Other

FloatCurve Editor

- A unity package for visualising and designing FloatCurves for your configuration files. Also read the

MBM to PNG texture converter

- Unity script. Can convert whole folders including subfolders

I recommend you read the 0.23 and 0.20 Part Tools posts by Mu, they are very informative.

If you're having trouble unzipping on a Mac, look here.

Blender - Full featured 3D editor.

Used for creating the 3D assets and animating. Can also be used for texturing, rendering stills and video.

Blender Plugins:

Taniwha's mu Import/Export

MultiEdit

- Allows you to edit a group of separate objects as a single object. Very useful for unwrapping multiple models on a single texture.

KSPBlender

- Blender addon for importing .craft files.

Blender Bundled Plugins:

You might need to enable these in Preferences.

Print3D

- Calculates volume (useful for judging resource capacity) and surface area of mesh objects, as well as does other things useful if you're making models for 3D printing.

GIMP - Raster graphics editor

The best free program for creating textures and other graphics.

GIMP Plugins:

NormalMap plugin

- Generate normal maps from greyscale bump maps.

Krita - Raster graphics editor

Includes some very useful tools not found in GIMP. Check out the features page

.MaPZone - Procedural texture generator

Very powerful texture generator with a compositing interface

DDS4KSP - KSP to DDS texture converter

Use this to allow KSP to load textures faster.

Inkscape - Vector graphics editor

UV layouts exported from Blender can be edited with this. It's also useful as a secondary program for textures if you need to create precision curves.

xNormal - Texture generator

You can generate normals maps, and various masks for your textures.

NVidia Melody - Normal map baking program

Bake normal maps from high-poly models.

NormalMap-Online

Online tool for generating Normal, Displacement, Ambient Occlusion and Specular maps

Meshlab - Mesh editor

You can use this to convert various mesh types.

Notepad++ - Text editor

Use this for editing configuration files. Change language to python to identify bracket pairs and collapse/extend modules.

Hexplorer - Hex editor

You can use this to spec the components of compiled mu files.

DO NOT EDIT FILES

unless you know what you're doing.

OTHER TOOLS

Open Broadcaster Software- Video capture / Streaming

Self explanatory. You can use it to showcase your mod.

Lightworks - Full featured video editing program

Edit and add effects to your videos. Requires registration, however it really is the best free editor out there.

================
Not-So-Free Tools
================

Quixel dDo - Procedural texture generator that adapts to the shape of your model.

The old legacy version is free but it requires Photoshop, which is not free. Link is at the bottom. Direct link

========================
Modding Reference Material
========================

Blender Model Donation - Donate or download unused models started by other forum members.

NASA 3D Resources - Copyright-free models and textures. Important. The models are too high poly to use directly.

Linear aerospike

MiG-105 Spiral photos

Dragon RCS in action

Kennedy Space Center - Lots of great photos of NASA vehicles.

Shuttle flight deck and Shuttle lower deck interactive high-res 360 panoramas.

Launch Photography - Various space- and spacehip-related photos.

Air and Space Museum's Udvar-Hazy Center

Nasa audio - For sound editors. Scroll down for links to huge archives of mission transmissions, rocket and shuttle sounds, and "sounds" of space phenomena.

========================
Modding Information Links
========================

COMMON PROBLEMS AND SOLUTIONS

Invisible mesh / Models not updating

Invisible mesh / Models too small

Stack nodes not attaching

Part with animation not loading

Empty Resource containers have negative cost

Rescaled models revert to original size

Cannot edit/create emissive animations - Unity downgrade tutorial

Infinite resource usage

Curved geometry boolean operations and shader issues / Vertex normals issues - Whole thread is very worth the read.

GENERAL INFORMATION

Stock Parts List

Part Modelling Guidelines - Out of date / almost never updated.

CFG File Documention on the wiki

Modding information page from before the forum wipe - Download of the old page

MODELLING

Kerbal EVA model hierarchy - useful for people who want to modify the Kerbal EVA model / animation itself

Part orientations in the VAB, SPH, and Unity - Image

Part scaling with rescaleFactor

A rough model of a Kerbal for modelling reference

Basic Blender tutorial for making a propellent tank - by Technical ben

Triangle count for parts snippet

Cylinder face numbers

Lots of snippets, read the entire thread

Kerbal stair-climbing ability: staircase step height

KSP vs. Blender coordinate systems - by orson / MKSheppard; in essence, Blender uses Z+/Z- for up/down, but Unity uses Y+ and Y- instead

TEXTURING

MBM to PNG texture converter - Unity script. Can convert whole folders including subfolders

MBMUtilities - Standalone converter. For single or groups of files. MBM to PNG or TGA; TGA or PNG back to MBM

Intermediate Texturing Guide

Intermediate Texturing Guide - Panels and Edge Damage

Texture Format Information - Worth giving the whole thread a read.

Important

DDS Quick Guide - Important Please use DDS!

Fixing texture seams (gaps in the texture on the model)

Memory usage of textures

Creating a normal map

Normal map file naming - Very important with relation to memory usage

Importing models, Generating UV's, Editing and Exporting to .DDS in Photoshop CS6 ext

LICENSING

All addons posted on any official Squad website must have a license - Forum Rule 4.2

License Selection Guide

VIDEO TUTORIALS

Twitch Broadcasts by RoverDude - Lots of videos showing the workflow for part modding from start to finish: Model and Art concept, modelling, animating, UV unwrapping, map baking, texturing stockalike style. Good comments + voiced thoughts.

Tutorial: Unity and Part Tools Setup + Model/Texture Import, Setup and Export to KSP - video by Tiberion

Series by Nifty255

- This covers the very basics.

Vol. 1 Ep. 2 - Game Models and Textures

- This covers proper model and texture setup in Blender, setup and exporting through Unity, and even goes into setting up animations.
and
- These two cover things on the programming side: modules, plugins, .dlls, etc.

 

- How KSP saves and loads its data, from part configs, to ship designs, to entire game saves.

Tutorials by nli2work

Discussion thread

for the following tutorials.

 

- Exterior/Interior Unity setup; export to KSP; slight config error near the end. ~1hr

 

 
- Error corrected and explained; External/Internal basic function checks ~15min

 

 
- Spawning IVA in Unity; populating IVA with Props and Light ~35m

 

 
- Internal Props; ~16min

 

 
- Basic Engine setup; with Emissive, Gimbal, and Fairing

 

 
- Engine setup with EFFECT{}

 

Plugin Tutorials by Cybutek

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TEXT TUTORIALS

Making a simple engine in Wings 3D, from start to finish.

MISCELLANEOUS

Official Unity tutorials

Unity Layers and Tags

KSP floatCurves guide - Important for many Part Modules Important

A snippet on ISP and fuel density

Creating a new resource

Stock Parts Costs and Balance Spreadsheet for 0.24

FlagDecal, Docking port IDs, PNG Unity import bug

Unofficial 0.25 modding info

UNITY/CONFIGS

Getting started

Unity to KSP: A Detail Tutorial - written by Kerbtrek

Part Tools 0.20, Blender, Unity and KSP - written by Cheebsta

Example Config file for loading a .Mu file into the game - written by Tiberion

TUTORIAL: Getting Started With Unity - written by Nutt007, includes a video for 0.15

Tutorial:Making and asset from start to finish

Air Intakes

Intakes for jet engines

Intake area explanation

Airlock (Actually a hatch, but it's called an airlock in KSP)

Adding airlocks and ladders to parts - Airlock collider must extend beyond the ladder collider to allow the click menu.

Airlock positioning 1

Airlock positioning 2

Airlock positioning 3

Animation

Blender to Unity animation tutorial - written by Xellith

Exporting an Animation from Blender

Looped animation

Anim Switch details for repeating animation in reverse

Repeating animation in reverse - Old

Start point in animation for VAB snippet

Attach nodes (Radial attachment)

Transform-based NODE{} - New better way. Requires srFix

.Radial attach coordinates - Old way

Tweaking attach nodes snippets - Old way

Collision meshes

Collision Mesh snippets

Normal mesh use

Exploding Kerbals

Cargo Bays

NoAttach tag - Prevents surface attachment for specific colliders.

Contract Testing

ModuleTestSubject

Control Surfaces

Creating a control surface

Decouplers

Decoupler modules

Docking Ports

Adding a docking node in Unity

Stock Docking Port in Unity - Image

Docking port IDs

"Control from here" for docking ports - Useful if your part alignment is different from your docking port direction.

Emissive textures

Emissive tutorial - new thread - written by CardBoardBoxProcessor

Emissive tutorial - old thread - written by CardBoardBoxProcessor

Setting up an emissive on a light - Big pictures

Stopping toggleable emissives showing up lit in VAB/SPH thumbnails

Looping an emissive

Throttle-response emissive snippet

If you have problems with the latest Unity version

Engines

See Video Tutorials above first.

[HOWTO] Airbreathing Engines in KSP 1.0

Quick how-to on setting up a thrustTransform for an Engine

Snippet on thrustTransforms

Unity hierarchy for Gimballing nozzles

ModuleGimbal and ModuleJettison - config settings.

Trouble shooting why an engine might not work

Multiple nozzles

Example - Unity package and compiled part with config.

Engine Fairings

See Video Tutorials above first.

To make fairings in VAB/SPH thumbnail invisible, set the fairing objects tag to Icon_Hidden. You will need to create a new tag to do this.

Example image of the tag

Removing the fairings from stock engines

See above for an example engine.

Flag Decal

Flag decal module

Positioning the decal

GameDatabase

0.20+ specific config extras

IVA

See Video Tutorials above first.

IVA Tutorial - written by TouhouTorpedo - old?

0.17 IVA tutorial - I have no idea if this is still relevant, I've not tried to do any IVA's

Alternate camera for IVA portraits

Stock IVA orientation reference

Ladders

Adding airlocks and ladders to parts

Landing gear

Discussion of a WIP landing gear. Lots of useful information

Stock Landing Gear in Unity - Image

Landing gear snippets - Spread out through the thread

Landing legs

0.22 Landing Leg module in Unity - Image

Launch stability enhancer / Launch tower

Launch Clamp How-To (Tutorial)

Lights

Some tips for setting up lights

Model definition

Replacing "mesh" with "MODEL{}"

Scaling attach nodes with MODEL{}

Parachutes

Stock Parachute in Unity - Image

Components of a parachute

RCS

RCS Tutorial

Rover wheels

Wheel rigging, setup and fault finding - Video tutorial.

Guide with Unity scene example

Stock Rover Wheel in Unity - Image

Changing wheel torque

Science

Science and mods!

Solar Panels

Stock Folding Solar Panels in Unity- Image

Setting up suntracking solar panels

Powercurve explanation

Sounds

Using EFFECTS nodes to play custom sounds

How to get custom sounds to play without a plugin - Pre-0.23 info

Stack nodes

Transform-based NODE{} - Allows you to easily add nodes with transforms. Makes angled nodes easier to implement.

Temperature

Textures and Shaders

Adding a normal map

Faking detail with a normal map

Fixing unwanted texture transparency

Unwanted transparent faces

Potential fixes for incorrect shading

PNG versus TGA loading time

Welding

Example of using 0.20+ MODEL{} modules to combine parts

MODEL{} tutorial - Learn How to Weld! - written by johnsonwax - GONE!

MODEL{} tutorial - Intermediate Welding and Part Scaling - written by johnsonwax

Wings

Wing creation mini tutorial

ADDONS FOR MODDERS

These addons extend the functionality available for mod creators and help with mod development

Tools

DevHelper - Bypass main menu to automatically load any saved game

LoadOnDemand - Important. Loads textures as needed, reducing the memory footprint and speeding up load times without loss of quality. Not actively developed but community fix is available.

ModuleMirror - Mirror symmetry for asymmetrical parts

Part Icon Fixer & Tweaks - Rescales part icons in the VAB and SPH to more appropriate sizes.

RCS Build Aid - Provides visual clues about ship movement under thrust from RCS or engines. Great for if you're making replica ships

srFix - Important. A fix for the currently non-functioning NODE{} HINGE_JOINTs.

Mods

Adaptive Docking Node - Create non-androgynous docking ports or ones that attach to more than one port size/type.

BDArmoury - Includes a .50 cal turret unity package as an example if you want to make your own weapons

Community Resource Pack - Community-defined resources. Check in here before defining a new resource.

Connected Living Space / Config How-To - API for inhabitable areas and passable/impassable parts.

DMagic Module Science Animate - versatile plugin for science experiments

Ferram Aerospace Research / Deriving FAR values for a wing using Blender

Firespitter / Firespitter Module Documentation - various aircraft-related modules as lots of others.

HotRockets! - Particle FX Replacement

Infernal Robotics / How to make robotic parts - Create controllable robotic parts that rotate or translate.

JSIPartUtilities - Let's you toggle meshes and colliders on and off, and other things

Kerbaloons / How to make your own balloon part using KerBalloons - Create baloons

Kethane - Majir restricts the use of some modules

Modular Fuel Tanks - Create user-configurable resource tanks.

Module Manager - allows patching of configs at runtime without overwriting

OpenParticleEmitter - Kethane-derived alternate particles module. Source code only

Open Resource System - Karbonite (An open Kethane alternative) uses this. Also see

Community Resource Pack

Raster Prop Monitor - Configure aircraft and spaceship monitors in IVA

Real Fuels - Makes resources and their measurements based on real science.

SmokeScreen - Extended FX plugin

Texture Animation Util - Scrolls textures on a mesh randomly or smoothly.

Toolbar  - Add a visible toollbar button to your plugin

PLUGIN DEVELOPMENT

I would love someone with Plugin experience to point out helpful threads for this

Add-on Posting Rules

CompatibilityChecker - Source code for plugin authors to implement a checker that shows a message if their mod is incompatible with the user's version of KSP and/or Unity

KSP API Documentation

Starting out on Plugins

KSP Plugin Framework - Plugin Examples and Structure - by TriggerAu, very recent and up to date

Example plugin projects to help you get started - by TaranisElsu

The official unoffical help a fellow plugin developer thread

Wiki page on Plugins

Creating your first module - on the Wiki

Info on spawning objects and applying gravity - Includes example code, links to more examples, and some useful hints.

How to animate a part with multiple animations?

Great info on Kerbal transforms, bones, rig, FSM, states (ragdoll, idle, sumble, run etc) 

Some really good info on writing Unity CG shaders. Even if you're not going to write a custom shader yourself, it still gives you a great insight into what the various bits of the KSP shaders actually control and output.

 

 

 

 

 

 

 

 

 

Info on loading and using custom shaders into KSP

Misc Plugin Information

Kethane Code Snippet for an incorrect installation warning. Public domain license.

Edited by CaptainKipard
Update
Link to comment
Share on other sites

Did you just copy/paste Hoojiwana's post for links? :/ Some of those links either are outdated or not relevant anymore. There's a new API by anatid, Mu's doc indeed were moved, and so on. I'd also plug the addon rules somewhere in there. It's on the right way and theres some improvements, but it needs a little bit of refining before I'd sticky it.

Link to comment
Share on other sites

Unity 4.2.2 (or earlier) for better (emissive) animation support.

TT's tutorial is still decent, though it could use some fleshing out. I'll see if I have time to record an IVA tutorial soon.

Bahamuto's excellent tutorial on Lander Legs http://forum.kerbalspaceprogram.com/threads/77991

"Brief explanation of atmosphereCurve and velocityCurve" is only half correct about curves; the other half is explained by Taverius

Taverius' Curve/Tangent thread should be much more prominent as it is quite fundamental. The curve/tagent stuff applies to all KSP/Mod Modules that use input curves: ModuleEngine ModuleRCS and ModuleEngineFX, ModuleSteering and ModuleWheels, and possibly other stock modules that I don't recall. For Mod modules that includes FSWheel/Steering modules; SmokeScreen FX; AJE module; possibly others as well.

Edited by nli2work
Link to comment
Share on other sites

Updated.

Did you just copy/paste Hoojiwana's post for links? :/ Some of those links either are outdated or not relevant anymore. There's a new API by anatid, Mu's doc indeed were moved, and so on. I'd also plug the addon rules somewhere in there. It's on the right way and theres some improvements, but it needs a little bit of refining before I'd sticky it.

MFW :/

Link to comment
Share on other sites

i would simply replace "Brief explanation of atmosphereCurve and velocityCurve" with Taverius' KSP Float Curves thread.

here's some info on getting correct Air Intake settings, for Stock Aerodynamics, by Taverius. https://bitbucket.org/Taverius/b9-aerospace/wiki/Intake%20Area.md#!intake-areahttps://bitbucket.org/Taverius/b9-aerospace/wiki/Intake%20Area.md#!intake-area

Link to comment
Share on other sites

From now on I'll update without making everyone aware of it, unless I have issues.

I'd like to create a section listing existing plugins that other modders can use. Please if you can then help me expand that list.

So far I have:

- Deleted - have a look at the list in the OP

Edited by Cpt. Kipard
Link to comment
Share on other sites

I would definitely add the .mu import plugin for blender to the blender plugins section :

http://forum.kerbalspaceprogram.com/threads/43513-Blender-mu-import-export-addon

And to the KSP plugins I'd add NEAR/FAR and KAS... and if you're serious about plugin development there's NO better information than spending a couple of days digging through the Mechjeb code, since they've done so much poking around to figure out where KSP keeps it's information! :)

And You're welcome to add a link to my thread about how to set the 'control from here' transform to directions other than the part's main axis to the docking ports section. The answer is in post #5.

http://forum.kerbalspaceprogram.com/threads/92277-Docking-ports-and-control-from-here

Link to comment
Share on other sites

From now on I'll update without making everyone aware of it, unless I have issues.

I'd like to create a section listing existing plugins that other modders can use. Please if you can then help me expand that list.

Khetane open particle emitter

It would be great also to "parse" the " The official unoffical "help a fellow plugin developer" thread" and extract interesting recipes to make a good cookbook.

Because as it is now, interesting & valuable knowledge is lost by being buried deep after a few pages and search engine didn't help to get it.

(task could be easier if some people involved can gather some of the info).

EDIT: some interesting posts:

airlock/ladders

http://forum.kerbalspaceprogram.com/threads/94345-Solved-Airlock-collider-strangeness

http://forum.kerbalspaceprogram.com/threads/46606-SOLVED-Hatch-obstructed

and this from Porkjet:

I get this **** ALL THE TIME... Worst thing in KSP!

Theres no real pattern behind this, you just gotta keep moving and resizing things around until it magically works.

I've had situations where it wouldn't work, no matter what or how long I tried.

First of all, make sure your colliders have the correct tags and layers like you read in the tutorials and that the colliders 'is trigger' box is activated.

There's only a few vague things I can say:

- The model must have a single collider. Having the hatch touch overlapping colliders will obstruct it.

- Hatch collider should be big enough for a kerbal to fit in, at least 0.5 in all directions (although I've succesfully used smaller colliders in some cases)

This thing I've read about but I can't directly confirm:

- "If hatch is positioned too far from the center it will be obstructed" - this may be true under some conditions, but I've succesfully placed hatches as far as ~3m above the center (PA550 habitat)

some notes about Ladders that may or may not help you:

- The ladder collider will 'obstruct' the 'clickability' of the hatch, so if your ladder collider is bigger than the hatch and covers it completely, you won't be able to click the hatch. Make your ladder colliders small, the hatch must surround it

- Squad seems to be using Capsule colliders for their hatches and ladders. Personally I have not found any advantages or disadvantages between capsule or box colliders, both work.

I wish you the best of luck with your project, lets hope squad will rework the way those hatches work.

Edited by Justin Kerbice
Link to comment
Share on other sites

It would be great also to "parse" the " The official unoffical "help a fellow plugin developer" thread" and extract interesting recipes to make a good cookbook.

Because as it is now, interesting & valuable knowledge is lost by being buried deep after a few pages and search engine didn't help to get it.

(task could be easier if some people involved can gather some of the info).

Yes. It's not going to be me though because even though I've had a bit of training in C++ and Java, I don't know a single thing about programming for KSP.

Link to comment
Share on other sites

Snjo and Mihara keeps the best code documentation.

Firespitter Module documentation, not all the modules; but the most popular ones.

https://docs.google.com/document/d/1iD52DfHft04Hb48TEhF5a4n5JOc8efUevdg5Y_QPICQ/edit

RPM Documentation; if you want to make decent IVAs, this is a must.

https://github.com/Mihara/RasterPropMonitor/wiki

BahamutoD has .50Cal turret Unity example file that can get you started with BDArmory parts

If you have little bit of developing background, it can help tremendously by just opening up the dll in Mono or VisualC and see the public variables and their default values since public variables are the ones addressable in part config files.

Edited by nli2work
Link to comment
Share on other sites

Thanks for tacking this, it's an excellent update to a valuable resource. Maybe add a warning that the wiki part modelling guidelines are hopelessly out of date, though? I know there is a warning on the wiki itself, but..

Link to comment
Share on other sites

I see you included a link to MaPZone for texturing.

You might also want to consider adding a link for Quixel's dDo. The older version has been made free since they are releasing a new version.

dDo website (link for free Legacy version at the bottom) : http://quixel.se/ddo

Or direct link to the free version for those to lazy to scroll: http://quixel.se/dDo/dDo_release.zip

Link to comment
Share on other sites

I used the open beta a few times. it's amazing.

I'm using it and yes, I do have photoshop. I also have GIMP, but haven't tried it to see if it works with GIMP. Yeah, it is pretty amazing. It can give you quite a head start on texture. Detail stuff you still need to do manually, but you can generate a passable base texture in just a few minutes. I have seen some forum posts about it working with GIMP though.

Link to comment
Share on other sites

I'm using it and yes, I do have photoshop. I also have GIMP, but haven't tried it to see if it works with GIMP. Yeah, it is pretty amazing. It can give you quite a head start on texture. Detail stuff you still need to do manually, but you can generate a passable base texture in just a few minutes. I have seen some forum posts about it working with GIMP though.

If you can find it that would be great. I'm a little reluctant to post it under the Free Tools heading if it's only compatible with Photoshop.

I'm still not entirely sure what it does, but if it allows you to quickly create masks for realistic wear and damage, then that would be quite a nice addition.

Link to comment
Share on other sites

If you can find it that would be great. I'm a little reluctant to post it under the Free Tools heading if it's only compatible with Photoshop.

I'm still not entirely sure what it does, but if it allows you to quickly create masks for realistic wear and damage, then that would be quite a nice addition.

Yeah... apparently it's hardcoded to only work with Photoshop. But it's a great tool for anyone who has photoshop.

Here is an example, I threw this together in about 5 minutes. I baked material colors in blender (cycles render, bake diffuse color) to generate the color map. dDo uses the coloring in the color map for texture handling.

Javascript is disabled. View full album
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...