This mod is not known to work with the latest version of Kerbal Space Program. Proceed with caution.

TextureReplacer is a plugin for Kerbal Space Program that allows you to replace stock textures and customise your Kerbals. More specifically, it can:
Special thanks to:
General replacement textures are of the form
GameData/**/TextureReplacer/Default/<internalName>
where <internalName> is the texture's internal name in KSP or path of a
texture inside GameData/ (plus .dds/.png/.jpg/.tga extension, of
course).
Examples:
GameData/**/TextureReplacer/Default/
  kerbalHead                              // teeth and male head
  kerbalHeadNRM                           // teeth and male head normal map
  kerbalGirl_06_BaseColor                 // female head
  kerbalGirl_06_BaseColorNRM              // female head normal map
  orangeSuite_diffuse                     // default IVA suit (veteran)
  paleBlueSuite_diffuse                   // default IVA suit (non-veteran)
  orangeSuite_normal                      // default IVA & EVA suit normal map
  whiteSuite_diffuse                      // default EVA suit
  EVAjetpack                              // default EVA suit jetpack
  EVAjetpackNRM                           // default EVA suit jetpack normal map
  EVAjetpackEmmisive                      // default EVA suit jetpack emissive
  ESASuite_diffuse                        // default ESA suit
  ESASuite_normal                         // default ESA suit normal map
  slimSuitDiffuse_white                   // slim suit (white)
  slimSuitDiffuse_orange                  // slim suit (orange)
  slimSuitDiffuse_blue                    // slim suit (blue)
  slimSuitNormals                         // slim suit normal map
  me_suit_difuse_orange                   // vintage IVA suit (veteran)
  me_suit_difuse_low_polyBrown            // vintage IVA suit (non-veteran)
  kerbalMainNRM                           // vintage IVA & EVA suit normal map
  me_suit_difuse_blue                     // vintage EVA suit
  EVAjetpackscondary                      // vintage suit jetpack
  EVAjetpacksecondary_N                   // vintage suit jetpack normal map
  futureSuit_diffuse_whiteOrange          // future IVA suit (veteran)
  futureSuit_diffuse_whiteBlue            // future IVA suit (non-veteran)
  futureSuitMainNRM                       // future IVA suit normal map
  futureSuit_diffuse_orange               // future EVA suit
  futureSuitMainNRM                       // future EVA suit normal map
  futureSuit_emissive                     // future EVA suit emissive
  ksp_ig_jetpack_diffuse                  // future EVA suit jetpack
  EVAjetpackNRM                           // future EVA suit normal map
  kerbalVisor                             // IVA helmet visor
  EVAvisor                                // EVA helmet visor
  cargoContainerPack_diffuse              // Small cargo backpack
  cargoContainerPack_NRM                  // Small cargo backpack normal map
  cargoContainerPack_emissive             // Small cargo backpack emissive
  cargoContainerPack-standalone_diffuse   // Small cargo backpack
  cargoContainerPack-standalone_NRM       // Small cargo backpack normal map
  cargoContainerPack-standalone_emissive  // Small cargo backpack emissive
  Storage_Diffuse                         // Big cargo backpack
  Storage_Normal                          // Big cargo backpack noraml map
  StorageSlim_Diffuse                     // Slim big cargo backpack
  StorageSlim_Normal                      // Slim big cargo backpack normal map
  backpack_Diff                           // Parachute backpack
  backpack_NM                             // Parachute backpack normal map
  canopy_Diff                             // Parachute canopy
  canopy_NR                               // Parachute canopy normal map
  NavBall                                 // HUD & IVA NavBall
  NavBallEmissive                         // HUD & IVA NavBall emissive
  GalaxyTex_PositiveX                     // skybox right face
  GalaxyTex_NegativeX                     // skybox left face
  GalaxyTex_PositiveY                     // skybox bottom face rotated by 180°
  GalaxyTex_NegativeY                     // skybox top face
  GalaxyTex_PositiveZ                     // skybox front face
  GalaxyTex_NegativeZ                     // skybox back face
  moho00                                  // Moho
  moho01                                  // Moho normal map
  Eve2_00                                 // Eve
  Eve2_01                                 // Eve normal map
  evemoon100                              // Gilly
  evemoon101                              // Gilly normal map
  KerbinScaledSpace300                    // Kerbin
  KerbinScaledSpace401                    // Kerbin normal map
  NewMunSurfaceMapDiffuse                 // Mün
  NewMunSurfaceMapNormals                 // Mün normal map
  NewMunSurfaceMap00                      // Minmus
  NewMunSurfaceMap01                      // Minmus normal map
  Duna5_00                                // Duna
  Duna5_01                                // Duna normal map
  desertplanetmoon00                      // Ike
  desertplanetmoon01                      // Ike normal map
  dwarfplanet100                          // Dres
  dwarfplanet101                          // Dres normal map
  gas1_clouds                             // Jool
  cloud_normal                            // Jool normal map
  newoceanmoon00                          // Laythe
  newoceanmoon01                          // Laythe normal map
  gp1icemoon00                            // Vall
  gp1icemoon01                            // Vall normal map
  rockyMoon00                             // Tylo
  rockyMoon01                             // Tylo normal map
  gp1minormoon100                         // Bop
  gp1minormoon101                         // Bop normal map
  gp1minormoon200                         // Pol
  gp1minormoon201                         // Pol normal map
  snowydwarfplanet00                      // Eeloo
  snowydwarfplanet01                      // Eeloo normal map
It's also possible to replace textures from GameData/ if one specifies the
full directory hierarchy:
GameData/**/TextureReplacer/Default/
  Squad/Parts/Command/Mk1-2Pod/model000  // Mk1-2 pod texture
  Squad/Parts/Command/Mk1-2Pod/model001  // Mk1-2 pod normal map
Note that all texture and directory names are case-sensitive!
Reflections are shown on visors of Kerbals' helmets and on parts that include
TRReflection module that can be used like in the following example adding
reflections onto the windows of Mk1-2 pod:
MODULE
{
  name = TRReflection
  shader = Reflective/Bumped Diffuse
  colour = 1.0 1.0 1.0
  interval = 1
  meshes = FrontWindow SideWindow
}
There are several parameters, all optional:
shader: Most shaders should be automatically mapped to their reflective
  counterparts. In some cases, however, there are no reflective version of a
  shader, so you will have to manually specify appropriate shader.colour: Reflection is pre-multiplied by this RGB value before added to the
  material. 1.0 1.0 1.0 by default.interval: Once in how many steps the reflection is updated. 1 by default.meshes: Space- and/or comma-separated list of mesh names where to apply
  reflections. Reflection is applied to whole part if this parameter is empty or
  non-existent. You may find logReflectiveMeshes configuration option very
  helpful as it prints names of all meshes for each part with TRReflection
  module into your log.One face of one reflection cube texture is updated every reflectionInterval
frames (2 by default, it can be changed in a configuration file), so each
reflective part has to be updated six times to update all six texture faces.
More reflective parts there are on the scene less frequently they are updated.
interval field on TRReflection module can lessen the update rate for a part;
e.g. interval = 2 makes the part update half less frequently.
Skins and suits are assigned either manually or automatically (configured in the GUI while configuration files can provide initial settings). "Random" assignment of skins and suits is based on Kerbals' names, which ensures the same skin/suit is always assigned to a given Kerbal. Additionally, special per-class suit can be set for each class.
Skin textures reside inside Skins/ directory, each in its own subdirectory:
GameData/**/TextureReplacer/Skins/[<subDir>/]<skin>/
  kerbalHead    // Head texture
  eyeballLeft   // Left eyeball
  eyeballRight  // Right eyeball
  pupilLeft     // Left pupil
  pupilRight    // Right pupil
Directory name should have an extension containing letters that convey additional information about that skin:
E.g. skin GameData/TextureReplacer/Skins/MySkin.fx will be assigned to females
only and only if explicitly selected (by CustomKerbals in a config file or
later in the in-game GUI).
Suit textures' names are identical as for the default texture replacement except that class level variants of suit texture are possible. Each suit must reside inside its own directory.
GameData/**/TextureReplacer/Suits/[<subDir>/]<suit>/
  kerbalMain                   // IVA suit (veteran)
  kerbalMainGrey               // IVA suit (level 0)
  kerbalMainGrey1              // IVA suit (level 1)
  kerbalMainGrey2              // IVA suit (level 2)
  kerbalMainGrey3              // IVA suit (level 3)
  kerbalMainGrey4              // IVA suit (level 4)
  kerbalMainGrey5              // IVA suit (level 5)
  kerbalMainNRM                // IVA suit normal map
  kerbalVisor                  // IVA helmet visor
  EVAtexture                   // EVA suit (level 0)
  EVAtexture1                  // EVA suit (level 1)
  EVAtexture2                  // EVA suit (level 2)
  EVAtexture3                  // EVA suit (level 3)
  EVAtexture4                  // EVA suit (level 4)
  EVAtexture5                  // EVA suit (level 5)
  EVAtextureNRM                // EVA suit normal map
  futureSuit_emissive          // EVA suit emissive (future suit only)
  EVAvisor                     // EVA helmet visor
  EVAjetpack                   // EVA jetpack
  EVAjetpackNRM                // EVA jetpack normal map
  EVAjetpackEmmisive           // EVA jetpack emissive
  cargoContainerPack_diffuse   // EVA cargo backpack
  cargoContainerPack_NRM       // EVA cargo backpack normal map
  cargoContainerPack_emissive  // EVA cargo backpack emissive
  backpack_Diff                // EVA parachute backpack
  backpack_NM                  // EVA parachute backpack normal map
  canopy_Diff                  // EVA parachute canopy
  canopy_NR                    // EVA parachute canopy normal map
The veteran and level textures are optional. If a level texture is missing the one from the previous level is inherited. If the veteran texture is present it is used for all levels on veterans.
Directories may optionally have a suffix containing any combination of the following letters (in an arbitrary order):
NOTE: All options that can be configured in the GUI are saved per-game and not in the configuration files. Configuration files only provide initial settings for those options.
Main/default configuration file:
GameData/TextureReplacer/@Default.cfg
One can also use additional configuration files; configuration is merged from
all *.cfg files containing TextureReplacer { ... } as the root node. This
should prove useful to developers of texture packs so they can distribute
pack-specific skin/suit assignment rules in a separate file. All *.cfg files
(including @Default.cfg) are processed in alphabetical order (the leading @
in @Default.cfg ensures it is processed first and overridden by subsequent
custom configuration files).
Unity uses grey normal maps (RGBA = YYYX) to minimise artefacts when applying
DXT5 texture compression on them. When a normal map has a NRM suffix Unity
converts it from RGB = XYZ (blue) to RGBA = YYYX (grey) normal map unless it
is in DDS format.
In short: you should supply blue normal maps when a texture has NRM suffix
and is in PNG format (JPEGs and TGAs are not recommended for normal maps) and
grey normal maps for textures in DDS format or without NRM suffix.
Grey normal maps can be created by saving the standard blue normal maps as DDS with DXT5nm compression or by manually shuffling channels: RGBA -> GGGR.
Copyright © 2013-2021 Davorin Učakar
Copyright © 2016 RangeMachine
Copyright © 2013 rbray89
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The skin texture pack contained in binary distributions of TextureReplacer under
GameData/TextureReplacer/Skins/TR directory can be modified and distributed
under the terms of CC BY 4.0 licence. The original author is Sylith, with
additional modifications by shaw and IOI-655362.
Original Gimp and Photoshop files used to create these textures can be found at GitHub.
Raw stats are from the beginning of time until now. Each follower and download entry represents one hour of data. Uneventful hours are omitted.