Ksp b9 part switch fatal error

211 votes and 25 comments so far on Reddit

Create an account to follow your favorite communities and start taking part in conversations.

r/KerbalAcademy

Posted by2 years ago

Archived

r/KerbalAcademy - B9 part switch fatal error. Any idea on how to solve?

This thread is archived

New comments cannot be posted and votes cannot be cast

level 1

I don’t think it’s really fatal. I usually ignore them. Updates normally fix them.

Apologies the button usually says “OK” when it happens to me, not “Quit”.

level 2

How do I ignore them? It’s either play with that text box on the screen, or quit the game.

level 2

Yeah Ive never not had that b9 part switch failure lmao

level 2

B9 Fatal Error means «click me and close KSP.» What you’re describing are «B9 Serious Warning»

level 1

Open the ksp.log file, hit ctrl F search for fatal error. The log will tell you what part is causing the problem and why it is a problem

level 1

Check if there are any updates, you might have an old version of B9partswitch.

I’m not a genius about this mod so this is all I can give.

level 2

It’s the version for 1.10, which is what I play on. Guess I’ll have to go without, sucks since I lose all the near future and space station parts.

level 1

Download more mods it will fix itself

level 1

what did you update right before the error showed up? its almost always due to the change you made right before the error started happening. (this is true in general with computers, not just with Kerbal.)

level 2

I downloaded all my mods, loaded the game, and got the error. The only update regarding KSP I did, was changing the version back to 1.10 and verifying the game files.

level 1

I’m sorry off topic but is the mission builder a DLC or something? Maybe a new update? It’s been a bit since I played

level 1

Do what i do and ignore all the warnings telling me my game is about to implode, it never does

level 1

What mods do you have installed? Do you have any life support mods installed?

Mod authors generally prefer a mod list and a copy of the KSP log.

I’ll see what I can find out for you:

@WranglerOfTheTards27 I created a post for your issue on the KSP forums here.

Directions to get help with mods

level 1

I’d like to see your KSP.log, your Logs/ModuleManager/ModuleManager.log and your GameData/ModuleManager.ConfigCache (preferrably all in one zip). I’m sure I’ll spot the source of the error.

level 1

Hi! Thank you for posting to KerbalAcademy. This is a comment reminding users to post screenshots if needed (if you have not done so already), be respectful to other users and keep off-topic comments to a minimum. Thank you!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

level 1

Try using the 1.11 version of B9PartSwitch with all the mods you intend to use. Coincidentally, I installed B9PartSwitch as a dependency for Near Future Solar, Near Future Spacecraft, and SSPEx all for 1.11 today and it worked like a charm even with ReStock, Waterfall and a smattering of other visual mods.

level 2

Does the 1.11 version work with 1.10? The main mods I have haven’t been updated to 1.11 yet.

About Community

Subreddit Icon

Dedicated to the growth and advancement of amateur rocket scientists!



Содержание

  1. Issue with B9 Part Switch after updating another mod
  2. Question
  3. LeBOI
  4. LeBOI
  5. Fatal error — B9PartSwitch.TankType and .TankResource for LiquidFuel #217
  6. Comments
  7. Footer

Issue with B9 Part Switch after updating another mod

Asked by LeBOI,
May 13, 2022

Question

LeBOI

LeBOI

So i have a heavily modded install (190-ish mods) and they´ve worked fine for the most time, at least until a few days ago. I got an update for the mod «Kerbal Planetary Base Systems» (via CKAN ), and since then, when i try to load the game, about two thirds in the loading process (which takes about 45 mins), I get a little popup saying the following:

B9 Part Switch — Fatal error

B9 Part switch has encountered a fatal error and KSP needs to close.

Fatal exception while loading fields on module ModuleB9PartSwitch on part

exception while loading field subtypes on type B9Partswitch.moduleB9PartSwitch

Exception while loading fields on subtype PartSubtype GravioliumInstrument

Exception while loading field PrimaryColor on B9PartSwitch.PartSubtype

Could not value parse as color: Graviolium

Please See KSp´s logs for additional information

Quit

If i dont press quit, the game just normally loads and shows the usual start screen. I can play «resume game» without any problems, i think i could also load a savegame but i didnt try since i do not want to corrupt my files somehow.

This is my log file if anybody of you knows how to deal with this kinda stuff.

Источник

Fatal error — B9PartSwitch.TankType and .TankResource for LiquidFuel #217

I’m getting a strange fatal error thrown by this mod. I’ve tried all the trouble shooting I can to no avail. When I remove B9PartSwitch I can load the game, but adding it through CKAN causes the fatal exception. Running KSP 1.10.1 and all mods installed via CKAN. Log attached in the .zip file. Let me know if I need to attach anything else.

The text was updated successfully, but these errors were encountered:

I just found out you can export entire mod lists to .txt files. Attaching that as well just because.

Your GameData/Squad folder is missing things that the core game needs. Please reinstall it.

Your GameData/Squad folder is missing things that the core game needs. Please reinstall it.

Already tried that

The stock resources are missing from your install. This isn’t a B9PartSwitch issue, it’s just the only thing the complains loudly ranter than randomly breaking later in-game.

The stock resources are missing from your install. This isn’t a B9PartSwitch issue, it’s just the only thing the complains loudly ranter than randomly breaking later in-game.

Well I don’t know what happened but I gave reinstalling (re-re-install?) another shot. After re-re-installing this second time it seems to be working. Not sure what I did differently the first re-install attempt lol. Thanks for at least having proper error logging in your mods! And the quick response. No idea how you actually interpret those log files but its all greek to me.

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

ysu2 opened this issue

Apr 20, 2019

· 2 comments


Closed

B9 part switch serious warning

#142

ysu2 opened this issue

Apr 20, 2019

· 2 comments

Comments

@ysu2

I’m getting a bunch of warnings every time I start ksp. I’m not sure what this refers to, the error messages are rather cryptic to me. I’m using ckan to intall & manage modes.
windows 7 x64
ksp 1.7 (latest), and latest b9 part switch, installed by — I think — the near-future extensions as dependency.

Any help is appreciated.

b9partswitch serious warning

@blowfishpro

It’s warning of configuration errors on various parts that use B9PartSwitch. These were all issues previously, the change is that it’s displaying the dialog with them rather than just dumping them to the log. These are all coming from Near Future Construction, I believe Nertea is working of fixing them. Until that happens you can just click through it though — it’s not like any of this was working before anyway. But if you install additional mods and see additional warnings it might be worth looking into them so that the respective mod authors can be alerted.

@ysu2

2 participants

@ysu2

@blowfishpro

На чтение 5 мин Обновлено 15.01.2023

Issue with B9 Part Switch after updating another mod

Asked by LeBOI,
May 13, 2022

Question

LeBOI

LeBOI

So i have a heavily modded install (190-ish mods) and they´ve worked fine for the most time, at least until a few days ago. I got an update for the mod «Kerbal Planetary Base Systems» (via CKAN ), and since then, when i try to load the game, about two thirds in the loading process (which takes about 45 mins), I get a little popup saying the following:

B9 Part Switch — Fatal error

B9 Part switch has encountered a fatal error and KSP needs to close.

Fatal exception while loading fields on module ModuleB9PartSwitch on part

exception while loading field subtypes on type B9Partswitch.moduleB9PartSwitch

Exception while loading fields on subtype PartSubtype GravioliumInstrument

Exception while loading field PrimaryColor on B9PartSwitch.PartSubtype

Could not value parse as color: Graviolium

Please See KSp´s logs for additional information

Quit

If i dont press quit, the game just normally loads and shows the usual start screen. I can play «resume game» without any problems, i think i could also load a savegame but i didnt try since i do not want to corrupt my files somehow.

This is my log file if anybody of you knows how to deal with this kinda stuff.

Источник

Crash with cubic strut and B9partswitch error

Asked by TonedMite133805,
March 30, 2019

Question

TonedMite133805

TonedMite133805

[LOG 19:01:04.798] ——————- initializing editor mode. ——————
[LOG 19:01:04.798] editor started
[LOG 19:01:04.803] Loading Depletion Nodes
[LOG 19:01:04.803] DepNodeCount: 0
[LOG 19:01:04.803] Loading Biome Nodes
[LOG 19:01:04.803] BiomeNodeCount: 0
[LOG 19:01:04.803] Loading Planet Nodes
[LOG 19:01:04.803] PlanetNodeCount: 0
[LOG 19:01:04.803] [ScenarioDestructibles]: Loading. 0 objects registered
[WRN 19:01:04.923] [RDTechTree]: No tech node found called Unresearcheable
[WRN 19:01:04.923] [RDTechTree]: No tech node found called Unresearcheable
[WRN 19:01:04.924] [RDTechTree]: No tech node found called Unresearcheable
[WRN 19:01:04.924] [RDTechTree]: No tech node found called Unresearcheable
[WRN 19:01:04.924] [RDTechTree]: No tech node found called Unresearcheable
[WRN 19:01:04.924] [RDTechTree]: No tech node found called Unresearcheable
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Finished loading
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.973] [Dynamic Battery Storage]: Settings: Finished loading
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Finished loading
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.974] [Dynamic Battery Storage]: Settings: Finished loading
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Finished loading
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Started loading
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Couldn’t find settings file, using defaults
[LOG 19:01:04.978] [Dynamic Battery Storage]: Settings: Finished loading
[WRN 19:01:06.006] HighlightingSystem : Framebuffer depth data is not available and can’t be used to occlude highlighting. Highlighting occluders enabled.
[LOG 19:01:06.233] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘giant’.
[LOG 19:01:06.506] [UiApp] Awake: EngineersReport
[LOG 19:01:06.506] [UiApp] Awake: KSPedia
[LOG 19:01:06.506] [UiApp] Awake: DeltaVApp
[LOG 19:01:06.506] [ApplicationLauncher] OnSceneLoadedGUIReady: scene EDITOR ShouldBeVisible() True ShouldBeOnTop() False iIsPositionedAtTop False
[LOG 19:01:06.508] ScaleModList: listSize 41 maxListSize 1013
[LOG 19:01:06.518] [UIApp] OnDestroy: Contracts
[LOG 19:01:06.518] [UIApp] OnDestroy: Missions App
[LOG 19:01:06.788] [MessageSystem] Reposition 0.02 15285
[LOG 19:01:06.789] [GenericAppFrame] Reposition 0.02 15285
[LOG 19:01:06.789] [GenericAppFrame] Reposition 0.02 15285
[WRN 19:01:06.801] UIList: RemoveItem didn’t find any item to remove.
[LOG 19:01:06.972] [UIApp] Adding EngineersReport to Application Launcher
[LOG 19:01:06.973] ScaleModList: listSize 41 maxListSize 964
[LOG 19:01:06.988] [UIApp] Adding DeltaVApp to Application Launcher
[LOG 19:01:06.989] ScaleModList: listSize 41 maxListSize 923
[LOG 19:01:06.991] [GenericAppFrame] Reposition 0.21012 15291
[LOG 19:01:07.239] [GenericAppFrame] Reposition 0.25012 15292
[LOG 19:01:07.272] [UIApp] Adding KSPedia to Application Launcher
[LOG 19:01:07.274] ScaleModList: listSize 41 maxListSize 882
[LOG 19:01:07.404] [UIMasterController]: ShowUI
[LOG 19:01:25.157] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘irregular’.
[LOG 19:01:30.151] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘ionosphere’.
[LOG 19:01:31.752] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘surface’.
[LOG 19:01:33.706] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘metallic’.
[LOG 19:01:41.628] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘anomaly’.
[LOG 19:01:43.286] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting ‘heliopause’.
[LOG 19:01:44.656] [Kerbalism] -> verbose: Radiation.Preprocess — particle-fitting completed in 52.991 seconds
[LOG 19:02:17.787] solarPanels4 added to ship — part count: 2
[LOG 19:02:17.792] solarPanels4 added to ship — part count: 3
[LOG 19:02:17.792] solarPanels4 added to ship — part count: 4
[LOG 19:02:17.792] solarPanels4 added to ship — part count: 5
[LOG 19:02:25.519] trussPiece1x added to ship — part count: 6
[LOG 19:02:27.187] deleting part trussPiece1x
[LOG 19:02:28.787] [Part truss-micro-02] [ModuleB9PartSwitch ‘meshSwitch’] Switched subtype to Cubic
[LOG 19:02:30.735] deleting part truss-micro-02
[WRN 19:02:32.879] DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.
[EXC 19:02:32.885] Exception: Conflict found between ModuleB9PartSwitch (moduleID=’meshSwitch’) on part strutCube and ModuleB9PartSwitch (moduleID=’meshSwitch’) on part strutCube:
Two modules cannot both manage the part’s crashTolerance
B9PartSwitch.ModuleB9PartSwitch.CheckOtherSwitchers ()
B9PartSwitch.ModuleB9PartSwitch.Start ()
[EXC 19:02:32.885] Exception: Conflict found between ModuleB9PartSwitch (moduleID=’meshSwitch’) on part strutCube and ModuleB9PartSwitch (moduleID=’meshSwitch’) on part strutCube:
Two modules cannot both manage the part’s crashTolerance
B9PartSwitch.ModuleB9PartSwitch.CheckOtherSwitchers ()
B9PartSwitch.ModuleB9PartSwitch.Start ()
[LOG 19:03:13.670] [UIApp] OnDestroy: MessageSystem
[LOG 19:03:13.706] [UIApp] OnDestroy: EngineersReport
[LOG 19:03:13.711] [UIApp] OnDestroy: DeltaVApp
[LOG 19:03:13.748] [UIApp] OnDestroy: KSPedia

As far as I know, only happens with the one part (strutCube).

Edited March 31, 2019 by TonedMite133805
Additional Info

Источник

I’ve been changing my mu and cfg file for a week now to get a single piece, with left right indicator (or not) for the sensor type (ACC etc), without result I combined modulePartVariants with your module I have a functional version but the problem the texture of the indicator changed by the two modules, is not linked when B9 sets the texture to ACC, and I use the PartVariants module to switch to right or left part I find the original texture again :), but the sensor work and well controled by B9partSwitch.

I tested this version with two B9partSwitch modules the code :

// ---- Pitot tube by MASSET stephane WIP
// ---- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
// ---- If one day i try to program c+ module i do a real pitot function
// ---- Compiled with 1.12 partools
// ---- 13/01/2022 update with B9PartSwitch to choose sensor type
// ---- Added module variant part to switch left right sensor flag
//      (B9PartSwich sensor not working with two modules)	
//		
PART
{
	name = PitoTubeLat
	module = Part
	author = Masset stephane
	//
	scale = 1
	rescaleFactor = 1
	//
	node_stack_bottom = 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0
	node_attach = 0.0, -0.0025, 0.0, 0.0, -1.0, 0.0, 0
	attachRules = 1,1,0,0,1
	//
	TechRequired = aerodynamicSystems
	entryCost = 100
	cost = 300
	category = Science
	subcategory = 0
	title = #PitotNoseTitle_2
	manufacturer = #PitotNoseManuc
	description = #PitotNoseDesc
	mass = 0.005
	dragModelType = default
	maximum_drag = 0.02
	minimum_drag = 0.02
	angularDrag = 1
	crashTolerance = 10
	maxTemp = 2000 // = 3000
	explosionPotential = 0.1
	bulkheadProfiles = size0, surf
	thermalMassModifier = 2.0
	emissiveConstant = 0.50
	tags = #PitotNoseTag

	// Part
	MODEL
	{
		model = PlaneTool/Parts/Pitot/Assets/PitotNose_Lat
	}	
	
	// ---- It's not the real function but it's a start ----
	// Testing B9PartSwitch mod to change module functions
	// test on ModuleEnviroSensor switch -> sensorType seem ok
	// test on ModuleScienceExperiment switch -> experimentID not working

	// switch sensor and indicator type
	MODULE
	{
		name = ModuleB9PartSwitch
		moduleID = Sensor
		switcherDescription = #B9switchdesc_1
		switchInFlight = False
		uiGroupName = #B9UIgrp_1
		uiGroupDisplayName = #B9UIDisplN_1

		SUBTYPE
		{
			name = BlankS
			title = #sensorBlank_1
			primaryColor = Grey
			secondaryColor = Grey
			descriptionSummary = #sensorBlDescSum
			descriptionDetail = #sensorBlDescDet
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				moduleActive = false
			}						
		}

		SUBTYPE
		{
			name = ACC
			title = #sensorACC
			primaryColor = DarkNavyBlue
			secondaryColor = Grey
			descriptionSummary = #autoLOC_500697
			descriptionDetail = #autoLOC_500698

			TEXTURE
			{
				texture = PlaneTool/Parts/Pitot/Assets/IndiceACC
				baseTransform = FLAG
			}

			MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				DATA
				{
					sensorType = ACC
				}
			}
		}

		SUBTYPE
		{
			name = PRES
			title = #sensorPRES
			primaryColor = CobaltBlue
			secondaryColor = Grey
			descriptionSummary = #autoLOC_500700
			descriptionDetail = #autoLOC_500701

			TEXTURE
			{
				texture = PlaneTool/Parts/Pitot/Assets/IndicePRES
				baseTransform = FLAG
			}

			MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				DATA
				{
					sensorType = PRES
				}
			}
		}

		SUBTYPE
		{
			name = GRAV
			title = #sensorGRAV
			primaryColor = BottleGreen
			secondaryColor = Grey
			descriptionSummary = #autoLOC_500703
			descriptionDetail = #autoLOC_500704

			TEXTURE
			{
				texture = PlaneTool/Parts/Pitot/Assets/IndiceGRAV
				baseTransform = FLAG
			}

			MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				DATA
				{
					sensorType = GRAV
				}
			}
		}

		SUBTYPE
		{
			name = TEMP
			title = #sensorTEMP
			primaryColor = BrickRed
			secondaryColor = Grey
			descriptionSummary = #autoLOC_500706
			descriptionDetail = #autoLOC_500707

			TEXTURE
			{
				texture = PlaneTool/Parts/Pitot/Assets/IndiceTEMP
				baseTransform = FLAG
			}

			MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				DATA
				{
					sensorType = TEMP
				}
			}
		}
	}	

	// switch side indicator
	MODULE
	{
		name = ModuleB9PartSwitch
		moduleID = Switch
		switcherDescription = #B9switchdesc_2
		switchInFlight = False
		uiGroupName = #B9UIgrp_2
		uiGroupDisplayName = #B9UIDisplN_2

		SUBTYPE
		{
			name = BlankI
			title = #sensorBlank_2
			primaryColor = Grey
			secondaryColor = Grey
			descriptionSummary = #sensorBlDescSum
			descriptionDetail = #sensorBlDescDet

			TRANSFORM
			{
				name = IndicatorL
				positionOffset = 0.05, 0.0, 0.0
			}
			TRANSFORM
			{
				name = IndicatorR
				positionOffset = -0.05, 0.0, 0.0
			}
		}

		SUBTYPE
		{
			name = LEFT
			title = #PitotLEFT
			primaryColor = #3f9b0b
			secondaryColor = Grey
			descriptionSummary = #PitotLEFT
			descriptionDetail = #B9sideDescDet_1

			TRANSFORM
			{
				name = IndicatorL
				positionOffset = 0.05, 0.0, 0.0
			}
			TRANSFORM
			{
				name = IndicatorR
				positionOffset = 0.0, 0.0, 0.0
			}
		}

		SUBTYPE
		{
			name = RIGHT
			title = #PitotRIGHT
			primaryColor = #e50000
			secondaryColor = Grey
			descriptionSummary = #PitotRIGHT
			descriptionDetail = #B9sideDescDet_2

			TRANSFORM
			{
				name = IndicatorL
				positionOffset = 0.0, 0.0, 0.0
			}
			TRANSFORM
			{
				name = IndicatorR
				positionOffset = -0.05, 0.0, 0.0
			}
		}
	}

	// ---- MAIN sensor module ----
	MODULE
	{
		name = ModuleEnviroSensor
		// set by ModuleB9PartSwitch
		sensorType = ACC 
	}		

	// ---- Emissive Anim for heat ----
	MODULE
	{
		name = ModuleAnimateHeat
		ThermalAnim = Pitot_Heat
	}
	
	// ---- Experiment (for all type ACC, PRES, GRAV, TEMP)
	// ---- Not Functional
	//
	MODULE
	{
		name = ModuleCargoPart
		stackableQuantity = 4
		packedVolume = 1
	}
}
//END FILE

In this form my texture work, but now i don’t have any module active in KSP, the first B9Partswith work well alone, but adding the
second module to switch left or right side indicator texture kill the sensor function.
I tried to include also in the second module the code for managing module (DATA, active no active etc) and every time i lose the sensor fonction.
tested this for example in second B9Partmodule :

SUBTYPE
		{
			name = LEFT
			title = #PitotLEFT
			primaryColor = #3f9b0b
			secondaryColor = Grey
			descriptionSummary = #PitotLEFT
			descriptionDetail = #B9sideDescDet_1

			TRANSFORM
			{
				name = IndicatorL
				positionOffset = 0.05, 0.0, 0.0
			}
			TRANSFORM
			{
				name = IndicatorR
				positionOffset = 0.0, 0.0, 0.0
			}
                        MODULE
			{
				IDENTIFIER
				{
					name = ModuleEnviroSensor
				}
				moduleActive = true
			}
		}

not working no sensor active.
My other version works (combination of B9partswitch and moduleVariantparts) you just have to set the part to left or right first, and chose the type of sensor and change the texture indicator, but you must not change sides otherwise the texture returns to default, but once launched everything is ok the texture is displayed :)
Or else I only use one B9 module with 9 subtypes :)
Or two distinct part :) left and right.

I love this layout: one piece and nine possibilities, it was even possible to have the sensor without an indicator texture, too bad.
form

I will watch with the 9 nine options on a single line (only one module) the place taken and how the panel reacts.
I think this is the best solution.
steph

blowfishpro / b9partswitch
Goto Github
PK

View Code? Open in Web Editor
NEW

44.0
14.0
28.0
1.51 MB

A Kerbal Space Program plugin designed to implement switching of part meshes, resources, and nodes

License: GNU Lesser General Public License v3.0

C# 99.12%

Ruby 0.41%

Shell 0.21%

HTML 0.26%

b9partswitch’s Introduction

A Kerbal Space Program plugin designed to implement switching of part meshes, resources, and nodes

This mod will not change anything by itself, but is designed to be used by other mods to enable part subtype switching

Forum Thread

http://forum.kerbalspaceprogram.com/index.php?showtopic=140541

Requirements

  • KSP version 1.12.3 (build 3173) is the only supported KSP version
  • ModuleManager is required.

Installation

  • Remove any previous installation of B9PartSwitch
  • Make sure the latest version of ModuleManager is installed
  • Copy the B9PartSwitch directory to your KSP GameData directory

Source

The source can be found at Github

License

This plugin is distributed under LGPL v3.0

Changelog

On the wiki

b9partswitch’s People

b9partswitch’s Issues

Resources sometimes change order

STR

  • Have two adjacent subtypes sharing their second resource, e.g. LiquidFuel + Oxidizer and Liquid Hydrogen + Oxidizer
  • Switch from one to the other

O

  • Second resource will appear first

D

  • Resource order is maintained

Explanation: The second resource already exists, so it is left alone, then the first resource is added to the end of the list, so it appears after

Stock style node jumping

In the stock 1.4 mesh switching, switches that change a node’s location rebuild the rocket to reconnect the nodes (instead of leaving them at the original offset). This functionality has been duplicated by DMagic for the Universal Storage plugin, and would be useful for B9 Part Switch.

Localize hard-coded strings

Hi, thank you for your KSP modding efforts. This is my favorite part switch mod and I would like to see localisation support in it.
KSP now supports many languages and, even if this plugin has not much text in it, it would be really nice to be able to translate it. So everyone can have a UI in their language without mixed words here
and there.
Thank you in advance (even if you are not interested in such a feature) and keep up the good work.

ModuleJettison no longer works with drag cube re-rendering

Steps to Reproduce

  • Have a part with ModuleJettison affecting drag cubes and ModuleB9PartSwitch affecting drag cubes
  • Have a craft that has this part and a part attached to the ModuleJettison node (so that the jettison object will appear)
  • Load the craft in the flight scene

Observed

  • Jettison object is missing

Desired

  • Jettison object is present

Notes

  • In KSP 1.4+, ModuleJettison now moves the jettison object to the attached part when the scene loads rather than when it detaches. This means that it cannot affect drag cubes if they are re-rendered, but also since it’s outside the part’s hierarchy, it won’t get duplicated for rendering drag cubes and AssumeDragCubePosition will disable/enable the real one, causing it to get disabled.
  • Will have to re-architect the procedural drag cube implementation to handle this

Switch in flight — tanks should not be filled

Just getting around to playing with this feature — very nicely done.

One gripe. In the editor normal and expected behavior when switching types should be filling tanks (unless the type is specifically setup not to be filled), but in flight I can’t think of any scenario where filling tanks with a resource that was not already present is desirable. This is basically a cheat since tanks can be refilled by switching. I realize I could avoid this by defining the tank types to be empty by default, but that would leave the user with the annoyance of having to manually fill tanks in the editor.

Nodes occasionally disappear when they’re not supposed to

Texture switches are reset when procedural drag cubes are rendered

In the editor, rendering drag cubes for a part or any part above it in the hierarchy will cause its texture switches to get reset. It doesn’t change the subtype, and switching to a different subtype and back corrects it.

Reason is that we reset texture switches before the part is cloned, and the part is cloned to produce drag cubes. When the part is cloned normally in the editor, KSP calls OnCopy which then tells the original to re-apply its texture switches, but this doesn’t happen when rendering drag cubes.

Mod does not load AT ALL

So I noticed that the actual mod doesn’t work AT ALL…
From what i saw in the logs, despite the fact it was in the GameData folder, it did not load at all, as if it didn’t exist…

KSP.log.txt

Catastrophic failure when a B9_TANK_TYPE contains an invalid resource

Easy to reproduce. Create a B9_TANK_TYPE with a resource that does not exist and start KSP. The first exception is thrown at B9PartSwitch.B9TankSettings.ModuleManagerPostLoad() and there after every part containing a ModuleB9PartSwitch fails to load with System.InvalidOperationException: The tank definitions have not been loaded yet (done after game database load). Perhaps ModuleManager is missing or out of date?.

I’m hesitant to call this a bug, better to make the game unplayable and force the problem to be fixed, however when the parts fail to load any vessels inflight containing those parts are unloaded potentially ruining a save game. Perhaps it could fail a bit more gracefully. Users commonly overlook dependencies which may contain the needed resource definitions when installing mods.

Investigate Tweakscale support

May or may not be possible

Rebalance default MonoPropellant tank resource based on build 1203 changes

Having ModuleB9PartSwitch on root part messes things up

STR

  • Launch a new vessel with root part having ModuleB9PartSwitch
  • Exit to space center
  • Return to new vessel

Physics now break and the ModuleB9PartSwitch has no subtypes.

Will have to investigate if root parts are loaded differently.

Current workaround: use something else as the root part.

«Serious Warning» on startup — «Subtype has no name: PartSubtype»

When launching the game, I get this warning:

b9 serious warning

The game does seem to function fine after loading, however.

Relevant portion of the log file:

PartLoader: Compiling Part ‘NearFutureConstruction/Parts/Truss/truss-spinal/truss-spinal-01/truss-spinal-01’

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.

(Filename: Line: 481)

Warning on PartSubtype: Subtype has no name

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Warning on PartSubtype: Subtype has no name

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Warning on PartSubtype: Subtype has no name

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.

(Filename: Line: 481)

[ERROR] [Part truss-spinal-01] [ModuleB9PartSwitch ‘meshSwitch3’] Duplicate subtype names detected: System.String[]

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Warning on PartSubtype: Subtype has no name

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Warning on PartSubtype: Subtype has no name

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Warning on PartSubtype: Subtype has no name

I can provide the full log if you want it, should I also bring this up with NearFutureConstuction?

Clean up CustomPartModule

It can probably be removed entirely by putting the code in different places

Clean up components during copy operation

When list is cleared, clean up components with same gameObject as parent. Also remove ScriptableObject instances if copy flag is set.

Switching ‘Ladder’ transforms results in undesired collider behaviour in the VAB/SPH

While using a ladder transform/collider as a switcher target works very well in the flight scene, in the VAB the colliders used to specify the ladder become collidable and affect surface attachment.

Repro steps:

  1. Install SSPX Redux (https://github.com/ChrisAdderley/StationPartsExpansionRedux)
  2. Enter VAB
  3. Create a PXL-1 ‘Hostel’ Habitation Module
  4. Select a surface attachable part and notice it attaching to ladder colliders located along the EVA rails. Notice it not being affected by the ladder collider near the main airlock.

Switching in flight

Need to come up with a UI to warn when dumping resources

Some way for one switcher to «disable» another

Requested by @ChrisAdderley

  • Mass and cost are zero, no resources added
  • What to do with transforms and nodes? Treat them all as disabled? If so, no other module would be able to force them to be enabled.

Advanced tweakables option

It would be useful to have an option in the module to hide the switcher behind the Advanced Tweakables mode.
This would facilitate complex multi switcher setups and reduce PAW clutter.

Preload type configurations

It doesn’t take much time to begin with, but nice to have them all loaded first, rather than when the first object of that type needs to load

Get rid of interitance between ValueParseMap and DefaultValueParseMap

ValueParseMap may not even be necessary

Clear log entry for B9PS fatal errors

It’s well known to me by now that B9PS crashes when it determines that it’s attempting to assign subtypes to any ModuleB9PartSwitch before the associated tank type exists (in which case, B9PS finds itself adding a null or otherwise invalid subtype). My humble request is for an indication of at least:

  • The subtype being parsed at that point
  • The part config being read at the moment

Currently, KSP.log is dumped on with a load of 🐟 bones lol

Investigate module switching

This is risky but potentially incredibly useful. As far as I can tell there are two patterns

  • Module exists and we just want to switch some data but not ever remove it
  • Module exists for some subtypes but not for others (and maybe we also want to switch some data).

Removing PartModule at runtime causes index mismatching

Removing modules (ModuleB9PartInfo for example) causes index mismatch errors if another module occupies the missing module’s indexed location. (anything after the missing module is shifted upwards).

When it appears in the prefab but is missing in flight mode, KSP tries to compensate by relocating the loaded modules to another location but this can be disastrous if there was more than one module by that name (multiple generator modules for example. KSP sees that the loaded module occupies a spot that MB9PI occupied in the prefab so it looks for a slot with an identically named module and loads into the first eligible slot that it finds)

If there IS more than one module by that name then they end up getting the wrong data loaded in.

So as an alternative to removing modules outright, how about just disabling it? You can save someone maybe five days worth of troubleshooting…..

Render drag cubes when part is loaded

Add animation support

Drag cube currently only rendered for initial state, so animating meshes won’t work with stock aero

TweakScale interaction broke

Support for changing stack symmetry

It would be useful to change the stackSymmetry parameter when using different Subtypes, a PART-level variable which defines the symmetry number that is used when stack attaching to a part.

This would allow better functionality for symmetric engine clusters with variable node counts, which currently must be set to the lowest common denominator of all available variants for symmetry to work even partially.

Missing value breaks parsing of .version file

The current download has:

  "KSP_VERSION" : {
    "MAJOR" : 1,
    "MINOR" : 5,
    "PATCH" : 
  }

PATCH is missing. This causes an error if you try to parse it:

Unexpected character encountered while parsing value: }. Path ‘KSP_VERSION.PATCH’, line 18, position 2.

Track subtype by name, not just index

Useful to be able to re-order subtypes without breaking craft. Determining the subtype would go like this:

  • If name is present, find subtype with that name
  • If name is blank or invalid, fall back to index
  • If index is invalid, set to zero.

Index would be something like -1 to begin with.

Should also add a uniqueness constraint on subtype names.

Better error handling when tank type does not exist

Currently it throws exceptions and messes with other stuff

Add info module

Useful to see part’s current info:

  • Current mass, wet and dry
    • Only display if a subtype has tank types or changes mass
    • Don’t differentiate wet/dry if no tanks
  • Current cost, same as above
  • maxTemp, if managed by any module
  • skinMaxTemp, if managed by any module
  • crashTolerance, if managed by any module

Attach node moving should respect scale, rescaleFactor, and tweakscale scaling

Need to multiply the position by the scale factor

Hang at the VAB and crash at startup

I’ve originally posted bugs on KSP bugtracker, but then realized that the only mod that causes this issue is B9PartSwitch (with many configurations of mods adding B9PartSwitch causes bugs, removing it makes KSP run perfectly).

There are logs, sampling, used mods and other info:
http://bugs.kerbalspaceprogram.com/issues/9721
http://bugs.kerbalspaceprogram.com/issues/9725

This reproduces on OSX (all info is in those invalid bugreports for vanilla KSP).

If you need more info, ask me.

ResourceUnitCost not correctly calculated

It needs to take into account the unitsPerVolume of each resource as well, so line 61 should be:

public float ResourceUnitCost => resources.Sum(r => (r.resourceDefinition.unitCost) * (r.unitsPerVolume) );

Add configuration property for the number of steps in a tank’s UI slider

In some situations it would be very handy to have a greater degree of precision when adjusting the amount of resources in a tank while working in the VAB/SPH. Right now the increments are (IIRC) 1/6th the tank’s volume, which is particularly problematic when trying to adjust the mass of heavier tanks.

Two examples where this would be useful:

  1. Balancing the mass of asymmetrical vehicles, such as a Space Shuttle.
  2. Ballast parts, which could be used to keep large vehicles stable at a desired angle during reentry, or as a mass simulator to test the performance of launch vehicles.

The latter example is of particular interest to me, as I’ve been working on a set of mass simulator parts. The initial version is nearly ready to go, but without the ability to fine-tune the mass, they’re not of much use. I’m already using this mod since it allows switching between different ballast materials, and also displays the exact mass of the parts via ModuleB9PartInfo.

I don’t know any C#, otherwise I’d make a pull request. Looking at the official API documentation, it seems like this might be possible to implement using the stepIncrement property of UI_FloatRange, though I’m pretty far out of my element here.

Texture switching

Refactor subtype switching to put more logic in subtype

When switching (i.e. from UI), old subtype should just be given a message to deactivate. It will deactivate transforms and nodes and remove resources.

New subtype will be given a similar method to activate.

First time subtype setup will be similar to current methods. Switcher module should probably still hold logic for removing managed but not active resources.

This should fix #22

Attach node orientation is wrong

When switching back to the default attach node, the orientation read from the prefab is wrong

Hopefully remove hack for vessel.mapObject after bug is fixed in KSP

Issue reported, we’ll see if it gets fixed

Does changing a resource’s amount/maxAmount also require simulation resources to change?

Might be breaking the delta-v simulator as it is.

Get part icon to display correctly

Currently displays all meshes

Allow one module to add volume to another

Keeps number of subtypes down on many switchers, aids ease-of-use

Current thinking: each child module registers itself to the «parent» to which it adds volume. Subtype changes on the child trigger a volume update on the parent.

Things to consider

  • The parent shouldn’t really create any resources until all the children are initialized. Likely move resource creation/whatever to Start() so that OnStart() will be run on all modules first
  • Each subtype should have a new volumeAddedToParent field that specifies the volume it adds to the parent (different from its actual volume)
  • Volume update trigger: either keep track of parent and send method directly, or use part message

Allow certain subtypes to be locked behind tech upgrades

Should probably be tied to upgrade nodes

Maybe look into what can happen if the user tries to load a craft with subtypes that aren’t unlocked

Change EC value in Battery default tank type

.. from 2000—>20

Move to strict attach node finding

It currently does a fuzzy match. This causes some issues.

Resource names in part info should use display name

Here:

outStr += n <color=#99ff00ff>- {resource.ResourceName}</color>: {resource.unitsPerVolume * subtype.TotalVolume :F1}«;

Identified based on discussion in #78

Log warning with only one subtype

Should I be concerned about this?

[WRN 19:53:49.699] [WARNING] [Part bluedog.Apollo.AARDV.Cargo] [ModuleB9PartSwitch 'cargoSwitch'] Only one subtype found, this may lead to unexpected behavior

We use Ore as a placeholder to define the volume on cargo parts. What gets added to the SUBTYPE’s depends on what life support mods are installed, if any are.

Eliminate duplicate subtype index fields

Can get the previous subtype using the previous value passed when updating. Symmetry can use a special method.

Support modifying of ModuleFuelTanks volume

Very long term, somewhat limited use cases but potentially useful and probably not too hard to implement.

Only one module would be able to do this of course.

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Kscreen xcb helper event error 147
  • Ksc transport level error in process of connection to
  • Kryptic minds leon switch more like you unknown error remix 320
  • Krups ошибка необходимо наполнить аппарат
  • Krups xp7240 ошибка 06

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии