Jump to content

Changing a 'partless' part mod to a 'partful' one? Craft Sharing systems vs 'partless' part mods


Recommended Posts

When I submitted craft with Explodium Breathing Engines to Kerbal X for the first time, it didn't recognize my ExV parts. These are Module Manager patches that clone stock parts and change several properties, as originally suggested by DStaal to avoid copy / pasting material owned by Squad. While this works in-game, it doesn't work well for craft sharing apparently.

I tried Craft Manager to upload craft from in-game to Kerbal X, which works, but the parts get listed as Squad-owned parts and they don't seem to retain mass or cost values. Which in a logical sense they are, since they are cloned and only have some properties changed.

I would just change all of the parts to stand-alone parts, like OhioBob does for his Eve Optimized Engines, but I worry about infringing Squad's copyright by just copy / pasting the majority of the part configs. 

Should I just do that anyway? Would Take Two have a fit? Or is there a better solution? For instance, some way to tell Module Manager to modify the parentUrl for these parts somehow so the parts look like they're from someplace other than "Squad."

It's not just Kerbal X I need concern myself with now, since Steam Workshop now supports craft sharing in KSP 1.4.4.

Link to comment
Share on other sites

  On 7/13/2018 at 12:02 AM, Gordon Fecyk said:

When I submitted craft with Explodium Breathing Engines to Kerbal X for the first time, it didn't recognize my ExV parts. These are Module Manager patches that clone stock parts and change several properties, as originally suggested by DStaal to avoid copy / pasting material owned by Squad. While this works in-game, it doesn't work well for craft sharing apparently.

I tried Craft Manager to upload craft from in-game to Kerbal X, which works, but the parts get listed as Squad-owned parts and they don't seem to retain mass or cost values. Which in a logical sense they are, since they are cloned and only have some properties changed.

I would just change all of the parts to stand-alone parts, like OhioBob does for his Eve Optimized Engines, but I worry about infringing Squad's copyright by just copy / pasting the majority of the part configs. 

Should I just do that anyway? Would Take Two have a fit? Or is there a better solution? For instance, some way to tell Module Manager to modify the parentUrl for these parts somehow so the parts look like they're from someplace other than "Squad."

It's not just Kerbal X I need concern myself with now, since Steam Workshop now supports craft sharing in KSP 1.4.4.

Expand  

I’ve never used Kerbal X, maybe you have to register mods it’s not already familiar with.

As for MM part names, you should definitely change the name if you are doing more than tweaking values.

Link to comment
Share on other sites

  On 7/15/2018 at 4:48 AM, 0something0 said:

What if you copypasted modded part configs?

Expand  

That's the question I don't have the answer for. I'd convert the 'partless' configs into full configs, but the majority of their settings would be from Squad / Take Two content.

Granted I'm already using modified textures originally taken from the stock textures, which I think is OK per Part 8 of the add-on posting rules as these textures reside in GameData. 

  Quote

8. Legal boundaries

You may not decompile, modify or distribute any of the .dll files or other files KSP comes with beyond content of the GameData folder. Follow the EULA. For assemblies, you may only use exposed public or protected members of classes, and you may not examine the code within any member.

Expand  

No one's complained yet. I'm surprised this hasn't changed with the Take Two acquisition.

If this is still the case, then I'd just copy / paste the original parts and make my changes. Just want to be sure this is OK. Otherwise I'll need to find some other solution for Kerbal X and Steam Workshop that still works with Module Manager-generated parts.

Link to comment
Share on other sites

There's a part mapper utility available from Kerbal X that can scan the parts of a craft against the list of mods installed. This can upload modded parts to Kerbal X. My problem is the parts in my mod are only but Module Manager patches, and not parts in their own right. No parts, nothing to upload, and it's a 'partless' mod. The logic makes sense actually.

The Craft Manager plugin can upload these parts to Kerbal X, because that pulls the parts out of KSP's database in memory at the time. This let me upload the craft without missing part warnings, but this caused a new problem: The parts appear to belong to the mod 'Squad,' because of the parentURL of these parts still has "Squad/Parts/" in the path. That too isn't Kerbal X's fault; it is the nature of the Module Manager patches cloning stock parts and not changing the parentURL for them.

There doesn't appear to be a way to also change the URL of these parts as part of the part cloning process, so Craft Manager doesn't know any better. And the part mapper doesn't try to interpret Module Manager patches.

That being said, Katateochi's reached out to me and asked if there is something to look for in these parts to make them stand out, and he'd add a filter rule for me. I appreciate that, but it's not fair to them or to Kerbal X. Also, I can't account for Steam Workshop to do the same thing. It turns out there's not much to distinguish the parts aside from a different URL for the model textures, and even then I can't replace the textures for the Goliath engine or the Big-S wings without causing null reference exceptions. Maybe if I could somehow make alternate textures work for those parts, they could use that as a filter rule. Again though, I can't count on Steam Workshop or other craft repositories to be so accommodating.

Link to comment
Share on other sites

  On 7/18/2018 at 12:54 AM, Gordon Fecyk said:

There's a part mapper utility available from Kerbal X that can scan the parts of a craft against the list of mods installed. This can upload modded parts to Kerbal X. My problem is the parts in my mod are only but Module Manager patches, and not parts in their own right. No parts, nothing to upload, and it's a 'partless' mod. The logic makes sense actually.

The Craft Manager plugin can upload these parts to Kerbal X, because that pulls the parts out of KSP's database in memory at the time. This let me upload the craft without missing part warnings, but this caused a new problem: The parts appear to belong to the mod 'Squad,' because of the parentURL of these parts still has "Squad/Parts/" in the path. That too isn't Kerbal X's fault; it is the nature of the Module Manager patches cloning stock parts and not changing the parentURL for them.

There doesn't appear to be a way to also change the URL of these parts as part of the part cloning process, so Craft Manager doesn't know any better. And the part mapper doesn't try to interpret Module Manager patches.

That being said, Katateochi's reached out to me and asked if there is something to look for in these parts to make them stand out, and he'd add a filter rule for me. I appreciate that, but it's not fair to them or to Kerbal X. Also, I can't account for Steam Workshop to do the same thing. It turns out there's not much to distinguish the parts aside from a different URL for the model textures, and even then I can't replace the textures for the Goliath engine or the Big-S wings without causing null reference exceptions. Maybe if I could somehow make alternate textures work for those parts, they could use that as a filter rule. Again though, I can't count on Steam Workshop or other craft repositories to be so accommodating.

Expand  

What you could do is add a new module to each part.  The module doesnt have to do anything, it just has to be there.  And then he can look for that module in the part, if its there, it can identify the mod where i5 is from.

Link to comment
Share on other sites

  On 7/18/2018 at 1:53 AM, linuxgurugamer said:

What you could do is add a new module to each part.  The module doesnt have to do anything, it just has to be there.

Expand  

Did you suggest this already? Or maybe you did for someone else and I remember reading it. Sounds familiar.

I can try this to satisfy Kerbal X and see what happens. Would something like +ModuleExvPlaceholder{name=placeholder} be enough?

Link to comment
Share on other sites

  • 2 weeks later...
  On 7/18/2018 at 2:25 AM, Gordon Fecyk said:

Did you suggest this already? Or maybe you did for someone else and I remember reading it. Sounds familiar.

I can try this to satisfy Kerbal X and see what happens. Would something like +ModuleExvPlaceholder{name=placeholder} be enough?

Expand  

oh, hey, I totally missed the notification for this thread!
yes, adding a custom module with a name that is unique to your mod would be the way to go.  For example, tweakscale adds a module called "TweakScale" to each part and I can then detect that. In the case of tweakscale (and this is worth noting) that module is added to every part, even if the part isn't resized, but within that module are two values, one for current and one for default so I can check if those values are different, and if not ignore it.
eg tweakscale adds this to a part

MODULE
{
    name = TweakScale	
    currentScale = 1.25
    defaultScale = 1.25
    .......
}

KX detects that module, but as the two values are the same it ignores it, so a craft can have TweakScale modules present but if they're not doing anything it ignores them.
So if your mod adds a module to parts regardless of it being active, then add a value which acts as a flag to say if it's active or not.  Something like;

MODULE
{
    name = YourModName
    active = true
}

Then let me know add I'll add that to the list of partless mods that KX checks for.

  On 7/18/2018 at 12:54 AM, Gordon Fecyk said:

add a filter rule for me. I appreciate that, but it's not fair to them or to Kerbal X. Also, I can't account for Steam Workshop to do the same thing

Expand  

For me it's not a problem. While I'd like to have everything automated and self learning, Module Manager patches is one bit I've not figured out to do, so it's just the way I've got to do it. And it's pretty easy for me to add in a new rule.
From what I've seen of the steam workshop approach (I poked it with a stick in disgust) it doesn't have (and sorry to blow KX's trumpet here) anything like the mod detection capability of KerbalX. Regardless of which parts a craft has, all it's able to do is just list all the installed dlls, which doesn't even come close to reflecting the actual mods a craft uses.  (and I can't even get it to submit that list along with the craft, or a description). So whatever you do, steam workshop is a long way off being able to detect a specific mod on a specific craft. </end rant, sorry, not sorry>

Link to comment
Share on other sites

  On 7/28/2018 at 3:11 PM, katateochi said:

So if your mod adds a module to parts regardless of it being active, then add a value which acts as a flag to say if it's active or not.

Expand  

This might not be behaving the way we expected it to. I added ModuleExvPlaceholder to a part cloned from shockConeIntake:

+PART[shockConeIntake]:FOR[ExplodiumBreathingEngines]
{
	@name = shockConeIntakeExV
	// ... insert rest of part changes here
	// Placeholder module to assist Kerbal X and other craft repositories with modified part detections
	%MODULE[ModuleExvPlaceholder]
	{
		%active = true
	}
}

This produced the following in the Module Manager cache:

UrlConfig
{
	name = shockConeIntakeExV
	type = PART
	parentUrl = Squad/Parts/Aero/circularIntake/intakeShockCone
	PART
	{
		// ... Rest of part defined here
		MODULE
		{
			name = ModuleExvPlaceholder
			active = true
		}
		// ... Rest of part defined here
	}
}

Then I tried building a new craft with just a Mk2 inline cockpit and the part, and the placeholder module didn't show up. Resulting craft file is in this spoiler area.

  Reveal hidden contents

Maybe I need to declare the module somewhere else first?

[Update 14 AUG 2018] There doesn't seem to be a solution that would permit me to retain Module Manager usage. The next release of this add-on will be fully defined parts and not just MM clones, along the lines of Eve Optimized Engines. Hopefully Take Two doesn't have a fit.

Edited by Gordon Fecyk
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...