Jump to content

Getting Parts to show in VAB


jakeb1993

Recommended Posts

Hi All,

So i took the plunge and created my own fuel tank. Its been stressful learning how it all works but this morning i finally got my part out of Unity and into the game data folders. However i cant get it to show in the VAB.

I created a folder called BlakewayParts in the gamedata folder of KSP, created a folder within that called 'Parts' then a folder 'FuelTank' and finally a folder with my .mu file .cfg file and my .png texture.

Anything silly i am missing?

J

Link to comment
Share on other sites

This often happens because you've misspelled something in the .cfg. Make sure your model paths and node transforms are all set right! I've lost count of the number of hours I've spent trying to get parts to show up when the answer was a typo in the .cfg.

Link to comment
Share on other sites

27 minutes ago, jakeb1993 said:

Hi All,

So i took the plunge and created my own fuel tank. Its been stressful learning how it all works but this morning i finally got my part out of Unity and into the game data folders. However i cant get it to show in the VAB.

I created a folder called BlakewayParts in the gamedata folder of KSP, created a folder within that called 'Parts' then a folder 'FuelTank' and finally a folder with my .mu file .cfg file and my .png texture.

Anything silly i am missing?

J

I understand you put their folder in the KSP / GameData / Squad / Parts / FuelTank? . Your work should be in the KSP / GameData. Just show cfg.

Link to comment
Share on other sites

2 minutes ago, jakeb1993 said:

Hi DECQ,

I Put the BlakewayParts folder in Gamedata, on the same level as the Squad, AstroidDay and Worldcup folders. I have downloaded other mods to look at their file structure and it look identical.

Show full cfg.  need to look. Most often, which is why there are problems.

Link to comment
Share on other sites

PART
{
	name = BLKsmalltank
	module = part
	author = JBlakeway
	mesh = blakewayfueltank.mu
	scale = 1
	node_stack_top = 0.0, 2.0, 0.0, 0.0, 0.1, 0.0
	node_stack_bottom = 0.0, -2.0, 0.0, -0.1, 0.0
	node_attach = 4.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1
	TechRequired = generalRocketry
	entryCost = 3000
	cost = 300
	category = FuelTank
	subcategory = 0
	title = Blakeway Liquid Fuel Tank S
	manufacturer = Blakeway Space Industries
	description = TBA
	attachRules = 1,1,1,1,0
	mass = 0.025
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.3
	angular_drag = 2
	crashTolerance = 6
	maxTemp = 2000 // = 2900
	BreakingForce = 50
	BreakingTorque = 50
	bulkheadProfiles = size1, srf
	RESOURCE
	{
		name = LiquidFuel
		amount = 120
		MaxAmount = 120
	}
	RESOURCE
	{
		name = Oxidizer
		amount = 140
		maxAmount = 140
	}
}

 

Link to comment
Share on other sites

1 minute ago, jakeb1993 said:

PART
{
	name = BLKsmalltank
	module = part
	author = JBlakeway
	mesh = blakewayfueltank.mu
	scale = 1
	node_stack_top = 0.0, 2.0, 0.0, 0.0, 0.1, 0.0
	node_stack_bottom = 0.0, -2.0, 0.0, -0.1, 0.0
	node_attach = 4.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1
	TechRequired = generalRocketry
	entryCost = 3000
	cost = 300
	category = FuelTank
	subcategory = 0
	title = Blakeway Liquid Fuel Tank S
	manufacturer = Blakeway Space Industries
	description = TBA
	attachRules = 1,1,1,1,0
	mass = 0.025
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.3
	angular_drag = 2
	crashTolerance = 6
	maxTemp = 2000 // = 2900
	BreakingForce = 50
	BreakingTorque = 50
	bulkheadProfiles = size1, srf
	RESOURCE
	{
		name = LiquidFuel
		amount = 120
		MaxAmount = 120
	}
	RESOURCE
	{
		name = Oxidizer
		amount = 140
		maxAmount = 140
	}
}

 

try to put

mesh = model.mu

 

If this does not help perhaps lacks


 rescaleFactor = 1.0

 

Link to comment
Share on other sites

3 minutes ago, sashan said:

They are in ksp_data directory. The only txt file there/

 

Just checked, it mentioned it couldn't find the texture, as i had stupidly renamed it. I have named it back and it hasnt appeared yet. Going to go and look again at the logs

Link to comment
Share on other sites

Just now, jakeb1993 said:

Just checked, it mentioned it couldn't find the texture, as i had stupidly renamed it. I have named it back and it hasnt appeared yet. Going to go and look again at the logs

I had model set up improperly in Unity once. It exported but KSP couldn't read it.

Link to comment
Share on other sites

Found a compile error: Cannot find Part of type 'part'

I think i have got it. module = part should be module = Part

Now when i load kerbal my mod shows on the status bars and hangs. So clearly it is trying to do something xD

 

Link to comment
Share on other sites

Nope. I quit the program when it hanged and got this error in the txt logs


PartLoader: Compiling Part 'BlakewayParts/Parts/FuelTank/blakewayfueltank/blakewayfueltank/BLKsmalltank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

ArgumentNullException: Argument cannot be null.
Parameter name: s
  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0
  at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0
  at ShipConstruction.GetPartCosts (.ConfigNode partNode, .AvailablePart aP, System.Single& dryCost, System.Single& fuelCost) [0x00000] in <filename unknown>:0
  at ShipConstruction.SanitizePartCosts (.AvailablePart aP, .ConfigNode partNode) [0x00000] in <filename unknown>:0
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0
  at PartLoader+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at PartLoader.GetDatabaseConfig (.Part p) [0x00000] in <filename unknown>:0
  at PartLoader.GetDatabaseConfig (.Part p, System.String nodeName) [0x00000] in <filename unknown>:0
  at DragCubeSystem.LoadDragCubes (.Part p) [0x00000] in <filename unknown>:0
  at Part+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

[KSPSteamController]: Action set handle for MenuControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for FlightControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for DockingControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for EditorControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for MapControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

InvalidOperationException: Steamworks is not initialized.
  at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <filename unknown>:0
  at Steamworks.SteamController.Shutdown () [0x00000] in <filename unknown>:0
  at SteamController.KSPSteamController.OnDestroy () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

Link to comment
Share on other sites

3 minutes ago, jakeb1993 said:

Nope. I quit the program when it hanged and got this error in the txt logs


PartLoader: Compiling Part 'BlakewayParts/Parts/FuelTank/blakewayfueltank/blakewayfueltank/BLKsmalltank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

ArgumentNullException: Argument cannot be null.
Parameter name: s
  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0
  at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0
  at ShipConstruction.GetPartCosts (.ConfigNode partNode, .AvailablePart aP, System.Single& dryCost, System.Single& fuelCost) [0x00000] in <filename unknown>:0
  at ShipConstruction.SanitizePartCosts (.AvailablePart aP, .ConfigNode partNode) [0x00000] in <filename unknown>:0
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0
  at PartLoader+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at PartLoader.GetDatabaseConfig (.Part p) [0x00000] in <filename unknown>:0
  at PartLoader.GetDatabaseConfig (.Part p, System.String nodeName) [0x00000] in <filename unknown>:0
  at DragCubeSystem.LoadDragCubes (.Part p) [0x00000] in <filename unknown>:0
  at Part+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

[KSPSteamController]: Action set handle for MenuControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for FlightControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for DockingControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for EditorControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

[KSPSteamController]: Action set handle for MapControls has &0. That's probably not right.
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

InvalidOperationException: Steamworks is not initialized.
  at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <filename unknown>:0
  at Steamworks.SteamController.Shutdown () [0x00000] in <filename unknown>:0
  at SteamController.KSPSteamController.OnDestroy () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

Also, do not rename the texture and mu.files, it will not work, it is easier to export all , then create a folder in GameData/BlakewayParts. Put it in your files and modify cfg this.

PART
{
name = BLKsmalltank
module = part
author = JBlakeway

// --- Asset parameters ---
MODEL
{
model = BlakewayParts/mu your name. file
        scale = 0.64, 0.64, 0.64
}
scale = 0.64
// Mesh = model.mu
rescaleFactor = 1.0
specPower = 500.1

node_stack_top = 0.0, 2.0, 0.0, 0.0, 0.1, 0.0
node_stack_bottom = 0.0, -2.0, 0.0, -0.1, 0.0
node_attach = 4.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1
TechRequired = generalRocketry
entryCost = 3000
cost = 300
category = FuelTank
subcategory = 0
title = Blakeway Liquid Fuel Tank S
manufacturer = Blakeway Space Industries
description = TBA
attachRules = 1,1,1,1,0
mass = 0.025
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.3
angular_drag = 2
crashTolerance = 6
maxTemp = 2000 // 2900 =
BreakingForce = 50
BreakingTorque = 50
bulkheadProfiles = size1, srf
RESOURCE
{
name = LiquidFuel
amount = 120
MaxAmount = 120
}
RESOURCE
{
name = Oxidizer
amount = 146
maxAmount = 146
}
}

 

It should work, important specify the correct path name of your model, but do not add to it .mu

Example:

MODEL
{
model = BlakewayParts/blakewayfueltank
        scale = 0.64, 0.64, 0.64
}

Link to comment
Share on other sites

Okay so i deleted the folder and reexported it out of Unity and called it BLKSmallTank

It sits in the BLKSmallTank folder in FuelTank in the BlakewayParts Folder in GameData

I took a copy of the CFG filed used by the TL200 fuel tank and adjusted the cost and the amount of fuel as well as move the co-ordinates for mounting. Still hangs and gives me that error:

PartLoader: Compiling Part 'BlakewayParts/Parts/FuelTank/BLKSmallTank/BLKSmallTank/BLKsmalltank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

ArgumentNullException: Argument cannot be null.
Parameter name: s
  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0
  at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0
  at ShipConstruction.GetPartCosts (.ConfigNode partNode, .AvailablePart aP, System.Single& dryCost, System.Single& fuelCost) [0x00000] in <filename unknown>:0
  at ShipConstruction.SanitizePartCosts (.AvailablePart aP, .ConfigNode partNode) [0x00000] in <filename unknown>:0
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0
  at PartLoader+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at PartLoader.GetDatabaseConfig (.Part p) [0x00000] in <filename unknown>:0
  at PartLoader.GetDatabaseConfig (.Part p, System.String nodeName) [0x00000] in <filename unknown>:0
  at DragCubeSystem.LoadDragCubes (.Part p) [0x00000] in <filename unknown>:0
  at Part+.MoveNext () [0x00000] in <filename unknown>:0 

Link to comment
Share on other sites

I think i have dealt with one of the issues

But now i am getting this: 

PartLoader: Compiling Part 'BlakewayParts/Parts/FuelTank/BLKSmallTank/BLKSmallTank/BLKsmalltank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

PartCompiler: Cannot clone model 'BlakewayParts\Parts\FuelTank\BLKSmallTank\BLKSmallTank' as model does not exist

 

But BLKSmallTank.mu does exist in that folder grrrr

Link to comment
Share on other sites

6 minutes ago, jakeb1993 said:

I think i have dealt with one of the issues

But now i am getting this: 

PartLoader: Compiling Part 'BlakewayParts/Parts/FuelTank/BLKSmallTank/BLKSmallTank/BLKsmalltank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

PartCompiler: Cannot clone model 'BlakewayParts\Parts\FuelTank\BLKSmallTank\BLKSmallTank' as model does not exist

 

But BLKSmallTank.mu does exist in that folder grrrr

No, you must have "KSP / GameData" and in "GameData" folder, create a folder, "BlakewayParts".
Put it all files, model, texture and your cfg. eventually you will have a folder is "KSP/GameData/BlakewayParts".
Then, enter the cfg that I sent to you, it means that:

MODEL
{
model = BlakewayParts / BLKSmallTank
        scale = 0.64, 0.64, 0.64
}
scale = 0.64
// Mesh = model.mu
rescaleFactor = 1.0


model = BlakewayParts: This is the name of your folder in GameData

BLKSmallTank: Name your model

If you want to create a folder more, such as:

BlakewayParts / FuelTank / BLKSmallTank <--- (this is the name of your model)

You simply put:

MODEL
{
model = BlakewayParts / FuelTank / BLKSmallTank
        scale = 0.64, 0.64, 0.64
}
scale = 0.64
// Mesh = model.mu
rescaleFactor = 1.0

"BlakewayParts \ Parts \ FuelTank \ BLKSmallTank \ BLKSmallTank" This garbage can, it is not necessary, if you put cfg I sent. Take a good look that I sent

Link to comment
Share on other sites

2 minutes ago, jakeb1993 said:

Fixed that issue above but now i am stuck at the error above that again :(

BlakewayParts \ Parts \ Fuel Tank \ BLK SmallTank \ BLK SmallTank
I hope it is removed? I just did a lot of detail in the game, and I know how to put them in the KSP, but now at a loss..

As you have not changed anything in the txt. ??
It is not necessary.

Link to comment
Share on other sites

Still getting this:

PartLoader: Compiling Part 'BlakewayParts/Parts/BLKSmallTank/BLKSmallTank'
 
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

ArgumentNullException: Argument cannot be null.

Parameter name: s
  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 

  at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0 

  at ShipConstruction.GetPartCosts (.ConfigNode partNode, .AvailablePart aP, System.Single& dryCost, System.Single& fuelCost) [0x00000] in <filename unknown>:0 

  at ShipConstruction.SanitizePartCosts (.AvailablePart aP, .ConfigNode partNode) [0x00000] in <filename unknown>:0 

  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 

  at PartLoader+.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at PartLoader.GetDatabaseConfig (.Part p) [0x00000] in <filename unknown>:0 

  at PartLoader.GetDatabaseConfig (.Part p, System.String nodeName) [0x00000] in <filename unknown>:0 

  at DragCubeSystem.LoadDragCubes (.Part p) [0x00000] in <filename unknown>:0 

  at Part+.MoveNext () [0x00000] in <filename unknown>:0

So this is the path i have: C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program\GameData\BlakewayParts\Parts

Within that i have 3 files: BLKSmallTank.cfg, BLKSmallTank.mu and rtank(2).mbm

I downloaded a mod with a fuel tank and copied their cfg as DECQ's was giving the same error

PART
{
	MODEL
	{
		model = BlakewayParts/Parts/BLKSmallTank
	}
	
	name = BLKSmallTank
	module = Part
	author = JBlakeway

	scale = 1
	rescaleFactor = 1

	node_stack_top = 0.0, 2.0, 0.0, 0.0, 0.1, 0.0
	node_stack_bottom = 0.0, -2.0, 0.0, -0.1, 0.0
	node_attach = 4.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1
	TechRequired = generalRocketry
	entryCost = 3000
	cost = 300
	category = FuelTank
	subcategory = 0
	title = Blakeway Liquid Fuel Tank S
	manufacturer = Blakeway Space Industries
	description = TBA
	attachRules = 1,1,1,1,0
	mass = 0.025
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.3
	angular_drag = 2
	crashTolerance = 6
	maxTemp = 2000 // = 2900
	RESOURCE
	{
	name = LiquidFuel
	amount = 120
	MaxAmount = 120
	}
	RESOURCE
	{
	name = Oxidizer
	amount = 140
	maxAmount = 140
}
}

 

Link to comment
Share on other sites

Ok let me describe the entire process as i might have done something wrong and not known. So i made my model in blender and created the texture in photoshop. I moved into Unity and used the PartsTools. I added a colllision mesh and then added a new game object, bound it to the model at the center to be the CoM. Is there anything i am missing? I couldnt find a decent guide so i had to combine these two :http://wiki.kerbalspaceprogram.com/wiki/Tutorial:Making_an_asset_from_start_to_finish and http://wiki.kerbalspaceprogram.com/wiki/Kerbal_to_Pro:_Modelling_in_3ds_Max (only for unity instructions)

Link to comment
Share on other sites

5 minutes ago, jakeb1993 said:

Ok let me describe the entire process as i might have done something wrong and not known. So i made my model in blender and created the texture in photoshop. I moved into Unity and used the PartsTools. I added a colllision mesh and then added a new game object, bound it to the model at the center to be the CoM. Is there anything i am missing? I couldnt find a decent guide so i had to combine these two :http://wiki.kerbalspaceprogram.com/wiki/Tutorial:Making_an_asset_from_start_to_finish and http://wiki.kerbalspaceprogram.com/wiki/Kerbal_to_Pro:_Modelling_in_3ds_Max (only for unity instructions)

In my opinion the right thing. But look at his set of folders, you were too much, leave only one, the main folder and put it to his work.

Say it is now in the folder is your models, textures and cfg.

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...