Jump to content

Empty(ish) Mod Folders Cause Issues


Recommended Posts

I made a discovery today, probably one already well known but not to me, but mod folders left behind after removing mods such as with CKAN can cause issues.  After removing Extraplanetary Launchpads via CKAN I could no longer launch the game due to B9PartSwitch errors thrown with StationPartsExpansionRedux.  The error log kept pointing me towards a config file in SSPXr

B9_TANK_TYPE:NEEDS[ExtraplanetaryLaunchpads,!SimpleConstruction,!MKS]

Which means somehow B9 believes Extraplanetary Launchpads was still installed.  I did manage to find folder ExtraplanetaryLaunchpads with 1 icon files and the settings.cfg file.  Deleting that folder makes the game work!  Either the folder or the config file left over was enough to cause the game to think the full mod is there.  Something for people to think about when having odd issues.

 

Hmm....is there a mod that checks for left overs after deleting mods?

Link to comment
Share on other sites

Might be how the module manager patches are written - folders (even empty ones) can trigger :NEEDS or :HAS clauses. 

I would rewrite the  patch to

:NEEDS[Launchpad,!SimpleConstruction,!MKS]

because the name of the .dll is Launchpad.dll but instead of looking for the .dll Module Manager looks for GameData/ExtraplanetaryLaunchpads

pruning your GameData folder manually is often a smart/wise activity after removing a mod.

 

which mod did you remove?

Edited by zer0Kerbal
Link to comment
Share on other sites

9 hours ago, traisjames said:

Hmm....is there a mod that checks for left overs after deleting mods?

CKAN itself does this.

https://github.com/KSP-CKAN/CKAN/pull/2962

niZzSh2.png

When that screen appears, examine the listed folders to make sure they don't contain any files that you wish to keep, then click "Delete Checked" (or just "Delete" on Windows?).

Edited by HebaruSan
Link to comment
Share on other sites

10 hours ago, zer0Kerbal said:

Might be how the module manager patches are written - folders (even empty ones) can trigger :NEEDS or :HAS clauses. 

I would rewrite the  patch to

:NEEDS[Launchpad,!SimpleConstruction,!MKS]

because the name of the .dll is Launchpad.dll but instead of looking for the .dll Module Manager looks for GameData/ExtraplanetaryLaunchpads

pruning your GameData folder manually is often a smart/wise activity after removing a mod.

 

which mod did you remove?

Extraplanetary Launchpads.  Just that one.

8 hours ago, HebaruSan said:

CKAN itself does this.

https://github.com/KSP-CKAN/CKAN/pull/2962

niZzSh2.png

When that screen appears, examine the listed folders to make sure they don't contain any files that you wish to keep, then click "Delete Checked" (or just "Delete" on Windows?).

Problem is I am on a Mac: https://github.com/KSP-CKAN/CKAN/issues/3484.

Link to comment
Share on other sites

13 minutes ago, traisjames said:

Extraplanetary Launchpads.  Just that one.

Thank you - I've generated and issue with SSPXr on @NerteaGitHub repo for it and also generated a PR to fix it.

https://github.com/post-kerbin-mining-corporation/StationPartsExpansionRedux/issues/305

https://github.com/post-kerbin-mining-corporation/StationPartsExpansionRedux/pull/306

 

Edited by zer0Kerbal
Link to comment
Share on other sites

  • 4 weeks later...

So @traisjames the mod author SPEX this refused to fix the problem - but now you know the issue lies with @Nertea's SPEX and not with @taniwha's `ExtraplanetaryLaunchpads` or @zer0Kerbal's `SimpleConstruction!`.

so if you want to fix it yourself here is the file:  GameData/StationPartsExpansionRedux/Patches/SSPXR-B9TankTypes.cfg

Simple fix. 

Good luck!

Spoiler
/// Tank types for switchable containers
/// TODO: Define mass and cost ratios
/// TAC tank type updated by forum user majNUN

/// STOCK
/// =======
B9_TANK_TYPE
{
	name = SSPXOre
	tankMass = 0.0000
	tankCost = 0
	RESOURCE
	{
		name = Ore
		unitsPerVolume = 0.2
	}
}

/// MKS PRIMARY
/// ==========
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXMetallicOre
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = MetallicOre
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXUraninite
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Uraninite
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXSubstrate
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Substrate
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXMinerals
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Minerals
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXKarbonite
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Karbonite
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXCommodities
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = ExoticMinerals
		unitsPerVolume = 0.5
	}
	RESOURCE
	{
		name = RareMetals
		unitsPerVolume = 0.5
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXMaterialKits
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = MaterialKits
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXMetals
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Metals
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXPolymers
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Polymers
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXSupplies
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Supplies
		unitsPerVolume = 0.96
	}
	RESOURCE
	{
		name = Mulch
		unitsPerVolume = 0.04
		percentFilled = 0
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXMachinery
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Machinery
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXRecyclables
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Recyclables
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXSpecializedParts
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = SpecializedParts
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXFertilizer
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Fertilizer
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXHydrates
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Hydrates
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXGypsum
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Gypsum
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXDirt
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Dirt
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXSilicates
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Silicates
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXSilicon
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Silicon
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXRefinedExotics
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = RefinedExotics
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXColonySupplies
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = ColonySupplies
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXOrganics
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Organics
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXRock
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Rock
		unitsPerVolume = 1
	}
}

/// PATHFINDER SPECIFICS
///===============
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXExoticMinerals
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = ExoticMinerals
		unitsPerVolume = 1
	}
}

B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXRareMetals
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = RareMetals
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXWater
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Water
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[CommunityResourcePack]
{
	name = SSPXLead
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Lead
		unitsPerVolume = 1
	}
}

/// SNACKS
/// ============
B9_TANK_TYPE:NEEDS[Snacks]
{
	name = SSPXSnacks
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Snacks
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[Snacks]
{
	name = SSPXSoil
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Soil
		unitsPerVolume = 1
	}
}

/// EL
/// ============
B9_TANK_TYPE:NEEDS[Launchpad,!MKS]
{
	name = SSPXRocketParts
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = RocketParts
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[Launchpad,!SimpleConstruction,!MKS]
{
	name = SSPXMetalOre
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = MetalOre
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[Launchpad,!SimpleConstruction,!MKS]
{
	name = SSPXScrapMetal
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = ScrapMetal
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[Launchpad,!MKS]
{
	name = SSPXMetal
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Metal
		unitsPerVolume = 1
	}
}

/// TAC-LS
// ============
B9_TANK_TYPE:NEEDS[TacLifeSupport]
{
	name = SSPXTAC
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Food
		unitsPerVolume = 0.3414853333333334
	}
	RESOURCE
	{
		name = Water
		unitsPerVolume = 0.2257164444444443
	}
	RESOURCE
	{
		name = Oxygen
		unitsPerVolume = 34.57056355555552
	}
	RESOURCE
	{
		name = Waste
		unitsPerVolume = 0.010752
		percentFilled = 0
	}
	RESOURCE
	{
		name = WasteWater
		unitsPerVolume = 0.099528
		percentFilled = 0
	}
	RESOURCE
	{
		name = CarbonDioxide
		unitsPerVolume =  10.34007
		percentFilled = 0
	}
}

B9_TANK_TYPE:NEEDS[TacLifeSupport]
{
	name = SSPXFood
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Food
		unitsPerVolume = 1
	}
}
B9_TANK_TYPE:NEEDS[TacLifeSupport]
{
	name = SSPXOxygen
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Oxygen
		unitsPerVolume = 100
	}
}

/// DeepFreeze
/// ============
B9_TANK_TYPE:NEEDS[DeepFreeze]
{
	name = SSPXGlykerol
	tankMass = 0.0000
	tankCost = 0.0
	RESOURCE
	{
		name = Glykerol
		unitsPerVolume = 1 // 1L/unit glykerol volume
	}
}

 

 

Edited by zer0Kerbal
Link to comment
Share on other sites

1 hour ago, Nertea said:

That's an interesting take. The solution is to remove the extra folder causing the false MM detection, not to use that patch, which may cause detection issues as described here: https://github.com/post-kerbin-mining-corporation/StationPartsExpansionRedux/issues/305#issuecomment-1138112753.

should do both. removing the folder doesn't fix the underlying problems with the patch.

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